]> Pileus Git - ~andy/gtk/commitdiff
Merge branch 'bgo593793-filechooser-recent-folders-master'
authorFederico Mena Quintero <federico@gnome.org>
Wed, 27 Jul 2011 23:56:39 +0000 (18:56 -0500)
committerFederico Mena Quintero <federico@gnome.org>
Wed, 27 Jul 2011 23:56:39 +0000 (18:56 -0500)
681 files changed:
Makefile.am
NEWS
README.in
build/win32/vs10/Makefile.am
build/win32/vs10/README.txt
build/win32/vs10/gailutil.vcxproj [new file with mode: 0644]
build/win32/vs10/gailutil.vcxproj.filters [new file with mode: 0644]
build/win32/vs10/gtk+.props
build/win32/vs10/gtk+.sln
build/win32/vs10/gtk.vcxprojin
build/win32/vs10/install.vcxproj
build/win32/vs10/libgail.vcxproj.filtersin [new file with mode: 0644]
build/win32/vs10/libgail.vcxprojin [new file with mode: 0644]
build/win32/vs9/Makefile.am
build/win32/vs9/README.txt
build/win32/vs9/gailutil.vcproj [new file with mode: 0644]
build/win32/vs9/gtk+.sln
build/win32/vs9/gtk+.vsprops
build/win32/vs9/gtk.vcprojin
build/win32/vs9/libgail.vcprojin [new file with mode: 0644]
configure.ac
demos/gtk-demo/Makefile.am
demos/pixbuf-demo/Makefile.am
docs/Makefile.am
docs/generation.txt [deleted file]
docs/reference/gdk/Makefile.am
docs/reference/gdk/gdk3-sections.txt
docs/reference/gtk/Makefile.am
docs/reference/gtk/gtk3-sections.txt
docs/reference/gtk/migrating-2to3.xml
docs/reference/libgail-util/Makefile.am
docs/tools/Makefile.am
examples/Makefile.am
gdk/Makefile.am
gdk/broadway/Makefile.am
gdk/gdk.symbols
gdk/gdkoffscreenwindow.c
gdk/gdkwindow.c
gdk/makeenums.pl [deleted file]
gdk/quartz/Makefile.am
gdk/quartz/gdkselection-quartz.c
gdk/quartz/gdkwindow-quartz.c
gdk/wayland/Makefile.am
gdk/win32/Makefile.am
gdk/x11/Makefile.am
gdk/x11/gdkdevice-xi2.c
gdk/x11/gdkdevicemanager-x11.c
gdk/x11/gdkdevicemanager-xi2.c
gdk/x11/gdkkeys-x11.c
gdk/x11/gdkprivate-x11.h
gdk/x11/gdkx.h
gdk/x11/gdkx11device.h [moved from gtk/gtkaccessibleprivate.h with 55% similarity]
gdk/x11/gdkx11devicemanager.h [new file with mode: 0644]
gtk/Makefile.am
gtk/a11y/ChangeLog [moved from modules/other/gail/ChangeLog with 100% similarity]
gtk/a11y/Makefile.am [new file with mode: 0644]
gtk/a11y/gail.c [moved from modules/other/gail/gail.c with 70% similarity]
gtk/a11y/gailmisc.c [moved from modules/other/gail/gailcalendar.c with 50% similarity]
gtk/a11y/gailmisc.h [moved from modules/other/gail/gailutil.h with 56% similarity]
gtk/a11y/gailutil.c [moved from modules/other/gail/gailutil.c with 54% similarity]
gtk/a11y/gailutil.h [moved from modules/other/gail/gail-private-macros.h with 69% similarity]
gtk/a11y/gtkarrowaccessible.c [new file with mode: 0644]
gtk/a11y/gtkarrowaccessible.h [new file with mode: 0644]
gtk/a11y/gtkbooleancellaccessible.c [new file with mode: 0644]
gtk/a11y/gtkbooleancellaccessible.h [new file with mode: 0644]
gtk/a11y/gtkboxaccessible.c [moved from modules/other/gail/gailbox.c with 52% similarity]
gtk/a11y/gtkboxaccessible.h [new file with mode: 0644]
gtk/a11y/gtkbuttonaccessible.c [new file with mode: 0644]
gtk/a11y/gtkbuttonaccessible.h [new file with mode: 0644]
gtk/a11y/gtkcellaccessible.c [new file with mode: 0644]
gtk/a11y/gtkcellaccessible.h [new file with mode: 0644]
gtk/a11y/gtkcellaccessibleparent.c [new file with mode: 0644]
gtk/a11y/gtkcellaccessibleparent.h [new file with mode: 0644]
gtk/a11y/gtkcheckmenuitemaccessible.c [moved from modules/other/gail/gailchecksubmenuitem.c with 52% similarity]
gtk/a11y/gtkcheckmenuitemaccessible.h [new file with mode: 0644]
gtk/a11y/gtkcomboboxaccessible.c [new file with mode: 0644]
gtk/a11y/gtkcomboboxaccessible.h [new file with mode: 0644]
gtk/a11y/gtkcontaineraccessible.c [new file with mode: 0644]
gtk/a11y/gtkcontaineraccessible.h [new file with mode: 0644]
gtk/a11y/gtkcontainercellaccessible.c [new file with mode: 0644]
gtk/a11y/gtkcontainercellaccessible.h [new file with mode: 0644]
gtk/a11y/gtkentryaccessible.c [new file with mode: 0644]
gtk/a11y/gtkentryaccessible.h [new file with mode: 0644]
gtk/a11y/gtkexpanderaccessible.c [new file with mode: 0644]
gtk/a11y/gtkexpanderaccessible.h [new file with mode: 0644]
gtk/a11y/gtkframeaccessible.c [new file with mode: 0644]
gtk/a11y/gtkframeaccessible.h [new file with mode: 0644]
gtk/a11y/gtkimageaccessible.c [new file with mode: 0644]
gtk/a11y/gtkimageaccessible.h [new file with mode: 0644]
gtk/a11y/gtkimagecellaccessible.c [new file with mode: 0644]
gtk/a11y/gtkimagecellaccessible.h [new file with mode: 0644]
gtk/a11y/gtklabelaccessible.c [new file with mode: 0644]
gtk/a11y/gtklabelaccessible.h [new file with mode: 0644]
gtk/a11y/gtklinkbuttonaccessible.c [new file with mode: 0644]
gtk/a11y/gtklinkbuttonaccessible.h [new file with mode: 0644]
gtk/a11y/gtkmenuaccessible.c [new file with mode: 0644]
gtk/a11y/gtkmenuaccessible.h [new file with mode: 0644]
gtk/a11y/gtkmenuitemaccessible.c [new file with mode: 0644]
gtk/a11y/gtkmenuitemaccessible.h [new file with mode: 0644]
gtk/a11y/gtkmenushellaccessible.c [new file with mode: 0644]
gtk/a11y/gtkmenushellaccessible.h [new file with mode: 0644]
gtk/a11y/gtknotebookaccessible.c [new file with mode: 0644]
gtk/a11y/gtknotebookaccessible.h [new file with mode: 0644]
gtk/a11y/gtknotebookpageaccessible.c [new file with mode: 0644]
gtk/a11y/gtknotebookpageaccessible.h [new file with mode: 0644]
gtk/a11y/gtkpanedaccessible.c [moved from modules/other/gail/gailpaned.c with 50% similarity]
gtk/a11y/gtkpanedaccessible.h [new file with mode: 0644]
gtk/a11y/gtkprogressbaraccessible.c [new file with mode: 0644]
gtk/a11y/gtkprogressbaraccessible.h [new file with mode: 0644]
gtk/a11y/gtkradiobuttonaccessible.c [new file with mode: 0644]
gtk/a11y/gtkradiobuttonaccessible.h [new file with mode: 0644]
gtk/a11y/gtkradiomenuitemaccessible.c [new file with mode: 0644]
gtk/a11y/gtkradiomenuitemaccessible.h [new file with mode: 0644]
gtk/a11y/gtkrangeaccessible.c [new file with mode: 0644]
gtk/a11y/gtkrangeaccessible.h [new file with mode: 0644]
gtk/a11y/gtkrenderercellaccessible.c [moved from modules/other/gail/gailrenderercell.c with 53% similarity]
gtk/a11y/gtkrenderercellaccessible.h [new file with mode: 0644]
gtk/a11y/gtkscaleaccessible.c [new file with mode: 0644]
gtk/a11y/gtkscaleaccessible.h [new file with mode: 0644]
gtk/a11y/gtkscalebuttonaccessible.c [new file with mode: 0644]
gtk/a11y/gtkscalebuttonaccessible.h [new file with mode: 0644]
gtk/a11y/gtkscrollbaraccessible.c [moved from modules/other/gail/gailscrollbar.c with 62% similarity]
gtk/a11y/gtkscrollbaraccessible.h [new file with mode: 0644]
gtk/a11y/gtkscrolledwindowaccessible.c [new file with mode: 0644]
gtk/a11y/gtkscrolledwindowaccessible.h [new file with mode: 0644]
gtk/a11y/gtkspinbuttonaccessible.c [new file with mode: 0644]
gtk/a11y/gtkspinbuttonaccessible.h [new file with mode: 0644]
gtk/a11y/gtkspinneraccessible.c [new file with mode: 0644]
gtk/a11y/gtkspinneraccessible.h [new file with mode: 0644]
gtk/a11y/gtkstatusbaraccessible.c [new file with mode: 0644]
gtk/a11y/gtkstatusbaraccessible.h [new file with mode: 0644]
gtk/a11y/gtkswitchaccessible.c [new file with mode: 0644]
gtk/a11y/gtkswitchaccessible.h [new file with mode: 0644]
gtk/a11y/gtktextcellaccessible.c [new file with mode: 0644]
gtk/a11y/gtktextcellaccessible.h [new file with mode: 0644]
gtk/a11y/gtktextviewaccessible.c [new file with mode: 0644]
gtk/a11y/gtktextviewaccessible.h [new file with mode: 0644]
gtk/a11y/gtktogglebuttonaccessible.c [moved from modules/other/gail/gailtogglebutton.c with 58% similarity]
gtk/a11y/gtktogglebuttonaccessible.h [new file with mode: 0644]
gtk/a11y/gtktoplevelaccessible.c [new file with mode: 0644]
gtk/a11y/gtktoplevelaccessible.h [new file with mode: 0644]
gtk/a11y/gtktreeviewaccessible.c [new file with mode: 0644]
gtk/a11y/gtktreeviewaccessible.h [new file with mode: 0644]
gtk/a11y/gtkwidgetaccessible.c [new file with mode: 0644]
gtk/a11y/gtkwidgetaccessible.h [new file with mode: 0644]
gtk/a11y/gtkwindowaccessible.c [new file with mode: 0644]
gtk/a11y/gtkwindowaccessible.h [new file with mode: 0644]
gtk/gtk.symbols
gtk/gtkaccellabel.c
gtk/gtkaccelmap.c
gtk/gtkaccessible.c
gtk/gtkaccessible.h
gtk/gtkadjustment.c
gtk/gtkadjustment.h
gtk/gtkarrow.c
gtk/gtkassistant.c
gtk/gtkassistant.h
gtk/gtkbox.c
gtk/gtkbuilder.c
gtk/gtkbutton.c
gtk/gtkcalendar.c
gtk/gtkcellareacontext.c
gtk/gtkcheckbutton.c
gtk/gtkcheckmenuitem.c
gtk/gtkclipboard-quartz.c
gtk/gtkcolorseldialog.c
gtk/gtkcombobox.c
gtk/gtkcontainer.c
gtk/gtkcssparser.c
gtk/gtkcssprovider.c
gtk/gtkdialog.c
gtk/gtkdnd-quartz.c
gtk/gtkentry.c
gtk/gtkexpander.c
gtk/gtkfilechooserdefault.c
gtk/gtkfilechooserdialog.c
gtk/gtkfontsel.c
gtk/gtkframe.c
gtk/gtkhsv.c
gtk/gtkiconview.c
gtk/gtkimage.c
gtk/gtklabel.c
gtk/gtklabel.h
gtk/gtklinkbutton.c
gtk/gtkliststore.c
gtk/gtkmain.c
gtk/gtkmenu.c
gtk/gtkmenubar.c
gtk/gtkmenuitem.c
gtk/gtkmenushell.c
gtk/gtkmessagedialog.c
gtk/gtkmodules.c
gtk/gtkmountoperation-x11.c
gtk/gtknotebook.c
gtk/gtkpaned.c
gtk/gtkpango.c
gtk/gtkpango.h
gtk/gtkplug.c
gtk/gtkprogressbar.c
gtk/gtkquartz.c
gtk/gtkradiobutton.c
gtk/gtkradiomenuitem.c
gtk/gtkrange.c
gtk/gtkroundedbox.c
gtk/gtkscale.c
gtk/gtkscalebutton.c
gtk/gtkscrollbar.c
gtk/gtkscrolledwindow.c
gtk/gtkseparator.c
gtk/gtkseparatormenuitem.c
gtk/gtkspinbutton.c
gtk/gtkspinner.c
gtk/gtkstatusbar.c
gtk/gtkstylecontext.c
gtk/gtkstylecontext.h
gtk/gtkstyleproperties.c
gtk/gtkstyleproperty.c
gtk/gtkstylepropertyprivate.h
gtk/gtkswitch.c
gtk/gtktable.c
gtk/gtktearoffmenuitem.c
gtk/gtktestutils.c
gtk/gtktextbuffer.c
gtk/gtktextbuffer.h
gtk/gtktextiter.c
gtk/gtktextview.c
gtk/gtkthemingengine.c
gtk/gtkthemingengine.h
gtk/gtktogglebutton.c
gtk/gtktoolbar.c
gtk/gtktreeview.c
gtk/gtkviewport.c
gtk/gtkwidget.c
gtk/gtkwidget.h
gtk/gtkwindow.c
gtk/makeenums.pl [deleted file]
gtk/tests/Makefile.am
gtk/tests/accessible.c [new file with mode: 0644]
gtk/tests/entry.c [new file with mode: 0644]
gtk/tests/stylecontext.c
gtk/tests/test.png [deleted file]
libgail-util/Makefile.am [moved from modules/other/gail/libgail-util/Makefile.am with 100% similarity]
libgail-util/gail-util.h [moved from modules/other/gail/libgail-util/gail-util.h with 100% similarity]
libgail-util/gailmisc.c [moved from modules/other/gail/libgail-util/gailmisc.c with 100% similarity]
libgail-util/gailmisc.h [moved from modules/other/gail/libgail-util/gailmisc.h with 100% similarity]
libgail-util/gailtextutil.c [moved from modules/other/gail/libgail-util/gailtextutil.c with 100% similarity]
libgail-util/gailtextutil.h [moved from modules/other/gail/libgail-util/gailtextutil.h with 100% similarity]
libgail-util/gailutil.def [moved from modules/other/gail/libgail-util/gailutil.def with 100% similarity]
modules/Makefile.am
modules/engines/ms-windows/Makefile.am
modules/engines/pixbuf/Makefile.am
modules/other/Makefile.am [deleted file]
modules/other/gail/Makefile.am [deleted file]
modules/other/gail/gail.h [deleted file]
modules/other/gail/gailadjustment.c [deleted file]
modules/other/gail/gailadjustment.h [deleted file]
modules/other/gail/gailarrow.c [deleted file]
modules/other/gail/gailarrow.h [deleted file]
modules/other/gail/gailbooleancell.c [deleted file]
modules/other/gail/gailbooleancell.h [deleted file]
modules/other/gail/gailbox.h [deleted file]
modules/other/gail/gailbutton.c [deleted file]
modules/other/gail/gailbutton.h [deleted file]
modules/other/gail/gailcalendar.h [deleted file]
modules/other/gail/gailcell.c [deleted file]
modules/other/gail/gailcell.h [deleted file]
modules/other/gail/gailcellparent.c [deleted file]
modules/other/gail/gailcellparent.h [deleted file]
modules/other/gail/gailcheckmenuitem.c [deleted file]
modules/other/gail/gailcheckmenuitem.h [deleted file]
modules/other/gail/gailchecksubmenuitem.h [deleted file]
modules/other/gail/gailcombobox.c [deleted file]
modules/other/gail/gailcombobox.h [deleted file]
modules/other/gail/gailcontainer.c [deleted file]
modules/other/gail/gailcontainer.h [deleted file]
modules/other/gail/gailcontainercell.c [deleted file]
modules/other/gail/gailcontainercell.h [deleted file]
modules/other/gail/gailentry.c [deleted file]
modules/other/gail/gailentry.h [deleted file]
modules/other/gail/gailexpander.c [deleted file]
modules/other/gail/gailexpander.h [deleted file]
modules/other/gail/gailfactory.h [deleted file]
modules/other/gail/gailframe.c [deleted file]
modules/other/gail/gailframe.h [deleted file]
modules/other/gail/gailhtmlbox.c [deleted file]
modules/other/gail/gailhtmlbox.h [deleted file]
modules/other/gail/gailhtmlboxblock.c [deleted file]
modules/other/gail/gailhtmlboxembedded.c [deleted file]
modules/other/gail/gailhtmlboxtext.c [deleted file]
modules/other/gail/gailimage.c [deleted file]
modules/other/gail/gailimage.h [deleted file]
modules/other/gail/gailimagecell.c [deleted file]
modules/other/gail/gailimagecell.h [deleted file]
modules/other/gail/gaillabel.c [deleted file]
modules/other/gail/gaillabel.h [deleted file]
modules/other/gail/gaillinkbutton.c [deleted file]
modules/other/gail/gaillinkbutton.h [deleted file]
modules/other/gail/gailmenu.c [deleted file]
modules/other/gail/gailmenu.h [deleted file]
modules/other/gail/gailmenuitem.c [deleted file]
modules/other/gail/gailmenuitem.h [deleted file]
modules/other/gail/gailmenushell.c [deleted file]
modules/other/gail/gailmenushell.h [deleted file]
modules/other/gail/gailnotebook.c [deleted file]
modules/other/gail/gailnotebook.h [deleted file]
modules/other/gail/gailnotebookpage.c [deleted file]
modules/other/gail/gailnotebookpage.h [deleted file]
modules/other/gail/gailpaned.h [deleted file]
modules/other/gail/gailprogressbar.c [deleted file]
modules/other/gail/gailprogressbar.h [deleted file]
modules/other/gail/gailradiobutton.c [deleted file]
modules/other/gail/gailradiobutton.h [deleted file]
modules/other/gail/gailradiomenuitem.c [deleted file]
modules/other/gail/gailradiomenuitem.h [deleted file]
modules/other/gail/gailradiosubmenuitem.c [deleted file]
modules/other/gail/gailradiosubmenuitem.h [deleted file]
modules/other/gail/gailrange.c [deleted file]
modules/other/gail/gailrange.h [deleted file]
modules/other/gail/gailrenderercell.h [deleted file]
modules/other/gail/gailscale.c [deleted file]
modules/other/gail/gailscale.h [deleted file]
modules/other/gail/gailscalebutton.c [deleted file]
modules/other/gail/gailscalebutton.h [deleted file]
modules/other/gail/gailscrollbar.h [deleted file]
modules/other/gail/gailscrolledwindow.c [deleted file]
modules/other/gail/gailscrolledwindow.h [deleted file]
modules/other/gail/gailseparator.c [deleted file]
modules/other/gail/gailseparator.h [deleted file]
modules/other/gail/gailspinbutton.c [deleted file]
modules/other/gail/gailspinbutton.h [deleted file]
modules/other/gail/gailstatusbar.c [deleted file]
modules/other/gail/gailstatusbar.h [deleted file]
modules/other/gail/gailsubmenuitem.c [deleted file]
modules/other/gail/gailsubmenuitem.h [deleted file]
modules/other/gail/gailtextcell.c [deleted file]
modules/other/gail/gailtextcell.h [deleted file]
modules/other/gail/gailtextview.c [deleted file]
modules/other/gail/gailtextview.h [deleted file]
modules/other/gail/gailtogglebutton.h [deleted file]
modules/other/gail/gailtoplevel.c [deleted file]
modules/other/gail/gailtoplevel.h [deleted file]
modules/other/gail/gailtreeview.c [deleted file]
modules/other/gail/gailtreeview.h [deleted file]
modules/other/gail/gailwidget.c [deleted file]
modules/other/gail/gailwidget.h [deleted file]
modules/other/gail/gailwindow.c [deleted file]
modules/other/gail/gailwindow.h [deleted file]
modules/other/gail/tests/Makefile.am [deleted file]
modules/other/gail/tests/README [deleted file]
modules/other/gail/tests/ferret.c [deleted file]
modules/other/gail/tests/testaction.c [deleted file]
modules/other/gail/tests/testbutton.c [deleted file]
modules/other/gail/tests/testcombo.c [deleted file]
modules/other/gail/tests/testcomponent.c [deleted file]
modules/other/gail/tests/testimage.c [deleted file]
modules/other/gail/tests/testlib.c [deleted file]
modules/other/gail/tests/testlib.h [deleted file]
modules/other/gail/tests/testmenuitem.c [deleted file]
modules/other/gail/tests/testnotebook.c [deleted file]
modules/other/gail/tests/testobject.c [deleted file]
modules/other/gail/tests/testpaned.c [deleted file]
modules/other/gail/tests/testprops.c [deleted file]
modules/other/gail/tests/testselection.c [deleted file]
modules/other/gail/tests/teststatusbar.c [deleted file]
modules/other/gail/tests/testtable.c [deleted file]
modules/other/gail/tests/testtext.c [deleted file]
modules/other/gail/tests/testtextlib.c [deleted file]
modules/other/gail/tests/testtextlib.h [deleted file]
modules/other/gail/tests/testtoplevel.c [deleted file]
modules/other/gail/tests/testtreetable.c [deleted file]
modules/other/gail/tests/testvalues.c [deleted file]
modules/printbackends/cups/Makefile.am
modules/printbackends/lpr/Makefile.am
modules/printbackends/papi/Makefile.am
perf/Makefile.am
perf/gtkwidgetprofiler.c
perf/marshalers.list [deleted file]
po-properties/POTFILES.in
po-properties/es.po
po-properties/gl.po
po-properties/he.po
po-properties/lt.po
po-properties/lv.po
po/POTFILES.in
po/de.po
po/es.po
po/fa.po
po/gl.po
po/he.po
po/it.po
po/lt.po
po/lv.po
po/nb.po
po/pl.po
po/ru.po
po/sl.po
po/ug.po
tests/Makefile.am
tests/a11y/Makefile.am [new file with mode: 0644]
tests/a11y/README [new file with mode: 0644]
tests/a11y/about.txt [new file with mode: 0644]
tests/a11y/about.ui [new file with mode: 0644]
tests/a11y/accessibile-name.txt [new file with mode: 0644]
tests/a11y/accessibility-dump.c [new file with mode: 0644]
tests/a11y/accessible-name.txt [new file with mode: 0644]
tests/a11y/accessible-name.ui [new file with mode: 0644]
tests/a11y/appchooser.txt [new file with mode: 0644]
tests/a11y/appchooser.ui [new file with mode: 0644]
tests/a11y/assistant.txt [new file with mode: 0644]
tests/a11y/assistant.ui [new file with mode: 0644]
tests/a11y/buttons.txt [new file with mode: 0644]
tests/a11y/buttons.ui [new file with mode: 0644]
tests/a11y/calendar.txt [new file with mode: 0644]
tests/a11y/calendar.ui [new file with mode: 0644]
tests/a11y/children.c [new file with mode: 0644]
tests/a11y/colorchooser.txt [new file with mode: 0644]
tests/a11y/colorchooser.ui [new file with mode: 0644]
tests/a11y/entries.txt [new file with mode: 0644]
tests/a11y/entries.ui [new file with mode: 0644]
tests/a11y/expander.txt [new file with mode: 0644]
tests/a11y/expander.ui [new file with mode: 0644]
tests/a11y/focus.c [new file with mode: 0644]
tests/a11y/hello-world.txt [new file with mode: 0644]
tests/a11y/hello-world.ui [new file with mode: 0644]
tests/a11y/iconview.txt [new file with mode: 0644]
tests/a11y/iconview.ui [new file with mode: 0644]
tests/a11y/infobar.txt [new file with mode: 0644]
tests/a11y/infobar.ui [new file with mode: 0644]
tests/a11y/link.txt [new file with mode: 0644]
tests/a11y/link.ui [new file with mode: 0644]
tests/a11y/lockbutton.txt [new file with mode: 0644]
tests/a11y/lockbutton.ui [new file with mode: 0644]
tests/a11y/menu.txt [new file with mode: 0644]
tests/a11y/menu.ui [new file with mode: 0644]
tests/a11y/menus.txt [new file with mode: 0644]
tests/a11y/menus.ui [new file with mode: 0644]
tests/a11y/messagedialog.txt [new file with mode: 0644]
tests/a11y/messagedialog.ui [new file with mode: 0644]
tests/a11y/mnemonic.txt [new file with mode: 0644]
tests/a11y/mnemonic.ui [new file with mode: 0644]
tests/a11y/notebook.txt [new file with mode: 0644]
tests/a11y/notebook.ui [new file with mode: 0644]
tests/a11y/paned.txt [new file with mode: 0644]
tests/a11y/paned.ui [new file with mode: 0644]
tests/a11y/pickers.txt [new file with mode: 0644]
tests/a11y/pickers.ui [new file with mode: 0644]
tests/a11y/placeholder-text.txt [new file with mode: 0644]
tests/a11y/placeholder-text.ui [new file with mode: 0644]
tests/a11y/progress.txt [new file with mode: 0644]
tests/a11y/progress.ui [new file with mode: 0644]
tests/a11y/range.txt [new file with mode: 0644]
tests/a11y/range.ui [new file with mode: 0644]
tests/a11y/scale-drawvalue.txt [new file with mode: 0644]
tests/a11y/scale-drawvalue.ui [new file with mode: 0644]
tests/a11y/spinner.txt [new file with mode: 0644]
tests/a11y/spinner.ui [new file with mode: 0644]
tests/a11y/statusbar.txt [new file with mode: 0644]
tests/a11y/statusbar.ui [new file with mode: 0644]
tests/a11y/testfocus.c [new file with mode: 0644]
tests/a11y/text.c [new file with mode: 0644]
tests/a11y/text.txt [new file with mode: 0644]
tests/a11y/text.ui [new file with mode: 0644]
tests/a11y/tree-performance.c [new file with mode: 0644]
tests/a11y/tree.txt [new file with mode: 0644]
tests/a11y/tree.ui [new file with mode: 0644]
tests/a11y/util.c [new file with mode: 0644]
tests/css/parser/Makefile.am
tests/css/parser/at-invalid-01.css [new file with mode: 0644]
tests/css/parser/at-invalid-01.errors [new file with mode: 0644]
tests/css/parser/at-invalid-01.ref.css [moved from gtk/tests/test.css with 100% similarity]
tests/css/parser/at-invalid-02.css [new file with mode: 0644]
tests/css/parser/at-invalid-02.errors [new file with mode: 0644]
tests/css/parser/at-invalid-02.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-03.css [new file with mode: 0644]
tests/css/parser/at-invalid-03.errors [new file with mode: 0644]
tests/css/parser/at-invalid-03.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-04.css [new file with mode: 0644]
tests/css/parser/at-invalid-04.errors [new file with mode: 0644]
tests/css/parser/at-invalid-04.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-05.css [new file with mode: 0644]
tests/css/parser/at-invalid-05.errors [new file with mode: 0644]
tests/css/parser/at-invalid-05.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-06.css [new file with mode: 0644]
tests/css/parser/at-invalid-06.errors [new file with mode: 0644]
tests/css/parser/at-invalid-06.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-07.css [new file with mode: 0644]
tests/css/parser/at-invalid-07.errors [new file with mode: 0644]
tests/css/parser/at-invalid-07.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-08.css [new file with mode: 0644]
tests/css/parser/at-invalid-08.errors [new file with mode: 0644]
tests/css/parser/at-invalid-08.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-09.css [new file with mode: 0644]
tests/css/parser/at-invalid-09.errors [new file with mode: 0644]
tests/css/parser/at-invalid-09.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-10.css [new file with mode: 0644]
tests/css/parser/at-invalid-10.errors [new file with mode: 0644]
tests/css/parser/at-invalid-10.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-11.css [new file with mode: 0644]
tests/css/parser/at-invalid-11.errors [new file with mode: 0644]
tests/css/parser/at-invalid-11.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-12.css [new file with mode: 0644]
tests/css/parser/at-invalid-12.errors [new file with mode: 0644]
tests/css/parser/at-invalid-12.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-13.css [new file with mode: 0644]
tests/css/parser/at-invalid-13.errors [new file with mode: 0644]
tests/css/parser/at-invalid-13.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-14.css [new file with mode: 0644]
tests/css/parser/at-invalid-14.errors [new file with mode: 0644]
tests/css/parser/at-invalid-14.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-15.css [new file with mode: 0644]
tests/css/parser/at-invalid-15.errors [new file with mode: 0644]
tests/css/parser/at-invalid-15.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-16.css [new file with mode: 0644]
tests/css/parser/at-invalid-16.errors [new file with mode: 0644]
tests/css/parser/at-invalid-16.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-17.css [new file with mode: 0644]
tests/css/parser/at-invalid-17.errors [new file with mode: 0644]
tests/css/parser/at-invalid-17.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-18.css [new file with mode: 0644]
tests/css/parser/at-invalid-18.errors [new file with mode: 0644]
tests/css/parser/at-invalid-18.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-19.css [new file with mode: 0644]
tests/css/parser/at-invalid-19.errors [new file with mode: 0644]
tests/css/parser/at-invalid-19.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-20.css [new file with mode: 0644]
tests/css/parser/at-invalid-20.errors [new file with mode: 0644]
tests/css/parser/at-invalid-20.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-21.css [new file with mode: 0644]
tests/css/parser/at-invalid-21.errors [new file with mode: 0644]
tests/css/parser/at-invalid-21.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-22.css [new file with mode: 0644]
tests/css/parser/at-invalid-22.errors [new file with mode: 0644]
tests/css/parser/at-invalid-22.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-23.css [new file with mode: 0644]
tests/css/parser/at-invalid-23.errors [new file with mode: 0644]
tests/css/parser/at-invalid-23.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-24.css [new file with mode: 0644]
tests/css/parser/at-invalid-24.errors [new file with mode: 0644]
tests/css/parser/at-invalid-24.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-25.css [new file with mode: 0644]
tests/css/parser/at-invalid-25.errors [new file with mode: 0644]
tests/css/parser/at-invalid-25.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-26.css [new file with mode: 0644]
tests/css/parser/at-invalid-26.errors [new file with mode: 0644]
tests/css/parser/at-invalid-26.ref.css [new file with mode: 0644]
tests/css/parser/at-invalid-27.css [new file with mode: 0644]
tests/css/parser/at-invalid-27.errors [new file with mode: 0644]
tests/css/parser/at-invalid-27.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-01.css [new file with mode: 0644]
tests/css/parser/at-valid-01.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-02.css [new file with mode: 0644]
tests/css/parser/at-valid-02.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-03.css [new file with mode: 0644]
tests/css/parser/at-valid-03.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-04.css [new file with mode: 0644]
tests/css/parser/at-valid-04.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-05.css [new file with mode: 0644]
tests/css/parser/at-valid-05.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-06.css [new file with mode: 0644]
tests/css/parser/at-valid-06.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-07.css [new file with mode: 0644]
tests/css/parser/at-valid-08.css [new file with mode: 0644]
tests/css/parser/at-valid-08.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-09.css [new file with mode: 0644]
tests/css/parser/at-valid-09.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-10.css [new file with mode: 0644]
tests/css/parser/at-valid-10.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-11.css [new file with mode: 0644]
tests/css/parser/at-valid-11.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-12.css [new file with mode: 0644]
tests/css/parser/at-valid-12.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-13.css [new file with mode: 0644]
tests/css/parser/at-valid-13.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-14.css [new file with mode: 0644]
tests/css/parser/at-valid-14.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-15.css [new file with mode: 0644]
tests/css/parser/at-valid-15.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-16.css [new file with mode: 0644]
tests/css/parser/at-valid-16.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-17.css [new file with mode: 0644]
tests/css/parser/at-valid-18.css [new file with mode: 0644]
tests/css/parser/at-valid-18.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-19.css [new file with mode: 0644]
tests/css/parser/at-valid-19.errors [new file with mode: 0644]
tests/css/parser/at-valid-19.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-20.css [new file with mode: 0644]
tests/css/parser/at-valid-20.errors [new file with mode: 0644]
tests/css/parser/at-valid-20.ref.css [new file with mode: 0644]
tests/css/parser/at-valid-21.css [new file with mode: 0644]
tests/css/parser/at-valid-21.errors [new file with mode: 0644]
tests/css/parser/at-valid-21.ref.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-01.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-01.errors [new file with mode: 0644]
tests/css/parser/declarations-invalid-01.ref.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-02.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-02.errors [new file with mode: 0644]
tests/css/parser/declarations-invalid-02.ref.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-03.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-03.errors [new file with mode: 0644]
tests/css/parser/declarations-invalid-03.ref.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-04.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-04.errors [new file with mode: 0644]
tests/css/parser/declarations-invalid-04.ref.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-05.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-05.errors [new file with mode: 0644]
tests/css/parser/declarations-invalid-05.ref.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-06.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-06.errors [new file with mode: 0644]
tests/css/parser/declarations-invalid-06.ref.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-07.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-07.errors [new file with mode: 0644]
tests/css/parser/declarations-invalid-07.ref.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-08.css [new file with mode: 0644]
tests/css/parser/declarations-invalid-08.errors [new file with mode: 0644]
tests/css/parser/declarations-invalid-08.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-01.css [new file with mode: 0644]
tests/css/parser/declarations-valid-01.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-02.css [new file with mode: 0644]
tests/css/parser/declarations-valid-02.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-03.css [new file with mode: 0644]
tests/css/parser/declarations-valid-03.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-04.css [new file with mode: 0644]
tests/css/parser/declarations-valid-04.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-05.css [new file with mode: 0644]
tests/css/parser/declarations-valid-05.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-06.css [new file with mode: 0644]
tests/css/parser/declarations-valid-06.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-07.css [new file with mode: 0644]
tests/css/parser/declarations-valid-07.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-08.css [new file with mode: 0644]
tests/css/parser/declarations-valid-08.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-09.css [new file with mode: 0644]
tests/css/parser/declarations-valid-09.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-10.css [new file with mode: 0644]
tests/css/parser/declarations-valid-10.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-11.css [new file with mode: 0644]
tests/css/parser/declarations-valid-11.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-12.css [new file with mode: 0644]
tests/css/parser/declarations-valid-12.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-13.css [new file with mode: 0644]
tests/css/parser/declarations-valid-13.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-14.css [new file with mode: 0644]
tests/css/parser/declarations-valid-14.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-15.css [new file with mode: 0644]
tests/css/parser/declarations-valid-15.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-16.css [new file with mode: 0644]
tests/css/parser/declarations-valid-16.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-17.css [new file with mode: 0644]
tests/css/parser/declarations-valid-17.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-18.css [new file with mode: 0644]
tests/css/parser/declarations-valid-18.errors [new file with mode: 0644]
tests/css/parser/declarations-valid-18.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-19.css [new file with mode: 0644]
tests/css/parser/declarations-valid-19.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-20.css [new file with mode: 0644]
tests/css/parser/declarations-valid-20.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-21.css [new file with mode: 0644]
tests/css/parser/declarations-valid-21.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-22.css [new file with mode: 0644]
tests/css/parser/declarations-valid-22.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-23.css [new file with mode: 0644]
tests/css/parser/declarations-valid-23.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-24.css [new file with mode: 0644]
tests/css/parser/declarations-valid-24.ref.css [new file with mode: 0644]
tests/css/parser/declarations-valid-25.css [new file with mode: 0644]
tests/css/parser/declarations-valid-25.ref.css [new file with mode: 0644]
tests/css/parser/empty.css [new file with mode: 0644]
tests/css/parser/test.png [new file with mode: 0644]
tests/reftests/Makefile.am
tests/reftests/border-radius-clamp.css [new file with mode: 0644]
tests/reftests/border-radius-clamp.ref.ui [new file with mode: 0644]
tests/reftests/border-radius-clamp.ui [new file with mode: 0644]
tests/reftests/label-sizing.ref.ui
tests/reftests/label-sizing.ui
tests/reftests/messagedialog-secondarytext.ref.ui [new file with mode: 0644]
tests/reftests/messagedialog-secondarytext.ui [new file with mode: 0644]
tests/reftests/style-properties-nth-child.css [new file with mode: 0644]
tests/reftests/style-properties-nth-child.ref.ui [new file with mode: 0644]
tests/reftests/style-properties-nth-child.ui [new file with mode: 0644]
tests/widget-factory.c
tests/widget-factory.ui

index 050202dd5174267c8e520430867285c933fa527a..47afc448f464e16ba2f0afa6abfdacba3718587e 100644 (file)
@@ -1,7 +1,7 @@
 ## Makefile.am for GTK+
 include $(top_srcdir)/Makefile.decl
 
-SRC_SUBDIRS = gdk gtk modules demos tests perf examples
+SRC_SUBDIRS = gdk gtk libgail-util modules demos tests perf examples
 SUBDIRS = po po-properties $(SRC_SUBDIRS) docs m4macros build
 
 ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
@@ -145,6 +145,7 @@ DISTCHECK_CONFIGURE_FLAGS =         \
                --enable-gtk-doc        \
                --enable-man            \
                --disable-rebuilds      \
+               --disable-maintainer-mode \
                --enable-introspection
 
 GITIGNOREFILES = \
diff --git a/NEWS b/NEWS
index 91f86deedb3d6342e73335802beb065a6f273b35..221aa5bf78440d1d2cf11d0bd1a26e29bdc4ac20 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,80 @@
+Overview of Changes in GTK+ 3.1.10
+==================================
+
+* Assorted file chooser improvements/redesign:
+ - Remove the expander in Save mode
+ - Move the path bar up in Save mode
+ - Remember the last opened directory
+ - Start in recently-used mode when no folder is set
+ - Update recent-files when confirming in the file chooser
+
+* Accessibility:
+ - Gail has been merged into GTK+ and is no longer a module
+ - A testsuite for a11y functionality has been added
+
+* Theming:
+ - Icon view cells can now have a border
+
+* GtkMountOperation can now show processes on OpenBSD
+
+* Gdk input devices now expose their XInput2 device ID
+  via gdk_x11_device_get_id()
+
+* Bugs fixed:
+ 653450 gtkfilechooser crashes when adding favorite
+ 653705 GtkAssistant doesn't notice destroyed pages
+ 653947 Crash in gdk/x11/gdkdevicemanager-xi2.c:get_event_window
+ 654125 gdkoffscreenwindow set any impl handlers to null...
+ 654179 iconview: make it possible for selected cells to render...
+ 654428 focusable labels are emitting inappropriate object:text-sel...
+ 654678 Message dialog's primary text font increases on every call...
+ 654695 Memory corruption in gtk_theming_engine_register_property()
+ 654720 void return issues cause compile issues for GTK 3.1.8
+ 655009 Clamp border radius following CSS specs
+ 654266 No longer possible to set empty text on a GtkProgressBar
+
+* Translation updates:
+ Galician
+ German
+ Hebrew
+ Latvian
+ Lithuanian
+ Norwegian bokmål
+ Persian
+ Polish
+ Slovenian
+ Spanish
+ Uighur
+
+
+Overview of Changes in GTK+ 3.1.8
+=================================
+
+* Theming improvements:
+  - Multiple colors are now supported
+  - Support CSS font properties like font-size, font-family, etc
+  - nth-child works for toolbars too
+
+* Bug fixes:
+ 652506 Improve GtkAssistant button labels
+ 652618 themingengine: shrink the background size to the padding-box
+ 652769 Reordering/removing hidden children in GtkBox results in 100% CPU
+ 653053 Avoid GApplication being released twice...
+ 653191 uninitialized variable in completion_match_func
+ 653333 Assigned value is garbage or undefined in gtktoolpalette.c:565
+ 653512 GtkEntryCompletion: Use a PAGE_STEP macro instead of a magic number
+ 653785 GtkStyleContext ignores style classes when getting style properties
+
+* Translation updates:
+ Belarusian
+ Dutch
+ Galician
+ Hebrew
+ Norwegian bokmål
+ Persian
+ Slovenian
+ Spanish
+
 Overview of Changes in GTK+ 3.1.6
 =================================
 
index 6ee09acbf3900a4c6792cc912ef798b8cb043223..f8cec33f0030fb855b3e3e3877ef6aac46558a58 100644 (file)
--- a/README.in
+++ b/README.in
@@ -27,6 +27,13 @@ Installation
 See the file 'INSTALL'
 
 
+Release notes for 3.2
+=====================
+
+* The accessible implementations for GTK+ widgets have been integrated
+  into libgtk itself, and the gail module does not exist anymore. This
+  change should not affect applications very much.
+
 Release notes for 3.0
 =====================
 
index ce9811f118db8a658b5ede24956b82eb33e24704..58e6440aef047e04e759725036d88febdc02fe8e 100644 (file)
@@ -16,4 +16,10 @@ EXTRA_DIST += \
        gtk.vcxproj.filtersin \
        gtk3-demo.vcxproj \
        gtk3-demo.vcxproj.filters \
+       libgail.vcxproj \
+       libgail.vcxproj.filters \
+       libgail.vcxprojin \
+       libgail.vcxproj.filtersin \
+       gailutil.vcxproj \
+       gailutil.vcxproj.filters \
        install.vcxproj
index 0fb5cb6a037bf8d0ddf8910cee4331f0083fb7e5..c99588eb96fec66bb4dfde38b415ec55f8a42593 100644 (file)
@@ -4,7 +4,8 @@ This VS10 solution and the projects it includes are intented to be used
 in a GTK+ source tree unpacked from a tarball. In a git checkout you\r
 first need to use some Unix-like environment or manual work to expand\r
 the files needed, like config.h.win32.in into config.h.win32 and the\r
-.vcprojin files here into corresponding actual .vcproj files.\r
+.vcxprojin and .vcxproj.filtersin files here into corresponding actual\r
+.vcxproj and vcxproj.filters files.\r
 \r
 You will need the parts from below in the GTK+ stack: GDK-Pixbuf, Pango,\r
 ATK and GLib.  External dependencies are at least Cairo\r
@@ -20,8 +21,8 @@ to different CRTs can be kept at a minimum.
 zlib, libpng, and Cairo do contain support for compiling under VS10\r
 using VS project files and/or makefiles at this time of writing, For the\r
 GTK+ stack, VS10 project files are either available under\r
-$(srcroot)/build/vs10 in the case of GLib (stable/unstable), ATK**\r
-(2.x stable/unstable) and GDK-Pixbuf (unstable), and should be in the next\r
+$(srcroot)/build/vs10 in the case of GLib (stable/unstable), ATK\r
+(stable/unstable) and GDK-Pixbuf (unstable), and should be in the next\r
 unstable version of Pango.  There is no known official VS10 build\r
 support for fontconfig (along with freetype and expat) and\r
 gettext-runtime, so please use the binaries from: \r
@@ -48,11 +49,11 @@ The recommended build order for these dependencies:
 -(for GDK-Pixbuf, if not using GDI+) jasper [jpeg-2000 library]\r
 -(optional for GLib) PCRE (version 8.12 or later, use of CMake to\r
   build PCRE is recommended-see build/win32/vs10/README.txt of GLib)\r
--GLib ***\r
+-GLib **\r
 -Cairo (inclusive of Cairo-GObject)\r
--ATK-2.x** ***\r
--Pango***\r
--GDK-Pixbuf***\r
+-ATK**\r
+-Pango**\r
+-GDK-Pixbuf**\r
 (note the last 3 dependencies are not interdependent, so the last 3\r
  dependencies can be built in any order)\r
 \r
@@ -71,19 +72,8 @@ from a specific GLib source tree.
  are referred to by components in Cairo and Pango mainly.\r
  Decide whether you need fontconfig support prior to building Cairo\r
  and Pango.\r
\r
-**Regarding ATK-2.x: prior to compiling ATK-2.x, please open atkprops\r
-  in VS under "Properties Manager" view (it is under any one of the\r
-  build configurations, right-click on atkprops and select "Properties").\r
-  Navigate to "User Macros", and edit the following fields:\r
-  AtkApiVersion -> 2.0\r
-  AtkLibToolCompatibleDllSuffix -> -2.0-0\r
-  AtkSeperateVS10DLLSuffix -> -2-vs10\r
-  Sorry this change did not make it upstream prior to ATK-2.0.0 release-\r
-  this will be in the subsequent releases of ATK-2.x and was committed\r
-  upstream.\r
 \r
-***:Put the sources of the packages marked with *** in <root>\<package-\r
+**:Put the sources of the packages marked with ** in <root>\<package-\r
     source-tree>, and build with VS10 from there.\r
 \r
 --Tor Lillqvist <tml@iki.fi>\r
diff --git a/build/win32/vs10/gailutil.vcxproj b/build/win32/vs10/gailutil.vcxproj
new file mode 100644 (file)
index 0000000..67829fd
--- /dev/null
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|x64">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>x64</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|x64">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>x64</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}</ProjectGuid>\r
+    <RootNamespace>gailutil</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+    <ConfigurationType>DynamicLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="gtk+.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="gtk+.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="gtk+.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="gtk+.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>\r
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>\r
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>\r
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>\r
+    <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</LinkIncremental>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <MinimalRebuild>true</MinimalRebuild>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+    </ClCompile>\r
+    <Link>\r
+      <AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>\r
+      <ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>\r
+      <SubSystem>Windows</SubSystem>\r
+      <TargetMachine>MachineX86</TargetMachine>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <MinimalRebuild>true</MinimalRebuild>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+    </ClCompile>\r
+    <Link>\r
+      <AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>\r
+      <ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <SubSystem>Windows</SubSystem>\r
+      <ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>\r
+      <TargetMachine>MachineX64</TargetMachine>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <PreprocessorDefinitions>GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+    </ClCompile>\r
+    <Link>\r
+      <AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>\r
+      <ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>\r
+      <SubSystem>Windows</SubSystem>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <TargetMachine>MachineX86</TargetMachine>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+    <ClCompile>\r
+      <AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <PreprocessorDefinitions>GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED;%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+    </ClCompile>\r
+    <Link>\r
+      <AdditionalDependencies>atk-1.0.lib;%(AdditionalDependencies)</AdditionalDependencies>\r
+      <OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll</OutputFile>\r
+      <ModuleDefinitionFile>..\..\..\libgail-util\gailutil.def</ModuleDefinitionFile>\r
+      <GenerateDebugInformation>true</GenerateDebugInformation>\r
+      <SubSystem>Windows</SubSystem>\r
+      <OptimizeReferences>true</OptimizeReferences>\r
+      <EnableCOMDATFolding>true</EnableCOMDATFolding>\r
+      <ImportLibrary>$(TargetDir)$(ProjectName).lib</ImportLibrary>\r
+      <TargetMachine>MachineX64</TargetMachine>\r
+    </Link>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\..\..\libgail-util\gailmisc.c" />\r
+    <ClCompile Include="..\..\..\libgail-util\gailtextutil.c" />\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ProjectReference Include="gdk.vcxproj">\r
+      <Project>{fc5aadb5-95cd-4bf0-ba8b-0c16fe7073f7}</Project>\r
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+    </ProjectReference>\r
+    <ProjectReference Include="gtk.vcxproj">\r
+      <Project>{fc5aadb5-95cd-4bf0-ba8b-0c16fe7073f5}</Project>\r
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>\r
+    </ProjectReference>\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
diff --git a/build/win32/vs10/gailutil.vcxproj.filters b/build/win32/vs10/gailutil.vcxproj.filters
new file mode 100644 (file)
index 0000000..68fa263
--- /dev/null
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Sources">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    </Filter>\r
+    <Filter Include="Headers">\r
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+    </Filter>\r
+    <Filter Include="Resource Files">\r
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+    <ClCompile Include="..\..\..\libgail-util\gailmisc.c">\r
+      <Filter>Sources</Filter>\r
+    </ClCompile>\r
+    <ClCompile Include="..\..\..\libgail-util\gailtextutil.c">\r
+      <Filter>Sources</Filter>\r
+    </ClCompile>\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
index 1a1d3b50b3280f523e168973c8d0eb58616324fd..a2d1d42495df0ba7979bab93390cd7e243a13171 100644 (file)
@@ -3,7 +3,7 @@
   <PropertyGroup Label="UserMacros">
     <GlibEtcInstallRoot>..\..\..\..\..\vs10\$(Platform)</GlibEtcInstallRoot>
     <CopyDir>$(GlibEtcInstallRoot)</CopyDir>
-    <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj</DefDir>
+    <DefDir>$(SolutionDir)$(Configuration)\$(Platform)\obj\$(ProjectName)</DefDir>
     <GtkApiVersion>3.0</GtkApiVersion>
     <GtkBinaryVersion>2.10.0</GtkBinaryVersion>
     <GtkDummyPrefix>\"/dummy\"</GtkDummyPrefix>
@@ -527,11 +527,22 @@ copy ..\..\..\gtk\gtkwidgetpath.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk
 copy ..\..\..\gtk\gtkwindow.h $(CopyDir)\include\gtk-$(GtkApiVersion)\gtk
 
 
+mkdir $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util
+
+copy ..\..\..\libgail-util\gail-util.h $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util
+
+copy ..\..\..\libgail-util\gailmisc.h $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util
+
+copy ..\..\..\libgail-util\gailtextutil.h $(CopyDir)\include\gail-$(GtkApiVersion)\libgail-util
+
+
 copy ..\..\..\gdk\gdkconfig.h $(CopyDir)\include\gtk-3.0\gdk
 
 
 copy $(Configuration)\$(Platform)\bin\*-$(GtkApiVersion).lib $(CopyDir)\lib
 
+copy $(Configuration)\$(Platform)\bin\gailutil.lib $(CopyDir)\lib
+
 
 mkdir $(CopyDir)\share\glib-2.0\schemas
 
@@ -559,7 +570,7 @@ $(CopyDir)\bin\glib-compile-schemas.exe $(CopyDir)\share\glib-2.0\schemas
   </PropertyGroup>
   <ItemDefinitionGroup>
     <ClCompile>
-      <AdditionalIncludeDirectories>..\..\..;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\atk-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\..\..;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_DISABLE_SINGLE_INCLUDES;ATK_DISABLE_SINGLE_INCLUDES;GDK_PIXBUF_DISABLE_SINGLE_INCLUDES;GTK_DISABLE_SINGLE_INCLUDES;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <ForcedIncludeFiles>msvc_recommended_pragmas.h;%(ForcedIncludeFiles)</ForcedIncludeFiles>
     </ClCompile>
index 1c8d67c8ba0b6ddd78f5a58d1b2449a630e28560..762167f9c7c8589161b1b1ded323f533cffed387 100644 (file)
@@ -8,6 +8,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk", "gtk.vcxproj", "{FC5A
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcxproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}"\r
 EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgail", "libgail.vcxproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil", "gailutil.vcxproj", "{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}"\r
+EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcxproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FB}"\r
 EndProject\r
 Global\r
@@ -50,6 +54,22 @@ Global
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}.Release|Win32.Build.0 = Release|Win32\r
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}.Release|x64.ActiveCfg = Release|x64\r
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}.Release|x64.Build.0 = Release|x64\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Debug|Win32.Build.0 = Debug|Win32\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Debug|x64.ActiveCfg = Debug|x64\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Debug|x64.Build.0 = Debug|x64\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Release|Win32.ActiveCfg = Release|Win32\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Release|Win32.Build.0 = Release|Win32\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Release|x64.ActiveCfg = Release|x64\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Release|x64.Build.0 = Release|x64\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Debug|Win32.Build.0 = Debug|Win32\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Debug|x64.ActiveCfg = Debug|x64\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Debug|x64.Build.0 = Debug|x64\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|Win32.ActiveCfg = Release|Win32\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|Win32.Build.0 = Release|Win32\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|x64.ActiveCfg = Release|x64\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|x64.Build.0 = Release|x64\r
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FB}.Debug|Win32.ActiveCfg = Debug|Win32\r
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FB}.Debug|Win32.Build.0 = Debug|Win32\r
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FB}.Debug|x64.ActiveCfg = Debug|x64\r
index 20868b3539a3111c4c910eac8d2a3e4c2639e9ad..2023301ce7168b14c5046d18a35d72a37bba07ca 100644 (file)
@@ -80,7 +80,7 @@
       <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <AdditionalDependencies>atk-2.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)-win32$(GtkDllSuffix).dll</OutputFile>
       <ModuleDefinitionFile>$(IntDir)gtk.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <AdditionalDependencies>atk-2.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)-win32$(GtkDllSuffix).dll</OutputFile>
       <ModuleDefinitionFile>$(IntDir)gtk.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <AdditionalDependencies>atk-2.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)-win32$(GtkDllSuffix).dll</OutputFile>
       <ModuleDefinitionFile>$(IntDir)gtk.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
     </ClCompile>
     <Link>
-      <AdditionalDependencies>atk-2.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+      <AdditionalDependencies>atk-1.0.lib;pangowin32-1.0.lib;imm32.lib;winspool.lib;comctl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
       <OutputFile>$(OutDir)$(GtkDllPrefix)$(ProjectName)-win32$(GtkDllSuffix).dll</OutputFile>
       <ModuleDefinitionFile>$(IntDir)gtk.def</ModuleDefinitionFile>
       <GenerateDebugInformation>true</GenerateDebugInformation>
       <Project>{fc5aadb5-95cd-4bf0-ba8b-0c16fe7073f7}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="libgail.vcxproj">
+      <Project>{f756b0db-40a1-4e9f-be1f-8f02cb86ea46}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
index f6972acffea589d98cedf6d74be55d1dc8c6cc52..99d4a739d0fe3edf2d300482fec30d0e1961a162 100644 (file)
       <Project>{fc5aadb5-95cd-4bf0-ba8b-0c16fe7073f5}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
     </ProjectReference>
+    <ProjectReference Include="gailutil.vcxproj">
+      <Project>{29e3e814-1ba3-4ad7-a3a7-3669cb80a942}</Project>
+      <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
+    </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
diff --git a/build/win32/vs10/libgail.vcxproj.filtersin b/build/win32/vs10/libgail.vcxproj.filtersin
new file mode 100644 (file)
index 0000000..636f826
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup>\r
+    <Filter Include="Sources">\r
+      <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>\r
+      <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>\r
+    </Filter>\r
+    <Filter Include="Headers">\r
+      <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>\r
+      <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>\r
+    </Filter>\r
+    <Filter Include="Resource Files">\r
+      <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>\r
+      <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>\r
+    </Filter>\r
+  </ItemGroup>\r
+  <ItemGroup>\r
+#include "libgail.vs10.sourcefiles.filters"\r
+  </ItemGroup>\r
+</Project>
\ No newline at end of file
diff --git a/build/win32/vs10/libgail.vcxprojin b/build/win32/vs10/libgail.vcxprojin
new file mode 100644 (file)
index 0000000..4ce213d
--- /dev/null
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">\r
+  <ItemGroup Label="ProjectConfigurations">\r
+    <ProjectConfiguration Include="Debug|Win32">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Debug|x64">\r
+      <Configuration>Debug</Configuration>\r
+      <Platform>x64</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|Win32">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>Win32</Platform>\r
+    </ProjectConfiguration>\r
+    <ProjectConfiguration Include="Release|x64">\r
+      <Configuration>Release</Configuration>\r
+      <Platform>x64</Platform>\r
+    </ProjectConfiguration>\r
+  </ItemGroup>\r
+  <PropertyGroup Label="Globals">\r
+    <ProjectGuid>{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}</ProjectGuid>\r
+    <RootNamespace>libgail</RootNamespace>\r
+    <Keyword>Win32Proj</Keyword>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+    <WholeProgramOptimization>true</WholeProgramOptimization>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>Unicode</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">\r
+    <ConfigurationType>StaticLibrary</ConfigurationType>\r
+    <CharacterSet>MultiByte</CharacterSet>\r
+  </PropertyGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />\r
+  <ImportGroup Label="ExtensionSettings">\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="gtk+.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="gtk+.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="gtk+.props" />\r
+  </ImportGroup>\r
+  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">\r
+    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />\r
+    <Import Project="gtk+.props" />\r
+  </ImportGroup>\r
+  <PropertyGroup Label="UserMacros" />\r
+  <PropertyGroup>\r
+    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>\r
+  </PropertyGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <MinimalRebuild>true</MinimalRebuild>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>EditAndContinue</DebugInformationFormat>\r
+    </ClCompile>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">\r
+    <ClCompile>\r
+      <Optimization>Disabled</Optimization>\r
+      <PreprocessorDefinitions>_DEBUG;G_ENABLE_DEBUG;$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <MinimalRebuild>true</MinimalRebuild>\r
+      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>\r
+      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+    </ClCompile>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">\r
+    <ClCompile>\r
+      <Optimization>MaxSpeed</Optimization>\r
+      <IntrinsicFunctions>true</IntrinsicFunctions>\r
+      <PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <FunctionLevelLinking>true</FunctionLevelLinking>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+    </ClCompile>\r
+  </ItemDefinitionGroup>\r
+  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">\r
+    <ClCompile>\r
+      <PreprocessorDefinitions>$(GtkDefines);%(PreprocessorDefinitions)</PreprocessorDefinitions>\r
+      <AdditionalIncludeDirectories>..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>\r
+      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>\r
+      <PrecompiledHeader>\r
+      </PrecompiledHeader>\r
+      <WarningLevel>Level3</WarningLevel>\r
+      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>\r
+    </ClCompile>\r
+  </ItemDefinitionGroup>\r
+  <ItemGroup>\r
+#include "libgail.vs10.sourcefiles"\r
+  </ItemGroup>\r
+  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />\r
+  <ImportGroup Label="ExtensionTargets">\r
+  </ImportGroup>\r
+</Project>
\ No newline at end of file
index 19c0523db60cd67b573f3f61c4c0ceb45e4f3148..63dca52aaa41a64904aaff088b155b80b85b6c1d 100644 (file)
@@ -10,4 +10,7 @@ EXTRA_DIST += \
        gtk.vcproj \
        gtk.vcprojin \
        gtk3-demo.vcproj \
+       libgail.vcproj \
+       libgail.vcprojin \
+       gailutil.vcproj \
        install.vcproj
index ea0c40a28fdf162e341ee685ede8459219bfc865..b06c0b0cd5144e04ef1b79818a967c405e69d773 100644 (file)
@@ -7,7 +7,7 @@ the files needed, like config.h.win32.in into config.h.win32 and the
 .vcprojin files here into corresponding actual .vcproj files.\r
 \r
 You will need the parts from below in the GTK+ stack: GDK-Pixbuf, Pango,\r
-ATK (2.x)** and GLib.  External dependencies are at least Cairo\r
+ATK and GLib.  External dependencies are at least Cairo\r
 (with Cairo-GObject support, meaning Cairo 1.10.x or later), zlib, libpng,\r
 gettext-runtime, fontconfig*, freetype*, expat*.  See the \r
 build/win32/vs9/README.txt file in glib for details where to unpack them.\r
@@ -20,8 +20,8 @@ to different CRTs can be kept at a minimum.
 zlib, libpng, and Cairo do contain support for compiling under VS9\r
 using VS project files and/or makefiles at this time of writing, For the\r
 GTK+ stack, VS9 project files are either available under\r
-$(srcroot)/build/vs9 in the case of GLib (stable/unstable), ATK**\r
-(2.x stable/unstable) and GDK-Pixbuf (unstable), and should be in the next\r
+$(srcroot)/build/vs9 in the case of GLib (stable/unstable), ATK\r
+(stable/unstable) and GDK-Pixbuf (unstable), and should be in the next\r
 unstable version of Pango.  There is no known official VS9 build\r
 support for fontconfig (along with freetype and expat) and\r
 gettext-runtime, so please use the binaries from: \r
@@ -48,11 +48,11 @@ The recommended build order for these dependencies:
 -(for GDK-Pixbuf, if not using GDI+) jasper [jpeg-2000 library])\r
 -(optional for GLib) PCRE (version 8.12 or later, use of CMake to\r
   build PCRE is recommended-see build/win32/vs9/README.txt of GLib)\r
--GLib ***\r
+-GLib **\r
 -Cairo (inclusive of Cairo-GObject)\r
--ATK-2.x** ***\r
--Pango***\r
--GDK-Pixbuf***\r
+-ATK**\r
+-Pango**\r
+-GDK-Pixbuf**\r
 (note the last 3 dependencies are not interdependent, so the last 3\r
  dependencies can be built in any order)\r
 \r
@@ -72,18 +72,7 @@ from a specific GLib source tree.
  Decide whether you need fontconfig support prior to building Cairo\r
  and Pango.\r
 \r
-**Regarding ATK-2.x: prior to compiling ATK-2.x, please open atkprops\r
-  in VS under "Properties Manager" view (it is under any one of the\r
-  build configurations, right-click on atkprops and select "Properties").\r
-  Navigate to "User Macros", and edit the following fields:\r
-  AtkApiVersion -> 2.0\r
-  AtkLibToolCompatibleDllSuffix -> -2.0-0\r
-  AtkSeperateVS9DLLSuffix -> -2-vs9\r
-  Sorry this change did not make it upstream prior to ATK-2.0.0 release-\r
-  this will be in the subsequent releases of ATK-2.x and was committed\r
-  upstream.\r
-\r
-***:Put the sources of the packages marked with *** in <root>\<package-\r
+**:Put the sources of the packages marked with ** in <root>\<package-\r
     source-tree>, and build with VS9 from there.\r
 \r
 --Tor Lillqvist <tml@iki.fi>\r
diff --git a/build/win32/vs9/gailutil.vcproj b/build/win32/vs9/gailutil.vcproj
new file mode 100644 (file)
index 0000000..dea1ded
--- /dev/null
@@ -0,0 +1,183 @@
+<?xml version="1.0" encoding="big5"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="9.00"\r
+       Name="gailutil"\r
+       ProjectGUID="{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}"\r
+       RootNamespace="gailutil"\r
+       Keyword="Win32Proj"\r
+       TargetFrameworkVersion="196613"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"\r
+               />\r
+               <Platform\r
+                       Name="x64"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       InheritedPropertySheets=".\gtk+.vsprops"\r
+                       ConfigurationType="2"\r
+                       CharacterSet="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"\r
+                               PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="3"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="4"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               LinkIncremental="2"\r
+                               AdditionalDependencies="atk-1.0.lib"\r
+                               OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"\r
+                               GenerateDebugInformation="true"\r
+                               ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def"\r
+                               ImportLibrary="$(TargetDir)$(ProjectName).lib"\r
+                               SubSystem="2"\r
+                               TargetMachine="1"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Debug|x64"\r
+                       InheritedPropertySheets=".\gtk+.vsprops"\r
+                       ConfigurationType="2"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"\r
+                               PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="3"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="atk-1.0.lib"\r
+                               OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"\r
+                               LinkIncremental="2"\r
+                               ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def"\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               ImportLibrary="$(TargetDir)$(ProjectName).lib"\r
+                               TargetMachine="17"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       InheritedPropertySheets=".\gtk+.vsprops"\r
+                       ConfigurationType="2"\r
+                       CharacterSet="1"\r
+                       WholeProgramOptimization="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="2"\r
+                               EnableIntrinsicFunctions="true"\r
+                               AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"\r
+                               PreprocessorDefinitions="GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"\r
+                               RuntimeLibrary="2"\r
+                               EnableFunctionLevelLinking="true"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               LinkIncremental="1"\r
+                               AdditionalDependencies="atk-1.0.lib"\r
+                               OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"\r
+                               GenerateDebugInformation="true"\r
+                               ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def"\r
+                               ImportLibrary="$(TargetDir)$(ProjectName).lib"\r
+                               SubSystem="2"\r
+                               OptimizeReferences="2"\r
+                               EnableCOMDATFolding="2"\r
+                               TargetMachine="1"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|x64"\r
+                       InheritedPropertySheets=".\gtk+.vsprops"\r
+                       ConfigurationType="2"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"\r
+                               PreprocessorDefinitions="GTK_DISABLE_DEPRECATED;GDK_DISABLE_DEPRECATED"\r
+                               RuntimeLibrary="2"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+                       <Tool\r
+                               Name="VCLinkerTool"\r
+                               AdditionalDependencies="atk-1.0.lib"\r
+                               OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)$(GtkDllSuffix).dll"\r
+                               LinkIncremental="2"\r
+                               ModuleDefinitionFile="..\..\..\libgail-util\gailutil.def"\r
+                               GenerateDebugInformation="true"\r
+                               SubSystem="2"\r
+                               OptimizeReferences="2"\r
+                               EnableCOMDATFolding="2"\r
+                               ImportLibrary="$(TargetDir)$(ProjectName).lib"\r
+                               TargetMachine="17"\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <Filter\r
+                       Name="Sources"\r
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+                       >\r
+                       <File RelativePath="..\..\..\libgail-util\gailmisc.c" />\r
+                       <File RelativePath="..\..\..\libgail-util\gailtextutil.c" />\r
+               </Filter>\r
+               <Filter\r
+                       Name="Headers"\r
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+                       >\r
+               </Filter>\r
+               <Filter\r
+                       Name="Resource Files"\r
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+                       >\r
+               </Filter>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r
index fd10ebf142b62cad205791a6f7231bb163e9992a..2620e17888675a4d8f849d4e9e922e17c68eb805 100644 (file)
@@ -10,6 +10,7 @@ EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk", "gtk.vcproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7}\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46} = {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}\r
        EndProjectSection\r
 EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}"\r
@@ -18,11 +19,20 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gtk3-demo", "gtk3-demo.vcpr
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}\r
        EndProjectSection\r
 EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libgail", "libgail.vcproj", "{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}"\r
+EndProject\r
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gailutil", "gailutil.vcproj", "{29E3E814-1BA3-4AD7-A3A7-3669CB80A942}"\r
+       ProjectSection(ProjectDependencies) = postProject\r
+               {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7}\r
+               {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}\r
+       EndProjectSection\r
+EndProject\r
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "install", "install.vcproj", "{FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FB}"\r
        ProjectSection(ProjectDependencies) = postProject\r
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F7}\r
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073F5}\r
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC} = {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942} = {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}\r
        EndProjectSection\r
 EndProject\r
 Global\r
@@ -73,6 +83,22 @@ Global
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}.Release|Win32.Build.0 = Release|Win32\r
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}.Release|x64.ActiveCfg = Release|x64\r
                {FC5AADB5-95CD-4BF0-BA8B-0C16FE7073FC}.Release|x64.Build.0 = Release|x64\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Debug|Win32.Build.0 = Debug|Win32\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Debug|x64.ActiveCfg = Debug|x64\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Debug|x64.Build.0 = Debug|x64\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Release|Win32.ActiveCfg = Release|Win32\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Release|Win32.Build.0 = Release|Win32\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Release|x64.ActiveCfg = Release|x64\r
+               {F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}.Release|x64.Build.0 = Release|x64\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Debug|Win32.ActiveCfg = Debug|Win32\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Debug|Win32.Build.0 = Debug|Win32\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Debug|x64.ActiveCfg = Debug|x64\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Debug|x64.Build.0 = Debug|x64\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|Win32.ActiveCfg = Release|Win32\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|Win32.Build.0 = Release|Win32\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|x64.ActiveCfg = Release|x64\r
+               {29E3E814-1BA3-4AD7-A3A7-3669CB80A942}.Release|x64.Build.0 = Release|x64\r
        EndGlobalSection\r
        GlobalSection(SolutionProperties) = preSolution\r
                HideSolutionNode = FALSE\r
index 85ad7010bd08adde66ce0f0341bcfdf7e275c1a7..a96a8d23d98189021819e0dc69787b537e05ab57 100644 (file)
@@ -8,7 +8,7 @@
        >\r
        <Tool\r
                Name="VCCLCompilerTool"\r
-               AdditionalIncludeDirectories="..\..\..;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\atk-2.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0"\r
+               AdditionalIncludeDirectories="..\..\..;$(GlibEtcInstallRoot)\lib\glib-2.0\include;$(GlibEtcInstallRoot)\include\glib-2.0;$(GlibEtcInstallRoot)\include;$(GlibEtcInstallRoot)\include\cairo;$(GlibEtcInstallRoot)\include\atk-1.0;$(GlibEtcInstallRoot)\include\pango-1.0;$(GlibEtcInstallRoot)\include\gdk-pixbuf-2.0"\r
                PreprocessorDefinitions="HAVE_CONFIG_H;G_DISABLE_DEPRECATED;G_DISABLE_SINGLE_INCLUDES;ATK_DISABLE_SINGLE_INCLUDES;GDK_PIXBUF_DISABLE_SINGLE_INCLUDES;GTK_DISABLE_SINGLE_INCLUDES"\r
                ForcedIncludeFiles="msvc_recommended_pragmas.h"\r
        />\r
@@ -318,9 +318,15 @@ copy ..\..\..\gtk\gtkwidget.h $(OutDir)\include\gtk-$(GtkApiVersion)\gtk&#x0D;&#
 copy ..\..\..\gtk\gtkwidgetpath.h $(OutDir)\include\gtk-$(GtkApiVersion)\gtk&#x0D;&#x0A;\r
 copy ..\..\..\gtk\gtkwindow.h $(OutDir)\include\gtk-$(GtkApiVersion)\gtk&#x0D;&#x0A;\r
 \r
+mkdir $(OutDir)\include\gail-$(GtkApiVersion)\libgail-util&#x0D;&#x0A;\r
+copy ..\..\..\libgail-util\gail-util.h $(OutDir)\include\gail-$(GtkApiVersion)\libgail-util&#x0D;&#x0A;\r
+copy ..\..\..\libgail-util\gailmisc.h $(OutDir)\include\gail-$(GtkApiVersion)\libgail-util&#x0D;&#x0A;\r
+copy ..\..\..\libgail-util\gailtextutil.h $(OutDir)\include\gail-$(GtkApiVersion)\libgail-util&#x0D;&#x0A;\r
+\r
 copy ..\..\..\gdk\gdkconfig.h $(OutDir)\include\gtk-3.0\gdk&#x0D;&#x0A;\r
 \r
 copy $(ConfigurationName)\$(PlatformName)\bin\*-$(GtkApiVersion).lib $(OutDir)\lib&#x0D;&#x0A;\r
+copy $(ConfigurationName)\$(PlatformName)\bin\gailutil.lib $(OutDir)\lib&#x0D;&#x0A;\r
 \r
 mkdir $(OutDir)\share\glib-2.0\schemas&#x0D;&#x0A;\r
 copy ..\..\..\gtk\org.gtk.Settings.FileChooser.gschema.xml $(OutDir)\share\glib-2.0\schemas&#x0D;&#x0A;\r
index 7aa0dca449899907d812e28818b15411b54621ab..e10878be154ff2f608037550e06f25cde141eb1e 100644 (file)
@@ -42,7 +42,7 @@
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
-                               AdditionalDependencies="atk-2.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"\r
+                               AdditionalDependencies="atk-1.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"\r
                                OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)-win32$(GtkDllSuffix).dll"\r
                                LinkIncremental="2"\r
                                ModuleDefinitionFile="$(IntDir)\gtk.def"\r
@@ -72,7 +72,7 @@
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
-                               AdditionalDependencies="atk-2.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"\r
+                               AdditionalDependencies="atk-1.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"\r
                                OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)-win32$(GtkDllSuffix).dll"\r
                                LinkIncremental="2"\r
                                ModuleDefinitionFile="$(IntDir)\gtk.def"\r
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
-                               AdditionalDependencies="atk-2.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"\r
+                               AdditionalDependencies="atk-1.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"\r
                                OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)-win32$(GtkDllSuffix).dll"\r
                                LinkIncremental="2"\r
                                ModuleDefinitionFile="$(IntDir)\gtk.def"\r
                        />\r
                        <Tool\r
                                Name="VCLinkerTool"\r
-                               AdditionalDependencies="atk-2.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"\r
+                               AdditionalDependencies="atk-1.0.lib pangowin32-1.0.lib imm32.lib winspool.lib comctl32.lib"\r
                                OutputFile="$(OutDir)\$(GtkDllPrefix)$(ProjectName)-win32$(GtkDllSuffix).dll"\r
                                LinkIncremental="2"\r
                                ModuleDefinitionFile="$(IntDir)\gtk.def"\r
diff --git a/build/win32/vs9/libgail.vcprojin b/build/win32/vs9/libgail.vcprojin
new file mode 100644 (file)
index 0000000..6a6ddd4
--- /dev/null
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="big5"?>\r
+<VisualStudioProject\r
+       ProjectType="Visual C++"\r
+       Version="9.00"\r
+       Name="libgail"\r
+       ProjectGUID="{F756B0DB-40A1-4E9F-BE1F-8F02CB86EA46}"\r
+       RootNamespace="libgail"\r
+       Keyword="Win32Proj"\r
+       TargetFrameworkVersion="196613"\r
+       >\r
+       <Platforms>\r
+               <Platform\r
+                       Name="Win32"\r
+               />\r
+               <Platform\r
+                       Name="x64"\r
+               />\r
+       </Platforms>\r
+       <ToolFiles>\r
+       </ToolFiles>\r
+       <Configurations>\r
+               <Configuration\r
+                       Name="Debug|Win32"\r
+                       InheritedPropertySheets=".\gtk+.vsprops"\r
+                       ConfigurationType="4"\r
+                       CharacterSet="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GtkDefines)"\r
+                               AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="3"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="4"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Debug|x64"\r
+                       InheritedPropertySheets=".\gtk+.vsprops"\r
+                       ConfigurationType="4"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="0"\r
+                               PreprocessorDefinitions="_DEBUG;G_ENABLE_DEBUG;$(GtkDefines)"\r
+                               AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"\r
+                               MinimalRebuild="true"\r
+                               BasicRuntimeChecks="3"\r
+                               RuntimeLibrary="3"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|Win32"\r
+                       InheritedPropertySheets=".\gtk+.vsprops"\r
+                       ConfigurationType="4"\r
+                       CharacterSet="1"\r
+                       WholeProgramOptimization="1"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               Optimization="2"\r
+                               EnableIntrinsicFunctions="true"\r
+                               PreprocessorDefinitions="$(GtkDefines)"\r
+                               AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"\r
+                               RuntimeLibrary="2"\r
+                               EnableFunctionLevelLinking="true"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+               </Configuration>\r
+               <Configuration\r
+                       Name="Release|x64"\r
+                       InheritedPropertySheets=".\gtk+.vsprops"\r
+                       ConfigurationType="4"\r
+                       CharacterSet="2"\r
+                       >\r
+                       <Tool\r
+                               Name="VCPreBuildEventTool"\r
+                       />\r
+                       <Tool\r
+                               Name="VCCLCompilerTool"\r
+                               PreprocessorDefinitions="$(GtkDefines)"\r
+                               AdditionalIncludeDirectories="..\..\..\gtk;..\..\..\gdk;..\..\..\gdk\win32"\r
+                               RuntimeLibrary="2"\r
+                               UsePrecompiledHeader="0"\r
+                               WarningLevel="3"\r
+                               DebugInformationFormat="3"\r
+                       />\r
+               </Configuration>\r
+       </Configurations>\r
+       <References>\r
+       </References>\r
+       <Files>\r
+               <Filter\r
+                       Name="Sources"\r
+                       Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"\r
+                       UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"\r
+                       >\r
+#include "libgail.sourcefiles"\r
+               </Filter>\r
+               <Filter\r
+                       Name="Headers"\r
+                       Filter="h;hpp;hxx;hm;inl;inc;xsd"\r
+                       UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"\r
+                       >\r
+               </Filter>\r
+               <Filter\r
+                       Name="Resource Files"\r
+                       Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"\r
+                       UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"\r
+                       >\r
+               </Filter>\r
+       </Files>\r
+       <Globals>\r
+       </Globals>\r
+</VisualStudioProject>\r
index ec7548ae37e5f1d25f4f969c5f3f713aa009841c..0f4386ccbe68751f1d7e621ac0b89343c8b2a3d7 100644 (file)
@@ -10,7 +10,7 @@
 
 m4_define([gtk_major_version], [3])
 m4_define([gtk_minor_version], [1])
-m4_define([gtk_micro_version], [7])
+m4_define([gtk_micro_version], [11])
 m4_define([gtk_interface_age], [0])
 m4_define([gtk_binary_age],
           [m4_eval(100 * gtk_minor_version + gtk_micro_version)])
@@ -39,8 +39,8 @@ AC_CONFIG_AUX_DIR([build-aux])
 m4_define([gtk_binary_version], [3.0.0])
 
 # required versions of other packages
-m4_define([glib_required_version], [2.29.4])
-m4_define([pango_required_version], [1.24.0])
+m4_define([glib_required_version], [2.29.14])
+m4_define([pango_required_version], [1.29.0])
 m4_define([atk_required_version], [1.30])
 m4_define([cairo_required_version], [1.10.0])
 m4_define([gdk_pixbuf_required_version], [2.22.0])
@@ -165,6 +165,9 @@ case $host in
   *-*-linux*)
     os_linux=yes
     ;;
+  *-*-openbsd*)
+    os_openbsd=yes
+    ;;
 esac
 
 dnl
@@ -1300,6 +1303,10 @@ if test "x$enable_x11_backend" = xyes; then
   GTK_PACKAGES="$GTK_PACKAGES pangoft2"
 fi
 GTK_EXTRA_LIBS=
+if test x"$os_openbsd" = xyes; then
+  GTK_EXTRA_LIBS="$GTK_EXTRA_LIBS -lkvm"
+fi
+
 GTK_EXTRA_CFLAGS=
 GTK_DEP_LIBS="$GDK_EXTRA_LIBS $GTK_DEP_LIBS_FOR_X `$PKG_CONFIG --libs $PANGO_PACKAGES $GTK_PACKAGES_FOR_X $GTK_PACKAGES` $GTK_EXTRA_LIBS"
 GTK_DEP_CFLAGS="`$PKG_CONFIG --cflags  gthread-2.0 $GDK_PACKAGES $GTK_PACKAGES` $GDK_EXTRA_CFLAGS $GTK_EXTRA_CFLAGS"
@@ -1708,6 +1715,7 @@ demos/gtk-demo/geninclude.pl
 demos/pixbuf-demo/Makefile
 examples/Makefile
 tests/Makefile
+tests/a11y/Makefile
 tests/css/Makefile
 tests/css/parser/Makefile
 tests/reftests/Makefile
@@ -1737,12 +1745,10 @@ gtk/Makefile
 gtk/makefile.msc
 gtk/gtkversion.h
 gtk/gtk-win32.rc
+gtk/a11y/Makefile
 gtk/tests/Makefile
+libgail-util/Makefile
 modules/Makefile
-modules/other/Makefile
-modules/other/gail/Makefile
-modules/other/gail/libgail-util/Makefile
-modules/other/gail/tests/Makefile
 modules/engines/Makefile
 modules/engines/pixbuf/Makefile
 modules/engines/ms-windows/Makefile
index e4c45538dfa91a1c3b05d92ed9e7b2a336ea92aa..973307869ce28ebf53ef80ab3d7461bd626ec93b 100644 (file)
@@ -46,7 +46,7 @@ demos =                                               \
        tree_store.c                            \
        ui_manager.c
 
-INCLUDES = \
+AM_CPPFLAGS = \
        -DDEMOCODEDIR="\"$(democodedir)\""      \
        -I$(top_srcdir)                         \
        -I$(top_builddir)/gdk                   \
index ca520ce7dcb88b3e730e7260ed1e54db21ac030b..c5c5aaae266937d27e8b0f8d24e2a4faa855b4ac 100644 (file)
@@ -1,7 +1,7 @@
 ## Makefile.am for gtk+/demos
 include $(top_srcdir)/Makefile.decl
 
-INCLUDES =                             \
+AM_CPPFLAGS =                          \
        -I$(top_srcdir)                 \
        -I$(top_builddir)/gdk           \
        -DGDK_DISABLE_DEPRECATED        \
index c5fff3bca58966dfd341080c6872009b8d8c894a..5b698bef8a70f4835b2b3a4caeac1aa30031231d 100644 (file)
@@ -8,7 +8,6 @@ EXTRA_DIST += \
        developers.txt                  \
        dnd_internals.txt               \
        focus_tracking.txt              \
-       generation.txt                  \
        gtkdocs_fix                     \
        make-todo                       \
        refcounting.txt                 \
diff --git a/docs/generation.txt b/docs/generation.txt
deleted file mode 100644 (file)
index bc47664..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-Overview:
-========
-
-This file describes the way that autogeneration
-works within the GTK+ source code.
-
-The following files in the gdk/ subdirectory
-are autogenerated:
-
-  gdkkeysyms.h
-  gdkcursors.h 
-
-The following files in the gtk/ subdirectory 
-are autogenerated:
-
- gtk.defs
-   Description of GTK+ types (and some functions) in a lisp-style
-   format.
- gtktypebuiltins.h
-   Header file including declarations for internal types  
- gtktypebuiltins_vars.c
-   Variables for type values for internal types.
- gtktypebuiltins_ids.c
-   Arrays holding information about each internal type.
- gtktypebuiltins_evals.c
-   Arrays holding mapping between enumeration values
-   and strings.
-
- gtkmarshal.c
- gtkmarshal.h
-   Autogenerated signal marshallers
-
-GDK
-===
-
-gdkkeysyms.h and gdkcursors.h are generated from
-the corresponding header files
-
-  X11/cursorfont.h
-  X11/keysymdef.h
-
-by some simple sed scripts. These are not actually
-run automatically because we want all the keysyms
-even on systems with a limited set.
-So the Gdk rule to generate both files (X-derived-headers)
-only needs to be rerun for every new release of the X Window
-System.
-
-GTK+ - type definitions
-=======================
-
-The type definitions are generated from several sources:
-
- gtk-boxed.defs - definitions for boxed types
- GTK+ header files
- GDK header files
-
-The makeenums.pl script does a heuristic parse of 
-the header files and extracts all enumerations declarations.
-It also recognizes a number of pseudo-comments in the
-header files:
-
-Two of these apply to individual enumeration values:
-
-  /*< skip >*/
-
- This enumeration value should be skipped.
-  
-  /*< nick=NICK >*/
-
- The nickname for this value should NICK instead of the
- normally guessed value. For instance:
-
-  typedef enum {
-    GTK_TARGET_SAME_APP = 1 << 0,    /*< nick=same-app >*/
-    GTK_TARGET_SAME_WIDGET = 1 << 1  /*< nick=same-widget >*/
-  } GtkTargetFlags;
-
- makes the nicks "same-app" and "same-widget", instead of
- "app" and "widget" that would normally be used.
-
-The other two apply to entire enumeration declarations.
-  /*< prefix=PREFIX >*/
-
-  Specifies the prefix to be removed from the enumeration
-  values to generate nicknames.
-
-  /*< flags >*/
-
- Specifies that this enumeration is used as a bitfield.
- (makenums.pl normally guesses this from the presence of values
-  with << operators). For instance:
-
-  typedef enum                    /*< flags >*/
-  {
-    GDK_IM_PREEDIT_AREA      = 0x0001, 
-    GDK_IM_PREEDIT_CALLBACKS = 0x0002, 
-    [ ... ]
- } GdkIMStyle;
-
-makeenums.pl can be run into two modes:
-
- 1) Generate the gtktypebuiltins_eval.c file (this
-    contains arrays holding the mapping of 
-    string <=> enumeration value)
-
- 2) Generate the enumeration portion of gtk.defs.
-
-The enumeration portion is added to the boxed type 
-declarations in gtk-boxed.defs to create gtk.defs.
-
-The makeetypes.awk program takes the gtk.defs file, and
-from that generates various files depending on the
-third parameter passed to it:
-
- macros: gtktypebuiltins.h
- variables: gtktypebuiltins_vars.c
- entries: gtktypebuiltins_ids.c
-
-GTK+ - marshallers
-==================
-
-The files gtkmarshal.c and gtkmarshal.h include declarations
-and definitions for the marshallers needed inside of
-GTK+. The marshallers to be generated are listed in
-the file gtkmashal.list, which is processed
-by genmarshal.pl.
-
-The format of this file is a list of lines:
-
-  <retval-type>:<arg1-type>,<arg2-type>,<arg3-type>
-e.g.:
-
-  BOOL:POINTER,STRING,STRING,POINTER
-
-A marshaller is generated for each line in the file.
-The possible types are:
-
- NONE
- BOOL
- CHAR
- INT
- UINT
- LONG
- ULONG
- FLOAT
- DOUBLE
- STRING
- ENUM
- FLAGS
- BOXED
- POINTER
- OBJECT
- FOREIGN    (gpointer data, GtkDestroyNotify notify)
- C_CALLBACK (GtkFunction func, gpointer func_data)
- SIGNAL     (GtkSignalFunc f, gpointer data)
- ARGS       (gint n_args, GtkArg *args)
- CALLBACK   (GtkCallBackMarshal marshall,
-             gpointer data,
-            GtkDestroyNotify Notify)
-
-Some of these types map to multiple return values - these
-are marked above with the return types in parentheses.
-
-NOTES
-=====
-
-When autogenerating GTK+ files, the autogenerated
-files are often rebuild resulting in the same result.
-
-To prevent unnecessary rebuilds of the entire directory, some files
-that multiple other source files depend on are not actually written
-to directly.  Instead, an intermediate file is written, which
-is then compared to the old file, and only if it is different
-is it copied into the final location.
index 8f4ad9e89ff135afa2de52dbec45f7252e305af6..aab34e34028ff370723660e0b0c89c543b7508c9 100644 (file)
@@ -37,7 +37,7 @@ EXTRA_HFILES=                 \
 
 # CFLAGS and LDFLAGS for compiling scan program. Only needed
 # if $(DOC_MODULE).types is non-empty.
-INCLUDES =                     \
+AM_CPPFLAGS =                  \
        -I$(top_srcdir)         \
        -I$(top_builddir)       \
        -I$(top_builddir)/gdk   \
index 287599b54bb0ba1fea3f58389ca065bba17224cc..6f373f1c366e592165e91d35f92b3fa727c913ee 100644 (file)
@@ -928,6 +928,8 @@ GDK_POINTER_TO_XID
 GDK_XID_TO_POINTER
 gdk_x11_lookup_xdisplay
 gdk_x11_get_server_time
+gdk_x11_device_get_id
+gdk_x11_device_manager_lookup
 gdk_x11_display_get_user_time
 gdk_x11_display_broadcast_startup_message
 gdk_x11_display_get_startup_notification_id
index 7c80efe490cef2f188f8d6a527bbf9f5db8d7f7d..153ecfc74a09f836ddd0f6d892b73680806fc4af 100644 (file)
@@ -94,7 +94,7 @@ IGNORE_HFILES=                                \
 
 # CFLAGS and LDFLAGS for compiling scan program. Only needed
 # if $(DOC_MODULE).types is non-empty.
-INCLUDES = \
+AM_CPPFLAGS = \
        -I$(top_srcdir)         \
        -I$(top_builddir)       \
        -I$(top_builddir)/gdk   \
index 9e053f31ef4541bfb8ce1a30d3c65a4919f3ab2e..0167abb005b3c1633c7bd7c606841062230e5c15 100644 (file)
@@ -354,6 +354,7 @@ gtk_assistant_get_nth_page
 gtk_assistant_prepend_page
 gtk_assistant_append_page
 gtk_assistant_insert_page
+gtk_assistant_remove_page
 GtkAssistantPageFunc
 gtk_assistant_set_forward_page_func
 GtkAssistantPageType
@@ -5050,6 +5051,8 @@ gtk_widget_style_get
 gtk_widget_style_get_property
 gtk_widget_style_get_valist
 gtk_widget_style_attach
+gtk_widget_class_set_accessible_type
+gtk_widget_class_set_accessible_role
 gtk_widget_get_accessible
 gtk_widget_child_focus
 gtk_widget_child_notify
@@ -5724,6 +5727,7 @@ GTK_THEMING_ENGINE_GET_CLASS
 GTK_IS_THEMING_ENGINE
 GTK_IS_THEMING_ENGINE_CLASS
 <SUBSECTION Private>
+GtkThemingEnginePrivate
 GTK_TYPE_THEMING_ENGINE
 gtk_theming_engine_get_type
 </SECTION>
@@ -7091,11 +7095,6 @@ GtkLockButtonPrivate
 GtkOverlay
 
 gtk_overlay_new
-gtk_overlay_set_relative_widget
-gtk_overlay_get_relative_widget
-gtk_overlay_add
-gtk_overlay_set_offset
-gtk_overlay_get_offset
 
 <SUBSECTION Standard>
 GTK_TYPE_OVERLAY
index bbef6a526a004b54fae5e6e144ad08f429c9c5db..7670a80e295fd50385f668bebccbc5904f995b9f 100644 (file)
@@ -704,8 +704,8 @@ cairo_arc (cr, 1.5, 1.5, 1.5, 0, 2 * M_PI);
 cairo_fill (cr);
 cairo_destroy (cr);
 
-pixbuf = gdk_pixbuf_get_from_surface (NULL, s,
-                                      0, 0, 0, 0,
+pixbuf = gdk_pixbuf_get_from_surface (s,
+                                      0, 0,
                                       3, 3);
 
 cairo_surface_destroy (s);
index 8c30e2daf74b8ed81e88134ef25a8595953124ce..3b52a0f2341be78577125a50dd321f8a0bfab773 100644 (file)
@@ -9,20 +9,20 @@ DOC_MODULE=gail-libgail-util3
 DOC_MAIN_SGML_FILE=gail-libgail-util-docs.sgml
 
 # The directory containing the source code (if it contains documentation).
-DOC_SOURCE_DIR=../../../modules/other/gail/libgail-util
+DOC_SOURCE_DIR=../../../libgail-util
 
 # Used for dependencies
-HFILE_GLOB = $(top_srcdir)/modules/other/gail/libgail-util/*.h
-CFILE_GLOB = $(top_srcdir)/modules/other/gail/libgail-util/*.c
+HFILE_GLOB = $(top_srcdir)/libgail-util/*.h
+CFILE_GLOB = $(top_srcdir)/libgail-util/*.c
 
 # CFLAGS and LDFLAGS for compiling scan program. Only needed
 # if $(DOC_MODULE).types is non-empty.
-INCLUDES =                      \
+AM_CPPFLAGS =                   \
         -I$(top_srcdir)         \
         -I$(top_builddir)       \
         $(DEP_CFLAGS)
 
-GTKDOC_LIBS = $(top_builddir)/modules/other/gail/libgail-util/libgailutil.la
+GTKDOC_LIBS = $(top_builddir)/libgail-util/libgailutil.la
 
 # gtkdoc-mkdb related varaibles
 MKDB_OPTIONS =
index 03bef71df4cc8fc35bcc690bd40cc1e0312fd5a6..e3b2966bada0ee80c8779b11d5dc3e318af31cb9 100644 (file)
@@ -1,6 +1,6 @@
 include $(top_srcdir)/Makefile.decl
 
-INCLUDES = \
+AM_CPPFLAGS = \
        -I$(top_srcdir)                 \
        -I$(top_builddir)/gdk           \
        -I$(top_srcdir)/gdk             \
index 8ef4e6dafedb1a23f6bd6345b8481f704b919aa2..011e5a55743f25bd19000d5d096df1bc51284280 100644 (file)
@@ -35,7 +35,7 @@ OLD_EXAMPLES = \
                tictactoe \
                wheelbarrow
 
-INCLUDES = \
+AM_CPPFLAGS = \
        -I$(top_srcdir)                         \
        -I$(top_srcdir)/gdk                     \
        -I$(top_builddir)/gdk                   \
index 9f4a570b0d991f1d3d0b13c87c82a964af7c95ae..c7f24af8ce7ecd49132ef14ee5bfbfd6dfe22c45 100644 (file)
@@ -25,14 +25,13 @@ EXTRA_DIST +=                       \
        gdk.def                 \
        gdkmarshalers.list      \
        gdkwindowimpl.h         \
-       makeenums.pl            \
        makefile.msc            \
        gdk.symbols             \
        gdkenumtypes.c.template \
        gdkenumtypes.h.template \
        abicheck.sh
 
-INCLUDES =                             \
+AM_CPPFLAGS =                          \
        -DG_LOG_DOMAIN=\"Gdk\"          \
        -DGDK_COMPILATION               \
        -I$(top_srcdir)                 \
@@ -195,7 +194,7 @@ Gdk_3_0_gir_SCANNERFLAGS =  \
 Gdk_3_0_gir_INCLUDES = Gio-2.0 GdkPixbuf-2.0 Pango-1.0 cairo-1.0
 Gdk_3_0_gir_LIBS = libgdk-3.la
 Gdk_3_0_gir_FILES = $(introspection_files)
-Gdk_3_0_gir_CFLAGS = $(INCLUDES)
+Gdk_3_0_gir_CFLAGS = $(AM_CPPFLAGS)
 Gdk_3_0_gir_EXPORT_PACKAGES = gdk-3.0
 INTROSPECTION_GIRS += Gdk-3.0.gir
 
@@ -248,7 +247,7 @@ GdkX11_3_0_gir_SCANNERFLAGS =               \
 GdkX11_3_0_gir_INCLUDES = Gio-2.0 GdkPixbuf-2.0 Pango-1.0 xlib-2.0
 GdkX11_3_0_gir_LIBS = libgdk-3.la
 GdkX11_3_0_gir_FILES = $(x11_introspection_files)
-GdkX11_3_0_gir_CFLAGS = $(INCLUDES) -L$(top_builddir)/gdk
+GdkX11_3_0_gir_CFLAGS = $(AM_CPPFLAGS) -L$(top_builddir)/gdk
 GdkX11_3_0_gir_EXPORT_PACKAGES = gdk-x11-3.0
 INTROSPECTION_GIRS += GdkX11-3.0.gir
 
index 3c58e1ee950d91345c4ba04ba109dade977490c5..423c243dfee9aaf1597ca237d9947707e15131c2 100644 (file)
@@ -4,7 +4,7 @@ include $(top_srcdir)/Makefile.decl
 libgdkincludedir = $(includedir)/gtk-3.0/gdk
 libgdkbroadwayincludedir = $(includedir)/gtk-3.0/gdk/broadway
 
-INCLUDES =                     \
+AM_CPPFLAGS =                  \
        -DG_LOG_DOMAIN=\"Gdk\"  \
        -DGDK_COMPILATION       \
        -I$(top_srcdir)         \
index 239ca4e4abd0c9096f079a2167ece6d4d36a622e..04ca455dbf75a8ac12b0db3e556c133e27cb9056 100644 (file)
@@ -513,7 +513,9 @@ gdk_x11_cursor_get_type
 gdk_x11_cursor_get_xcursor
 gdk_x11_cursor_get_xdisplay
 gdk_x11_device_core_get_type
+gdk_x11_device_get_id
 gdk_x11_device_manager_core_get_type
+gdk_x11_device_manager_lookup
 gdk_x11_device_manager_xi2_get_type
 gdk_x11_device_manager_xi_get_type
 gdk_x11_device_xi2_get_type
index 0b8b978f37b7e8635df23ea50c17aff8c147c279..bc91ac0da543fa9ec2e7b79f7b57ee77f4c6cde0 100644 (file)
@@ -690,6 +690,12 @@ gdk_offscreen_window_set_string (GdkWindow *window,
 {
 }
 
+static void
+gdk_offscreen_window_set_list (GdkWindow *window,
+                               GList *list)
+{
+}
+
 static void
 gdk_offscreen_window_set_wmfunctions (GdkWindow            *window,
                                      GdkWMFunction  functions)
@@ -763,8 +769,8 @@ gdk_offscreen_window_class_init (GdkOffscreenWindowClass *klass)
   impl_class->set_override_redirect = NULL;
   impl_class->set_accept_focus = NULL;
   impl_class->set_focus_on_map = gdk_offscreen_window_set_boolean;
-  impl_class->set_icon_list = NULL;
-  impl_class->set_icon_name = NULL;
+  impl_class->set_icon_list = gdk_offscreen_window_set_list;
+  impl_class->set_icon_name = gdk_offscreen_window_set_string;
   impl_class->iconify = gdk_offscreen_window_do_nothing;
   impl_class->deiconify = gdk_offscreen_window_do_nothing;
   impl_class->stick = gdk_offscreen_window_do_nothing;
index cc2d9c2edbb147a45d6fde1e79403c4ea09e6132..71405f3bd33334a59b5b3386ebf0b066e2e7d916 100644 (file)
@@ -2408,9 +2408,6 @@ gdk_window_peek_children (GdkWindow *window)
  * doing. Pass %NULL for @window to get all events for all windows,
  * instead of events for a specific window.
  *
- * See gdk_display_add_client_message_filter() if you are interested
- * in X ClientMessage events.
- *
  * If you are interested in X GenericEvents, bear in mind that
  * XGetEventData() has been already called on the event, and
  * XFreeEventData() must not be called within @function.
@@ -10705,7 +10702,7 @@ gdk_drag_begin_for_device (GdkWindow     *window,
 void
 gdk_test_render_sync (GdkWindow *window)
 {
-  return GDK_WINDOW_IMPL_GET_CLASS (window->impl)->sync_rendering (window);
+  GDK_WINDOW_IMPL_GET_CLASS (window->impl)->sync_rendering (window);
 }
 
 /**
diff --git a/gdk/makeenums.pl b/gdk/makeenums.pl
deleted file mode 100755 (executable)
index 257c842..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-#!/usr/bin/perl -w
-
-# Information about the current enumeration
-
-my $flags;                     # Is enumeration a bitmask
-my $seenbitshift;                      # Have we seen bitshift operators?
-my $prefix;                    # Prefix for this enumeration
-my $enumname;                  # Name for this enumeration
-my $firstenum = 1;             # Is this the first enumeration in file?
-my @entries;                   # [ $name, $val ] for each entry
-
-sub parse_options {
-    my $opts = shift;
-    my @opts;
-
-    for $opt (split /\s*,\s*/, $opts) {
-       my ($key,$val) = $opt =~ /\s*(\w+)(?:=(\S+))?/;
-       defined $val or $val = 1;
-       push @opts, $key, $val;
-    }
-    @opts;
-}
-sub parse_entries {
-    my $file = shift;
-
-    while (<$file>) {
-       # Read lines until we have no open comments
-       while (m@/\*
-              ([^*]|\*(?!/))*$
-              @x) {
-           my $new;
-           defined ($new = <$file>) || die "Unmatched comment";
-           $_ .= $new;
-       }
-       # Now strip comments
-       s@/\*(?!<)
-           ([^*]+|\*(?!/))*
-          \*/@@gx;
-       
-       s@\n@ @;
-       
-       next if m@^\s*$@;
-
-       # Handle include files
-       if (/^\#include\s*<([^>]*)>/ ) {
-            my $file= "../$1";
-           open NEWFILE, $file or die "Cannot open include file $file: $!\n";
-           
-           if (parse_entries (\*NEWFILE)) {
-               return 1;
-           } else {
-               next;
-           }
-       }
-       
-       if (/^\s*\}\s*(\w+)/) {
-           $enumname = $1;
-           return 1;
-       }
-
-       if (m@^\s*
-              (\w+)\s*                  # name
-              (?:=(                      # value
-                   (?:[^,/]|/(?!\*))*
-                  ))?,?\s*
-              (?:/\*<                   # options 
-                (([^*]|\*(?!/))*)
-               >\*/)?
-              \s*$
-             @x) {
-           my ($name, $value, $options) = ($1,$2,$3);
-
-           if (!defined $flags && defined $value && $value =~ /<</) {
-               $seenbitshift = 1;
-           }
-           if (defined $options) {
-               my %options = parse_options($options);
-               if (!defined $options{skip}) {
-                   push @entries, [ $name, $options{nick} ];
-               }
-           } else {
-               push @entries, [ $name ];
-           }
-       } else {
-           print STDERR "Can't understand: $_\n";
-       }
-    }
-    return 0;
-}
-
-
-my $gen_arrays = 0;
-my $gen_defs = 0;
-my $gen_includes = 0;
-my $gen_cfile = 0;
-
-# Parse arguments
-
-if (@ARGV) {
-    if ($ARGV[0] eq "arrays") {
-       shift @ARGV;
-       $gen_arrays = 1;
-    } elsif ($ARGV[0] eq "defs") {
-       shift @ARGV;
-       $gen_defs = 1;
-    } elsif ($ARGV[0] eq "include") {
-       shift @ARGV;
-       $gen_includes = 1;
-    } elsif ($ARGV[0] eq "cfile") {
-       shift @ARGV;
-       $gen_cfile = 1;
-    }
-}
-
-if ($gen_defs) {
-    print ";; generated by makeenums.pl  ; -*- scheme -*-\n\n";
-} else {
-    print "/* Generated by makeenums.pl */\n\n";
-}
-
-if ($gen_includes) {
-  print "#ifndef __GDK_ENUM_TYPES_H__\n";
-  print "#define __GDK_ENUM_TYPES_H__\n";
-}
-
-if ($gen_cfile) {
-  print "#include \"gdk.h\"\n";
-}
-
-ENUMERATION:
-while (<>) {
-    if (eof) {
-       close (ARGV);           # reset line numbering
-       $firstenum = 1;         # Flag to print filename at next enum
-    }
-
-    if (m@^\s*typedef\s+enum\s*
-           ({)?\s*
-           (?:/\*<
-             (([^*]|\*(?!/))*)
-            >\*/)?
-         @x) {
-      print "\n";
-       if (defined $2) {
-           my %options = parse_options($2);
-           $prefix = $options{prefix};
-           $flags = $options{flags};
-       } else {
-           $prefix = undef;
-           $flags = undef;
-       }
-       # Didn't have trailing '{' look on next lines
-       if (!defined $1) {
-           while (<>) {
-               if (s/^\s*\{//) {
-                   last;
-               }
-           }
-       }
-
-       $seenbitshift = 0;
-       @entries = ();
-
-       # Now parse the entries
-       parse_entries (\*ARGV);
-
-       # figure out if this was a flags or enums enumeration
-
-       if (!defined $flags) {
-           $flags = $seenbitshift;
-       }
-
-       # Autogenerate a prefix
-
-       if (!defined $prefix) {
-           for (@entries) {
-               my $name = $_->[0];
-               if (defined $prefix) {
-                   my $tmp = ~ ($name ^ $prefix);
-                   ($tmp) = $tmp =~ /(^\xff*)/;
-                   $prefix = $prefix & $tmp;
-               } else {
-                   $prefix = $name;
-               }
-           }
-           # Trim so that it ends in an underscore
-           $prefix =~ s/_[^_]*$/_/;
-       }
-       
-       for $entry (@entries) {
-           my ($name,$nick) = @{$entry};
-            if (!defined $nick) {
-               ($nick = $name) =~ s/^$prefix//;
-               $nick =~ tr/_/-/;
-               $nick = lc($nick);
-               @{$entry} = ($name, $nick);
-            }
-       }
-
-       # Spit out the output
-
-        my $valuename = $enumname;
-        $valuename =~ s/([^A-Z])([A-Z])/$1_$2/g;
-        $valuename =~ s/([A-Z][A-Z])([A-Z][0-9a-z])/$1_$2/g;
-        $valuename = lc($valuename);
-
-        my $typemacro = $enumname;
-        $typemacro =~ s/([^A-Z])([A-Z])/$1_$2/g;
-        $typemacro =~ s/([A-Z][A-Z])([A-Z][0-9a-z])/$1_$2/g;
-        $typemacro = uc($valuename);
-        $typemacro =~ s/GDK_/GDK_TYPE_/g;
-
-       if ($gen_defs) {
-           if ($firstenum) {
-               print qq(\n; enumerations from "$ARGV"\n);
-               $firstenum = 0;
-           }
-
-           print "\n(define-".($flags ? "flags" : "enum")." $enumname";
-
-           for (@entries) {
-               my ($name,$nick) = @{$_};
-               print "\n   ($nick $name)";
-           }
-           print ")\n";
-
-       } elsif ($gen_arrays) {
-
-           print "static const GtkEnumValue _${valuename}_values[] = {\n";
-           for (@entries) {
-               my ($name,$nick) = @{$_};
-               print qq(  { $name, "$name", "$nick" },\n);
-           }
-           print "  { 0, NULL, NULL }\n";
-           print "};\n";
-       } elsif ($gen_includes) {
-            print "GType ${valuename}_get_type (void);\n";
-            print "#define ${typemacro} ${valuename}_get_type ()\n";
-          } elsif ($gen_cfile) {
-            print (<<EOF);
-GType
-${valuename}_get_type (void)
-{
-  static GType etype = 0;
-  if (etype == 0)
-    {
-EOF
-            if ($flags) {
-              print "      static const GFlagsValue values[] = {\n";
-            } else {
-              print "      static const GEnumValue values[] = {\n";
-            }
-            for (@entries) {
-              my ($name,$nick) = @{$_};
-              print qq(        { $name, "$name", "$nick" },\n);
-            }
-           print "        { 0, NULL, NULL }\n";
-           print "      };\n";
-
-            if ($flags) {
-              print "      etype = g_flags_register_static (\"$enumname\", values);\n";
-            } else {
-              print "      etype = g_enum_register_static (\"$enumname\", values);\n";
-            }
-
-            print (<<EOF);
-    }
-  return etype;
-}
-EOF
-          }
-        print "\n";
-      }
-  }
-
-
-if ($gen_includes) {
-  print "#endif /* __GDK_ENUMS_H__ */\n";
-}
index 9b2135326ee3ef26b4e130f3faca0809a2f88a57..a8be38e4f8103ace15c7f8cc708a9c52c150c4f9 100644 (file)
@@ -3,7 +3,7 @@ include $(top_srcdir)/Makefile.decl
 libgdkincludedir = $(includedir)/gtk-3.0/gdk
 libgdkquartzincludedir = $(includedir)/gtk-3.0/gdk/quartz
 
-INCLUDES =                             \
+AM_CPPFLAGS =                          \
        -DG_LOG_DOMAIN=\"Gdk\"          \
        -DGDK_COMPILATION               \
        -I$(top_srcdir)                 \
index 566448e2b9ef8176027298b5f642b7b28445f45c..3accf32bd07f3a1b1bc8d3b2c31a4b36c270af45 100644 (file)
@@ -121,10 +121,8 @@ make_list (const gchar  *text,
     }
 
   if (list)
-    *list = g_new (gchar *, n_strings + 1);
+    *list = g_new0 (gchar *, n_strings + 1);
 
-  (*list)[n_strings] = NULL;
-  
   i = n_strings;
   tmp_list = strings;
   while (tmp_list)
index a6fc4ed22e333409887033f67fb2b735d8337edd..5dac054e3708ae6bd29519a3435e9c96fe5d220f 100644 (file)
@@ -2559,10 +2559,6 @@ gdk_quartz_window_set_decorations (GdkWindow       *window,
 
   old_mask = [impl->toplevel styleMask];
 
-  /* Note, there doesn't seem to be a way to change this without
-   * recreating the toplevel. There might be bad side-effects of doing
-   * that, but it seems alright.
-   */
   if (old_mask != new_mask)
     {
       NSRect rect;
@@ -2586,15 +2582,28 @@ gdk_quartz_window_set_decorations (GdkWindow       *window,
           rect = [NSWindow contentRectForFrameRect:rect styleMask:old_mask];
         }
 
-      impl->toplevel = [impl->toplevel initWithContentRect:rect
-                                                 styleMask:new_mask
-                                                   backing:NSBackingStoreBuffered
-                                                     defer:NO];
-
-      [impl->toplevel setHasShadow: window_type_hint_to_shadow (impl->type_hint)];
-      [impl->toplevel setLevel: window_type_hint_to_level (impl->type_hint)];
+      /* Note, before OS 10.6 there doesn't seem to be a way to change this without
+       * recreating the toplevel. There might be bad side-effects of doing
+       * that, but it seems alright.
+       */
+#if MAC_OS_X_VERSION_MIN_ALLOWED > MAC_OS_X_VERSION_10_5
+      if ([impl->toplevel respondsToSelector:@selector(setStyleMask:)])
+        {
+          [impl->toplevel setStyleMask:new_mask];
+        }
+      else
+#endif
+        {
+          [impl->toplevel release];
+          impl->toplevel = [[GdkQuartzNSWindow alloc] initWithContentRect:rect
+                                                                styleMask:new_mask
+                                                                  backing:NSBackingStoreBuffered
+                                                                    defer:NO];
+          [impl->toplevel setHasShadow: window_type_hint_to_shadow (impl->type_hint)];
+          [impl->toplevel setLevel: window_type_hint_to_level (impl->type_hint)];
+          [impl->toplevel setContentView:old_view];
+        }
 
-      [impl->toplevel setContentView:old_view];
       [impl->toplevel setFrame:rect display:YES];
 
       /* Invalidate the window shadow for non-opaque views that have shadow
index 4681dc946601d36557cc4b3faaafdc3d10027781..01695938fd135f25f82775a36d41e8d19e95f59a 100644 (file)
@@ -3,7 +3,7 @@ include $(top_srcdir)/Makefile.decl
 
 libgdkincludedir = $(includedir)/gtk-3.0/gdk
 
-INCLUDES =                                     \
+AM_CPPFLAGS =                                  \
        -DG_LOG_DOMAIN=\"Gdk\"                  \
        -DGDK_COMPILATION                       \
        -I$(top_srcdir)                         \
index 404ddd6aefa7a09603d72ee4c85fd6c762faddf9..9b4d3eecd567ad9e9f57058059671c5c0ee724a1 100644 (file)
@@ -3,7 +3,7 @@ include $(top_srcdir)/Makefile.decl
 
 libgdkincludedir = $(includedir)/gtk-3.0/gdk
 
-INCLUDES = \
+AM_CPPFLAGS = \
        -DG_LOG_DOMAIN=\"Gdk\"  \
        -DINSIDE_GDK_WIN32      \
        -I$(top_srcdir)         \
index 6aea001ded4a213a74554f4df4f1348bd1690d97..3b0d1bdcb3813b341f896d5b64610d457e25f78f 100644 (file)
@@ -4,7 +4,7 @@ include $(top_srcdir)/Makefile.decl
 libgdkincludedir = $(includedir)/gtk-3.0/gdk
 libgdkx11includedir = $(includedir)/gtk-3.0/gdk/x11
 
-INCLUDES =                     \
+AM_CPPFLAGS =                  \
        -DG_LOG_DOMAIN=\"Gdk\"  \
        -DGDK_COMPILATION       \
        -I$(top_srcdir)         \
@@ -66,9 +66,11 @@ libgdkinclude_HEADERS =      \
 libgdkx11include_HEADERS =     \
        gdkx11applaunchcontext.h \
        gdkx11cursor.h          \
+       gdkx11device.h          \
        gdkx11device-core.h     \
        gdkx11device-xi.h       \
        gdkx11device-xi2.h      \
+       gdkx11devicemanager.h   \
        gdkx11devicemanager-core.h \
        gdkx11devicemanager-xi.h \
        gdkx11devicemanager-xi2.h \
index d56f8fa4b9387182f511b3dbfdfd5f282564be6d..b86d80221a1fb3cd0a48d0c7b96fd86f3c702989 100644 (file)
@@ -750,6 +750,14 @@ _gdk_x11_device_xi2_translate_state (XIModifierState *mods_state,
   return state;
 }
 
+gint
+_gdk_x11_device_xi2_get_id (GdkX11DeviceXI2 *device)
+{
+  g_return_val_if_fail (GDK_IS_X11_DEVICE_XI2 (device), 0);
+
+  return device->device_id;
+}
+
 #else /* XINPUT_2 */
 
 static void
index a19a05e065e87b322ca83d0d535b8c2c93a2d43d..b49230454dfcd00bc4a1bd9a773142dff2acae0f 100644 (file)
@@ -20,6 +20,7 @@
 #include "config.h"
 
 #include "gdkx11devicemanager-core.h"
+#include "gdkdevicemanagerprivate-core.h"
 #ifdef XINPUT_XFREE
 #include "gdkx11devicemanager-xi.h"
 #ifdef XINPUT_2
 #include "gdkinternals.h"
 #include "gdkprivate-x11.h"
 
+/* Defines for VCP/VCK, to be used too
+ * for the core protocol device manager
+ */
+#define VIRTUAL_CORE_POINTER_ID 2
+#define VIRTUAL_CORE_KEYBOARD_ID 3
+
 GdkDeviceManager *
 _gdk_x11_device_manager_new (GdkDisplay *display)
 {
@@ -83,3 +90,81 @@ _gdk_x11_device_manager_new (GdkDisplay *display)
                        "display", display,
                        NULL);
 }
+
+/**
+ * gdk_x11_device_manager_lookup:
+ * @device_manager: a #GdkDeviceManager
+ * @device_id: a device ID, as understood by the XInput2 protocol
+ *
+ * Returns the #GdkDevice that wraps the given device ID.
+ *
+ * Returns: (transfer none): (allow-none): The #GdkDevice wrapping the device ID,
+ *          or %NULL if the given ID doesn't currently represent a device.
+ **/
+GdkDevice *
+gdk_x11_device_manager_lookup (GdkDeviceManager *device_manager,
+                              gint              device_id)
+{
+  GdkDevice *device = NULL;
+
+  g_return_val_if_fail (GDK_IS_DEVICE_MANAGER (device_manager), NULL);
+
+#ifdef XINPUT_2
+  if (GDK_IS_X11_DEVICE_MANAGER_XI2 (device_manager))
+    device = _gdk_x11_device_manager_xi2_lookup (GDK_X11_DEVICE_MANAGER_XI2 (device_manager),
+                                                 device_id);
+  else
+#endif /* XINPUT_2 */
+    if (GDK_IS_X11_DEVICE_MANAGER_CORE (device_manager))
+      {
+        /* It is a core/xi1 device manager, we only map
+         * IDs 2 and 3, matching XI2's Virtual Core Pointer
+         * and Keyboard.
+         */
+        if (device_id == VIRTUAL_CORE_POINTER_ID)
+          device = GDK_X11_DEVICE_MANAGER_CORE (device_manager)->core_pointer;
+        else if (device_id == VIRTUAL_CORE_KEYBOARD_ID)
+          device = GDK_X11_DEVICE_MANAGER_CORE (device_manager)->core_keyboard;
+      }
+
+  return device;
+}
+
+/**
+ * gdk_x11_device_get_id:
+ * @device: a #GdkDevice
+ *
+ * Returns the device ID as seen by XInput2.
+ *
+ * <note>
+ *   If gdk_disable_multidevice() has been called, this function
+ *   will respectively return 2/3 for the core pointer and keyboard,
+ *   (matching the IDs for the Virtual Core Pointer and Keyboard in
+ *   XInput 2), but calling this function on any slave devices (i.e.
+ *   those managed via XInput 1.x), will return 0.
+ * </note>
+ *
+ * Returns: the XInput2 device ID.
+ **/
+gint
+gdk_x11_device_get_id (GdkDevice *device)
+{
+  gint device_id = 0;
+
+  g_return_val_if_fail (GDK_IS_DEVICE (device), 0);
+
+#ifdef XINPUT_2
+  if (GDK_IS_X11_DEVICE_XI2 (device))
+    device_id = _gdk_x11_device_xi2_get_id (GDK_X11_DEVICE_XI2 (device));
+  else
+#endif /* XINPUT_2 */
+    if (GDK_IS_X11_DEVICE_CORE (device))
+      {
+        if (gdk_device_get_source (device) == GDK_SOURCE_KEYBOARD)
+          device_id = VIRTUAL_CORE_KEYBOARD_ID;
+        else
+          device_id = VIRTUAL_CORE_POINTER_ID;
+      }
+
+  return device_id;
+}
index 29d8fa1d4f7fa68cd794e96c6f9b98311c918458..425efeeab99430605dee448a3938865a4b74c490 100644 (file)
@@ -1025,6 +1025,9 @@ gdk_x11_device_manager_xi2_translate_event (GdkEventTranslator *translator,
 
   ev = (XIEvent *) cookie->data;
 
+  if (!ev)
+    return FALSE;
+
   window = get_event_window (translator, ev);
 
   if (window && GDK_WINDOW_DESTROYED (window))
@@ -1392,3 +1395,11 @@ gdk_x11_device_manager_xi2_event_translator_init (GdkEventTranslatorIface *iface
 }
 
 #endif /* XINPUT_2 */
+
+GdkDevice *
+_gdk_x11_device_manager_xi2_lookup (GdkX11DeviceManagerXI2 *device_manager_xi2,
+                                    gint                    device_id)
+{
+  return g_hash_table_lookup (device_manager_xi2->id_table,
+                              GINT_TO_POINTER (device_id));
+}
index 253bbedff268e7b82ce6adea7e5ad99774af8f01..09fd3d1f18d7d059ea4eab4c28365acabf8a3a5e 100644 (file)
@@ -232,7 +232,7 @@ get_xkb (GdkX11Keymap *keymap_x11)
   keymap_x11->current_serial = display_x11->keymap_serial;
 
   if (keymap_x11->num_lock_mask == 0)
-    keymap_x11->num_lock_mask = XkbKeysymToModifiers (KEYMAP_XDISPLAY (GDK_KEYMAP (keymap_x11)), XK_Num_Lock);
+    keymap_x11->num_lock_mask = XkbKeysymToModifiers (KEYMAP_XDISPLAY (GDK_KEYMAP (keymap_x11)), GDK_KEY_Num_Lock);
 
   return keymap_x11->xkb_desc;
 }
index 52ff852d5809b41f9059b237f484c2778c87e2a5..0a832f9c48c78e5c44468ab7ce9925a07cccee6b 100644 (file)
@@ -252,6 +252,11 @@ guchar * _gdk_x11_device_xi2_translate_event_mask (GdkEventMask     event_mask,
 guint    _gdk_x11_device_xi2_translate_state      (XIModifierState *mods_state,
                                                    XIButtonState   *buttons_state,
                                                    XIGroupState    *group_state);
+gint     _gdk_x11_device_xi2_get_id               (GdkX11DeviceXI2 *device);
+
+GdkDevice * _gdk_x11_device_manager_xi2_lookup    (GdkX11DeviceManagerXI2 *device_manager_xi2,
+                                                   gint                    device_id);
+
 #endif
 
 void     _gdk_x11_event_translate_keyboard_string (GdkEventKey *event);
index 48207b585d9d00c41e67bac7e9da228004efd8d9..be0b9a6e82c0e4b89be5c40ba89deb785989ac5e 100644 (file)
 
 #include <gdk/x11/gdkx11applaunchcontext.h>
 #include <gdk/x11/gdkx11cursor.h>
+#include <gdk/x11/gdkx11device.h>
 #include <gdk/x11/gdkx11device-core.h>
 #include <gdk/x11/gdkx11device-xi.h>
 #include <gdk/x11/gdkx11device-xi2.h>
+#include <gdk/x11/gdkx11devicemanager.h>
 #include <gdk/x11/gdkx11devicemanager-core.h>
 #include <gdk/x11/gdkx11devicemanager-xi.h>
 #include <gdk/x11/gdkx11devicemanager-xi2.h>
similarity index 55%
rename from gtk/gtkaccessibleprivate.h
rename to gdk/x11/gdkx11device.h
index 6bf5a50122a70ffce762fda37616593fbe7328f6..4a55540f5cc79886de1e1c3ad91c80e6b0e5af81 100644 (file)
@@ -1,5 +1,5 @@
-/* GTK - The GIMP Toolkit
- * Copyright (C) 2011 Red Hat, Inc.
+/* GDK - The GIMP Drawing Kit
+ * Copyright (C) 2011 Carlos Garnacho
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free
- * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
  */
 
-#ifndef __GTK_ACCESSIBLE_PRIVATE_H__
-#define __GTK_ACCESSIBLE_PRIVATE_H__
+#if !defined (__GDKX_H_INSIDE__) && !defined (GDK_COMPILATION)
+#error "Only <gdk/gdkx.h> can be included directly."
+#endif
 
-#include "gtkaccessible.h"
+#ifndef __GDK_X11_DEVICE_H__
+#define __GDK_X11_DEVICE_H__
+
+#include <gdk/gdk.h>
 
 G_BEGIN_DECLS
 
-void     _gtk_accessible_set_factory_type (GType widget_type,
-                                           GType factory_type);
+gint  gdk_x11_device_get_id  (GdkDevice *device);
 
 G_END_DECLS
 
-#endif  /* __GTK_ACCESSIBLE_PRIVATE_H__ */
+#endif /* __GDK_X11_DEVICE_H__ */
diff --git a/gdk/x11/gdkx11devicemanager.h b/gdk/x11/gdkx11devicemanager.h
new file mode 100644 (file)
index 0000000..bc5b5c5
--- /dev/null
@@ -0,0 +1,39 @@
+/* GDK - The GIMP Drawing Kit
+ * Copyright (C) 2011 Carlos Garnacho
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#if !defined (__GDKX_H_INSIDE__) && !defined (GDK_COMPILATION)
+#error "Only <gdk/gdkx.h> can be included directly."
+#endif
+
+#ifndef __GDK_X11_DEVICE_MANAGER_H__
+#define __GDK_X11_DEVICE_MANAGER_H__
+
+#include <gdk/gdk.h>
+
+#include <X11/Xlib.h>
+#include <X11/Xutil.h>
+
+G_BEGIN_DECLS
+
+GdkDevice * gdk_x11_device_manager_lookup (GdkDeviceManager *device_manager,
+                                           gint              device_id);
+
+G_END_DECLS
+
+#endif /* __GDK_X11_DEVICE_MANAGER_H__ */
index 70a35f4fbbf3abc0a7174a10f46c378225a73700..908b38e099a3fb377f5c0c76d34ba38ce31d3897 100644 (file)
@@ -16,7 +16,7 @@ else
 GTK_PRINT_PREVIEW_COMMAND="evince --unlink-tempfile --preview --print-settings %s %f"
 endif
 
-SUBDIRS = . tests
+SUBDIRS = a11y . tests
 
 if HAVE_PAPI_CUPS
 GTK_PRINT_BACKENDS=file,papi,cups
@@ -32,7 +32,7 @@ endif
 endif
 endif
 
-INCLUDES =                                             \
+AM_CPPFLAGS =                                          \
        -DG_LOG_DOMAIN=\"Gtk\"                          \
        -DGTK_LIBDIR=\"$(libdir)\"                      \
        -DGTK_DATADIR=\"$(datadir)\"                    \
@@ -99,7 +99,7 @@ endif
 # This places the generated .def file in srcdir, since it is expected to be there.
 # (The one from a tarball is)
 gtk.def: gtk.symbols
-       $(AM_V_GEN) (echo -e EXPORTS; $(CPP) -P -DG_OS_WIN32 - <$(srcdir)/gtk.symbols | $(SED) -e '/^$$/d' -e 's/^/     /' -e 's/G_GNUC_[^ ]*//g') > $(srcdir)/gtk.def
+       $(AM_V_GEN) (echo -e EXPORTS; $(CPP) -P -DG_OS_WIN32 - <$(srcdir)/gtk.symbols | $(SED) -e '/^$$/d' -e 's/^/     /') > $(srcdir)/gtk.def
 
 TESTS_ENVIRONMENT = srcdir="$(srcdir)" gtk_all_c_sources="$(gtk_all_c_sources)"
 if OS_LINUX
@@ -109,8 +109,11 @@ endif
 libgtkincludedir = $(includedir)/gtk-3.0/gtk
 libadd = \
        $(top_builddir)/gdk/libgdk-3.la \
+       $(top_builddir)/gtk/a11y/libgail.la \
        $(GTK_DEP_LIBS)
-deps =
+deps = \
+       $(top_builddir)/gdk/libgdk-3.la \
+       $(top_builddir)/gtk/a11y/libgail.la
 
 # libtool stuff: set version and export symbols for resolving
 # since automake doesn't support conditionalized libsomething_la_LDFLAGS
@@ -377,7 +380,6 @@ endif
 # GTK+ header files that don't get installed
 gtk_private_h_sources =                \
        gtkaccelgroupprivate.h  \
-       gtkaccessibleprivate.h  \
        gtkanimationdescription.h \
        gtkappchooserprivate.h  \
        gtkappchoosermodule.h   \
@@ -855,7 +857,7 @@ EXTRA_DIST += $(STOCK_ICONS)
 gen_sources = xgen-gdef xgen-gtbh xgen-gtic xgen-gmh xgen-gmc xgen-gmlh xgen-gmlc xgen-gtfsrc.c xgen-gtf
 CLEANFILES = $(gen_sources)
 
-BUILT_SOURCES = $(gtk_built_sources)
+BUILT_SOURCES = $(gtk_built_sources) stamp-icons
 
 # all autogenerated files need to be generated in the srcdir,
 # so old versions get remade and are not confused with newer
@@ -891,7 +893,7 @@ gtktypebuiltins.c: @REBUILD@ $(gtk_public_h_sources) gtktypebuiltins.c.template
 
 gtktypefuncs.c: @REBUILD@ stamp-gtktypebuiltins.h $(top_srcdir)/gtk/*.h $(top_srcdir)/gdk/*.h Makefile
        $(AM_V_GEN) echo '#include <gtk/gtkx.h>' > xgen-gtfsrc.c && \
-         ${CPP} $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-gtfsrc.c | \
+         ${CPP} $(DEFS) $(AM_CPPFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) xgen-gtfsrc.c | \
          $(GREP) -o '\bg[td]k_[a-zA-Z0-9_]*_get_type\b' | \
          sort | uniq | \
          $(SED) '{ s/^/*tp++ = /; s/$$/();/; s/^.*\(gdk_x11\|gtk_plug_\|gtk_socket_\).*$$/#ifdef GDK_WINDOWING_X11\n&\n#endif/; }' > xgen-gtf \
@@ -1015,7 +1017,7 @@ endif
 Gtk_3_0_gir_SCANNERFLAGS += --c-include="gtk/gtkx.h"
 Gtk_3_0_gir_INCLUDES = Atk-1.0
 Gtk_3_0_gir_CFLAGS = \
-               $(INCLUDES) \
+               $(AM_CPPFLAGS) \
                -UGDK_DISABLE_DEPRECATED \
                -UGTK_DISABLE_DEPRECATED \
                -DGTK_TEXT_USE_INTERNAL_UNSUPPORTED_API
diff --git a/gtk/a11y/Makefile.am b/gtk/a11y/Makefile.am
new file mode 100644 (file)
index 0000000..f0e384b
--- /dev/null
@@ -0,0 +1,161 @@
+include $(top_srcdir)/Makefile.decl
+
+noinst_LTLIBRARIES = libgail.la
+
+gail_c_sources =                       \
+       gail.c                          \
+       gtkarrowaccessible.c            \
+       gtkbooleancellaccessible.c      \
+       gtkboxaccessible.c              \
+       gtkbuttonaccessible.c           \
+       gtkcellaccessible.c             \
+       gtkcellaccessibleparent.c       \
+       gtkcheckmenuitemaccessible.c    \
+       gtkcomboboxaccessible.c         \
+       gtkcontaineraccessible.c        \
+       gtkcontainercellaccessible.c    \
+       gtkentryaccessible.c            \
+       gtkexpanderaccessible.c         \
+       gtkframeaccessible.c            \
+       gtkimageaccessible.c            \
+       gtkimagecellaccessible.c        \
+       gtklabelaccessible.c            \
+       gtklinkbuttonaccessible.c       \
+       gtkmenuaccessible.c             \
+       gtkmenushellaccessible.c        \
+       gtkmenuitemaccessible.c         \
+       gtknotebookaccessible.c         \
+       gtknotebookpageaccessible.c     \
+       gtkpanedaccessible.c            \
+       gtkprogressbaraccessible.c      \
+       gtkradiobuttonaccessible.c      \
+       gtkradiomenuitemaccessible.c    \
+       gtkrangeaccessible.c            \
+       gtkrenderercellaccessible.c     \
+       gtkscaleaccessible.c            \
+       gtkscalebuttonaccessible.c      \
+       gtkscrollbaraccessible.c        \
+       gtkscrolledwindowaccessible.c   \
+       gtkspinbuttonaccessible.c       \
+       gtkspinneraccessible.c          \
+       gtkstatusbaraccessible.c        \
+       gtkswitchaccessible.c           \
+       gtktextcellaccessible.c         \
+       gtktextviewaccessible.c         \
+       gtktogglebuttonaccessible.c     \
+       gtktoplevelaccessible.c         \
+       gtktreeviewaccessible.c         \
+       gtkwidgetaccessible.c           \
+       gtkwindowaccessible.c           \
+       gailutil.c                      \
+       gailmisc.c
+
+gail_private_h_sources =               \
+       gtkarrowaccessible.h            \
+       gtkbooleancellaccessible.h      \
+       gtkboxaccessible.h              \
+       gtkbuttonaccessible.h           \
+       gtkcellaccessible.h             \
+       gtkcellaccessibleparent.h       \
+       gtkcheckmenuitemaccessible.h    \
+       gtkcomboboxaccessible.h         \
+       gtkcontaineraccessible.h        \
+       gtkcontainercellaccessible.h    \
+       gtkentryaccessible.h            \
+       gtkexpanderaccessible.h         \
+       gtkframeaccessible.h            \
+       gtkimageaccessible.h            \
+       gtkimagecellaccessible.h        \
+       gtklabelaccessible.h            \
+       gtklinkbuttonaccessible.h       \
+       gtkmenuaccessible.h             \
+       gtkmenushellaccessible.h        \
+       gtkmenuitemaccessible.h         \
+       gtknotebookaccessible.h         \
+       gtknotebookpageaccessible.h     \
+       gtkpanedaccessible.h            \
+       gtkprogressbaraccessible.h      \
+       gtkradiobuttonaccessible.h      \
+       gtkradiomenuitemaccessible.h    \
+       gtkrangeaccessible.h            \
+       gtkrenderercellaccessible.h     \
+       gtkscaleaccessible.h            \
+       gtkscalebuttonaccessible.h      \
+       gtkscrollbaraccessible.h        \
+       gtkscrolledwindowaccessible.h   \
+       gtkspinbuttonaccessible.h       \
+       gtkspinneraccessible.h          \
+       gtkstatusbaraccessible.h        \
+       gtkswitchaccessible.h           \
+       gtktextcellaccessible.h         \
+       gtktextviewaccessible.h         \
+       gtktogglebuttonaccessible.h     \
+       gtktoplevelaccessible.h         \
+       gtktreeviewaccessible.h         \
+       gtkwidgetaccessible.h           \
+       gtkwindowaccessible.h           \
+       gailutil.h                      \
+       gailmisc.h
+
+libgail_la_SOURCES =                   \
+       $(gail_c_sources)               \
+       $(gail_private_h_sources)
+
+libgail_la_CPPFLAGS = \
+       -I$(top_srcdir)                 \
+       -I$(top_srcdir)/gdk             \
+       -I$(top_builddir)/gdk           \
+       -I$(top_srcdir)/gtk             \
+       -I$(top_builddir)/gtk           \
+       -DGTK_VERSION=\"$(GTK_VERSION)\"\
+       -DGTK_COMPILATION               \
+       -DGDK_DISABLE_DEPRECATED        \
+       -DGTK_DISABLE_DEPRECATED        \
+       $(AM_CPPFLAGS)
+
+libgail_la_CFLAGS = \
+       $(GTK_DEP_CFLAGS)       \
+       $(GTK_DEBUG_FLAGS)      \
+       $(AM_CFLAGS)
+
+libgail_la_LIBADD =  \
+       $(GTK_DEP_LIBS)         \
+       $(INTLLIBS)
+
+libgail_la_LDFLAGS =    \
+        $(LDFLAGS)
+               
+dist-hook: ../../build/win32/vs9/libgail.vcproj ../../build/win32/vs10/libgail.vcxproj ../../build/win32/vs10/libgail.vcxproj.filters
+
+../../build/win32/vs9/libgail.vcproj: ../../build/win32/vs9/libgail.vcprojin
+       for F in $(libgail_la_SOURCES); do \
+               case $$F in \
+               *.c) echo '   <File RelativePath="..\..\..\gtk\a11y\'$$F'" />' \
+                    ;; \
+               esac; \
+       done >libgail.sourcefiles
+       $(CPP) -P - <$(top_srcdir)/build/win32/vs9/libgail.vcprojin >$@
+       rm libgail.sourcefiles
+       
+../../build/win32/vs10/libgail.vcxproj: ../../build/win32/vs10/libgail.vcxprojin
+       for F in $(libgail_la_SOURCES); do \
+               case $$F in \
+               *.c) echo '   <ClCompile Include="..\..\..\gtk\a11y\'$$F'" />' \
+                    ;; \
+               esac; \
+       done >libgail.vs10.sourcefiles
+       $(CPP) -P - <$(top_srcdir)/build/win32/vs10/libgail.vcxprojin >$@
+       rm libgail.vs10.sourcefiles
+
+../../build/win32/vs10/libgail.vcxproj.filters: ../../build/win32/vs10/libgail.vcxproj.filtersin
+       for F in $(libgail_la_SOURCES); do \
+               case $$F in \
+               *.c) echo '   <ClCompile Include="..\..\..\gtk\a11y\'$$F'"><Filter>Source Files</Filter></ClCompile>' \
+                    ;; \
+               esac; \
+       done >libgail.vs10.sourcefiles.filters
+       $(CPP) -P - <$(top_srcdir)/build/win32/vs10/libgail.vcxproj.filtersin >$@
+       rm libgail.vs10.sourcefiles.filters
+
+
+-include $(top_srcdir)/git.mk
similarity index 70%
rename from modules/other/gail/gail.c
rename to gtk/a11y/gail.c
index 28a99968eebdff00da320596db40c6f403630ef1..bfbf7eed505fbedc80edfbccfb583e9e1ccf4d82 100644 (file)
 #include <stdlib.h>
 
 #include <gtk/gtkx.h>
-#include "gail.h"
-#include "gailfactory.h"
+#include "gailutil.h"
+#include "gailmisc.h"
 
-#define GNOME_ACCESSIBILITY_ENV "GNOME_ACCESSIBILITY"
-#define NO_GAIL_ENV "NO_GAIL"
 
 static gboolean gail_focus_watcher      (GSignalInvocationHint *ihint,
                                          guint                  n_param_values,
@@ -45,8 +43,6 @@ static gboolean gail_switch_page_watcher(GSignalInvocationHint *ihint,
                                          guint                  n_param_values,
                                          const GValue          *param_values,
                                          gpointer               data);
-static AtkObject* gail_get_accessible_for_widget (GtkWidget    *widget,
-                                                  gboolean     *transient);
 static void     gail_finish_select       (GtkWidget            *widget);
 static void     gail_map_cb              (GtkWidget            *widget);
 static void     gail_map_submenu_cb      (GtkWidget            *widget);
@@ -62,7 +58,7 @@ static void     gail_set_focus_widget (GtkWidget *focus_widget,
 static void     gail_set_focus_object (AtkObject *focus_obj,
                                        AtkObject *obj);
 
-GtkWidget* focus_widget = NULL;
+GtkWidget* _focus_widget = NULL;
 static GtkWidget* next_focus_widget = NULL;
 static gboolean was_deselect = FALSE;
 static GtkWidget* subsequent_focus_widget = NULL;
@@ -71,53 +67,11 @@ static guint focus_notify_handler = 0;
 static guint focus_tracker_id = 0;
 static GQuark quark_focus_object = 0;
 
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_WIDGET, GailWidget, gail_widget, GTK_TYPE_WIDGET)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_CONTAINER, GailContainer, gail_container, GTK_TYPE_CONTAINER)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_BUTTON, GailButton, gail_button, GTK_TYPE_BUTTON)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_LINK_BUTTON, GailLinkButton, gail_link_button, GTK_TYPE_LINK_BUTTON)
-GAIL_IMPLEMENT_FACTORY_WITH_FUNC (GAIL_TYPE_MENU_ITEM, GailMenuItem, gail_menu_item, gail_menu_item_new)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_TOGGLE_BUTTON, GailToggleButton, gail_toggle_button, GTK_TYPE_TOGGLE_BUTTON)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_IMAGE, GailImage, gail_image, GTK_TYPE_IMAGE)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_TEXT_VIEW, GailTextView, gail_text_view, GTK_TYPE_TEXT_VIEW)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_COMBO_BOX, GailComboBox, gail_combo_box, GTK_TYPE_COMBO_BOX)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_ENTRY, GailEntry, gail_entry, GTK_TYPE_ENTRY)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_MENU_SHELL, GailMenuShell, gail_menu_shell, GTK_TYPE_MENU_SHELL)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_MENU, GailMenu, gail_menu, GTK_TYPE_MENU)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_WINDOW, GailWindow, gail_window, GTK_TYPE_BIN)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_RANGE, GailRange, gail_range, GTK_TYPE_RANGE)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_SCALE, GailScale, gail_scale, GTK_TYPE_SCALE)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_SCALE_BUTTON, GailScaleButton, gail_scale_button, GTK_TYPE_SCALE_BUTTON)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_LABEL, GailLabel, gail_label, GTK_TYPE_LABEL)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_STATUSBAR, GailStatusbar, gail_statusbar, GTK_TYPE_STATUSBAR)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_NOTEBOOK, GailNotebook, gail_notebook, GTK_TYPE_NOTEBOOK)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_CALENDAR, GailCalendar, gail_calendar, GTK_TYPE_CALENDAR)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_PROGRESS_BAR, GailProgressBar, gail_progress_bar, GTK_TYPE_PROGRESS_BAR)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_SPIN_BUTTON, GailSpinButton, gail_spin_button, GTK_TYPE_SPIN_BUTTON)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_TREE_VIEW, GailTreeView, gail_tree_view, GTK_TYPE_TREE_VIEW)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_FRAME, GailFrame, gail_frame, GTK_TYPE_FRAME)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_RADIO_BUTTON, GailRadioButton, gail_radio_button, GTK_TYPE_RADIO_BUTTON)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_ARROW, GailArrow, gail_arrow, GTK_TYPE_ARROW)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_SEPARATOR, GailSeparator, gail_separator, GTK_TYPE_SEPARATOR)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_BOX, GailBox, gail_box, GTK_TYPE_BOX)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_SCROLLED_WINDOW, GailScrolledWindow, gail_scrolled_window, GTK_TYPE_SCROLLED_WINDOW)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_PANED, GailPaned, gail_paned, GTK_TYPE_PANED)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_SCROLLBAR, GailScrollbar, gail_scrollbar, GTK_TYPE_SCROLLBAR)
-GAIL_IMPLEMENT_FACTORY_WITH_FUNC (GAIL_TYPE_CHECK_MENU_ITEM, GailCheckMenuItem, gail_check_menu_item, gail_check_menu_item_new)
-GAIL_IMPLEMENT_FACTORY_WITH_FUNC (GAIL_TYPE_RADIO_MENU_ITEM, GailRadioMenuItem, gail_radio_menu_item, gail_radio_menu_item_new)
-GAIL_IMPLEMENT_FACTORY (GAIL_TYPE_EXPANDER, GailExpander, gail_expander, GTK_TYPE_EXPANDER)
-GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_RENDERER_CELL, GailRendererCell, gail_renderer_cell, GTK_TYPE_CELL_RENDERER, gail_renderer_cell_new)
-GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_BOOLEAN_CELL, GailBooleanCell, gail_boolean_cell, GTK_TYPE_CELL_RENDERER_TOGGLE, gail_boolean_cell_new)
-GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_IMAGE_CELL, GailImageCell, gail_image_cell, GTK_TYPE_CELL_RENDERER_PIXBUF, gail_image_cell_new)
-GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY (GAIL_TYPE_TEXT_CELL, GailTextCell, gail_text_cell, GTK_TYPE_CELL_RENDERER_TEXT, gail_text_cell_new)
-
 static AtkObject*
 gail_get_accessible_for_widget (GtkWidget *widget,
                                 gboolean  *transient)
 {
   AtkObject *obj = NULL;
-  GType gnome_canvas;
-
-  gnome_canvas = g_type_from_name ("GnomeCanvas");
 
   *transient = FALSE;
   if (!widget)
@@ -139,25 +93,6 @@ gail_get_accessible_for_widget (GtkWidget *widget,
           g_object_unref (obj);
         }
     }
-  else if (G_TYPE_CHECK_INSTANCE_TYPE ((widget), gnome_canvas))
-    {
-      GObject *focused_item;
-      GValue value = {0, };
-
-      g_value_init (&value, G_TYPE_OBJECT);
-      g_object_get_property (G_OBJECT (widget), "focused_item", &value);
-      focused_item = g_value_get_object (&value);
-
-      if (focused_item)
-        {
-          AtkObject *tmp;
-
-          obj = atk_gobject_accessible_for_object (G_OBJECT (focused_item));
-          tmp = g_object_get_qdata (G_OBJECT (obj), quark_focus_object);
-          if (tmp != NULL)
-            obj = tmp;
-        }
-    }
   else if (GTK_IS_TOGGLE_BUTTON (widget))
     {
       GtkWidget *other_widget = gtk_widget_get_parent (widget);
@@ -293,7 +228,7 @@ gail_focus_watcher (GSignalInvocationHint *ihint,
     {
       if (event->type == GDK_MOTION_NOTIFY && gtk_widget_has_focus (widget))
         {
-          if (widget == focus_widget)
+          if (widget == _focus_widget)
             {
               return TRUE;
             }
@@ -403,12 +338,12 @@ gail_finish_select (GtkWidget *widget)
    * If previously focused widget is not a GtkMenuItem or a GtkMenu,
    * keep track of it so we can return to it after menubar is deactivated
    */
-  if (focus_widget && 
-      !GTK_IS_MENU_ITEM (focus_widget) && 
-      !GTK_IS_MENU (focus_widget))
+  if (_focus_widget && 
+      !GTK_IS_MENU_ITEM (_focus_widget) && 
+      !GTK_IS_MENU (_focus_widget))
     {
       void *vp_focus_before_menu = &focus_before_menu;
-      focus_before_menu = focus_widget;
+      focus_before_menu = _focus_widget;
       g_object_add_weak_pointer (G_OBJECT (focus_before_menu), vp_focus_before_menu);
 
     } 
@@ -540,35 +475,35 @@ gail_focus_notify (GtkWidget *widget)
   AtkObject *atk_obj;
   gboolean transient;
 
-  if (widget != focus_widget)
+  if (widget != _focus_widget)
     {
-      if (focus_widget)
+      if (_focus_widget)
         {
-          void *vp_focus_widget = &focus_widget;
-          g_object_remove_weak_pointer (G_OBJECT (focus_widget), vp_focus_widget);
+          void *vp_focus_widget = &_focus_widget;
+          g_object_remove_weak_pointer (G_OBJECT (_focus_widget), vp_focus_widget);
         }
-      focus_widget = widget;
-      if (focus_widget)
+      _focus_widget = widget;
+      if (_focus_widget)
         {
-          void *vp_focus_widget = &focus_widget;
-          g_object_add_weak_pointer (G_OBJECT (focus_widget), vp_focus_widget);
+          void *vp_focus_widget = &_focus_widget;
+          g_object_add_weak_pointer (G_OBJECT (_focus_widget), vp_focus_widget);
           /*
            * The UI may not have been updated yet; e.g. in gtkhtml2
            * html_view_layout() is called in a idle handler
            */
-          if (focus_widget == focus_before_menu)
+          if (_focus_widget == focus_before_menu)
             {
               void *vp_focus_before_menu = &focus_before_menu;
               g_object_remove_weak_pointer (G_OBJECT (focus_before_menu), vp_focus_before_menu);
               focus_before_menu = NULL;
             }
         }
-      gail_focus_notify_when_idle (focus_widget);
+      gail_focus_notify_when_idle (_focus_widget);
     }
   else
     {
-      if (focus_widget)
-        atk_obj  = gail_get_accessible_for_widget (focus_widget, &transient);
+      if (_focus_widget)
+        atk_obj  = gail_get_accessible_for_widget (_focus_widget, &transient);
       else
         atk_obj = NULL;
       /*
@@ -849,140 +784,21 @@ gail_set_focus_object (AtkObject *focus_obj,
     }
 }
 
-/*
- *   These exported symbols are hooked by gnome-program
- * to provide automatic module initialization and shutdown.
- */
-extern void gnome_accessibility_module_init     (void);
-extern void gnome_accessibility_module_shutdown (void);
-
-static int gail_initialized = FALSE;
-
-static void
-gail_accessibility_module_init (void)
+void
+_gtk_accessibility_init (void)
 {
-  const char *env_a_t_support;
-  gboolean a_t_support = FALSE;
+  static int initialized = FALSE;
 
-  if (gail_initialized)
-    {
-      return;
-    }
-  gail_initialized = TRUE;
+  if (initialized)
+    return;
+
+  initialized = TRUE;
   quark_focus_object = g_quark_from_static_string ("gail-focus-object");
-  
-  env_a_t_support = g_getenv (GNOME_ACCESSIBILITY_ENV);
-
-  if (env_a_t_support)
-    a_t_support = atoi (env_a_t_support);
-  if (a_t_support)
-    fprintf (stderr, "GTK Accessibility Module initialized\n");
-
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_WIDGET, gail_widget);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CONTAINER, gail_container);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_BUTTON, gail_button);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_LINK_BUTTON, gail_link_button);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_MENU_ITEM, gail_menu_item);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_TOGGLE_BUTTON, gail_toggle_button);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_IMAGE, gail_image);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_TEXT_VIEW, gail_text_view);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_COMBO_BOX, gail_combo_box);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_ENTRY, gail_entry);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_MENU_BAR, gail_menu_shell);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_MENU, gail_menu);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_WINDOW, gail_window);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_RANGE, gail_range);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_SCALE, gail_scale);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_SCALE_BUTTON, gail_scale_button);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_LABEL, gail_label);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_STATUSBAR, gail_statusbar);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_NOTEBOOK, gail_notebook);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CALENDAR, gail_calendar);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_PROGRESS_BAR, gail_progress_bar);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_SPIN_BUTTON, gail_spin_button);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_TREE_VIEW, gail_tree_view);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_FRAME, gail_frame);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CELL_RENDERER_TEXT, gail_text_cell);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CELL_RENDERER_TOGGLE, gail_boolean_cell);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CELL_RENDERER_PIXBUF, gail_image_cell);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CELL_RENDERER, gail_renderer_cell);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_RADIO_BUTTON, gail_radio_button);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_ARROW, gail_arrow);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_SEPARATOR, gail_separator);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_BOX, gail_box);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_SCROLLED_WINDOW, gail_scrolled_window);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_PANED, gail_paned);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_SCROLLBAR, gail_scrollbar);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_CHECK_MENU_ITEM, gail_check_menu_item);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_RADIO_MENU_ITEM, gail_radio_menu_item);
-  GAIL_WIDGET_SET_FACTORY (GTK_TYPE_EXPANDER, gail_expander);
 
   atk_focus_tracker_init (gail_focus_tracker_init);
   focus_tracker_id = atk_add_focus_tracker (gail_focus_tracker);
 
-  /* Initialize the GailUtility class */
-  g_type_class_unref (g_type_class_ref (GAIL_TYPE_UTIL));
-  g_type_class_unref (g_type_class_ref (GAIL_TYPE_MISC));
-}
-
-/**
- * gnome_accessibility_module_init:
- * @void: 
- * 
- *   This method is invoked by name from libgnome's
- * gnome-program.c to activate accessibility support.
- **/
-void
-gnome_accessibility_module_init (void)
-{
-  gail_accessibility_module_init ();
-}
-
-/**
- * gnome_accessibility_module_shutdown:
- * @void: 
- * 
- *   This method is invoked by name from libgnome's
- * gnome-program.c to de-activate accessibility support.
- **/
-void
-gnome_accessibility_module_shutdown (void)
-{
-  if (!gail_initialized)
-    {
-      return;
-    }
-  gail_initialized = FALSE;
-  atk_remove_focus_tracker (focus_tracker_id);
-
-  fprintf (stderr, "GTK Accessibility Module shutdown\n");
-
-  /* FIXME: de-register the factory types so we can unload ? */
-}
-
-int
-gtk_module_init (gint *argc, char** argv[])
-{
-  const char* env_no_gail;
-  gboolean no_gail = FALSE;
-
-  env_no_gail = g_getenv (NO_GAIL_ENV);
-  if (env_no_gail)
-      no_gail = atoi (env_no_gail);
-
-  if (no_gail)
-      return 0;
-
-  gail_accessibility_module_init ();
-
-  return 0;
-}
-
-const char *
-g_module_check_init (GModule *module)
-{
-  g_module_make_resident (module);
+  _gail_util_install ();
 
-  return NULL;
+  atk_misc_instance = g_object_new (GAIL_TYPE_MISC, NULL);
 }
similarity index 50%
rename from modules/other/gail/gailcalendar.c
rename to gtk/a11y/gailmisc.c
index 1185e137e51474f195cf1e280ff03d2f2e614a00..a0f2fe7a3a5a7f368180f26c11017349ead6610b 100644 (file)
@@ -1,5 +1,5 @@
 /* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
 #include "config.h"
 
 #include <gtk/gtk.h>
-#include "gailcalendar.h"
+#include "gailmisc.h"
 
-static void         gail_calendar_class_init          (GailCalendarClass *klass);
-static void         gail_calendar_init                (GailCalendar      *calendar);
-static void         gail_calendar_initialize          (AtkObject         *accessible,
-                                                       gpointer           data);
 
-G_DEFINE_TYPE (GailCalendar, gail_calendar, GAIL_TYPE_WIDGET)
+G_DEFINE_TYPE (GailMisc, _gail_misc, ATK_TYPE_MISC)
 
 static void
-gail_calendar_class_init (GailCalendarClass *klass)
+gail_misc_threads_enter (AtkMisc *misc)
 {
-  AtkObjectClass *atk_object_class = ATK_OBJECT_CLASS (klass);
-
-  atk_object_class->initialize = gail_calendar_initialize;
+  GDK_THREADS_ENTER ();
 }
 
 static void
-gail_calendar_init (GailCalendar *calendar)
+gail_misc_threads_leave (AtkMisc *misc)
 {
+  GDK_THREADS_LEAVE ();
 }
 
 static void
-gail_calendar_initialize (AtkObject *accessible,
-                          gpointer  data)
+_gail_misc_class_init (GailMiscClass *klass)
 {
-  ATK_OBJECT_CLASS (gail_calendar_parent_class)->initialize (accessible, data);
+  AtkMiscClass *misc_class = ATK_MISC_CLASS (klass);
+
+  misc_class->threads_enter = gail_misc_threads_enter;
+  misc_class->threads_leave = gail_misc_threads_leave;
+}
 
-  accessible->role = ATK_ROLE_CALENDAR;
+static void
+_gail_misc_init (GailMisc *misc)
+{
 }
similarity index 56%
rename from modules/other/gail/gailutil.h
rename to gtk/a11y/gailmisc.h
index acc44d10b5acb96358fef9c17bc53e61e5f2c280..b4ed60f9a8ad27028282a4185839bfe66d7207dc 100644 (file)
  * Boston, MA 02111-1307, USA.
  */
 
-#ifndef __GAIL_UTIL_H__
-#define __GAIL_UTIL_H__
+#ifndef __GAIL_MISC_H__
+#define __GAIL_MISC_H__
 
 #include <atk/atk.h>
 
 G_BEGIN_DECLS
 
-#define GAIL_TYPE_UTIL                           (gail_util_get_type ())
-#define GAIL_UTIL(obj)                           (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_UTIL, GailUtil))
-#define GAIL_UTIL_CLASS(klass)                   (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_UTIL, GailUtilClass))
-#define GAIL_IS_UTIL(obj)                        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_UTIL))
-#define GAIL_IS_UTIL_CLASS(klass)                (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_UTIL))
-#define GAIL_UTIL_GET_CLASS(obj)                 (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_UTIL, GailUtilClass))
-
-typedef struct _GailUtil                  GailUtil;
-typedef struct _GailUtilClass             GailUtilClass;
-  
-struct _GailUtil
-{
-  AtkUtil parent;
-  GList *listener_list;
-};
-
-GType gail_util_get_type (void);
-
-struct _GailUtilClass
-{
-  AtkUtilClass parent_class;
-};
-
-#define GAIL_TYPE_MISC                           (gail_misc_get_type ())
+#define GAIL_TYPE_MISC                           (_gail_misc_get_type ())
 #define GAIL_MISC(obj)                           (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_MISC, GailMisc))
 #define GAIL_MISC_CLASS(klass)                   (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_MISC, GailMiscClass))
 #define GAIL_IS_MISC(obj)                        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_MISC))
 #define GAIL_IS_MISC_CLASS(klass)                (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_MISC))
 #define GAIL_MISC_GET_CLASS(obj)                 (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_MISC, GailMiscClass))
 
-typedef struct _GailMisc                  GailMisc;
-typedef struct _GailMiscClass             GailMiscClass;
-  
+typedef struct _GailMisc      GailMisc;
+typedef struct _GailMiscClass GailMiscClass;
+
 struct _GailMisc
 {
   AtkMisc parent;
 };
 
-GType gail_misc_get_type (void);
-
 struct _GailMiscClass
 {
   AtkMiscClass parent_class;
 };
 
+GType _gail_misc_get_type (void);
+
 G_END_DECLS
 
-#endif /* __GAIL_UTIL_H__ */
+#endif /* __GAIL_MISC_H__ */
similarity index 54%
rename from modules/other/gail/gailutil.c
rename to gtk/a11y/gailutil.c
index 4d1d6da02cb6ee324ff579cbca7a514b0329189a..b835b02696e18bff91dc4c5a39f3de7a50226f85 100644 (file)
 #include "config.h"
 
 #include <stdlib.h>
-#include <string.h>
 #include <gtk/gtk.h>
 #include "gailutil.h"
-#include "gailtoplevel.h"
-#include "gailwindow.h"
-#include "gail-private-macros.h"
-
-static void            gail_util_class_init                    (GailUtilClass          *klass);
-static void             gail_util_init                          (GailUtil               *utils);
-/* atkutil.h */
-
-static guint           gail_util_add_global_event_listener     (GSignalEmissionHook    listener,
-                                                                const gchar*           event_type);
-static void            gail_util_remove_global_event_listener  (guint                  remove_listener);
-static guint           gail_util_add_key_event_listener        (AtkKeySnoopFunc        listener,
-                                                                gpointer               data);
-static void            gail_util_remove_key_event_listener     (guint                  remove_listener);
-static AtkObject*      gail_util_get_root                      (void);
-static const gchar *gail_util_get_toolkit_name         (void);
-static const gchar *gail_util_get_toolkit_version      (void);
-
-/* gailmisc/AtkMisc */
-static void            gail_misc_class_init                    (GailMiscClass          *klass);
-static void             gail_misc_init                          (GailMisc               *misc);
-
-static void gail_misc_threads_enter (AtkMisc *misc);
-static void gail_misc_threads_leave (AtkMisc *misc);
-
-/* Misc */
-
-static void            _listener_info_destroy                  (gpointer               data);
-static guint            add_listener                           (GSignalEmissionHook    listener,
-                                                                 const gchar            *object_type,
-                                                                 const gchar            *signal,
-                                                                 const gchar            *hook_data);
-static void             do_window_event_initialization          (void);
-static gboolean         state_event_watcher                     (GSignalInvocationHint  *hint,
-                                                                 guint                  n_param_values,
-                                                                 const GValue           *param_values,
-                                                                 gpointer               data);
-static void             window_added                             (AtkObject             *atk_obj,
-                                                                  guint                 index,
-                                                                  AtkObject             *child);
-static void             window_removed                           (AtkObject             *atk_obj,
-                                                                  guint                 index,
-                                                                  AtkObject             *child);
-static gboolean        window_focus                              (GtkWidget             *widget,
-                                                                  GdkEventFocus         *event);
-static gboolean         configure_event_watcher                 (GSignalInvocationHint  *hint,
-                                                                 guint                  n_param_values,
-                                                                 const GValue           *param_values,
-                                                                 gpointer               data);
-                                                                  
-
-static AtkObject* root = NULL;
+#include "gtktoplevelaccessible.h"
+#include "gtkwindowaccessible.h"
+
+
 static GHashTable *listener_list = NULL;
 static gint listener_idx = 1;
 static GSList *key_listener_list = NULL;
@@ -96,41 +47,223 @@ struct _GailKeyEventInfo
   gpointer func_data;
 };
 
-G_DEFINE_TYPE (GailUtil, gail_util, ATK_TYPE_UTIL)
+static guint
+add_listener (GSignalEmissionHook  listener,
+              const gchar         *object_type,
+              const gchar         *signal_name,
+              const gchar         *hook_data)
+{
+  GType type;
+  guint signal_id;
+  gint  rc = 0;
+
+  type = g_type_from_name (object_type);
+  if (type)
+    {
+      signal_id  = g_signal_lookup (signal_name, type);
+      if (signal_id > 0)
+        {
+          GailUtilListenerInfo *listener_info;
+
+          rc = listener_idx;
+
+          listener_info = g_new (GailUtilListenerInfo, 1);
+          listener_info->key = listener_idx;
+          listener_info->hook_id =
+                          g_signal_add_emission_hook (signal_id, 0, listener,
+                                                      g_strdup (hook_data),
+                                                      (GDestroyNotify) g_free);
+          listener_info->signal_id = signal_id;
+
+          g_hash_table_insert (listener_list, &(listener_info->key), listener_info);
+          listener_idx++;
+        }
+      else
+        {
+          g_warning("Invalid signal type %s\n", signal_name);
+        }
+    }
+  else
+    {
+      g_warning("Invalid object type %s\n", object_type);
+    }
+  return rc;
+}
 
-static void     
-gail_util_class_init (GailUtilClass *klass)
+static gboolean
+state_event_watcher (GSignalInvocationHint *hint,
+                     guint                  n_param_values,
+                     const GValue          *param_values,
+                     gpointer               data)
 {
-  AtkUtilClass *atk_class;
-  gpointer data;
-
-  data = g_type_class_peek (ATK_TYPE_UTIL);
-  atk_class = ATK_UTIL_CLASS (data);
-
-  atk_class->add_global_event_listener =
-    gail_util_add_global_event_listener;
-  atk_class->remove_global_event_listener =
-    gail_util_remove_global_event_listener;
-  atk_class->add_key_event_listener =
-    gail_util_add_key_event_listener;
-  atk_class->remove_key_event_listener =
-    gail_util_remove_key_event_listener;
-  atk_class->get_root = gail_util_get_root;
-  atk_class->get_toolkit_name = gail_util_get_toolkit_name;
-  atk_class->get_toolkit_version = gail_util_get_toolkit_version;
+  GObject *object;
+  GtkWidget *widget;
+  AtkObject *atk_obj;
+  AtkObject *parent;
+  GdkEventWindowState *event;
+  gchar *signal_name;
 
-  listener_list = g_hash_table_new_full(g_int_hash, g_int_equal, NULL, 
-     _listener_info_destroy);
+  object = g_value_get_object (param_values + 0);
+  if (!GTK_IS_WINDOW (object))
+    return FALSE;
+
+  event = g_value_get_boxed (param_values + 1);
+  if (event->type == GDK_WINDOW_STATE)
+    return FALSE;
+  widget = GTK_WIDGET (object);
+
+  if (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED)
+    signal_name = "maximize";
+  else if (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED)
+    signal_name = "minimize";
+  else if (event->new_window_state == 0)
+    signal_name = "restore";
+  else
+    return TRUE;
+
+  atk_obj = gtk_widget_get_accessible (widget);
+  if (GTK_IS_WINDOW_ACCESSIBLE (atk_obj))
+    {
+      parent = atk_object_get_parent (atk_obj);
+      if (parent == atk_get_root ())
+        g_signal_emit_by_name (atk_obj, signal_name);
+
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
+static gboolean
+configure_event_watcher (GSignalInvocationHint *hint,
+                         guint                  n_param_values,
+                         const GValue          *param_values,
+                         gpointer               data)
+{
+  GtkAllocation allocation;
+  GObject *object;
+  GtkWidget *widget;
+  AtkObject *atk_obj;
+  AtkObject *parent;
+  GdkEvent *event;
+  gchar *signal_name;
+
+  object = g_value_get_object (param_values + 0);
+  if (!GTK_IS_WINDOW (object))
+    return FALSE;
+
+  event = g_value_get_boxed (param_values + 1);
+  if (event->type != GDK_CONFIGURE)
+    return FALSE;
+  widget = GTK_WIDGET (object);
+  gtk_widget_get_allocation (widget, &allocation);
+  if (allocation.x == ((GdkEventConfigure *)event)->x &&
+      allocation.y == ((GdkEventConfigure *)event)->y &&
+      allocation.width == ((GdkEventConfigure *)event)->width &&
+      allocation.height == ((GdkEventConfigure *)event)->height)
+    return TRUE;
+
+  if (allocation.width != ((GdkEventConfigure *)event)->width ||
+      allocation.height != ((GdkEventConfigure *)event)->height)
+    signal_name = "resize";
+  else
+    signal_name = "move";
+
+  atk_obj = gtk_widget_get_accessible (widget);
+  if (GTK_IS_WINDOW_ACCESSIBLE (atk_obj))
+    {
+      parent = atk_object_get_parent (atk_obj);
+      if (parent == atk_get_root ())
+        g_signal_emit_by_name (atk_obj, signal_name);
+
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
+static gboolean
+window_focus (GtkWidget     *widget,
+              GdkEventFocus *event)
+{
+  AtkObject *atk_obj;
+
+  g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
+
+  atk_obj = gtk_widget_get_accessible (widget);
+  g_signal_emit_by_name (atk_obj, event->in ? "activate" : "deactivate");
+
+  return FALSE;
 }
 
 static void
-gail_util_init (GailUtil *utils)
+window_added (AtkObject *atk_obj,
+              guint      index,
+              AtkObject *child)
 {
+  GtkWidget *widget;
+
+  if (!GTK_IS_WINDOW_ACCESSIBLE (child))
+    return;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (child));
+  if (!widget)
+    return;
+
+  g_signal_connect (widget, "focus-in-event", (GCallback) window_focus, NULL);
+  g_signal_connect (widget, "focus-out-event", (GCallback) window_focus, NULL);
+  g_signal_emit_by_name (child, "create");
 }
 
+
+static void
+window_removed (AtkObject *atk_obj,
+                guint      index,
+                AtkObject *child)
+{
+  GtkWidget *widget;
+  GtkWindow *window;
+
+  if (!GTK_IS_WINDOW_ACCESSIBLE (child))
+    return;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (child));
+  if (!widget)
+    return;
+
+  window = GTK_WINDOW (widget);
+  /*
+   * Deactivate window if it is still focused and we are removing it. This
+   * can happen when a dialog displayed by gok is removed.
+   */
+  if (gtk_window_is_active (window) &&
+      gtk_window_has_toplevel_focus (window))
+    g_signal_emit_by_name (child, "deactivate");
+
+  g_signal_handlers_disconnect_by_func (widget, (gpointer) window_focus, NULL);
+  g_signal_emit_by_name (child, "destroy");
+}
+
+static void
+do_window_event_initialization (void)
+{
+  AtkObject *root;
+
+  g_type_class_ref (GTK_TYPE_WINDOW_ACCESSIBLE);
+  g_signal_add_emission_hook (g_signal_lookup ("window-state-event", GTK_TYPE_WIDGET),
+                              0, state_event_watcher, NULL, (GDestroyNotify) NULL);
+  g_signal_add_emission_hook (g_signal_lookup ("configure-event", GTK_TYPE_WIDGET),
+                              0, configure_event_watcher, NULL, (GDestroyNotify) NULL);
+
+  root = atk_get_root ();
+  g_signal_connect (root, "children-changed::add",
+                    (GCallback) window_added, NULL);
+  g_signal_connect (root, "children-changed::remove",
+                    (GCallback) window_removed, NULL);
+}
 static guint
-gail_util_add_global_event_listener (GSignalEmissionHook listener,
-                                    const gchar *event_type)
+gail_util_add_global_event_listener (GSignalEmissionHook  listener,
+                                     const gchar         *event_type)
 {
   guint rc = 0;
   gchar **split_string;
@@ -139,7 +272,7 @@ gail_util_add_global_event_listener (GSignalEmissionHook listener,
 
   if (split_string)
     {
-      if (!strcmp ("window", split_string[0]))
+      if (!g_strcmp0 ("window", split_string[0]))
         {
           static gboolean initialized = FALSE;
 
@@ -148,7 +281,7 @@ gail_util_add_global_event_listener (GSignalEmissionHook listener,
               do_window_event_initialization ();
               initialized = TRUE;
             }
-          rc = add_listener (listener, "GailWindow", split_string[1], event_type);
+          rc = add_listener (listener, "GtkWindowAccessible", split_string[1], event_type);
         }
       else
         {
@@ -192,7 +325,7 @@ gail_util_remove_global_event_listener (guint remove_listener)
       }
     else
       {
-        g_warning("No listener with the specified listener id %d", 
+        g_warning("No listener with the specified listener id %d",
           remove_listener);
       }
   }
@@ -202,28 +335,26 @@ gail_util_remove_global_event_listener (guint remove_listener)
   }
 }
 
-
-static
-AtkKeyEventStruct *
+static AtkKeyEventStruct *
 atk_key_event_from_gdk_event_key (GdkEventKey *key)
 {
   AtkKeyEventStruct *event = g_new0 (AtkKeyEventStruct, 1);
   switch (key->type)
     {
     case GDK_KEY_PRESS:
-           event->type = ATK_KEY_EVENT_PRESS;
-           break;
+            event->type = ATK_KEY_EVENT_PRESS;
+            break;
     case GDK_KEY_RELEASE:
-           event->type = ATK_KEY_EVENT_RELEASE;
-           break;
+            event->type = ATK_KEY_EVENT_RELEASE;
+            break;
     default:
-           g_assert_not_reached ();
-           return NULL;
+            g_assert_not_reached ();
+            return NULL;
     }
   event->state = key->state;
   event->keyval = key->keyval;
   event->length = key->length;
-  if (key->string && key->string [0] && 
+  if (key->string && key->string [0] &&
       (key->state & GDK_CONTROL_MASK ||
        g_unichar_isgraph (g_utf8_get_char (key->string))))
     {
@@ -232,16 +363,16 @@ atk_key_event_from_gdk_event_key (GdkEventKey *key)
   else if (key->type == GDK_KEY_PRESS ||
            key->type == GDK_KEY_RELEASE)
     {
-      event->string = gdk_keyval_name (key->keyval);       
+      event->string = gdk_keyval_name (key->keyval);
     }
   event->keycode = key->hardware_keycode;
   event->timestamp = key->time;
-#ifdef GAIL_DEBUG  
+#ifdef GAIL_DEBUG
   g_print ("GailKey:\tsym %u\n\tmods %x\n\tcode %u\n\ttime %lx\n",
-          (unsigned int) event->keyval,
-          (unsigned int) event->state,
-          (unsigned int) event->keycode,
-          (unsigned long int) event->timestamp);
+           (unsigned int) event->keyval,
+           (unsigned int) event->state,
+           (unsigned int) event->keycode,
+           (unsigned long int) event->timestamp);
 #endif
   return event;
 }
@@ -253,7 +384,9 @@ typedef struct {
 } KeyEventListener;
 
 static gint
-gail_key_snooper (GtkWidget *the_widget, GdkEventKey *event, gpointer data)
+gail_key_snooper (GtkWidget   *the_widget,
+                  GdkEventKey *event,
+                  gpointer     data)
 {
   GSList *l;
   AtkKeyEventStruct *atk_event;
@@ -321,12 +454,14 @@ gail_util_remove_key_event_listener (guint listener_key)
     }
 }
 
-static AtkObject*
+static AtkObject *
 gail_util_get_root (void)
 {
+  static AtkObject *root = NULL;
+
   if (!root)
     {
-      root = g_object_new (GAIL_TYPE_TOPLEVEL, NULL);
+      root = g_object_new (GTK_TYPE_TOPLEVEL_ACCESSIBLE, NULL);
       atk_object_initialize (root, NULL);
     }
 
@@ -336,302 +471,27 @@ gail_util_get_root (void)
 static const gchar *
 gail_util_get_toolkit_name (void)
 {
-  return "GAIL";
+  return "gtk";
 }
 
 static const gchar *
 gail_util_get_toolkit_version (void)
 {
- /*
-  * Version is passed in as a -D flag when this file is
-  * compiled.
-  */
   return GTK_VERSION;
 }
 
-static void
-_listener_info_destroy (gpointer data)
-{
-   g_free(data);
-}
-
-static guint
-add_listener (GSignalEmissionHook listener,
-              const gchar         *object_type,
-              const gchar         *signal,
-              const gchar         *hook_data)
+void
+_gail_util_install (void)
 {
-  GType type;
-  guint signal_id;
-  gint  rc = 0;
-
-  type = g_type_from_name (object_type);
-  if (type)
-    {
-      signal_id  = g_signal_lookup (signal, type);
-      if (signal_id > 0)
-        {
-          GailUtilListenerInfo *listener_info;
-
-          rc = listener_idx;
+  AtkUtilClass *atk_class = ATK_UTIL_CLASS (g_type_class_ref (ATK_TYPE_UTIL));
 
-          listener_info = g_malloc(sizeof(GailUtilListenerInfo));
-          listener_info->key = listener_idx;
-          listener_info->hook_id =
-                          g_signal_add_emission_hook (signal_id, 0, listener,
-                                                     g_strdup (hook_data),
-                                                     (GDestroyNotify) g_free);
-          listener_info->signal_id = signal_id;
-
-         g_hash_table_insert(listener_list, &(listener_info->key), listener_info);
-          listener_idx++;
-        }
-      else
-        {
-          g_warning("Invalid signal type %s\n", signal);
-        }
-    }
-  else
-    {
-      g_warning("Invalid object type %s\n", object_type);
-    }
-  return rc;
-}
-
-static void
-do_window_event_initialization (void)
-{
-  AtkObject *root;
-
-  /*
-   * Ensure that GailWindowClass exists.
-   */
-  g_type_class_ref (GAIL_TYPE_WINDOW);
-  g_signal_add_emission_hook (g_signal_lookup ("window-state-event", GTK_TYPE_WIDGET),
-                              0, state_event_watcher, NULL, (GDestroyNotify) NULL);
-  g_signal_add_emission_hook (g_signal_lookup ("configure-event", GTK_TYPE_WIDGET),
-                              0, configure_event_watcher, NULL, (GDestroyNotify) NULL);
-
-  root = atk_get_root ();
-  g_signal_connect (root, "children-changed::add",
-                    (GCallback) window_added, NULL);
-  g_signal_connect (root, "children-changed::remove",
-                    (GCallback) window_removed, NULL);
-}
-
-static gboolean
-state_event_watcher (GSignalInvocationHint  *hint,
-                     guint                  n_param_values,
-                     const GValue           *param_values,
-                     gpointer               data)
-{
-  GObject *object;
-  GtkWidget *widget;
-  AtkObject *atk_obj;
-  AtkObject *parent;
-  GdkEventWindowState *event;
-  gchar *signal_name;
-  guint signal_id;
-
-  object = g_value_get_object (param_values + 0);
-  /*
-   * The object can be a GtkMenu when it is popped up; we ignore this
-   */
-  if (!GTK_IS_WINDOW (object))
-    return FALSE;
-
-  event = g_value_get_boxed (param_values + 1);
-  gail_return_val_if_fail (event->type == GDK_WINDOW_STATE, FALSE);
-  widget = GTK_WIDGET (object);
-
-  if (event->new_window_state & GDK_WINDOW_STATE_MAXIMIZED)
-    {
-      signal_name = "maximize";
-    }
-  else if (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED)
-    {
-      signal_name = "minimize";
-    }
-  else if (event->new_window_state == 0)
-    {
-      signal_name = "restore";
-    }
-  else
-    return TRUE;
-  
-  atk_obj = gtk_widget_get_accessible (widget);
-
-  if (GAIL_IS_WINDOW (atk_obj))
-    {
-      parent = atk_object_get_parent (atk_obj);
-      if (parent == atk_get_root ())
-       {
-         signal_id = g_signal_lookup (signal_name, GAIL_TYPE_WINDOW); 
-         g_signal_emit (atk_obj, signal_id, 0);
-       }
-      
-      return TRUE;
-    }
-  else
-    {
-      return FALSE;
-    }
-}
-
-static void
-window_added (AtkObject *atk_obj,
-              guint     index,
-              AtkObject *child)
-{
-  GtkWidget *widget;
-
-  if (!GAIL_IS_WINDOW (child)) return;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (child));
-  gail_return_if_fail (widget);
-
-  g_signal_connect (widget, "focus-in-event",  
-                    (GCallback) window_focus, NULL);
-  g_signal_connect (widget, "focus-out-event",  
-                    (GCallback) window_focus, NULL);
-  g_signal_emit (child, g_signal_lookup ("create", GAIL_TYPE_WINDOW), 0); 
-}
-
-
-static void
-window_removed (AtkObject *atk_obj,
-                 guint     index,
-                 AtkObject *child)
-{
-  GtkWidget *widget;
-  GtkWindow *window;
-
-  if (!GAIL_IS_WINDOW (child)) return;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (child));
-  gail_return_if_fail (widget);
-
-  window = GTK_WINDOW (widget);
-  /*
-   * Deactivate window if it is still focused and we are removing it. This
-   * can happen when a dialog displayed by gok is removed.
-   */
-  if (gtk_window_is_active (window) &&
-      gtk_window_has_toplevel_focus (window))
-    {
-      gchar *signal_name;
-      AtkObject *atk_obj;
-
-      atk_obj = gtk_widget_get_accessible (widget);
-      signal_name =  "deactivate";
-      g_signal_emit (atk_obj, g_signal_lookup (signal_name, GAIL_TYPE_WINDOW), 0); 
-    }
-
-  g_signal_handlers_disconnect_by_func (widget, (gpointer) window_focus, NULL);
-  g_signal_emit (child, g_signal_lookup ("destroy", GAIL_TYPE_WINDOW), 0); 
-}
-
-static gboolean
-window_focus (GtkWidget     *widget,
-              GdkEventFocus *event)
-{
-  gchar *signal_name;
-  AtkObject *atk_obj;
-
-  g_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
-
-  atk_obj = gtk_widget_get_accessible (widget);
-  signal_name =  (event->in) ? "activate" : "deactivate";
-  g_signal_emit (atk_obj, g_signal_lookup (signal_name, GAIL_TYPE_WINDOW), 0); 
-
-  return FALSE;
-}
-
-static gboolean 
-configure_event_watcher (GSignalInvocationHint  *hint,
-                         guint                  n_param_values,
-                         const GValue           *param_values,
-                         gpointer               data)
-{
-  GtkAllocation allocation;
-  GObject *object;
-  GtkWidget *widget;
-  AtkObject *atk_obj;
-  AtkObject *parent;
-  GdkEvent *event;
-  gchar *signal_name;
-  guint signal_id;
-
-  object = g_value_get_object (param_values + 0);
-  if (!GTK_IS_WINDOW (object))
-    /*
-     * GtkDrawingArea can send a GDK_CONFIGURE event but we ignore here
-     */
-    return FALSE;
-
-  event = g_value_get_boxed (param_values + 1);
-  if (event->type != GDK_CONFIGURE)
-    return FALSE;
-  widget = GTK_WIDGET (object);
-  gtk_widget_get_allocation (widget, &allocation);
-  if (allocation.x == ((GdkEventConfigure *)event)->x &&
-      allocation.y == ((GdkEventConfigure *)event)->y &&
-      allocation.width == ((GdkEventConfigure *)event)->width &&
-      allocation.height == ((GdkEventConfigure *)event)->height)
-    return TRUE;
-
-  if (allocation.width != ((GdkEventConfigure *)event)->width ||
-      allocation.height != ((GdkEventConfigure *)event)->height)
-    {
-      signal_name = "resize";
-    }
-  else
-    {
-      signal_name = "move";
-    }
-
-  atk_obj = gtk_widget_get_accessible (widget);
-  if (GAIL_IS_WINDOW (atk_obj))
-    {
-      parent = atk_object_get_parent (atk_obj);
-      if (parent == atk_get_root ())
-       {
-         signal_id = g_signal_lookup (signal_name, GAIL_TYPE_WINDOW); 
-         g_signal_emit (atk_obj, signal_id, 0);
-       }
-      
-      return TRUE;
-    }
-  else
-    {
-      return FALSE;
-    }
-}
-
-G_DEFINE_TYPE (GailMisc, gail_misc, ATK_TYPE_MISC)
-
-static void     
-gail_misc_class_init (GailMiscClass *klass)
-{
-  AtkMiscClass *miscclass = ATK_MISC_CLASS (klass);
-  miscclass->threads_enter =
-    gail_misc_threads_enter;
-  miscclass->threads_leave =
-    gail_misc_threads_leave;
-  atk_misc_instance = g_object_new (GAIL_TYPE_MISC, NULL);
-}
-
-static void
-gail_misc_init (GailMisc *misc)
-{
-}
-
-static void gail_misc_threads_enter (AtkMisc *misc)
-{
-  GDK_THREADS_ENTER ();
-}
+  atk_class->add_global_event_listener = gail_util_add_global_event_listener;
+  atk_class->remove_global_event_listener = gail_util_remove_global_event_listener;
+  atk_class->add_key_event_listener = gail_util_add_key_event_listener;
+  atk_class->remove_key_event_listener = gail_util_remove_key_event_listener;
+  atk_class->get_root = gail_util_get_root;
+  atk_class->get_toolkit_name = gail_util_get_toolkit_name;
+  atk_class->get_toolkit_version = gail_util_get_toolkit_version;
 
-static void gail_misc_threads_leave (AtkMisc *misc)
-{
-  GDK_THREADS_LEAVE ();
+  listener_list = g_hash_table_new_full (g_int_hash, g_int_equal, NULL, g_free);
 }
similarity index 69%
rename from modules/other/gail/gail-private-macros.h
rename to gtk/a11y/gailutil.h
index 6e33ff7198105e73a9598ac0ef9536017bd528a6..d835b17aeeec6bd879259ed0d9006e4a4083702e 100644 (file)
@@ -8,7 +8,7 @@
  *
  * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
  * Library General Public License for more details.
  *
  * You should have received a copy of the GNU Library General Public
  * Boston, MA 02111-1307, USA.
  */
 
+#ifndef __GAIL_UTIL_H__
+#define __GAIL_UTIL_H__
 
-#ifndef __GAIL_PRIVATE_MACROS_H__
-#define __GAIL_PRIVATE_MACROS_H__
+#include <atk/atk.h>
 
 G_BEGIN_DECLS
 
-/* Note: these macros are logic macros, not intended to warn on failure. */
-
-#define gail_return_val_if_fail(a, b)  if (!(a)) return (b)
-#define gail_return_if_fail(a) if (!(a)) return
+void _gail_util_install (void);
 
 G_END_DECLS
 
-#endif /* __GAIL_PRIVATE_MACROS_H__ */
+#endif /* __GAIL_UTIL_H__ */
diff --git a/gtk/a11y/gtkarrowaccessible.c b/gtk/a11y/gtkarrowaccessible.c
new file mode 100644 (file)
index 0000000..cd97adf
--- /dev/null
@@ -0,0 +1,93 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkarrowaccessible.h"
+
+
+static void atk_image_interface_init (AtkImageIface  *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkArrowAccessible, _gtk_arrow_accessible, GTK_TYPE_WIDGET_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_interface_init))
+
+static void
+gtk_arrow_accessible_initialize (AtkObject *accessible,
+                                 gpointer   data)
+{
+  ATK_OBJECT_CLASS (_gtk_arrow_accessible_parent_class)->initialize (accessible, data);
+
+  accessible->role = ATK_ROLE_ICON;
+}
+
+static void
+gtk_arrow_accessible_finalize (GObject *object)
+{
+  GtkArrowAccessible *arrow = GTK_ARROW_ACCESSIBLE (object);
+
+  g_free (arrow->image_description);
+
+  G_OBJECT_CLASS (_gtk_arrow_accessible_parent_class)->finalize (object);
+}
+
+static void
+_gtk_arrow_accessible_class_init (GtkArrowAccessibleClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  AtkObjectClass *atk_object_class = ATK_OBJECT_CLASS (klass);
+
+  atk_object_class->initialize = gtk_arrow_accessible_initialize;
+
+  gobject_class->finalize = gtk_arrow_accessible_finalize;
+}
+
+static void
+_gtk_arrow_accessible_init (GtkArrowAccessible *arrow)
+{
+  arrow->image_description = NULL;
+}
+
+static const gchar *
+gtk_arrow_accessible_get_image_description (AtkImage *obj)
+{
+  GtkArrowAccessible *arrow = GTK_ARROW_ACCESSIBLE (obj);
+
+  return arrow->image_description;
+}
+
+static gboolean
+gtk_arrow_accessible_set_image_description (AtkImage    *obj,
+                                            const gchar *description)
+{
+  GtkArrowAccessible *arrow = GTK_ARROW_ACCESSIBLE (obj);
+
+  g_free (arrow->image_description);
+  arrow->image_description = g_strdup (description);
+
+  return TRUE;
+
+}
+
+static void
+atk_image_interface_init (AtkImageIface *iface)
+{
+  iface->get_image_description = gtk_arrow_accessible_get_image_description;
+  iface->set_image_description = gtk_arrow_accessible_set_image_description;
+}
diff --git a/gtk/a11y/gtkarrowaccessible.h b/gtk/a11y/gtkarrowaccessible.h
new file mode 100644 (file)
index 0000000..b287cb1
--- /dev/null
@@ -0,0 +1,53 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_ARROW_ACCESSIBLE_H__
+#define __GTK_ARROW_ACCESSIBLE_H__
+
+#include "gtkwidgetaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_ARROW_ACCESSIBLE                      (_gtk_arrow_accessible_get_type ())
+#define GTK_ARROW_ACCESSIBLE(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ARROW_ACCESSIBLE, GtkArrowAccessible))
+#define GTK_ARROW_ACCESSIBLE_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ARROW_ACCESSIBLE, GtkArrowAccessibleClass))
+#define GTK_IS_ARROW_ACCESSIBLE(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ARROW_ACCESSIBLE))
+#define GTK_IS_ARROW_ACCESSIBLE_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ARROW_ACCESSIBLE))
+#define GTK_ARROW_ACCESSIBLE_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ARROW_ACCESSIBLE, GtkArrowAccessibleClass))
+
+typedef struct _GtkArrowAccessible      GtkArrowAccessible;
+typedef struct _GtkArrowAccessibleClass GtkArrowAccessibleClass;
+
+struct _GtkArrowAccessible
+{
+  GtkWidgetAccessible parent;
+
+  gchar *image_description;
+};
+
+struct _GtkArrowAccessibleClass
+{
+  GtkWidgetAccessibleClass parent_class;
+};
+
+GType _gtk_arrow_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_ARROW_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkbooleancellaccessible.c b/gtk/a11y/gtkbooleancellaccessible.c
new file mode 100644 (file)
index 0000000..67ae74e
--- /dev/null
@@ -0,0 +1,111 @@
+/* GAIL - The GNOME Accessibility Enabling Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkbooleancellaccessible.h"
+
+
+static gchar *property_list[] = {
+  "active",
+  "radio",
+  "sensitive",
+  NULL
+};
+
+G_DEFINE_TYPE (GtkBooleanCellAccessible, _gtk_boolean_cell_accessible, GTK_TYPE_RENDERER_CELL_ACCESSIBLE)
+
+
+static gboolean
+gtk_boolean_cell_accessible_update_cache (GtkRendererCellAccessible *cell,
+                                          gboolean                   emit_change_signal)
+{
+  GtkBooleanCellAccessible *boolean_cell = GTK_BOOLEAN_CELL_ACCESSIBLE (cell);
+  gboolean rv = FALSE;
+  gboolean active;
+  gboolean sensitive;
+
+  g_object_get (G_OBJECT (cell->renderer),
+                "active", &active,
+                "sensitive", &sensitive,
+                NULL);
+
+  if (boolean_cell->cell_value != active)
+    {
+      rv = TRUE;
+      boolean_cell->cell_value = !boolean_cell->cell_value;
+
+      if (active)
+        _gtk_cell_accessible_add_state (GTK_CELL_ACCESSIBLE (cell), ATK_STATE_CHECKED, emit_change_signal);
+      else
+        _gtk_cell_accessible_remove_state (GTK_CELL_ACCESSIBLE (cell), ATK_STATE_CHECKED, emit_change_signal);
+    }
+
+  if (boolean_cell->cell_sensitive != sensitive)
+    {
+      rv = TRUE;
+      boolean_cell->cell_sensitive = !boolean_cell->cell_sensitive;
+
+      if (sensitive)
+        _gtk_cell_accessible_add_state (GTK_CELL_ACCESSIBLE (cell), ATK_STATE_SENSITIVE, emit_change_signal);
+      else
+        _gtk_cell_accessible_remove_state (GTK_CELL_ACCESSIBLE (cell), ATK_STATE_SENSITIVE, emit_change_signal);
+    }
+
+  return rv;
+}
+
+static void
+_gtk_boolean_cell_accessible_class_init (GtkBooleanCellAccessibleClass *klass)
+{
+  GtkRendererCellAccessibleClass *renderer_cell_class = GTK_RENDERER_CELL_ACCESSIBLE_CLASS (klass);
+
+  renderer_cell_class->update_cache = gtk_boolean_cell_accessible_update_cache;
+  renderer_cell_class->property_list = property_list;
+}
+
+static void
+_gtk_boolean_cell_accessible_init (GtkBooleanCellAccessible *cell)
+{
+}
+
+AtkObject *
+_gtk_boolean_cell_accessible_new (void)
+{
+  GObject *object;
+  AtkObject *atk_object;
+  GtkRendererCellAccessible *cell;
+  GtkBooleanCellAccessible *boolean_cell;
+
+  object = g_object_new (GTK_TYPE_BOOLEAN_CELL_ACCESSIBLE, NULL);
+
+  atk_object = ATK_OBJECT (object);
+  atk_object->role = ATK_ROLE_TABLE_CELL;
+
+  cell = GTK_RENDERER_CELL_ACCESSIBLE (object);
+  cell->renderer = gtk_cell_renderer_toggle_new ();
+  g_object_ref_sink (cell->renderer);
+
+  boolean_cell = GTK_BOOLEAN_CELL_ACCESSIBLE (object);
+  boolean_cell->cell_value = FALSE;
+  boolean_cell->cell_sensitive = TRUE;
+
+  return atk_object;
+}
diff --git a/gtk/a11y/gtkbooleancellaccessible.h b/gtk/a11y/gtkbooleancellaccessible.h
new file mode 100644 (file)
index 0000000..86a8c2c
--- /dev/null
@@ -0,0 +1,55 @@
+/* GAIL - The GNOME Accessibility Enabling Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_BOOLEAN_CELL_ACCESSIBLE_H__
+#define __GTK_BOOLEAN_CELL_ACCESSIBLE_H__
+
+#include <atk/atk.h>
+#include "gtkrenderercellaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_BOOLEAN_CELL_ACCESSIBLE            (_gtk_boolean_cell_accessible_get_type ())
+#define GTK_BOOLEAN_CELL_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_BOOLEAN_CELL_ACCESSIBLE, GtkBooleanCellAccessible))
+#define GTK_BOOLEAN_CELL_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_BOOLEAN_CELL, GtkBooleanCellAccessibleClass))
+#define GTK_IS_BOOLEAN_CELL_ACCESSIBLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_BOOLEAN_CELL_ACCESSIBLE))
+#define GTK_IS_BOOLEAN_CELL_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_BOOLEAN_CELL_ACCESSIBLE))
+#define GTK_BOOLEAN_CELL_ACCESSIBLE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_BOOLEAN_CELL_ACCESSIBLE, GtkBooleanCellAccessibleClass))
+
+typedef struct _GtkBooleanCellAccessible      GtkBooleanCellAccessible;
+typedef struct _GtkBooleanCellAccessibleClass GtkBooleanCellAccessibleClass;
+
+struct _GtkBooleanCellAccessible
+{
+  GtkRendererCellAccessible parent;
+  gboolean cell_value;
+  gboolean cell_sensitive;
+};
+
+struct _GtkBooleanCellAccessibleClass
+{
+  GtkRendererCellAccessibleClass parent_class;
+};
+
+GType      _gtk_boolean_cell_accessible_get_type (void);
+AtkObject *_gtk_boolean_cell_accessible_new      (void);
+
+G_END_DECLS
+
+#endif /* __GAIL_TREE_VIEW_BOOLEAN_CELL_H__ */
similarity index 52%
rename from modules/other/gail/gailbox.c
rename to gtk/a11y/gtkboxaccessible.c
index f9d05b18dfab708d85958992a21ed89f02c31193..0044128f694254518a6089de139f81eb4312b7d6 100644 (file)
@@ -1,5 +1,5 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001 Sun Microsystems Inc.
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2004 Sun Microsystems Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
 #include "config.h"
 
 #include <gtk/gtk.h>
-#include "gailbox.h"
+#include "gtkboxaccessible.h"
 
-static void         gail_box_class_init            (GailBoxClass  *klass);
-static void         gail_box_init                  (GailBox       *box);
-static void         gail_box_initialize            (AtkObject     *accessible,
-                                                    gpointer       data);
 
-G_DEFINE_TYPE (GailBox, gail_box, GAIL_TYPE_CONTAINER)
+G_DEFINE_TYPE (GtkBoxAccessible, _gtk_box_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE)
 
 static void
-gail_box_class_init (GailBoxClass *klass)
+gtk_box_accessible_initialize (AtkObject *accessible,
+                               gpointer   data)
 {
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-
-  class->initialize = gail_box_initialize;
+  ATK_OBJECT_CLASS (_gtk_box_accessible_parent_class)->initialize (accessible, data);
+  accessible->role = ATK_ROLE_FILLER;
 }
 
 static void
-gail_box_init (GailBox *box)
+_gtk_box_accessible_class_init (GtkBoxAccessibleClass *klass)
 {
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+  class->initialize = gtk_box_accessible_initialize;
 }
 
 static void
-gail_box_initialize (AtkObject *accessible,
-                     gpointer  data)
+_gtk_box_accessible_init (GtkBoxAccessible *scale)
 {
-  ATK_OBJECT_CLASS (gail_box_parent_class)->initialize (accessible, data);
-
-  accessible->role = ATK_ROLE_FILLER;
 }
diff --git a/gtk/a11y/gtkboxaccessible.h b/gtk/a11y/gtkboxaccessible.h
new file mode 100644 (file)
index 0000000..bc36fac
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2004 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_BOX_ACCESSIBLE_H__
+#define __GTK_BOX_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_BOX_ACCESSIBLE            (_gtk_box_accessible_get_type ())
+#define GTK_BOX_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_BOX_ACCESSIBLE, GtkBoxAccessible))
+#define GTK_BOX_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_BOX_ACCESSIBLE, GtkBoxAccessibleClass))
+#define GTK_IS_BOX_ACCESSIBLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_BOX_ACCESSIBLE))
+#define GTK_IS_BOX_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_BOX_ACCESSIBLE))
+#define GTK_BOX_ACCESSIBLE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_BOX_ACCESSIBLE, GtkBoxAccessibleClass))
+
+typedef struct _GtkBoxAccessible      GtkBoxAccessible;
+typedef struct _GtkBoxAccessibleClass GtkBoxAccessibleClass;
+
+struct _GtkBoxAccessible
+{
+  GtkContainerAccessible parent;
+};
+
+struct _GtkBoxAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_box_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_BOX_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkbuttonaccessible.c b/gtk/a11y/gtkbuttonaccessible.c
new file mode 100644 (file)
index 0000000..d3f852d
--- /dev/null
@@ -0,0 +1,459 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include "gtkbuttonaccessible.h"
+
+
+static void atk_action_interface_init (AtkActionIface *iface);
+static void atk_image_interface_init  (AtkImageIface  *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkButtonAccessible, _gtk_button_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_interface_init))
+
+static void
+state_changed_cb (GtkWidget *widget, GtkStateFlags previous_flags)
+{
+  AtkObject *accessible;
+  GtkStateFlags flags;
+  gboolean was_active;
+  gboolean active;
+
+  flags = gtk_widget_get_state_flags (widget);
+
+  was_active = (previous_flags & GTK_STATE_FLAG_ACTIVE) != 0;
+  active = (flags & GTK_STATE_FLAG_ACTIVE) != 0;
+
+  accessible = gtk_widget_get_accessible (widget);
+  if (active && !was_active)
+    atk_object_notify_state_change (accessible, ATK_STATE_ARMED, TRUE);
+  else if (!active && was_active)
+    atk_object_notify_state_change (accessible, ATK_STATE_ARMED, FALSE);
+}
+
+static void
+gtk_button_accessible_initialize (AtkObject *obj,
+                                  gpointer   data)
+{
+  GtkWidget *parent;
+
+  ATK_OBJECT_CLASS (_gtk_button_accessible_parent_class)->initialize (obj, data);
+
+  g_signal_connect (data, "state-flags-changed", G_CALLBACK (state_changed_cb), NULL);
+
+  parent = gtk_widget_get_parent (gtk_accessible_get_widget (GTK_ACCESSIBLE (obj)));
+  if (GTK_IS_TREE_VIEW (parent))
+    {
+      /* Even though the accessible parent of the column header will
+       * be reported as the table because the parent widget of the
+       * GtkTreeViewColumn's button is the GtkTreeView we set
+       * the accessible parent for column header to be the table
+       * to ensure that atk_object_get_index_in_parent() returns
+       * the correct value; see gail_widget_get_index_in_parent().
+       */
+      atk_object_set_parent (obj, gtk_widget_get_accessible (parent));
+      obj->role = ATK_ROLE_TABLE_COLUMN_HEADER;
+    }
+  else
+    obj->role = ATK_ROLE_PUSH_BUTTON;
+}
+
+static GtkWidget *
+get_image_from_button (GtkWidget *button)
+{
+  GtkWidget *image;
+
+  image = gtk_button_get_image (GTK_BUTTON (button));
+  if (GTK_IS_IMAGE (image))
+    return image;
+
+  return NULL;
+}
+
+static GtkWidget *
+find_label_child (GtkContainer *container)
+{
+  GList *children, *tmp_list;
+  GtkWidget *child;
+
+  children = gtk_container_get_children (container);
+
+  child = NULL;
+  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next)
+    {
+      if (GTK_IS_LABEL (tmp_list->data))
+        {
+          child = GTK_WIDGET (tmp_list->data);
+          break;
+        }
+      else if (GTK_IS_CONTAINER (tmp_list->data))
+        {
+          child = find_label_child (GTK_CONTAINER (tmp_list->data));
+          if (child)
+            break;
+        }
+    }
+  g_list_free (children);
+  return child;
+}
+
+static GtkWidget *
+get_label_from_button (GtkWidget *button)
+{
+  GtkWidget *child;
+
+  child = gtk_bin_get_child (GTK_BIN (button));
+  if (GTK_IS_ALIGNMENT (child))
+    child = gtk_bin_get_child (GTK_BIN (child));
+
+  if (GTK_IS_CONTAINER (child))
+    child = find_label_child (GTK_CONTAINER (child));
+  else if (!GTK_IS_LABEL (child))
+    child = NULL;
+
+  return child;
+}
+
+static const gchar *
+gtk_button_accessible_get_name (AtkObject *obj)
+{
+  const gchar *name = NULL;
+  GtkWidget *widget;
+  GtkWidget *child;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  name = ATK_OBJECT_CLASS (_gtk_button_accessible_parent_class)->get_name (obj);
+  if (name != NULL)
+    return name;
+
+  child = get_label_from_button (widget);
+  if (GTK_IS_LABEL (child))
+    name = gtk_label_get_text (GTK_LABEL (child));
+  else
+    {
+      GtkWidget *image;
+
+      image = get_image_from_button (widget);
+      if (GTK_IS_IMAGE (image))
+        {
+          AtkObject *atk_obj;
+
+          atk_obj = gtk_widget_get_accessible (image);
+          name = atk_object_get_name (atk_obj);
+        }
+    }
+
+  return name;
+}
+
+static gint
+gtk_button_accessible_get_n_children (AtkObject* obj)
+{
+  return 0;
+}
+
+static AtkObject *
+gtk_button_accessible_ref_child (AtkObject *obj,
+                                 gint       i)
+{
+  return NULL;
+}
+
+static AtkStateSet *
+gtk_button_accessible_ref_state_set (AtkObject *obj)
+{
+  AtkStateSet *state_set;
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_button_accessible_parent_class)->ref_state_set (obj);
+
+  if ((gtk_widget_get_state_flags (widget) & GTK_STATE_FLAG_ACTIVE) != 0)
+    atk_state_set_add_state (state_set, ATK_STATE_ARMED);
+
+  if (!gtk_widget_get_can_focus (widget))
+    atk_state_set_remove_state (state_set, ATK_STATE_SELECTABLE);
+
+  return state_set;
+}
+
+static void
+gtk_button_accessible_notify_gtk (GObject    *obj,
+                                  GParamSpec *pspec)
+{
+  GtkWidget *widget = GTK_WIDGET (obj);
+  AtkObject *atk_obj = gtk_widget_get_accessible (widget);
+
+  if (strcmp (pspec->name, "label") == 0)
+    {
+      if (atk_obj->name == NULL)
+        g_object_notify (G_OBJECT (atk_obj), "accessible-name");
+
+      g_signal_emit_by_name (atk_obj, "visible-data-changed");
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_button_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static void
+_gtk_button_accessible_class_init (GtkButtonAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GtkContainerAccessibleClass *container_class = (GtkContainerAccessibleClass*)klass;
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+
+  class->get_name = gtk_button_accessible_get_name;
+  class->get_n_children = gtk_button_accessible_get_n_children;
+  class->ref_child = gtk_button_accessible_ref_child;
+  class->ref_state_set = gtk_button_accessible_ref_state_set;
+  class->initialize = gtk_button_accessible_initialize;
+
+  widget_class->notify_gtk = gtk_button_accessible_notify_gtk;
+
+  container_class->add_gtk = NULL;
+  container_class->remove_gtk = NULL;
+}
+
+static void
+_gtk_button_accessible_init (GtkButtonAccessible *button)
+{
+}
+
+static gboolean
+gtk_button_accessible_do_action (AtkAction *action,
+                                 gint       i)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (widget == NULL)
+    return FALSE;
+
+  if (i != 0)
+    return FALSE;
+
+  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
+    return FALSE;
+
+  gtk_button_clicked (GTK_BUTTON (widget));
+  return TRUE;
+}
+
+static gint
+gtk_button_accessible_get_n_actions (AtkAction *action)
+{
+  return 1;
+}
+
+static const gchar *
+gtk_button_accessible_get_keybinding (AtkAction *action,
+                                      gint       i)
+{
+  gchar *return_value = NULL;
+  GtkWidget *widget;
+  GtkWidget *label;
+  guint key_val;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (widget == NULL)
+    return NULL;
+
+  if (i != 0)
+    return NULL;
+
+  label = get_label_from_button (widget);
+  if (GTK_IS_LABEL (label))
+    {
+      key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label));
+      if (key_val != GDK_KEY_VoidSymbol)
+        return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
+    }
+  if (return_value == NULL)
+    {
+      /* Find labelled-by relation */
+      AtkRelationSet *set;
+      AtkRelation *relation;
+      GPtrArray *target;
+      gpointer target_object;
+
+      set = atk_object_ref_relation_set (ATK_OBJECT (action));
+      if (set)
+        {
+          relation = atk_relation_set_get_relation_by_type (set, ATK_RELATION_LABELLED_BY);
+          if (relation)
+            {
+              target = atk_relation_get_target (relation);
+              target_object = g_ptr_array_index (target, 0);
+              label = gtk_accessible_get_widget (GTK_ACCESSIBLE (target_object));
+            }
+          g_object_unref (set);
+        }
+
+      if (GTK_IS_LABEL (label))
+        {
+          key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label));
+          if (key_val != GDK_KEY_VoidSymbol)
+            return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
+        }
+    }
+  return return_value;
+}
+
+static const gchar *
+gtk_button_accessible_action_get_name (AtkAction *action,
+                                       gint       i)
+{
+  if (i != 0)
+    return NULL;
+
+  return "click";
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+  iface->do_action = gtk_button_accessible_do_action;
+  iface->get_n_actions = gtk_button_accessible_get_n_actions;
+  iface->get_keybinding = gtk_button_accessible_get_keybinding;
+  iface->get_name = gtk_button_accessible_action_get_name;
+}
+
+static const gchar *
+gtk_button_accessible_get_image_description (AtkImage *image)
+{
+  GtkWidget *widget;
+  GtkWidget  *button_image;
+  AtkObject *obj;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
+  if (widget == NULL)
+    return NULL;
+
+  button_image = get_image_from_button (widget);
+  if (GTK_IS_IMAGE (button_image))
+    {
+      obj = gtk_widget_get_accessible (button_image);
+      return atk_image_get_image_description (ATK_IMAGE (obj));
+    }
+
+  return NULL;
+}
+
+static void
+gtk_button_accessible_get_image_position (AtkImage     *image,
+                                          gint         *x,
+                                          gint         *y,
+                                          AtkCoordType  coord_type)
+{
+  GtkWidget *widget;
+  GtkWidget *button_image;
+  AtkObject *obj;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
+  if (widget == NULL)
+    {
+      *x = G_MININT;
+      *y = G_MININT;
+      return;
+    }
+
+  button_image = get_image_from_button (widget);
+  if (button_image != NULL)
+    {
+      obj = gtk_widget_get_accessible (button_image);
+      atk_component_get_position (ATK_COMPONENT (obj), x, y, coord_type);
+    }
+  else
+    {
+      *x = G_MININT;
+      *y = G_MININT;
+    }
+}
+
+static void
+gtk_button_accessible_get_image_size (AtkImage *image,
+                                      gint     *width,
+                                      gint     *height)
+{
+  GtkWidget *widget;
+  GtkWidget *button_image;
+  AtkObject *obj;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
+  if (widget == NULL)
+    {
+      *width = -1;
+      *height = -1;
+      return;
+    }
+
+  button_image = get_image_from_button (widget);
+  if (GTK_IS_IMAGE (button_image))
+    {
+      obj = gtk_widget_get_accessible (GTK_WIDGET (button_image));
+      atk_image_get_image_size (ATK_IMAGE (obj), width, height);
+    }
+  else
+    {
+      *width = -1;
+      *height = -1;
+    }
+}
+
+static gboolean
+gtk_button_accessible_set_image_description (AtkImage    *image,
+                                             const gchar *description)
+{
+  GtkWidget *widget;
+  GtkWidget *button_image;
+  AtkObject *obj;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
+
+  if (widget == NULL)
+    return FALSE;
+
+  button_image = get_image_from_button (widget);
+  if (GTK_IMAGE (button_image))
+    {
+      obj = gtk_widget_get_accessible (GTK_WIDGET (button_image));
+      return atk_image_set_image_description (ATK_IMAGE (obj), description);
+    }
+
+  return FALSE;
+}
+
+static void
+atk_image_interface_init (AtkImageIface *iface)
+{
+  iface->get_image_description = gtk_button_accessible_get_image_description;
+  iface->get_image_position = gtk_button_accessible_get_image_position;
+  iface->get_image_size = gtk_button_accessible_get_image_size;
+  iface->set_image_description = gtk_button_accessible_set_image_description;
+}
diff --git a/gtk/a11y/gtkbuttonaccessible.h b/gtk/a11y/gtkbuttonaccessible.h
new file mode 100644 (file)
index 0000000..bdf0589
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_BUTTON_ACCESSIBLE_H__
+#define __GTK_BUTTON_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_BUTTON_ACCESSIBLE                     (_gtk_button_accessible_get_type ())
+#define GTK_BUTTON_ACCESSIBLE(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_BUTTON_ACCESSIBLE, GtkButtonAccessible))
+#define GTK_BUTTON_ACCESSIBLE_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_BUTTON_ACCESSIBLE, GtkButtonAccessibleClass))
+#define GTK_IS_BUTTON_ACCESSIBLE(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_BUTTON_ACCESSIBLE))
+#define GTK_IS_BUTTON_ACCESSIBLE_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_BUTTON_ACCESSIBLE))
+#define GTK_BUTTON_ACCESSIBLE_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_BUTTON_ACCESSIBLE, GtkButtonAccessibleClass))
+
+typedef struct _GtkButtonAccessible      GtkButtonAccessible;
+typedef struct _GtkButtonAccessibleClass GtkButtonAccessibleClass;
+
+struct _GtkButtonAccessible
+{
+  GtkContainerAccessible parent;
+};
+
+struct _GtkButtonAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_button_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_BUTTON_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkcellaccessible.c b/gtk/a11y/gtkcellaccessible.c
new file mode 100644 (file)
index 0000000..93f0ebe
--- /dev/null
@@ -0,0 +1,424 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkcontainercellaccessible.h"
+#include "gtkcellaccessible.h"
+#include "gtkcellaccessibleparent.h"
+
+typedef struct _ActionInfo ActionInfo;
+struct _ActionInfo {
+  gchar *name;
+  gchar *description;
+  gchar *keybinding;
+  void (*do_action_func) (GtkCellAccessible *cell);
+};
+
+
+static void atk_action_interface_init    (AtkActionIface    *iface);
+static void atk_component_interface_init (AtkComponentIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkCellAccessible, _gtk_cell_accessible, ATK_TYPE_OBJECT,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init))
+
+static void
+destroy_action_info (gpointer action_info)
+{
+  ActionInfo *info = (ActionInfo *)action_info;
+
+  g_free (info->name);
+  g_free (info->description);
+  g_free (info->keybinding);
+  g_free (info);
+}
+
+static void
+gtk_cell_accessible_object_finalize (GObject *obj)
+{
+  GtkCellAccessible *cell = GTK_CELL_ACCESSIBLE (obj);
+  AtkRelationSet *relation_set;
+  AtkRelation *relation;
+  GPtrArray *target;
+  gpointer target_object;
+  gint i;
+
+  if (cell->state_set)
+    g_object_unref (cell->state_set);
+
+  if (cell->action_list)
+    g_list_free_full (cell->action_list, destroy_action_info);
+
+  relation_set = atk_object_ref_relation_set (ATK_OBJECT (obj));
+  if (ATK_IS_RELATION_SET (relation_set))
+    {
+      relation = atk_relation_set_get_relation_by_type (relation_set,
+                                                        ATK_RELATION_NODE_CHILD_OF);
+      if (relation)
+        {
+          target = atk_relation_get_target (relation);
+          for (i = 0; i < target->len; i++)
+            {
+              target_object = g_ptr_array_index (target, i);
+              if (GTK_IS_CELL_ACCESSIBLE (target_object))
+                g_object_unref (target_object);
+            }
+        }
+      g_object_unref (relation_set);
+    }
+  G_OBJECT_CLASS (_gtk_cell_accessible_parent_class)->finalize (obj);
+}
+
+static gint
+gtk_cell_accessible_get_index_in_parent (AtkObject *obj)
+{
+  GtkCellAccessible *cell;
+
+  cell = GTK_CELL_ACCESSIBLE (obj);
+  if (atk_state_set_contains_state (cell->state_set, ATK_STATE_STALE) &&
+      cell->refresh_index != NULL)
+    {
+      cell->refresh_index (cell);
+      atk_state_set_remove_state (cell->state_set, ATK_STATE_STALE);
+    }
+
+  return cell->index;
+}
+
+static AtkStateSet *
+gtk_cell_accessible_ref_state_set (AtkObject *obj)
+{
+  GtkCellAccessible *cell = GTK_CELL_ACCESSIBLE (obj);
+
+  g_object_ref (cell->state_set);
+
+  return cell->state_set;
+}
+
+static void
+_gtk_cell_accessible_class_init (GtkCellAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GObjectClass *g_object_class = G_OBJECT_CLASS (klass);
+
+  g_object_class->finalize = gtk_cell_accessible_object_finalize;
+
+  class->get_index_in_parent = gtk_cell_accessible_get_index_in_parent;
+  class->ref_state_set = gtk_cell_accessible_ref_state_set;
+}
+
+static void
+_gtk_cell_accessible_init (GtkCellAccessible *cell)
+{
+  cell->widget = NULL;
+  cell->action_list = NULL;
+  cell->index = 0;
+  cell->refresh_index = NULL;
+  cell->state_set = atk_state_set_new ();
+  atk_state_set_add_state (cell->state_set, ATK_STATE_TRANSIENT);
+  atk_state_set_add_state (cell->state_set, ATK_STATE_ENABLED);
+  atk_state_set_add_state (cell->state_set, ATK_STATE_SENSITIVE);
+  atk_state_set_add_state (cell->state_set, ATK_STATE_SELECTABLE);
+}
+
+static void
+widget_destroyed (GtkWidget         *widget,
+                  GtkCellAccessible *cell)
+{
+  cell->widget = NULL;
+}
+
+void
+_gtk_cell_accessible_initialise (GtkCellAccessible *cell,
+                                 GtkWidget         *widget,
+                                 AtkObject         *parent,
+                                 gint               index)
+{
+  cell->widget = widget;
+  atk_object_set_parent (ATK_OBJECT (cell), parent);
+  cell->index = index;
+
+  g_signal_connect_object (G_OBJECT (widget), "destroy",
+                           G_CALLBACK (widget_destroyed), cell, 0);
+}
+
+gboolean
+_gtk_cell_accessible_add_state (GtkCellAccessible *cell,
+                                AtkStateType       state_type,
+                                gboolean           emit_signal)
+{
+  gboolean rc;
+  AtkObject *parent;
+
+  if (atk_state_set_contains_state (cell->state_set, state_type))
+    return FALSE;
+
+  rc = atk_state_set_add_state (cell->state_set, state_type);
+
+  /* The signal should only be generated if the value changed,
+   * not when the cell is set up. So states that are set
+   * initially should pass FALSE as the emit_signal argument.
+   */
+  if (emit_signal)
+    {
+      atk_object_notify_state_change (ATK_OBJECT (cell), state_type, TRUE);
+      /* If state_type is ATK_STATE_VISIBLE, additional notification */
+      if (state_type == ATK_STATE_VISIBLE)
+        g_signal_emit_by_name (cell, "visible-data-changed");
+    }
+
+  /* If the parent is a flyweight container cell, propagate the state
+   * change to it also
+   */
+  parent = atk_object_get_parent (ATK_OBJECT (cell));
+  if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
+    _gtk_cell_accessible_add_state (GTK_CELL_ACCESSIBLE (parent), state_type, emit_signal);
+
+  return rc;
+}
+
+gboolean
+_gtk_cell_accessible_remove_state (GtkCellAccessible *cell,
+                                   AtkStateType       state_type,
+                                   gboolean           emit_signal)
+{
+  gboolean rc;
+  AtkObject *parent;
+
+  if (!atk_state_set_contains_state (cell->state_set, state_type))
+    return FALSE;
+
+  parent = atk_object_get_parent (ATK_OBJECT (cell));
+
+  rc = atk_state_set_remove_state (cell->state_set, state_type);
+
+  /* The signal should only be generated if the value changed,
+   * not when the cell is set up.  So states that are set
+   * initially should pass FALSE as the emit_signal argument.
+   */
+  if (emit_signal)
+    {
+      atk_object_notify_state_change (ATK_OBJECT (cell), state_type, FALSE);
+      /* If state_type is ATK_STATE_VISIBLE, additional notification */
+      if (state_type == ATK_STATE_VISIBLE)
+        g_signal_emit_by_name (cell, "visible-data-changed");
+    }
+
+  /* If the parent is a flyweight container cell, propagate the state
+   * change to it also
+   */
+  if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
+    _gtk_cell_accessible_remove_state (GTK_CELL_ACCESSIBLE (parent), state_type, emit_signal);
+
+  return rc;
+}
+
+gboolean
+_gtk_cell_accessible_add_action (GtkCellAccessible *cell,
+                                 const gchar       *name,
+                                 const gchar       *description,
+                                 const gchar       *keybinding,
+                                 void (*func) (GtkCellAccessible *))
+{
+  ActionInfo *info;
+
+  info = g_new (ActionInfo, 1);
+  info->name = g_strdup (name);
+  info->description = g_strdup (description);
+  info->keybinding = g_strdup (keybinding);
+  info->do_action_func = func;
+
+  cell->action_list = g_list_append (cell->action_list, info);
+
+  return TRUE;
+}
+
+gboolean
+_gtk_cell_accessible_remove_action (GtkCellAccessible *cell,
+                                    gint               index)
+{
+  GList *l;
+
+  l = g_list_nth (cell->action_list, index);
+  if (l == NULL)
+    return FALSE;
+
+  destroy_action_info (l->data);
+  cell->action_list = g_list_remove_link (cell->action_list, l);
+
+  return TRUE;
+}
+
+
+gboolean
+_gtk_cell_accessible_remove_action_by_name (GtkCellAccessible *cell,
+                                            const gchar       *name)
+{
+  GList *l;
+
+  for (l = cell->action_list; l; l = l->next)
+    {
+      ActionInfo *info = l->data;
+
+      if (g_strcmp0 (info->name, name) == 0)
+        break;
+    }
+
+  if (l == NULL)
+    return FALSE;
+
+  destroy_action_info (l->data);
+  cell->action_list = g_list_remove_link (cell->action_list, l);
+
+  return TRUE;
+}
+
+static ActionInfo *
+get_action_info (GtkCellAccessible *cell,
+                 gint               index)
+{
+  GList *l;
+
+  l = g_list_nth (cell->action_list, index);
+  if (l == NULL)
+    return NULL;
+
+  return (ActionInfo *) (l->data);
+}
+
+static gint
+gtk_cell_accessible_action_get_n_actions (AtkAction *action)
+{
+  GtkCellAccessible *cell = GTK_CELL_ACCESSIBLE(action);
+  if (cell->action_list != NULL)
+    return g_list_length (cell->action_list);
+  else
+    return 0;
+}
+
+static const gchar *
+gtk_cell_accessible_action_get_name (AtkAction *action,
+                                     gint       index)
+{
+  GtkCellAccessible *cell = GTK_CELL_ACCESSIBLE (action);
+  ActionInfo *info;
+
+  info = get_action_info (cell, index);
+  if (info == NULL)
+    return NULL;
+
+  return info->name;
+}
+
+static const gchar *
+gtk_cell_accessible_action_get_description (AtkAction *action,
+                                            gint       index)
+{
+  GtkCellAccessible *cell = GTK_CELL_ACCESSIBLE (action);
+  ActionInfo *info;
+
+  info = get_action_info (cell, index);
+  if (info == NULL)
+    return NULL;
+
+  return info->description;
+}
+
+static const gchar *
+gtk_cell_accessible_action_get_keybinding (AtkAction *action,
+                                           gint       index)
+{
+  GtkCellAccessible *cell = GTK_CELL_ACCESSIBLE (action);
+  ActionInfo *info;
+
+  info = get_action_info (cell, index);
+  if (info == NULL)
+    return NULL;
+
+  return info->keybinding;
+}
+
+static gboolean
+gtk_cell_accessible_action_do_action (AtkAction *action,
+                                      gint       index)
+{
+  GtkCellAccessible *cell = GTK_CELL_ACCESSIBLE (action);
+  ActionInfo *info;
+
+  info = get_action_info (cell, index);
+  if (info == NULL)
+    return FALSE;
+
+  if (info->do_action_func == NULL)
+    return FALSE;
+
+  info->do_action_func (cell);
+
+  return TRUE;
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+  iface->get_n_actions = gtk_cell_accessible_action_get_n_actions;
+  iface->do_action = gtk_cell_accessible_action_do_action;
+  iface->get_name = gtk_cell_accessible_action_get_name;
+  iface->get_description = gtk_cell_accessible_action_get_description;
+  iface->get_keybinding = gtk_cell_accessible_action_get_keybinding;
+}
+
+static void
+gtk_cell_accessible_get_extents (AtkComponent *component,
+                                 gint         *x,
+                                 gint         *y,
+                                 gint         *width,
+                                 gint         *height,
+                                 AtkCoordType  coord_type)
+{
+  GtkCellAccessible *cell;
+  AtkObject *parent;
+
+  cell = GTK_CELL_ACCESSIBLE (component);
+  parent = gtk_widget_get_accessible (cell->widget);
+
+  _gtk_cell_accessible_parent_get_cell_extents (GTK_CELL_ACCESSIBLE_PARENT (parent),
+                                                cell,
+                                                x, y, width, height, coord_type);
+}
+
+static gboolean
+gtk_cell_accessible_grab_focus (AtkComponent *component)
+{
+  GtkCellAccessible *cell;
+  AtkObject *parent;
+
+  cell = GTK_CELL_ACCESSIBLE (component);
+  parent = gtk_widget_get_accessible (cell->widget);
+
+  return _gtk_cell_accessible_parent_grab_focus (GTK_CELL_ACCESSIBLE_PARENT (parent), cell);
+}
+
+static void
+atk_component_interface_init (AtkComponentIface *iface)
+{
+  iface->get_extents = gtk_cell_accessible_get_extents;
+  iface->grab_focus = gtk_cell_accessible_grab_focus;
+}
diff --git a/gtk/a11y/gtkcellaccessible.h b/gtk/a11y/gtkcellaccessible.h
new file mode 100644 (file)
index 0000000..234ca7d
--- /dev/null
@@ -0,0 +1,82 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_CELL_ACCESSIBLE_H__
+#define __GTK_CELL_ACCESSIBLE_H__
+
+#include <atk/atk.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_CELL_ACCESSIBLE                           (_gtk_cell_accessible_get_type ())
+#define GTK_CELL_ACCESSIBLE(obj)                           (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CELL_ACCESSIBLE, GtkCellAccessible))
+#define GTK_CELL_ACCESSIBLE_CLASS(klass)                   (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_CELL_ACCESSIBLE, GtkCellAccessibleClass))
+#define GTK_IS_CELL_ACCESSIBLE(obj)                        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CELL_ACCESSIBLE))
+#define GTK_IS_CELL_ACCESSIBLE_CLASS(klass)                (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CELL_ACCESSIBLE))
+#define GTK_CELL_ACCESSIBLE_GET_CLASS(obj)                 (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CELL_ACCESSIBLE, GtkCellAccessibleClass))
+
+typedef struct _GtkCellAccessible      GtkCellAccessible;
+typedef struct _GtkCellAccessibleClass GtkCellAccessibleClass;
+
+struct _GtkCellAccessible
+{
+  AtkObject parent;
+
+  GtkWidget    *widget;
+  /* This cached value is used only by atk_object_get_index_in_parent()
+   * which updates the value when it is stale.
+   */
+  gint         index;
+  AtkStateSet *state_set;
+  GList       *action_list;
+  void (*refresh_index) (GtkCellAccessible *cell);
+};
+
+struct _GtkCellAccessibleClass
+{
+  AtkObjectClass parent_class;
+};
+
+GType    _gtk_cell_accessible_get_type      (void);
+
+void     _gtk_cell_accessible_initialise    (GtkCellAccessible *cell,
+                                             GtkWidget         *widget,
+                                             AtkObject         *parent,
+                                             gint               index);
+gboolean _gtk_cell_accessible_add_state     (GtkCellAccessible *cell,
+                                             AtkStateType       state_type,
+                                             gboolean           emit_signal);
+gboolean _gtk_cell_accessible_remove_state  (GtkCellAccessible *cell,
+                                             AtkStateType       state_type,
+                                             gboolean           emit_signal);
+gboolean _gtk_cell_accessible_add_action    (GtkCellAccessible *cell,
+                                             const gchar       *name,
+                                             const gchar       *description,
+                                             const gchar       *keybinding,
+                                             void (*func) (GtkCellAccessible *));
+
+gboolean _gtk_cell_accessible_remove_action (GtkCellAccessible *cell,
+                                             gint               index);
+gboolean _gtk_cell_accessible_remove_action_by_name
+                                            (GtkCellAccessible *cell,
+                                             const gchar       *name);
+
+G_END_DECLS
+
+#endif /* __GTK_CELL_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkcellaccessibleparent.c b/gtk/a11y/gtkcellaccessibleparent.c
new file mode 100644 (file)
index 0000000..b63e5af
--- /dev/null
@@ -0,0 +1,97 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkcellaccessibleparent.h"
+
+GType
+_gtk_cell_accessible_parent_get_type (void)
+{
+  static volatile gsize g_define_type_id__volatile = 0;
+
+  if (g_once_init_enter (&g_define_type_id__volatile))
+    {
+      GType g_define_type_id =
+        g_type_register_static_simple (G_TYPE_INTERFACE,
+                                       "GtkCellAccessibleParent",
+                                       sizeof (GtkCellAccessibleParentIface),
+                                       NULL,
+                                       0,
+                                       NULL,
+                                       0);
+
+      g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
+    }
+
+  return g_define_type_id__volatile;
+}
+
+void
+_gtk_cell_accessible_parent_get_cell_extents (GtkCellAccessibleParent *parent,
+                                              GtkCellAccessible       *cell,
+                                              gint                    *x,
+                                              gint                    *y,
+                                              gint                    *width,
+                                              gint                    *height,
+                                              AtkCoordType             coord_type)
+{
+  GtkCellAccessibleParentIface *iface;
+
+  g_return_if_fail (GTK_IS_CELL_ACCESSIBLE_PARENT (parent));
+
+  iface = GTK_CELL_ACCESSIBLE_PARENT_GET_IFACE (parent);
+
+  if (iface->get_cell_extents)
+    (iface->get_cell_extents) (parent, cell, x, y, width, height, coord_type);
+}
+
+void
+_gtk_cell_accessible_parent_get_cell_area (GtkCellAccessibleParent *parent,
+                                           GtkCellAccessible       *cell,
+                                           GdkRectangle            *cell_rect)
+{
+  GtkCellAccessibleParentIface *iface;
+
+  g_return_if_fail (GTK_IS_CELL_ACCESSIBLE_PARENT (parent));
+  g_return_if_fail (cell_rect);
+
+  iface = GTK_CELL_ACCESSIBLE_PARENT_GET_IFACE (parent);
+
+  if (iface->get_cell_area)
+    (iface->get_cell_area) (parent, cell, cell_rect);
+}
+
+gboolean
+_gtk_cell_accessible_parent_grab_focus (GtkCellAccessibleParent *parent,
+                                        GtkCellAccessible       *cell)
+{
+  GtkCellAccessibleParentIface *iface;
+
+  g_return_val_if_fail (GTK_IS_CELL_ACCESSIBLE_PARENT (parent), FALSE);
+
+  iface = GTK_CELL_ACCESSIBLE_PARENT_GET_IFACE (parent);
+
+  if (iface->grab_focus)
+    return (iface->grab_focus) (parent, cell);
+  else
+    return FALSE;
+}
diff --git a/gtk/a11y/gtkcellaccessibleparent.h b/gtk/a11y/gtkcellaccessibleparent.h
new file mode 100644 (file)
index 0000000..7969a8b
--- /dev/null
@@ -0,0 +1,80 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ *
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_CELL_ACCESSIBLE_PARENT_H__
+#define __GTK_CELL_ACCESSIBLE_PARENT_H__
+
+#include <atk/atk.h>
+#include "gtkcellaccessible.h"
+
+G_BEGIN_DECLS
+
+/*
+ * The GtkCellAccessibleParent interface should be supported by any object
+ * which contains children which are flyweights, i.e. do not have corresponding
+ * widgets and the children need help from their parent to provide
+ * functionality. One example is GtkTreeViewAccessible where the children
+ * GtkCellAccessible need help from the GtkTreeViewAccessible in order to
+ * implement atk_component_get_extents().
+ */
+
+#define GTK_TYPE_CELL_ACCESSIBLE_PARENT            (_gtk_cell_accessible_parent_get_type ())
+#define GTK_IS_CELL_ACCESSIBLE_PARENT(obj)         G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CELL_ACCESSIBLE_PARENT)
+#define GTK_CELL_ACCESSIBLE_PARENT(obj)            G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CELL_ACCESSIBLE_PARENT, GtkCellAccessibleParent)
+#define GTK_CELL_ACCESSIBLE_PARENT_GET_IFACE(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GTK_TYPE_CELL_ACCESSIBLE_PARENT, GtkCellAccessibleParentIface))
+
+typedef struct _GtkCellAccessibleParent GtkCellAccessibleParent;
+typedef struct _GtkCellAccessibleParentIface GtkCellAccessibleParentIface;
+
+struct _GtkCellAccessibleParentIface
+{
+  GTypeInterface parent;
+  void     ( *get_cell_extents) (GtkCellAccessibleParent *parent,
+                                 GtkCellAccessible       *cell,
+                                 gint                    *x,
+                                 gint                    *y,
+                                 gint                    *width,
+                                 gint                    *height,
+                                 AtkCoordType             coord_type);
+  void     ( *get_cell_area)    (GtkCellAccessibleParent *parent,
+                                 GtkCellAccessible       *cell,
+                                 GdkRectangle            *cell_rect);
+  gboolean ( *grab_focus)       (GtkCellAccessibleParent *parent,
+                                 GtkCellAccessible       *cell);
+};
+
+GType    _gtk_cell_accessible_parent_get_type         (void);
+
+void     _gtk_cell_accessible_parent_get_cell_extents (GtkCellAccessibleParent *parent,
+                                                       GtkCellAccessible       *cell,
+                                                       gint                    *x,
+                                                       gint                    *y,
+                                                       gint                    *width,
+                                                       gint                    *height,
+                                                       AtkCoordType             coord_type);
+void     _gtk_cell_accessible_parent_get_cell_area    (GtkCellAccessibleParent *parent,
+                                                       GtkCellAccessible       *cell,
+                                                       GdkRectangle            *cell_rect);
+gboolean _gtk_cell_accessible_parent_grab_focus       (GtkCellAccessibleParent *parent,
+                                                       GtkCellAccessible       *cell);
+
+G_END_DECLS
+
+#endif /* __GTK_CELL_ACCESSIBLE_PARENT_H__ */
similarity index 52%
rename from modules/other/gail/gailchecksubmenuitem.c
rename to gtk/a11y/gtkcheckmenuitemaccessible.c
index a9e22f551c8b3bdbb893707d85a53d8645ec0e16..bb9344398978ab71469f98c8176c5558057e0966 100644 (file)
 
 #include <string.h>
 #include <gtk/gtk.h>
-#include "gailchecksubmenuitem.h"
+#include "gtkcheckmenuitemaccessible.h"
 
-static void      gail_check_sub_menu_item_class_init        (GailCheckSubMenuItemClass *klass);
 
-static void      gail_check_sub_menu_item_init              (GailCheckSubMenuItem   *item);
-
-static void      gail_check_sub_menu_item_toggled_gtk       (GtkWidget              *widget);
-
-static void      gail_check_sub_menu_item_real_notify_gtk   (GObject                *obj,
-                                                             GParamSpec             *pspec);
-
-static void      gail_check_sub_menu_item_real_initialize   (AtkObject              *obj,
-                                                             gpointer               data);
-
-static AtkStateSet* gail_check_sub_menu_item_ref_state_set  (AtkObject              *accessible);
-
-G_DEFINE_TYPE (GailCheckSubMenuItem, gail_check_sub_menu_item, GAIL_TYPE_SUB_MENU_ITEM)
+G_DEFINE_TYPE (GtkCheckMenuItemAccessible, _gtk_check_menu_item_accessible, GTK_TYPE_MENU_ITEM_ACCESSIBLE)
 
 static void
-gail_check_sub_menu_item_class_init (GailCheckSubMenuItemClass *klass)
+toggled_cb (GtkWidget *widget)
 {
-  GailWidgetClass *widget_class;
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  widget_class = (GailWidgetClass*)klass;
-  widget_class->notify_gtk = gail_check_sub_menu_item_real_notify_gtk;
-
-  class->ref_state_set = gail_check_sub_menu_item_ref_state_set;
-  class->initialize = gail_check_sub_menu_item_real_initialize;
-}
-
-static void
-gail_check_sub_menu_item_init (GailCheckSubMenuItem *item)
-{
-}
-
-AtkObject* 
-gail_check_sub_menu_item_new (GtkWidget *widget)
-{
-  GObject *object;
   AtkObject *accessible;
+  GtkCheckMenuItem *check_menu_item;
+  gboolean active;
 
-  g_return_val_if_fail (GTK_IS_CHECK_MENU_ITEM (widget), NULL);
-
-  object = g_object_new (GAIL_TYPE_CHECK_SUB_MENU_ITEM, NULL);
-
-  accessible = ATK_OBJECT (object);
-  atk_object_initialize (accessible, widget);
+  check_menu_item = GTK_CHECK_MENU_ITEM (widget);
+  active = gtk_check_menu_item_get_active (check_menu_item);
 
-  return accessible;
+  accessible = gtk_widget_get_accessible (widget);
+  atk_object_notify_state_change (accessible, ATK_STATE_CHECKED, active);
 }
 
 static void
-gail_check_sub_menu_item_real_initialize (AtkObject *obj,
-                                          gpointer  data)
+gtk_check_menu_item_accessible_initialize (AtkObject *obj,
+                                              gpointer   data)
 {
-  ATK_OBJECT_CLASS (gail_check_sub_menu_item_parent_class)->initialize (obj, data);
+  ATK_OBJECT_CLASS (_gtk_check_menu_item_accessible_parent_class)->initialize (obj, data);
 
-  g_signal_connect (data,
-                    "toggled",
-                    G_CALLBACK (gail_check_sub_menu_item_toggled_gtk),
-                    NULL);
+  g_signal_connect (data, "toggled", G_CALLBACK (toggled_cb), NULL);
 
   obj->role = ATK_ROLE_CHECK_MENU_ITEM;
 }
 
-static void
-gail_check_sub_menu_item_toggled_gtk (GtkWidget       *widget)
-{
-  AtkObject *accessible;
-  GtkCheckMenuItem *check_menu_item;
-
-  check_menu_item = GTK_CHECK_MENU_ITEM (widget);
-
-  accessible = gtk_widget_get_accessible (widget);
-  atk_object_notify_state_change (accessible, ATK_STATE_CHECKED, 
-                                  gtk_check_menu_item_get_active (check_menu_item));
-} 
-
-static AtkStateSet*
-gail_check_sub_menu_item_ref_state_set (AtkObject *accessible)
+static AtkStateSet *
+gtk_check_menu_item_accessible_ref_state_set (AtkObject *accessible)
 {
   AtkStateSet *state_set;
   GtkCheckMenuItem *check_menu_item;
   GtkWidget *widget;
 
-  state_set = ATK_OBJECT_CLASS (gail_check_sub_menu_item_parent_class)->ref_state_set (accessible);
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
   if (widget == NULL)
-    return state_set;
+    return NULL;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_check_menu_item_accessible_parent_class)->ref_state_set (accessible);
 
   check_menu_item = GTK_CHECK_MENU_ITEM (widget);
 
@@ -123,13 +74,13 @@ gail_check_sub_menu_item_ref_state_set (AtkObject *accessible)
       atk_state_set_remove_state (state_set, ATK_STATE_ENABLED);
       atk_state_set_add_state (state_set, ATK_STATE_INDETERMINATE);
     }
+
   return state_set;
 }
 
 static void
-gail_check_sub_menu_item_real_notify_gtk (GObject           *obj,
-                                          GParamSpec        *pspec)
+gtk_check_menu_item_accessible_notify_gtk (GObject    *obj,
+                                              GParamSpec *pspec)
 {
   GtkCheckMenuItem *check_menu_item = GTK_CHECK_MENU_ITEM (obj);
   AtkObject *atk_obj;
@@ -152,5 +103,22 @@ gail_check_sub_menu_item_real_notify_gtk (GObject           *obj,
       atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, (sensitive && !inconsistent));
     }
   else
-    GAIL_WIDGET_CLASS (gail_check_sub_menu_item_parent_class)->notify_gtk (obj, pspec);
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_check_menu_item_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static void
+_gtk_check_menu_item_accessible_class_init (GtkCheckMenuItemAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+
+  widget_class->notify_gtk = gtk_check_menu_item_accessible_notify_gtk;
+
+  class->ref_state_set = gtk_check_menu_item_accessible_ref_state_set;
+  class->initialize = gtk_check_menu_item_accessible_initialize;
+}
+
+static void
+_gtk_check_menu_item_accessible_init (GtkCheckMenuItemAccessible *item)
+{
 }
diff --git a/gtk/a11y/gtkcheckmenuitemaccessible.h b/gtk/a11y/gtkcheckmenuitemaccessible.h
new file mode 100644 (file)
index 0000000..afaa133
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2002 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_CHECK_MENU_ITEM_ACCESSIBLE_H__
+#define __GTK_CHECK_MENU_ITEM_ACCESSIBLE_H__
+
+#include "gtkmenuitemaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE              (_gtk_check_menu_item_accessible_get_type ())
+#define GTK_CHECK_MENU_ITEM_ACCESSIBLE(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE, GtkCheckMenuItemAccessible))
+#define GTK_CHECK_MENU_ITEM_ACCESSIBLE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE, GtkCheckMenuItemAccessibleClass))
+#define GTK_IS_CHECK_MENU_ITEM_ACCESSIBLE(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE))
+#define GTK_IS_CHECK_MENU_ITEM_ACCESSIBLE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE))
+#define GTK_CHECK_MENU_ITEM_ACCESSIBLE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE, GtkCheckMenuItemAccessibleClass))
+
+typedef struct _GtkCheckMenuItemAccessible      GtkCheckMenuItemAccessible;
+typedef struct _GtkCheckMenuItemAccessibleClass GtkCheckMenuItemAccessibleClass;
+
+struct _GtkCheckMenuItemAccessible
+{
+  GtkMenuItemAccessible parent;
+};
+
+struct _GtkCheckMenuItemAccessibleClass
+{
+  GtkMenuItemAccessibleClass parent_class;
+};
+
+GType _gtk_check_menu_item_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_CHECK_MENU_ITEM_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkcomboboxaccessible.c b/gtk/a11y/gtkcomboboxaccessible.c
new file mode 100644 (file)
index 0000000..f25f787
--- /dev/null
@@ -0,0 +1,409 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2004 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkcomboboxaccessible.h"
+
+
+static void atk_action_interface_init    (AtkActionIface    *iface);
+static void atk_selection_interface_init (AtkSelectionIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkComboBoxAccessible, _gtk_combo_box_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
+
+static void
+changed_cb (GtkWidget *widget)
+{
+  GtkComboBox *combo_box;
+  AtkObject *obj;
+  GtkComboBoxAccessible *accessible;
+  gint index;
+
+  combo_box = GTK_COMBO_BOX (widget);
+
+  index = gtk_combo_box_get_active (combo_box);
+  obj = gtk_widget_get_accessible (widget);
+  accessible = GTK_COMBO_BOX_ACCESSIBLE (obj);
+  if (accessible->old_selection != index)
+    {
+      accessible->old_selection = index;
+      g_object_notify (G_OBJECT (obj), "accessible-name");
+      g_signal_emit_by_name (obj, "selection-changed");
+    }
+}
+
+static void
+gtk_combo_box_accessible_initialize (AtkObject *obj,
+                                     gpointer   data)
+{
+  GtkComboBox *combo_box;
+  GtkComboBoxAccessible *accessible;
+  AtkObject *popup;
+
+  ATK_OBJECT_CLASS (_gtk_combo_box_accessible_parent_class)->initialize (obj, data);
+
+  combo_box = GTK_COMBO_BOX (data);
+  accessible = GTK_COMBO_BOX_ACCESSIBLE (obj);
+
+  g_signal_connect (combo_box, "changed", G_CALLBACK (changed_cb), NULL);
+  accessible->old_selection = gtk_combo_box_get_active (combo_box);
+
+  popup = gtk_combo_box_get_popup_accessible (combo_box);
+  if (popup)
+    {
+      atk_object_set_parent (popup, obj);
+      accessible->popup_set = TRUE;
+    }
+  if (gtk_combo_box_get_has_entry (combo_box))
+    atk_object_set_parent (gtk_widget_get_accessible (gtk_bin_get_child (GTK_BIN (combo_box))), obj);
+
+  obj->role = ATK_ROLE_COMBO_BOX;
+}
+
+static void
+gtk_combo_box_accessible_finalize (GObject *object)
+{
+  GtkComboBoxAccessible *combo_box = GTK_COMBO_BOX_ACCESSIBLE (object);
+
+  g_free (combo_box->name);
+
+  G_OBJECT_CLASS (_gtk_combo_box_accessible_parent_class)->finalize (object);
+}
+
+static const gchar *
+gtk_combo_box_accessible_get_name (AtkObject *obj)
+{
+  GtkWidget *widget;
+  GtkComboBox *combo_box;
+  GtkComboBoxAccessible *accessible;
+  GtkTreeIter iter;
+  const gchar *name;
+  GtkTreeModel *model;
+  gint n_columns;
+  gint i;
+
+  name = ATK_OBJECT_CLASS (_gtk_combo_box_accessible_parent_class)->get_name (obj);
+  if (name)
+    return name;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  combo_box = GTK_COMBO_BOX (widget);
+  accessible = GTK_COMBO_BOX_ACCESSIBLE (obj);
+  if (gtk_combo_box_get_active_iter (combo_box, &iter))
+    {
+      model = gtk_combo_box_get_model (combo_box);
+      n_columns = gtk_tree_model_get_n_columns (model);
+      for (i = 0; i < n_columns; i++)
+        {
+          GValue value = { 0, };
+
+          gtk_tree_model_get_value (model, &iter, i, &value);
+          if (G_VALUE_HOLDS_STRING (&value))
+            {
+              g_free (accessible->name);
+              accessible->name =  g_strdup (g_value_get_string (&value));
+              g_value_unset (&value);
+              break;
+            }
+          else
+            g_value_unset (&value);
+        }
+    }
+  return accessible->name;
+}
+
+static gint
+gtk_combo_box_accessible_get_n_children (AtkObject* obj)
+{
+  gint n_children = 0;
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return 0;
+
+  n_children++;
+  if (gtk_combo_box_get_has_entry (GTK_COMBO_BOX (widget)))
+    n_children++;
+
+  return n_children;
+}
+
+static AtkObject *
+gtk_combo_box_accessible_ref_child (AtkObject *obj,
+                                    gint       i)
+{
+  GtkWidget *widget;
+  AtkObject *child;
+  GtkComboBoxAccessible *box;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  if (i == 0)
+    {
+      child = gtk_combo_box_get_popup_accessible (GTK_COMBO_BOX (widget));
+      box = GTK_COMBO_BOX_ACCESSIBLE (obj);
+      if (box->popup_set == FALSE)
+        {
+          atk_object_set_parent (child, obj);
+          box->popup_set = TRUE;
+        }
+    }
+  else if (i == 1 && gtk_combo_box_get_has_entry (GTK_COMBO_BOX (widget)))
+    {
+      child = gtk_widget_get_accessible (gtk_bin_get_child (GTK_BIN (widget)));
+    }
+  else
+    {
+      return NULL;
+    }
+
+  return g_object_ref (child);
+}
+
+static void
+_gtk_combo_box_accessible_class_init (GtkComboBoxAccessibleClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+  gobject_class->finalize = gtk_combo_box_accessible_finalize;
+
+  class->get_name = gtk_combo_box_accessible_get_name;
+  class->get_n_children = gtk_combo_box_accessible_get_n_children;
+  class->ref_child = gtk_combo_box_accessible_ref_child;
+  class->initialize = gtk_combo_box_accessible_initialize;
+}
+
+static void
+_gtk_combo_box_accessible_init (GtkComboBoxAccessible *combo_box)
+{
+  combo_box->old_selection = -1;
+  combo_box->name = NULL;
+  combo_box->popup_set = FALSE;
+}
+
+static gboolean
+gtk_combo_box_accessible_do_action (AtkAction *action,
+                                    gint       i)
+{
+  GtkComboBox *combo_box;
+  GtkWidget *widget;
+  gboolean popup_shown;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (widget == NULL)
+    return FALSE;
+
+  if (!gtk_widget_get_sensitive (widget) || !gtk_widget_get_visible (widget))
+    return FALSE;
+
+  if (i != 0)
+    return FALSE;
+
+  combo_box = GTK_COMBO_BOX (widget);
+  g_object_get (combo_box, "popup-shown", &popup_shown, NULL);
+  if (popup_shown)
+    gtk_combo_box_popdown (combo_box);
+  else
+    gtk_combo_box_popup (combo_box);
+
+  return TRUE;
+}
+
+static gint
+gtk_combo_box_accessible_get_n_actions (AtkAction *action)
+{
+  return 1;
+}
+
+static const gchar *
+gtk_combo_box_accessible_get_keybinding (AtkAction *action,
+                                         gint       i)
+{
+  GtkComboBoxAccessible *combo_box;
+  GtkWidget *widget;
+  GtkWidget *label;
+  AtkRelationSet *set;
+  AtkRelation *relation;
+  GPtrArray *target;
+  gpointer target_object;
+  guint key_val;
+  gchar *return_value = NULL;
+
+  if (i != 0)
+    return NULL;
+
+  combo_box = GTK_COMBO_BOX_ACCESSIBLE (action);
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (combo_box));
+  if (widget == NULL)
+    return NULL;
+
+  set = atk_object_ref_relation_set (ATK_OBJECT (action));
+  if (set == NULL)
+    return NULL;
+
+  label = NULL;
+  relation = atk_relation_set_get_relation_by_type (set, ATK_RELATION_LABELLED_BY);
+  if (relation)
+    {
+      target = atk_relation_get_target (relation);
+      target_object = g_ptr_array_index (target, 0);
+      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (target_object));
+    }
+  g_object_unref (set);
+  if (GTK_IS_LABEL (label))
+    {
+      key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label));
+      if (key_val != GDK_KEY_VoidSymbol)
+        return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
+    }
+
+  return return_value;
+}
+
+static const gchar *
+gtk_combo_box_accessible_action_get_name (AtkAction *action,
+                                          gint       i)
+{
+  if (i != 0)
+    return NULL;
+
+  return "press";
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+  iface->do_action = gtk_combo_box_accessible_do_action;
+  iface->get_n_actions = gtk_combo_box_accessible_get_n_actions;
+  iface->get_keybinding = gtk_combo_box_accessible_get_keybinding;
+  iface->get_name = gtk_combo_box_accessible_action_get_name;
+}
+
+static gboolean
+gtk_combo_box_accessible_add_selection (AtkSelection *selection,
+                                        gint          i)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  gtk_combo_box_set_active (GTK_COMBO_BOX (widget), i);
+
+  return TRUE;
+}
+
+static gboolean
+gtk_combo_box_accessible_clear_selection (AtkSelection *selection)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  gtk_combo_box_set_active (GTK_COMBO_BOX (widget), -1);
+
+  return TRUE;
+}
+
+static AtkObject *
+gtk_combo_box_accessible_ref_selection (AtkSelection *selection,
+                                        gint          i)
+{
+  GtkComboBox *combo_box;
+  GtkWidget *widget;
+  AtkObject *obj;
+  gint index;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return NULL;
+
+  if (i != 0)
+    return NULL;
+
+  combo_box = GTK_COMBO_BOX (widget);
+
+  obj = gtk_combo_box_get_popup_accessible (combo_box);
+  index = gtk_combo_box_get_active (combo_box);
+
+  return atk_object_ref_accessible_child (obj, index);
+}
+
+static gint
+gtk_combo_box_accessible_get_selection_count (AtkSelection *selection)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return 0;
+
+  return (gtk_combo_box_get_active (GTK_COMBO_BOX (widget)) == -1) ? 0 : 1;
+}
+
+static gboolean
+gtk_combo_box_accessible_is_child_selected (AtkSelection *selection,
+                                            gint          i)
+{
+  GtkWidget *widget;
+  gint j;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+
+  if (widget == NULL)
+    return FALSE;
+
+  j = gtk_combo_box_get_active (GTK_COMBO_BOX (widget));
+
+  return (j == i);
+}
+
+static gboolean
+gtk_combo_box_accessible_remove_selection (AtkSelection *selection,
+                                           gint          i)
+{
+  if (atk_selection_is_child_selected (selection, i))
+    atk_selection_clear_selection (selection);
+
+  return TRUE;
+}
+
+static void
+atk_selection_interface_init (AtkSelectionIface *iface)
+{
+  iface->add_selection = gtk_combo_box_accessible_add_selection;
+  iface->clear_selection = gtk_combo_box_accessible_clear_selection;
+  iface->ref_selection = gtk_combo_box_accessible_ref_selection;
+  iface->get_selection_count = gtk_combo_box_accessible_get_selection_count;
+  iface->is_child_selected = gtk_combo_box_accessible_is_child_selected;
+  iface->remove_selection = gtk_combo_box_accessible_remove_selection;
+}
diff --git a/gtk/a11y/gtkcomboboxaccessible.h b/gtk/a11y/gtkcomboboxaccessible.h
new file mode 100644 (file)
index 0000000..b662a20
--- /dev/null
@@ -0,0 +1,55 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2004 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_COMBO_BOX_ACCESSIBLE_H__
+#define __GTK_COMBO_BOX_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_COMBO_BOX_ACCESSIBLE                      (_gtk_combo_box_accessible_get_type ())
+#define GTK_COMBO_BOX_ACCESSIBLE(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_COMBO_BOX_ACCESSIBLE, GtkComboBoxAccessible))
+#define GTK_COMBO_BOX_ACCESSIBLE_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_COMBO_BOX_ACCESSIBLE, GtkComboBoxAccessibleClass))
+#define GTK_IS_COMBO_BOX_ACCESSIBLE(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_COMBO_BOX_ACCESSIBLE))
+#define GTK_IS_COMBO_BOX_ACCESSIBLE_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_COMBO_BOX_ACCESSIBLE))
+#define GTK_COMBO_BOX_ACCESSIBLE_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_COMBO_BOX_ACCESSIBLE, GtkComboBoxAccessibleClass))
+
+typedef struct _GtkComboBoxAccessible      GtkComboBoxAccessible;
+typedef struct _GtkComboBoxAccessibleClass GtkComboBoxAccessibleClass;
+
+struct _GtkComboBoxAccessible
+{
+  GtkContainerAccessible parent;
+
+  gchar         *name;
+  gint           old_selection;
+  gboolean       popup_set;
+};
+
+struct _GtkComboBoxAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_combo_box_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_COMBO_BOX_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkcontaineraccessible.c b/gtk/a11y/gtkcontaineraccessible.c
new file mode 100644 (file)
index 0000000..71f35d0
--- /dev/null
@@ -0,0 +1,200 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkcontaineraccessible.h"
+
+
+G_DEFINE_TYPE (GtkContainerAccessible, _gtk_container_accessible, GTK_TYPE_WIDGET_ACCESSIBLE)
+
+static gint
+gtk_container_accessible_get_n_children (AtkObject* obj)
+{
+  GtkWidget *widget;
+  GList *children;
+  gint count = 0;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return 0;
+
+  children = gtk_container_get_children (GTK_CONTAINER(widget));
+  count = g_list_length (children);
+  g_list_free (children);
+
+  return count;
+}
+
+static AtkObject *
+gtk_container_accessible_ref_child (AtkObject *obj,
+                                    gint       i)
+{
+  GList *children, *tmp_list;
+  AtkObject  *accessible;
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  children = gtk_container_get_children (GTK_CONTAINER (widget));
+  tmp_list = g_list_nth (children, i);
+  if (!tmp_list)
+    {
+      g_list_free (children);
+      return NULL;
+    }
+  accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
+
+  g_list_free (children);
+  g_object_ref (accessible);
+
+  return accessible;
+}
+
+static gint
+gtk_container_accessible_add_gtk (GtkContainer *container,
+                                  GtkWidget    *widget,
+                                  gpointer      data)
+{
+  GtkContainerAccessible *accessible = GTK_CONTAINER_ACCESSIBLE (data);
+  GtkContainerAccessibleClass *klass;
+
+  klass = GTK_CONTAINER_ACCESSIBLE_GET_CLASS (accessible);
+
+  if (klass->add_gtk)
+    return klass->add_gtk (container, widget, data);
+  else
+    return 1;
+}
+static gint
+gtk_container_accessible_remove_gtk (GtkContainer *container,
+                           GtkWidget    *widget,
+                           gpointer     data)
+{
+  GtkContainerAccessible *accessible = GTK_CONTAINER_ACCESSIBLE (data);
+  GtkContainerAccessibleClass *klass;
+
+  klass = GTK_CONTAINER_ACCESSIBLE_GET_CLASS (accessible);
+
+  if (klass->remove_gtk)
+    return klass->remove_gtk (container, widget, data);
+  else
+    return 1;
+}
+
+static gint
+gtk_container_accessible_real_add_gtk (GtkContainer *container,
+                                       GtkWidget    *widget,
+                                       gpointer      data)
+{
+  AtkObject *atk_parent;
+  AtkObject *atk_child;
+  GtkContainerAccessible *accessible;
+  gint index;
+
+  atk_parent = ATK_OBJECT (data);
+  atk_child = gtk_widget_get_accessible (widget);
+  accessible = GTK_CONTAINER_ACCESSIBLE (atk_parent);
+
+  g_object_notify (G_OBJECT (atk_child), "accessible-parent");
+  g_list_free (accessible->children);
+  accessible->children = gtk_container_get_children (container);
+  index = g_list_index (accessible->children, widget);
+  g_signal_emit_by_name (atk_parent, "children-changed::add", index, atk_child, NULL);
+
+  return 1;
+}
+
+static gint
+gtk_container_accessible_real_remove_gtk (GtkContainer *container,
+                                          GtkWidget    *widget,
+                                          gpointer      data)
+{
+  AtkObject* atk_parent;
+  AtkObject *atk_child;
+  GtkContainerAccessible *accessible;
+  gint index;
+
+  atk_parent = ATK_OBJECT (data);
+  atk_child = gtk_widget_get_accessible (widget);
+  if (atk_child == NULL)
+    return 1;
+  accessible = GTK_CONTAINER_ACCESSIBLE (atk_parent);
+
+  g_object_notify (G_OBJECT (atk_child), "accessible-parent");
+  index = g_list_index (accessible->children, widget);
+  g_list_free (accessible->children);
+  accessible->children = gtk_container_get_children (container);
+  if (index >= 0 && index <= g_list_length (accessible->children))
+    g_signal_emit_by_name (atk_parent, "children-changed::remove", index, atk_child, NULL);
+
+  return 1;
+}
+
+static void
+gtk_container_accessible_real_initialize (AtkObject *obj,
+                                          gpointer   data)
+{
+  GtkContainerAccessible *accessible = GTK_CONTAINER_ACCESSIBLE (obj);
+
+  ATK_OBJECT_CLASS (_gtk_container_accessible_parent_class)->initialize (obj, data);
+
+  accessible->children = gtk_container_get_children (GTK_CONTAINER (data));
+
+  g_signal_connect (data, "add", G_CALLBACK (gtk_container_accessible_add_gtk), obj);
+  g_signal_connect (data, "remove", G_CALLBACK (gtk_container_accessible_remove_gtk), obj);
+
+  obj->role = ATK_ROLE_PANEL;
+}
+
+static void
+gtk_container_accessible_finalize (GObject *object)
+{
+  GtkContainerAccessible *accessible = GTK_CONTAINER_ACCESSIBLE (object);
+
+  g_list_free (accessible->children);
+
+  G_OBJECT_CLASS (_gtk_container_accessible_parent_class)->finalize (object);
+}
+
+static void
+_gtk_container_accessible_class_init (GtkContainerAccessibleClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+  gobject_class->finalize = gtk_container_accessible_finalize;
+
+  class->get_n_children = gtk_container_accessible_get_n_children;
+  class->ref_child = gtk_container_accessible_ref_child;
+  class->initialize = gtk_container_accessible_real_initialize;
+
+  klass->add_gtk = gtk_container_accessible_real_add_gtk;
+  klass->remove_gtk = gtk_container_accessible_real_remove_gtk;
+}
+
+static void
+_gtk_container_accessible_init (GtkContainerAccessible *container)
+{
+}
+
diff --git a/gtk/a11y/gtkcontaineraccessible.h b/gtk/a11y/gtkcontaineraccessible.h
new file mode 100644 (file)
index 0000000..639ff5d
--- /dev/null
@@ -0,0 +1,60 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_CONTAINER_ACCESSIBLE_H__
+#define __GTK_CONTAINER_ACCESSIBLE_H__
+
+#include "gtkwidgetaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_CONTAINER_ACCESSIBLE                  (_gtk_container_accessible_get_type ())
+#define GTK_CONTAINER_ACCESSIBLE(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CONTAINER_ACCESSIBLE, GtkContainerAccessible))
+#define GTK_CONTAINER_ACCESSIBLE_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_CONTAINER_ACCESSIBLE, GtkContainerAccessibleClass))
+#define GTK_IS_CONTAINER_ACCESSIBLE(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CONTAINER_ACCESSIBLE))
+#define GTK_IS_CONTAINER_ACCESSIBLE_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CONTAINER_ACCESSIBLE))
+#define GTK_CONTAINER_ACCESSIBLE_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CONTAINER_ACCESSIBLE, GtkContainerAccessibleClass))
+
+typedef struct _GtkContainerAccessible      GtkContainerAccessible;
+typedef struct _GtkContainerAccessibleClass GtkContainerAccessibleClass;
+
+struct _GtkContainerAccessible
+{
+  GtkWidgetAccessible parent;
+
+  GList *children;
+};
+
+struct _GtkContainerAccessibleClass
+{
+  GtkWidgetAccessibleClass parent_class;
+
+  gint (*add_gtk)    (GtkContainer *container,
+                      GtkWidget    *widget,
+                      gpointer     data);
+  gint (*remove_gtk) (GtkContainer *container,
+                      GtkWidget    *widget,
+                      gpointer     data);
+};
+
+GType _gtk_container_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_CONTAINER_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkcontainercellaccessible.c b/gtk/a11y/gtkcontainercellaccessible.c
new file mode 100644 (file)
index 0000000..ad5bdb4
--- /dev/null
@@ -0,0 +1,149 @@
+/* GAIL - The GNOME Accessibility Enabling Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkcontainercellaccessible.h"
+
+
+G_DEFINE_TYPE (GtkContainerCellAccessible, _gtk_container_cell_accessible, GTK_TYPE_CELL_ACCESSIBLE)
+
+
+static void
+gtk_container_cell_accessible_finalize (GObject *obj)
+{
+  GtkContainerCellAccessible *container = GTK_CONTAINER_CELL_ACCESSIBLE (obj);
+
+  g_list_free_full (container->children, g_object_unref);
+
+  G_OBJECT_CLASS (_gtk_container_cell_accessible_parent_class)->finalize (obj);
+}
+
+
+static gint
+gtk_container_cell_accessible_get_n_children (AtkObject *obj)
+{
+  GtkContainerCellAccessible *cell = GTK_CONTAINER_CELL_ACCESSIBLE (obj);
+
+  return cell->NChildren;
+}
+
+static AtkObject *
+gtk_container_cell_accessible_ref_child (AtkObject *obj,
+                                         gint       child)
+{
+  GtkContainerCellAccessible *cell = GTK_CONTAINER_CELL_ACCESSIBLE (obj);
+  GList *l;
+
+  l = g_list_nth (cell->children, child);
+  if (l == NULL)
+    return NULL;
+
+  return g_object_ref (ATK_OBJECT (l->data));
+}
+
+static void
+_gtk_container_cell_accessible_class_init (GtkContainerCellAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS(klass);
+  GObjectClass *g_object_class = G_OBJECT_CLASS (klass);
+
+  g_object_class->finalize = gtk_container_cell_accessible_finalize;
+
+  class->get_n_children = gtk_container_cell_accessible_get_n_children;
+  class->ref_child = gtk_container_cell_accessible_ref_child;
+}
+
+static void
+_gtk_container_cell_accessible_init (GtkContainerCellAccessible *cell)
+{
+}
+
+GtkContainerCellAccessible *
+_gtk_container_cell_accessible_new (void)
+{
+  GObject *object;
+  AtkObject *atk_object;
+  GtkContainerCellAccessible *container;
+
+  object = g_object_new (GTK_TYPE_CONTAINER_CELL_ACCESSIBLE, NULL);
+
+  g_return_val_if_fail (object != NULL, NULL);
+
+  atk_object = ATK_OBJECT (object);
+  atk_object->role = ATK_ROLE_TABLE_CELL;
+
+  container = GTK_CONTAINER_CELL_ACCESSIBLE (object);
+  container->children = NULL;
+  container->NChildren = 0;
+  return container;
+}
+
+static void
+recompute_child_indices (GtkContainerCellAccessible *container)
+{
+  gint cur_index = 0;
+  GList *l;
+
+  for (l = container->children; l; l = l->next)
+    {
+      GTK_CELL_ACCESSIBLE (l->data)->index = cur_index;
+      cur_index++;
+    }
+}
+
+static void
+refresh_child_index (GtkCellAccessible *cell)
+{
+  AtkObject *parent;
+
+  parent = atk_object_get_parent (ATK_OBJECT (cell));
+
+  recompute_child_indices (GTK_CONTAINER_CELL_ACCESSIBLE (parent));
+}
+
+void
+_gtk_container_cell_accessible_add_child (GtkContainerCellAccessible *container,
+                                          GtkCellAccessible          *child)
+{
+  gint child_index;
+
+  g_return_if_fail (GTK_IS_CONTAINER_CELL_ACCESSIBLE (container));
+  g_return_if_fail (GTK_IS_CELL_ACCESSIBLE (child));
+
+  child_index = container->NChildren++;
+  container->children = g_list_append (container->children, child);
+  child->index = child_index;
+  atk_object_set_parent (ATK_OBJECT (child), ATK_OBJECT (container));
+  child->refresh_index = refresh_child_index;
+}
+
+void
+_gtk_container_cell_accessible_remove_child (GtkContainerCellAccessible *container,
+                                             GtkCellAccessible          *child)
+{
+  g_return_if_fail (GTK_IS_CONTAINER_CELL_ACCESSIBLE (container));
+  g_return_if_fail (GTK_IS_CELL_ACCESSIBLE (child));
+  g_return_if_fail (container->NChildren > 0);
+
+  container->children = g_list_remove (container->children, child);
+  recompute_child_indices (container);
+  container->NChildren--;
+}
diff --git a/gtk/a11y/gtkcontainercellaccessible.h b/gtk/a11y/gtkcontainercellaccessible.h
new file mode 100644 (file)
index 0000000..3690910
--- /dev/null
@@ -0,0 +1,60 @@
+/* GAIL - The GNOME Accessibility Enabling Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_CONTAINER_CELL_ACCESSIBLE_H__
+#define __GTK_CONTAINER_CELL_ACCESSIBLE_H__
+
+#include <atk/atk.h>
+#include "gtkcellaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_CONTAINER_CELL_ACCESSIBLE            (_gtk_container_cell_accessible_get_type ())
+#define GTK_CONTAINER_CELL_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_CONTAINER_CELL_ACCESSIBLE, GtkContainerCellAccessible))
+#define GTK_CONTAINER_CELL_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_CONTAINER_CELL_ACCESSIBLE, GtkContainerCellAccessibleClass))
+#define GTK_IS_CONTAINER_CELL_ACCESSIBLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_CONTAINER_CELL_ACCESSIBLE))
+#define GTK_IS_CONTAINER_CELL_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_CONTAINER_CELL_ACCESSIBLE))
+#define GTK_CONTAINER_CELL_ACCESSIBLE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_CONTAINER_CELL_ACCESSIBLE, GtkContainerCellAccessibleClass))
+
+typedef struct _GtkContainerCellAccessible      GtkContainerCellAccessible;
+typedef struct _GtkContainerCellAccessibleClass GtkContainerCellAccessibleClass;
+
+struct _GtkContainerCellAccessible
+{
+  GtkCellAccessible parent;
+  GList *children;
+  gint NChildren;
+};
+
+struct _GtkContainerCellAccessibleClass
+{
+  GtkCellAccessibleClass parent_class;
+};
+
+GType                       _gtk_container_cell_accessible_get_type     (void);
+
+GtkContainerCellAccessible *_gtk_container_cell_accessible_new          (void);
+void                        _gtk_container_cell_accessible_add_child    (GtkContainerCellAccessible *container,
+                                                                         GtkCellAccessible          *child);
+void                        _gtk_container_cell_accessible_remove_child (GtkContainerCellAccessible *container,
+                                                                         GtkCellAccessible          *child);
+
+G_END_DECLS
+
+#endif /* __GTK_CONTAINER_CELL_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkentryaccessible.c b/gtk/a11y/gtkentryaccessible.c
new file mode 100644 (file)
index 0000000..6c4180a
--- /dev/null
@@ -0,0 +1,1045 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkpango.h"
+#include "gtkentryaccessible.h"
+#include "gtkcomboboxaccessible.h"
+
+/* Callbacks */
+
+static void     insert_text_cb             (GtkEditable        *editable,
+                                            gchar              *new_text,
+                                            gint                new_text_length,
+                                            gint               *position);
+static void     delete_text_cb             (GtkEditable        *editable,
+                                            gint                start,
+                                            gint                end);
+static void     changed_cb                 (GtkEditable        *editable);
+
+static gboolean check_for_selection_change (GtkEntryAccessible *entry,
+                                            GtkEntry           *gtk_entry);
+
+
+static void atk_editable_text_interface_init (AtkEditableTextIface *iface);
+static void atk_text_interface_init          (AtkTextIface         *iface);
+static void atk_action_interface_init        (AtkActionIface       *iface);
+
+
+G_DEFINE_TYPE_WITH_CODE (GtkEntryAccessible, _gtk_entry_accessible, GTK_TYPE_WIDGET_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_EDITABLE_TEXT, atk_editable_text_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
+
+
+static AtkStateSet *
+gtk_entry_accessible_ref_state_set (AtkObject *accessible)
+{
+  AtkStateSet *state_set;
+  gboolean value;
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return NULL;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_entry_accessible_parent_class)->ref_state_set (accessible);
+
+  g_object_get (G_OBJECT (widget), "editable", &value, NULL);
+  if (value)
+    atk_state_set_add_state (state_set, ATK_STATE_EDITABLE);
+  atk_state_set_add_state (state_set, ATK_STATE_SINGLE_LINE);
+
+  return state_set;
+}
+
+static AtkAttributeSet *
+gtk_entry_accessible_get_attributes (AtkObject *accessible)
+{
+  GtkWidget *widget;
+  AtkAttributeSet *attributes;
+  AtkAttribute *placeholder_text;
+  const gchar *text;
+
+  attributes = ATK_OBJECT_CLASS (_gtk_entry_accessible_parent_class)->get_attributes (accessible);
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return attributes;
+
+  text = gtk_entry_get_placeholder_text (GTK_ENTRY (widget));
+  if (text == NULL)
+    return attributes;
+
+  placeholder_text = g_malloc (sizeof (AtkAttribute));
+  placeholder_text->name = g_strdup ("placeholder-text");
+  placeholder_text->value = g_strdup (text);
+
+  attributes = g_slist_append (attributes, placeholder_text);
+
+  return attributes;
+}
+
+static void
+gtk_entry_accessible_initialize (AtkObject *obj,
+                                 gpointer   data)
+{
+  GtkEntry *entry;
+  GtkEntryAccessible *gtk_entry_accessible;
+  gint start_pos, end_pos;
+
+  ATK_OBJECT_CLASS (_gtk_entry_accessible_parent_class)->initialize (obj, data);
+
+  gtk_entry_accessible = GTK_ENTRY_ACCESSIBLE (obj);
+
+  entry = GTK_ENTRY (data);
+  gtk_editable_get_selection_bounds (GTK_EDITABLE (entry),
+                                     &start_pos, &end_pos);
+  gtk_entry_accessible->cursor_position = end_pos;
+  gtk_entry_accessible->selection_bound = start_pos;
+
+  /* Set up signal callbacks */
+  g_signal_connect (entry, "insert-text", G_CALLBACK (insert_text_cb), NULL);
+  g_signal_connect (entry, "delete-text", G_CALLBACK (delete_text_cb), NULL);
+  g_signal_connect (entry, "changed", G_CALLBACK (changed_cb), NULL);
+
+  if (gtk_entry_get_visibility (entry))
+    obj->role = ATK_ROLE_TEXT;
+  else
+    obj->role = ATK_ROLE_PASSWORD_TEXT;
+}
+
+static void
+gtk_entry_accessible_notify_gtk (GObject    *obj,
+                                 GParamSpec *pspec)
+{
+  GtkWidget *widget;
+  AtkObject* atk_obj;
+  GtkEntry* gtk_entry;
+  GtkEntryAccessible* entry;
+
+  widget = GTK_WIDGET (obj);
+  atk_obj = gtk_widget_get_accessible (widget);
+  gtk_entry = GTK_ENTRY (widget);
+  entry = GTK_ENTRY_ACCESSIBLE (atk_obj);
+
+  if (g_strcmp0 (pspec->name, "cursor-position") == 0)
+    {
+      if (check_for_selection_change (entry, gtk_entry))
+        g_signal_emit_by_name (atk_obj, "text-selection-changed");
+      /*
+       * The entry cursor position has moved so generate the signal.
+       */
+      g_signal_emit_by_name (atk_obj, "text-caret-moved",
+                             entry->cursor_position);
+    }
+  else if (g_strcmp0 (pspec->name, "selection-bound") == 0)
+    {
+      if (check_for_selection_change (entry, gtk_entry))
+        g_signal_emit_by_name (atk_obj, "text-selection-changed");
+    }
+  else if (g_strcmp0 (pspec->name, "editable") == 0)
+    {
+      gboolean value;
+
+      g_object_get (obj, "editable", &value, NULL);
+      atk_object_notify_state_change (atk_obj, ATK_STATE_EDITABLE, value);
+    }
+  else if (g_strcmp0 (pspec->name, "visibility") == 0)
+    {
+      gboolean visibility;
+      AtkRole new_role;
+
+      visibility = gtk_entry_get_visibility (gtk_entry);
+      new_role = visibility ? ATK_ROLE_TEXT : ATK_ROLE_PASSWORD_TEXT;
+      atk_object_set_role (atk_obj, new_role);
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_entry_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static gint
+gtk_entry_accessible_get_index_in_parent (AtkObject *accessible)
+{
+  /*
+   * If the parent widget is a combo box then the index is 1
+   * otherwise do the normal thing.
+   */
+  if (accessible->accessible_parent)
+    if (GTK_IS_COMBO_BOX_ACCESSIBLE (accessible->accessible_parent))
+      return 1;
+
+  return ATK_OBJECT_CLASS (_gtk_entry_accessible_parent_class)->get_index_in_parent (accessible);
+}
+
+static void
+_gtk_entry_accessible_class_init (GtkEntryAccessibleClass *klass)
+{
+  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+
+  class->ref_state_set = gtk_entry_accessible_ref_state_set;
+  class->get_index_in_parent = gtk_entry_accessible_get_index_in_parent;
+  class->initialize = gtk_entry_accessible_initialize;
+  class->get_attributes = gtk_entry_accessible_get_attributes;
+
+  widget_class->notify_gtk = gtk_entry_accessible_notify_gtk;
+}
+
+static void
+_gtk_entry_accessible_init (GtkEntryAccessible *entry)
+{
+  entry->length_insert = 0;
+  entry->length_delete = 0;
+  entry->cursor_position = 0;
+  entry->selection_bound = 0;
+}
+
+static gchar *
+gtk_entry_accessible_get_text (AtkText *atk_text,
+                               gint     start_pos,
+                               gint     end_pos)
+{
+  GtkWidget *widget;
+  const gchar *text;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_text));
+  if (widget == NULL)
+    return NULL;
+
+  /* FIXME: is this acceptable ? */
+  if (!gtk_entry_get_visibility (GTK_ENTRY (widget)))
+    return g_strdup ("");
+
+  text = gtk_entry_get_text (GTK_ENTRY (widget));
+
+  if (text)
+    return g_utf8_substring (text, start_pos, end_pos > -1 ? end_pos : g_utf8_strlen (text, -1));
+
+  return NULL;
+}
+
+static gchar *
+gtk_entry_accessible_get_text_before_offset (AtkText         *text,
+                                             gint             offset,
+                                             AtkTextBoundary  boundary_type,
+                                             gint            *start_offset,
+                                             gint            *end_offset)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  /* FIXME: is this acceptable ? */
+  if (!gtk_entry_get_visibility (GTK_ENTRY (widget)))
+    return g_strdup ("");
+
+  return _gtk_pango_get_text_before (gtk_entry_get_layout (GTK_ENTRY (widget)),
+                                     boundary_type, offset,
+                                     start_offset, end_offset);
+}
+
+static gchar *
+gtk_entry_accessible_get_text_at_offset (AtkText         *text,
+                                         gint             offset,
+                                         AtkTextBoundary  boundary_type,
+                                         gint            *start_offset,
+                                         gint            *end_offset)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  /* FIXME: is this acceptable ? */
+  if (!gtk_entry_get_visibility (GTK_ENTRY (widget)))
+    return g_strdup ("");
+
+  return _gtk_pango_get_text_at (gtk_entry_get_layout (GTK_ENTRY (widget)),
+                                 boundary_type, offset,
+                                 start_offset, end_offset);
+}
+
+static gchar *
+gtk_entry_accessible_get_text_after_offset (AtkText         *text,
+                                            gint             offset,
+                                            AtkTextBoundary  boundary_type,
+                                            gint            *start_offset,
+                                            gint            *end_offset)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  /* FIXME: is this acceptable ? */
+  if (!gtk_entry_get_visibility (GTK_ENTRY (widget)))
+    return g_strdup ("");
+
+  return _gtk_pango_get_text_after (gtk_entry_get_layout (GTK_ENTRY (widget)),
+                                    boundary_type, offset,
+                                    start_offset, end_offset);
+}
+
+static gint
+gtk_entry_accessible_get_character_count (AtkText *atk_text)
+{
+  GtkWidget *widget;
+  const gchar *text;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_text));
+  if (widget == NULL)
+    return 0;
+
+  text = gtk_entry_get_text (GTK_ENTRY (widget));
+
+  if (text)
+    return g_utf8_strlen (text, -1);
+
+  return 0;
+}
+
+static gint
+gtk_entry_accessible_get_caret_offset (AtkText *text)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return 0;
+
+  return gtk_editable_get_position (GTK_EDITABLE (widget));
+}
+
+static gboolean
+gtk_entry_accessible_set_caret_offset (AtkText *text,
+                                       gint     offset)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  gtk_editable_set_position (GTK_EDITABLE (widget), offset);
+
+  return TRUE;
+}
+
+static AtkAttributeSet *
+add_text_attribute (AtkAttributeSet  *attributes,
+                    AtkTextAttribute  attr,
+                    gint              i)
+{
+  AtkAttribute *at;
+
+  at = g_new (AtkAttribute, 1);
+  at->name = g_strdup (atk_text_attribute_get_name (attr));
+  at->value = g_strdup (atk_text_attribute_get_value (attr, i));
+
+  return g_slist_prepend (attributes, at);
+}
+
+static AtkAttributeSet *
+gtk_entry_accessible_get_run_attributes (AtkText *text,
+                                         gint     offset,
+                                         gint    *start_offset,
+                                         gint    *end_offset)
+{
+  GtkWidget *widget;
+  AtkAttributeSet *attributes;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  attributes = NULL;
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_DIRECTION,
+                                   gtk_widget_get_direction (widget));
+  attributes = _gtk_pango_get_run_attributes (attributes,
+                                              gtk_entry_get_layout (GTK_ENTRY (widget)),
+                                              offset,
+                                              start_offset,
+                                              end_offset);
+
+  return attributes;
+}
+
+static AtkAttributeSet *
+gtk_entry_accessible_get_default_attributes (AtkText *text)
+{
+  GtkWidget *widget;
+  AtkAttributeSet *attributes;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  attributes = NULL;
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_DIRECTION,
+                                   gtk_widget_get_direction (widget));
+  attributes = _gtk_pango_get_default_attributes (attributes,
+                                                  gtk_entry_get_layout (GTK_ENTRY (widget)));
+  attributes = _gtk_style_context_get_attributes (attributes,
+                                                  gtk_widget_get_style_context (widget),
+                                                  gtk_widget_get_state_flags (widget));
+
+  return attributes;
+}
+
+static void
+gtk_entry_accessible_get_character_extents (AtkText      *text,
+                                            gint          offset,
+                                            gint         *x,
+                                            gint         *y,
+                                            gint         *width,
+                                            gint         *height,
+                                            AtkCoordType  coords)
+{
+  GtkWidget *widget;
+  GtkEntry *entry;
+  PangoRectangle char_rect;
+  const gchar *entry_text;
+  gint index, x_layout, y_layout;
+  GdkWindow *window;
+  gint x_window, y_window;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  entry = GTK_ENTRY (widget);
+
+  gtk_entry_get_layout_offsets (entry, &x_layout, &y_layout);
+  entry_text = gtk_entry_get_text (entry);
+  index = g_utf8_offset_to_pointer (entry_text, offset) - entry_text;
+  pango_layout_index_to_pos (gtk_entry_get_layout (entry), index, &char_rect);
+  pango_extents_to_pixels (&char_rect, NULL);
+
+  window = gtk_widget_get_window (widget);
+  gdk_window_get_origin (window, &x_window, &y_window);
+
+  *x = x_window + x_layout + char_rect.x;
+  *y = x_window + y_layout + char_rect.y;
+  *width = char_rect.width;
+  *height = char_rect.height;
+
+  if (coords == ATK_XY_WINDOW)
+    {
+      window = gdk_window_get_toplevel (window);
+      gdk_window_get_origin (window, &x_window, &y_window);
+
+      *x -= x_window;
+      *y -= y_window;
+    }
+}
+
+static gint
+gtk_entry_accessible_get_offset_at_point (AtkText      *atk_text,
+                                          gint          x,
+                                          gint          y,
+                                          AtkCoordType  coords)
+{
+  GtkWidget *widget;
+  GtkEntry *entry;
+  const gchar *text;
+  gint index, x_layout, y_layout;
+  gint x_window, y_window;
+  gint x_local, y_local;
+  GdkWindow *window;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_text));
+  if (widget == NULL)
+    return -1;
+
+  entry = GTK_ENTRY (widget);
+
+  gtk_entry_get_layout_offsets (entry, &x_layout, &y_layout);
+
+  window = gtk_widget_get_window (widget);
+  gdk_window_get_origin (window, &x_window, &y_window);
+
+  x_local = x - x_layout - x_window;
+  y_local = y - y_layout - y_window;
+
+  if (coords == ATK_XY_WINDOW)
+    {
+      window = gdk_window_get_toplevel (window);
+      gdk_window_get_origin (window, &x_window, &y_window);
+
+      x_local += x_window;
+      y_local += y_window;
+    }
+  if (!pango_layout_xy_to_index (gtk_entry_get_layout (entry),
+                                 x_local * PANGO_SCALE,
+                                 y_local * PANGO_SCALE,
+                                 &index, NULL))
+    {
+      if (x_local < 0 || y_local < 0)
+        index = 0;
+      else
+        index = -1;
+    }
+
+  if (index != -1)
+    {
+      text = gtk_entry_get_text (entry);
+      return g_utf8_pointer_to_offset (text, text + index);
+    }
+
+  return -1;
+}
+
+static gint
+gtk_entry_accessible_get_n_selections (AtkText *text)
+{
+  GtkWidget *widget;
+  gint start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return 0;
+
+  if (gtk_editable_get_selection_bounds (GTK_EDITABLE (widget), &start, &end))
+    return 1;
+
+  return 0;
+}
+
+static gchar *
+gtk_entry_accessible_get_selection (AtkText *text,
+                                    gint     selection_num,
+                                    gint    *start_pos,
+                                    gint    *end_pos)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  if (selection_num != 0)
+     return NULL;
+
+  if (gtk_editable_get_selection_bounds (GTK_EDITABLE (widget), start_pos, end_pos))
+    return gtk_editable_get_chars (GTK_EDITABLE (widget), *start_pos, *end_pos);
+
+  return NULL;
+}
+
+static gboolean
+gtk_entry_accessible_add_selection (AtkText *text,
+                                    gint     start_pos,
+                                    gint     end_pos)
+{
+  GtkEntry *entry;
+  GtkWidget *widget;
+  gint start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  entry = GTK_ENTRY (widget);
+
+  if (!gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), &start, &end))
+    {
+      gtk_editable_select_region (GTK_EDITABLE (entry), start_pos, end_pos);
+      return TRUE;
+    }
+  else
+    return FALSE;
+}
+
+static gboolean
+gtk_entry_accessible_remove_selection (AtkText *text,
+                                       gint     selection_num)
+{
+  GtkWidget *widget;
+  gint start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  if (selection_num != 0)
+     return FALSE;
+
+  if (gtk_editable_get_selection_bounds (GTK_EDITABLE (widget), &start, &end))
+    {
+      gtk_editable_select_region (GTK_EDITABLE (widget), end, end);
+      return TRUE;
+    }
+  else
+    return FALSE;
+}
+
+static gboolean
+gtk_entry_accessible_set_selection (AtkText *text,
+                                    gint     selection_num,
+                                    gint     start_pos,
+                                    gint     end_pos)
+{
+  GtkWidget *widget;
+  gint start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  if (selection_num != 0)
+     return FALSE;
+
+  if (gtk_editable_get_selection_bounds (GTK_EDITABLE (widget), &start, &end))
+    {
+      gtk_editable_select_region (GTK_EDITABLE (widget), start_pos, end_pos);
+      return TRUE;
+    }
+  else
+    return FALSE;
+}
+
+static gunichar
+gtk_entry_accessible_get_character_at_offset (AtkText *atk_text,
+                                              gint     offset)
+{
+  GtkWidget *widget;
+  const gchar *text;
+  gchar *index;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_text));
+  if (widget == NULL)
+    return '\0';
+
+  if (!gtk_entry_get_visibility (GTK_ENTRY (widget)))
+    return '\0';
+
+  text = gtk_entry_get_text (GTK_ENTRY (widget));
+  if (offset >= g_utf8_strlen (text, -1))
+    return '\0';
+
+  index = g_utf8_offset_to_pointer (text, offset);
+
+  return g_utf8_get_char (index);
+}
+
+static void
+atk_text_interface_init (AtkTextIface *iface)
+{
+  iface->get_text = gtk_entry_accessible_get_text;
+  iface->get_character_at_offset = gtk_entry_accessible_get_character_at_offset;
+  iface->get_text_before_offset = gtk_entry_accessible_get_text_before_offset;
+  iface->get_text_at_offset = gtk_entry_accessible_get_text_at_offset;
+  iface->get_text_after_offset = gtk_entry_accessible_get_text_after_offset;
+  iface->get_caret_offset = gtk_entry_accessible_get_caret_offset;
+  iface->set_caret_offset = gtk_entry_accessible_set_caret_offset;
+  iface->get_character_count = gtk_entry_accessible_get_character_count;
+  iface->get_n_selections = gtk_entry_accessible_get_n_selections;
+  iface->get_selection = gtk_entry_accessible_get_selection;
+  iface->add_selection = gtk_entry_accessible_add_selection;
+  iface->remove_selection = gtk_entry_accessible_remove_selection;
+  iface->set_selection = gtk_entry_accessible_set_selection;
+  iface->get_run_attributes = gtk_entry_accessible_get_run_attributes;
+  iface->get_default_attributes = gtk_entry_accessible_get_default_attributes;
+  iface->get_character_extents = gtk_entry_accessible_get_character_extents;
+  iface->get_offset_at_point = gtk_entry_accessible_get_offset_at_point;
+}
+
+static void
+gtk_entry_accessible_set_text_contents (AtkEditableText *text,
+                                        const gchar     *string)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  if (!gtk_editable_get_editable (GTK_EDITABLE (widget)))
+    return;
+
+  gtk_entry_set_text (GTK_ENTRY (widget), string);
+}
+
+static void
+gtk_entry_accessible_insert_text (AtkEditableText *text,
+                                  const gchar     *string,
+                                  gint             length,
+                                  gint            *position)
+{
+  GtkWidget *widget;
+  GtkEditable *editable;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  editable = GTK_EDITABLE (widget);
+  if (!gtk_editable_get_editable (editable))
+    return;
+
+  gtk_editable_insert_text (editable, string, length, position);
+  gtk_editable_set_position (editable, *position);
+}
+
+static void
+gtk_entry_accessible_copy_text (AtkEditableText *text,
+                                gint             start_pos,
+                                gint             end_pos)
+{
+  GtkWidget *widget;
+  GtkEditable *editable;
+  gchar *str;
+  GtkClipboard *clipboard;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  if (!gtk_widget_has_screen (widget))
+    return;
+
+  editable = GTK_EDITABLE (widget);
+  str = gtk_editable_get_chars (editable, start_pos, end_pos);
+  clipboard = gtk_widget_get_clipboard (widget, GDK_SELECTION_CLIPBOARD);
+  gtk_clipboard_set_text (clipboard, str, -1);
+  g_free (str);
+}
+
+static void
+gtk_entry_accessible_cut_text (AtkEditableText *text,
+                               gint             start_pos,
+                               gint             end_pos)
+{
+  GtkWidget *widget;
+  GtkEditable *editable;
+  gchar *str;
+  GtkClipboard *clipboard;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  if (!gtk_widget_has_screen (widget))
+    return;
+
+  editable = GTK_EDITABLE (widget);
+  if (!gtk_editable_get_editable (editable))
+    return;
+
+  str = gtk_editable_get_chars (editable, start_pos, end_pos);
+  clipboard = gtk_widget_get_clipboard (widget, GDK_SELECTION_CLIPBOARD);
+  gtk_clipboard_set_text (clipboard, str, -1);
+  gtk_editable_delete_text (editable, start_pos, end_pos);
+}
+
+static void
+gtk_entry_accessible_delete_text (AtkEditableText *text,
+                                  gint             start_pos,
+                                  gint             end_pos)
+{
+  GtkWidget *widget;
+  GtkEditable *editable;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  editable = GTK_EDITABLE (widget);
+  if (!gtk_editable_get_editable (editable))
+    return;
+
+  gtk_editable_delete_text (editable, start_pos, end_pos);
+}
+
+typedef struct
+{
+  GtkEntry* entry;
+  gint position;
+} PasteData;
+
+static void
+paste_received_cb (GtkClipboard *clipboard,
+                   const gchar  *text,
+                   gpointer      data)
+{
+  PasteData *paste = data;
+
+  if (text)
+    gtk_editable_insert_text (GTK_EDITABLE (paste->entry), text, -1,
+                              &paste->position);
+
+  g_object_unref (paste->entry);
+  g_free (paste);
+}
+
+static void
+gtk_entry_accessible_paste_text (AtkEditableText *text,
+                                 gint             position)
+{
+  GtkWidget *widget;
+  GtkEditable *editable;
+  PasteData *paste;
+  GtkClipboard *clipboard;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  if (!gtk_widget_has_screen (widget))
+    return;
+
+  editable = GTK_EDITABLE (widget);
+  if (!gtk_editable_get_editable (editable))
+    return;
+
+  paste = g_new0 (PasteData, 1);
+  paste->entry = GTK_ENTRY (widget);
+  paste->position = position;
+
+  g_object_ref (paste->entry);
+  clipboard = gtk_widget_get_clipboard (widget, GDK_SELECTION_CLIPBOARD);
+  gtk_clipboard_request_text (clipboard, paste_received_cb, paste);
+}
+
+static void
+atk_editable_text_interface_init (AtkEditableTextIface *iface)
+{
+  iface->set_text_contents = gtk_entry_accessible_set_text_contents;
+  iface->insert_text = gtk_entry_accessible_insert_text;
+  iface->copy_text = gtk_entry_accessible_copy_text;
+  iface->cut_text = gtk_entry_accessible_cut_text;
+  iface->delete_text = gtk_entry_accessible_delete_text;
+  iface->paste_text = gtk_entry_accessible_paste_text;
+  iface->set_run_attributes = NULL;
+}
+
+/* We connect to GtkEditable::insert-text, since it carries
+ * the information we need. But we delay emitting our own
+ * text_changed::insert signal until the entry has update
+ * all its internal state and emits GtkEntry::changed.
+ */
+static void
+insert_text_cb (GtkEditable *editable,
+                gchar       *new_text,
+                gint         new_text_length,
+                gint        *position)
+{
+  GtkEntryAccessible *accessible;
+
+  if (new_text_length == 0)
+    return;
+
+  accessible = GTK_ENTRY_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (editable)));
+  if (accessible->length_insert == 0)
+    {
+      accessible->position_insert = *position;
+      accessible->length_insert = g_utf8_strlen (new_text, new_text_length);
+    }
+}
+
+/* We connect to GtkEditable::delete-text, since it carries
+ * the information we need. But we delay emitting our own
+ * text_changed::delete signal until the entry has update
+ * all its internal state and emits GtkEntry::changed.
+ */
+static void
+delete_text_cb (GtkEditable *editable,
+                gint         start,
+                gint         end)
+{
+  GtkEntryAccessible *accessible;
+
+  if (end < 0)
+    {
+      const gchar *text;
+
+      text = gtk_entry_get_text (GTK_ENTRY (editable));
+      end = g_utf8_strlen (text, -1);
+    }
+
+  if (end == start)
+    return;
+
+  accessible = GTK_ENTRY_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (editable)));
+  if (accessible->length_delete == 0)
+    {
+      accessible->position_delete = start;
+      accessible->length_delete = end - start;
+    }
+}
+
+/* Note the assumption here: A single ::changed emission
+ * will only collect a single deletion/insertion, and there
+ * won't be multiple insertions or deletions in a single
+ * change.
+ */
+static void
+changed_cb (GtkEditable *editable)
+{
+  GtkEntryAccessible *accessible;
+
+  accessible = GTK_ENTRY_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (editable)));
+
+  if (accessible->length_delete > 0)
+    {
+      g_signal_emit_by_name (accessible,
+                             "text-changed::delete",
+                             accessible->position_delete,
+                             accessible->length_delete);
+      accessible->length_delete = 0;
+    }
+  if (accessible->length_insert > 0)
+    {
+      g_signal_emit_by_name (accessible,
+                             "text-changed::insert",
+                             accessible->position_insert,
+                             accessible->length_insert);
+      accessible->length_insert = 0;
+    }
+}
+
+static gboolean
+check_for_selection_change (GtkEntryAccessible *accessible,
+                            GtkEntry           *entry)
+{
+  gboolean ret_val = FALSE;
+  gint start, end;
+
+  if (gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), &start, &end))
+    {
+      if (end != accessible->cursor_position ||
+          start != accessible->selection_bound)
+        /*
+         * This check is here as this function can be called
+         * for notification of selection_bound and current_pos.
+         * The values of current_pos and selection_bound may be the same
+         * for both notifications and we only want to generate one
+         * text_selection_changed signal.
+         */
+        ret_val = TRUE;
+    }
+  else
+    {
+      /* We had a selection */
+      ret_val = (accessible->cursor_position != accessible->selection_bound);
+    }
+
+  accessible->cursor_position = end;
+  accessible->selection_bound = start;
+
+  return ret_val;
+}
+
+static gboolean
+gtk_entry_accessible_do_action (AtkAction *action,
+                                gint       i)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (widget == NULL)
+    return FALSE;
+
+  if (!gtk_widget_get_sensitive (widget) || !gtk_widget_get_visible (widget))
+    return FALSE;
+
+  if (i != 0)
+    return FALSE;
+
+  gtk_widget_activate (widget);
+
+  return TRUE;
+}
+
+static gint
+gtk_entry_accessible_get_n_actions (AtkAction *action)
+{
+  return 1;
+}
+
+static const gchar *
+gtk_entry_accessible_get_keybinding (AtkAction *action,
+                                     gint       i)
+{
+  GtkWidget *widget;
+  GtkWidget *label;
+  AtkRelationSet *set;
+  AtkRelation *relation;
+  GPtrArray *target;
+  gpointer target_object;
+  guint key_val;
+
+  if (i != 0)
+    return NULL;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (widget == NULL)
+    return NULL;
+
+  set = atk_object_ref_relation_set (ATK_OBJECT (action));
+  if (!set)
+    return NULL;
+
+  label = NULL;
+  relation = atk_relation_set_get_relation_by_type (set, ATK_RELATION_LABELLED_BY);
+  if (relation)
+    {
+      target = atk_relation_get_target (relation);
+
+      target_object = g_ptr_array_index (target, 0);
+      label = gtk_accessible_get_widget (GTK_ACCESSIBLE (target_object));
+    }
+
+  g_object_unref (set);
+
+  if (GTK_IS_LABEL (label))
+    {
+      key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label));
+      if (key_val != GDK_KEY_VoidSymbol)
+        return gtk_accelerator_name (key_val, GDK_MOD1_MASK);
+    }
+
+  return NULL;
+}
+
+static const gchar*
+gtk_entry_accessible_action_get_name (AtkAction *action,
+                                      gint       i)
+{
+  if (i != 0)
+    return NULL;
+
+  return "activate";
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+  iface->do_action = gtk_entry_accessible_do_action;
+  iface->get_n_actions = gtk_entry_accessible_get_n_actions;
+  iface->get_keybinding = gtk_entry_accessible_get_keybinding;
+  iface->get_name = gtk_entry_accessible_action_get_name;
+}
diff --git a/gtk/a11y/gtkentryaccessible.h b/gtk/a11y/gtkentryaccessible.h
new file mode 100644 (file)
index 0000000..de8781a
--- /dev/null
@@ -0,0 +1,58 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_ENTRY_ACCESSIBLE_H__
+#define __GTK_ENTRY_ACCESSIBLE_H__
+
+#include "gtkwidgetaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_ENTRY_ACCESSIBLE                      (_gtk_entry_accessible_get_type ())
+#define GTK_ENTRY_ACCESSIBLE(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ENTRY_ACCESSIBLE, GtkEntryAccessible))
+#define GTK_ENTRY_ACCESSIBLE_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_ENTRY_ACCESSIBLE, GtkEntryAccessibleClass))
+#define GTK_IS_ENTRY_ACCESSIBLE(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ENTRY_ACCESSIBLE))
+#define GTK_IS_ENTRY_ACCESSIBLE_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ENTRY_ACCESSIBLE))
+#define GTK_ENTRY_ACCESSIBLE_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ENTRY_ACCESSIBLE, GtkEntryAccessibleClass))
+
+typedef struct _GtkEntryAccessible      GtkEntryAccessible;
+typedef struct _GtkEntryAccessibleClass GtkEntryAccessibleClass;
+
+struct _GtkEntryAccessible
+{
+  GtkWidgetAccessible parent;
+
+  gint position_insert;
+  gint position_delete;
+  gint length_insert;
+  gint length_delete;
+  gint cursor_position;
+  gint selection_bound;
+};
+
+struct _GtkEntryAccessibleClass
+{
+  GtkWidgetAccessibleClass parent_class;
+};
+
+GType _gtk_entry_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_ENTRY_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkexpanderaccessible.c b/gtk/a11y/gtkexpanderaccessible.c
new file mode 100644 (file)
index 0000000..b9697f9
--- /dev/null
@@ -0,0 +1,285 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkexpanderaccessible.h"
+
+static void atk_action_interface_init (AtkActionIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkExpanderAccessible, _gtk_expander_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
+
+static const gchar *
+gtk_expander_accessible_get_full_text (GtkExpander *widget)
+{
+  GtkWidget *label_widget;
+
+  label_widget = gtk_expander_get_label_widget (widget);
+
+  if (!GTK_IS_LABEL (label_widget))
+    return NULL;
+
+  return gtk_label_get_text (GTK_LABEL (label_widget));
+}
+
+static const gchar *
+gtk_expander_accessible_get_name (AtkObject *obj)
+{
+  GtkWidget *widget;
+  const gchar *name;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  name = ATK_OBJECT_CLASS (_gtk_expander_accessible_parent_class)->get_name (obj);
+  if (name != NULL)
+    return name;
+
+  return gtk_expander_accessible_get_full_text (GTK_EXPANDER (widget));
+}
+
+static gint
+gtk_expander_accessible_get_n_children (AtkObject *obj)
+{
+  GtkWidget *widget;
+  GList *children;
+  gint count = 0;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return 0;
+
+  children = gtk_container_get_children (GTK_CONTAINER(widget));
+  count = g_list_length (children);
+  g_list_free (children);
+
+  /* See if there is a label - if there is, reduce our count by 1
+   * since we don't want the label included with the children.
+   */
+  if (gtk_expander_get_label_widget (GTK_EXPANDER (widget)))
+    count -= 1;
+
+  return count;
+}
+
+static AtkObject *
+gtk_expander_accessible_ref_child (AtkObject *obj,
+                                   gint       i)
+{
+  GList *children, *tmp_list;
+  AtkObject *accessible;
+  GtkWidget *widget;
+  GtkWidget *label;
+  gint index;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  children = gtk_container_get_children (GTK_CONTAINER (widget));
+
+  /* See if there is a label - if there is, we need to skip it
+   * since we don't want the label included with the children.
+   */
+  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
+  if (label)
+    {
+      for (index = 0; index <= i; index++)
+        {
+          tmp_list = g_list_nth (children, index);
+          if (label == GTK_WIDGET (tmp_list->data))
+            {
+              i += 1;
+              break;
+            }
+        }
+    }
+
+  tmp_list = g_list_nth (children, i);
+  if (!tmp_list)
+    {
+      g_list_free (children);
+      return NULL;
+    }
+  accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
+
+  g_list_free (children);
+  g_object_ref (accessible);
+  return accessible;
+}
+
+static void
+gtk_expander_accessible_initialize (AtkObject *obj,
+                                    gpointer   data)
+{
+  ATK_OBJECT_CLASS (_gtk_expander_accessible_parent_class)->initialize (obj, data);
+
+  obj->role = ATK_ROLE_TOGGLE_BUTTON;
+}
+
+static void
+gtk_expander_accessible_notify_gtk (GObject    *obj,
+                                    GParamSpec *pspec)
+{
+  AtkObject* atk_obj;
+  GtkExpander *expander;
+
+  expander = GTK_EXPANDER (obj);
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (expander));
+;
+  if (g_strcmp0 (pspec->name, "label") == 0)
+    {
+      if (atk_obj->name == NULL)
+        g_object_notify (G_OBJECT (atk_obj), "accessible-name");
+      g_signal_emit_by_name (atk_obj, "visible-data-changed");
+    }
+  else if (g_strcmp0 (pspec->name, "expanded") == 0)
+    {
+      atk_object_notify_state_change (atk_obj, ATK_STATE_CHECKED,
+                                      gtk_expander_get_expanded (expander));
+      atk_object_notify_state_change (atk_obj, ATK_STATE_EXPANDED,
+                                      gtk_expander_get_expanded (expander));
+      g_signal_emit_by_name (atk_obj, "visible-data-changed");
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_expander_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static AtkStateSet *
+gtk_expander_accessible_ref_state_set (AtkObject *obj)
+{
+  AtkStateSet *state_set;
+  GtkWidget *widget;
+  GtkExpander *expander;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_expander_accessible_parent_class)->ref_state_set (obj);
+
+  expander = GTK_EXPANDER (widget);
+
+  atk_state_set_add_state (state_set, ATK_STATE_EXPANDABLE);
+
+  if (gtk_expander_get_expanded (expander))
+    {
+      atk_state_set_add_state (state_set, ATK_STATE_CHECKED);
+      atk_state_set_add_state (state_set, ATK_STATE_EXPANDED);
+    }
+
+  return state_set;
+}
+
+static void
+_gtk_expander_accessible_class_init (GtkExpanderAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+
+  widget_class->notify_gtk = gtk_expander_accessible_notify_gtk;
+
+  class->get_name = gtk_expander_accessible_get_name;
+  class->get_n_children = gtk_expander_accessible_get_n_children;
+  class->ref_child = gtk_expander_accessible_ref_child;
+  class->ref_state_set = gtk_expander_accessible_ref_state_set;
+
+  class->initialize = gtk_expander_accessible_initialize;
+}
+
+static void
+_gtk_expander_accessible_init (GtkExpanderAccessible *expander)
+{
+}
+
+static gboolean
+gtk_expander_accessible_do_action (AtkAction *action,
+                                   gint       i)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (widget == NULL)
+    return FALSE;
+
+  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
+    return FALSE;
+
+  if (i != 0)
+    return FALSE;
+
+  gtk_widget_activate (widget);
+  return TRUE;
+}
+
+static gint
+gtk_expander_accessible_get_n_actions (AtkAction *action)
+{
+  return 1;
+}
+
+static const gchar *
+gtk_expander_accessible_get_keybinding (AtkAction *action,
+                                        gint       i)
+{
+  gchar *return_value = NULL;
+  GtkWidget *widget;
+  GtkWidget *label;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (widget == NULL)
+    return NULL;
+
+  if (i != 0)
+    return NULL;
+
+  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
+  if (GTK_IS_LABEL (label))
+    {
+      guint key_val;
+
+      key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label));
+      if (key_val != GDK_KEY_VoidSymbol)
+        return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
+    }
+
+  return return_value;
+}
+
+static const gchar *
+gtk_expander_accessible_action_get_name (AtkAction *action,
+                                         gint       i)
+{
+  if (i != 0)
+    return NULL;
+
+  return "activate";
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+  iface->do_action = gtk_expander_accessible_do_action;
+  iface->get_n_actions = gtk_expander_accessible_get_n_actions;
+  iface->get_keybinding = gtk_expander_accessible_get_keybinding;
+  iface->get_name = gtk_expander_accessible_action_get_name;
+}
diff --git a/gtk/a11y/gtkexpanderaccessible.h b/gtk/a11y/gtkexpanderaccessible.h
new file mode 100644 (file)
index 0000000..d740998
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_EXPANDER_ACCESSIBLE_H__
+#define __GTK_EXPANDER_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_EXPANDER_ACCESSIBLE              (_gtk_expander_accessible_get_type ())
+#define GTK_EXPANDER_ACCESSIBLE(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_EXPANDER_ACCESSIBLE, GtkExpanderAccessible))
+#define GTK_EXPANDER_ACCESSIBLE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_EXPANDER_ACCESSIBLE, GtkExpanderAccessibleClass))
+#define GTK_IS_EXPANDER_ACCESSIBLE(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_EXPANDER_ACCESSIBLE))
+#define GTK_IS_EXPANDER_ACCESSIBLE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_EXPANDER_ACCESSIBLE))
+#define GTK_EXPANDER_ACCESSIBLE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_EXPANDER_ACCESSIBLE, GtkExpanderAccessibleClass))
+
+typedef struct _GtkExpanderAccessible      GtkExpanderAccessible;
+typedef struct _GtkExpanderAccessibleClass GtkExpanderAccessibleClass;
+
+struct _GtkExpanderAccessible
+{
+  GtkContainerAccessible parent;
+};
+
+struct _GtkExpanderAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_expander_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_EXPANDER_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkframeaccessible.c b/gtk/a11y/gtkframeaccessible.c
new file mode 100644 (file)
index 0000000..ca6458d
--- /dev/null
@@ -0,0 +1,67 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include "gtkframeaccessible.h"
+
+
+G_DEFINE_TYPE (GtkFrameAccessible, _gtk_frame_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE)
+
+static void
+gtk_frame_accessible_initialize (AtkObject *accessible,
+                                 gpointer   data)
+{
+  ATK_OBJECT_CLASS (_gtk_frame_accessible_parent_class)->initialize (accessible, data);
+
+  accessible->role = ATK_ROLE_PANEL;
+}
+
+static const gchar *
+gtk_frame_accessible_get_name (AtkObject *obj)
+{
+  const gchar *name;
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+      return NULL;
+
+  name = ATK_OBJECT_CLASS (_gtk_frame_accessible_parent_class)->get_name (obj);
+  if (name != NULL)
+    return name;
+
+  return gtk_frame_get_label (GTK_FRAME (widget));
+}
+
+static void
+_gtk_frame_accessible_class_init (GtkFrameAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+  class->initialize = gtk_frame_accessible_initialize;
+  class->get_name = gtk_frame_accessible_get_name;
+}
+
+static void
+_gtk_frame_accessible_init (GtkFrameAccessible *frame)
+{
+}
diff --git a/gtk/a11y/gtkframeaccessible.h b/gtk/a11y/gtkframeaccessible.h
new file mode 100644 (file)
index 0000000..4af46e6
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_FRAME_ACCESSIBLE_H__
+#define __GTK_FRAME_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_FRAME_ACCESSIBLE                      (_gtk_frame_accessible_get_type ())
+#define GTK_FRAME_ACCESSIBLE(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_FRAME_ACCESSIBLE, GtkFrameAccessible))
+#define GTK_FRAME_ACCESSIBLE_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_FRAME_ACCESSIBLE, GtkFrameAccessibleClass))
+#define GTK_IS_FRAME_ACCESSIBLE(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_FRAME_ACCESSIBLE))
+#define GTK_IS_FRAME_ACCESSIBLE_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_FRAME_ACCESSIBLE))
+#define GTK_FRAME_ACCESSIBLE_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_FRAME_ACCESSIBLE, GtkFrameAccessibleClass))
+
+typedef struct _GtkFrameAccessible      GtkFrameAccessible;
+typedef struct _GtkFrameAccessibleClass GtkFrameAccessibleClass;
+
+struct _GtkFrameAccessible
+{
+  GtkContainerAccessible parent;
+};
+
+struct _GtkFrameAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_frame_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_FRAME_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkimageaccessible.c b/gtk/a11y/gtkimageaccessible.c
new file mode 100644 (file)
index 0000000..acaa5b9
--- /dev/null
@@ -0,0 +1,205 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include "gtkimageaccessible.h"
+
+
+static void atk_image_interface_init (AtkImageIface  *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkImageAccessible, _gtk_image_accessible, GTK_TYPE_WIDGET_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_interface_init))
+
+static void
+gtk_image_accessible_initialize (AtkObject *accessible,
+                                 gpointer   data)
+{
+  ATK_OBJECT_CLASS (_gtk_image_accessible_parent_class)->initialize (accessible, data);
+
+  accessible->role = ATK_ROLE_ICON;
+}
+
+static void
+gtk_image_accessible_finalize (GObject *object)
+{
+  GtkImageAccessible *aimage = GTK_IMAGE_ACCESSIBLE (object);
+
+  g_free (aimage->image_description);
+  g_free (aimage->stock_name);
+
+  G_OBJECT_CLASS (_gtk_image_accessible_parent_class)->finalize (object);
+}
+
+static const gchar *
+gtk_image_accessible_get_name (AtkObject *accessible)
+{
+  GtkWidget* widget;
+  GtkImage *image;
+  GtkImageAccessible *image_accessible;
+  GtkStockItem stock_item;
+  gchar *stock_id;
+  const gchar *name;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return NULL;
+
+  name = ATK_OBJECT_CLASS (_gtk_image_accessible_parent_class)->get_name (accessible);
+  if (name)
+    return name;
+
+  image = GTK_IMAGE (widget);
+  image_accessible = GTK_IMAGE_ACCESSIBLE (accessible);
+
+  g_free (image_accessible->stock_name);
+  image_accessible->stock_name = NULL;
+
+  if (gtk_image_get_storage_type (image) != GTK_IMAGE_STOCK)
+    return NULL;
+
+  gtk_image_get_stock (image, &stock_id, NULL);
+  if (stock_id == NULL)
+    return NULL;
+
+  if (!gtk_stock_lookup (stock_id, &stock_item))
+    return NULL;
+
+  image_accessible->stock_name = _gtk_toolbar_elide_underscores (stock_item.label);
+  return image_accessible->stock_name;
+}
+
+static void
+_gtk_image_accessible_class_init (GtkImageAccessibleClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
+
+  gobject_class->finalize = gtk_image_accessible_finalize;
+  class->initialize = gtk_image_accessible_initialize;
+  class->get_name = gtk_image_accessible_get_name;
+}
+
+static void
+_gtk_image_accessible_init (GtkImageAccessible *image)
+{
+}
+
+static const gchar *
+gtk_image_accessible_get_image_description (AtkImage *image)
+{
+  GtkImageAccessible *accessible = GTK_IMAGE_ACCESSIBLE (image);
+
+  return accessible->image_description;
+}
+
+static void
+gtk_image_accessible_get_image_position (AtkImage     *image,
+                                         gint         *x,
+                                         gint         *y,
+                                         AtkCoordType  coord_type)
+{
+  atk_component_get_position (ATK_COMPONENT (image), x, y, coord_type);
+}
+
+static void
+gtk_image_accessible_get_image_size (AtkImage *image,
+                                     gint     *width,
+                                     gint     *height)
+{
+  GtkWidget* widget;
+  GtkImage *gtk_image;
+  GtkImageType image_type;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
+  if (widget == NULL)
+    {
+      *height = -1;
+      *width = -1;
+      return;
+    }
+
+  gtk_image = GTK_IMAGE (widget);
+
+  image_type = gtk_image_get_storage_type (gtk_image);
+  switch (image_type)
+    {
+    case GTK_IMAGE_PIXBUF:
+      {
+        GdkPixbuf *pixbuf;
+
+        pixbuf = gtk_image_get_pixbuf (gtk_image);
+        *height = gdk_pixbuf_get_height (pixbuf);
+        *width = gdk_pixbuf_get_width (pixbuf);
+        break;
+      }
+    case GTK_IMAGE_STOCK:
+    case GTK_IMAGE_ICON_SET:
+    case GTK_IMAGE_ICON_NAME:
+    case GTK_IMAGE_GICON:
+      {
+        GtkIconSize size;
+        GtkSettings *settings;
+
+        settings = gtk_settings_get_for_screen (gtk_widget_get_screen (widget));
+
+        g_object_get (gtk_image, "icon-size", &size, NULL);
+        gtk_icon_size_lookup_for_settings (settings, size, width, height);
+        break;
+      }
+    case GTK_IMAGE_ANIMATION:
+      {
+        GdkPixbufAnimation *animation;
+
+        animation = gtk_image_get_animation (gtk_image);
+        *height = gdk_pixbuf_animation_get_height (animation);
+        *width = gdk_pixbuf_animation_get_width (animation);
+        break;
+      }
+    default:
+      {
+        *height = -1;
+        *width = -1;
+        break;
+      }
+    }
+}
+
+static gboolean
+gtk_image_accessible_set_image_description (AtkImage    *image,
+                                            const gchar *description)
+{
+  GtkImageAccessible* accessible = GTK_IMAGE_ACCESSIBLE (image);
+
+  g_free (accessible->image_description);
+  accessible->image_description = g_strdup (description);
+
+  return TRUE;
+}
+
+static void
+atk_image_interface_init (AtkImageIface *iface)
+{
+  iface->get_image_description = gtk_image_accessible_get_image_description;
+  iface->get_image_position = gtk_image_accessible_get_image_position;
+  iface->get_image_size = gtk_image_accessible_get_image_size;
+  iface->set_image_description = gtk_image_accessible_set_image_description;
+}
diff --git a/gtk/a11y/gtkimageaccessible.h b/gtk/a11y/gtkimageaccessible.h
new file mode 100644 (file)
index 0000000..ce26b05
--- /dev/null
@@ -0,0 +1,54 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_IMAGE_ACCESSIBLE_H__
+#define __GTK_IMAGE_ACCESSIBLE_H__
+
+#include "gtkwidgetaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_IMAGE_ACCESSIBLE                      (_gtk_image_accessible_get_type ())
+#define GTK_IMAGE_ACCESSIBLE(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_IMAGE_ACCESSIBLE, GtkImageAccessible))
+#define GTK_IMAGE_ACCESSIBLE_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_IMAGE_ACCESSIBLE, GtkImageAccessibleClass))
+#define GTK_IS_IMAGE_ACCESSIBLE(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_IMAGE_ACCESSIBLE))
+#define GTK_IS_IMAGE_ACCESSIBLE_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_IMAGE_ACCESSIBLE))
+#define GTK_IMAGE_ACCESSIBLE_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_IMAGE_ACCESSIBLE, GtkImageAccessibleClass))
+
+typedef struct _GtkImageAccessible      GtkImageAccessible;
+typedef struct _GtkImageAccessibleClass GtkImageAccessibleClass;
+
+struct _GtkImageAccessible
+{
+  GtkWidgetAccessible parent;
+
+  gchar*     image_description;
+  gchar*     stock_name;
+};
+
+struct _GtkImageAccessibleClass
+{
+  GtkWidgetAccessibleClass parent_class;
+};
+
+GType _gtk_image_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_IMAGE_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkimagecellaccessible.c b/gtk/a11y/gtkimagecellaccessible.c
new file mode 100644 (file)
index 0000000..4b35660
--- /dev/null
@@ -0,0 +1,152 @@
+/* GAIL - The GNOME Accessibility Enabling Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkimagecellaccessible.h"
+
+static gchar *property_list[] = {
+  "pixbuf",
+  NULL
+};
+
+static void atk_image_interface_init (AtkImageIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkImageCellAccessible, _gtk_image_cell_accessible, GTK_TYPE_RENDERER_CELL_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_interface_init))
+
+static void
+gtk_image_cell_accessible_finalize (GObject *object)
+{
+  GtkImageCellAccessible *image_cell = GTK_IMAGE_CELL_ACCESSIBLE (object);
+
+  g_free (image_cell->image_description);
+  G_OBJECT_CLASS (_gtk_image_cell_accessible_parent_class)->finalize (object);
+}
+
+static gboolean
+gtk_image_cell_accessible_update_cache (GtkRendererCellAccessible *cell,
+                                        gboolean                   emit_change_signal)
+{
+  return FALSE;
+}
+
+static void
+_gtk_image_cell_accessible_class_init (GtkImageCellAccessibleClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkRendererCellAccessibleClass *renderer_cell_class = GTK_RENDERER_CELL_ACCESSIBLE_CLASS (klass);
+
+  gobject_class->finalize = gtk_image_cell_accessible_finalize;
+
+  renderer_cell_class->update_cache = gtk_image_cell_accessible_update_cache;
+  renderer_cell_class->property_list = property_list;
+}
+
+AtkObject *
+_gtk_image_cell_accessible_new (void)
+{
+  GObject *object;
+  AtkObject *atk_object;
+  GtkRendererCellAccessible *cell;
+
+  object = g_object_new (GTK_TYPE_IMAGE_CELL_ACCESSIBLE, NULL);
+
+  g_return_val_if_fail (object != NULL, NULL);
+
+  atk_object = ATK_OBJECT (object);
+  atk_object->role = ATK_ROLE_TABLE_CELL;
+
+  cell = GTK_RENDERER_CELL_ACCESSIBLE (object);
+
+  cell->renderer = gtk_cell_renderer_pixbuf_new ();
+  g_object_ref_sink (cell->renderer);
+
+  return atk_object;
+}
+
+static void
+_gtk_image_cell_accessible_init (GtkImageCellAccessible *image_cell)
+{
+  image_cell->image_description = NULL;
+}
+
+static const gchar *
+gtk_image_cell_accessible_get_image_description (AtkImage *image)
+{
+  GtkImageCellAccessible *image_cell = GTK_IMAGE_CELL_ACCESSIBLE (image);
+
+  return image_cell->image_description;
+}
+
+static gboolean
+gtk_image_cell_accessible_set_image_description (AtkImage    *image,
+                                                 const gchar *description)
+{
+  GtkImageCellAccessible *image_cell = GTK_IMAGE_CELL_ACCESSIBLE (image);
+
+  g_free (image_cell->image_description);
+  image_cell->image_description = g_strdup (description);
+
+  if (image_cell->image_description)
+    return TRUE;
+  else
+    return FALSE;
+}
+
+static void
+gtk_image_cell_accessible_get_image_position (AtkImage     *image,
+                                              gint         *x,
+                                              gint         *y,
+                                              AtkCoordType  coord_type)
+{
+  atk_component_get_position (ATK_COMPONENT (image), x, y, coord_type);
+}
+
+static void
+gtk_image_cell_accessible_get_image_size (AtkImage *image,
+                                          gint     *width,
+                                          gint     *height)
+{
+  GtkImageCellAccessible *cell = GTK_IMAGE_CELL_ACCESSIBLE (image);
+  GtkCellRenderer *cell_renderer;
+  GdkPixbuf *pixbuf = NULL;
+
+  cell_renderer = GTK_RENDERER_CELL_ACCESSIBLE (cell)->renderer;
+  g_object_get (GTK_CELL_RENDERER_PIXBUF (cell_renderer),
+                "pixbuf", &pixbuf,
+                NULL);
+
+  if (pixbuf)
+    {
+      *width = gdk_pixbuf_get_width (pixbuf);
+      *height = gdk_pixbuf_get_height (pixbuf);
+      g_object_unref (pixbuf);
+    }
+}
+
+static void
+atk_image_interface_init (AtkImageIface  *iface)
+{
+  iface->get_image_description = gtk_image_cell_accessible_get_image_description;
+  iface->set_image_description = gtk_image_cell_accessible_set_image_description;
+  iface->get_image_position = gtk_image_cell_accessible_get_image_position;
+  iface->get_image_size = gtk_image_cell_accessible_get_image_size;
+}
diff --git a/gtk/a11y/gtkimagecellaccessible.h b/gtk/a11y/gtkimagecellaccessible.h
new file mode 100644 (file)
index 0000000..7920c5b
--- /dev/null
@@ -0,0 +1,56 @@
+/* GAIL - The GNOME Accessibility Enabling Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_IMAGE_CELL_ACCESSIBLE_H__
+#define __GTK_IMAGE_CELL_ACCESSIBLE_H__
+
+#include <atk/atk.h>
+#include "gtkrenderercellaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_IMAGE_CELL_ACCESSIBLE            (_gtk_image_cell_accessible_get_type ())
+#define GTK_IMAGE_CELL_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_IMAGE_CELL_ACCESSIBLE, GtkImageCellAccessible))
+#define GTK_IMAGE_CELL_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_IMAGE_CELL_ACCESSIBLE, GtkImageCellAccessibleClass))
+#define GTK_IS_IMAGE_CELL_ACCESSIBLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_IMAGE_CELL_ACCESSIBLE))
+#define GTK_IS_IMAGE_CELL_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_IMAGE_CELL_ACCESSIBLE))
+#define GTK_IMAGE_CELL_ACCESSIBLE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_IMAGE_CELL_ACCESSIBLE, GtkImageCellAccessibleClass))
+
+typedef struct _GtkImageCellAccessible      GtkImageCellAccessible;
+typedef struct _GtkImageCellAccessibleClass GtkImageCellAccessibleClass;
+
+struct _GtkImageCellAccessible
+{
+  GtkRendererCellAccessible parent;
+
+  gchar            *image_description;
+  gint             x, y;
+};
+
+struct _GtkImageCellAccessibleClass
+{
+  GtkRendererCellAccessibleClass parent_class;
+};
+
+GType      _gtk_image_cell_accessible_get_type (void);
+AtkObject *_gtk_image_cell_accessible_new      (void);
+
+G_END_DECLS
+
+#endif /* __GTK_IMAGE_CELL_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtklabelaccessible.c b/gtk/a11y/gtklabelaccessible.c
new file mode 100644 (file)
index 0000000..b794385
--- /dev/null
@@ -0,0 +1,753 @@
+/* GAIL - The GNOME Accessibility Enabling Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include <gtk/gtkpango.h>
+#include "gtklabelaccessible.h"
+
+
+static void atk_text_interface_init (AtkTextIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkLabelAccessible, _gtk_label_accessible, GTK_TYPE_WIDGET_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init))
+
+static void
+_gtk_label_accessible_init (GtkLabelAccessible *label)
+{
+}
+
+static void
+gtk_label_accessible_initialize (AtkObject *obj,
+                                 gpointer   data)
+{
+  GtkWidget  *widget;
+  GtkLabelAccessible *accessible;
+
+  ATK_OBJECT_CLASS (_gtk_label_accessible_parent_class)->initialize (obj, data);
+
+  accessible = GTK_LABEL_ACCESSIBLE (obj);
+
+  widget = GTK_WIDGET (data);
+
+  accessible->text = g_strdup (gtk_label_get_text (GTK_LABEL (widget)));
+
+  /*
+   * Check whether ancestor of GtkLabel is a GtkButton and if so
+   * set accessible parent for GtkLabelAccessible
+   */
+  while (widget != NULL)
+    {
+      widget = gtk_widget_get_parent (widget);
+      if (GTK_IS_BUTTON (widget))
+        {
+          atk_object_set_parent (obj, gtk_widget_get_accessible (widget));
+          break;
+        }
+    }
+
+  obj->role = ATK_ROLE_LABEL;
+}
+
+static gboolean
+check_for_selection_change (GtkLabelAccessible *accessible,
+                            GtkLabel           *label)
+{
+  gboolean ret_val = FALSE;
+  gint start, end;
+
+  if (gtk_label_get_selection_bounds (label, &start, &end))
+    {
+      if (end != accessible->cursor_position ||
+          start != accessible->selection_bound)
+        ret_val = TRUE;
+    }
+  else
+    {
+      ret_val = (accessible->cursor_position != accessible->selection_bound);
+    }
+
+  accessible->cursor_position = end;
+  accessible->selection_bound = start;
+
+  return ret_val;
+}
+
+
+static void
+gtk_label_accessible_notify_gtk (GObject    *obj,
+                                 GParamSpec *pspec)
+{
+  GtkWidget *widget = GTK_WIDGET (obj);
+  AtkObject* atk_obj = gtk_widget_get_accessible (widget);
+  GtkLabelAccessible *accessible;
+  gint length;
+
+  accessible = GTK_LABEL_ACCESSIBLE (atk_obj);
+
+  if (g_strcmp0 (pspec->name, "label") == 0)
+    {
+      const gchar *text;
+
+      text = gtk_label_get_text (GTK_LABEL (widget));
+      if (g_strcmp0 (accessible->text, text) == 0)
+        return;
+
+      /* Create a delete text and an insert text signal */
+      length = g_utf8_strlen (accessible->text, -1);
+      if (length > 0)
+        g_signal_emit_by_name (atk_obj, "text-changed::delete", 0, length);
+
+      g_free (accessible->text);
+      accessible->text = g_strdup (text);
+
+      length = g_utf8_strlen (accessible->text, -1);
+      if (length > 0)
+        g_signal_emit_by_name (atk_obj, "text-changed::insert", 0, length);
+
+      if (atk_obj->name == NULL)
+        /* The label has changed so notify a change in accessible-name */
+        g_object_notify (G_OBJECT (atk_obj), "accessible-name");
+
+      g_signal_emit_by_name (atk_obj, "visible-data-changed");
+    }
+  else if (g_strcmp0 (pspec->name, "cursor-position") == 0)
+    {
+      g_signal_emit_by_name (atk_obj, "text-caret-moved",
+                             _gtk_label_get_cursor_position (GTK_LABEL (widget)));
+      if (check_for_selection_change (accessible, GTK_LABEL (widget)))
+        g_signal_emit_by_name (atk_obj, "text-selection-changed");
+    }
+  else if (g_strcmp0 (pspec->name, "selection-bound") == 0)
+    {
+      if (check_for_selection_change (accessible, GTK_LABEL (widget)))
+        g_signal_emit_by_name (atk_obj, "text-selection-changed");
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_label_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static void
+gtk_label_accessible_finalize (GObject *object)
+{
+  GtkLabelAccessible *accessible = GTK_LABEL_ACCESSIBLE (object);
+
+  g_free (accessible->text);
+
+  G_OBJECT_CLASS (_gtk_label_accessible_parent_class)->finalize (object);
+}
+
+
+/* atkobject.h */
+
+static AtkStateSet *
+gtk_label_accessible_ref_state_set (AtkObject *accessible)
+{
+  AtkStateSet *state_set;
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return NULL;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_label_accessible_parent_class)->ref_state_set (accessible);
+  atk_state_set_add_state (state_set, ATK_STATE_MULTI_LINE);
+
+  return state_set;
+}
+
+static AtkRelationSet *
+gtk_label_accessible_ref_relation_set (AtkObject *obj)
+{
+  GtkWidget *widget;
+  AtkRelationSet *relation_set;
+
+  g_return_val_if_fail (GTK_IS_LABEL_ACCESSIBLE (obj), NULL);
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  relation_set = ATK_OBJECT_CLASS (_gtk_label_accessible_parent_class)->ref_relation_set (obj);
+
+  if (!atk_relation_set_contains (relation_set, ATK_RELATION_LABEL_FOR))
+    {
+      /* Get the mnemonic widget.
+       * The relation set is not updated if the mnemonic widget is changed
+       */
+      GtkWidget *mnemonic_widget;
+
+      mnemonic_widget = gtk_label_get_mnemonic_widget (GTK_LABEL (widget));
+
+      if (mnemonic_widget)
+        {
+          AtkObject *accessible_array[1];
+          AtkRelation* relation;
+
+          if (!gtk_widget_get_can_focus (mnemonic_widget))
+            {
+            /*
+             * Handle the case where a GtkFileChooserButton is specified
+             * as the mnemonic widget. use the combobox which is a child of the
+             * GtkFileChooserButton as the mnemonic widget. See bug #359843.
+             */
+             if (GTK_IS_BOX (mnemonic_widget))
+               {
+                  GList *list, *tmpl;
+
+                  list = gtk_container_get_children (GTK_CONTAINER (mnemonic_widget));
+                  if (g_list_length (list) == 2)
+                    {
+                      tmpl = g_list_last (list);
+                      if (GTK_IS_COMBO_BOX(tmpl->data))
+                        {
+                          mnemonic_widget = GTK_WIDGET(tmpl->data);
+                        }
+                    }
+                  g_list_free (list);
+                }
+            }
+          accessible_array[0] = gtk_widget_get_accessible (mnemonic_widget);
+          relation = atk_relation_new (accessible_array, 1,
+                                       ATK_RELATION_LABEL_FOR);
+          atk_relation_set_add (relation_set, relation);
+          /*
+           * Unref the relation so that it is not leaked.
+           */
+          g_object_unref (relation);
+        }
+    }
+  return relation_set;
+}
+
+static const gchar*
+gtk_label_accessible_get_name (AtkObject *accessible)
+{
+  const gchar *name;
+
+  g_return_val_if_fail (GTK_IS_LABEL_ACCESSIBLE (accessible), NULL);
+
+  name = ATK_OBJECT_CLASS (_gtk_label_accessible_parent_class)->get_name (accessible);
+  if (name != NULL)
+    return name;
+  else
+    {
+      /*
+       * Get the text on the label
+       */
+      GtkWidget *widget;
+
+      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+      if (widget == NULL)
+        return NULL;
+
+      g_return_val_if_fail (GTK_IS_LABEL (widget), NULL);
+
+      return gtk_label_get_text (GTK_LABEL (widget));
+    }
+}
+
+static void
+_gtk_label_accessible_class_init (GtkLabelAccessibleClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+
+  gobject_class->finalize = gtk_label_accessible_finalize;
+
+  widget_class->notify_gtk = gtk_label_accessible_notify_gtk;
+
+  class->get_name = gtk_label_accessible_get_name;
+  class->ref_state_set = gtk_label_accessible_ref_state_set;
+  class->ref_relation_set = gtk_label_accessible_ref_relation_set;
+  class->initialize = gtk_label_accessible_initialize;
+}
+
+/* atktext.h */
+
+static gchar*
+gtk_label_accessible_get_text (AtkText *atk_text,
+                               gint     start_pos,
+                               gint     end_pos)
+{
+  GtkWidget *widget;
+  const gchar *text;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_text));
+  if (widget == NULL)
+    return NULL;
+
+  text = gtk_label_get_text (GTK_LABEL (widget));
+
+  if (text)
+    return g_utf8_substring (text, start_pos, end_pos > -1 ? end_pos : g_utf8_strlen (text, -1));
+
+  return NULL;
+}
+
+static gchar *
+gtk_label_accessible_get_text_before_offset (AtkText         *text,
+                                             gint             offset,
+                                             AtkTextBoundary  boundary_type,
+                                             gint            *start_offset,
+                                             gint            *end_offset)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  return _gtk_pango_get_text_before (gtk_label_get_layout (GTK_LABEL (widget)),
+                                     boundary_type, offset,
+                                     start_offset, end_offset);
+}
+
+static gchar*
+gtk_label_accessible_get_text_at_offset (AtkText         *text,
+                                         gint             offset,
+                                         AtkTextBoundary  boundary_type,
+                                         gint            *start_offset,
+                                         gint            *end_offset)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  return _gtk_pango_get_text_at (gtk_label_get_layout (GTK_LABEL (widget)),
+                                 boundary_type, offset,
+                                 start_offset, end_offset);
+}
+
+static gchar*
+gtk_label_accessible_get_text_after_offset (AtkText         *text,
+                                            gint             offset,
+                                            AtkTextBoundary  boundary_type,
+                                            gint            *start_offset,
+                                            gint            *end_offset)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  return _gtk_pango_get_text_after (gtk_label_get_layout (GTK_LABEL (widget)),
+                                    boundary_type, offset,
+                                    start_offset, end_offset);
+}
+
+static gint
+gtk_label_accessible_get_character_count (AtkText *atk_text)
+{
+  GtkWidget *widget;
+  const gchar *text;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_text));
+  if (widget == NULL)
+    return 0;
+
+  text = gtk_label_get_text (GTK_LABEL (widget));
+
+  if (text)
+    return g_utf8_strlen (text, -1);
+
+  return 0;
+}
+
+static gint
+gtk_label_accessible_get_caret_offset (AtkText *text)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return 0;
+
+  return _gtk_label_get_cursor_position (GTK_LABEL (widget));
+}
+
+static gboolean
+gtk_label_accessible_set_caret_offset (AtkText *text,
+                                       gint     offset)
+{
+  GtkWidget *widget;
+  GtkLabel *label;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  label = GTK_LABEL (widget);
+
+  if (!gtk_label_get_selectable (label))
+    return FALSE;
+
+  gtk_label_select_region (label, offset, offset);
+
+  return TRUE;
+}
+
+static gint
+gtk_label_accessible_get_n_selections (AtkText *text)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return 0;
+
+  if (gtk_label_get_selection_bounds (GTK_LABEL (widget), NULL, NULL))
+    return 1;
+
+  return 0;
+}
+
+static gchar *
+gtk_label_accessible_get_selection (AtkText *atk_text,
+                                    gint     selection_num,
+                                    gint    *start_pos,
+                                    gint    *end_pos)
+{
+  GtkWidget *widget;
+  GtkLabel  *label;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_text));
+  if (widget == NULL)
+    return NULL;
+
+  if (selection_num != 0)
+    return NULL;
+
+  label = GTK_LABEL (widget);
+
+  if (gtk_label_get_selection_bounds (label, start_pos, end_pos))
+    {
+      const gchar *text;
+
+      text = gtk_label_get_text (label);
+
+      if (text)
+        return g_utf8_substring (text, *start_pos, *end_pos);
+    }
+
+  return NULL;
+}
+
+static gboolean
+gtk_label_accessible_add_selection (AtkText *text,
+                                    gint     start_pos,
+                                    gint     end_pos)
+{
+  GtkWidget *widget;
+  GtkLabel  *label;
+  gint start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  label = GTK_LABEL (widget);
+
+  if (!gtk_label_get_selectable (label))
+    return FALSE;
+
+  if (!gtk_label_get_selection_bounds (label, &start, &end))
+    {
+      gtk_label_select_region (label, start_pos, end_pos);
+      return TRUE;
+    }
+  else
+    return FALSE;
+}
+
+static gboolean
+gtk_label_accessible_remove_selection (AtkText *text,
+                                       gint     selection_num)
+{
+  GtkWidget *widget;
+  GtkLabel  *label;
+  gint start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  if (selection_num != 0)
+     return FALSE;
+
+  label = GTK_LABEL (widget);
+
+  if (!gtk_label_get_selectable (label))
+     return FALSE;
+
+  if (gtk_label_get_selection_bounds (label, &start, &end))
+    {
+      gtk_label_select_region (label, end, end);
+      return TRUE;
+    }
+  else
+    return FALSE;
+}
+
+static gboolean
+gtk_label_accessible_set_selection (AtkText *text,
+                                    gint     selection_num,
+                                    gint     start_pos,
+                                    gint     end_pos)
+{
+  GtkWidget *widget;
+  GtkLabel  *label;
+  gint start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  if (selection_num != 0)
+    return FALSE;
+
+  label = GTK_LABEL (widget);
+
+  if (!gtk_label_get_selectable (label))
+    return FALSE;
+
+  if (gtk_label_get_selection_bounds (label, &start, &end))
+    {
+      gtk_label_select_region (label, start_pos, end_pos);
+      return TRUE;
+    }
+  else
+    return FALSE;
+}
+
+static void
+gtk_label_accessible_get_character_extents (AtkText      *text,
+                                            gint          offset,
+                                            gint         *x,
+                                            gint         *y,
+                                            gint         *width,
+                                            gint         *height,
+                                            AtkCoordType  coords)
+{
+  GtkWidget *widget;
+  GtkLabel *label;
+  PangoRectangle char_rect;
+  const gchar *label_text;
+  gint index, x_layout, y_layout;
+  GdkWindow *window;
+  gint x_window, y_window;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  label = GTK_LABEL (widget);
+
+  gtk_label_get_layout_offsets (label, &x_layout, &y_layout);
+  label_text = gtk_label_get_text (label);
+  index = g_utf8_offset_to_pointer (label_text, offset) - label_text;
+  pango_layout_index_to_pos (gtk_label_get_layout (label), index, &char_rect);
+  pango_extents_to_pixels (&char_rect, NULL);
+
+  window = gtk_widget_get_window (widget);
+  gdk_window_get_origin (window, &x_window, &y_window);
+
+  *x = x_window + x_layout + char_rect.x;
+  *y = x_window + y_layout + char_rect.y;
+  *width = char_rect.width;
+  *height = char_rect.height;
+
+  if (coords == ATK_XY_WINDOW)
+    {
+      window = gdk_window_get_toplevel (window);
+      gdk_window_get_origin (window, &x_window, &y_window);
+
+      *x -= x_window;
+      *y -= y_window;
+    }
+}
+
+static gint
+gtk_label_accessible_get_offset_at_point (AtkText      *atk_text,
+                                          gint          x,
+                                          gint          y,
+                                          AtkCoordType  coords)
+{
+  GtkWidget *widget;
+  GtkLabel *label;
+  const gchar *text;
+  gint index, x_layout, y_layout;
+  gint x_window, y_window;
+  gint x_local, y_local;
+  GdkWindow *window;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_text));
+  if (widget == NULL)
+    return -1;
+
+  label = GTK_LABEL (widget);
+
+  gtk_label_get_layout_offsets (label, &x_layout, &y_layout);
+
+  window = gtk_widget_get_window (widget);
+  gdk_window_get_origin (window, &x_window, &y_window);
+
+  x_local = x - x_layout - x_window;
+  y_local = y - y_layout - y_window;
+
+  if (coords == ATK_XY_WINDOW)
+    {
+      window = gdk_window_get_toplevel (window);
+      gdk_window_get_origin (window, &x_window, &y_window);
+
+      x_local += x_window;
+      y_local += y_window;
+    }
+
+  if (!pango_layout_xy_to_index (gtk_label_get_layout (label),
+                                 x_local * PANGO_SCALE,
+                                 y_local * PANGO_SCALE,
+                                 &index, NULL))
+    {
+      if (x_local < 0 || y_local < 0)
+        index = 0;
+      else
+        index = -1;
+    }
+
+  if (index != -1)
+    {
+      text = gtk_label_get_text (label);
+      return g_utf8_pointer_to_offset (text, text + index);
+    }
+
+  return -1;
+}
+
+static AtkAttributeSet *
+add_attribute (AtkAttributeSet  *attributes,
+               AtkTextAttribute  attr,
+               const gchar      *value)
+{
+  AtkAttribute *at;
+
+  at = g_new (AtkAttribute, 1);
+  at->name = g_strdup (atk_text_attribute_get_name (attr));
+  at->value = g_strdup (value);
+
+  return g_slist_prepend (attributes, at);
+}
+
+static AtkAttributeSet*
+gtk_label_accessible_get_run_attributes (AtkText *text,
+                                         gint     offset,
+                                         gint    *start_offset,
+                                         gint    *end_offset)
+{
+  GtkWidget *widget;
+  AtkAttributeSet *attributes;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  attributes = NULL;
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_DIRECTION,
+                   atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION,
+                                                 gtk_widget_get_direction (widget)));
+  attributes = _gtk_pango_get_run_attributes (attributes,
+                                              gtk_label_get_layout (GTK_LABEL (widget)),
+                                              offset,
+                                              start_offset,
+                                              end_offset);
+
+  return attributes;
+}
+
+static AtkAttributeSet *
+gtk_label_accessible_get_default_attributes (AtkText *text)
+{
+  GtkWidget *widget;
+  AtkAttributeSet *attributes;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  attributes = NULL;
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_DIRECTION,
+                   atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION,
+                                                 gtk_widget_get_direction (widget)));
+  attributes = _gtk_pango_get_default_attributes (attributes,
+                                                  gtk_label_get_layout (GTK_LABEL (widget)));
+  attributes = _gtk_style_context_get_attributes (attributes,
+                                                  gtk_widget_get_style_context (widget),
+                                                  gtk_widget_get_state_flags (widget));
+
+  return attributes;
+}
+
+static gunichar
+gtk_label_accessible_get_character_at_offset (AtkText *atk_text,
+                                              gint     offset)
+{
+  GtkWidget *widget;
+  const gchar *text;
+  gchar *index;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_text));
+  if (widget == NULL)
+    return '\0';
+
+  text = gtk_label_get_text (GTK_LABEL (widget));
+  if (offset >= g_utf8_strlen (text, -1))
+    return '\0';
+
+  index = g_utf8_offset_to_pointer (text, offset);
+
+  return g_utf8_get_char (index);
+}
+
+static void
+atk_text_interface_init (AtkTextIface *iface)
+{
+  iface->get_text = gtk_label_accessible_get_text;
+  iface->get_character_at_offset = gtk_label_accessible_get_character_at_offset;
+  iface->get_text_before_offset = gtk_label_accessible_get_text_before_offset;
+  iface->get_text_at_offset = gtk_label_accessible_get_text_at_offset;
+  iface->get_text_after_offset = gtk_label_accessible_get_text_after_offset;
+  iface->get_character_count = gtk_label_accessible_get_character_count;
+  iface->get_caret_offset = gtk_label_accessible_get_caret_offset;
+  iface->set_caret_offset = gtk_label_accessible_set_caret_offset;
+  iface->get_n_selections = gtk_label_accessible_get_n_selections;
+  iface->get_selection = gtk_label_accessible_get_selection;
+  iface->add_selection = gtk_label_accessible_add_selection;
+  iface->remove_selection = gtk_label_accessible_remove_selection;
+  iface->set_selection = gtk_label_accessible_set_selection;
+  iface->get_character_extents = gtk_label_accessible_get_character_extents;
+  iface->get_offset_at_point = gtk_label_accessible_get_offset_at_point;
+  iface->get_run_attributes = gtk_label_accessible_get_run_attributes;
+  iface->get_default_attributes = gtk_label_accessible_get_default_attributes;
+}
+
diff --git a/gtk/a11y/gtklabelaccessible.h b/gtk/a11y/gtklabelaccessible.h
new file mode 100644 (file)
index 0000000..1fed206
--- /dev/null
@@ -0,0 +1,55 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_LABEL_ACCESSIBLE_H__
+#define __GTK_LABEL_ACCESSIBLE_H__
+
+#include "gtkwidgetaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_LABEL_ACCESSIBLE            (_gtk_label_accessible_get_type ())
+#define GTK_LABEL_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_LABEL_ACCESSIBLE, GtkLabelAccessible))
+#define GTK_LABEL_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_LABEL_ACCESSIBLE, GtkLabelAccessibleClass))
+#define GTK_IS_LABEL_ACCESSIBLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_LABEL_ACCESSIBLE))
+#define GTK_IS_LABEL_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_LABEL_ACCESSIBLE))
+#define GTK_LABEL_ACCESSIBLE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_LABEL_ACCESSIBLE, GtkLabelAccessibleClass))
+
+typedef struct _GtkLabelAccessible      GtkLabelAccessible;
+typedef struct _GtkLabelAccessibleClass GtkLabelAccessibleClass;
+
+struct _GtkLabelAccessible
+{
+  GtkWidgetAccessible parent;
+
+  gchar *text;
+  gint cursor_position;
+  gint selection_bound;
+};
+
+struct _GtkLabelAccessibleClass
+{
+  GtkWidgetAccessibleClass parent_class;
+};
+
+GType _gtk_label_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_LABEL_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtklinkbuttonaccessible.c b/gtk/a11y/gtklinkbuttonaccessible.c
new file mode 100644 (file)
index 0000000..7efc7ef
--- /dev/null
@@ -0,0 +1,224 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2011 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtklinkbuttonaccessible.h"
+
+typedef struct _GtkLinkButtonAccessibleLink GtkLinkButtonAccessibleLink;
+typedef struct _GtkLinkButtonAccessibleLinkClass GtkLinkButtonAccessibleLinkClass;
+
+struct _GtkLinkButtonAccessibleLink
+{
+  AtkHyperlink parent;
+
+  GtkLinkButtonAccessible *button;
+};
+
+struct _GtkLinkButtonAccessibleLinkClass
+{
+  AtkHyperlinkClass parent_class;
+};
+
+static void atk_action_interface_init (AtkActionIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkLinkButtonAccessibleLink, _gtk_link_button_accessible_link, ATK_TYPE_HYPERLINK,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
+
+static AtkHyperlink *
+gtk_link_button_accessible_link_new (GtkLinkButtonAccessible *button)
+{
+  GtkLinkButtonAccessibleLink *l;
+
+  l = g_object_new (_gtk_link_button_accessible_link_get_type (), NULL);
+  l->button = button;
+
+  return ATK_HYPERLINK (l);
+}
+
+static gchar *
+gtk_link_button_accessible_link_get_uri (AtkHyperlink *atk_link,
+                                         gint          i)
+{
+  GtkLinkButtonAccessibleLink *l = (GtkLinkButtonAccessibleLink *)atk_link;
+  GtkWidget *widget;
+  const gchar *uri;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (l->button));
+  uri = gtk_link_button_get_uri (GTK_LINK_BUTTON (widget));
+
+  return g_strdup (uri);
+}
+
+static gint
+gtk_link_button_accessible_link_get_n_anchors (AtkHyperlink *atk_link)
+{
+  return 1;
+}
+
+static gboolean
+gtk_link_button_accessible_link_is_valid (AtkHyperlink *atk_link)
+{
+  return TRUE;
+}
+
+static AtkObject *
+gtk_link_button_accessible_link_get_object (AtkHyperlink *atk_link,
+                                            gint          i)
+{
+  GtkLinkButtonAccessibleLink *l = (GtkLinkButtonAccessibleLink *)atk_link;
+
+  return ATK_OBJECT (l->button);
+}
+
+static gint
+gtk_link_button_accessible_link_get_start_index (AtkHyperlink *atk_link)
+{
+  return 0;
+}
+
+static gint
+gtk_link_button_accessible_link_get_end_index (AtkHyperlink *atk_link)
+{
+  GtkLinkButtonAccessibleLink *l = (GtkLinkButtonAccessibleLink *)atk_link;
+
+  return atk_text_get_character_count (ATK_TEXT (l->button));
+}
+
+static void
+_gtk_link_button_accessible_link_init (GtkLinkButtonAccessibleLink *l)
+{
+}
+
+static void
+_gtk_link_button_accessible_link_class_init (GtkLinkButtonAccessibleLinkClass *class)
+{
+  AtkHyperlinkClass *atk_link_class = ATK_HYPERLINK_CLASS (class);
+
+  atk_link_class->get_uri = gtk_link_button_accessible_link_get_uri;
+  atk_link_class->get_n_anchors = gtk_link_button_accessible_link_get_n_anchors;
+  atk_link_class->is_valid = gtk_link_button_accessible_link_is_valid;
+  atk_link_class->get_object = gtk_link_button_accessible_link_get_object;
+  atk_link_class->get_start_index = gtk_link_button_accessible_link_get_start_index;
+  atk_link_class->get_end_index = gtk_link_button_accessible_link_get_end_index;
+}
+
+static gboolean
+gtk_link_button_accessible_link_do_action (AtkAction *action,
+                                           gint       i)
+{
+  GtkLinkButtonAccessibleLink *l = (GtkLinkButtonAccessibleLink *)action;
+  GtkWidget *widget;
+
+  widget = GTK_WIDGET (l->button);
+  if (widget == NULL)
+    return FALSE;
+
+  if (i != 0)
+    return FALSE;
+
+  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
+    return FALSE;
+
+  gtk_button_clicked (GTK_BUTTON (widget));
+
+  return TRUE;
+}
+
+static gint
+gtk_link_button_accessible_link_get_n_actions (AtkAction *action)
+{
+  return 1;
+}
+
+static const gchar *
+gtk_link_button_accessible_link_get_name (AtkAction *action,
+                                          gint       i)
+{
+  if (i != 0)
+    return NULL;
+
+  return "activate";
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+  iface->do_action = gtk_link_button_accessible_link_do_action;
+  iface->get_n_actions = gtk_link_button_accessible_link_get_n_actions;
+  iface->get_name = gtk_link_button_accessible_link_get_name;
+}
+
+static gboolean
+activate_link (GtkLinkButton *button,
+               AtkHyperlink  *atk_link)
+{
+  g_signal_emit_by_name (atk_link, "link-activated");
+
+  return FALSE;
+}
+
+static AtkHyperlink *
+gtk_link_button_accessible_get_hyperlink (AtkHyperlinkImpl *impl)
+{
+  GtkLinkButtonAccessible *button = GTK_LINK_BUTTON_ACCESSIBLE (impl);
+
+  if (!button->link)
+    {
+      button->link = gtk_link_button_accessible_link_new (button);
+      g_signal_connect (gtk_accessible_get_widget (GTK_ACCESSIBLE (button)),
+                        "activate-link", G_CALLBACK (activate_link), button->link);
+    }
+
+  return g_object_ref (button->link);
+}
+
+static void atk_hypertext_impl_interface_init (AtkHyperlinkImplIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkLinkButtonAccessible, _gtk_link_button_accessible, GTK_TYPE_BUTTON_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_HYPERLINK_IMPL, atk_hypertext_impl_interface_init))
+
+static void
+_gtk_link_button_accessible_init (GtkLinkButtonAccessible *button)
+{
+}
+
+static void
+gtk_link_button_accessible_finalize (GObject *object)
+{
+  GtkLinkButtonAccessible *button = GTK_LINK_BUTTON_ACCESSIBLE (object);
+
+  if (button->link)
+    g_object_unref (button->link);
+
+  G_OBJECT_CLASS (_gtk_link_button_accessible_parent_class)->finalize (object);
+}
+
+static void
+_gtk_link_button_accessible_class_init (GtkLinkButtonAccessibleClass *klass)
+{
+  G_OBJECT_CLASS (klass)->finalize = gtk_link_button_accessible_finalize;
+}
+
+static void
+atk_hypertext_impl_interface_init (AtkHyperlinkImplIface *iface)
+{
+  iface->get_hyperlink = gtk_link_button_accessible_get_hyperlink;
+}
diff --git a/gtk/a11y/gtklinkbuttonaccessible.h b/gtk/a11y/gtklinkbuttonaccessible.h
new file mode 100644 (file)
index 0000000..bc19ae2
--- /dev/null
@@ -0,0 +1,53 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2011 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_LINK_BUTTON_ACCESSIBLE_H__
+#define __GTK_LINK_BUTTON_ACCESSIBLE_H__
+
+#include "gtkbuttonaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_LINK_BUTTON_ACCESSIBLE                (_gtk_link_button_accessible_get_type ())
+#define GTK_LINK_BUTTON_ACCESSIBLE(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_LINK_BUTTON_ACCESSIBLE, GtkLinkButtonAccessible))
+#define GTK_LINK_BUTTON_ACCESSIBLE_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_LINK_BUTTON_ACCESSIBLE, GtkLinkButtonAccessibleClass))
+#define GTK_IS_LINK_BUTTON_ACCESSIBLE(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_LINK_BUTTON_ACCESSIBLE))
+#define GTK_IS_LINK_BUTTON_ACCESSIBLE_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_LINK_BUTTON_ACCESSIBLE))
+#define GTK_LINK_BUTTON_ACCESSIBLE_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_LINK_BUTTON_ACCESSIBLE, GtkLinkButtonAccessibleClass))
+
+typedef struct _GtkLinkButtonAccessible      GtkLinkButtonAccessible;
+typedef struct _GtkLinkButtonAccessibleClass GtkLinkButtonAccessibleClass;
+
+struct _GtkLinkButtonAccessible
+{
+  GtkButtonAccessible parent;
+
+  AtkHyperlink *link;
+};
+
+struct _GtkLinkButtonAccessibleClass
+{
+  GtkButtonAccessibleClass parent_class;
+};
+
+GType _gtk_link_button_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_LINK_BUTTON_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkmenuaccessible.c b/gtk/a11y/gtkmenuaccessible.c
new file mode 100644 (file)
index 0000000..df30d98
--- /dev/null
@@ -0,0 +1,99 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include "gtkmenuaccessible.h"
+
+
+G_DEFINE_TYPE (GtkMenuAccessible, _gtk_menu_accessible, GTK_TYPE_MENU_SHELL_ACCESSIBLE)
+
+static void
+gtk_menu_accessible_initialize (AtkObject *obj,
+                                gpointer   data)
+{
+  ATK_OBJECT_CLASS (_gtk_menu_accessible_parent_class)->initialize (obj, data);
+
+  obj->role = ATK_ROLE_MENU;
+
+  GTK_WIDGET_ACCESSIBLE (obj)->layer = ATK_LAYER_POPUP;
+}
+
+static AtkObject *
+gtk_menu_accessible_get_parent (AtkObject *accessible)
+{
+  AtkObject *parent;
+  GtkWidget *widget, *parent_widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return NULL;
+
+  parent = accessible->accessible_parent;
+  if (parent != NULL)
+    return parent;
+
+  /* If the menu is attached to a menu item or a button (Gnome Menu)
+   * report the menu item as parent.
+   */
+  parent_widget = gtk_menu_get_attach_widget (GTK_MENU (widget));
+
+  if (!GTK_IS_MENU_ITEM (parent_widget) &&
+      !GTK_IS_BUTTON (parent_widget) &&
+      !GTK_IS_COMBO_BOX (parent_widget))
+    parent_widget = gtk_widget_get_parent (widget);
+
+  if (parent_widget == NULL)
+    return NULL;
+
+  parent = gtk_widget_get_accessible (parent_widget);
+  atk_object_set_parent (accessible, parent);
+
+  return parent;
+}
+
+static gint
+gtk_menu_accessible_get_index_in_parent (AtkObject *accessible)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return -1;
+
+  if (gtk_menu_get_attach_widget (GTK_MENU (widget)))
+    return 0;
+
+  return ATK_OBJECT_CLASS (_gtk_menu_accessible_parent_class)->get_index_in_parent (accessible);
+}
+
+static void
+_gtk_menu_accessible_class_init (GtkMenuAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+  class->get_parent = gtk_menu_accessible_get_parent;
+  class->get_index_in_parent = gtk_menu_accessible_get_index_in_parent;
+  class->initialize = gtk_menu_accessible_initialize;
+}
+
+static void
+_gtk_menu_accessible_init (GtkMenuAccessible *accessible)
+{
+}
diff --git a/gtk/a11y/gtkmenuaccessible.h b/gtk/a11y/gtkmenuaccessible.h
new file mode 100644 (file)
index 0000000..59f2946
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_MENU_ACCESSIBLE_H__
+#define __GTK_MENU_ACCESSIBLE_H__
+
+#include "gtkmenushellaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_MENU_ACCESSIBLE                          (_gtk_menu_accessible_get_type ())
+#define GTK_MENU_ACCESSIBLE(obj)                          (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_MENU_ACCESSIBLE, GtkMenuAccessible))
+#define GTK_MENU_ACCESSIBLE_CLASS(klass)                  (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MENU_ACCESSIBLE, GtkMenuAccessibleClass))
+#define GTK_IS_MENU_ACCESSIBLE(obj)                       (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_MENU_ACCESSIBLE))
+#define GTK_IS_MENU_ACCESSIBLE_CLASS(klass)               (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MENU_ACCESSIBLE))
+#define GTK_MENU_ACCESSIBLE_GET_CLASS(obj)                (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MENU_ACCESSIBLE, GtkMenuAccessibleClass))
+
+typedef struct _GtkMenuAccessible      GtkMenuAccessible;
+typedef struct _GtkMenuAccessibleClass GtkMenuAccessibleClass;
+
+struct _GtkMenuAccessible
+{
+  GtkMenuShellAccessible parent;
+};
+
+struct _GtkMenuAccessibleClass
+{
+  GtkMenuShellAccessibleClass parent_class;
+};
+
+GType _gtk_menu_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_MENU_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkmenuitemaccessible.c b/gtk/a11y/gtkmenuitemaccessible.c
new file mode 100644 (file)
index 0000000..87cef04
--- /dev/null
@@ -0,0 +1,882 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include "gtkmenuitemaccessible.h"
+#include "gtk/gtkmenuitemprivate.h"
+
+#define KEYBINDING_SEPARATOR ";"
+
+static void menu_item_select   (GtkMenuItem *item);
+static void menu_item_deselect (GtkMenuItem *item);
+
+static GtkWidget *get_label_from_container   (GtkWidget *container);
+static gchar     *get_text_from_label_widget (GtkWidget *widget);
+
+static gint menu_item_add_gtk    (GtkContainer   *container,
+                                  GtkWidget      *widget);
+static gint menu_item_remove_gtk (GtkContainer   *container,
+                                  GtkWidget      *widget);
+
+static void atk_action_interface_init    (AtkActionIface *iface);
+static void atk_selection_interface_init (AtkSelectionIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkMenuItemAccessible, _gtk_menu_item_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init);
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
+
+static void
+gtk_menu_item_accessible_initialize (AtkObject *obj,
+                                     gpointer   data)
+{
+  GtkWidget *widget;
+  GtkWidget *parent;
+  GtkWidget *menu;
+
+  ATK_OBJECT_CLASS (_gtk_menu_item_accessible_parent_class)->initialize (obj, data);
+
+  g_signal_connect (data, "select", G_CALLBACK (menu_item_select), NULL);
+  g_signal_connect (data, "deselect", G_CALLBACK (menu_item_deselect), NULL);
+
+  widget = GTK_WIDGET (data);
+  parent = gtk_widget_get_parent (widget);
+  if (GTK_IS_MENU (parent))
+    {
+      GtkWidget *parent_widget;
+
+      parent_widget =  gtk_menu_get_attach_widget (GTK_MENU (parent));
+
+      if (!GTK_IS_MENU_ITEM (parent_widget))
+        parent_widget = gtk_widget_get_parent (widget);
+      if (parent_widget)
+        atk_object_set_parent (obj, gtk_widget_get_accessible (parent_widget));
+    }
+
+  GTK_WIDGET_ACCESSIBLE (obj)->layer = ATK_LAYER_POPUP;
+
+  obj->role = ATK_ROLE_MENU_ITEM;
+
+  menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (data));
+  if (menu)
+    {
+      g_signal_connect (menu, "add", G_CALLBACK (menu_item_add_gtk), NULL);
+      g_signal_connect (menu, "remove", G_CALLBACK (menu_item_remove_gtk), NULL);
+    }
+}
+
+static gint
+gtk_menu_item_accessible_get_n_children (AtkObject *obj)
+{
+  GtkWidget *widget;
+  GtkWidget *submenu;
+  gint count = 0;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return count;
+
+  submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
+  if (submenu)
+    {
+      GList *children;
+
+      children = gtk_container_get_children (GTK_CONTAINER (submenu));
+      count = g_list_length (children);
+      g_list_free (children);
+    }
+  return count;
+}
+
+static AtkObject *
+gtk_menu_item_accessible_ref_child (AtkObject *obj,
+                                    gint       i)
+{
+  AtkObject  *accessible;
+  GtkWidget *widget;
+  GtkWidget *submenu;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  accessible = NULL;
+  submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
+  if (submenu)
+    {
+      GList *children;
+      GList *tmp_list;
+
+      children = gtk_container_get_children (GTK_CONTAINER (submenu));
+      tmp_list = g_list_nth (children, i);
+      if (tmp_list)
+        {
+          accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
+          g_object_ref (accessible);
+        }
+      g_list_free (children);
+    }
+
+  return accessible;
+}
+
+static AtkStateSet *
+gtk_menu_item_accessible_ref_state_set (AtkObject *obj)
+{
+  AtkObject *menu_item;
+  AtkStateSet *state_set, *parent_state_set;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_menu_item_accessible_parent_class)->ref_state_set (obj);
+
+  menu_item = atk_object_get_parent (obj);
+
+  if (menu_item)
+    {
+      if (!GTK_IS_MENU_ITEM (gtk_accessible_get_widget (GTK_ACCESSIBLE (menu_item))))
+        return state_set;
+
+      parent_state_set = atk_object_ref_state_set (menu_item);
+      if (!atk_state_set_contains_state (parent_state_set, ATK_STATE_SELECTED))
+        {
+          atk_state_set_remove_state (state_set, ATK_STATE_FOCUSED);
+          atk_state_set_remove_state (state_set, ATK_STATE_SHOWING);
+        }
+      g_object_unref (parent_state_set);
+    }
+
+  return state_set;
+}
+
+static AtkRole
+gtk_menu_item_accessible_get_role (AtkObject *obj)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget != NULL &&
+      gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget)))
+    return ATK_ROLE_MENU;
+
+  return ATK_OBJECT_CLASS (_gtk_menu_item_accessible_parent_class)->get_role (obj);
+}
+
+static const gchar *
+gtk_menu_item_accessible_get_name (AtkObject *obj)
+{
+  const gchar *name;
+  GtkWidget *widget;
+  GtkWidget *label;
+  GtkMenuItemAccessible *accessible;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  name = ATK_OBJECT_CLASS (_gtk_menu_item_accessible_parent_class)->get_name (obj);
+  if (name)
+    return name;
+
+  accessible = GTK_MENU_ITEM_ACCESSIBLE (obj);
+  label = get_label_from_container (widget);
+
+  g_free (accessible->text);
+  accessible->text = get_text_from_label_widget (label);
+
+  return accessible->text;
+}
+
+static void
+gtk_menu_item_accessible_finalize (GObject *object)
+{
+  GtkMenuItemAccessible *accessible = GTK_MENU_ITEM_ACCESSIBLE (object);
+
+  g_free (accessible->text);
+
+  G_OBJECT_CLASS (_gtk_menu_item_accessible_parent_class)->finalize (object);
+}
+
+static void
+gtk_menu_item_accessible_notify_gtk (GObject    *obj,
+                                     GParamSpec *pspec)
+{
+  AtkObject* atk_obj;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (obj));
+
+  if (strcmp (pspec->name, "label") == 0)
+    {
+      if (atk_obj->name == NULL)
+        g_object_notify (G_OBJECT (atk_obj), "accessible-name");
+      g_signal_emit_by_name (atk_obj, "visible-data-changed");
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_menu_item_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static void
+_gtk_menu_item_accessible_class_init (GtkMenuItemAccessibleClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+
+  widget_class->notify_gtk = gtk_menu_item_accessible_notify_gtk;
+
+  gobject_class->finalize = gtk_menu_item_accessible_finalize;
+
+  class->get_n_children = gtk_menu_item_accessible_get_n_children;
+  class->ref_child = gtk_menu_item_accessible_ref_child;
+  class->ref_state_set = gtk_menu_item_accessible_ref_state_set;
+  class->initialize = gtk_menu_item_accessible_initialize;
+  class->get_name = gtk_menu_item_accessible_get_name;
+  class->get_role = gtk_menu_item_accessible_get_role;
+}
+
+static void
+_gtk_menu_item_accessible_init (GtkMenuItemAccessible *menu_item)
+{
+}
+
+static GtkWidget *
+get_label_from_container (GtkWidget *container)
+{
+  GtkWidget *label;
+  GList *children, *tmp_list;
+
+  if (!GTK_IS_CONTAINER (container))
+    return NULL;
+
+  children = gtk_container_get_children (GTK_CONTAINER (container));
+  label = NULL;
+
+  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next)
+    {
+      if (GTK_IS_LABEL (tmp_list->data))
+        {
+          label = tmp_list->data;
+          break;
+        }
+      else if (GTK_IS_CELL_VIEW (tmp_list->data))
+        {
+          label = tmp_list->data;
+          break;
+        }
+      else if (GTK_IS_BOX (tmp_list->data))
+        {
+          label = get_label_from_container (GTK_WIDGET (tmp_list->data));
+          if (label)
+            break;
+        }
+    }
+  g_list_free (children);
+
+  return label;
+}
+
+static gchar *
+get_text_from_label_widget (GtkWidget *label)
+{
+  if (GTK_IS_LABEL (label))
+    return g_strdup (gtk_label_get_text (GTK_LABEL (label)));
+  else if (GTK_IS_CELL_VIEW (label))
+    {
+      GList *cells, *l;
+      GtkTreeModel *model;
+      GtkTreeIter iter;
+      GtkTreePath *path;
+      GtkCellArea *area;
+      gchar *text;
+
+      model = gtk_cell_view_get_model (GTK_CELL_VIEW (label));
+      path = gtk_cell_view_get_displayed_row (GTK_CELL_VIEW (label));
+      gtk_tree_model_get_iter (model, &iter, path);
+      gtk_tree_path_free (path);
+
+      area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (label));
+      gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE);
+      cells = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (label));
+
+      text = NULL;
+      for (l = cells; l; l = l->next)
+        {
+          GtkCellRenderer *cell = l->data;
+
+          if (GTK_IS_CELL_RENDERER_TEXT (cell))
+            {
+              g_object_get (cell, "text", &text, NULL);
+              break;
+            }
+        }
+
+      g_list_free (cells);
+
+      return text;
+    }
+
+  return NULL;
+}
+
+static void
+ensure_menus_unposted (GtkMenuItemAccessible *menu_item)
+{
+  AtkObject *parent;
+  GtkWidget *widget;
+
+  parent = atk_object_get_parent (ATK_OBJECT (menu_item));
+  while (parent)
+    {
+      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
+      if (GTK_IS_MENU (widget))
+        {
+          if (gtk_widget_get_mapped (widget))
+            gtk_menu_shell_cancel (GTK_MENU_SHELL (widget));
+
+          return;
+        }
+      parent = atk_object_get_parent (parent);
+    }
+}
+
+static gboolean
+gtk_menu_item_accessible_do_action (AtkAction *action,
+                                    gint       i)
+{
+  GtkWidget *item, *item_parent;
+  gboolean item_mapped;
+
+  item = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (item == NULL)
+    return FALSE;
+
+  if (i != 0)
+    return FALSE;
+
+  if (!gtk_widget_get_sensitive (item) || !gtk_widget_get_visible (item))
+    return FALSE;
+
+  item_parent = gtk_widget_get_parent (item);
+  if (!GTK_IS_MENU_SHELL (item_parent))
+    return FALSE;
+
+  gtk_menu_shell_select_item (GTK_MENU_SHELL (item_parent), item);
+  item_mapped = gtk_widget_get_mapped (item);
+
+  /* This is what is called when <Return> is pressed for a menu item.
+   * The last argument means 'force hide'.
+   */
+  g_signal_emit_by_name (item_parent, "activate-current", 1);
+  if (!item_mapped)
+    ensure_menus_unposted (GTK_MENU_ITEM_ACCESSIBLE (action));
+
+  return TRUE;
+}
+
+static gint
+gtk_menu_item_accessible_get_n_actions (AtkAction *action)
+{
+  GtkWidget *item;
+
+  item = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (item == NULL)
+    return 0;
+
+  if (!_gtk_menu_item_is_selectable (item))
+    return 0;
+
+  return 1;
+}
+
+static const gchar *
+gtk_menu_item_accessible_action_get_name (AtkAction *action,
+                                          gint       i)
+{
+  if (i != 0 || gtk_menu_item_accessible_get_n_actions (action) == 0)
+    return NULL;
+
+  return "click";
+}
+
+static gboolean
+find_accel_by_widget (GtkAccelKey *key,
+                      GClosure    *closure,
+                      gpointer     data)
+{
+  /* We assume that closure->data points to the widget
+   * pending gtk_widget_get_accel_closures being made public
+   */
+  return data == (gpointer) closure->data;
+}
+
+static gboolean
+find_accel_by_closure (GtkAccelKey *key,
+                       GClosure    *closure,
+                       gpointer     data)
+{
+  return data == (gpointer) closure;
+}
+
+/* This function returns a string of the form A;B;C where A is
+ * the keybinding for the widget; B is the keybinding to traverse
+ * from the menubar and C is the accelerator. The items in the
+ * keybinding to traverse from the menubar are separated by ":".
+ */
+static const gchar *
+gtk_menu_item_accessible_get_keybinding (AtkAction *action,
+                                         gint       i)
+{
+  gchar *keybinding = NULL;
+  gchar *item_keybinding = NULL;
+  gchar *full_keybinding = NULL;
+  gchar *accelerator = NULL;
+  GtkWidget *item;
+  GtkWidget *temp_item;
+  GtkWidget *child;
+  GtkWidget *parent;
+
+  item = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (item == NULL)
+    return NULL;
+
+  if (i != 0)
+    return NULL;
+
+  temp_item = item;
+  while (TRUE)
+    {
+      GdkModifierType mnemonic_modifier = 0;
+      guint key_val;
+      gchar *key, *temp_keybinding;
+
+      child = gtk_bin_get_child (GTK_BIN (temp_item));
+      if (child == NULL)
+        return NULL;
+
+      parent = gtk_widget_get_parent (temp_item);
+      if (!parent)
+        /* parent can be NULL when activating a window from the panel */
+        return NULL;
+
+      if (GTK_IS_MENU_BAR (parent))
+        {
+          GtkWidget *toplevel;
+
+          toplevel = gtk_widget_get_toplevel (parent);
+          if (toplevel && GTK_IS_WINDOW (toplevel))
+            mnemonic_modifier =
+              gtk_window_get_mnemonic_modifier (GTK_WINDOW (toplevel));
+        }
+
+      if (GTK_IS_LABEL (child))
+        {
+          key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (child));
+          if (key_val != GDK_KEY_VoidSymbol)
+            {
+              key = gtk_accelerator_name (key_val, mnemonic_modifier);
+              if (full_keybinding)
+                temp_keybinding = g_strconcat (key, ":", full_keybinding, NULL);
+              else
+                temp_keybinding = g_strdup (key);
+
+              if (temp_item == item)
+                item_keybinding = g_strdup (key);
+
+              g_free (key);
+              g_free (full_keybinding);
+              full_keybinding = temp_keybinding;
+            }
+          else
+            {
+              /* No keybinding */
+              g_free (full_keybinding);
+              full_keybinding = NULL;
+              break;
+            }
+        }
+
+      /* We have reached the menu bar so we are finished */
+      if (GTK_IS_MENU_BAR (parent))
+        break;
+
+      g_return_val_if_fail (GTK_IS_MENU (parent), NULL);
+      temp_item = gtk_menu_get_attach_widget (GTK_MENU (parent));
+      if (!GTK_IS_MENU_ITEM (temp_item))
+        {
+          /* Menu is attached to something other than a menu item;
+           * probably an option menu
+           */
+          g_free (full_keybinding);
+          full_keybinding = NULL;
+          break;
+        }
+    }
+
+  parent = gtk_widget_get_parent (item);
+  if (GTK_IS_MENU (parent))
+    {
+      GtkAccelGroup *group;
+      GtkAccelKey *key;
+
+      group = gtk_menu_get_accel_group (GTK_MENU (parent));
+      if (group)
+        key = gtk_accel_group_find (group, find_accel_by_widget, item);
+      else
+        {
+          key = NULL;
+          child = gtk_bin_get_child (GTK_BIN (item));
+          if (GTK_IS_ACCEL_LABEL (child))
+            {
+              GtkAccelLabel *accel_label;
+              GClosure      *accel_closure;
+
+              accel_label = GTK_ACCEL_LABEL (child);
+              g_object_get (accel_label, "accel-closure", &accel_closure, NULL);
+              if (accel_closure)
+                {
+                  key = gtk_accel_group_find (gtk_accel_group_from_accel_closure (accel_closure),
+                                              find_accel_by_closure,
+                                              accel_closure);
+                  g_closure_unref (accel_closure);
+                }
+            }
+        }
+
+     if (key)
+       accelerator = gtk_accelerator_name (key->accel_key, key->accel_mods);
+   }
+
+  /* Concatenate the bindings */
+  if (item_keybinding || full_keybinding || accelerator)
+    {
+      gchar *temp;
+      if (item_keybinding)
+        {
+          keybinding = g_strconcat (item_keybinding, KEYBINDING_SEPARATOR, NULL);
+          g_free (item_keybinding);
+        }
+      else
+        keybinding = g_strdup (KEYBINDING_SEPARATOR);
+
+      if (full_keybinding)
+        {
+          temp = g_strconcat (keybinding, full_keybinding,
+                              KEYBINDING_SEPARATOR, NULL);
+          g_free (full_keybinding);
+        }
+      else
+        temp = g_strconcat (keybinding, KEYBINDING_SEPARATOR, NULL);
+
+      g_free (keybinding);
+      keybinding = temp;
+      if (accelerator)
+        {
+          temp = g_strconcat (keybinding, accelerator, NULL);
+          g_free (accelerator);
+          g_free (keybinding);
+          keybinding = temp;
+      }
+    }
+
+  return keybinding;
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+  iface->do_action = gtk_menu_item_accessible_do_action;
+  iface->get_n_actions = gtk_menu_item_accessible_get_n_actions;
+  iface->get_name = gtk_menu_item_accessible_action_get_name;
+  iface->get_keybinding = gtk_menu_item_accessible_get_keybinding;
+}
+
+static void
+menu_item_selection (GtkMenuItem  *item,
+                     gboolean      selected)
+{
+  AtkObject *obj, *parent;
+  gint i;
+
+  obj = gtk_widget_get_accessible (GTK_WIDGET (item));
+  atk_object_notify_state_change (obj, ATK_STATE_SELECTED, selected);
+
+  for (i = 0; i < atk_object_get_n_accessible_children (obj); i++)
+    {
+      AtkObject *child;
+      child = atk_object_ref_accessible_child (obj, i);
+      atk_object_notify_state_change (child, ATK_STATE_SHOWING, selected);
+      g_object_unref (child);
+    }
+  parent = atk_object_get_parent (obj);
+  g_signal_emit_by_name (parent, "selection-changed");
+}
+
+static gboolean
+gtk_menu_item_accessible_add_selection (AtkSelection *selection,
+                                           gint          i)
+{
+  GtkMenuShell *shell;
+  GList *kids;
+  guint length;
+  GtkWidget *widget;
+  GtkWidget *menu;
+  GtkWidget *child;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
+  if (menu == NULL)
+    return FALSE;
+
+  shell = GTK_MENU_SHELL (menu);
+  kids = gtk_container_get_children (GTK_CONTAINER (shell));
+  length = g_list_length (kids);
+  if (i < 0 || i > length)
+    {
+      g_list_free (kids);
+      return FALSE;
+    }
+
+  child = g_list_nth_data (kids, i);
+  g_list_free (kids);
+  g_return_val_if_fail (GTK_IS_MENU_ITEM (child), FALSE);
+  gtk_menu_shell_select_item (shell, GTK_WIDGET (child));
+  return TRUE;
+}
+
+static gboolean
+gtk_menu_item_accessible_clear_selection (AtkSelection *selection)
+{
+  GtkWidget *widget;
+  GtkWidget *menu;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
+  if (menu == NULL)
+    return FALSE;
+
+  gtk_menu_shell_deselect (GTK_MENU_SHELL (menu));
+
+  return TRUE;
+}
+
+static AtkObject *
+gtk_menu_item_accessible_ref_selection (AtkSelection *selection,
+                                           gint          i)
+{
+  GtkMenuShell *shell;
+  AtkObject *obj;
+  GtkWidget *widget;
+  GtkWidget *menu;
+  GtkWidget *item;
+
+  if (i != 0)
+    return NULL;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return NULL;
+
+  menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
+  if (menu == NULL)
+    return NULL;
+
+  shell = GTK_MENU_SHELL (menu);
+
+  item = gtk_menu_shell_get_selected_item (shell);
+  if (item != NULL)
+    {
+      obj = gtk_widget_get_accessible (item);
+      g_object_ref (obj);
+      return obj;
+    }
+
+  return NULL;
+}
+
+static gint
+gtk_menu_item_accessible_get_selection_count (AtkSelection *selection)
+{
+  GtkMenuShell *shell;
+  GtkWidget *widget;
+  GtkWidget *menu;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return 0;
+
+  menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
+  if (menu == NULL)
+    return 0;
+
+  shell = GTK_MENU_SHELL (menu);
+
+  if (gtk_menu_shell_get_selected_item (shell) != NULL)
+    return 1;
+
+  return 0;
+}
+
+static gboolean
+gtk_menu_item_accessible_is_child_selected (AtkSelection *selection,
+                                               gint          i)
+{
+  GtkMenuShell *shell;
+  gint j;
+  GtkWidget *widget;
+  GtkWidget *menu;
+  GtkWidget *item;
+  GList *kids;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
+  if (menu == NULL)
+    return FALSE;
+
+  shell = GTK_MENU_SHELL (menu);
+
+  item = gtk_menu_shell_get_selected_item (shell);
+  if (item == NULL)
+    return FALSE;
+
+  kids = gtk_container_get_children (GTK_CONTAINER (shell));
+  j = g_list_index (kids, item);
+  g_list_free (kids);
+
+  return j==i;
+}
+
+static gboolean
+gtk_menu_item_accessible_remove_selection (AtkSelection *selection,
+                                              gint          i)
+{
+  GtkMenuShell *shell;
+  GtkWidget *widget;
+  GtkWidget *menu;
+  GtkWidget *item;
+
+  if (i != 0)
+    return FALSE;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  menu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
+  if (menu == NULL)
+    return FALSE;
+
+  shell = GTK_MENU_SHELL (menu);
+
+  item = gtk_menu_shell_get_selected_item (shell);
+  if (item && gtk_menu_item_get_submenu (GTK_MENU_ITEM (item)))
+    gtk_menu_shell_deselect (shell);
+
+  return TRUE;
+}
+
+static void
+atk_selection_interface_init (AtkSelectionIface *iface)
+{
+  iface->add_selection = gtk_menu_item_accessible_add_selection;
+  iface->clear_selection = gtk_menu_item_accessible_clear_selection;
+  iface->ref_selection = gtk_menu_item_accessible_ref_selection;
+  iface->get_selection_count = gtk_menu_item_accessible_get_selection_count;
+  iface->is_child_selected = gtk_menu_item_accessible_is_child_selected;
+  iface->remove_selection = gtk_menu_item_accessible_remove_selection;
+}
+
+static gint
+menu_item_add_gtk (GtkContainer *container,
+                   GtkWidget    *widget)
+{
+  GtkWidget *parent_widget;
+  AtkObject *atk_parent;
+  AtkObject *atk_child;
+  GtkContainerAccessible *container_accessible;
+  gint index;
+
+  g_return_val_if_fail (GTK_IS_MENU (container), 1);
+
+  parent_widget = gtk_menu_get_attach_widget (GTK_MENU (container));
+  if (GTK_IS_MENU_ITEM (parent_widget))
+    {
+      atk_parent = gtk_widget_get_accessible (parent_widget);
+      atk_child = gtk_widget_get_accessible (widget);
+
+      g_object_notify (G_OBJECT (atk_child), "accessible-parent");
+      container_accessible = GTK_CONTAINER_ACCESSIBLE (atk_parent);
+      g_list_free (container_accessible->children);
+      container_accessible->children = gtk_container_get_children (container);
+      index = g_list_index (container_accessible->children, widget);
+      g_signal_emit_by_name (atk_parent, "children-changed::add",
+                             index, atk_child, NULL);
+    }
+  return 1;
+}
+
+static gint
+menu_item_remove_gtk (GtkContainer *container,
+                      GtkWidget    *widget)
+{
+  GtkWidget *parent_widget;
+  AtkObject *atk_parent;
+  AtkObject *atk_child;
+  GtkContainerAccessible *container_accessible;
+  gint index;
+  gint list_length;
+
+  g_return_val_if_fail (GTK_IS_MENU (container), 1);
+
+  parent_widget = gtk_menu_get_attach_widget (GTK_MENU (container));
+  if (GTK_IS_MENU_ITEM (parent_widget))
+    {
+      atk_parent = gtk_widget_get_accessible (parent_widget);
+      atk_child = gtk_widget_get_accessible (widget);
+
+      g_object_notify (G_OBJECT (atk_child), "accessible-parent");
+
+      container_accessible = GTK_CONTAINER_ACCESSIBLE (atk_parent);
+      index = g_list_index (container_accessible->children, widget);
+      list_length = g_list_length (container_accessible->children);
+      g_list_free (container_accessible->children);
+      container_accessible->children = gtk_container_get_children (container);
+      if (index >= 0 && index <= list_length)
+        g_signal_emit_by_name (atk_parent, "children-changed::remove",
+                               index, atk_child, NULL);
+    }
+  return 1;
+}
+static void
+menu_item_select (GtkMenuItem *item)
+{
+  menu_item_selection (item, TRUE);
+}
+
+static void
+menu_item_deselect (GtkMenuItem *item)
+{
+  menu_item_selection (item, FALSE);
+}
diff --git a/gtk/a11y/gtkmenuitemaccessible.h b/gtk/a11y/gtkmenuitemaccessible.h
new file mode 100644 (file)
index 0000000..8c2f5d3
--- /dev/null
@@ -0,0 +1,53 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_MENU_ITEM_ACCESSIBLE_H__
+#define __GTK_MENU_ITEM_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_MENU_ITEM_ACCESSIBLE                     (_gtk_menu_item_accessible_get_type ())
+#define GTK_MENU_ITEM_ACCESSIBLE(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_MENU_ITEM_ACCESSIBLE, GtkMenuItemAccessible))
+#define GTK_MENU_ITEM_ACCESSIBLE_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MENU_ITEM_ACCESSIBLE, GtkMenuItemAccessibleClass))
+#define GTK_IS_MENU_ITEM_ACCESSIBLE(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_MENU_ITEM_ACCESSIBLE))
+#define GTK_IS_MENU_ITEM_ACCESSIBLE_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MENU_ITEM_ACCESSIBLE))
+#define GTK_MENU_ITEM_ACCESSIBLE_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MENU_ITEM_ACCESSIBLE, GtkMenuItemAccessibleClass))
+
+typedef struct _GtkMenuItemAccessible      GtkMenuItemAccessible;
+typedef struct _GtkMenuItemAccessibleClass GtkMenuItemAccessibleClass;
+
+struct _GtkMenuItemAccessible
+{
+  GtkContainerAccessible parent;
+
+  gchar *text;
+};
+
+struct _GtkMenuItemAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_menu_item_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_MENU_ITEM_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkmenushellaccessible.c b/gtk/a11y/gtkmenushellaccessible.c
new file mode 100644 (file)
index 0000000..3bebe79
--- /dev/null
@@ -0,0 +1,201 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkmenushellaccessible.h"
+
+
+static void atk_selection_interface_init (AtkSelectionIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkMenuShellAccessible, _gtk_menu_shell_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
+
+static void
+gtk_menu_shell_accessible_initialize (AtkObject *accessible,
+                                      gpointer   data)
+{
+  ATK_OBJECT_CLASS (_gtk_menu_shell_accessible_parent_class)->initialize (accessible, data);
+
+  accessible->role = ATK_ROLE_UNKNOWN;
+}
+
+static void
+_gtk_menu_shell_accessible_class_init (GtkMenuShellAccessibleClass *klass)
+{
+  AtkObjectClass *atk_object_class = ATK_OBJECT_CLASS (klass);
+
+  atk_object_class->initialize = gtk_menu_shell_accessible_initialize;
+}
+
+static void
+_gtk_menu_shell_accessible_init (GtkMenuShellAccessible *menu_shell)
+{
+}
+
+static gboolean
+gtk_menu_shell_accessible_add_selection (AtkSelection *selection,
+                                         gint          i)
+{
+  GList *kids;
+  GtkWidget *item;
+  guint length;
+  GtkWidget *widget;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  kids = gtk_container_get_children (GTK_CONTAINER (widget));
+  length = g_list_length (kids);
+  if (i < 0 || i > length)
+    {
+      g_list_free (kids);
+      return FALSE;
+    }
+
+  item = g_list_nth_data (kids, i);
+  g_list_free (kids);
+  g_return_val_if_fail (GTK_IS_MENU_ITEM (item), FALSE);
+  gtk_menu_shell_select_item (GTK_MENU_SHELL (widget), item);
+  return TRUE;
+}
+
+static gboolean
+gtk_menu_shell_accessible_clear_selection (AtkSelection *selection)
+{
+  GtkMenuShell *shell;
+  GtkWidget *widget;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  shell = GTK_MENU_SHELL (widget);
+
+  gtk_menu_shell_deselect (shell);
+  return TRUE;
+}
+
+static AtkObject *
+gtk_menu_shell_accessible_ref_selection (AtkSelection *selection,
+                                         gint          i)
+{
+  GtkMenuShell *shell;
+  AtkObject *obj;
+  GtkWidget *widget;
+  GtkWidget *item;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return NULL;
+
+  if (i != 0)
+    return NULL;
+
+  shell = GTK_MENU_SHELL (widget);
+
+  item = gtk_menu_shell_get_selected_item (shell);
+  if (item != NULL)
+    {
+      obj = gtk_widget_get_accessible (item);
+      g_object_ref (obj);
+      return obj;
+    }
+  return NULL;
+}
+
+static gint
+gtk_menu_shell_accessible_get_selection_count (AtkSelection *selection)
+{
+  GtkMenuShell *shell;
+  GtkWidget *widget;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return 0;
+
+  shell = GTK_MENU_SHELL (widget);
+
+  if (gtk_menu_shell_get_selected_item (shell) != NULL)
+    return 1;
+
+  return 0;
+}
+
+static gboolean
+gtk_menu_shell_accessible_is_child_selected (AtkSelection *selection,
+                                             gint          i)
+{
+  GtkMenuShell *shell;
+  GList *kids;
+  gint j;
+  GtkWidget *widget;
+  GtkWidget *item;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  shell = GTK_MENU_SHELL (widget);
+  item = gtk_menu_shell_get_selected_item (shell);
+  if (item == NULL)
+    return FALSE;
+
+  kids = gtk_container_get_children (GTK_CONTAINER (shell));
+  j = g_list_index (kids, item);
+  g_list_free (kids);
+
+  return j==i;
+}
+
+static gboolean
+gtk_menu_shell_accessible_remove_selection (AtkSelection *selection,
+                                            gint          i)
+{
+  GtkMenuShell *shell;
+  GtkWidget *widget;
+  GtkWidget *item;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  if (i != 0)
+    return FALSE;
+
+  shell = GTK_MENU_SHELL (widget);
+
+  item = gtk_menu_shell_get_selected_item (shell);
+  if (item && gtk_menu_item_get_submenu (GTK_MENU_ITEM (item)))
+    gtk_menu_shell_deselect (shell);
+  return TRUE;
+}
+
+static void
+atk_selection_interface_init (AtkSelectionIface *iface)
+{
+  iface->add_selection = gtk_menu_shell_accessible_add_selection;
+  iface->clear_selection = gtk_menu_shell_accessible_clear_selection;
+  iface->ref_selection = gtk_menu_shell_accessible_ref_selection;
+  iface->get_selection_count = gtk_menu_shell_accessible_get_selection_count;
+  iface->is_child_selected = gtk_menu_shell_accessible_is_child_selected;
+  iface->remove_selection = gtk_menu_shell_accessible_remove_selection;
+}
diff --git a/gtk/a11y/gtkmenushellaccessible.h b/gtk/a11y/gtkmenushellaccessible.h
new file mode 100644 (file)
index 0000000..5f14be6
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_MENU_SHELL_ACCESSIBLE_H__
+#define __GTK_MENU_SHELL_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_MENU_SHELL_ACCESSIBLE                    (_gtk_menu_shell_accessible_get_type ())
+#define GTK_MENU_SHELL_ACCESSIBLE(obj)                    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_MENU_SHELL_ACCESSIBLE, GtkMenuShellAccessible))
+#define GTK_MENU_SHELL_ACCESSIBLE_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_MENU_SHELL_ACCESSIBLE, GtkMenuShellAccessibleClass))
+#define GTK_IS_MENU_SHELL_ACCESSIBLE(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_MENU_SHELL_ACCESSIBLE))
+#define GTK_IS_MENU_SHELL_ACCESSIBLE_CLASS(klass)         (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_MENU_SHELL_ACCESSIBLE))
+#define GTK_MENU_SHELL_ACCESSIBLE_GET_CLASS(obj)          (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_MENU_SHELL_ACCESSIBLE, GtkMenuShellAccessibleClass))
+
+typedef struct _GtkMenuShellAccessible      GtkMenuShellAccessible;
+typedef struct _GtkMenuShellAccessibleClass GtkMenuShellAccessibleClass;
+
+struct _GtkMenuShellAccessible
+{
+  GtkContainerAccessible parent;
+};
+
+struct _GtkMenuShellAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_menu_shell_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_MENU_SHELL_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtknotebookaccessible.c b/gtk/a11y/gtknotebookaccessible.c
new file mode 100644 (file)
index 0000000..c4e5b26
--- /dev/null
@@ -0,0 +1,413 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include "gtknotebookaccessible.h"
+#include "gtknotebookpageaccessible.h"
+
+
+static void atk_selection_interface_init (AtkSelectionIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkNotebookAccessible, _gtk_notebook_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
+
+static gboolean
+check_focus_tab (gpointer data)
+{
+  GtkWidget *widget;
+  AtkObject *atk_obj;
+  gint focus_page_num, old_focus_page_num;
+  GtkNotebookAccessible *accessible;
+  GtkNotebook *notebook;
+
+  atk_obj = ATK_OBJECT (data);
+  accessible = GTK_NOTEBOOK_ACCESSIBLE (atk_obj);
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_obj));
+  notebook = GTK_NOTEBOOK (widget);
+
+  accessible->idle_focus_id = 0;
+
+  focus_page_num = gtk_notebook_get_current_page (notebook);
+  if (focus_page_num == -1)
+    return FALSE;
+
+  old_focus_page_num = accessible->focus_tab_page;
+  accessible->focus_tab_page = focus_page_num;
+  if (old_focus_page_num != focus_page_num)
+    {
+      AtkObject *obj;
+
+      obj = atk_object_ref_accessible_child (atk_obj, focus_page_num);
+      atk_focus_tracker_notify (obj);
+      g_object_unref (obj);
+    }
+
+  return FALSE;
+}
+
+static gboolean
+focus_cb (GtkWidget        *widget,
+          GtkDirectionType  type)
+{
+  AtkObject *atk_obj = gtk_widget_get_accessible (widget);
+  GtkNotebookAccessible *accessible = GTK_NOTEBOOK_ACCESSIBLE (atk_obj);
+
+  switch (type)
+    {
+    case GTK_DIR_LEFT:
+    case GTK_DIR_RIGHT:
+      if (accessible->idle_focus_id == 0)
+        accessible->idle_focus_id = gdk_threads_add_idle (check_focus_tab, atk_obj);
+      break;
+    default:
+      break;
+    }
+  return FALSE;
+}
+
+static void
+create_notebook_page_accessible (GtkNotebookAccessible *accessible,
+                                 GtkNotebook           *notebook,
+                                 GtkWidget             *child,
+                                 gint                   page_num)
+{
+  AtkObject *obj;
+
+  obj = _gtk_notebook_page_accessible_new (accessible, child);
+  g_hash_table_insert (accessible->pages, child, obj);
+  atk_object_set_parent (obj, ATK_OBJECT (accessible));
+  g_signal_emit_by_name (accessible, "children-changed::add", page_num, obj, NULL);
+}
+
+static void
+page_added_cb (GtkNotebook *notebook,
+               GtkWidget   *child,
+               guint        page_num,
+               gpointer     data)
+{
+  AtkObject *atk_obj;
+  GtkNotebookAccessible *accessible;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (notebook));
+  accessible = GTK_NOTEBOOK_ACCESSIBLE (atk_obj);
+  create_notebook_page_accessible (accessible, notebook, child, page_num);
+}
+
+static void
+page_removed_cb (GtkNotebook *notebook,
+                 GtkWidget   *widget,
+                 guint        page_num,
+                 gpointer     data)
+{
+  GtkNotebookAccessible *accessible;
+  AtkObject *obj;
+
+  accessible = GTK_NOTEBOOK_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (notebook)));
+
+  obj = g_hash_table_lookup (accessible->pages, widget);
+  g_return_if_fail (obj);
+  g_signal_emit_by_name (accessible, "children-changed::remove",
+                         page_num, obj, NULL);
+  _gtk_notebook_page_accessible_invalidate (GTK_NOTEBOOK_PAGE_ACCESSIBLE (obj));
+  g_hash_table_remove (accessible->pages, widget);
+}
+
+
+static void
+accessible_destroyed (gpointer data)
+{
+  GtkNotebookAccessible *accessible = GTK_NOTEBOOK_ACCESSIBLE (data);
+
+  if (accessible->idle_focus_id)
+    {
+      g_source_remove (accessible->idle_focus_id);
+      accessible->idle_focus_id = 0;
+    }
+}
+static void
+gtk_notebook_accessible_initialize (AtkObject *obj,
+                                    gpointer   data)
+{
+  GtkNotebookAccessible *accessible;
+  GtkNotebook *notebook;
+  gint i;
+
+  ATK_OBJECT_CLASS (_gtk_notebook_accessible_parent_class)->initialize (obj, data);
+
+  accessible = GTK_NOTEBOOK_ACCESSIBLE (obj);
+  notebook = GTK_NOTEBOOK (data);
+  for (i = 0; i < gtk_notebook_get_n_pages (notebook); i++)
+    {
+      create_notebook_page_accessible (accessible,
+                                       notebook,
+                                       gtk_notebook_get_nth_page (notebook, i),
+                                       i);
+    }
+  accessible->selected_page = gtk_notebook_get_current_page (notebook);
+
+  g_signal_connect (notebook, "focus",
+                    G_CALLBACK (focus_cb), NULL);
+  g_signal_connect (notebook, "page-added",
+                    G_CALLBACK (page_added_cb), NULL);
+  g_signal_connect (notebook, "page-removed",
+                    G_CALLBACK (page_removed_cb), NULL);
+
+  g_object_weak_ref (G_OBJECT (notebook), (GWeakNotify)accessible_destroyed, obj);
+
+  obj->role = ATK_ROLE_PAGE_TAB_LIST;
+}
+
+static void
+gtk_notebook_accessible_finalize (GObject *object)
+{
+  GtkNotebookAccessible *accessible = GTK_NOTEBOOK_ACCESSIBLE (object);
+
+  g_hash_table_destroy (accessible->pages);
+
+  if (accessible->idle_focus_id)
+    g_source_remove (accessible->idle_focus_id);
+
+  G_OBJECT_CLASS (_gtk_notebook_accessible_parent_class)->finalize (object);
+}
+
+static AtkObject *
+gtk_notebook_accessible_ref_child (AtkObject *obj,
+                                   gint       i)
+{
+  AtkObject *child;
+  GtkNotebookAccessible *accessible;
+  GtkNotebook *notebook;
+  GtkWidget *widget;
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  accessible = GTK_NOTEBOOK_ACCESSIBLE (obj);
+  notebook = GTK_NOTEBOOK (widget);
+
+  child = g_hash_table_lookup (accessible->pages,
+                               gtk_notebook_get_nth_page (notebook, i));
+  /* can return NULL when i >= n_children */
+
+  if (child)
+    g_object_ref (child);
+
+  return child;
+}
+
+static void
+gtk_notebook_accessible_notify_gtk (GObject    *obj,
+                                    GParamSpec *pspec)
+{
+  GtkWidget *widget;
+  AtkObject* atk_obj;
+
+  widget = GTK_WIDGET (obj);
+  atk_obj = gtk_widget_get_accessible (widget);
+
+  if (strcmp (pspec->name, "page") == 0)
+    {
+      gint page_num, old_page_num;
+      gint focus_page_num = 0;
+      gint old_focus_page_num;
+      GtkNotebookAccessible *accessible;
+      GtkNotebook *notebook;
+
+      accessible = GTK_NOTEBOOK_ACCESSIBLE (atk_obj);
+      notebook = GTK_NOTEBOOK (widget);
+
+      /* Notify SELECTED state change for old and new page */
+      old_page_num = accessible->selected_page;
+      page_num = gtk_notebook_get_current_page (notebook);
+      accessible->selected_page = page_num;
+      accessible->focus_tab_page = page_num;
+      old_focus_page_num = accessible->focus_tab_page;
+
+      if (page_num != old_page_num)
+        {
+          AtkObject *child;
+
+          if (old_page_num != -1)
+            {
+              child = gtk_notebook_accessible_ref_child (atk_obj, old_page_num);
+              if (child)
+                {
+                  atk_object_notify_state_change (child, ATK_STATE_SELECTED, FALSE);
+                  g_object_unref (child);
+                }
+            }
+          child = gtk_notebook_accessible_ref_child (atk_obj, page_num);
+          if (child)
+            {
+              atk_object_notify_state_change (child, ATK_STATE_SELECTED, TRUE);
+              g_object_unref (child);
+              /*
+               * The page which is being displayed has changed but there is
+               * no need to tell the focus tracker as the focus page will also
+               * change or a widget in the page will receive focus if the
+               * Notebook does not have tabs.
+               */
+            }
+          g_signal_emit_by_name (atk_obj, "selection-changed");
+          g_signal_emit_by_name (atk_obj, "visible-data-changed");
+        }
+      if (gtk_notebook_get_show_tabs (notebook) &&
+         (focus_page_num != old_focus_page_num))
+        {
+          if (accessible->idle_focus_id)
+            g_source_remove (accessible->idle_focus_id);
+          accessible->idle_focus_id = gdk_threads_add_idle (check_focus_tab, atk_obj);
+        }
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_notebook_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+/*
+ * GtkNotebook only supports the selection of one page at a time.
+ * Selecting a page unselects any previous selection, so this
+ * changes the current selection instead of adding to it.
+ */
+static gboolean
+gtk_notebook_accessible_add_selection (AtkSelection *selection,
+                                       gint          i)
+{
+  GtkNotebook *notebook;
+  GtkWidget *widget;
+
+  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  notebook = GTK_NOTEBOOK (widget);
+  gtk_notebook_set_current_page (notebook, i);
+  return TRUE;
+}
+
+static void
+_gtk_notebook_accessible_class_init (GtkNotebookAccessibleClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+  GtkContainerAccessibleClass *container_class = (GtkContainerAccessibleClass*)klass;
+
+
+  gobject_class->finalize = gtk_notebook_accessible_finalize;
+
+  class->ref_child = gtk_notebook_accessible_ref_child;
+  class->initialize = gtk_notebook_accessible_initialize;
+
+  widget_class->notify_gtk = gtk_notebook_accessible_notify_gtk;
+
+  /* we listen to page-added/-removed, so we don't care about these */
+  container_class->add_gtk = NULL;
+  container_class->remove_gtk = NULL;
+}
+
+static void
+_gtk_notebook_accessible_init (GtkNotebookAccessible *notebook)
+{
+  notebook->pages = g_hash_table_new_full (g_direct_hash,
+                                           g_direct_equal,
+                                           NULL,
+                                           g_object_unref);
+  notebook->selected_page = -1;
+  notebook->focus_tab_page = -1;
+  notebook->idle_focus_id = 0;
+}
+
+static AtkObject *
+gtk_notebook_accessible_ref_selection (AtkSelection *selection,
+                                       gint          i)
+{
+  AtkObject *accessible;
+  GtkWidget *widget;
+  GtkNotebook *notebook;
+  gint pagenum;
+
+  if (i != 0)
+    return NULL;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return NULL;
+
+  notebook = GTK_NOTEBOOK (widget);
+  pagenum = gtk_notebook_get_current_page (notebook);
+  if (pagenum == -1)
+    return NULL;
+  accessible = gtk_notebook_accessible_ref_child (ATK_OBJECT (selection), pagenum);
+
+  return accessible;
+}
+
+/* Always return 1 because there can only be one page
+ * selected at any time
+ */
+static gint
+gtk_notebook_accessible_get_selection_count (AtkSelection *selection)
+{
+  GtkWidget *widget;
+  GtkNotebook *notebook;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return 0;
+
+  notebook = GTK_NOTEBOOK (widget);
+  if (notebook == NULL || gtk_notebook_get_current_page (notebook) == -1)
+    return 0;
+
+  return 1;
+}
+
+static gboolean
+gtk_notebook_accessible_is_child_selected (AtkSelection *selection,
+                                           gint          i)
+{
+  GtkWidget *widget;
+  GtkNotebook *notebook;
+  gint pagenumber;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  notebook = GTK_NOTEBOOK (widget);
+  pagenumber = gtk_notebook_get_current_page(notebook);
+
+  if (pagenumber == i)
+    return TRUE;
+
+  return FALSE;
+}
+
+static void
+atk_selection_interface_init (AtkSelectionIface *iface)
+{
+  iface->add_selection = gtk_notebook_accessible_add_selection;
+  iface->ref_selection = gtk_notebook_accessible_ref_selection;
+  iface->get_selection_count = gtk_notebook_accessible_get_selection_count;
+  iface->is_child_selected = gtk_notebook_accessible_is_child_selected;
+}
diff --git a/gtk/a11y/gtknotebookaccessible.h b/gtk/a11y/gtknotebookaccessible.h
new file mode 100644 (file)
index 0000000..97c4cfc
--- /dev/null
@@ -0,0 +1,62 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_NOTEBOOK_ACCESSIBLE_H__
+#define __GTK_NOTEBOOK_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_NOTEBOOK_ACCESSIBLE                   (_gtk_notebook_accessible_get_type ())
+#define GTK_NOTEBOOK_ACCESSIBLE(obj)                   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_NOTEBOOK_ACCESSIBLE, GtkNotebookAccessible))
+#define GTK_NOTEBOOK_ACCESSIBLE_CLASS(klass)           (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_NOTEBOOK_ACCESSIBLE, GtkNotebookAccessibleClass))
+#define GTK_IS_NOTEBOOK_ACCESSIBLE(obj)                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_NOTEBOOK_ACCESSIBLE))
+#define GTK_IS_NOTEBOOK_ACCESSIBLE_CLASS(klass)        (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_NOTEBOOK_ACCESSIBLE))
+#define GTK_NOTEBOOK_ACCESSIBLE_GET_CLASS(obj)         (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_NOTEBOOK_ACCESSIBLE, GtkNotebookAccessibleClass))
+
+typedef struct _GtkNotebookAccessible      GtkNotebookAccessible;
+typedef struct _GtkNotebookAccessibleClass GtkNotebookAccessibleClass;
+
+struct _GtkNotebookAccessible
+{
+  GtkContainerAccessible parent;
+
+  /*
+   * page_cache maintains a list of pre-ref'd Notebook Pages.
+   * This cache is queried by gtk_notebook_accessible_ref_child().
+   * If the page is found in the list then a new page does not
+   * need to be created
+   */
+  GHashTable * pages;
+  gint         selected_page;
+  gint         focus_tab_page;
+  guint        idle_focus_id;
+};
+
+struct _GtkNotebookAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_notebook_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_NOTEBOOK_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtknotebookpageaccessible.c b/gtk/a11y/gtknotebookpageaccessible.c
new file mode 100644 (file)
index 0000000..1938504
--- /dev/null
@@ -0,0 +1,321 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include "gtknotebookpageaccessible.h"
+
+
+static void atk_component_interface_init (AtkComponentIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkNotebookPageAccessible, _gtk_notebook_page_accessible, ATK_TYPE_OBJECT,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init))
+
+
+static GtkWidget *
+find_label_child (GtkContainer *container)
+{
+  GList *children, *tmp_list;
+  GtkWidget *child;
+
+  children = gtk_container_get_children (container);
+
+  child = NULL;
+  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next)
+    {
+      if (GTK_IS_LABEL (tmp_list->data))
+        {
+          child = GTK_WIDGET (tmp_list->data);
+          break;
+        }
+      else if (GTK_IS_CONTAINER (tmp_list->data))
+        {
+          child = find_label_child (GTK_CONTAINER (tmp_list->data));
+          if (child)
+            break;
+        }
+    }
+  g_list_free (children);
+
+  return child;
+}
+
+static GtkWidget *
+get_label_from_notebook_page (GtkNotebookPageAccessible *page)
+{
+  GtkWidget *child;
+  GtkNotebook *notebook;
+
+  notebook = GTK_NOTEBOOK (gtk_accessible_get_widget (page->notebook));
+  if (!notebook)
+    return NULL;
+
+  if (!gtk_notebook_get_show_tabs (notebook))
+    return NULL;
+
+  child = gtk_notebook_get_tab_label (notebook, page->child);
+
+  if (GTK_IS_LABEL (child))
+    return child;
+
+  if (GTK_IS_CONTAINER (child))
+    child = find_label_child (GTK_CONTAINER (child));
+
+  return child;
+}
+
+static const gchar *
+gtk_notebook_page_accessible_get_name (AtkObject *accessible)
+{
+  GtkWidget *label;
+
+  if (accessible->name != NULL)
+    return accessible->name;
+
+  label = get_label_from_notebook_page (GTK_NOTEBOOK_PAGE_ACCESSIBLE (accessible));
+  if (GTK_IS_LABEL (label))
+    return gtk_label_get_text (GTK_LABEL (label));
+
+  return NULL;
+}
+
+static AtkObject *
+gtk_notebook_page_accessible_get_parent (AtkObject *accessible)
+{
+  GtkNotebookPageAccessible *page;
+
+  page = GTK_NOTEBOOK_PAGE_ACCESSIBLE (accessible);
+
+  return ATK_OBJECT (page->notebook);
+}
+
+static gint
+gtk_notebook_page_accessible_get_n_children (AtkObject *accessible)
+{
+  return 1;
+}
+
+static AtkObject *
+gtk_notebook_page_accessible_ref_child (AtkObject *accessible,
+                                        gint       i)
+{
+  AtkObject *child_obj;
+  GtkNotebookPageAccessible *page = NULL;
+
+  if (i != 0)
+    return NULL;
+
+  page = GTK_NOTEBOOK_PAGE_ACCESSIBLE (accessible);
+  if (!page->child)
+    return NULL;
+
+  child_obj = gtk_widget_get_accessible (page->child);
+  g_object_ref (child_obj);
+
+  return child_obj;
+}
+
+static AtkStateSet *
+gtk_notebook_page_accessible_ref_state_set (AtkObject *accessible)
+{
+  AtkStateSet *state_set, *label_state_set, *merged_state_set;
+  AtkObject *atk_label;
+  GtkWidget *label;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_notebook_page_accessible_parent_class)->ref_state_set (accessible);
+
+  label = get_label_from_notebook_page (GTK_NOTEBOOK_PAGE_ACCESSIBLE (accessible));
+  if (label)
+    {
+      atk_label = gtk_widget_get_accessible (label);
+      label_state_set = atk_object_ref_state_set (atk_label);
+      merged_state_set = atk_state_set_or_sets (state_set, label_state_set);
+      g_object_unref (label_state_set);
+      g_object_unref (state_set);
+    }
+  else
+    {
+      AtkObject *child;
+
+      child = atk_object_ref_accessible_child (accessible, 0);
+      if (!child)
+        return state_set;
+
+      merged_state_set = state_set;
+      state_set = atk_object_ref_state_set (child);
+      if (atk_state_set_contains_state (state_set, ATK_STATE_VISIBLE))
+        {
+          atk_state_set_add_state (merged_state_set, ATK_STATE_VISIBLE);
+          if (atk_state_set_contains_state (state_set, ATK_STATE_ENABLED))
+              atk_state_set_add_state (merged_state_set, ATK_STATE_ENABLED);
+          if (atk_state_set_contains_state (state_set, ATK_STATE_SHOWING))
+              atk_state_set_add_state (merged_state_set, ATK_STATE_SHOWING);
+
+        }
+      g_object_unref (state_set);
+      g_object_unref (child);
+    }
+  return merged_state_set;
+}
+
+static gint
+gtk_notebook_page_accessible_get_index_in_parent (AtkObject *accessible)
+{
+  GtkNotebookPageAccessible *page;
+
+  page = GTK_NOTEBOOK_PAGE_ACCESSIBLE (accessible);
+  if (!page->child)
+    return -1;
+
+  return gtk_notebook_page_num (GTK_NOTEBOOK (gtk_accessible_get_widget (page->notebook)),
+                                page->child);
+}
+
+static void
+_gtk_notebook_page_accessible_class_init (GtkNotebookPageAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+  class->get_name = gtk_notebook_page_accessible_get_name;
+  class->get_parent = gtk_notebook_page_accessible_get_parent;
+  class->get_n_children = gtk_notebook_page_accessible_get_n_children;
+  class->ref_child = gtk_notebook_page_accessible_ref_child;
+  class->ref_state_set = gtk_notebook_page_accessible_ref_state_set;
+  class->get_index_in_parent = gtk_notebook_page_accessible_get_index_in_parent;
+}
+
+static void
+_gtk_notebook_page_accessible_init (GtkNotebookPageAccessible *page)
+{
+}
+
+static void
+notify_tab_label (GObject    *object,
+                  GParamSpec *pspec,
+                  AtkObject  *atk_obj)
+{
+  if (atk_obj->name == NULL)
+    g_object_notify (G_OBJECT (atk_obj), "accessible-name");
+  g_signal_emit_by_name (atk_obj, "visible-data-changed");
+}
+
+AtkObject *
+_gtk_notebook_page_accessible_new (GtkNotebookAccessible *notebook,
+                                   GtkWidget             *child)
+{
+  GObject *object;
+  AtkObject *atk_object;
+  GtkNotebookPageAccessible *page;
+
+  g_return_val_if_fail (GTK_IS_NOTEBOOK_ACCESSIBLE (notebook), NULL);
+  g_return_val_if_fail (GTK_WIDGET (child), NULL);
+
+  object = g_object_new (GTK_TYPE_NOTEBOOK_PAGE_ACCESSIBLE, NULL);
+
+  page = GTK_NOTEBOOK_PAGE_ACCESSIBLE (object);
+  page->notebook = GTK_ACCESSIBLE (notebook);
+  page->child = child;
+
+  atk_object = ATK_OBJECT (page);
+  atk_object->role = ATK_ROLE_PAGE_TAB;
+  atk_object->layer = ATK_LAYER_WIDGET;
+
+  atk_object_set_parent (gtk_widget_get_accessible (child), atk_object);
+
+  g_signal_connect (gtk_accessible_get_widget (page->notebook),
+                    "child-notify::tab-label",
+                    G_CALLBACK (notify_tab_label), page);
+
+  return atk_object;
+}
+
+void
+_gtk_notebook_page_accessible_invalidate (GtkNotebookPageAccessible *page)
+{
+  AtkObject *obj = ATK_OBJECT (page);
+  GtkWidget *notebook;
+
+  notebook = gtk_accessible_get_widget (page->notebook);
+  if (notebook)
+    g_signal_handlers_disconnect_by_func (notebook, notify_tab_label, page);
+
+  atk_object_notify_state_change (obj, ATK_STATE_DEFUNCT, TRUE);
+  atk_object_set_parent (obj, NULL);
+  page->notebook = NULL;
+  atk_object_set_parent (gtk_widget_get_accessible (page->child), NULL);
+  page->child = NULL;
+}
+
+static AtkObject*
+gtk_notebook_page_accessible_ref_accessible_at_point (AtkComponent *component,
+                                                      gint          x,
+                                                      gint          y,
+                                                      AtkCoordType  coord_type)
+{
+  /* There is only one child so we return it */
+  AtkObject* child;
+
+  child = atk_object_ref_accessible_child (ATK_OBJECT (component), 0);
+
+  return child;
+}
+
+static void
+gtk_notebook_page_accessible_get_extents (AtkComponent *component,
+                                          gint         *x,
+                                          gint         *y,
+                                          gint         *width,
+                                          gint         *height,
+                                          AtkCoordType  coord_type)
+{
+  GtkWidget *label;
+  AtkObject *atk_label;
+
+  label = get_label_from_notebook_page (GTK_NOTEBOOK_PAGE_ACCESSIBLE (component));
+  if (!label)
+    {
+      AtkObject *child;
+
+      *width = 0;
+      *height = 0;
+
+      child = atk_object_ref_accessible_child (ATK_OBJECT (component), 0);
+      if (!child)
+        return;
+
+      atk_component_get_position (ATK_COMPONENT (child), x, y, coord_type);
+      g_object_unref (child);
+    }
+  else
+    {
+      atk_label = gtk_widget_get_accessible (label);
+      atk_component_get_extents (ATK_COMPONENT (atk_label),
+                                 x, y, width, height, coord_type);
+    }
+}
+
+static void
+atk_component_interface_init (AtkComponentIface *iface)
+{
+  /* We use the default implementations for contains, get_position, get_size */
+  iface->ref_accessible_at_point = gtk_notebook_page_accessible_ref_accessible_at_point;
+  iface->get_extents = gtk_notebook_page_accessible_get_extents;
+}
diff --git a/gtk/a11y/gtknotebookpageaccessible.h b/gtk/a11y/gtknotebookpageaccessible.h
new file mode 100644 (file)
index 0000000..c2de93c
--- /dev/null
@@ -0,0 +1,59 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_NOTEBOOK_PAGE_ACCESSIBLE_H__
+#define __GTK_NOTEBOOK_PAGE_ACCESSIBLE_H__
+
+#include "gtknotebookaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_NOTEBOOK_PAGE_ACCESSIBLE            (_gtk_notebook_page_accessible_get_type ())
+#define GTK_NOTEBOOK_PAGE_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj),GTK_TYPE_NOTEBOOK_PAGE_ACCESSIBLE, GtkNotebookPageAccessible))
+#define GTK_NOTEBOOK_PAGE_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_NOTEBOOK_PAGE_ACCESSIBLE, GtkNotebookPageAccessibleClass))
+#define GTK_IS_NOTEBOOK_PAGE_ACCESSIBLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_NOTEBOOK_PAGE_ACCESSIBLE))
+#define GTK_IS_NOTEBOOK_PAGE_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_NOTEBOOK_PAGE_ACCESSIBLE))
+#define GTK_NOTEBOOK_PAGE_ACCESSIBLE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_NOTEBOOK_PAGE_ACCESSIBLE, GtkNotebookPageAccessibleClass))
+
+typedef struct _GtkNotebookPageAccessible      GtkNotebookPageAccessible;
+typedef struct _GtkNotebookPageAccessibleClass GtkNotebookPageAccessibleClass;
+
+struct _GtkNotebookPageAccessible
+{
+  AtkObject parent;
+
+  GtkAccessible *notebook;
+  GtkWidget *child;
+};
+
+struct _GtkNotebookPageAccessibleClass
+{
+  AtkObjectClass parent_class;
+};
+
+GType      _gtk_notebook_page_accessible_get_type   (void);
+
+AtkObject *_gtk_notebook_page_accessible_new        (GtkNotebookAccessible     *notebook,
+                                                     GtkWidget                 *child);
+
+void       _gtk_notebook_page_accessible_invalidate (GtkNotebookPageAccessible *page);
+
+G_END_DECLS
+
+#endif /* __GTK_NOTEBOOK_PAGE_ACCESSIBLE_H__ */
similarity index 50%
rename from modules/other/gail/gailpaned.c
rename to gtk/a11y/gtkpanedaccessible.c
index 7f91f13b05581ea886613c6503ffd2fa46e2881b..a0b8f37b565c63105efedfd6b81e9a9ddc09ec45 100644 (file)
 
 #include <string.h>
 #include <gtk/gtk.h>
-#include "gailpaned.h"
-
-static void         gail_paned_class_init          (GailPanedClass *klass); 
-
-static void         gail_paned_init                (GailPaned      *paned);
-
-static void         gail_paned_real_initialize     (AtkObject      *obj,
-                                                    gpointer       data);
-static void         gail_paned_size_allocate_gtk   (GtkWidget      *widget,
-                                                    GtkAllocation  *allocation);
-static void         atk_value_interface_init       (AtkValueIface  *iface);
-static void         gail_paned_get_current_value   (AtkValue       *obj,
-                                                    GValue         *value);
-static void         gail_paned_get_maximum_value   (AtkValue       *obj,
-                                                    GValue         *value);
-static void         gail_paned_get_minimum_value   (AtkValue       *obj,
-                                                    GValue         *value);
-static gboolean     gail_paned_set_current_value   (AtkValue       *obj,
-                                                    const GValue   *value);
-
-G_DEFINE_TYPE_WITH_CODE (GailPaned, gail_paned, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init))
+#include "gtkpanedaccessible.h"
 
-static void
-gail_paned_class_init (GailPanedClass *klass)
-{
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
+static void atk_value_interface_init (AtkValueIface *iface);
 
-  class->initialize = gail_paned_real_initialize;
-}
+G_DEFINE_TYPE_WITH_CODE (GtkPanedAccessible, _gtk_paned_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init))
 
 static void
-gail_paned_init (GailPaned *paned)
+gtk_paned_accessible_size_allocate_gtk (GtkWidget     *widget,
+                                        GtkAllocation *allocation)
 {
+  AtkObject *obj = gtk_widget_get_accessible (widget);
+
+  g_object_notify (G_OBJECT (obj), "accessible-value");
 }
 
 static void
-gail_paned_real_initialize (AtkObject *obj,
-                            gpointer  data)
+gtk_paned_accessible_initialize (AtkObject *obj,
+                                 gpointer   data)
 {
-  ATK_OBJECT_CLASS (gail_paned_parent_class)->initialize (obj, data);
+  ATK_OBJECT_CLASS (_gtk_paned_accessible_parent_class)->initialize (obj, data);
 
-  g_signal_connect (data,
-                    "size_allocate",
-                    G_CALLBACK (gail_paned_size_allocate_gtk),
-                    NULL);
+  g_signal_connect (data, "size-allocate",
+                    G_CALLBACK (gtk_paned_accessible_size_allocate_gtk), NULL);
 
   obj->role = ATK_ROLE_SPLIT_PANE;
 }
+
 static void
-gail_paned_size_allocate_gtk (GtkWidget      *widget,
-                              GtkAllocation  *allocation)
+_gtk_paned_accessible_class_init (GtkPanedAccessibleClass *klass)
 {
-  AtkObject *obj = gtk_widget_get_accessible (widget);
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
 
-  g_object_notify (G_OBJECT (obj), "accessible-value");
+  class->initialize = gtk_paned_accessible_initialize;
 }
 
-
 static void
-atk_value_interface_init (AtkValueIface *iface)
+_gtk_paned_accessible_init (GtkPanedAccessible *paned)
 {
-  iface->get_current_value = gail_paned_get_current_value;
-  iface->get_maximum_value = gail_paned_get_maximum_value;
-  iface->get_minimum_value = gail_paned_get_minimum_value;
-  iface->set_current_value = gail_paned_set_current_value;
 }
 
 static void
-gail_paned_get_current_value (AtkValue             *obj,
-                              GValue               *value)
+gtk_paned_accessible_get_current_value (AtkValue *obj,
+                                        GValue   *value)
 {
   GtkWidget* widget;
   gint current_value;
 
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
   if (widget == NULL)
-    /* State is defunct */
     return;
 
   current_value = gtk_paned_get_position (GTK_PANED (widget));
@@ -109,15 +80,14 @@ gail_paned_get_current_value (AtkValue             *obj,
 }
 
 static void
-gail_paned_get_maximum_value (AtkValue             *obj,
-                              GValue               *value)
+gtk_paned_accessible_get_maximum_value (AtkValue *obj,
+                                        GValue   *value)
 {
   GtkWidget* widget;
   gint maximum_value;
 
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
   if (widget == NULL)
-    /* State is defunct */
     return;
 
   g_object_get (GTK_PANED (widget),
@@ -129,15 +99,14 @@ gail_paned_get_maximum_value (AtkValue             *obj,
 }
 
 static void
-gail_paned_get_minimum_value (AtkValue             *obj,
-                              GValue               *value)
+gtk_paned_accessible_get_minimum_value (AtkValue *obj,
+                                        GValue   *value)
 {
   GtkWidget* widget;
   gint minimum_value;
 
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
   if (widget == NULL)
-    /* State is defunct */
     return;
 
   g_object_get (GTK_PANED (widget),
@@ -148,23 +117,20 @@ gail_paned_get_minimum_value (AtkValue             *obj,
   g_value_set_int (value, minimum_value);
 }
 
-/*
- * Calling atk_value_set_current_value() is no guarantee that the value is
- * acceptable; it is necessary to listen for accessible-value signals
- * and check whether the current value has been changed or check what the 
+/* Calling atk_value_set_current_value() is no guarantee that the value
+ * is acceptable; it is necessary to listen for accessible-value signals
+ * and check whether the current value has been changed or check what the
  * maximum and minimum values are.
  */
-
 static gboolean
-gail_paned_set_current_value (AtkValue             *obj,
-                              const GValue         *value)
+gtk_paned_accessible_set_current_value (AtkValue     *obj,
+                                        const GValue *value)
 {
   GtkWidget* widget;
   gint new_value;
 
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
   if (widget == NULL)
-    /* State is defunct */
     return FALSE;
 
   if (G_VALUE_HOLDS_INT (value))
@@ -177,3 +143,12 @@ gail_paned_set_current_value (AtkValue             *obj,
   else
     return FALSE;
 }
+
+static void
+atk_value_interface_init (AtkValueIface *iface)
+{
+  iface->get_current_value = gtk_paned_accessible_get_current_value;
+  iface->get_maximum_value = gtk_paned_accessible_get_maximum_value;
+  iface->get_minimum_value = gtk_paned_accessible_get_minimum_value;
+  iface->set_current_value = gtk_paned_accessible_set_current_value;
+}
diff --git a/gtk/a11y/gtkpanedaccessible.h b/gtk/a11y/gtkpanedaccessible.h
new file mode 100644 (file)
index 0000000..97a14cc
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_PANED_ACCESSIBLE_H__
+#define __GTK_PANED_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_PANED_ACCESSIBLE                      (_gtk_paned_accessible_get_type ())
+#define GTK_PANED_ACCESSIBLE(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PANED_ACCESSIBLE, GtkPanedAccessible))
+#define GTK_PANED_ACCESSIBLE_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PANED_ACCESSIBLE, GtkPanedAccessibleClass))
+#define GTK_IS_PANED_ACCESSIBLE(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PANED_ACCESSIBLE))
+#define GTK_IS_PANED_ACCESSIBLE_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PANED_ACCESSIBLE))
+#define GTK_PANED_ACCESSIBLE_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PANED_ACCESSIBLE, GtkPanedAccessibleClass))
+
+typedef struct _GtkPanedAccessible      GtkPanedAccessible;
+typedef struct _GtkPanedAccessibleClass GtkPanedAccessibleClass;
+
+struct _GtkPanedAccessible
+{
+  GtkContainerAccessible parent;
+};
+
+struct _GtkPanedAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_paned_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_PANED_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkprogressbaraccessible.c b/gtk/a11y/gtkprogressbaraccessible.c
new file mode 100644 (file)
index 0000000..0eabca9
--- /dev/null
@@ -0,0 +1,111 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+
+#include <gtk/gtk.h>
+
+#include "gtkprogressbaraccessible.h"
+
+
+static void atk_value_interface_init (AtkValueIface  *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkProgressBarAccessible, _gtk_progress_bar_accessible, GTK_TYPE_WIDGET_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init))
+
+static void
+gtk_progress_bar_accessible_initialize (AtkObject *obj,
+                                        gpointer   data)
+{
+  ATK_OBJECT_CLASS (_gtk_progress_bar_accessible_parent_class)->initialize (obj, data);
+
+  obj->role = ATK_ROLE_PROGRESS_BAR;
+}
+
+static void
+gtk_progress_bar_accessible_notify_gtk (GObject    *obj,
+                                        GParamSpec *pspec)
+{
+  GtkWidget *widget = GTK_WIDGET (obj);
+  AtkObject *accessible;
+
+  accessible = gtk_widget_get_accessible (widget);
+
+  if (strcmp (pspec->name, "fraction") == 0)
+    g_object_notify (G_OBJECT (accessible), "accessible-value");
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_progress_bar_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static void
+_gtk_progress_bar_accessible_class_init (GtkProgressBarAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+
+  widget_class->notify_gtk = gtk_progress_bar_accessible_notify_gtk;
+
+  class->initialize = gtk_progress_bar_accessible_initialize;
+}
+
+static void
+_gtk_progress_bar_accessible_init (GtkProgressBarAccessible *bar)
+{
+}
+
+static void
+gtk_progress_bar_accessible_get_current_value (AtkValue *obj,
+                                               GValue   *value)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+
+  memset (value, 0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (widget)));
+}
+
+static void
+gtk_progress_bar_accessible_get_maximum_value (AtkValue *obj,
+                                               GValue   *value)
+{
+  memset (value, 0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, 1.0);
+}
+
+static void
+gtk_progress_bar_accessible_get_minimum_value (AtkValue *obj,
+                                               GValue   *value)
+{
+  memset (value, 0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, 0.0);
+}
+
+static void
+atk_value_interface_init (AtkValueIface *iface)
+{
+  iface->get_current_value = gtk_progress_bar_accessible_get_current_value;
+  iface->get_maximum_value = gtk_progress_bar_accessible_get_maximum_value;
+  iface->get_minimum_value = gtk_progress_bar_accessible_get_minimum_value;
+}
diff --git a/gtk/a11y/gtkprogressbaraccessible.h b/gtk/a11y/gtkprogressbaraccessible.h
new file mode 100644 (file)
index 0000000..6c839cf
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_PROGRESS_BAR_ACCESSIBLE_H__
+#define __GTK_PROGRESS_BAR_ACCESSIBLE_H__
+
+#include "gtkwidgetaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_PROGRESS_BAR_ACCESSIBLE                      (_gtk_progress_bar_accessible_get_type ())
+#define GTK_PROGRESS_BAR_ACCESSIBLE(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_PROGRESS_BAR_ACCESSIBLE, GtkProgressBarAccessible))
+#define GTK_PROGRESS_BAR_ACCESSIBLE_CLASS(klass)                        (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_PROGRESS_BAR_ACCESSIBLE, GtkProgressBarAccessibleClass))
+#define GTK_IS_PROGRESS_BAR_ACCESSIBLE(obj)                       (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_PROGRESS_BAR_ACCESSIBLE))
+#define GTK_IS_PROGRESS_BAR_ACCESSIBLE_CLASS(klass)               (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_PROGRESS_BAR_ACCESSIBLE))
+#define GTK_PROGRESS_BAR_ACCESSIBLE_GET_CLASS(obj)              (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_PROGRESS_BAR_ACCESSIBLE, GtkProgressBarAccessibleClass))
+
+typedef struct _GtkProgressBarAccessible      GtkProgressBarAccessible;
+typedef struct _GtkProgressBarAccessibleClass GtkProgressBarAccessibleClass;
+
+struct _GtkProgressBarAccessible
+{
+  GtkWidgetAccessible parent;
+};
+
+struct _GtkProgressBarAccessibleClass
+{
+  GtkWidgetAccessibleClass parent_class;
+};
+
+GType _gtk_progress_bar_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_PROGRESS_BAR_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkradiobuttonaccessible.c b/gtk/a11y/gtkradiobuttonaccessible.c
new file mode 100644 (file)
index 0000000..f7f150d
--- /dev/null
@@ -0,0 +1,115 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkradiobuttonaccessible.h"
+
+
+G_DEFINE_TYPE (GtkRadioButtonAccessible, _gtk_radio_button_accessible, GTK_TYPE_TOGGLE_BUTTON_ACCESSIBLE)
+
+static void
+gtk_radio_button_accessible_initialize (AtkObject *accessible,
+                                        gpointer   data)
+{
+  ATK_OBJECT_CLASS (_gtk_radio_button_accessible_parent_class)->initialize (accessible, data);
+
+  accessible->role = ATK_ROLE_RADIO_BUTTON;
+}
+
+static AtkRelationSet *
+gtk_radio_button_accessible_ref_relation_set (AtkObject *obj)
+{
+  GtkWidget *widget;
+  AtkRelationSet *relation_set;
+  GSList *list;
+  GtkRadioButtonAccessible *radio_button;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  radio_button = GTK_RADIO_BUTTON_ACCESSIBLE (obj);
+
+  relation_set = ATK_OBJECT_CLASS (_gtk_radio_button_accessible_parent_class)->ref_relation_set (obj);
+
+  /* If the radio button'group has changed remove the relation */
+  list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
+
+  if (radio_button->old_group != list)
+    {
+      AtkRelation *relation;
+
+      relation = atk_relation_set_get_relation_by_type (relation_set, ATK_RELATION_MEMBER_OF);
+      atk_relation_set_remove (relation_set, relation);
+    }
+
+  if (!atk_relation_set_contains (relation_set, ATK_RELATION_MEMBER_OF))
+  {
+    /*
+     * Get the members of the button group
+     */
+    radio_button->old_group = list;
+    if (list)
+      {
+        AtkObject **accessible_array;
+        guint list_length;
+        AtkRelation* relation;
+        gint i = 0;
+
+        list_length = g_slist_length (list);
+        accessible_array = g_new (AtkObject *, list_length);
+        while (list != NULL)
+          {
+            GtkWidget* list_item = list->data;
+
+            accessible_array[i++] = gtk_widget_get_accessible (list_item);
+
+            list = list->next;
+          }
+        relation = atk_relation_new (accessible_array, list_length,
+                                     ATK_RELATION_MEMBER_OF);
+        g_free (accessible_array);
+
+        atk_relation_set_add (relation_set, relation);
+        /*
+         * Unref the relation so that it is not leaked.
+         */
+        g_object_unref (relation);
+      }
+    }
+
+  return relation_set;
+}
+
+static void
+_gtk_radio_button_accessible_class_init (GtkRadioButtonAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+  class->initialize = gtk_radio_button_accessible_initialize;
+  class->ref_relation_set = gtk_radio_button_accessible_ref_relation_set;
+}
+
+static void
+_gtk_radio_button_accessible_init (GtkRadioButtonAccessible *radio_button)
+{
+  radio_button->old_group = NULL;
+}
diff --git a/gtk/a11y/gtkradiobuttonaccessible.h b/gtk/a11y/gtkradiobuttonaccessible.h
new file mode 100644 (file)
index 0000000..a6e2143
--- /dev/null
@@ -0,0 +1,53 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_RADIO_BUTTON_ACCESSIBLE_H__
+#define __GTK_RADIO_BUTTON_ACCESSIBLE_H__
+
+#include "gtktogglebuttonaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_RADIO_BUTTON_ACCESSIBLE               (_gtk_radio_button_accessible_get_type ())
+#define GTK_RADIO_BUTTON_ACCESSIBLE(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_RADIO_BUTTON_ACCESSIBLE, GtkRadioButtonAccessible))
+#define GTK_RADIO_BUTTON_ACCESSIBLE_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_RADIO_BUTTON_ACCESSIBLE, GtkRadioButtonAccessibleClass))
+#define GTK_IS_RADIO_BUTTON_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_RADIO_BUTTON_ACCESSIBLE))
+#define GTK_IS_RADIO_BUTTON_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_RADIO_BUTTON_ACCESSIBLE))
+#define GTK_RADIO_BUTTON_ACCESSIBLE_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_RADIO_BUTTON_ACCESSIBLE, GtkRadioButtonAccessibleClass))
+
+typedef struct _GtkRadioButtonAccessible      GtkRadioButtonAccessible;
+typedef struct _GtkRadioButtonAccessibleClass GtkRadioButtonAccessibleClass;
+
+struct _GtkRadioButtonAccessible
+{
+  GtkToggleButtonAccessible parent;
+
+  GSList *old_group;
+};
+
+struct _GtkRadioButtonAccessibleClass
+{
+  GtkToggleButtonAccessibleClass parent_class;
+};
+
+GType _gtk_radio_button_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_RADIO_BUTTON_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkradiomenuitemaccessible.c b/gtk/a11y/gtkradiomenuitemaccessible.c
new file mode 100644 (file)
index 0000000..3c88b31
--- /dev/null
@@ -0,0 +1,113 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2002 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkradiomenuitemaccessible.h"
+
+
+G_DEFINE_TYPE (GtkRadioMenuItemAccessible, _gtk_radio_menu_item_accessible, GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE)
+
+
+static AtkRelationSet *
+gtk_radio_menu_item_accessible_ref_relation_set (AtkObject *obj)
+{
+  GtkWidget *widget;
+  AtkRelationSet *relation_set;
+  GSList *list;
+  GtkRadioMenuItemAccessible *radio_menu_item;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  radio_menu_item = GTK_RADIO_MENU_ITEM_ACCESSIBLE (obj);
+
+  relation_set = ATK_OBJECT_CLASS (_gtk_radio_menu_item_accessible_parent_class)->ref_relation_set (obj);
+
+  /* If the radio menu_item's group has changed remove the relation */
+  list = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (widget));
+
+  if (radio_menu_item->old_group != list)
+    {
+      AtkRelation *relation;
+
+      relation = atk_relation_set_get_relation_by_type (relation_set, ATK_RELATION_MEMBER_OF);
+      atk_relation_set_remove (relation_set, relation);
+    }
+
+  if (!atk_relation_set_contains (relation_set, ATK_RELATION_MEMBER_OF))
+    {
+      /* Get the members of the menu_item group */
+      radio_menu_item->old_group = list;
+      if (list)
+        {
+          AtkObject **accessible_array;
+          guint list_length;
+          AtkRelation* relation;
+          gint i = 0;
+
+          list_length = g_slist_length (list);
+          accessible_array = g_new (AtkObject *, list_length);
+          while (list != NULL)
+            {
+              GtkWidget* list_item = list->data;
+
+              accessible_array[i++] = gtk_widget_get_accessible (list_item);
+
+              list = list->next;
+            }
+          relation = atk_relation_new (accessible_array, list_length,
+                                       ATK_RELATION_MEMBER_OF);
+          g_free (accessible_array);
+
+          atk_relation_set_add (relation_set, relation);
+
+          /* Unref the relation so that it is not leaked */
+          g_object_unref (relation);
+        }
+    }
+
+  return relation_set;
+}
+
+static void
+gtk_radio_menu_item_accessible_initialize (AtkObject *obj,
+                                              gpointer   data)
+{
+  ATK_OBJECT_CLASS (_gtk_radio_menu_item_accessible_parent_class)->initialize (obj, data);
+
+  obj->role = ATK_ROLE_RADIO_MENU_ITEM;
+}
+
+static void
+_gtk_radio_menu_item_accessible_class_init (GtkRadioMenuItemAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+  class->ref_relation_set = gtk_radio_menu_item_accessible_ref_relation_set;
+  class->initialize = gtk_radio_menu_item_accessible_initialize;
+}
+
+static void
+_gtk_radio_menu_item_accessible_init (GtkRadioMenuItemAccessible *radio_menu_item)
+{
+  radio_menu_item->old_group = NULL;
+}
diff --git a/gtk/a11y/gtkradiomenuitemaccessible.h b/gtk/a11y/gtkradiomenuitemaccessible.h
new file mode 100644 (file)
index 0000000..4c80a51
--- /dev/null
@@ -0,0 +1,53 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2002 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_RADIO_MENU_ITEM_ACCESSIBLE_H__
+#define __GTK_RADIO_MENU_ITEM_ACCESSIBLE_H__
+
+#include "gtkcheckmenuitemaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE               (_gtk_radio_menu_item_accessible_get_type ())
+#define GTK_RADIO_MENU_ITEM_ACCESSIBLE(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE, GtkRadioMenuItemAccessible))
+#define GTK_RADIO_MENU_ITEM_ACCESSIBLE_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE, GtkRadioMenuItemAccessibleClass))
+#define GTK_IS_RADIO_MENU_ITEM_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE))
+#define GTK_IS_RADIO_MENU_ITEM_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE))
+#define GTK_RADIO_MENU_ITEM_ACCESSIBLE_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE, GtkRadioMenuItemAccessibleClass))
+
+typedef struct _GtkRadioMenuItemAccessible      GtkRadioMenuItemAccessible;
+typedef struct _GtkRadioMenuItemAccessibleClass GtkRadioMenuItemAccessibleClass;
+
+struct _GtkRadioMenuItemAccessible
+{
+  GtkCheckMenuItemAccessible parent;
+
+  GSList *old_group;
+};
+
+struct _GtkRadioMenuItemAccessibleClass
+{
+  GtkCheckMenuItemAccessibleClass parent_class;
+};
+
+GType _gtk_radio_menu_item_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_RADIO_MENU_ITEM_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkrangeaccessible.c b/gtk/a11y/gtkrangeaccessible.c
new file mode 100644 (file)
index 0000000..c071b66
--- /dev/null
@@ -0,0 +1,317 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include "gtkrangeaccessible.h"
+
+
+static void atk_action_interface_init (AtkActionIface *iface);
+static void atk_value_interface_init  (AtkValueIface  *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkRangeAccessible, _gtk_range_accessible, GTK_TYPE_WIDGET_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init))
+
+static void
+gtk_range_accessible_value_changed (GtkAdjustment *adjustment,
+                                    gpointer       data)
+{
+  g_object_notify (G_OBJECT (data), "accessible-value");
+}
+
+static void
+gtk_range_accessible_initialize (AtkObject *obj,
+                                 gpointer   data)
+{
+  GtkRangeAccessible *range = GTK_RANGE_ACCESSIBLE (obj);
+  GtkAdjustment *adj;
+  GtkRange *gtk_range;
+
+  ATK_OBJECT_CLASS (_gtk_range_accessible_parent_class)->initialize (obj, data);
+
+  gtk_range = GTK_RANGE (data);
+  /*
+   * If a GtkAdjustment already exists for the GtkRange,
+   * create the GailAdjustment
+   */
+  adj = gtk_range_get_adjustment (gtk_range);
+  if (adj)
+    g_signal_connect (adj, "value-changed",
+                      G_CALLBACK (gtk_range_accessible_value_changed),
+                      range);
+
+  obj->role = ATK_ROLE_SLIDER;
+}
+
+static void
+gtk_range_accessible_finalize (GObject *object)
+{
+  GtkRangeAccessible *range = GTK_RANGE_ACCESSIBLE (object);
+  GtkWidget *widget;
+  GtkAdjustment *adj;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (object));
+  if (widget)
+    {
+      adj = gtk_range_get_adjustment (GTK_RANGE (widget));
+      if (adj)
+        g_signal_handlers_disconnect_by_func (adj,
+                                              gtk_range_accessible_value_changed,
+                                              range);
+    }
+
+  G_OBJECT_CLASS (_gtk_range_accessible_parent_class)->finalize (object);
+}
+
+static void
+gtk_range_accessible_notify_gtk (GObject    *obj,
+                                 GParamSpec *pspec)
+{
+  GtkWidget *widget = GTK_WIDGET (obj);
+  GtkAdjustment *adj;
+  AtkObject *range;
+
+  if (strcmp (pspec->name, "adjustment") == 0)
+    {
+      range = gtk_widget_get_accessible (widget);
+      adj = gtk_range_get_adjustment (GTK_RANGE (widget));
+      g_signal_connect (adj, "value-changed",
+                        G_CALLBACK (gtk_range_accessible_value_changed),
+                        range);
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_range_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+
+static void
+_gtk_range_accessible_class_init (GtkRangeAccessibleClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+
+  widget_class->notify_gtk = gtk_range_accessible_notify_gtk;
+
+  class->initialize = gtk_range_accessible_initialize;
+
+  gobject_class->finalize = gtk_range_accessible_finalize;
+}
+
+static void
+_gtk_range_accessible_init (GtkRangeAccessible *range)
+{
+}
+
+static void
+gtk_range_accessible_get_current_value (AtkValue *obj,
+                                        GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
+  if (adjustment == NULL)
+    return;
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_adjustment_get_value (adjustment));
+}
+
+static void
+gtk_range_accessible_get_maximum_value (AtkValue *obj,
+                                        GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+  gdouble max;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
+  if (adjustment == NULL)
+    return;
+
+  max = gtk_adjustment_get_upper (adjustment)
+        - gtk_adjustment_get_page_size (adjustment);
+
+  if (gtk_range_get_restrict_to_fill_level (GTK_RANGE (widget)))
+    max = MIN (max, gtk_range_get_fill_level (GTK_RANGE (widget)));
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, max);
+}
+
+static void
+gtk_range_accessible_get_minimum_value (AtkValue *obj,
+                                        GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
+  if (adjustment == NULL)
+    return;
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_adjustment_get_lower (adjustment));
+}
+
+static void
+gtk_range_accessible_get_minimum_increment (AtkValue *obj,
+                                            GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
+  if (adjustment == NULL)
+    return;
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_adjustment_get_minimum_increment (adjustment));
+}
+
+static gboolean
+gtk_range_accessible_set_current_value (AtkValue     *obj,
+                                        const GValue *value)
+{
+ GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_range_get_adjustment (GTK_RANGE (widget));
+  if (adjustment == NULL)
+    return FALSE;
+
+  gtk_adjustment_set_value (adjustment, g_value_get_double (value));
+
+  return TRUE;
+}
+
+static void
+atk_value_interface_init (AtkValueIface *iface)
+{
+  iface->get_current_value = gtk_range_accessible_get_current_value;
+  iface->get_maximum_value = gtk_range_accessible_get_maximum_value;
+  iface->get_minimum_value = gtk_range_accessible_get_minimum_value;
+  iface->get_minimum_increment = gtk_range_accessible_get_minimum_increment;
+  iface->set_current_value = gtk_range_accessible_set_current_value;
+}
+
+static gboolean
+gtk_range_accessible_do_action (AtkAction *action,
+                                gint       i)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (widget == NULL)
+    return FALSE;
+
+  if (!gtk_widget_get_sensitive (widget) || !gtk_widget_get_visible (widget))
+    return FALSE;
+
+  if (i != 0)
+    return FALSE;
+
+  gtk_widget_activate (widget);
+
+  return TRUE;
+}
+
+static gint
+gtk_range_accessible_get_n_actions (AtkAction *action)
+{
+    return 1;
+}
+
+static const gchar *
+gtk_range_accessible_get_keybinding (AtkAction *action,
+                                     gint       i)
+{
+  GtkRangeAccessible *range = GTK_RANGE_ACCESSIBLE (action);
+  GtkWidget *widget;
+  GtkWidget *label;
+  AtkRelationSet *set;
+  AtkRelation *relation;
+  GPtrArray *target;
+  gpointer target_object;
+  guint key_val;
+  gchar *return_value = NULL;
+
+  if (i != 0)
+    return NULL;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (range));
+  if (widget == NULL)
+   return NULL;
+
+  set = atk_object_ref_relation_set (ATK_OBJECT (action));
+
+  if (!set)
+    return NULL;
+
+  label = NULL;
+  relation = atk_relation_set_get_relation_by_type (set, ATK_RELATION_LABELLED_BY);
+  if (relation)
+    {
+      target = atk_relation_get_target (relation);
+      target_object = g_ptr_array_index (target, 0);
+      label = gtk_accessible_get_widget (GTK_ACCESSIBLE (target_object));
+    }
+  g_object_unref (set);
+
+  if (GTK_IS_LABEL (label))
+    {
+      key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label));
+      if (key_val != GDK_KEY_VoidSymbol)
+         return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
+    }
+
+  return return_value;
+}
+
+static const gchar *
+gtk_range_accessible_action_get_name (AtkAction *action,
+                                      gint       i)
+{
+  if (i != 0)
+    return NULL;
+
+  return "activate";
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+  iface->do_action = gtk_range_accessible_do_action;
+  iface->get_n_actions = gtk_range_accessible_get_n_actions;
+  iface->get_keybinding = gtk_range_accessible_get_keybinding;
+  iface->get_name = gtk_range_accessible_action_get_name;
+}
diff --git a/gtk/a11y/gtkrangeaccessible.h b/gtk/a11y/gtkrangeaccessible.h
new file mode 100644 (file)
index 0000000..2694178
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_RANGE_ACCESSIBLE_H__
+#define __GTK_RANGE_ACCESSIBLE_H__
+
+#include "gtkwidgetaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_RANGE_ACCESSIBLE                       (_gtk_range_accessible_get_type ())
+#define GTK_RANGE_ACCESSIBLE(obj)                       (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_RANGE_ACCESSIBLE, GtkRangeAccessible))
+#define GTK_RANGE_ACCESSIBLE_CLASS(klass)               (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_RANGE_ACCESSIBLE, GtkRangeAccessibleClass))
+#define GTK_IS_RANGE_ACCESSIBLE(obj)                    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_RANGE_ACCESSIBLE))
+#define GTK_IS_RANGE_ACCESSIBLE_CLASS(klass)            (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_RANGE_ACCESSIBLE))
+#define GTK_RANGE_ACCESSIBLE_GET_CLASS(obj)             (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_RANGE_ACCESSIBLE, GtkRangeAccessibleClass))
+
+typedef struct _GtkRangeAccessible      GtkRangeAccessible;
+typedef struct _GtkRangeAccessibleClass GtkRangeAccessibleClass;
+
+struct _GtkRangeAccessible
+{
+  GtkWidgetAccessible parent;
+};
+
+struct _GtkRangeAccessibleClass
+{
+  GtkWidgetAccessibleClass parent_class;
+};
+
+GType _gtk_range_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_RANGE_ACCESSIBLE_H__ */
similarity index 53%
rename from modules/other/gail/gailrenderercell.c
rename to gtk/a11y/gtkrenderercellaccessible.c
index f423947a212c7929ad05468cc02c724d5bf30fdd..c38856d11f3ce47a8f814ccffb9e9b95373e3cee 100644 (file)
 #include "config.h"
 
 #include <gtk/gtk.h>
-#include "gailrenderercell.h"
+#include "gtkrenderercellaccessible.h"
 
-static void      gail_renderer_cell_class_init          (GailRendererCellClass *klass);
-static void      gail_renderer_cell_init                (GailRendererCell      *renderer_cell);
 
-static void      gail_renderer_cell_finalize            (GObject               *object);
+G_DEFINE_TYPE (GtkRendererCellAccessible, _gtk_renderer_cell_accessible, GTK_TYPE_CELL_ACCESSIBLE)
 
-G_DEFINE_TYPE (GailRendererCell, gail_renderer_cell, GAIL_TYPE_CELL)
 
-static void 
-gail_renderer_cell_class_init (GailRendererCellClass *klass)
+static void
+gtk_renderer_cell_accessible_finalize (GObject *object)
 {
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkRendererCellAccessible *renderer_cell = GTK_RENDERER_CELL_ACCESSIBLE (object);
 
-  klass->property_list = NULL;
+  if (renderer_cell->renderer)
+    g_object_unref (renderer_cell->renderer);
 
-  gobject_class->finalize = gail_renderer_cell_finalize;
+  G_OBJECT_CLASS (_gtk_renderer_cell_accessible_parent_class)->finalize (object);
 }
 
 static void
-gail_renderer_cell_init (GailRendererCell *renderer_cell)
+_gtk_renderer_cell_accessible_class_init (GtkRendererCellAccessibleClass *klass)
 {
-  renderer_cell->renderer = NULL;
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+  klass->property_list = NULL;
+
+  gobject_class->finalize = gtk_renderer_cell_accessible_finalize;
 }
 
 static void
-gail_renderer_cell_finalize (GObject  *object)
+_gtk_renderer_cell_accessible_init (GtkRendererCellAccessible *renderer_cell)
 {
-  GailRendererCell *renderer_cell = GAIL_RENDERER_CELL (object);
-
-  if (renderer_cell->renderer)
-    g_object_unref (renderer_cell->renderer);
-  G_OBJECT_CLASS (gail_renderer_cell_parent_class)->finalize (object);
+  renderer_cell->renderer = NULL;
 }
 
 gboolean
-gail_renderer_cell_update_cache (GailRendererCell *cell, 
-                                 gboolean         emit_change_signal)
+_gtk_renderer_cell_accessible_update_cache (GtkRendererCellAccessible *cell,
+                                            gboolean                   emit_change_signal)
 {
-  GailRendererCellClass *class = GAIL_RENDERER_CELL_GET_CLASS(cell);
+  GtkRendererCellAccessibleClass *class = GTK_RENDERER_CELL_ACCESSIBLE_GET_CLASS (cell);
+
   if (class->update_cache)
-    return (class->update_cache)(cell, emit_change_signal);
+    return (class->update_cache) (cell, emit_change_signal);
+
   return FALSE;
 }
 
-AtkObject*
-gail_renderer_cell_new (void)
+AtkObject *
+_gtk_renderer_cell_accessible_new (void)
 {
   GObject *object;
   AtkObject *atk_object;
 
-  object = g_object_new (GAIL_TYPE_RENDERER_CELL, NULL);
-
-  g_return_val_if_fail (object != NULL, NULL);
+  object = g_object_new (GTK_TYPE_RENDERER_CELL_ACCESSIBLE, NULL);
 
   atk_object = ATK_OBJECT (object);
   atk_object->role = ATK_ROLE_TABLE_CELL;
diff --git a/gtk/a11y/gtkrenderercellaccessible.h b/gtk/a11y/gtkrenderercellaccessible.h
new file mode 100644 (file)
index 0000000..d9d8790
--- /dev/null
@@ -0,0 +1,60 @@
+/* GAIL - The GNOME Accessibility Enabling Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_RENDERER_CELL_ACCESSIBLE_H__
+#define __GTK_RENDERER_CELL_ACCESSIBLE_H__
+
+#include <atk/atk.h>
+#include "gtkcellaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_RENDERER_CELL_ACCESSIBLE            (_gtk_renderer_cell_accessible_get_type ())
+#define GTK_RENDERER_CELL_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_RENDERER_CELL_ACCESSIBLE, GtkRendererCellAccessible))
+#define GTK_RENDERER_CELL_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_RENDERER_CELL_ACCESSIBLE, GtkRendererCellAccessibleClass))
+#define GTK_IS_RENDERER_CELL_ACCESSIBLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_RENDERER_CELL_ACCESSIBLE))
+#define GTK_IS_RENDERER_CELL_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_RENDERER_CELL_ACCESSIBLE))
+#define GTK_RENDERER_CELL_ACCESSIBLE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_RENDERER_CELL_ACCESSIBLE, GtkRendererCellAccessibleClass))
+
+typedef struct _GtkRendererCellAccessible      GtkRendererCellAccessible;
+typedef struct _GtkRendererCellAccessibleClass GtkRendererCellAccessibleClass;
+
+struct _GtkRendererCellAccessible
+{
+  GtkCellAccessible  parent;
+  GtkCellRenderer   *renderer;
+};
+
+struct _GtkRendererCellAccessibleClass
+{
+  GtkCellAccessibleClass parent_class;
+  gchar **property_list;
+  gboolean (*update_cache) (GtkRendererCellAccessible *cell,
+                            gboolean                   emit_change_signal);
+};
+
+GType      _gtk_renderer_cell_accessible_get_type     (void);
+
+AtkObject *_gtk_renderer_cell_accessible_new          (void);
+gboolean   _gtk_renderer_cell_accessible_update_cache (GtkRendererCellAccessible *cell,
+                                                       gboolean          emit_change_signal);
+
+G_END_DECLS
+
+#endif /* __GTK_RENDERER_CELL_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkscaleaccessible.c b/gtk/a11y/gtkscaleaccessible.c
new file mode 100644 (file)
index 0000000..ebdf147
--- /dev/null
@@ -0,0 +1,55 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2004 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkscaleaccessible.h"
+
+G_DEFINE_TYPE (GtkScaleAccessible, _gtk_scale_accessible, GTK_TYPE_RANGE_ACCESSIBLE)
+
+static const gchar *
+gtk_scale_accessible_get_description (AtkObject *object)
+{
+  GtkWidget *widget;
+  PangoLayout *layout;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (object));
+  if (widget == NULL)
+    return NULL;
+
+  layout = gtk_scale_get_layout (GTK_SCALE (widget));
+  if (layout)
+    return pango_layout_get_text (layout);
+
+  return ATK_OBJECT_CLASS (_gtk_scale_accessible_parent_class)->get_description (object);
+}
+
+static void
+_gtk_scale_accessible_class_init (GtkScaleAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+  class->get_description = gtk_scale_accessible_get_description;
+}
+
+static void
+_gtk_scale_accessible_init (GtkScaleAccessible *scale)
+{
+}
diff --git a/gtk/a11y/gtkscaleaccessible.h b/gtk/a11y/gtkscaleaccessible.h
new file mode 100644 (file)
index 0000000..af3427e
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2004 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_SCALE_ACCESSIBLE_H__
+#define __GTK_SCALE_ACCESSIBLE_H__
+
+#include "gtkrangeaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_SCALE_ACCESSIBLE                         (_gtk_scale_accessible_get_type ())
+#define GTK_SCALE_ACCESSIBLE(obj)                         (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SCALE_ACCESSIBLE, GtkScaleAccessible))
+#define GTK_SCALE_ACCESSIBLE_CLASS(klass)                       (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SCALE_ACCESSIBLE, GtkScaleAccessibleClass))
+#define GTK_IS_SCALE_ACCESSIBLE(obj)                      (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SCALE_ACCESSIBLE))
+#define GTK_IS_SCALE_ACCESSIBLE_CLASS(klass)              (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SCALE_ACCESSIBLE))
+#define GTK_SCALE_ACCESSIBLE_GET_CLASS(obj)             (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SCALE_ACCESSIBLE, GtkScaleAccessibleClass))
+
+typedef struct _GtkScaleAccessible      GtkScaleAccessible;
+typedef struct _GtkScaleAccessibleClass GtkScaleAccessibleClass;
+
+struct _GtkScaleAccessible
+{
+  GtkRangeAccessible parent;
+};
+
+struct _GtkScaleAccessibleClass
+{
+  GtkRangeAccessibleClass parent_class;
+};
+
+GType _gtk_scale_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_SCALE_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkscalebuttonaccessible.c b/gtk/a11y/gtkscalebuttonaccessible.c
new file mode 100644 (file)
index 0000000..c89688e
--- /dev/null
@@ -0,0 +1,258 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2008 Jan Arne Petersen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <config.h>
+
+#include <gtk/gtk.h>
+#include "gtkscalebuttonaccessible.h"
+
+#include <string.h>
+
+
+static void atk_action_interface_init (AtkActionIface *iface);
+static void atk_value_interface_init  (AtkValueIface  *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkScaleButtonAccessible, _gtk_scale_button_accessible, GTK_TYPE_BUTTON_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init));
+
+static void
+gtk_scale_button_accessible_value_changed (GtkAdjustment *adjustment,
+                                           gpointer       data)
+{
+  g_object_notify (G_OBJECT (data), "accessible-value");
+}
+
+static void
+gtk_scale_button_accessible_initialize (AtkObject *obj,
+                                        gpointer   data)
+{
+  GtkAdjustment *adjustment;
+
+  ATK_OBJECT_CLASS (_gtk_scale_button_accessible_parent_class)->initialize (obj, data);
+
+  adjustment = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON (data));
+  if (adjustment)
+    g_signal_connect (adjustment,
+                      "value-changed",
+                      G_CALLBACK (gtk_scale_button_accessible_value_changed),
+                      obj);
+
+  obj->role = ATK_ROLE_SLIDER;
+}
+
+static void
+gtk_scale_button_accessible_notify_gtk (GObject    *obj,
+                                        GParamSpec *pspec)
+{
+  GtkScaleButton *scale_button;
+  GtkScaleButtonAccessible *accessible;
+
+  scale_button = GTK_SCALE_BUTTON (obj);
+  accessible = GTK_SCALE_BUTTON_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (scale_button)));
+
+  if (strcmp (pspec->name, "adjustment") == 0)
+    {
+      GtkAdjustment* adjustment;
+
+      adjustment = gtk_scale_button_get_adjustment (scale_button);
+      g_signal_connect (adjustment,
+                        "value-changed",
+                        G_CALLBACK (gtk_scale_button_accessible_value_changed),
+                        accessible);
+    }
+  else
+    {
+      GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_scale_button_accessible_parent_class)->notify_gtk (obj, pspec);
+    }
+}
+
+static void
+_gtk_scale_button_accessible_class_init (GtkScaleButtonAccessibleClass *klass)
+{
+  AtkObjectClass *atk_object_class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = GTK_WIDGET_ACCESSIBLE_CLASS (klass);
+
+  atk_object_class->initialize = gtk_scale_button_accessible_initialize;
+
+  widget_class->notify_gtk = gtk_scale_button_accessible_notify_gtk;
+}
+
+static void
+_gtk_scale_button_accessible_init (GtkScaleButtonAccessible *button)
+{
+}
+
+static gboolean
+gtk_scale_button_accessible_do_action (AtkAction *action,
+                                       gint       i)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (widget == NULL)
+    return FALSE;
+
+  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
+    return FALSE;
+
+  switch (i)
+    {
+    case 0:
+      g_signal_emit_by_name (widget, "popup");
+      return TRUE;
+    case 1:
+      g_signal_emit_by_name (widget, "popdown");
+      return TRUE;
+    default:
+      return FALSE;
+    }
+}
+
+static gint
+gtk_scale_button_accessible_get_n_actions (AtkAction *action)
+{
+  return 2;
+}
+
+static const gchar *
+gtk_scale_button_accessible_get_description (AtkAction *action,
+                                             gint       i)
+{
+  return NULL;
+}
+
+static const gchar *
+gtk_scale_button_accessible_action_get_name (AtkAction *action,
+                                             gint       i)
+{
+  switch (i)
+    {
+    case 0:
+      return "popup";
+    case 1:
+      return "popdown";
+    default:
+      return NULL;
+    }
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+  iface->do_action = gtk_scale_button_accessible_do_action;
+  iface->get_n_actions = gtk_scale_button_accessible_get_n_actions;
+  iface->get_description = gtk_scale_button_accessible_get_description;
+  iface->get_name = gtk_scale_button_accessible_action_get_name;
+}
+
+static void
+gtk_scale_button_accessible_get_current_value (AtkValue *obj,
+                                               GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON (widget));
+  if (adjustment == NULL)
+    return;
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_adjustment_get_value (adjustment));
+}
+
+static void
+gtk_scale_button_accessible_get_maximum_value (AtkValue *obj,
+                                               GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON (widget));
+  if (adjustment == NULL)
+    return;
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_adjustment_get_upper (adjustment));
+}
+
+static void
+gtk_scale_button_accessible_get_minimum_value (AtkValue *obj,
+                                               GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON (widget));
+  if (adjustment == NULL)
+    return;
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_adjustment_get_lower (adjustment));
+}
+
+static void
+gtk_scale_button_accessible_get_minimum_increment (AtkValue *obj,
+                                                   GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON (widget));
+  if (adjustment == NULL)
+    return;
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_adjustment_get_minimum_increment (adjustment));
+}
+
+static gboolean
+gtk_scale_button_accessible_set_current_value (AtkValue     *obj,
+                                               const GValue *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_scale_button_get_adjustment (GTK_SCALE_BUTTON (widget));
+  if (adjustment == NULL)
+    return FALSE;
+
+  gtk_adjustment_set_value (adjustment, g_value_get_double (value));
+
+  return TRUE;
+}
+
+static void
+atk_value_interface_init (AtkValueIface *iface)
+{
+  iface->get_current_value = gtk_scale_button_accessible_get_current_value;
+  iface->get_maximum_value = gtk_scale_button_accessible_get_maximum_value;
+  iface->get_minimum_value = gtk_scale_button_accessible_get_minimum_value;
+  iface->get_minimum_increment = gtk_scale_button_accessible_get_minimum_increment;
+  iface->set_current_value = gtk_scale_button_accessible_set_current_value;
+}
diff --git a/gtk/a11y/gtkscalebuttonaccessible.h b/gtk/a11y/gtkscalebuttonaccessible.h
new file mode 100644 (file)
index 0000000..affa380
--- /dev/null
@@ -0,0 +1,52 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2008 Jan Arne Petersen <jap@gnome.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_SCALE_BUTTON_ACCESSIBLE_H__
+#define __GTK_SCALE_BUTTON_ACCESSIBLE_H__
+
+#include <gtk/gtk.h>
+#include "gtkbuttonaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_SCALE_BUTTON_ACCESSIBLE                     (_gtk_scale_button_accessible_get_type ())
+#define GTK_SCALE_BUTTON_ACCESSIBLE(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SCALE_BUTTON_ACCESSIBLE, GtkScaleButtonAccessible))
+#define GTK_SCALE_BUTTON_ACCESSIBLE_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SCALE_BUTTON_ACCESSIBLE, GtkScaleButtonAccessibleClass))
+#define GTK_IS_SCALE_BUTTON_ACCESSIBLE(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SCALE_BUTTON_ACCESSIBLE))
+#define GTK_IS_SCALE_BUTTON_ACCESSIBLE_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SCALE_BUTTON_ACCESSIBLE))
+#define GTK_SCALE_BUTTON_ACCESSIBLE_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SCALE_BUTTON_ACCESSIBLE, GtkScaleButtonAccessibleClass))
+
+typedef struct _GtkScaleButtonAccessible      GtkScaleButtonAccessible;
+typedef struct _GtkScaleButtonAccessibleClass GtkScaleButtonAccessibleClass;
+
+struct _GtkScaleButtonAccessible
+{
+  GtkButtonAccessible parent;
+};
+
+struct _GtkScaleButtonAccessibleClass
+{
+  GtkButtonAccessibleClass parent_class;
+};
+
+GType _gtk_scale_button_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_SCALE_BUTTON_ACCESSIBLE_H__ */
similarity index 62%
rename from modules/other/gail/gailscrollbar.c
rename to gtk/a11y/gtkscrollbaraccessible.c
index 5d93c9ac0d98ccea6a1450346173ff0cf0f9f06d..65ca1054ce67c1690946ad593aaf8f922363e309 100644 (file)
 #include "config.h"
 
 #include <gtk/gtk.h>
-#include "gailscrollbar.h"
+#include "gtkscrollbaraccessible.h"
 
-static void gail_scrollbar_class_init  (GailScrollbarClass *klass);
-static void gail_scrollbar_init        (GailScrollbar      *accessible);
-static void gail_scrollbar_initialize  (AtkObject           *accessible,
-                                        gpointer             data);
 
-static gint gail_scrollbar_get_index_in_parent (AtkObject *accessible);
-
-G_DEFINE_TYPE (GailScrollbar, gail_scrollbar, GAIL_TYPE_RANGE)
-
-static void     
-gail_scrollbar_class_init (GailScrollbarClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->initialize = gail_scrollbar_initialize;
-  class->get_index_in_parent = gail_scrollbar_get_index_in_parent;
-}
+G_DEFINE_TYPE (GtkScrollbarAccessible, _gtk_scrollbar_accessible, GTK_TYPE_RANGE_ACCESSIBLE)
 
 static void
-gail_scrollbar_init (GailScrollbar      *accessible)
+_gtk_scrollbar_accessible_init (GtkScrollbarAccessible *accessible)
 {
 }
 
 static void
-gail_scrollbar_initialize (AtkObject *accessible,
-                           gpointer  data)
+gtk_scrollbar_accessible_initialize (AtkObject *accessible,
+                                     gpointer   data)
 {
-  ATK_OBJECT_CLASS (gail_scrollbar_parent_class)->initialize (accessible, data);
+  ATK_OBJECT_CLASS (_gtk_scrollbar_accessible_parent_class)->initialize (accessible, data);
 
   accessible->role = ATK_ROLE_SCROLL_BAR;
 }
 
 static gint
-gail_scrollbar_get_index_in_parent (AtkObject *accessible)
+gtk_scrollbar_accessible_get_index_in_parent (AtkObject *accessible)
 {
   GtkWidget *widget;
   GtkWidget *parent;
@@ -64,19 +49,12 @@ gail_scrollbar_get_index_in_parent (AtkObject *accessible)
   gint id;
 
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-
   if (widget == NULL)
-  {
-    /*
-     * State is defunct
-     */
     return -1;
-  }
-  g_return_val_if_fail (GTK_IS_SCROLLBAR (widget), -1);
 
   parent = gtk_widget_get_parent (widget);
   if (!GTK_IS_SCROLLED_WINDOW (parent))
-    return ATK_OBJECT_CLASS (gail_scrollbar_parent_class)->get_index_in_parent (accessible);
+    return ATK_OBJECT_CLASS (_gtk_scrollbar_accessible_parent_class)->get_index_in_parent (accessible);
 
   scrolled_window = GTK_SCROLLED_WINDOW (parent);
   id = 0;
@@ -103,4 +81,13 @@ gail_scrollbar_get_index_in_parent (AtkObject *accessible)
     }
 
   return -1;
-} 
+}
+
+static void
+_gtk_scrollbar_accessible_class_init (GtkScrollbarAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+  class->initialize = gtk_scrollbar_accessible_initialize;
+  class->get_index_in_parent = gtk_scrollbar_accessible_get_index_in_parent;
+}
diff --git a/gtk/a11y/gtkscrollbaraccessible.h b/gtk/a11y/gtkscrollbaraccessible.h
new file mode 100644 (file)
index 0000000..152f9d2
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_SCROLLBAR_ACCESSIBLE_H__
+#define __GTK_SCROLLBAR_ACCESSIBLE_H__
+
+#include "gtkrangeaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_SCROLLBAR_ACCESSIBLE                     (_gtk_scrollbar_accessible_get_type ())
+#define GTK_SCROLLBAR_ACCESSIBLE(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SCROLLBAR_ACCESSIBLE, GtkScrollbarAccessible))
+#define GTK_SCROLLBAR_ACCESSIBLE_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SCROLLBAR_ACCESSIBLE, GtkScrollbarAccessibleClass))
+#define GTK_IS_SCROLLBAR_ACCESSIBLE(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SCROLLBAR_ACCESSIBLE))
+#define GTK_IS_SCROLLBAR_ACCESSIBLE_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SCROLLBAR_ACCESSIBLE))
+#define GTK_SCROLLBAR_ACCESSIBLE_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SCROLLBAR_ACCESSIBLE, GtkScrollbarAccessibleClass))
+
+typedef struct _GtkScrollbarAccessible      GtkScrollbarAccessible;
+typedef struct _GtkScrollbarAccessibleClass GtkScrollbarAccessibleClass;
+
+struct _GtkScrollbarAccessible
+{
+  GtkRangeAccessible parent;
+};
+
+struct _GtkScrollbarAccessibleClass
+{
+  GtkRangeAccessibleClass parent_class;
+};
+
+GType _gtk_scrollbar_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_SCROLLBAR_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkscrolledwindowaccessible.c b/gtk/a11y/gtkscrolledwindowaccessible.c
new file mode 100644 (file)
index 0000000..f3cf79d
--- /dev/null
@@ -0,0 +1,195 @@
+/* GAIL - The GNOME Accessibility Enabling Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkscrolledwindowaccessible.h"
+
+
+G_DEFINE_TYPE (GtkScrolledWindowAccessible, _gtk_scrolled_window_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE)
+
+static void
+visibility_changed (GObject    *object,
+                    GParamSpec *pspec,
+                    gpointer    user_data)
+{
+  if (!g_strcmp0 (pspec->name, "visible"))
+    {
+      gint index;
+      gint n_children;
+      gboolean child_added = FALSE;
+      GList *children;
+      AtkObject *child;
+      GtkWidget *widget;
+      GtkScrolledWindow *scrolled_window;
+      GtkWidget *hscrollbar, *vscrollbar;
+      GtkAccessible *accessible = GTK_ACCESSIBLE (user_data);
+
+      widget = gtk_accessible_get_widget (user_data);
+      if (widget == NULL)
+        return;
+
+      scrolled_window = GTK_SCROLLED_WINDOW (widget);
+      children = gtk_container_get_children (GTK_CONTAINER (widget));
+      index = n_children = g_list_length (children);
+      g_list_free (children);
+
+      hscrollbar = gtk_scrolled_window_get_hscrollbar (scrolled_window);
+      vscrollbar = gtk_scrolled_window_get_vscrollbar (scrolled_window);
+
+      if ((gpointer) object == (gpointer) (hscrollbar))
+        {
+          if (gtk_scrolled_window_get_hscrollbar (scrolled_window))
+            child_added = TRUE;
+
+          child = gtk_widget_get_accessible (hscrollbar);
+        }
+      else if ((gpointer) object == (gpointer) (vscrollbar))
+        {
+          if (gtk_scrolled_window_get_vscrollbar (scrolled_window))
+            child_added = TRUE;
+
+          child = gtk_widget_get_accessible (vscrollbar);
+          if (gtk_scrolled_window_get_hscrollbar (scrolled_window))
+            index = n_children + 1;
+        }
+      else
+        {
+          g_assert_not_reached ();
+          return;
+        }
+
+      if (child_added)
+        g_signal_emit_by_name (accessible, "children-changed::add", index, child, NULL);
+      else
+        g_signal_emit_by_name (accessible, "children-changed::remove", index, child, NULL);
+
+    }
+}
+
+static void
+gtk_scrolled_window_accessible_initialize (AtkObject *obj,
+                                           gpointer  data)
+{
+  GtkScrolledWindow *window;
+
+  ATK_OBJECT_CLASS (_gtk_scrolled_window_accessible_parent_class)->initialize (obj, data);
+
+  window = GTK_SCROLLED_WINDOW (data);
+
+  g_signal_connect_data (gtk_scrolled_window_get_hscrollbar (window), "notify::visible",
+                         G_CALLBACK (visibility_changed),
+                         obj, NULL, FALSE);
+  g_signal_connect_data (gtk_scrolled_window_get_vscrollbar (window), "notify::visible",
+                         G_CALLBACK (visibility_changed),
+                         obj, NULL, FALSE);
+
+  obj->role = ATK_ROLE_SCROLL_PANE;
+}
+
+static gint
+gtk_scrolled_window_accessible_get_n_children (AtkObject *object)
+{
+  GtkWidget *widget;
+  GtkScrolledWindow *scrolled_window;
+  GList *children;
+  gint n_children;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (object));
+  if (widget == NULL)
+    return 0;
+
+  scrolled_window = GTK_SCROLLED_WINDOW (widget);
+
+  children = gtk_container_get_children (GTK_CONTAINER (widget));
+  n_children = g_list_length (children);
+  g_list_free (children);
+
+  if (gtk_scrolled_window_get_hscrollbar (scrolled_window))
+    n_children++;
+  if (gtk_scrolled_window_get_vscrollbar (scrolled_window))
+    n_children++;
+
+  return n_children;
+}
+
+static AtkObject *
+gtk_scrolled_window_accessible_ref_child (AtkObject *obj,
+                                          gint       child)
+{
+  GtkWidget *widget;
+  GtkScrolledWindow *scrolled_window;
+  GtkWidget *hscrollbar, *vscrollbar;
+  GList *children, *tmp_list;
+  gint n_children;
+  AtkObject  *accessible = NULL;
+
+  g_return_val_if_fail (child >= 0, NULL);
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  scrolled_window = GTK_SCROLLED_WINDOW (widget);
+  hscrollbar = gtk_scrolled_window_get_hscrollbar (scrolled_window);
+  vscrollbar = gtk_scrolled_window_get_vscrollbar (scrolled_window);
+
+  children = gtk_container_get_children (GTK_CONTAINER (widget));
+  n_children = g_list_length (children);
+
+  if (child == n_children)
+    {
+      if (gtk_scrolled_window_get_hscrollbar (scrolled_window))
+        accessible = gtk_widget_get_accessible (hscrollbar);
+      else if (gtk_scrolled_window_get_vscrollbar (scrolled_window))
+        accessible = gtk_widget_get_accessible (vscrollbar);
+    }
+  else if (child == n_children + 1 &&
+           gtk_scrolled_window_get_hscrollbar (scrolled_window) &&
+           gtk_scrolled_window_get_vscrollbar (scrolled_window))
+    accessible = gtk_widget_get_accessible (vscrollbar);
+  else if (child < n_children)
+    {
+      tmp_list = g_list_nth (children, child);
+      if (tmp_list)
+        accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
+    }
+
+  g_list_free (children);
+  if (accessible)
+    g_object_ref (accessible);
+
+  return accessible;
+}
+
+static void
+_gtk_scrolled_window_accessible_class_init (GtkScrolledWindowAccessibleClass *klass)
+{
+  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
+
+  class->get_n_children = gtk_scrolled_window_accessible_get_n_children;
+  class->ref_child = gtk_scrolled_window_accessible_ref_child;
+  class->initialize = gtk_scrolled_window_accessible_initialize;
+}
+
+static void
+_gtk_scrolled_window_accessible_init (GtkScrolledWindowAccessible *window)
+{
+}
diff --git a/gtk/a11y/gtkscrolledwindowaccessible.h b/gtk/a11y/gtkscrolledwindowaccessible.h
new file mode 100644 (file)
index 0000000..ad5e171
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_SCROLLED_WINDOW_ACCESSIBLE_H__
+#define __GTK_SCROLLED_WINDOW_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_SCROLLED_WINDOW_ACCESSIBLE            (_gtk_scrolled_window_accessible_get_type ())
+#define GTK_SCROLLED_WINDOW_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SCROLLED_WINDOW_ACCESSIBLE, GtkScrolledWindowAccessible))
+#define GTK_SCROLLED_WINDOW_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SCROLLED_WINDOW_ACCESSIBLE, GtkScrolledWindowAccessibleClass))
+#define GTK_IS_SCROLLED_WINDOW_ACCESSIBLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SCROLLED_WINDOW_ACCESSIBLE))
+#define GTK_IS_SCROLLED_WINDOW_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SCROLLED_WINDOW_ACCESSIBLE))
+#define GTK_SCROLLED_WINDOW_ACCESSIBLE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SCROLLED_WINDOW_ACCESSIBLE, GtkScrolledWindowAccessibleClass))
+
+typedef struct _GtkScrolledWindowAccessible      GtkScrolledWindowAccessible;
+typedef struct _GtkScrolledWindowAccessibleClass GtkScrolledWindowAccessibleClass;
+
+struct _GtkScrolledWindowAccessible
+{
+  GtkContainerAccessible parent;
+};
+
+struct _GtkScrolledWindowAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_scrolled_window_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_SCROLLED_WINDOW_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkspinbuttonaccessible.c b/gtk/a11y/gtkspinbuttonaccessible.c
new file mode 100644 (file)
index 0000000..df7b2c8
--- /dev/null
@@ -0,0 +1,195 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include "gtkspinbuttonaccessible.h"
+
+
+static void atk_value_interface_init (AtkValueIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkSpinButtonAccessible, _gtk_spin_button_accessible, GTK_TYPE_ENTRY_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init))
+
+static void
+gtk_spin_button_accessible_value_changed (GtkAdjustment *adjustment,
+                                          gpointer       data)
+{
+  GtkSpinButtonAccessible *spin_button;
+
+  if (adjustment == NULL || data == NULL)
+    return;
+
+  spin_button = GTK_SPIN_BUTTON_ACCESSIBLE (data);
+
+  g_object_notify (G_OBJECT (spin_button), "accessible-value");
+}
+
+static void
+gtk_spin_button_accessible_initialize (AtkObject *obj,
+                                       gpointer  data)
+{
+  GtkAdjustment *adjustment;
+
+  ATK_OBJECT_CLASS (_gtk_spin_button_accessible_parent_class)->initialize (obj, data);
+
+  adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (data));
+  if (adjustment)
+    g_signal_connect (adjustment,
+                      "value-changed",
+                      G_CALLBACK (gtk_spin_button_accessible_value_changed),
+                      obj);
+
+  obj->role = ATK_ROLE_SPIN_BUTTON;
+}
+
+static void
+gtk_spin_button_accessible_notify_gtk (GObject    *obj,
+                                       GParamSpec *pspec)
+{
+  GtkWidget *widget = GTK_WIDGET (obj);
+  GtkSpinButtonAccessible *spin_button = GTK_SPIN_BUTTON_ACCESSIBLE (gtk_widget_get_accessible (widget));
+
+  if (strcmp (pspec->name, "adjustment") == 0)
+    {
+      GtkAdjustment* adjustment;
+
+      adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
+      g_signal_connect (adjustment, "value-changed",
+                        G_CALLBACK (gtk_spin_button_accessible_value_changed),
+                        spin_button);
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_spin_button_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+
+
+static void
+_gtk_spin_button_accessible_class_init (GtkSpinButtonAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+
+  widget_class->notify_gtk = gtk_spin_button_accessible_notify_gtk;
+
+  class->initialize = gtk_spin_button_accessible_initialize;
+}
+
+static void
+_gtk_spin_button_accessible_init (GtkSpinButtonAccessible *button)
+{
+}
+
+static void
+gtk_spin_button_accessible_get_current_value (AtkValue *obj,
+                                              GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
+  if (adjustment == NULL)
+    return;
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_adjustment_get_value (adjustment));
+}
+
+static void
+gtk_spin_button_accessible_get_maximum_value (AtkValue *obj,
+                                              GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
+  if (adjustment == NULL)
+    return;
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_adjustment_get_upper (adjustment));
+}
+
+static void
+gtk_spin_button_accessible_get_minimum_value (AtkValue *obj,
+                                              GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
+  if (adjustment == NULL)
+    return;
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_adjustment_get_lower (adjustment));
+}
+
+static void
+gtk_spin_button_accessible_get_minimum_increment (AtkValue *obj,
+                                                  GValue   *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
+  if (adjustment == NULL)
+    return;
+
+  memset (value,  0, sizeof (GValue));
+  g_value_init (value, G_TYPE_DOUBLE);
+  g_value_set_double (value, gtk_adjustment_get_minimum_increment (adjustment));
+}
+
+static gboolean
+gtk_spin_button_accessible_set_current_value (AtkValue     *obj,
+                                              const GValue *value)
+{
+  GtkWidget *widget;
+  GtkAdjustment *adjustment;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  adjustment = gtk_spin_button_get_adjustment (GTK_SPIN_BUTTON (widget));
+  if (adjustment == NULL)
+    return FALSE;
+
+  gtk_adjustment_set_value (adjustment, g_value_get_double (value));
+
+  return TRUE;
+}
+
+static void
+atk_value_interface_init (AtkValueIface *iface)
+{
+  iface->get_current_value = gtk_spin_button_accessible_get_current_value;
+  iface->get_maximum_value = gtk_spin_button_accessible_get_maximum_value;
+  iface->get_minimum_value = gtk_spin_button_accessible_get_minimum_value;
+  iface->get_minimum_increment = gtk_spin_button_accessible_get_minimum_increment;
+  iface->set_current_value = gtk_spin_button_accessible_set_current_value;
+}
diff --git a/gtk/a11y/gtkspinbuttonaccessible.h b/gtk/a11y/gtkspinbuttonaccessible.h
new file mode 100644 (file)
index 0000000..96eb9e8
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_SPIN_BUTTON_ACCESSIBLE_H__
+#define __GTK_SPIN_BUTTON_ACCESSIBLE_H__
+
+#include "gtkentryaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_SPIN_BUTTON_ACCESSIBLE                      (_gtk_spin_button_accessible_get_type ())
+#define GTK_SPIN_BUTTON_ACCESSIBLE(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPIN_BUTTON_ACCESSIBLE, GtkSpinButtonAccessible))
+#define GTK_SPIN_BUTTON_ACCESSIBLE_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SPIN_BUTTON_ACCESSIBLE, GtkSpinButtonAccessibleClass))
+#define GTK_IS_SPIN_BUTTON_ACCESSIBLE(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SPIN_BUTTON_ACCESSIBLE))
+#define GTK_IS_SPIN_BUTTON_ACCESSIBLE_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SPIN_BUTTON_ACCESSIBLE))
+#define GTK_SPIN_BUTTON_ACCESSIBLE_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SPIN_BUTTON_ACCESSIBLE, GtkSpinButtonAccessibleClass))
+
+typedef struct _GtkSpinButtonAccessible       GtkSpinButtonAccessible;
+typedef struct _GtkSpinButtonAccessibleClass  GtkSpinButtonAccessibleClass;
+
+struct _GtkSpinButtonAccessible
+{
+  GtkEntryAccessible parent;
+};
+
+struct _GtkSpinButtonAccessibleClass
+{
+  GtkEntryAccessibleClass parent_class;
+};
+
+GType _gtk_spin_button_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_SPIN_BUTTON_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkspinneraccessible.c b/gtk/a11y/gtkspinneraccessible.c
new file mode 100644 (file)
index 0000000..1da24ae
--- /dev/null
@@ -0,0 +1,83 @@
+/* GTK - The GIMP Toolkit
+ *
+ * Copyright (C) 2007 John Stowers, Neil Jagdish Patel.
+ * Copyright (C) 2009 Bastien Nocera, David Zeuthen
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA  02111-1307, USA.
+ *
+ * Code adapted from egg-spinner
+ * by Christian Hergert <christian.hergert@gmail.com>
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkintl.h"
+#include "gtkspinneraccessible.h"
+
+static void atk_image_interface_init (AtkImageIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkSpinnerAccessible, _gtk_spinner_accessible, GTK_TYPE_WIDGET_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_interface_init));
+
+static void
+gtk_spinner_accessible_initialize (AtkObject *accessible,
+                                   gpointer   widget)
+{
+  ATK_OBJECT_CLASS (_gtk_spinner_accessible_parent_class)->initialize (accessible, widget);
+
+  atk_object_set_name (accessible, C_("throbbing progress animation widget", "Spinner"));
+  atk_object_set_description (accessible, _("Provides visual indication of progress"));
+  atk_object_set_role (accessible, ATK_ROLE_ANIMATION);
+}
+
+static void
+_gtk_spinner_accessible_class_init (GtkSpinnerAccessibleClass *klass)
+{
+  AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+
+  atk_class->initialize = gtk_spinner_accessible_initialize;
+}
+
+static void
+_gtk_spinner_accessible_init (GtkSpinnerAccessible *self)
+{
+}
+
+static void
+gtk_spinner_accessible_image_get_size (AtkImage *image,
+                                       gint     *width,
+                                       gint     *height)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
+  if (widget == NULL)
+    {
+      *width = 0;
+      *height = 0;
+      return;
+    }
+
+  *width = gtk_widget_get_allocated_width (widget);
+  *height = gtk_widget_get_allocated_height (widget);
+}
+
+static void
+atk_image_interface_init (AtkImageIface *iface)
+{
+  iface->get_image_size = gtk_spinner_accessible_image_get_size;
+}
diff --git a/gtk/a11y/gtkspinneraccessible.h b/gtk/a11y/gtkspinneraccessible.h
new file mode 100644 (file)
index 0000000..49c20f4
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2011 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_SPINNER_ACCESSIBLE_H__
+#define __GTK_SPINNER_ACCESSIBLE_H__
+
+#include "gtkwidgetaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_SPINNER_ACCESSIBLE              (_gtk_spinner_accessible_get_type ())
+#define GTK_SPINNER_ACCESSIBLE(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SPINNER_ACCESSIBLE, GtkSpinnerAccessible))
+#define GTK_SPINNER_ACCESSIBLE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SPINNER_ACCESSIBLE, GtkSpinnerAccessibleClass))
+#define GTK_IS_SPINNER_ACCESSIBLE(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SPINNER_ACCESSIBLE))
+#define GTK_IS_SPINNER_ACCESSIBLE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SPINNER_ACCESSIBLE))
+#define GTK_SPINNER_ACCESSIBLE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SPINNER_ACCESSIBLE, GtkSpinnerAccessibleClass))
+
+typedef struct _GtkSpinnerAccessible      GtkSpinnerAccessible;
+typedef struct _GtkSpinnerAccessibleClass GtkSpinnerAccessibleClass;
+
+struct _GtkSpinnerAccessible
+{
+  GtkWidgetAccessible parent;
+};
+
+struct _GtkSpinnerAccessibleClass
+{
+  GtkWidgetAccessibleClass parent_class;
+};
+
+GType _gtk_spinner_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_SPINNER_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkstatusbaraccessible.c b/gtk/a11y/gtkstatusbaraccessible.c
new file mode 100644 (file)
index 0000000..b28d657
--- /dev/null
@@ -0,0 +1,150 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <gtk/gtk.h>
+#include "gtkstatusbaraccessible.h"
+
+
+G_DEFINE_TYPE (GtkStatusbarAccessible, _gtk_statusbar_accessible, GTK_TYPE_BOX_ACCESSIBLE)
+
+static void
+text_changed (GtkStatusbar *statusbar,
+              guint         context_id,
+              const gchar  *text,
+              AtkObject    *obj)
+{
+  if (!obj->name)
+    g_object_notify (G_OBJECT (obj), "accessible-name");
+  g_signal_emit_by_name (obj, "visible-data-changed");
+}
+
+static void
+gtk_statusbar_accessible_initialize (AtkObject *obj,
+                                     gpointer   data)
+{
+  GtkWidget *statusbar = data;
+
+  ATK_OBJECT_CLASS (_gtk_statusbar_accessible_parent_class)->initialize (obj, data);
+
+  g_signal_connect_after (statusbar, "text-pushed",
+                          G_CALLBACK (text_changed), obj);
+  g_signal_connect_after (statusbar, "text-popped",
+                          G_CALLBACK (text_changed), obj);
+
+  obj->role = ATK_ROLE_STATUSBAR;
+}
+
+static GtkWidget *
+find_label_child (GtkContainer *container)
+{
+  GList *children, *tmp_list;
+  GtkWidget *child;
+
+  children = gtk_container_get_children (container);
+
+  child = NULL;
+  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next)
+    {
+      if (GTK_IS_LABEL (tmp_list->data))
+        {
+          child = GTK_WIDGET (tmp_list->data);
+          break;
+        }
+      else if (GTK_IS_CONTAINER (tmp_list->data))
+        {
+          child = find_label_child (GTK_CONTAINER (tmp_list->data));
+          if (child)
+            break;
+        }
+    }
+  g_list_free (children);
+
+  return child;
+}
+
+static GtkWidget *
+get_label_from_statusbar (GtkStatusbar *statusbar)
+{
+  GtkWidget *box;
+
+  box = gtk_statusbar_get_message_area (statusbar);
+
+  return find_label_child (GTK_CONTAINER (box));
+}
+
+static const gchar *
+gtk_statusbar_accessible_get_name (AtkObject *obj)
+{
+  const gchar *name;
+  GtkWidget *widget;
+  GtkWidget *label;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  name = ATK_OBJECT_CLASS (_gtk_statusbar_accessible_parent_class)->get_name (obj);
+  if (name != NULL)
+    return name;
+
+  label = get_label_from_statusbar (GTK_STATUSBAR (widget));
+  if (GTK_IS_LABEL (label))
+    return gtk_label_get_label (GTK_LABEL (label));
+
+  return NULL;
+}
+
+static gint
+gtk_statusbar_accessible_get_n_children (AtkObject *obj)
+{
+  return 0;
+}
+
+static AtkObject*
+gtk_statusbar_accessible_ref_child (AtkObject *obj,
+                                    gint       i)
+{
+  return NULL;
+}
+
+static void
+_gtk_statusbar_accessible_class_init (GtkStatusbarAccessibleClass *klass)
+{
+  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
+  GtkContainerAccessibleClass *container_class = (GtkContainerAccessibleClass*)klass;
+
+  class->get_name = gtk_statusbar_accessible_get_name;
+  class->get_n_children = gtk_statusbar_accessible_get_n_children;
+  class->ref_child = gtk_statusbar_accessible_ref_child;
+  class->initialize = gtk_statusbar_accessible_initialize;
+  /*
+   * As we report the statusbar as having no children
+   * we are not interested in add and remove signals
+   */
+  container_class->add_gtk = NULL;
+  container_class->remove_gtk = NULL;
+}
+
+static void
+_gtk_statusbar_accessible_init (GtkStatusbarAccessible *bar)
+{
+}
diff --git a/gtk/a11y/gtkstatusbaraccessible.h b/gtk/a11y/gtkstatusbaraccessible.h
new file mode 100644 (file)
index 0000000..17ce7e0
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_STATUSBAR_ACCESSIBLE_H__
+#define __GTK_STATUSBAR_ACCESSIBLE_H__
+
+#include "gtkboxaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_STATUSBAR_ACCESSIBLE                  (_gtk_statusbar_accessible_get_type ())
+#define GTK_STATUSBAR_ACCESSIBLE(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_STATUSBAR_ACCESSIBLE, GtkStatusbarAccessible))
+#define GTK_STATUSBAR_ACCESSIBLE_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_STATUSBAR_ACCESSIBLE, GtkStatusbarAccessibleClass))
+#define GTK_IS_STATUSBAR_ACCESSIBLE(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_STATUSBAR_ACCESSIBLE))
+#define GTK_IS_STATUSBAR_ACCESSIBLE_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_STATUSBAR_ACCESSIBLE))
+#define GTK_STATUSBAR_ACCESSIBLE_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_STATUSBAR_ACCESSIBLE, GtkStatusbarAccessibleClass))
+
+typedef struct _GtkStatusbarAccessible      GtkStatusbarAccessible;
+typedef struct _GtkStatusbarAccessibleClass GtkStatusbarAccessibleClass;
+
+struct _GtkStatusbarAccessible
+{
+  GtkBoxAccessible parent;
+};
+
+struct _GtkStatusbarAccessibleClass
+{
+  GtkBoxAccessibleClass parent_class;
+};
+
+GType _gtk_statusbar_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_STATUSBAR_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkswitchaccessible.c b/gtk/a11y/gtkswitchaccessible.c
new file mode 100644 (file)
index 0000000..b49b223
--- /dev/null
@@ -0,0 +1,128 @@
+/* GTK - The GIMP Toolkit
+ *
+ * Copyright (C) 2010  Intel Corporation
+ * Copyright (C) 2010  RedHat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA  02111-1307, USA.
+ *
+ * Author:
+ *      Emmanuele Bassi <ebassi@linux.intel.com>
+ *      Matthias Clasen <mclasen@redhat.com>
+ *
+ * Based on similar code from Mx.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "gtkintl.h"
+#include "gtkswitchaccessible.h"
+
+
+static void atk_action_interface_init (AtkActionIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkSwitchAccessible, _gtk_switch_accessible, GTK_TYPE_WIDGET_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
+
+static AtkStateSet *
+gtk_switch_accessible_ref_state_set (AtkObject *accessible)
+{
+  AtkStateSet *state_set;
+  GtkWidget *widget;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_switch_accessible_parent_class)->ref_state_set (accessible);
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return state_set;
+
+  if (gtk_switch_get_active (GTK_SWITCH (widget)))
+    atk_state_set_add_state (state_set, ATK_STATE_CHECKED);
+
+  return state_set;
+}
+
+static void
+gtk_switch_accessible_initialize (AtkObject *accessible,
+                                  gpointer   widget)
+{
+  ATK_OBJECT_CLASS (_gtk_switch_accessible_parent_class)->initialize (accessible, widget);
+
+  atk_object_set_role (accessible, ATK_ROLE_TOGGLE_BUTTON);
+  atk_object_set_name (accessible, C_("light switch widget", "Switch"));
+  atk_object_set_description (accessible, _("Switches between on and off states"));
+}
+
+static void
+_gtk_switch_accessible_class_init (GtkSwitchAccessibleClass *klass)
+{
+  AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
+
+  atk_class->initialize = gtk_switch_accessible_initialize;
+  atk_class->ref_state_set = gtk_switch_accessible_ref_state_set;
+}
+
+static void
+_gtk_switch_accessible_init (GtkSwitchAccessible *self)
+{
+}
+
+static gint
+gtk_switch_action_get_n_actions (AtkAction *action)
+{
+  return 1;
+}
+
+static const gchar *
+gtk_switch_action_get_name (AtkAction *action,
+                            gint       i)
+{
+  if (i != 0)
+    return NULL;
+
+  return "toggle";
+}
+
+static gboolean
+gtk_switch_action_do_action (AtkAction *action,
+                             gint       i)
+{
+  GtkSwitch *sw;
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
+  if (widget == NULL)
+    return FALSE;
+
+  if (i != 0)
+    return FALSE;
+
+  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
+    return FALSE;
+
+  sw = GTK_SWITCH (widget);
+  gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
+
+  return TRUE;
+}
+
+static void
+atk_action_interface_init (AtkActionIface *iface)
+{
+  iface->do_action = gtk_switch_action_do_action;
+  iface->get_n_actions = gtk_switch_action_get_n_actions;
+  iface->get_name = gtk_switch_action_get_name;
+}
diff --git a/gtk/a11y/gtkswitchaccessible.h b/gtk/a11y/gtkswitchaccessible.h
new file mode 100644 (file)
index 0000000..cad8c85
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2011 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_SWITCH_ACCESSIBLE_H__
+#define __GTK_SWITCH_ACCESSIBLE_H__
+
+#include "gtkwidgetaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_SWITCH_ACCESSIBLE              (_gtk_switch_accessible_get_type ())
+#define GTK_SWITCH_ACCESSIBLE(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SWITCH_ACCESSIBLE, GtkSwitchAccessible))
+#define GTK_SWITCH_ACCESSIBLE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SWITCH_ACCESSIBLE, GtkSwitchAccessibleClass))
+#define GTK_IS_SWITCH_ACCESSIBLE(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SWITCH_ACCESSIBLE))
+#define GTK_IS_SWITCH_ACCESSIBLE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SWITCH_ACCESSIBLE))
+#define GTK_SWITCH_ACCESSIBLE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SWITCH_ACCESSIBLE, GtkSwitchAccessibleClass))
+
+typedef struct _GtkSwitchAccessible      GtkSwitchAccessible;
+typedef struct _GtkSwitchAccessibleClass GtkSwitchAccessibleClass;
+
+struct _GtkSwitchAccessible
+{
+  GtkWidgetAccessible parent;
+};
+
+struct _GtkSwitchAccessibleClass
+{
+  GtkWidgetAccessibleClass parent_class;
+};
+
+GType _gtk_switch_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_SWITCH_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtktextcellaccessible.c b/gtk/a11y/gtktextcellaccessible.c
new file mode 100644 (file)
index 0000000..c6214b9
--- /dev/null
@@ -0,0 +1,806 @@
+/* GAIL - The GNOME Accessibility Enabling Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#include "../gtkpango.h"
+#include "gtktextcellaccessible.h"
+#include "gtkcontainercellaccessible.h"
+#include "gtkcellaccessibleparent.h"
+
+static const gchar* gtk_text_cell_accessible_get_name    (AtkObject      *atk_obj);
+
+
+/* atktext.h */
+
+static gchar*    gtk_text_cell_accessible_get_text                (AtkText        *text,
+                                                        gint            start_pos,
+                                                        gint            end_pos);
+static gunichar gtk_text_cell_accessible_get_character_at_offset  (AtkText        *text,
+                                                         gint           offset);
+static gchar*   gtk_text_cell_accessible_get_text_before_offset   (AtkText        *text,
+                                                         gint           offset,
+                                                         AtkTextBoundary boundary_type,
+                                                         gint           *start_offset,
+                                                         gint           *end_offset);
+static gchar*   gtk_text_cell_accessible_get_text_at_offset       (AtkText        *text,
+                                                         gint           offset,
+                                                         AtkTextBoundary boundary_type,
+                                                         gint           *start_offset,
+                                                         gint           *end_offset);
+static gchar*   gtk_text_cell_accessible_get_text_after_offset    (AtkText        *text,
+                                                         gint           offset,
+                                                         AtkTextBoundary boundary_type,
+                                                         gint           *start_offset,
+                                                         gint           *end_offset);
+static gint      gtk_text_cell_accessible_get_character_count     (AtkText        *text);
+static gint      gtk_text_cell_accessible_get_caret_offset        (AtkText        *text);
+static gboolean  gtk_text_cell_accessible_set_caret_offset        (AtkText        *text,
+                                                         gint           offset);
+static void      gtk_text_cell_accessible_get_character_extents   (AtkText        *text,
+                                                         gint           offset,
+                                                         gint           *x,
+                                                         gint           *y,
+                                                         gint           *width,
+                                                         gint           *height,
+                                                         AtkCoordType   coords);
+static gint      gtk_text_cell_accessible_get_offset_at_point     (AtkText        *text,
+                                                         gint           x,
+                                                         gint           y,
+                                                         AtkCoordType   coords);
+static AtkAttributeSet* gtk_text_cell_accessible_get_run_attributes 
+                                                        (AtkText        *text,
+                                                         gint           offset,
+                                                         gint           *start_offset,      
+                                                         gint           *end_offset); 
+static AtkAttributeSet* gtk_text_cell_accessible_get_default_attributes 
+                                                        (AtkText        *text);
+
+static GtkWidget*       get_widget                      (GtkTextCellAccessible *cell);
+static PangoLayout*     create_pango_layout             (GtkTextCellAccessible *cell);
+static void             add_attr                        (PangoAttrList  *attr_list,
+                                                         PangoAttribute *attr);
+
+/* Misc */
+
+static gboolean gtk_text_cell_accessible_update_cache             (GtkRendererCellAccessible *cell,
+                                                         gboolean       emit_change_signal);
+
+static gchar *property_list[] = {
+  /* Set font_desc first since it resets other values if it is NULL */
+  "font-desc",
+  "attributes",
+  "background-gdk",
+  "editable",
+  "family",
+  "foreground-gdk",
+  "rise",
+  "scale",
+  "size",
+  "size-points",
+  "stretch",
+  "strikethrough",
+  "style",
+  "text",
+  "underline",
+  "variant",
+  "weight",
+
+  /* Also need the sets */
+  "background-set",
+  "editable-set",
+  "family-set",
+  "foreground-set",
+  "rise-set",
+  "scale-set",
+  "size-set",
+  "stretch-set",
+  "strikethrough-set",
+  "style-set",
+  "underline-set",
+  "variant-set",
+  "weight-set",
+  NULL
+};
+
+static void atk_text_interface_init (AtkTextIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkTextCellAccessible, _gtk_text_cell_accessible, GTK_TYPE_RENDERER_CELL_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init))
+
+
+static void
+gtk_text_cell_accessible_finalize (GObject *object)
+{
+  GtkTextCellAccessible *text_cell = GTK_TEXT_CELL_ACCESSIBLE (object);
+
+  g_free (text_cell->cell_text);
+
+  G_OBJECT_CLASS (_gtk_text_cell_accessible_parent_class)->finalize (object);
+}
+
+static const gchar *
+gtk_text_cell_accessible_get_name (AtkObject *atk_obj)
+{
+  GtkTextCellAccessible *text_cell = GTK_TEXT_CELL_ACCESSIBLE (atk_obj);
+
+  if (atk_obj->name)
+    return atk_obj->name;
+
+  return text_cell->cell_text;
+}
+
+static gboolean
+gtk_text_cell_accessible_update_cache (GtkRendererCellAccessible *cell,
+                                       gboolean                   emit_change_signal)
+{
+  GtkTextCellAccessible *text_cell = GTK_TEXT_CELL_ACCESSIBLE (cell);
+  AtkObject *obj = ATK_OBJECT (cell);
+  gboolean rv = FALSE;
+  gint temp_length;
+  gchar *text;
+
+  g_object_get (G_OBJECT (cell->renderer), "text", &text, NULL);
+
+  if (text_cell->cell_text)
+    {
+      if (text == NULL || g_strcmp0 (text_cell->cell_text, text) != 0)
+        {
+          g_free (text_cell->cell_text);
+          temp_length = text_cell->cell_length;
+          text_cell->cell_text = NULL;
+          text_cell->cell_length = 0;
+          if (emit_change_signal)
+            {
+              g_signal_emit_by_name (cell, "text-changed::delete", 0, temp_length);
+              if (obj->name == NULL)
+                g_object_notify (G_OBJECT (obj), "accessible-name");
+            }
+          if (text)
+            rv = TRUE;
+        }
+    }
+  else
+    rv = TRUE;
+
+  if (rv)
+    {
+      if (text == NULL)
+        {
+          text_cell->cell_text = g_strdup ("");
+          text_cell->cell_length = 0;
+        }
+      else
+        {
+          text_cell->cell_text = g_strdup (text);
+          text_cell->cell_length = g_utf8_strlen (text, -1);
+        }
+    }
+
+  g_free (text);
+
+  if (rv)
+    {
+      if (emit_change_signal)
+        {
+          g_signal_emit_by_name (cell, "text-changed::insert",
+                                 0, text_cell->cell_length);
+
+          if (obj->name == NULL)
+            g_object_notify (G_OBJECT (obj), "accessible-name");
+        }
+    }
+  return rv;
+}
+
+static void
+_gtk_text_cell_accessible_class_init (GtkTextCellAccessibleClass *klass)
+{
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  AtkObjectClass *atk_object_class = ATK_OBJECT_CLASS (klass);
+  GtkRendererCellAccessibleClass *renderer_cell_class = GTK_RENDERER_CELL_ACCESSIBLE_CLASS (klass);
+
+  renderer_cell_class->update_cache = gtk_text_cell_accessible_update_cache;
+  renderer_cell_class->property_list = property_list;
+
+  atk_object_class->get_name = gtk_text_cell_accessible_get_name;
+
+  gobject_class->finalize = gtk_text_cell_accessible_finalize;
+}
+
+static void
+_gtk_text_cell_accessible_init (GtkTextCellAccessible *text_cell)
+{
+  text_cell->cell_text = NULL;
+  text_cell->caret_pos = 0;
+  text_cell->cell_length = 0;
+  atk_state_set_add_state (GTK_CELL_ACCESSIBLE (text_cell)->state_set,
+                           ATK_STATE_SINGLE_LINE);
+}
+
+AtkObject *
+_gtk_text_cell_accessible_new (void)
+{
+  GObject *object;
+  AtkObject *atk_object;
+  GtkRendererCellAccessible *cell;
+
+  object = g_object_new (GTK_TYPE_TEXT_CELL_ACCESSIBLE, NULL);
+
+  g_return_val_if_fail (object != NULL, NULL);
+
+  atk_object = ATK_OBJECT (object);
+  atk_object->role = ATK_ROLE_TABLE_CELL;
+
+  cell = GTK_RENDERER_CELL_ACCESSIBLE(object);
+
+  cell->renderer = gtk_cell_renderer_text_new ();
+  g_object_ref_sink (cell->renderer);
+
+  return atk_object;
+}
+
+static gchar *
+gtk_text_cell_accessible_get_text (AtkText *atk_text,
+                                   gint     start_pos,
+                                   gint     end_pos)
+{
+  gchar *text;
+
+  text = GTK_TEXT_CELL_ACCESSIBLE (atk_text)->cell_text;
+  if (text)
+    return g_utf8_substring (text, start_pos, end_pos > -1 ? end_pos : g_utf8_strlen (text, -1));
+  else
+    return g_strdup ("");
+}
+
+static gchar *
+gtk_text_cell_accessible_get_text_before_offset (AtkText         *atk_text,
+                                                 gint             offset,
+                                                 AtkTextBoundary  boundary_type,
+                                                 gint            *start_offset,
+                                                 gint            *end_offset)
+{
+  PangoLayout *layout;
+  gchar *text;
+
+  layout = create_pango_layout (GTK_TEXT_CELL_ACCESSIBLE (atk_text));
+  text = _gtk_pango_get_text_before (layout, boundary_type, offset, start_offset, end_offset);
+  g_object_unref (layout);
+
+  return text;
+}
+
+static gchar *
+gtk_text_cell_accessible_get_text_at_offset (AtkText         *atk_text,
+                                             gint             offset,
+                                             AtkTextBoundary  boundary_type,
+                                             gint            *start_offset,
+                                             gint            *end_offset)
+{
+  PangoLayout *layout;
+  gchar *text;
+
+  layout = create_pango_layout (GTK_TEXT_CELL_ACCESSIBLE (atk_text));
+  text = _gtk_pango_get_text_at (layout, boundary_type, offset, start_offset, end_offset);
+  g_object_unref (layout);
+
+  return text;
+}
+
+static gchar *
+gtk_text_cell_accessible_get_text_after_offset (AtkText         *atk_text,
+                                                gint             offset,
+                                                AtkTextBoundary  boundary_type,
+                                                gint            *start_offset,
+                                                gint            *end_offset)
+{
+  PangoLayout *layout;
+  gchar *text;
+
+  layout = create_pango_layout (GTK_TEXT_CELL_ACCESSIBLE (atk_text));
+  text = _gtk_pango_get_text_after (layout, boundary_type, offset, start_offset, end_offset);
+  g_object_unref (layout);
+
+  return text;
+}
+
+static gint
+gtk_text_cell_accessible_get_character_count (AtkText *text)
+{
+  if (GTK_TEXT_CELL_ACCESSIBLE (text)->cell_text != NULL)
+    return GTK_TEXT_CELL_ACCESSIBLE (text)->cell_length;
+  else
+    return 0;
+}
+
+static gint
+gtk_text_cell_accessible_get_caret_offset (AtkText *text)
+{
+  return GTK_TEXT_CELL_ACCESSIBLE (text)->caret_pos;
+}
+
+static gboolean
+gtk_text_cell_accessible_set_caret_offset (AtkText *text,
+                                           gint     offset)
+{
+  GtkTextCellAccessible *text_cell = GTK_TEXT_CELL_ACCESSIBLE (text);
+
+  if (text_cell->cell_text == NULL)
+    return FALSE;
+  else
+    {
+      /* Only set the caret within the bounds and if it is to a new position. */
+      if (offset >= 0 &&
+          offset <= text_cell->cell_length &&
+          offset != text_cell->caret_pos)
+        {
+          text_cell->caret_pos = offset;
+
+          /* emit the signal */
+          g_signal_emit_by_name (text, "text-caret-moved", offset);
+          return TRUE;
+        }
+      else
+        return FALSE;
+    }
+}
+
+static AtkAttributeSet *
+gtk_text_cell_accessible_get_run_attributes (AtkText *text,
+                                             gint     offset,
+                                             gint    *start_offset,
+                                             gint    *end_offset)
+{
+  AtkAttributeSet *attrib_set = NULL;
+  PangoLayout *layout;
+
+  layout = create_pango_layout (GTK_TEXT_CELL_ACCESSIBLE (text));
+  attrib_set = _gtk_pango_get_run_attributes  (NULL, layout, offset, start_offset, end_offset);
+  g_object_unref (G_OBJECT (layout));
+
+  return attrib_set;
+}
+
+static AtkAttributeSet *
+add_attribute (AtkAttributeSet  *attributes,
+               AtkTextAttribute  attr,
+               const gchar      *value)
+{
+  AtkAttribute *at;
+
+  at = g_new (AtkAttribute, 1);
+  at->name = g_strdup (atk_text_attribute_get_name (attr));
+  at->value = g_strdup (value);
+
+  return g_slist_prepend (attributes, at);
+}
+
+static AtkAttributeSet *
+gtk_text_cell_accessible_get_default_attributes (AtkText *text)
+{
+  AtkAttributeSet *attrib_set = NULL;
+  PangoLayout *layout;
+  GtkWidget *widget;
+
+  layout = create_pango_layout (GTK_TEXT_CELL_ACCESSIBLE (text));
+  widget = get_widget (GTK_TEXT_CELL_ACCESSIBLE (text));
+
+  attrib_set = add_attribute (attrib_set, ATK_TEXT_ATTR_DIRECTION,
+                   atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION,
+                                                 gtk_widget_get_direction (widget)));
+  attrib_set = _gtk_pango_get_default_attributes (NULL, layout);
+
+  attrib_set = _gtk_style_context_get_attributes (attrib_set,
+                                                  gtk_widget_get_style_context (widget),
+                                                  gtk_widget_get_state_flags (widget));
+
+  g_object_unref (G_OBJECT (layout));
+
+  return attrib_set;
+}
+
+GtkWidget *
+get_widget (GtkTextCellAccessible *text)
+{
+  AtkObject *parent;
+
+  parent = atk_object_get_parent (ATK_OBJECT (text));
+  if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
+    parent = atk_object_get_parent (parent);
+
+  return gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
+}
+
+/* This function is used by gtk_text_cell_accessible_get_offset_at_point()
+ * and gtk_text_cell_accessible_get_character_extents(). There is no
+ * cached PangoLayout so we must create a temporary one using this function.
+ */
+static PangoLayout *
+create_pango_layout (GtkTextCellAccessible *text)
+{
+  GdkRGBA *foreground_rgba;
+  PangoAttrList *attr_list, *attributes;
+  PangoLayout *layout;
+  PangoUnderline uline, underline;
+  PangoFontMask mask;
+  PangoFontDescription *font_desc;
+  gboolean foreground_set, strikethrough_set, strikethrough;
+  gboolean scale_set, underline_set, rise_set;
+  gchar *renderer_text;
+  gdouble scale;
+  gint rise;
+  GtkRendererCellAccessible *gail_renderer;
+  GtkCellRendererText *gtk_renderer;
+
+  gail_renderer = GTK_RENDERER_CELL_ACCESSIBLE (text);
+  gtk_renderer = GTK_CELL_RENDERER_TEXT (gail_renderer->renderer);
+
+  g_object_get (gtk_renderer,
+                "text", &renderer_text,
+                "attributes", &attributes,
+                "foreground-set", &foreground_set,
+                "foreground-rgba", &foreground_rgba,
+                "strikethrough-set", &strikethrough_set,
+                "strikethrough", &strikethrough,
+                "font-desc", &font_desc,
+                "scale-set", &scale_set,
+                "scale", &scale,
+                "underline-set", &underline_set,
+                "underline", &underline,
+                "rise-set", &rise_set,
+                "rise", &rise,
+                NULL);
+
+  layout = gtk_widget_create_pango_layout (get_widget (text), renderer_text);
+
+  if (attributes)
+    attr_list = pango_attr_list_copy (attributes);
+  else
+    attr_list = pango_attr_list_new ();
+
+  if (foreground_set)
+    {
+      add_attr (attr_list, pango_attr_foreground_new (foreground_rgba->red * 65535,
+                                                      foreground_rgba->green * 65535,
+                                                      foreground_rgba->blue * 65535));
+    }
+
+  if (strikethrough_set)
+    add_attr (attr_list,
+              pango_attr_strikethrough_new (strikethrough));
+
+  mask = pango_font_description_get_set_fields (font_desc);
+
+  if (mask & PANGO_FONT_MASK_FAMILY)
+    add_attr (attr_list,
+      pango_attr_family_new (pango_font_description_get_family (font_desc)));
+
+  if (mask & PANGO_FONT_MASK_STYLE)
+    add_attr (attr_list, pango_attr_style_new (pango_font_description_get_style (font_desc)));
+
+  if (mask & PANGO_FONT_MASK_VARIANT)
+    add_attr (attr_list, pango_attr_variant_new (pango_font_description_get_variant (font_desc)));
+
+  if (mask & PANGO_FONT_MASK_WEIGHT)
+    add_attr (attr_list, pango_attr_weight_new (pango_font_description_get_weight (font_desc)));
+
+  if (mask & PANGO_FONT_MASK_STRETCH)
+    add_attr (attr_list, pango_attr_stretch_new (pango_font_description_get_stretch (font_desc)));
+
+  if (mask & PANGO_FONT_MASK_SIZE)
+    add_attr (attr_list, pango_attr_size_new (pango_font_description_get_size (font_desc)));
+
+  if (scale_set && scale != 1.0)
+    add_attr (attr_list, pango_attr_scale_new (scale));
+
+  if (underline_set)
+    uline = underline;
+  else
+    uline = PANGO_UNDERLINE_NONE;
+
+  if (uline != PANGO_UNDERLINE_NONE)
+    add_attr (attr_list,
+              pango_attr_underline_new (underline));
+
+  if (rise_set)
+    add_attr (attr_list, pango_attr_rise_new (rise));
+
+  pango_layout_set_attributes (layout, attr_list);
+  pango_layout_set_width (layout, -1);
+  pango_attr_list_unref (attr_list);
+
+  pango_font_description_free (font_desc);
+  pango_attr_list_unref (attributes);
+  g_free (renderer_text);
+  gdk_rgba_free (foreground_rgba);
+
+  return layout;
+}
+
+static void
+add_attr (PangoAttrList *attr_list,
+         PangoAttribute *attr)
+{
+  attr->start_index = 0;
+  attr->end_index = G_MAXINT;
+  pango_attr_list_insert (attr_list, attr);
+}
+
+
+static void
+get_origins (GtkWidget *widget,
+             gint      *x_window,
+             gint      *y_window,
+             gint      *x_toplevel,
+             gint      *y_toplevel)
+{
+  GdkWindow *window;
+
+  if (GTK_IS_TREE_VIEW (widget))
+    window = gtk_tree_view_get_bin_window (GTK_TREE_VIEW (widget));
+  else
+    window = gtk_widget_get_window (widget);
+
+  gdk_window_get_origin (window, x_window, y_window);
+  window = gdk_window_get_toplevel (gtk_widget_get_window (widget));
+  gdk_window_get_origin (window, x_toplevel, y_toplevel);
+}
+
+static void
+gtk_text_cell_accessible_get_character_extents (AtkText      *text,
+                                                gint          offset,
+                                                gint         *x,
+                                                gint         *y,
+                                                gint         *width,
+                                                gint         *height,
+                                                AtkCoordType  coords)
+{
+  GtkRendererCellAccessible *gail_renderer;
+  GtkRequisition min_size;
+  GtkCellRendererText *gtk_renderer;
+  GdkRectangle rendered_rect;
+  GtkWidget *widget;
+  AtkObject *parent;
+  PangoRectangle char_rect;
+  PangoLayout *layout;
+  gchar *renderer_text;
+  gfloat xalign, yalign;
+  gint x_offset, y_offset, index;
+  gint xpad, ypad;
+  gint x_window, y_window, x_toplevel, y_toplevel;
+
+  if (!GTK_TEXT_CELL_ACCESSIBLE (text)->cell_text)
+    {
+      *x = *y = *height = *width = 0;
+      return;
+    }
+  if (offset < 0 || offset >= GTK_TEXT_CELL_ACCESSIBLE (text)->cell_length)
+    {
+      *x = *y = *height = *width = 0;
+      return;
+    }
+  gail_renderer = GTK_RENDERER_CELL_ACCESSIBLE (text);
+  gtk_renderer = GTK_CELL_RENDERER_TEXT (gail_renderer->renderer);
+
+  g_object_get (gtk_renderer, "text", &renderer_text, NULL);
+  if (text == NULL)
+    {
+      g_free (renderer_text);
+      return;
+    }
+
+  parent = atk_object_get_parent (ATK_OBJECT (text));
+  if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
+    parent = atk_object_get_parent (parent);
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
+  g_return_if_fail (GTK_IS_CELL_ACCESSIBLE_PARENT (parent));
+  _gtk_cell_accessible_parent_get_cell_area (GTK_CELL_ACCESSIBLE_PARENT (parent),
+                                             GTK_CELL_ACCESSIBLE (text),
+                                             &rendered_rect);
+
+  gtk_cell_renderer_get_preferred_size (GTK_CELL_RENDERER (gtk_renderer),
+                                        widget,
+                                        &min_size, NULL);
+
+  gtk_cell_renderer_get_alignment (GTK_CELL_RENDERER (gtk_renderer), &xalign, &yalign);
+  if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
+    xalign = 1.0 - xalign;
+  x_offset = MAX (0, xalign * (rendered_rect.width - min_size.width));
+  y_offset = MAX (0, yalign * (rendered_rect.height - min_size.height));
+
+  layout = create_pango_layout (GTK_TEXT_CELL_ACCESSIBLE (text));
+
+  index = g_utf8_offset_to_pointer (renderer_text, offset) - renderer_text;
+  pango_layout_index_to_pos (layout, index, &char_rect);
+
+  gtk_cell_renderer_get_padding (gail_renderer->renderer, &xpad, &ypad);
+
+  get_origins (widget, &x_window, &y_window, &x_toplevel, &y_toplevel);
+
+  *x = (char_rect.x / PANGO_SCALE) + x_offset + rendered_rect.x + xpad + x_window;
+  *y = (char_rect.y / PANGO_SCALE) + y_offset + rendered_rect.y + ypad + y_window;
+  *height = char_rect.height / PANGO_SCALE;
+  *width = char_rect.width / PANGO_SCALE;
+
+  if (coords == ATK_XY_WINDOW)
+    {
+      *x -= x_toplevel;
+      *y -= y_toplevel;
+    }
+  else if (coords != ATK_XY_SCREEN)
+    {
+      *x = 0;
+      *y = 0;
+      *height = 0;
+      *width = 0;
+    }
+
+  g_free (renderer_text);
+  g_object_unref (layout);
+}
+
+static gint
+gtk_text_cell_accessible_get_offset_at_point (AtkText      *text,
+                                              gint          x,
+                                              gint          y,
+                                              AtkCoordType  coords)
+{
+  AtkObject *parent;
+  GtkRendererCellAccessible *gail_renderer;
+  GtkCellRendererText *gtk_renderer;
+  GtkRequisition min_size;
+  GtkWidget *widget;
+  GdkRectangle rendered_rect;
+  PangoLayout *layout;
+  gchar *renderer_text;
+  gfloat xalign, yalign;
+  gint x_offset, y_offset, index;
+  gint xpad, ypad;
+  gint x_window, y_window, x_toplevel, y_toplevel;
+  gint x_temp, y_temp;
+  gboolean ret;
+
+  if (!GTK_TEXT_CELL_ACCESSIBLE (text)->cell_text)
+    return -1;
+
+  gail_renderer = GTK_RENDERER_CELL_ACCESSIBLE (text);
+  gtk_renderer = GTK_CELL_RENDERER_TEXT (gail_renderer->renderer);
+  parent = atk_object_get_parent (ATK_OBJECT (text));
+
+  g_object_get (gtk_renderer, "text", &renderer_text, NULL);
+  if (text == NULL)
+    {
+      g_free (renderer_text);
+      return -1;
+    }
+
+  if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
+    parent = atk_object_get_parent (parent);
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
+
+  g_return_val_if_fail (GTK_IS_CELL_ACCESSIBLE_PARENT (parent), -1);
+  _gtk_cell_accessible_parent_get_cell_area (GTK_CELL_ACCESSIBLE_PARENT (parent),
+                                             GTK_CELL_ACCESSIBLE (text),
+                                             &rendered_rect);
+
+  gtk_cell_renderer_get_preferred_size (GTK_CELL_RENDERER (gtk_renderer),
+                                        widget,
+                                        &min_size, NULL);
+  gtk_cell_renderer_get_alignment (GTK_CELL_RENDERER (gtk_renderer), &xalign, &yalign);
+  if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
+    xalign = 1.0 - xalign;
+  x_offset = MAX (0, xalign * (rendered_rect.width - min_size.width));
+  y_offset = MAX (0, yalign * (rendered_rect.height - min_size.height));
+
+  layout = create_pango_layout (GTK_TEXT_CELL_ACCESSIBLE (text));
+
+  gtk_cell_renderer_get_padding (gail_renderer->renderer, &xpad, &ypad);
+
+  get_origins (widget, &x_window, &y_window, &x_toplevel, &y_toplevel);
+
+  x_temp =  x - (x_offset + rendered_rect.x + xpad) - x_window;
+  y_temp =  y - (y_offset + rendered_rect.y + ypad) - y_window;
+  if (coords == ATK_XY_WINDOW)
+    {
+      x_temp += x_toplevel;
+      y_temp += y_toplevel;
+    }
+  else if (coords != ATK_XY_SCREEN)
+    index = -1;
+
+  ret = pango_layout_xy_to_index (layout,
+                                  x_temp * PANGO_SCALE,
+                                  y_temp * PANGO_SCALE,
+                                  &index, NULL);
+  if (!ret)
+    {
+      if (x_temp < 0 || y_temp < 0)
+        index = 0;
+      else
+        index = -1;
+    }
+
+  g_object_unref (layout);
+  if (index == -1)
+    {
+      if (coords == ATK_XY_WINDOW || coords == ATK_XY_SCREEN)
+        {
+          glong length;
+
+          length = g_utf8_strlen (renderer_text, -1);
+          g_free (renderer_text);
+
+          return length;
+        }
+
+      g_free (renderer_text);
+
+      return index;
+    }
+  else
+    {
+      glong offset;
+
+      offset = g_utf8_pointer_to_offset (renderer_text,
+                                         renderer_text + index);
+      g_free (renderer_text);
+
+      return offset;
+    }
+}
+
+static gunichar
+gtk_text_cell_accessible_get_character_at_offset (AtkText *text,
+                                                  gint     offset)
+{
+  gchar *index;
+  gchar *string;
+
+  string = GTK_TEXT_CELL_ACCESSIBLE(text)->cell_text;
+
+  if (!string)
+    return '\0';
+
+  if (offset >= g_utf8_strlen (string, -1))
+    return '\0';
+
+  index = g_utf8_offset_to_pointer (string, offset);
+
+  return g_utf8_get_char (index);
+}
+
+static void
+atk_text_interface_init (AtkTextIface *iface)
+{
+  iface->get_text = gtk_text_cell_accessible_get_text;
+  iface->get_character_at_offset = gtk_text_cell_accessible_get_character_at_offset;
+  iface->get_text_before_offset = gtk_text_cell_accessible_get_text_before_offset;
+  iface->get_text_at_offset = gtk_text_cell_accessible_get_text_at_offset;
+  iface->get_text_after_offset = gtk_text_cell_accessible_get_text_after_offset;
+  iface->get_character_count = gtk_text_cell_accessible_get_character_count;
+  iface->get_caret_offset = gtk_text_cell_accessible_get_caret_offset;
+  iface->set_caret_offset = gtk_text_cell_accessible_set_caret_offset;
+  iface->get_run_attributes = gtk_text_cell_accessible_get_run_attributes;
+  iface->get_default_attributes = gtk_text_cell_accessible_get_default_attributes;
+  iface->get_character_extents = gtk_text_cell_accessible_get_character_extents;
+  iface->get_offset_at_point = gtk_text_cell_accessible_get_offset_at_point;
+}
diff --git a/gtk/a11y/gtktextcellaccessible.h b/gtk/a11y/gtktextcellaccessible.h
new file mode 100644 (file)
index 0000000..fd656d5
--- /dev/null
@@ -0,0 +1,56 @@
+/* GAIL - The GNOME Accessibility Enabling Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_TEXT_CELL_ACCESSIBLE_H__
+#define __GTK_TEXT_CELL_ACCESSIBLE_H__
+
+#include <atk/atk.h>
+#include "gtkrenderercellaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_TEXT_CELL_ACCESSIBLE            (_gtk_text_cell_accessible_get_type ())
+#define GTK_TEXT_CELL_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TEXT_CELL_ACCESSIBLE, GtkTextCellAccessible))
+#define GTK_TEXT_CELL_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TEXT_CELL_ACCESSIBLE, GtkTextCellAccessibleClass))
+#define GTK_IS_TEXT_CELL_ACCESSIBLE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TEXT_CELL_ACCESSIBLE))
+#define GTK_IS_TEXT_CELL_ACCESSIBLE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TEXT_CELL_ACCESSIBLE))
+#define GTK_TEXT_CELL_ACCESSIBLE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TEXT_CELL_ACCESSIBLE, GtkTextCellAccessibleClass))
+
+typedef struct _GtkTextCellAccessible      GtkTextCellAccessible;
+typedef struct _GtkTextCellAccessibleClass GtkTextCellAccessibleClass;
+
+struct _GtkTextCellAccessible
+{
+  GtkRendererCellAccessible parent;
+  gchar *cell_text;
+  gint caret_pos;
+  gint cell_length;
+};
+
+struct _GtkTextCellAccessibleClass
+{
+  GtkRendererCellAccessibleClass parent_class;
+};
+
+GType      _gtk_text_cell_accessible_get_type (void);
+AtkObject *_gtk_text_cell_accessible_new      (void);
+
+G_END_DECLS
+
+#endif /* __GTK_TEXT_CELL_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtktextviewaccessible.c b/gtk/a11y/gtktextviewaccessible.c
new file mode 100644 (file)
index 0000000..439e286
--- /dev/null
@@ -0,0 +1,1861 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <sys/types.h>
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#include <string.h>
+#include <stdlib.h>
+#include <glib-object.h>
+#include <glib/gstdio.h>
+#include <gtk/gtk.h>
+#include "gtktextviewaccessible.h"
+
+
+static void setup_buffer (GtkTextView           *view,GtkTextViewAccessible *accessible);
+static void       insert_text_cb       (GtkTextBuffer    *buffer,
+                                                        GtkTextIter      *arg1,
+                                                        gchar            *arg2,
+                                                        gint             arg3,
+                                                        gpointer         user_data);
+static void       delete_range_cb      (GtkTextBuffer    *buffer,
+                                                        GtkTextIter      *arg1,
+                                                        GtkTextIter      *arg2,
+                                                        gpointer         user_data);
+static void       mark_set_cb          (GtkTextBuffer    *buffer,
+                                                        GtkTextIter      *arg1,
+                                                        GtkTextMark      *arg2,
+                                                        gpointer         user_data);
+
+
+static void atk_editable_text_interface_init      (AtkEditableTextIface      *iface);
+static void atk_text_interface_init               (AtkTextIface              *iface);
+static void atk_streamable_content_interface_init (AtkStreamableContentIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkTextViewAccessible, _gtk_text_view_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_EDITABLE_TEXT, atk_editable_text_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_STREAMABLE_CONTENT, atk_streamable_content_interface_init))
+
+
+static void
+gtk_text_view_accessible_initialize (AtkObject *obj,
+                                     gpointer   data)
+{
+  ATK_OBJECT_CLASS (_gtk_text_view_accessible_parent_class)->initialize (obj, data);
+
+  setup_buffer (GTK_TEXT_VIEW (data), GTK_TEXT_VIEW_ACCESSIBLE (obj));
+
+  obj->role = ATK_ROLE_TEXT;
+}
+
+static void
+gtk_text_view_accessible_notify_gtk (GObject    *obj,
+                                     GParamSpec *pspec)
+{
+  AtkObject *atk_obj;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (obj));
+
+  if (!strcmp (pspec->name, "editable"))
+    {
+      gboolean editable;
+
+      editable = gtk_text_view_get_editable (GTK_TEXT_VIEW (obj));
+      atk_object_notify_state_change (atk_obj, ATK_STATE_EDITABLE, editable);
+    }
+  else if (!strcmp (pspec->name, "buffer"))
+    {
+      setup_buffer (GTK_TEXT_VIEW (obj), GTK_TEXT_VIEW_ACCESSIBLE (atk_obj));
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_text_view_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static AtkStateSet*
+gtk_text_view_accessible_ref_state_set (AtkObject *accessible)
+{
+  AtkStateSet *state_set;
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return NULL;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_text_view_accessible_parent_class)->ref_state_set (accessible);
+
+  if (gtk_text_view_get_editable (GTK_TEXT_VIEW (widget)))
+    atk_state_set_add_state (state_set, ATK_STATE_EDITABLE);
+  atk_state_set_add_state (state_set, ATK_STATE_MULTI_LINE);
+
+  return state_set;
+}
+
+static void
+_gtk_text_view_accessible_class_init (GtkTextViewAccessibleClass *klass)
+{
+  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+
+  class->ref_state_set = gtk_text_view_accessible_ref_state_set;
+  class->initialize = gtk_text_view_accessible_initialize;
+
+  widget_class->notify_gtk = gtk_text_view_accessible_notify_gtk;
+}
+
+static void
+_gtk_text_view_accessible_init (GtkTextViewAccessible *accessible)
+{
+}
+
+static void
+setup_buffer (GtkTextView           *view,
+              GtkTextViewAccessible *accessible)
+{
+  GtkTextBuffer *buffer;
+
+  buffer = gtk_text_view_get_buffer (view);
+
+  /* Set up signal callbacks */
+  g_signal_connect_after (buffer, "insert-text", G_CALLBACK (insert_text_cb), view);
+  g_signal_connect (buffer, "delete-range", G_CALLBACK (delete_range_cb), view);
+  g_signal_connect_after (buffer, "mark-set", G_CALLBACK (mark_set_cb), view);
+}
+
+static gchar *
+gtk_text_view_accessible_get_text (AtkText *text,
+                                   gint     start_offset,
+                                   gint     end_offset)
+{
+  GtkTextView *view;
+  GtkTextBuffer *buffer;
+  GtkTextIter start, end;
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  view = GTK_TEXT_VIEW (widget);
+  buffer = gtk_text_view_get_buffer (view);
+  gtk_text_buffer_get_iter_at_offset (buffer, &start, start_offset);
+  gtk_text_buffer_get_iter_at_offset (buffer, &end, end_offset);
+
+  return gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+}
+
+static gchar *
+gtk_text_view_accessible_get_text_after_offset (AtkText         *text,
+                                                gint             offset,
+                                                AtkTextBoundary  boundary_type,
+                                                gint            *start_offset,
+                                                gint            *end_offset)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextIter pos;
+  GtkTextIter start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+  gtk_text_buffer_get_iter_at_offset (buffer, &pos, offset);
+  _gtk_text_buffer_get_text_after (buffer, boundary_type,
+                                   &pos, &start, &end);
+  *start_offset = gtk_text_iter_get_offset (&start);
+  *end_offset = gtk_text_iter_get_offset (&end);
+  return gtk_text_buffer_get_slice (buffer, &start, &end, FALSE);
+}
+
+static gchar *
+gtk_text_view_accessible_get_text_at_offset (AtkText         *text,
+                                             gint             offset,
+                                             AtkTextBoundary  boundary_type,
+                                             gint            *start_offset,
+                                             gint            *end_offset)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextIter pos;
+  GtkTextIter start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+  gtk_text_buffer_get_iter_at_offset (buffer, &pos, offset);
+  _gtk_text_buffer_get_text_at (buffer, boundary_type,
+                                &pos, &start, &end);
+  *start_offset = gtk_text_iter_get_offset (&start);
+  *end_offset = gtk_text_iter_get_offset (&end);
+  return gtk_text_buffer_get_slice (buffer, &start, &end, FALSE);
+}
+
+static gchar *
+gtk_text_view_accessible_get_text_before_offset (AtkText         *text,
+                                                 gint             offset,
+                                                 AtkTextBoundary  boundary_type,
+                                                 gint            *start_offset,
+                                                 gint            *end_offset)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextIter pos;
+  GtkTextIter start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+  gtk_text_buffer_get_iter_at_offset (buffer, &pos, offset);
+  _gtk_text_buffer_get_text_before (buffer, boundary_type,
+                                    &pos, &start, &end);
+  *start_offset = gtk_text_iter_get_offset (&start);
+  *end_offset = gtk_text_iter_get_offset (&end);
+  return gtk_text_buffer_get_slice (buffer, &start, &end, FALSE);
+}
+
+static gunichar
+gtk_text_view_accessible_get_character_at_offset (AtkText *text,
+                                                  gint     offset)
+{
+  GtkWidget *widget;
+  GtkTextIter start, end;
+  GtkTextBuffer *buffer;
+  gchar *string;
+  gunichar unichar;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return '\0';
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+  if (offset >= gtk_text_buffer_get_char_count (buffer))
+    return '\0';
+
+  gtk_text_buffer_get_iter_at_offset (buffer, &start, offset);
+  end = start;
+  gtk_text_iter_forward_char (&end);
+  string = gtk_text_buffer_get_slice (buffer, &start, &end, FALSE);
+  unichar = g_utf8_get_char (string);
+  g_free (string);
+
+  return unichar;
+}
+
+static gint
+gtk_text_view_accessible_get_character_count (AtkText *text)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return 0;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+  return gtk_text_buffer_get_char_count (buffer);
+}
+
+static gint
+get_insert_offset (GtkTextBuffer *buffer)
+{
+  GtkTextMark *insert;
+  GtkTextIter iter;
+
+  insert = gtk_text_buffer_get_insert (buffer);
+  gtk_text_buffer_get_iter_at_mark (buffer, &iter, insert);
+  return gtk_text_iter_get_offset (&iter);
+}
+
+static gint
+gtk_text_view_accessible_get_caret_offset (AtkText *text)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return 0;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+  return get_insert_offset (buffer);
+}
+
+static gboolean
+gtk_text_view_accessible_set_caret_offset (AtkText *text,
+                                           gint     offset)
+{
+  GtkTextView *view;
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextIter iter;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  view = GTK_TEXT_VIEW (widget);
+  buffer = gtk_text_view_get_buffer (view);
+
+  gtk_text_buffer_get_iter_at_offset (buffer,  &iter, offset);
+  gtk_text_buffer_place_cursor (buffer, &iter);
+  gtk_text_view_scroll_to_iter (view, &iter, 0, FALSE, 0, 0);
+
+  return TRUE;
+}
+
+static gint
+gtk_text_view_accessible_get_offset_at_point (AtkText      *text,
+                                              gint          x,
+                                              gint          y,
+                                              AtkCoordType  coords)
+{
+  GtkTextView *view;
+  GtkTextIter iter;
+  gint x_widget, y_widget, x_window, y_window, buff_x, buff_y;
+  GtkWidget *widget;
+  GdkWindow *window;
+  GdkRectangle rect;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return -1;
+
+  view = GTK_TEXT_VIEW (widget);
+  window = gtk_text_view_get_window (view, GTK_TEXT_WINDOW_WIDGET);
+  gdk_window_get_origin (window, &x_widget, &y_widget);
+
+  if (coords == ATK_XY_SCREEN)
+    {
+      x = x - x_widget;
+      y = y - y_widget;
+    }
+  else if (coords == ATK_XY_WINDOW)
+    {
+      window = gdk_window_get_toplevel (window);
+      gdk_window_get_origin (window, &x_window, &y_window);
+
+      x = x - x_widget + x_window;
+      y = y - y_widget + y_window;
+    }
+  else
+    return -1;
+
+  gtk_text_view_window_to_buffer_coords (view, GTK_TEXT_WINDOW_WIDGET,
+                                         x, y, &buff_x, &buff_y);
+  gtk_text_view_get_visible_rect (view, &rect);
+
+  /* Clamp point to visible rectangle */
+  buff_x = CLAMP (buff_x, rect.x, rect.x + rect.width - 1);
+  buff_y = CLAMP (buff_y, rect.y, rect.y + rect.height - 1);
+
+  gtk_text_view_get_iter_at_location (view, &iter, buff_x, buff_y);
+
+  /* The iter at a location sometimes points to the next character.
+   * See bug 111031. We work around that
+   */
+  gtk_text_view_get_iter_location (view, &iter, &rect);
+  if (buff_x < rect.x)
+    gtk_text_iter_backward_char (&iter);
+  return gtk_text_iter_get_offset (&iter);
+}
+
+static void
+gtk_text_view_accessible_get_character_extents (AtkText      *text,
+                                                gint          offset,
+                                                gint         *x,
+                                                gint         *y,
+                                                gint         *width,
+                                                gint         *height,
+                                                AtkCoordType  coords)
+{
+  GtkTextView *view;
+  GtkTextBuffer *buffer;
+  GtkTextIter iter;
+  GtkWidget *widget;
+  GdkRectangle rectangle;
+  GdkWindow *window;
+  gint x_widget, y_widget, x_window, y_window;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  view = GTK_TEXT_VIEW (widget);
+  buffer = gtk_text_view_get_buffer (view);
+  gtk_text_buffer_get_iter_at_offset (buffer, &iter, offset);
+  gtk_text_view_get_iter_location (view, &iter, &rectangle);
+
+  window = gtk_text_view_get_window (view, GTK_TEXT_WINDOW_WIDGET);
+  gdk_window_get_origin (window, &x_widget, &y_widget);
+
+  *height = rectangle.height;
+  *width = rectangle.width;
+
+  gtk_text_view_buffer_to_window_coords (view, GTK_TEXT_WINDOW_WIDGET,
+    rectangle.x, rectangle.y, x, y);
+  if (coords == ATK_XY_WINDOW)
+    {
+      window = gdk_window_get_toplevel (window);
+      gdk_window_get_origin (window, &x_window, &y_window);
+      *x += x_widget - x_window;
+      *y += y_widget - y_window;
+    }
+  else if (coords == ATK_XY_SCREEN)
+    {
+      *x += x_widget;
+      *y += y_widget;
+    }
+  else
+    {
+      *x = 0;
+      *y = 0;
+      *height = 0;
+      *width = 0;
+    }
+}
+
+static AtkAttributeSet *
+add_text_attribute (AtkAttributeSet  *attributes,
+                    AtkTextAttribute  attr,
+                    gchar            *value)
+{
+  AtkAttribute *at;
+
+  at = g_new (AtkAttribute, 1);
+  at->name = g_strdup (atk_text_attribute_get_name (attr));
+  at->value = value;
+
+  return g_slist_prepend (attributes, at);
+}
+
+static AtkAttributeSet *
+add_text_int_attribute (AtkAttributeSet  *attributes,
+                        AtkTextAttribute  attr,
+                        gint              i)
+
+{
+  gchar *value;
+
+  value = g_strdup (atk_text_attribute_get_value (attr, i));
+
+  return add_text_attribute (attributes, attr, value);
+}
+
+static AtkAttributeSet *
+gtk_text_view_accessible_get_run_attributes (AtkText *text,
+                                             gint     offset,
+                                             gint    *start_offset,
+                                             gint    *end_offset)
+{
+  GtkTextView *view;
+  GtkTextBuffer *buffer;
+  GtkWidget *widget;
+  GtkTextIter iter;
+  AtkAttributeSet *attrib_set = NULL;
+  GSList *tags, *temp_tags;
+  gdouble scale = 1;
+  gboolean val_set = FALSE;
+
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  view = GTK_TEXT_VIEW (widget);
+  buffer = gtk_text_view_get_buffer (view);
+
+  gtk_text_buffer_get_iter_at_offset (buffer, &iter, offset);
+
+  gtk_text_iter_forward_to_tag_toggle (&iter, NULL);
+  *end_offset = gtk_text_iter_get_offset (&iter);
+
+  gtk_text_iter_backward_to_tag_toggle (&iter, NULL);
+  *start_offset = gtk_text_iter_get_offset (&iter);
+
+  gtk_text_buffer_get_iter_at_offset (buffer, &iter, offset);
+
+  tags = gtk_text_iter_get_tags (&iter);
+  tags = g_slist_reverse (tags);
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "style-set", &val_set, NULL);
+      if (val_set)
+        {
+          PangoStyle style;
+          g_object_get (tag, "style", &style, NULL);
+          attrib_set = add_text_int_attribute (attrib_set, ATK_TEXT_ATTR_STYLE, style);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "variant-set", &val_set, NULL);
+      if (val_set)
+        {
+          PangoVariant variant;
+          g_object_get (tag, "variant", &variant, NULL);
+          attrib_set = add_text_int_attribute (attrib_set, ATK_TEXT_ATTR_VARIANT, variant);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "stretch-set", &val_set, NULL);
+      if (val_set)
+        {
+          PangoStretch stretch;
+          g_object_get (tag, "stretch", &stretch, NULL);
+          attrib_set = add_text_int_attribute (attrib_set, ATK_TEXT_ATTR_STRETCH, stretch);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "justification-set", &val_set, NULL);
+      if (val_set)
+        {
+          GtkJustification justification;
+          g_object_get (tag, "justification", &justification, NULL);
+          attrib_set = add_text_int_attribute (attrib_set, ATK_TEXT_ATTR_JUSTIFICATION, justification);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+      GtkTextDirection direction;
+
+      g_object_get (tag, "direction", &direction, NULL);
+
+      if (direction != GTK_TEXT_DIR_NONE)
+        {
+          val_set = TRUE;
+          attrib_set = add_text_int_attribute (attrib_set, ATK_TEXT_ATTR_DIRECTION, direction);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "wrap-mode-set", &val_set, NULL);
+      if (val_set)
+        {
+          GtkWrapMode wrap_mode;
+          g_object_get (tag, "wrap-mode", &wrap_mode, NULL);
+          attrib_set = add_text_int_attribute (attrib_set, ATK_TEXT_ATTR_WRAP_MODE, wrap_mode);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "foreground-set", &val_set, NULL);
+      if (val_set)
+        {
+          GdkRGBA *rgba;
+          gchar *value;
+
+          g_object_get (tag, "foreground-rgba", &rgba, NULL);
+          value = g_strdup_printf ("%u,%u,%u",
+                                   (guint) rgba->red * 65535,
+                                   (guint) rgba->green * 65535,
+                                   (guint) rgba->blue * 65535);
+          gdk_rgba_free (rgba);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_FG_COLOR, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "background-set", &val_set, NULL);
+      if (val_set)
+        {
+          GdkRGBA *rgba;
+          gchar *value;
+
+          g_object_get (tag, "background-rgba", &rgba, NULL);
+          value = g_strdup_printf ("%u,%u,%u",
+                                   (guint) rgba->red * 65535,
+                                   (guint) rgba->green * 65535,
+                                   (guint) rgba->blue * 65535);
+          gdk_rgba_free (rgba);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_BG_COLOR, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "family-set", &val_set, NULL);
+
+      if (val_set)
+        {
+          gchar *value;
+          g_object_get (tag, "family", &value, NULL);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_FAMILY_NAME, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "language-set", &val_set, NULL);
+
+      if (val_set)
+        {
+          gchar *value;
+          g_object_get (tag, "language", &value, NULL);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_LANGUAGE, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "weight-set", &val_set, NULL);
+
+      if (val_set)
+        {
+          gint weight;
+          gchar *value;
+          g_object_get (tag, "weight", &weight, NULL);
+          value = g_strdup_printf ("%d", weight);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_WEIGHT, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  /* scale is special as the effective value is the product
+   * of all specified values
+   */
+  temp_tags = tags;
+  while (temp_tags)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+      gboolean scale_set;
+
+      g_object_get (tag, "scale-set", &scale_set, NULL);
+      if (scale_set)
+        {
+          gdouble font_scale;
+          g_object_get (tag, "scale", &font_scale, NULL);
+          val_set = TRUE;
+          scale *= font_scale;
+        }
+      temp_tags = temp_tags->next;
+    }
+  if (val_set)
+    {
+      gchar *value;
+      value = g_strdup_printf ("%g", scale);
+      attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_SCALE, value);
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "size-set", &val_set, NULL);
+      if (val_set)
+        {
+          gint size;
+          gchar *value;
+          g_object_get (tag, "size", &size, NULL);
+          value = g_strdup_printf ("%i", size);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_SIZE, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "strikethrough-set", &val_set, NULL);
+      if (val_set)
+        {
+          gboolean strikethrough;
+          g_object_get (tag, "strikethrough", &strikethrough, NULL);
+          attrib_set = add_text_int_attribute (attrib_set, ATK_TEXT_ATTR_STRIKETHROUGH, strikethrough);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "underline-set", &val_set, NULL);
+      if (val_set)
+        {
+          PangoUnderline underline;
+          g_object_get (tag, "underline", &underline, NULL);
+          attrib_set = add_text_int_attribute (attrib_set, ATK_TEXT_ATTR_UNDERLINE, underline);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "rise-set", &val_set, NULL);
+      if (val_set)
+        {
+          gint rise;
+          gchar *value;
+          g_object_get (tag, "rise", &rise, NULL);
+          value = g_strdup_printf ("%i", rise);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_RISE, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "background-full-height-set", &val_set, NULL);
+      if (val_set)
+        {
+          gboolean bg_full_height;
+          g_object_get (tag, "background-full-height", &bg_full_height, NULL);
+          attrib_set = add_text_int_attribute (attrib_set, ATK_TEXT_ATTR_BG_FULL_HEIGHT, bg_full_height);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "pixels-inside-wrap-set", &val_set, NULL);
+      if (val_set)
+        {
+          gint pixels;
+          gchar *value;
+          g_object_get (tag, "pixels-inside-wrap", &pixels, NULL);
+          value = g_strdup_printf ("%i", pixels);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "pixels-below-lines-set", &val_set, NULL);
+      if (val_set)
+        {
+          gint pixels;
+          gchar *value;
+          g_object_get (tag, "pixels-below-lines", &pixels, NULL);
+          value = g_strdup_printf ("%i", pixels);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_PIXELS_BELOW_LINES, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "pixels-above-lines-set", &val_set, NULL);
+      if (val_set)
+        {
+          gint pixels;
+          gchar *value;
+          g_object_get (tag, "pixels-above-lines", &pixels, NULL);
+          value = g_strdup_printf ("%i", pixels);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_PIXELS_ABOVE_LINES, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "editable-set", &val_set, NULL);
+      if (val_set)
+        {
+          gboolean editable;
+          g_object_get (tag, "editable", &editable, NULL);
+          attrib_set = add_text_int_attribute (attrib_set, ATK_TEXT_ATTR_EDITABLE, editable);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "invisible-set", &val_set, NULL);
+      if (val_set)
+        {
+          gboolean invisible;
+          g_object_get (tag, "invisible", &invisible, NULL);
+          attrib_set = add_text_int_attribute (attrib_set, ATK_TEXT_ATTR_INVISIBLE, invisible);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "indent-set", &val_set, NULL);
+      if (val_set)
+        {
+          gint indent;
+          gchar *value;
+          g_object_get (tag, "indent", &indent, NULL);
+          value = g_strdup_printf ("%i", indent);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_INDENT, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "right-margin-set", &val_set, NULL);
+      if (val_set)
+        {
+          gint margin;
+          gchar *value;
+          g_object_get (tag, "right-margin", &margin, NULL);
+          value = g_strdup_printf ("%i", margin);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_RIGHT_MARGIN, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  temp_tags = tags;
+  while (temp_tags && !val_set)
+    {
+      GtkTextTag *tag = GTK_TEXT_TAG (temp_tags->data);
+
+      g_object_get (tag, "left-margin-set", &val_set, NULL);
+      if (val_set)
+        {
+          gint margin;
+          gchar *value;
+          g_object_get (tag, "left-margin", &margin, NULL);
+          value = g_strdup_printf ("%i", margin);
+          attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_LEFT_MARGIN, value);
+        }
+      temp_tags = temp_tags->next;
+    }
+  val_set = FALSE;
+
+  g_slist_free (tags);
+  return attrib_set;
+}
+
+static AtkAttributeSet *
+gtk_text_view_accessible_get_default_attributes (AtkText *text)
+{
+  GtkTextView *view;
+  GtkWidget *widget;
+  GtkTextAttributes *text_attrs;
+  AtkAttributeSet *attributes;
+  PangoFontDescription *font;
+  gchar *value;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return NULL;
+
+  view = GTK_TEXT_VIEW (widget);
+  text_attrs = gtk_text_view_get_default_attributes (view);
+
+  attributes = NULL;
+
+  font = text_attrs->font;
+
+  if (font)
+    {
+      attributes = add_text_int_attribute (attributes, ATK_TEXT_ATTR_STYLE,
+                                           pango_font_description_get_style (font));
+
+      attributes = add_text_int_attribute (attributes, ATK_TEXT_ATTR_VARIANT,
+                                           pango_font_description_get_variant (font));
+
+      attributes = add_text_int_attribute (attributes, ATK_TEXT_ATTR_STRETCH,
+                                           pango_font_description_get_stretch (font));
+
+      value = g_strdup (pango_font_description_get_family (font));
+      attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_FAMILY_NAME, value);
+
+      value = g_strdup_printf ("%d", pango_font_description_get_weight (font));
+      attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_WEIGHT, value);
+
+      value = g_strdup_printf ("%i", pango_font_description_get_size (font) / PANGO_SCALE);
+      attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_SIZE, value);
+    }
+
+  attributes = add_text_int_attribute (attributes, ATK_TEXT_ATTR_JUSTIFICATION, text_attrs->justification);
+  attributes = add_text_int_attribute (attributes, ATK_TEXT_ATTR_DIRECTION, text_attrs->direction);
+  attributes = add_text_int_attribute (attributes, ATK_TEXT_ATTR_WRAP_MODE, text_attrs->wrap_mode);
+  attributes = add_text_int_attribute (attributes, ATK_TEXT_ATTR_EDITABLE, text_attrs->editable);
+  attributes = add_text_int_attribute (attributes, ATK_TEXT_ATTR_INVISIBLE, text_attrs->invisible);
+  attributes = add_text_int_attribute (attributes, ATK_TEXT_ATTR_BG_FULL_HEIGHT, text_attrs->bg_full_height);
+
+  attributes = add_text_int_attribute (attributes, ATK_TEXT_ATTR_STRIKETHROUGH,
+                                       text_attrs->appearance.strikethrough);
+  attributes = add_text_int_attribute (attributes, ATK_TEXT_ATTR_UNDERLINE,
+                                       text_attrs->appearance.underline);
+
+  value = g_strdup_printf ("%u,%u,%u",
+                           text_attrs->appearance.bg_color.red,
+                           text_attrs->appearance.bg_color.green,
+                           text_attrs->appearance.bg_color.blue);
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_BG_COLOR, value);
+
+  value = g_strdup_printf ("%u,%u,%u",
+                           text_attrs->appearance.fg_color.red,
+                           text_attrs->appearance.fg_color.green,
+                           text_attrs->appearance.fg_color.blue);
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_FG_COLOR, value);
+
+  value = g_strdup_printf ("%g", text_attrs->font_scale);
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_SCALE, value);
+
+  value = g_strdup ((gchar *)(text_attrs->language));
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_LANGUAGE, value);
+
+  value = g_strdup_printf ("%i", text_attrs->appearance.rise);
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_RISE, value);
+
+  value = g_strdup_printf ("%i", text_attrs->pixels_inside_wrap);
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP, value);
+
+  value = g_strdup_printf ("%i", text_attrs->pixels_below_lines);
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_PIXELS_BELOW_LINES, value);
+
+  value = g_strdup_printf ("%i", text_attrs->pixels_above_lines);
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_PIXELS_ABOVE_LINES, value);
+
+  value = g_strdup_printf ("%i", text_attrs->indent);
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_INDENT, value);
+
+  value = g_strdup_printf ("%i", text_attrs->left_margin);
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_LEFT_MARGIN, value);
+
+  value = g_strdup_printf ("%i", text_attrs->right_margin);
+  attributes = add_text_attribute (attributes, ATK_TEXT_ATTR_RIGHT_MARGIN, value);
+
+  gtk_text_attributes_unref (text_attrs);
+  return attributes;
+}
+
+static gint
+gtk_text_view_accessible_get_n_selections (AtkText *text)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return 0;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+  if (gtk_text_buffer_get_selection_bounds (buffer, NULL, NULL))
+    return 1;
+
+  return 0;
+}
+
+static gchar *
+gtk_text_view_accessible_get_selection (AtkText *atk_text,
+                                        gint     selection_num,
+                                        gint    *start_pos,
+                                        gint    *end_pos)
+{
+  GtkTextView *view;
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextIter start, end;
+  gchar *text;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_text));
+  if (widget == NULL)
+    return NULL;
+
+  if (selection_num != 0)
+    return NULL;
+
+  view = GTK_TEXT_VIEW (widget);
+  buffer = gtk_text_view_get_buffer (view);
+
+  if (gtk_text_buffer_get_selection_bounds (buffer, &start, &end))
+    text = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+  else
+    text = NULL;
+
+  *start_pos = gtk_text_iter_get_offset (&start);
+  *end_pos = gtk_text_iter_get_offset (&end);
+
+  return text;
+}
+
+static gboolean
+gtk_text_view_accessible_add_selection (AtkText *text,
+                                        gint     start_pos,
+                                        gint     end_pos)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextIter start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+
+  if (!gtk_text_buffer_get_selection_bounds (buffer, NULL, NULL))
+    {
+      gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos);
+      gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos);
+      gtk_text_buffer_select_range (buffer, &end, &start);
+
+      return TRUE;
+    }
+  else
+    return FALSE;
+}
+
+static gboolean
+gtk_text_view_accessible_remove_selection (AtkText *text,
+                                           gint     selection_num)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextMark *insert;
+  GtkTextIter iter;
+  GtkTextIter start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  if (selection_num != 0)
+     return FALSE;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+
+  if (gtk_text_buffer_get_selection_bounds (buffer, &start, &end))
+    {
+      insert = gtk_text_buffer_get_insert (buffer);
+      gtk_text_buffer_get_iter_at_mark (buffer, &iter, insert);
+      gtk_text_buffer_place_cursor (buffer, &iter);
+      return TRUE;
+    }
+  else
+    return FALSE;
+}
+
+static gboolean
+gtk_text_view_accessible_set_selection (AtkText *text,
+                                        gint     selection_num,
+                                        gint     start_pos,
+                                        gint     end_pos)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextIter start, end;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  if (selection_num != 0)
+    return FALSE;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+
+  if (gtk_text_buffer_get_selection_bounds (buffer, &start, &end))
+    {
+      gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos);
+      gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos);
+      gtk_text_buffer_select_range (buffer, &end, &start);
+
+      return TRUE;
+    }
+  else
+    return FALSE;
+}
+
+static void
+atk_text_interface_init (AtkTextIface *iface)
+{
+  iface->get_text = gtk_text_view_accessible_get_text;
+  iface->get_text_after_offset = gtk_text_view_accessible_get_text_after_offset;
+  iface->get_text_at_offset = gtk_text_view_accessible_get_text_at_offset;
+  iface->get_text_before_offset = gtk_text_view_accessible_get_text_before_offset;
+  iface->get_character_at_offset = gtk_text_view_accessible_get_character_at_offset;
+  iface->get_character_count = gtk_text_view_accessible_get_character_count;
+  iface->get_caret_offset = gtk_text_view_accessible_get_caret_offset;
+  iface->set_caret_offset = gtk_text_view_accessible_set_caret_offset;
+  iface->get_offset_at_point = gtk_text_view_accessible_get_offset_at_point;
+  iface->get_character_extents = gtk_text_view_accessible_get_character_extents;
+  iface->get_n_selections = gtk_text_view_accessible_get_n_selections;
+  iface->get_selection = gtk_text_view_accessible_get_selection;
+  iface->add_selection = gtk_text_view_accessible_add_selection;
+  iface->remove_selection = gtk_text_view_accessible_remove_selection;
+  iface->set_selection = gtk_text_view_accessible_set_selection;
+  iface->get_run_attributes = gtk_text_view_accessible_get_run_attributes;
+  iface->get_default_attributes = gtk_text_view_accessible_get_default_attributes;
+}
+
+/* atkeditabletext.h */
+
+static gboolean
+gtk_text_view_accessible_set_run_attributes (AtkEditableText *text,
+                                             AtkAttributeSet *attributes,
+                                             gint             start_offset,
+                                             gint             end_offset)
+{
+  GtkTextView *view;
+  GtkTextBuffer *buffer;
+  GtkWidget *widget;
+  GtkTextTag *tag;
+  GtkTextIter start;
+  GtkTextIter end;
+  gint j;
+  GdkColor *color;
+  gchar** RGB_vals;
+  GSList *l;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return FALSE;
+
+  view = GTK_TEXT_VIEW (widget);
+  if (!gtk_text_view_get_editable (view))
+    return FALSE;
+
+  buffer = gtk_text_view_get_buffer (view);
+
+  if (attributes == NULL)
+    return FALSE;
+
+  gtk_text_buffer_get_iter_at_offset (buffer, &start, start_offset);
+  gtk_text_buffer_get_iter_at_offset (buffer, &end, end_offset);
+
+  tag = gtk_text_buffer_create_tag (buffer, NULL, NULL);
+
+  for (l = attributes; l; l = l->next)
+    {
+      gchar *name;
+      gchar *value;
+      AtkAttribute *at;
+
+      at = l->data;
+
+      name = at->name;
+      value = at->value;
+
+      if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_LEFT_MARGIN)))
+        g_object_set (G_OBJECT (tag), "left-margin", atoi (value), NULL);
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_RIGHT_MARGIN)))
+        g_object_set (G_OBJECT (tag), "right-margin", atoi (value), NULL);
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_INDENT)))
+        g_object_set (G_OBJECT (tag), "indent", atoi (value), NULL);
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_PIXELS_ABOVE_LINES)))
+        g_object_set (G_OBJECT (tag), "pixels-above-lines", atoi (value), NULL);
+
+      else if (!strcmp(name, atk_text_attribute_get_name (ATK_TEXT_ATTR_PIXELS_BELOW_LINES)))
+        g_object_set (G_OBJECT (tag), "pixels-below-lines", atoi (value), NULL);
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP)))
+        g_object_set (G_OBJECT (tag), "pixels-inside-wrap", atoi (value), NULL);
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_SIZE)))
+        g_object_set (G_OBJECT (tag), "size", atoi (value), NULL);
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_RISE)))
+        g_object_set (G_OBJECT (tag), "rise", atoi (value), NULL);
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_WEIGHT)))
+        g_object_set (G_OBJECT (tag), "weight", atoi (value), NULL);
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_BG_FULL_HEIGHT)))
+        {
+          g_object_set (G_OBJECT (tag), "bg-full-height",
+                   (strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_BG_FULL_HEIGHT, 0))),
+                   NULL);
+        }
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_LANGUAGE)))
+        g_object_set (G_OBJECT (tag), "language", value, NULL);
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_FAMILY_NAME)))
+        g_object_set (G_OBJECT (tag), "family", value, NULL);
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_EDITABLE)))
+        {
+          g_object_set (G_OBJECT (tag), "editable",
+                   (strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_EDITABLE, 0))),
+                   NULL);
+        }
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_INVISIBLE)))
+        {
+          g_object_set (G_OBJECT (tag), "invisible",
+                   (strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_EDITABLE, 0))),
+                   NULL);
+        }
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_UNDERLINE)))
+        {
+          for (j = 0; j < 3; j++)
+            {
+              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_UNDERLINE, j)))
+                {
+                  g_object_set (G_OBJECT (tag), "underline", j, NULL);
+                  break;
+                }
+            }
+        }
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_STRIKETHROUGH)))
+        {
+          g_object_set (G_OBJECT (tag), "strikethrough",
+                   (strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_STRIKETHROUGH, 0))),
+                   NULL);
+        }
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_BG_COLOR)))
+        {
+          RGB_vals = g_strsplit (value, ",", 3);
+          color = g_malloc (sizeof (GdkColor));
+          color->red = atoi (RGB_vals[0]);
+          color->green = atoi (RGB_vals[1]);
+          color->blue = atoi (RGB_vals[2]);
+          g_object_set (G_OBJECT (tag), "background-gdk", color, NULL);
+        }
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_FG_COLOR)))
+        {
+          RGB_vals = g_strsplit (value, ",", 3);
+          color = g_malloc (sizeof (GdkColor));
+          color->red = atoi (RGB_vals[0]);
+          color->green = atoi (RGB_vals[1]);
+          color->blue = atoi (RGB_vals[2]);
+          g_object_set (G_OBJECT (tag), "foreground-gdk", color, NULL);
+        }
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_STRETCH)))
+        {
+          for (j = 0; j < 9; j++)
+            {
+              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_STRETCH, j)))
+                {
+                  g_object_set (G_OBJECT (tag), "stretch", j, NULL);
+                  break;
+                }
+            }
+        }
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_JUSTIFICATION)))
+        {
+          for (j = 0; j < 4; j++)
+            {
+              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_JUSTIFICATION, j)))
+                {
+                  g_object_set (G_OBJECT (tag), "justification", j, NULL);
+                  break;
+                }
+            }
+        }
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_DIRECTION)))
+        {
+          for (j = 0; j < 3; j++)
+            {
+              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION, j)))
+                {
+                  g_object_set (G_OBJECT (tag), "direction", j, NULL);
+                  break;
+                }
+            }
+        }
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_VARIANT)))
+        {
+          for (j = 0; j < 2; j++)
+            {
+              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_VARIANT, j)))
+                {
+                  g_object_set (G_OBJECT (tag), "variant", j, NULL);
+                  break;
+                }
+            }
+        }
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_WRAP_MODE)))
+        {
+          for (j = 0; j < 3; j++)
+            {
+              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_WRAP_MODE, j)))
+                {
+                  g_object_set (G_OBJECT (tag), "wrap-mode", j, NULL);
+                  break;
+                }
+            }
+        }
+
+      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_STYLE)))
+        {
+          for (j = 0; j < 3; j++)
+            {
+              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_STYLE, j)))
+                {
+                  g_object_set (G_OBJECT (tag), "style", j, NULL);
+                  break;
+              }
+            }
+        }
+
+      else
+        return FALSE;
+    }
+
+  gtk_text_buffer_apply_tag (buffer, tag, &start, &end);
+
+  return TRUE;
+}
+
+static void
+gtk_text_view_accessible_set_text_contents (AtkEditableText *text,
+                                            const gchar     *string)
+{
+  GtkTextView *view;
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  view = GTK_TEXT_VIEW (widget);
+  if (!gtk_text_view_get_editable (view))
+    return;
+
+  buffer = gtk_text_view_get_buffer (view);
+  gtk_text_buffer_set_text (buffer, string, -1);
+}
+
+static void
+gtk_text_view_accessible_insert_text (AtkEditableText *text,
+                                      const gchar     *string,
+                                      gint             length,
+                                      gint            *position)
+{
+  GtkTextView *view;
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextIter iter;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  view = GTK_TEXT_VIEW (widget);
+  if (!gtk_text_view_get_editable (view))
+    return;
+
+  buffer = gtk_text_view_get_buffer (view);
+  gtk_text_buffer_get_iter_at_offset (buffer, &iter, *position);
+  gtk_text_buffer_insert (buffer, &iter, string, length);
+}
+
+static void
+gtk_text_view_accessible_copy_text (AtkEditableText *text,
+                                    gint             start_pos,
+                                    gint             end_pos)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextIter start, end;
+  gchar *str;
+  GtkClipboard *clipboard;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+
+  gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos);
+  gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos);
+  str = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+
+  clipboard = gtk_widget_get_clipboard (widget, GDK_SELECTION_CLIPBOARD);
+  gtk_clipboard_set_text (clipboard, str, -1);
+}
+
+static void
+gtk_text_view_accessible_cut_text (AtkEditableText *text,
+                                   gint             start_pos,
+                                   gint             end_pos)
+{
+  GtkTextView *view;
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextIter start, end;
+  gchar *str;
+  GtkClipboard *clipboard;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  view = GTK_TEXT_VIEW (widget);
+  if (!gtk_text_view_get_editable (view))
+    return;
+  buffer = gtk_text_view_get_buffer (view);
+
+  gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos);
+  gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos);
+  str = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+  clipboard = gtk_widget_get_clipboard (widget, GDK_SELECTION_CLIPBOARD);
+  gtk_clipboard_set_text (clipboard, str, -1);
+  gtk_text_buffer_delete (buffer, &start, &end);
+}
+
+static void
+gtk_text_view_accessible_delete_text (AtkEditableText *text,
+                                      gint             start_pos,
+                                      gint             end_pos)
+{
+  GtkTextView *view;
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  GtkTextIter start_itr;
+  GtkTextIter end_itr;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  view = GTK_TEXT_VIEW (widget);
+  if (!gtk_text_view_get_editable (view))
+    return;
+  buffer = gtk_text_view_get_buffer (view);
+
+  gtk_text_buffer_get_iter_at_offset (buffer, &start_itr, start_pos);
+  gtk_text_buffer_get_iter_at_offset (buffer, &end_itr, end_pos);
+  gtk_text_buffer_delete (buffer, &start_itr, &end_itr);
+}
+
+typedef struct
+{
+  GtkTextBuffer* buffer;
+  gint position;
+} PasteData;
+
+static void
+paste_received (GtkClipboard *clipboard,
+                const gchar  *text,
+                gpointer      data)
+{
+  PasteData* paste = data;
+  GtkTextIter pos_itr;
+
+  if (text)
+    {
+      gtk_text_buffer_get_iter_at_offset (paste->buffer, &pos_itr, paste->position);
+      gtk_text_buffer_insert (paste->buffer, &pos_itr, text, -1);
+    }
+
+  g_object_unref (paste->buffer);
+}
+
+static void
+gtk_text_view_accessible_paste_text (AtkEditableText *text,
+                                     gint             position)
+{
+  GtkTextView *view;
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  PasteData paste;
+  GtkClipboard *clipboard;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
+  if (widget == NULL)
+    return;
+
+  view = GTK_TEXT_VIEW (widget);
+  if (!gtk_text_view_get_editable (view))
+    return;
+  buffer = gtk_text_view_get_buffer (view);
+
+  paste.buffer = buffer;
+  paste.position = position;
+
+  g_object_ref (paste.buffer);
+  clipboard = gtk_widget_get_clipboard (widget, GDK_SELECTION_CLIPBOARD);
+  gtk_clipboard_request_text (clipboard, paste_received, &paste);
+}
+
+static void
+atk_editable_text_interface_init (AtkEditableTextIface *iface)
+{
+  iface->set_text_contents = gtk_text_view_accessible_set_text_contents;
+  iface->insert_text = gtk_text_view_accessible_insert_text;
+  iface->copy_text = gtk_text_view_accessible_copy_text;
+  iface->cut_text = gtk_text_view_accessible_cut_text;
+  iface->delete_text = gtk_text_view_accessible_delete_text;
+  iface->paste_text = gtk_text_view_accessible_paste_text;
+  iface->set_run_attributes = gtk_text_view_accessible_set_run_attributes;
+}
+
+/* Callbacks */
+
+static void
+gtk_text_view_accessible_update_cursor (GtkTextViewAccessible *accessible,
+                                        GtkTextBuffer *        buffer)
+{
+  int prev_insert_offset, prev_selection_bound;
+  int insert_offset, selection_bound;
+  GtkTextIter iter;
+
+  prev_insert_offset = accessible->insert_offset;
+  prev_selection_bound = accessible->selection_bound;
+
+  gtk_text_buffer_get_iter_at_mark (buffer, &iter, gtk_text_buffer_get_insert (buffer));
+  insert_offset = gtk_text_iter_get_offset (&iter);
+  gtk_text_buffer_get_iter_at_mark (buffer, &iter, gtk_text_buffer_get_selection_bound (buffer));
+  selection_bound = gtk_text_iter_get_offset (&iter);
+
+  if (prev_insert_offset == insert_offset && prev_selection_bound == selection_bound)
+    return;
+
+  accessible->insert_offset = insert_offset;
+  accessible->selection_bound = selection_bound;
+
+  if (prev_insert_offset != insert_offset)
+    g_signal_emit_by_name (accessible, "text-caret-moved", insert_offset);
+
+  if (prev_insert_offset != prev_selection_bound || insert_offset != selection_bound)
+    g_signal_emit_by_name (accessible, "text-selection-changed");
+}
+
+static void
+insert_text_cb (GtkTextBuffer *buffer,
+                GtkTextIter   *iter,
+                gchar         *text,
+                gint           len,
+                gpointer       data)
+{
+  GtkTextView *view = data;
+  GtkTextViewAccessible *accessible;
+  gint position;
+  gint length;
+
+  accessible = GTK_TEXT_VIEW_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (view)));
+
+  position = gtk_text_iter_get_offset (iter);
+  length = g_utf8_strlen (text, len);
+  g_signal_emit_by_name (accessible, "text-changed::insert", position - length, length);
+
+  gtk_text_view_accessible_update_cursor (accessible, buffer);
+}
+
+static void
+delete_range_cb (GtkTextBuffer *buffer,
+                 GtkTextIter   *start,
+                 GtkTextIter   *end,
+                 gpointer       data)
+{
+  GtkTextView *view = data;
+  GtkTextViewAccessible *accessible;
+  gint offset, length;
+
+  accessible = GTK_TEXT_VIEW_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (view)));
+
+  offset = gtk_text_iter_get_offset (start);
+  length = gtk_text_iter_get_offset (end) - offset;
+
+  g_signal_emit_by_name (accessible,
+                         "text-changed::delete",
+                         offset,
+                         length);
+
+  gtk_text_view_accessible_update_cursor (accessible, buffer);
+}
+
+static void
+mark_set_cb (GtkTextBuffer *buffer,
+             GtkTextIter   *location,
+             GtkTextMark   *mark,
+             gpointer       data)
+{
+  GtkTextView *text = data;
+  GtkTextViewAccessible *accessible;
+
+  accessible = GTK_TEXT_VIEW_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (text)));
+
+  /*
+   * Only generate the signal for the "insert" mark, which
+   * represents the cursor.
+   */
+  if (mark == gtk_text_buffer_get_insert (buffer))
+    {
+      gtk_text_view_accessible_update_cursor (accessible, buffer);
+    }
+  else if (mark == gtk_text_buffer_get_selection_bound (buffer))
+    {
+      gtk_text_view_accessible_update_cursor (accessible, buffer);
+    }
+}
+
+static gint
+gail_streamable_content_get_n_mime_types (AtkStreamableContent *streamable)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  gint n_mime_types = 0;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (streamable));
+  if (widget == NULL)
+    return 0;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+  if (buffer)
+    {
+      gint i;
+      gboolean advertises_plaintext = FALSE;
+      GdkAtom *atoms;
+
+      atoms = gtk_text_buffer_get_serialize_formats (buffer, &n_mime_types);
+      for (i = 0; i < n_mime_types-1; ++i)
+        if (!strcmp ("text/plain", gdk_atom_name (atoms[i])))
+            advertises_plaintext = TRUE;
+      if (!advertises_plaintext)
+        n_mime_types++;
+    }
+
+  return n_mime_types;
+}
+
+static const gchar *
+gail_streamable_content_get_mime_type (AtkStreamableContent *streamable,
+                                       gint                  i)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (streamable));
+  if (widget == NULL)
+    return 0;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+  if (buffer)
+    {
+      gint n_mime_types = 0;
+      GdkAtom *atoms;
+
+      atoms = gtk_text_buffer_get_serialize_formats (buffer, &n_mime_types);
+      if (i < n_mime_types)
+        return gdk_atom_name (atoms [i]);
+      else if (i == n_mime_types)
+        return "text/plain";
+    }
+
+  return NULL;
+}
+
+static GIOChannel *
+gail_streamable_content_get_stream (AtkStreamableContent *streamable,
+                                    const gchar          *mime_type)
+{
+  GtkWidget *widget;
+  GtkTextBuffer *buffer;
+  gint i, n_mime_types = 0;
+  GdkAtom *atoms;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (streamable));
+  if (widget == NULL)
+    return 0;
+
+  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+  if (!buffer)
+    return NULL;
+
+  atoms = gtk_text_buffer_get_serialize_formats (buffer, &n_mime_types);
+
+  for (i = 0; i < n_mime_types; ++i)
+    {
+      if (!strcmp ("text/plain", mime_type) ||
+          !strcmp (gdk_atom_name (atoms[i]), mime_type))
+        {
+          guint8 *cbuf;
+          GError *err = NULL;
+          gsize len, written;
+          gchar tname[80];
+          GtkTextIter start, end;
+          GIOChannel *gio = NULL;
+          int fd;
+
+          gtk_text_buffer_get_iter_at_offset (buffer, &start, 0);
+          gtk_text_buffer_get_iter_at_offset (buffer, &end, -1);
+          if (!strcmp ("text/plain", mime_type))
+            {
+              cbuf = (guint8*) gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+              len = strlen ((const char *) cbuf);
+            }
+          else
+            {
+              cbuf = gtk_text_buffer_serialize (buffer, buffer, atoms[i], &start, &end, &len);
+            }
+          g_snprintf (tname, 20, "streamXXXXXX");
+          fd = g_mkstemp (tname);
+          gio = g_io_channel_unix_new (fd);
+          g_io_channel_set_encoding (gio, NULL, &err);
+          if (!err)
+            g_io_channel_write_chars (gio, (const char *) cbuf, (gssize) len, &written, &err);
+          else
+            g_message ("%s", err->message);
+          if (!err)
+            g_io_channel_seek_position (gio, 0, G_SEEK_SET, &err);
+          else
+            g_message ("%s", err->message);
+          if (!err)
+            g_io_channel_flush (gio, &err);
+          else
+            g_message ("%s", err->message);
+          if (err)
+            {
+              g_message ("<error writing to stream [%s]>", tname);
+              g_error_free (err);
+            }
+          /* make sure the file is removed on unref of the giochannel */
+          else
+            {
+              g_unlink (tname);
+              return gio;
+            }
+        }
+    }
+
+  return NULL;
+}
+
+static void
+atk_streamable_content_interface_init (AtkStreamableContentIface *iface)
+{
+  iface->get_n_mime_types = gail_streamable_content_get_n_mime_types;
+  iface->get_mime_type = gail_streamable_content_get_mime_type;
+  iface->get_stream = gail_streamable_content_get_stream;
+}
diff --git a/gtk/a11y/gtktextviewaccessible.h b/gtk/a11y/gtktextviewaccessible.h
new file mode 100644 (file)
index 0000000..aacbaa3
--- /dev/null
@@ -0,0 +1,54 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_TEXT_VIEW_ACCESSIBLE_H__
+#define __GTK_TEXT_VIEW_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_TEXT_VIEW_ACCESSIBLE                  (_gtk_text_view_accessible_get_type ())
+#define GTK_TEXT_VIEW_ACCESSIBLE(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TEXT_VIEW_ACCESSIBLE, GtkTextViewAccessible))
+#define GTK_TEXT_VIEW_ACCESSIBLE_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TEXT_VIEW_ACCESSIBLE, GtkTextViewAccessibleClass))
+#define GTK_IS_TEXT_VIEW_ACCESSIBLE(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TEXT_VIEW_ACCESSIBLE))
+#define GTK_IS_TEXT_VIEW_ACCESSIBLE_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TEXT_VIEW_ACCESSIBLE))
+#define GTK_TEXT_VIEW_ACCESSIBLE_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TEXT_VIEW_ACCESSIBLE, GtkTextViewAccessibleClass))
+
+typedef struct _GtkTextViewAccessible      GtkTextViewAccessible;
+typedef struct _GtkTextViewAccessibleClass GtkTextViewAccessibleClass;
+
+struct _GtkTextViewAccessible
+{
+  GtkContainerAccessible parent;
+
+  gint           insert_offset;
+  gint           selection_bound;
+};
+
+struct _GtkTextViewAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_text_view_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_TEXT_VIEW_ACCESSIBLE_H__ */
similarity index 58%
rename from modules/other/gail/gailtogglebutton.c
rename to gtk/a11y/gtktogglebuttonaccessible.c
index 63f8d441bb39e03209d2901590e4a02af894cdf8..f89a6f423f2926af9772e81bd6d2094b00b97cbf 100644 (file)
 
 #include <string.h>
 #include <gtk/gtk.h>
-#include "gailtogglebutton.h"
+#include "gtktogglebuttonaccessible.h"
 
-static void      gail_toggle_button_class_init        (GailToggleButtonClass *klass);
 
-static void      gail_toggle_button_init              (GailToggleButton      *button);
-
-static void      gail_toggle_button_toggled_gtk       (GtkWidget             *widget);
-
-static void      gail_toggle_button_real_notify_gtk   (GObject               *obj,
-                                                       GParamSpec            *pspec);
-
-static void      gail_toggle_button_real_initialize   (AtkObject             *obj,
-                                                       gpointer              data);
-
-static AtkStateSet* gail_toggle_button_ref_state_set  (AtkObject             *accessible);
-
-G_DEFINE_TYPE (GailToggleButton, gail_toggle_button, GAIL_TYPE_BUTTON)
+G_DEFINE_TYPE (GtkToggleButtonAccessible, _gtk_toggle_button_accessible, GTK_TYPE_BUTTON_ACCESSIBLE)
 
 static void
-gail_toggle_button_class_init (GailToggleButtonClass *klass)
+gtk_toggle_button_accessible_toggled (GtkWidget *widget)
 {
-  GailWidgetClass *widget_class;
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  widget_class = (GailWidgetClass*)klass;
-  widget_class->notify_gtk = gail_toggle_button_real_notify_gtk;
+  AtkObject *accessible;
+  GtkToggleButton *toggle_button;
 
-  class->ref_state_set = gail_toggle_button_ref_state_set;
-  class->initialize = gail_toggle_button_real_initialize;
-}
+  toggle_button = GTK_TOGGLE_BUTTON (widget);
 
-static void
-gail_toggle_button_init (GailToggleButton *button)
-{
+  accessible = gtk_widget_get_accessible (widget);
+  atk_object_notify_state_change (accessible, ATK_STATE_CHECKED,
+                                  gtk_toggle_button_get_active (toggle_button));
 }
 
 static void
-gail_toggle_button_real_initialize (AtkObject *obj,
-                                    gpointer  data)
+gtk_toggle_button_accessible_initialize (AtkObject *obj,
+                                         gpointer   data)
 {
-  ATK_OBJECT_CLASS (gail_toggle_button_parent_class)->initialize (obj, data);
+  ATK_OBJECT_CLASS (_gtk_toggle_button_accessible_parent_class)->initialize (obj, data);
 
-  g_signal_connect (data,
-                    "toggled",
-                    G_CALLBACK (gail_toggle_button_toggled_gtk),
-                    NULL);
+  g_signal_connect (data, "toggled",
+                    G_CALLBACK (gtk_toggle_button_accessible_toggled), NULL);
 
-  if (GTK_IS_CHECK_BUTTON (data))
-    obj->role = ATK_ROLE_CHECK_BOX;
-  else
-    obj->role = ATK_ROLE_TOGGLE_BUTTON;
+  obj->role = ATK_ROLE_TOGGLE_BUTTON;
 }
 
 static void
-gail_toggle_button_toggled_gtk (GtkWidget       *widget)
+gtk_toggle_button_accessible_notify_gtk (GObject    *obj,
+                                         GParamSpec *pspec)
 {
-  AtkObject *accessible;
-  GtkToggleButton *toggle_button;
+  GtkToggleButton *toggle_button = GTK_TOGGLE_BUTTON (obj);
+  AtkObject *atk_obj;
+  gboolean sensitive;
+  gboolean inconsistent;
 
-  toggle_button = GTK_TOGGLE_BUTTON (widget);
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (toggle_button));
+  sensitive = gtk_widget_get_sensitive (GTK_WIDGET (toggle_button));
+  inconsistent = gtk_toggle_button_get_inconsistent (toggle_button);
 
-  accessible = gtk_widget_get_accessible (widget);
-  atk_object_notify_state_change (accessible, ATK_STATE_CHECKED, 
-                                  gtk_toggle_button_get_active (toggle_button));
-} 
+  if (strcmp (pspec->name, "inconsistent") == 0)
+    {
+      atk_object_notify_state_change (atk_obj, ATK_STATE_INDETERMINATE, inconsistent);
+      atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, (sensitive && !inconsistent));
+    }
+  else if (strcmp (pspec->name, "sensitive") == 0)
+    {
+      /* Need to override gailwidget behavior of notifying for ENABLED */
+      atk_object_notify_state_change (atk_obj, ATK_STATE_SENSITIVE, sensitive);
+      atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, (sensitive && !inconsistent));
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_toggle_button_accessible_parent_class)->notify_gtk (obj, pspec);
+}
 
 static AtkStateSet*
-gail_toggle_button_ref_state_set (AtkObject *accessible)
+gtk_toggle_button_accessible_ref_state_set (AtkObject *accessible)
 {
   AtkStateSet *state_set;
   GtkToggleButton *toggle_button;
   GtkWidget *widget;
 
-  state_set = ATK_OBJECT_CLASS (gail_toggle_button_parent_class)->ref_state_set (accessible);
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
   if (widget == NULL)
-    return state_set;
+    return NULL;
 
+  state_set = ATK_OBJECT_CLASS (_gtk_toggle_button_accessible_parent_class)->ref_state_set (accessible);
   toggle_button = GTK_TOGGLE_BUTTON (widget);
 
   if (gtk_toggle_button_get_active (toggle_button))
@@ -110,34 +101,23 @@ gail_toggle_button_ref_state_set (AtkObject *accessible)
       atk_state_set_remove_state (state_set, ATK_STATE_ENABLED);
       atk_state_set_add_state (state_set, ATK_STATE_INDETERMINATE);
     }
+
   return state_set;
 }
 
 static void
-gail_toggle_button_real_notify_gtk (GObject           *obj,
-                                    GParamSpec        *pspec)
+_gtk_toggle_button_accessible_class_init (GtkToggleButtonAccessibleClass *klass)
 {
-  GtkToggleButton *toggle_button = GTK_TOGGLE_BUTTON (obj);
-  AtkObject *atk_obj;
-  gboolean sensitive;
-  gboolean inconsistent;
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
 
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (toggle_button));
-  sensitive = gtk_widget_get_sensitive (GTK_WIDGET (toggle_button));
-  inconsistent = gtk_toggle_button_get_inconsistent (toggle_button);
+  widget_class->notify_gtk = gtk_toggle_button_accessible_notify_gtk;
 
-  if (strcmp (pspec->name, "inconsistent") == 0)
-    {
-      atk_object_notify_state_change (atk_obj, ATK_STATE_INDETERMINATE, inconsistent);
-      atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, (sensitive && !inconsistent));
-    }
-  else if (strcmp (pspec->name, "sensitive") == 0)
-    {
-      /* Need to override gailwidget behavior of notifying for ENABLED */
-      atk_object_notify_state_change (atk_obj, ATK_STATE_SENSITIVE, sensitive);
-      atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, (sensitive && !inconsistent));
-    }
-  else
-    GAIL_WIDGET_CLASS (gail_toggle_button_parent_class)->notify_gtk (obj, pspec);
+  class->ref_state_set = gtk_toggle_button_accessible_ref_state_set;
+  class->initialize = gtk_toggle_button_accessible_initialize;
+}
+
+static void
+_gtk_toggle_button_accessible_init (GtkToggleButtonAccessible *button)
+{
 }
diff --git a/gtk/a11y/gtktogglebuttonaccessible.h b/gtk/a11y/gtktogglebuttonaccessible.h
new file mode 100644 (file)
index 0000000..84624e6
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_TOGGLE_BUTTON_ACCESSIBLE_H__
+#define __GTK_TOGGLE_BUTTON_ACCESSIBLE_H__
+
+#include "gtkbuttonaccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_TOGGLE_BUTTON_ACCESSIBLE              (_gtk_toggle_button_accessible_get_type ())
+#define GTK_TOGGLE_BUTTON_ACCESSIBLE(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOGGLE_BUTTON_ACCESSIBLE, GtkToggleButtonAccessible))
+#define GTK_TOGGLE_BUTTON_ACCESSIBLE_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TOGGLE_BUTTON_ACCESSIBLE, GtkToggleButtonAccessibleClass))
+#define GTK_IS_TOGGLE_BUTTON_ACCESSIBLE(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TOGGLE_BUTTON_ACCESSIBLE))
+#define GTK_IS_TOGGLE_BUTTON_ACCESSIBLE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TOGGLE_BUTTON_ACCESSIBLE))
+#define GTK_TOGGLE_BUTTON_ACCESSIBLE_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TOGGLE_BUTTON_ACCESSIBLE, GtkToggleButtonAccessibleClass))
+
+typedef struct _GtkToggleButtonAccessible      GtkToggleButtonAccessible;
+typedef struct _GtkToggleButtonAccessibleClass GtkToggleButtonAccessibleClass;
+
+struct _GtkToggleButtonAccessible
+{
+  GtkButtonAccessible parent;
+};
+
+struct _GtkToggleButtonAccessibleClass
+{
+  GtkButtonAccessibleClass parent_class;
+};
+
+GType _gtk_toggle_button_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_TOGGLE_BUTTON_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtktoplevelaccessible.c b/gtk/a11y/gtktoplevelaccessible.c
new file mode 100644 (file)
index 0000000..4b17274
--- /dev/null
@@ -0,0 +1,283 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <stdlib.h>
+#include <string.h>
+
+#include <gtk/gtkx.h>
+
+#include "gtktoplevelaccessible.h"
+
+
+G_DEFINE_TYPE (GtkToplevelAccessible, _gtk_toplevel_accessible, ATK_TYPE_OBJECT)
+
+static void
+gtk_toplevel_accessible_initialize (AtkObject *accessible,
+                                    gpointer   data)
+{
+  ATK_OBJECT_CLASS (_gtk_toplevel_accessible_parent_class)->initialize (accessible, data);
+
+  accessible->role = ATK_ROLE_APPLICATION;
+  accessible->name = g_get_prgname ();
+  accessible->accessible_parent = NULL;
+}
+
+static void
+gtk_toplevel_accessible_object_finalize (GObject *obj)
+{
+  GtkToplevelAccessible *toplevel = GTK_TOPLEVEL_ACCESSIBLE (obj);
+
+  if (toplevel->window_list)
+    g_list_free (toplevel->window_list);
+
+  G_OBJECT_CLASS (_gtk_toplevel_accessible_parent_class)->finalize (obj);
+}
+
+static gint
+gtk_toplevel_accessible_get_n_children (AtkObject *obj)
+{
+  GtkToplevelAccessible *toplevel = GTK_TOPLEVEL_ACCESSIBLE (obj);
+
+  return g_list_length (toplevel->window_list);
+}
+
+static AtkObject *
+gtk_toplevel_accessible_ref_child (AtkObject *obj,
+                                   gint       i)
+{
+  GtkToplevelAccessible *toplevel;
+  GtkWidget *widget;
+  AtkObject *atk_obj;
+
+  toplevel = GTK_TOPLEVEL_ACCESSIBLE (obj);
+  widget = g_list_nth_data (toplevel->window_list, i);
+  if (!widget)
+    return NULL;
+
+  atk_obj = gtk_widget_get_accessible (widget);
+
+  g_object_ref (atk_obj);
+
+  return atk_obj;
+}
+
+static gboolean
+is_combo_window (GtkWidget *widget)
+{
+  GtkWidget *child;
+  AtkObject *obj;
+
+  child = gtk_bin_get_child (GTK_BIN (widget));
+
+  if (!GTK_IS_EVENT_BOX (child))
+    return FALSE;
+
+  child = gtk_bin_get_child (GTK_BIN (child));
+
+  if (!GTK_IS_FRAME (child))
+    return FALSE;
+
+  child = gtk_bin_get_child (GTK_BIN (child));
+
+  if (!GTK_IS_SCROLLED_WINDOW (child))
+    return FALSE;
+
+  obj = gtk_widget_get_accessible (child);
+  obj = atk_object_get_parent (obj);
+
+  return FALSE;
+}
+
+static gboolean
+is_attached_menu_window (GtkWidget *widget)
+{
+  GtkWidget *child;
+
+  child = gtk_bin_get_child (GTK_BIN (widget));
+  if (GTK_IS_MENU (child))
+    {
+      GtkWidget *attach;
+
+      attach = gtk_menu_get_attach_widget (GTK_MENU (child));
+      /* Allow for menu belonging to the Panel Menu, which is a GtkButton */
+      if (GTK_IS_MENU_ITEM (attach) || GTK_IS_BUTTON (attach))
+        return TRUE;
+    }
+
+  return FALSE;
+}
+
+static void
+_gtk_toplevel_accessible_class_init (GtkToplevelAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS(klass);
+  GObjectClass *g_object_class = G_OBJECT_CLASS(klass);
+
+  class->initialize = gtk_toplevel_accessible_initialize;
+  class->get_n_children = gtk_toplevel_accessible_get_n_children;
+  class->ref_child = gtk_toplevel_accessible_ref_child;
+  class->get_parent = NULL;
+
+  g_object_class->finalize = gtk_toplevel_accessible_object_finalize;
+}
+
+static void
+remove_child (GtkToplevelAccessible *toplevel,
+              GtkWindow             *window)
+{
+  AtkObject *atk_obj = ATK_OBJECT (toplevel);
+  GList *l;
+  guint window_count = 0;
+  AtkObject *child;
+
+  if (toplevel->window_list)
+    {
+      GtkWindow *tmp_window;
+
+      for (l = toplevel->window_list; l; l = l->next)
+        {
+          tmp_window = GTK_WINDOW (l->data);
+
+          if (window == tmp_window)
+            {
+              /* Remove the window from the window_list & emit the signal */
+              toplevel->window_list = g_list_delete_link (toplevel->window_list, l);
+              child = gtk_widget_get_accessible (GTK_WIDGET (window));
+              g_signal_emit_by_name (atk_obj, "children-changed::remove",
+                                     window_count, child, NULL);
+              atk_object_set_parent (child, NULL);
+              break;
+            }
+
+          window_count++;
+        }
+    }
+}
+
+static gboolean
+show_event_watcher (GSignalInvocationHint *ihint,
+                    guint                  n_param_values,
+                    const GValue          *param_values,
+                    gpointer               data)
+{
+  GtkToplevelAccessible *toplevel = GTK_TOPLEVEL_ACCESSIBLE (data);
+  AtkObject *atk_obj = ATK_OBJECT (toplevel);
+  GObject *object;
+  GtkWidget *widget;
+  gint n_children;
+  AtkObject *child;
+
+  object = g_value_get_object (param_values + 0);
+
+  if (!GTK_IS_WINDOW (object))
+    return TRUE;
+
+  widget = GTK_WIDGET (object);
+  if (gtk_widget_get_parent (widget) ||
+      is_attached_menu_window (widget) ||
+#ifdef GDK_WINDOWING_X11
+      GTK_IS_PLUG (widget) ||
+#endif
+      is_combo_window (widget))
+    return TRUE;
+
+  child = gtk_widget_get_accessible (widget);
+  if (atk_object_get_role (child) == ATK_ROLE_REDUNDANT_OBJECT ||
+      atk_object_get_role (child) == ATK_ROLE_TOOL_TIP)
+    return TRUE;
+
+  /* Add the window to the list & emit the signal */
+  toplevel->window_list = g_list_append (toplevel->window_list, widget);
+  n_children = g_list_length (toplevel->window_list);
+
+  atk_object_set_parent (child, atk_obj);
+  g_signal_emit_by_name (atk_obj, "children-changed::add",
+                         n_children - 1, child, NULL);
+
+  g_signal_connect_swapped (G_OBJECT(object), "destroy",
+                            G_CALLBACK (remove_child), toplevel);
+
+  return TRUE;
+}
+
+static gboolean
+hide_event_watcher (GSignalInvocationHint *ihint,
+                    guint                  n_param_values,
+                    const GValue          *param_values,
+                    gpointer               data)
+{
+  GtkToplevelAccessible *toplevel = GTK_TOPLEVEL_ACCESSIBLE (data);
+  GObject *object;
+
+  object = g_value_get_object (param_values + 0);
+
+  if (!GTK_IS_WINDOW (object))
+    return TRUE;
+
+  remove_child (toplevel, GTK_WINDOW (object));
+  return TRUE;
+}
+
+static void
+_gtk_toplevel_accessible_init (GtkToplevelAccessible *toplevel)
+{
+  GtkWindow *window;
+  GtkWidget *widget;
+  GList *l;
+  guint signal_id;
+
+  l = toplevel->window_list = gtk_window_list_toplevels ();
+
+  while (l)
+    {
+      window = GTK_WINDOW (l->data);
+      widget = GTK_WIDGET (window);
+      if (!window ||
+          !gtk_widget_get_visible (widget) ||
+          is_attached_menu_window (widget) ||
+#ifdef GDK_WINDOWING_X11
+          GTK_IS_PLUG (window) ||
+#endif
+          gtk_widget_get_parent (GTK_WIDGET (window)))
+        {
+          GList *temp_l  = l->next;
+
+          toplevel->window_list = g_list_delete_link (toplevel->window_list, l);
+          l = temp_l;
+        }
+      else
+        {
+          g_signal_connect_swapped (G_OBJECT (window), "destroy",
+                                    G_CALLBACK (remove_child), toplevel);
+          l = l->next;
+        }
+    }
+
+  g_type_class_ref (GTK_TYPE_WINDOW);
+
+  signal_id  = g_signal_lookup ("show", GTK_TYPE_WINDOW);
+  g_signal_add_emission_hook (signal_id, 0,
+                              show_event_watcher, toplevel, (GDestroyNotify) NULL);
+
+  signal_id  = g_signal_lookup ("hide", GTK_TYPE_WINDOW);
+  g_signal_add_emission_hook (signal_id, 0,
+                              hide_event_watcher, toplevel, (GDestroyNotify) NULL);
+}
diff --git a/gtk/a11y/gtktoplevelaccessible.h b/gtk/a11y/gtktoplevelaccessible.h
new file mode 100644 (file)
index 0000000..367cacf
--- /dev/null
@@ -0,0 +1,52 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_TOPLEVEL_ACCESSIBLE_H__
+#define __GTK_TOPLEVEL_ACCESSIBLE_H__
+
+#include <atk/atk.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_TOPLEVEL_ACCESSIBLE               (_gtk_toplevel_accessible_get_type ())
+#define GTK_TOPLEVEL_ACCESSIBLE(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TOPLEVEL_ACCESSIBLE, GtkToplevelAccessible))
+#define GTK_TOPLEVEL_ACCESSIBLE_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TOPLEVEL_ACCESSIBLE, GtkToplevelAccessibleClass))
+#define GTK_IS_TOPLEVEL_ACCESSIBLE(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TOPLEVEL_ACCESSIBLE))
+#define GTK_IS_TOPLEVEL_ACCESSIBLE_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TOPLEVEL_ACCESSIBLE))
+#define GTK_TOPLEVEL_ACCESSIBLE_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TOPLEVEL_ACCESSIBLE, GtkToplevelAccessibleClass))
+
+typedef struct _GtkToplevelAccessible      GtkToplevelAccessible;
+typedef struct _GtkToplevelAccessibleClass GtkToplevelAccessibleClass;
+
+struct _GtkToplevelAccessible
+{
+  AtkObject parent;
+  GList *window_list;
+};
+
+struct _GtkToplevelAccessibleClass
+{
+  AtkObjectClass parent_class;
+};
+
+GType _gtk_toplevel_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_TOPLEVEL_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtktreeviewaccessible.c b/gtk/a11y/gtktreeviewaccessible.c
new file mode 100644 (file)
index 0000000..5abcb66
--- /dev/null
@@ -0,0 +1,3687 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#ifdef GDK_WINDOWING_X11
+#include <gdk/x11/gdkx.h>
+#endif
+#include "gtktreeviewaccessible.h"
+#include "gtkrenderercellaccessible.h"
+#include "gtkbooleancellaccessible.h"
+#include "gtkimagecellaccessible.h"
+#include "gtkcontainercellaccessible.h"
+#include "gtktextcellaccessible.h"
+#include "gtkcellaccessibleparent.h"
+
+typedef struct _GtkTreeViewAccessibleCellInfo  GtkTreeViewAccessibleCellInfo;
+struct _GtkTreeViewAccessibleCellInfo
+{
+  GtkCellAccessible *cell;
+  GtkTreeRowReference *cell_row_ref;
+  GtkTreeViewColumn *cell_col_ref;
+  GtkTreeViewAccessible *view;
+  gboolean in_use;
+};
+
+/* signal handling */
+
+static gboolean row_expanded_cb      (GtkTreeView      *tree_view,
+                                      GtkTreeIter      *iter,
+                                      GtkTreePath      *path);
+static gboolean row_collapsed_cb     (GtkTreeView      *tree_view,
+                                      GtkTreeIter      *iter,
+                                      GtkTreePath      *path);
+static void     size_allocate_cb     (GtkWidget        *widget,
+                                      GtkAllocation    *allocation);
+static void     selection_changed_cb (GtkTreeSelection *selection,
+                                      gpointer          data);
+
+static void     columns_changed      (GtkTreeView      *tree_view);
+static void     cursor_changed       (GtkTreeView      *tree_view);
+static gboolean focus_in             (GtkWidget        *widget);
+static gboolean focus_out            (GtkWidget        *widget);
+
+static void     column_visibility_changed
+                                     (GObject          *object,
+                                      GParamSpec       *param,
+                                      gpointer          user_data);
+static void     destroy_count_func   (GtkTreeView      *tree_view,
+                                      GtkTreePath      *path,
+                                      gint              count,
+                                      gpointer          user_data);
+
+/* Misc */
+
+static void             set_iter_nth_row                (GtkTreeView            *tree_view,
+                                                         GtkTreeIter            *iter,
+                                                         gint                   row);
+static gint             get_row_from_tree_path          (GtkTreeView            *tree_view,
+                                                         GtkTreePath            *path);
+static GtkTreeViewColumn* get_column                    (GtkTreeView            *tree_view,
+                                                         gint                   in_col);
+static gint             get_actual_column_number        (GtkTreeView            *tree_view,
+                                                         gint                   visible_column);
+static gint             get_visible_column_number       (GtkTreeView            *tree_view,
+                                                         gint                   actual_column);
+static void             iterate_thru_children           (GtkTreeView            *tree_view,
+                                                         GtkTreeModel           *tree_model,
+                                                         GtkTreePath            *tree_path,
+                                                         GtkTreePath            *orig,
+                                                         gint                   *count,
+                                                         gint                   depth);
+static void             clean_rows                      (GtkTreeViewAccessible           *tree_view);
+static void             clean_cols                      (GtkTreeViewAccessible           *tree_view,
+                                                         GtkTreeViewColumn      *tv_col);
+static void             traverse_cells                  (GtkTreeViewAccessible           *tree_view,
+                                                         GtkTreePath            *tree_path,
+                                                         gboolean               set_stale,
+                                                         gboolean               inc_row);
+static gboolean         update_cell_value               (GtkRendererCellAccessible       *renderer_cell,
+                                                         GtkTreeViewAccessible           *accessible,
+                                                         gboolean               emit_change_signal);
+static void             set_cell_visibility             (GtkTreeView            *tree_view,
+                                                         GtkCellAccessible      *cell,
+                                                         GtkTreeViewColumn      *tv_col,
+                                                         GtkTreePath            *tree_path,
+                                                         gboolean               emit_signal);
+static gboolean         is_cell_showing                 (GtkTreeView            *tree_view,
+                                                         GdkRectangle           *cell_rect);
+static void             set_expand_state                (GtkTreeView            *tree_view,
+                                                         GtkTreeModel           *tree_model,
+                                                         GtkTreeViewAccessible           *accessible,
+                                                         GtkTreePath            *tree_path,
+                                                         gboolean               set_on_ancestor);
+static void             set_cell_expandable             (GtkCellAccessible     *cell);
+static void             add_cell_actions                (GtkCellAccessible     *cell,
+                                                         gboolean               editable);
+
+static void             toggle_cell_toggled             (GtkCellAccessible     *cell);
+static void             edit_cell                       (GtkCellAccessible     *cell);
+static void             activate_cell                   (GtkCellAccessible     *cell);
+static void             cell_destroyed                  (gpointer               data);
+static void             cell_info_new                   (GtkTreeViewAccessible           *accessible,
+                                                         GtkTreeModel           *tree_model,
+                                                         GtkTreePath            *path,
+                                                         GtkTreeViewColumn      *tv_col,
+                                                         GtkCellAccessible      *cell);
+static GtkCellAccessible *find_cell                       (GtkTreeViewAccessible           *accessible,
+                                                         gint                   index);
+static void             refresh_cell_index              (GtkCellAccessible     *cell);
+static void             connect_model_signals           (GtkTreeView            *view,
+                                                         GtkTreeViewAccessible           *accessible);
+static void             disconnect_model_signals        (GtkTreeViewAccessible           *accessible);
+static void             clear_cached_data               (GtkTreeViewAccessible           *view);
+static gint             get_column_number               (GtkTreeView            *tree_view,
+                                                         GtkTreeViewColumn      *column,
+                                                         gboolean               visible);
+static gint             get_focus_index                 (GtkTreeView            *tree_view);
+static gint             get_index                       (GtkTreeView            *tree_view,
+                                                         GtkTreePath            *path,
+                                                         gint                   actual_column);
+static void             count_rows                      (GtkTreeModel           *model,
+                                                         GtkTreeIter            *iter,
+                                                         GtkTreePath            *end_path,
+                                                         gint                   *count,
+                                                         gint                   level,
+                                                         gint                   depth);
+
+static gboolean         get_path_column_from_index      (GtkTreeView            *tree_view,
+                                                         gint                   index,
+                                                         GtkTreePath            **path,
+                                                         GtkTreeViewColumn      **column);
+
+static GtkTreeViewAccessibleCellInfo* find_cell_info    (GtkTreeViewAccessible           *view,
+                                                         GtkCellAccessible               *cell,
+                                                         gboolean                live_only);
+static AtkObject *       get_header_from_column         (GtkTreeViewColumn      *tv_col);
+static gboolean          idle_garbage_collect_cell_data (gpointer data);
+
+
+static void atk_table_interface_init                  (AtkTableIface                *iface);
+static void atk_selection_interface_init              (AtkSelectionIface            *iface);
+static void atk_component_interface_init              (AtkComponentIface            *iface);
+static void gtk_cell_accessible_parent_interface_init (GtkCellAccessibleParentIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkTreeViewAccessible, _gtk_tree_view_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TABLE, atk_table_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init)
+                         G_IMPLEMENT_INTERFACE (GTK_TYPE_CELL_ACCESSIBLE_PARENT, gtk_cell_accessible_parent_interface_init))
+
+
+static void
+adjustment_changed (GtkAdjustment *adjustment,
+                    GtkWidget     *widget)
+{
+  GtkTreeViewAccessible *accessible;
+
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (gtk_widget_get_accessible (widget));
+  traverse_cells (accessible, NULL, FALSE, FALSE);
+}
+
+static void
+hadjustment_set_cb (GObject    *widget,
+                    GParamSpec *pspec,
+                    gpointer    data)
+{
+  GtkTreeViewAccessible *accessible = data;
+  GtkAdjustment *adj;
+
+  g_object_get (widget, "hadjustment", &adj, NULL);
+  accessible->old_hadj = adj;
+  g_object_add_weak_pointer (G_OBJECT (accessible->old_hadj), (gpointer *)&accessible->old_hadj);
+  g_signal_connect (adj, "value-changed", G_CALLBACK (adjustment_changed), widget);
+}
+
+static void
+vadjustment_set_cb (GObject    *widget,
+                    GParamSpec *pspec,
+                    gpointer    data)
+{
+  GtkTreeViewAccessible *accessible = data;
+  GtkAdjustment *adj;
+
+  g_object_get (widget, "vadjustment", &adj, NULL);
+  accessible->old_vadj = adj;
+  g_object_add_weak_pointer (G_OBJECT (accessible->old_vadj), (gpointer *)&accessible->old_vadj);
+  g_signal_connect (adj, "value-changed",
+                    G_CALLBACK (adjustment_changed), widget);
+}
+
+static void
+gtk_tree_view_accessible_initialize (AtkObject *obj,
+                                     gpointer   data)
+{
+  GtkTreeViewAccessible *accessible;
+  GtkTreeView *tree_view;
+  GtkTreeModel *tree_model;
+  GList *tv_cols, *tmp_list;
+  GtkWidget *widget;
+  GtkTreeSelection *selection;
+
+  ATK_OBJECT_CLASS (_gtk_tree_view_accessible_parent_class)->initialize (obj, data);
+
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (obj);
+  accessible->col_data = NULL;
+  accessible->focus_cell = NULL;
+  accessible->old_hadj = NULL;
+  accessible->old_vadj = NULL;
+  accessible->idle_expand_id = 0;
+  accessible->idle_expand_path = NULL;
+  accessible->n_children_deleted = 0;
+
+  accessible->cell_info_by_index = g_hash_table_new (g_int_hash, g_int_equal);
+
+  widget = GTK_WIDGET (data);
+  tree_view = GTK_TREE_VIEW (widget);
+  tree_model = gtk_tree_view_get_model (tree_view);
+  selection = gtk_tree_view_get_selection (tree_view);
+
+  g_signal_connect_after (widget, "row-collapsed",
+                          G_CALLBACK (row_collapsed_cb), NULL);
+  g_signal_connect (widget, "row-expanded",
+                    G_CALLBACK (row_expanded_cb), NULL);
+  g_signal_connect (widget, "size-allocate",
+                    G_CALLBACK (size_allocate_cb), NULL);
+  g_signal_connect (selection, "changed",
+                    G_CALLBACK (selection_changed_cb), obj);
+
+  g_signal_connect (tree_view, "columns-changed",
+                    G_CALLBACK (columns_changed), NULL);
+  g_signal_connect (tree_view, "cursor-changed",
+                    G_CALLBACK (cursor_changed), NULL);
+  g_signal_connect (tree_view, "focus-in-event",
+                    G_CALLBACK (focus_in), NULL);
+  g_signal_connect (tree_view, "focus-out-event",
+                    G_CALLBACK (focus_out), NULL);
+
+  accessible->tree_model = tree_model;
+  accessible->n_rows = 0;
+  accessible->n_cols = 0;
+  if (tree_model)
+    {
+      g_object_add_weak_pointer (G_OBJECT (accessible->tree_model), (gpointer *)&accessible->tree_model);
+      count_rows (tree_model, NULL, NULL, &accessible->n_rows, 0, G_MAXINT);
+      connect_model_signals (tree_view, accessible);
+
+      if (gtk_tree_model_get_flags (tree_model) & GTK_TREE_MODEL_LIST_ONLY)
+        obj->role = ATK_ROLE_TABLE;
+      else
+        obj->role = ATK_ROLE_TREE_TABLE;
+    }
+
+  hadjustment_set_cb (G_OBJECT (widget), NULL, accessible);
+  vadjustment_set_cb (G_OBJECT (widget), NULL, accessible);
+  g_signal_connect (widget, "notify::hadjustment",
+                    G_CALLBACK (hadjustment_set_cb), accessible);
+  g_signal_connect (widget, "notify::vadjustment",
+                    G_CALLBACK (vadjustment_set_cb), accessible);
+
+  accessible->col_data = g_array_sized_new (FALSE, TRUE,
+                                            sizeof (GtkTreeViewColumn *), 0);
+
+  tv_cols = gtk_tree_view_get_columns (tree_view);
+  for (tmp_list = tv_cols; tmp_list; tmp_list = tmp_list->next)
+    {
+      accessible->n_cols++;
+      g_signal_connect (tmp_list->data, "notify::visible",
+                        G_CALLBACK (column_visibility_changed), tree_view);
+      g_array_append_val (accessible->col_data, tmp_list->data);
+    }
+  g_list_free (tv_cols);
+
+  gtk_tree_view_set_destroy_count_func (tree_view,
+                                        destroy_count_func,
+                                        NULL, NULL);
+}
+
+static void
+gtk_tree_view_accessible_finalize (GObject *object)
+{
+  GtkTreeViewAccessible *accessible = GTK_TREE_VIEW_ACCESSIBLE (object);
+
+  clear_cached_data (accessible);
+
+  /* remove any idle handlers still pending */
+  if (accessible->idle_garbage_collect_id)
+    g_source_remove (accessible->idle_garbage_collect_id);
+  if (accessible->idle_cursor_changed_id)
+    g_source_remove (accessible->idle_cursor_changed_id);
+  if (accessible->idle_expand_id)
+    g_source_remove (accessible->idle_expand_id);
+
+  if (accessible->tree_model)
+    disconnect_model_signals (accessible);
+
+  if (accessible->cell_info_by_index)
+    g_hash_table_destroy (accessible->cell_info_by_index);
+
+  if (accessible->col_data)
+    {
+      GArray *array = accessible->col_data;
+
+     /* No need to free the contents of the array since it
+      * just contains pointers to the GtkTreeViewColumn
+      * objects that are in the GtkTreeView.
+      */
+      g_array_free (array, TRUE);
+    }
+
+  G_OBJECT_CLASS (_gtk_tree_view_accessible_parent_class)->finalize (object);
+}
+
+static void
+gtk_tree_view_accessible_notify_gtk (GObject    *obj,
+                                     GParamSpec *pspec)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeViewAccessible *accessible;
+  GtkAdjustment *adj;
+
+  widget = GTK_WIDGET (obj);
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (gtk_widget_get_accessible (widget));
+  tree_view = GTK_TREE_VIEW (widget);
+
+  if (g_strcmp0 (pspec->name, "model") == 0)
+    {
+      GtkTreeModel *tree_model;
+      AtkRole role;
+
+      tree_model = gtk_tree_view_get_model (tree_view);
+      if (accessible->tree_model)
+        disconnect_model_signals (accessible);
+      clear_cached_data (accessible);
+      accessible->tree_model = tree_model;
+      accessible->n_rows = 0;
+
+      if (tree_model)
+        {
+          g_object_add_weak_pointer (G_OBJECT (accessible->tree_model), (gpointer *)&accessible->tree_model);
+          count_rows (tree_model, NULL, NULL, &accessible->n_rows, 0, G_MAXINT);
+          connect_model_signals (tree_view, accessible);
+
+          if (gtk_tree_model_get_flags (tree_model) & GTK_TREE_MODEL_LIST_ONLY)
+            role = ATK_ROLE_TABLE;
+          else
+            role = ATK_ROLE_TREE_TABLE;
+        }
+      else
+        {
+          role = ATK_ROLE_UNKNOWN;
+        }
+      atk_object_set_role (ATK_OBJECT (accessible), role);
+      g_object_freeze_notify (G_OBJECT (accessible));
+      g_signal_emit_by_name (accessible, "model-changed");
+      g_signal_emit_by_name (accessible, "visible-data-changed");
+      g_object_thaw_notify (G_OBJECT (accessible));
+    }
+  else if (g_strcmp0 (pspec->name, "hadjustment") == 0)
+    {
+      g_object_get (tree_view, "hadjustment", &adj, NULL);
+      g_signal_handlers_disconnect_by_func (accessible->old_hadj,
+                                            (gpointer) adjustment_changed,
+                                            widget);
+      accessible->old_hadj = adj;
+      g_object_add_weak_pointer (G_OBJECT (accessible->old_hadj), (gpointer *)&accessible->old_hadj);
+      g_signal_connect (adj, "value-changed", G_CALLBACK (adjustment_changed), tree_view);
+    }
+  else if (g_strcmp0 (pspec->name, "vadjustment") == 0)
+    {
+      g_object_get (tree_view, "vadjustment", &adj, NULL);
+      g_signal_handlers_disconnect_by_func (accessible->old_vadj,
+                                            (gpointer) adjustment_changed,
+                                            widget);
+      accessible->old_vadj = adj;
+      g_object_add_weak_pointer (G_OBJECT (accessible->old_hadj), (gpointer *)&accessible->old_vadj);
+      g_signal_connect (adj, "value-changed", G_CALLBACK (adjustment_changed), tree_view);
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_tree_view_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static void
+gtk_tree_view_accessible_destroyed (GtkWidget     *widget,
+                                    GtkAccessible *gtk_accessible)
+{
+  GtkAdjustment *adj;
+  GtkTreeViewAccessible *accessible;
+
+  if (!GTK_IS_TREE_VIEW (widget))
+    return;
+
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (gtk_accessible);
+  adj = accessible->old_hadj;
+  if (adj)
+    g_signal_handlers_disconnect_by_func (adj,
+                                          (gpointer) adjustment_changed,
+                                          widget);
+  adj = accessible->old_vadj;
+  if (adj)
+    g_signal_handlers_disconnect_by_func (adj,
+                                          (gpointer) adjustment_changed,
+                                          widget);
+  if (accessible->tree_model)
+    {
+      disconnect_model_signals (accessible);
+      accessible->tree_model = NULL;
+    }
+  if (accessible->focus_cell)
+    {
+      g_object_unref (accessible->focus_cell);
+      accessible->focus_cell = NULL;
+    }
+  if (accessible->idle_expand_id)
+    {
+      g_source_remove (accessible->idle_expand_id);
+      accessible->idle_expand_id = 0;
+    }
+}
+
+static void
+gtk_tree_view_accessible_connect_widget_destroyed (GtkAccessible *accessible)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (accessible);
+  if (widget)
+    g_signal_connect_after (widget, "destroy",
+                            G_CALLBACK (gtk_tree_view_accessible_destroyed), accessible);
+
+  GTK_ACCESSIBLE_CLASS (_gtk_tree_view_accessible_parent_class)->connect_widget_destroyed (accessible);
+}
+
+static gint
+gtk_tree_view_accessible_get_n_children (AtkObject *obj)
+{
+  GtkWidget *widget;
+  GtkTreeViewAccessible *accessible;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return 0;
+
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (obj);
+  return (accessible->n_rows + 1) * accessible->n_cols;
+}
+
+static AtkObject *
+gtk_tree_view_accessible_ref_child (AtkObject *obj,
+                                    gint       i)
+{
+  GtkWidget *widget;
+  GtkTreeViewAccessible *accessible;
+  GtkCellAccessible *cell;
+  GtkTreeView *tree_view;
+  GtkTreeModel *tree_model;
+  GtkCellRenderer *renderer;
+  GtkTreeIter iter;
+  GtkTreeViewColumn *tv_col;
+  GtkTreeSelection *selection;
+  GtkTreePath *path;
+  AtkObject *child;
+  AtkObject *parent;
+  GtkTreeViewColumn *expander_tv;
+  GList *renderer_list;
+  GList *l;
+  GtkContainerCellAccessible *container = NULL;
+  GtkRendererCellAccessible *renderer_cell;
+  gboolean is_expander, is_expanded, retval;
+  gboolean editable = FALSE;
+  gint focus_index;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  if (i >= gtk_tree_view_accessible_get_n_children (obj))
+    return NULL;
+
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (obj);
+  tree_view = GTK_TREE_VIEW (widget);
+  if (i < accessible->n_cols)
+    {
+      tv_col = gtk_tree_view_get_column (tree_view, i);
+      child = get_header_from_column (tv_col);
+      if (child)
+        g_object_ref (child);
+      return child;
+    }
+
+  /* Check whether the child is cached */
+  cell = find_cell (accessible, i);
+  if (cell)
+    {
+      g_object_ref (cell);
+      return ATK_OBJECT (cell);
+    }
+
+  if (accessible->focus_cell == NULL)
+      focus_index = get_focus_index (tree_view);
+  else
+      focus_index = -1;
+
+  /* Find the TreePath and GtkTreeViewColumn for the index */
+  if (!get_path_column_from_index (tree_view, i, &path, &tv_col))
+    return NULL;
+
+  tree_model = gtk_tree_view_get_model (tree_view);
+  retval = gtk_tree_model_get_iter (tree_model, &iter, path);
+  if (!retval)
+    return NULL;
+
+  expander_tv = gtk_tree_view_get_expander_column (tree_view);
+  is_expander = FALSE;
+  is_expanded = FALSE;
+  if (gtk_tree_model_iter_has_child (tree_model, &iter))
+    {
+      if (expander_tv == tv_col)
+        {
+          is_expander = TRUE;
+          is_expanded = gtk_tree_view_row_expanded (tree_view, path);
+        }
+    }
+  gtk_tree_view_column_cell_set_cell_data (tv_col, tree_model, &iter,
+                                           is_expander, is_expanded);
+
+  renderer_list = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (tv_col));
+
+  /* If there are more than one renderer in the list,
+   * make a container
+   */
+  if (renderer_list && renderer_list->next)
+    {
+      GtkCellAccessible *container_cell;
+
+      container = _gtk_container_cell_accessible_new ();
+
+      container_cell = GTK_CELL_ACCESSIBLE (container);
+      _gtk_cell_accessible_initialise (container_cell, widget, ATK_OBJECT (accessible), i);
+
+      /* The GtkTreeViewAccessibleCellInfo structure for the container will
+       * be before the ones for the cells so that the first one we find for
+       * a position will be for the container
+       */
+      cell_info_new (accessible, tree_model, path, tv_col, container_cell);
+      container_cell->refresh_index = refresh_cell_index;
+      parent = ATK_OBJECT (container);
+    }
+  else
+    parent = ATK_OBJECT (accessible);
+
+  child = NULL;
+
+  /* Now we make a fake cell_renderer if there is no cell
+   * in renderer_list
+   */
+  if (renderer_list == NULL)
+    {
+      GtkCellRenderer *fake_renderer;
+
+      fake_renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, NULL);
+      child = _gtk_text_cell_accessible_new ();
+      cell = GTK_CELL_ACCESSIBLE (child);
+      renderer_cell = GTK_RENDERER_CELL_ACCESSIBLE (child);
+      renderer_cell->renderer = fake_renderer;
+
+      /* Create the GtkTreeViewAccessibleCellInfo structure for this cell */
+      cell_info_new (accessible, tree_model, path, tv_col, cell);
+
+      _gtk_cell_accessible_initialise (cell, widget, parent, i);
+
+      cell->refresh_index = refresh_cell_index;
+
+      /* Set state if it is expandable */
+      if (is_expander)
+        {
+          set_cell_expandable (cell);
+          if (is_expanded)
+            _gtk_cell_accessible_add_state (cell, ATK_STATE_EXPANDED, FALSE);
+        }
+    }
+  else
+    {
+      for (l = renderer_list; l; l = l->next)
+        {
+          renderer = GTK_CELL_RENDERER (l->data);
+
+          if (GTK_IS_CELL_RENDERER_TEXT (renderer))
+            {
+              g_object_get (G_OBJECT (renderer), "editable", &editable, NULL);
+              child = _gtk_text_cell_accessible_new ();
+            }
+          else if (GTK_IS_CELL_RENDERER_TOGGLE (renderer))
+            child = _gtk_boolean_cell_accessible_new ();
+          else if (GTK_IS_CELL_RENDERER_PIXBUF (renderer))
+            child = _gtk_image_cell_accessible_new ();
+          else
+            child = _gtk_renderer_cell_accessible_new ();
+
+          cell = GTK_CELL_ACCESSIBLE (child);
+          renderer_cell = GTK_RENDERER_CELL_ACCESSIBLE (child);
+
+          /* Create the GtkTreeViewAccessibleCellInfo for this cell */
+          cell_info_new (accessible, tree_model, path, tv_col, cell);
+
+          _gtk_cell_accessible_initialise (cell, widget, parent, i);
+
+          if (container)
+            _gtk_container_cell_accessible_add_child (container, cell);
+          else
+            cell->refresh_index = refresh_cell_index;
+
+          update_cell_value (renderer_cell, accessible, FALSE);
+
+          /* Add the actions appropriate for this cell */
+          add_cell_actions (cell, editable);
+
+          /* Set state if it is expandable */
+          if (is_expander)
+            {
+              set_cell_expandable (cell);
+              if (is_expanded)
+                _gtk_cell_accessible_add_state (cell, ATK_STATE_EXPANDED, FALSE);
+            }
+
+          /* If the column is visible, sets the cell's state */
+          if (gtk_tree_view_column_get_visible (tv_col))
+            set_cell_visibility (tree_view, cell, tv_col, path, FALSE);
+
+          /* If the row is selected, all cells on the row are selected */
+          selection = gtk_tree_view_get_selection (tree_view);
+
+          if (gtk_tree_selection_path_is_selected (selection, path))
+            _gtk_cell_accessible_add_state (cell, ATK_STATE_SELECTED, FALSE);
+
+          _gtk_cell_accessible_add_state (cell, ATK_STATE_FOCUSABLE, FALSE);
+          if (focus_index == i)
+            {
+              accessible->focus_cell = g_object_ref (cell);
+              _gtk_cell_accessible_add_state (cell, ATK_STATE_FOCUSED, FALSE);
+              g_signal_emit_by_name (accessible, "active-descendant-changed", cell);
+            }
+        }
+      g_list_free (renderer_list);
+      if (container)
+        child = ATK_OBJECT (container);
+    }
+
+  if (expander_tv == tv_col)
+    {
+      AtkRelationSet *relation_set;
+      AtkObject *accessible_array[1];
+      AtkRelation* relation;
+      AtkObject *parent_node;
+
+      relation_set = atk_object_ref_relation_set (ATK_OBJECT (child));
+
+      gtk_tree_path_up (path);
+      if (gtk_tree_path_get_depth (path) == 0)
+        parent_node = obj;
+      else
+        {
+          gint parent_index;
+
+          parent_index = get_index (tree_view, path, i % accessible->n_cols);
+          parent_node = atk_object_ref_accessible_child (obj, parent_index);
+        }
+      accessible_array[0] = parent_node;
+      relation = atk_relation_new (accessible_array, 1,
+                                   ATK_RELATION_NODE_CHILD_OF);
+      atk_relation_set_add (relation_set, relation);
+      atk_object_add_relationship (parent_node, ATK_RELATION_NODE_PARENT_OF, child);
+      g_object_unref (relation);
+      g_object_unref (relation_set);
+    }
+  gtk_tree_path_free (path);
+
+  /* We do not increase the reference count here; when g_object_unref()
+   * is called for the cell then cell_destroyed() is called and this
+   * removes the cell from the cache.
+   */
+  return child;
+}
+
+static AtkStateSet*
+gtk_tree_view_accessible_ref_state_set (AtkObject *obj)
+{
+  AtkStateSet *state_set;
+  GtkWidget *widget;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_tree_view_accessible_parent_class)->ref_state_set (obj);
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+
+  if (widget != NULL)
+    atk_state_set_add_state (state_set, ATK_STATE_MANAGES_DESCENDANTS);
+
+  return state_set;
+}
+
+static void
+_gtk_tree_view_accessible_class_init (GtkTreeViewAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+  GtkAccessibleClass *accessible_class = (GtkAccessibleClass*)klass;
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+  GtkContainerAccessibleClass *container_class = (GtkContainerAccessibleClass*)klass;
+
+  class->get_n_children = gtk_tree_view_accessible_get_n_children;
+  class->ref_child = gtk_tree_view_accessible_ref_child;
+  class->ref_state_set = gtk_tree_view_accessible_ref_state_set;
+  class->initialize = gtk_tree_view_accessible_initialize;
+
+  widget_class->notify_gtk = gtk_tree_view_accessible_notify_gtk;
+
+  accessible_class->connect_widget_destroyed = gtk_tree_view_accessible_connect_widget_destroyed;
+
+  /* The children of a GtkTreeView are the buttons at the top of the columns
+   * we do not represent these as children so we do not want to report
+   * children added or deleted when these changed.
+   */
+  container_class->add_gtk = NULL;
+  container_class->remove_gtk = NULL;
+
+  gobject_class->finalize = gtk_tree_view_accessible_finalize;
+}
+
+static void
+_gtk_tree_view_accessible_init (GtkTreeViewAccessible *view)
+{
+}
+
+gint
+get_focus_index (GtkTreeView *tree_view)
+{
+  GtkTreePath *focus_path;
+  GtkTreeViewColumn *focus_column;
+  gint index;
+
+  gtk_tree_view_get_cursor (tree_view, &focus_path, &focus_column);
+  if (focus_path && focus_column)
+    index = get_index (tree_view, focus_path,
+                       get_column_number (tree_view, focus_column, FALSE));
+  else
+    index = -1;
+
+  if (focus_path)
+    gtk_tree_path_free (focus_path);
+
+  return index;
+}
+
+/* This function returns a reference to the accessible object
+ * for the cell in the treeview which has focus, if any
+ */
+static AtkObject *
+gtk_tree_view_accessible_ref_focus_cell (GtkTreeView *tree_view)
+{
+  AtkObject *focus_cell = NULL;
+  AtkObject *atk_obj;
+  gint focus_index;
+
+  focus_index = get_focus_index (tree_view);
+  if (focus_index >= 0)
+    {
+      atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
+      focus_cell = atk_object_ref_accessible_child (atk_obj, focus_index);
+    }
+
+  return focus_cell;
+}
+
+/* atkcomponent.h */
+
+static AtkObject *
+gtk_tree_view_accessible_ref_accessible_at_point (AtkComponent *component,
+                                                  gint          x,
+                                                  gint          y,
+                                                  AtkCoordType  coord_type)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreePath *path;
+  GtkTreeViewColumn *tv_column;
+  gint x_pos, y_pos;
+  gint bx, by;
+  gboolean ret_val;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
+  if (widget == NULL)
+    return NULL;
+
+  tree_view = GTK_TREE_VIEW (widget);
+
+  atk_component_get_extents (component, &x_pos, &y_pos, NULL, NULL, coord_type);
+  gtk_tree_view_convert_widget_to_bin_window_coords (tree_view, x, y, &bx, &by);
+  ret_val = gtk_tree_view_get_path_at_pos (tree_view,
+                                           bx - x_pos, by - y_pos,
+                                           &path, &tv_column, NULL, NULL);
+  if (ret_val)
+    {
+      gint index, column;
+
+      column = get_column_number (tree_view, tv_column, FALSE);
+      index = get_index (tree_view, path, column);
+      gtk_tree_path_free (path);
+
+      return gtk_tree_view_accessible_ref_child (ATK_OBJECT (component), index);
+    }
+  else
+    {
+      g_warning ("gtk_tree_view_accessible_ref_accessible_at_point: gtk_tree_view_get_path_at_pos () failed\n");
+    }
+  return NULL;
+}
+
+static void
+atk_component_interface_init (AtkComponentIface *iface)
+{
+  iface->ref_accessible_at_point = gtk_tree_view_accessible_ref_accessible_at_point;
+}
+
+/* atktable.h */
+
+static gint
+gtk_tree_view_accessible_get_index_at (AtkTable *table,
+                                       gint      row,
+                                       gint      column)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  gint actual_column;
+  gint n_cols, n_rows;
+  GtkTreeIter iter;
+  GtkTreePath *path;
+  gint index;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
+  if (widget == NULL)
+    return -1;
+
+  n_cols = atk_table_get_n_columns (table);
+  n_rows = atk_table_get_n_rows (table);
+
+  if (row >= n_rows || column >= n_cols)
+    return -1;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  actual_column = get_actual_column_number (tree_view, column);
+
+  set_iter_nth_row (tree_view, &iter, row);
+  path = gtk_tree_model_get_path (gtk_tree_view_get_model (tree_view), &iter);
+
+  index = get_index (tree_view, path, actual_column);
+  gtk_tree_path_free (path);
+
+  return index;
+}
+
+static gint
+gtk_tree_view_accessible_get_column_at_index (AtkTable *table,
+                                              gint      index)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  gint n_columns;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
+  if (widget == NULL)
+    return -1;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  n_columns = GTK_TREE_VIEW_ACCESSIBLE (table)->n_cols;
+
+  if (n_columns == 0)
+    return 0;
+
+  index = index % n_columns;
+
+  return get_visible_column_number (tree_view, index);
+}
+
+static gint
+gtk_tree_view_accessible_get_row_at_index (AtkTable *table,
+                                           gint      index)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreePath *path;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
+  if (widget == NULL)
+    return -1;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  if (get_path_column_from_index (tree_view, index, &path, NULL))
+    {
+      gint row = get_row_from_tree_path (tree_view, path);
+      gtk_tree_path_free (path);
+      return row;
+    }
+  else
+    return -1;
+}
+
+static AtkObject *
+gtk_tree_view_accessible_table_ref_at (AtkTable *table,
+                                       gint      row,
+                                       gint      column)
+{
+  gint index;
+
+  index = gtk_tree_view_accessible_get_index_at (table, row, column);
+  if (index == -1)
+    return NULL;
+
+  return gtk_tree_view_accessible_ref_child (ATK_OBJECT (table), index);
+}
+
+static gint
+gtk_tree_view_accessible_get_n_rows (AtkTable *table)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeModel *tree_model;
+  gint n_rows;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
+  if (widget == NULL)
+    return 0;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  tree_model = gtk_tree_view_get_model (tree_view);
+
+  if (!tree_model)
+    n_rows = 0;
+  else if (gtk_tree_model_get_flags (tree_model) & GTK_TREE_MODEL_LIST_ONLY)
+    /* No collapsed rows in a list store */
+    n_rows = GTK_TREE_VIEW_ACCESSIBLE (table)->n_rows;
+  else
+    {
+      GtkTreePath *root_tree;
+
+      n_rows = 0;
+      root_tree = gtk_tree_path_new_first ();
+      iterate_thru_children (tree_view, tree_model,
+                             root_tree, NULL, &n_rows, 0);
+      gtk_tree_path_free (root_tree);
+    }
+
+  return n_rows;
+}
+
+static gint
+gtk_tree_view_accessible_get_n_columns (AtkTable *table)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeViewColumn *tv_col;
+  gint n_cols = 0;
+  gint i = 0;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
+  if (widget == NULL)
+    return 0;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  tv_col = gtk_tree_view_get_column (tree_view, i);
+
+  while (tv_col != NULL)
+    {
+      if (gtk_tree_view_column_get_visible (tv_col))
+        n_cols++;
+
+      i++;
+      tv_col = gtk_tree_view_get_column (tree_view, i);
+    }
+
+  return n_cols;
+}
+
+static gboolean
+gtk_tree_view_accessible_is_row_selected (AtkTable *table,
+                                          gint      row)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeSelection *selection;
+  GtkTreeIter iter;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
+  if (widget == NULL)
+    return FALSE;
+
+  if (row < 0)
+    return FALSE;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  selection = gtk_tree_view_get_selection (tree_view);
+
+  set_iter_nth_row (tree_view, &iter, row);
+  return gtk_tree_selection_iter_is_selected (selection, &iter);
+}
+
+static gboolean
+gtk_tree_view_accessible_is_selected (AtkTable *table,
+                                      gint      row,
+                                      gint      column)
+{
+  return gtk_tree_view_accessible_is_row_selected (table, row);
+}
+
+static void
+get_selected_rows (GtkTreeModel *model,
+                   GtkTreePath  *path,
+                   GtkTreeIter  *iter,
+                   gpointer      data)
+{
+  GPtrArray *array = (GPtrArray *)data;
+
+  g_ptr_array_add (array, gtk_tree_path_copy (path));
+}
+
+static gint
+gtk_tree_view_accessible_get_selected_rows (AtkTable  *table,
+                                            gint     **rows_selected)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeModel *tree_model;
+  GtkTreeIter iter;
+  GtkTreeSelection *selection;
+  GtkTreePath *tree_path;
+  gint ret_val = 0;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
+  if (widget == NULL)
+    return 0;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  selection = gtk_tree_view_get_selection (tree_view);
+
+  switch (gtk_tree_selection_get_mode (selection))
+    {
+    case GTK_SELECTION_SINGLE:
+    case GTK_SELECTION_BROWSE:
+      if (gtk_tree_selection_get_selected (selection, &tree_model, &iter))
+        {
+          gint row;
+
+          if (rows_selected)
+            {
+              *rows_selected = g_new (gint, 1);
+              tree_path = gtk_tree_model_get_path (tree_model, &iter);
+              row = get_row_from_tree_path (tree_view, tree_path);
+              gtk_tree_path_free (tree_path);
+
+              /* shouldn't ever happen */
+              g_return_val_if_fail (row != -1, 0);
+
+              *rows_selected[0] = row;
+            }
+          ret_val = 1;
+        }
+      break;
+    case GTK_SELECTION_MULTIPLE:
+      {
+        GPtrArray *array = g_ptr_array_new();
+
+        gtk_tree_selection_selected_foreach (selection, get_selected_rows, array);
+        ret_val = array->len;
+
+        if (rows_selected && ret_val)
+          {
+            gint i;
+
+            *rows_selected = g_new (gint, ret_val);
+            for (i = 0; i < ret_val; i++)
+              {
+                gint row;
+
+                tree_path = (GtkTreePath *) g_ptr_array_index (array, i);
+                row = get_row_from_tree_path (tree_view, tree_path);
+                gtk_tree_path_free (tree_path);
+                (*rows_selected)[i] = row;
+              }
+          }
+        g_ptr_array_free (array, FALSE);
+      }
+      break;
+    case GTK_SELECTION_NONE:
+      break;
+    }
+  return ret_val;
+}
+
+static gboolean
+gtk_tree_view_accessible_add_row_selection (AtkTable *table,
+                                            gint      row)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeModel *tree_model;
+  GtkTreeSelection *selection;
+  GtkTreePath *tree_path;
+  GtkTreeIter iter_to_row;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
+  if (widget == NULL)
+    return FALSE;
+
+  if (!gtk_tree_view_accessible_is_row_selected (table, row))
+    {
+      tree_view = GTK_TREE_VIEW (widget);
+      tree_model = gtk_tree_view_get_model (tree_view);
+      selection = gtk_tree_view_get_selection (tree_view);
+
+      if (gtk_tree_model_get_flags (tree_model) & GTK_TREE_MODEL_LIST_ONLY)
+        {
+          tree_path = gtk_tree_path_new ();
+          gtk_tree_path_append_index (tree_path, row);
+          gtk_tree_selection_select_path (selection,tree_path);
+          gtk_tree_path_free (tree_path);
+        }
+      else
+        {
+          set_iter_nth_row (tree_view, &iter_to_row, row);
+          gtk_tree_selection_select_iter (selection, &iter_to_row);
+        }
+    }
+
+  return gtk_tree_view_accessible_is_row_selected (table, row);
+}
+
+static gboolean
+gtk_tree_view_accessible_remove_row_selection (AtkTable *table,
+                                               gint      row)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeSelection *selection;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
+  if (widget == NULL)
+    return FALSE;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  selection = gtk_tree_view_get_selection (tree_view);
+
+  if (gtk_tree_view_accessible_is_row_selected (table, row))
+    {
+      gtk_tree_selection_unselect_all (selection);
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
+static AtkObject *
+gtk_tree_view_accessible_get_column_header (AtkTable *table,
+                                            gint      in_col)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeViewColumn *tv_col;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
+  if (widget == NULL)
+    return NULL;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  tv_col = get_column (tree_view, in_col);
+  return get_header_from_column (tv_col);
+}
+
+static const gchar *
+gtk_tree_view_accessible_get_column_description (AtkTable *table,
+                                                 gint      in_col)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeViewColumn *tv_col;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
+  if (widget == NULL)
+    return NULL;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  tv_col = get_column (tree_view, in_col);
+  if (tv_col == NULL)
+     return NULL;
+
+  return gtk_tree_view_column_get_title (tv_col);
+}
+
+static void
+atk_table_interface_init (AtkTableIface *iface)
+{
+  iface->ref_at = gtk_tree_view_accessible_table_ref_at;
+  iface->get_n_rows = gtk_tree_view_accessible_get_n_rows;
+  iface->get_n_columns = gtk_tree_view_accessible_get_n_columns;
+  iface->get_index_at = gtk_tree_view_accessible_get_index_at;
+  iface->get_column_at_index = gtk_tree_view_accessible_get_column_at_index;
+  iface->get_row_at_index = gtk_tree_view_accessible_get_row_at_index;
+  iface->is_row_selected = gtk_tree_view_accessible_is_row_selected;
+  iface->is_selected = gtk_tree_view_accessible_is_selected;
+  iface->get_selected_rows = gtk_tree_view_accessible_get_selected_rows;
+  iface->add_row_selection = gtk_tree_view_accessible_add_row_selection;
+  iface->remove_row_selection = gtk_tree_view_accessible_remove_row_selection;
+  iface->get_column_extent_at = NULL;
+  iface->get_row_extent_at = NULL;
+  iface->get_column_header = gtk_tree_view_accessible_get_column_header;
+  iface->get_column_description = gtk_tree_view_accessible_get_column_description;
+}
+
+/* atkselection.h */
+
+static gboolean
+gtk_tree_view_accessible_add_selection (AtkSelection *selection,
+                                        gint          i)
+{
+  AtkTable *table;
+  gint n_columns;
+  gint row;
+
+  table = ATK_TABLE (selection);
+  n_columns = gtk_tree_view_accessible_get_n_columns (table);
+  if (n_columns != 1)
+    return FALSE;
+
+  row = gtk_tree_view_accessible_get_row_at_index (table, i);
+  return gtk_tree_view_accessible_add_row_selection (table, row);
+}
+
+static gboolean
+gtk_tree_view_accessible_clear_selection (AtkSelection *selection)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeSelection *tree_selection;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  tree_selection = gtk_tree_view_get_selection (tree_view);
+
+  gtk_tree_selection_unselect_all (tree_selection);
+  return TRUE;
+}
+
+static AtkObject *
+gtk_tree_view_accessible_ref_selection (AtkSelection *selection,
+                                        gint          i)
+{
+  AtkTable *table;
+  gint row;
+  gint n_selected;
+  gint n_columns;
+  gint *selected;
+
+  table = ATK_TABLE (selection);
+  n_columns = gtk_tree_view_accessible_get_n_columns (table);
+  n_selected = gtk_tree_view_accessible_get_selected_rows (table, &selected);
+  if (i >= n_columns * n_selected)
+    return NULL;
+
+  row = selected[i / n_columns];
+  g_free (selected);
+
+  return gtk_tree_view_accessible_table_ref_at (table, row, i % n_columns);
+}
+
+static gint
+gtk_tree_view_accessible_get_selection_count (AtkSelection *selection)
+{
+  AtkTable *table;
+  gint n_selected;
+
+  table = ATK_TABLE (selection);
+  n_selected = gtk_tree_view_accessible_get_selected_rows (table, NULL);
+  if (n_selected > 0)
+    n_selected *= gtk_tree_view_accessible_get_n_columns (table);
+  return n_selected;
+}
+
+static gboolean
+gtk_tree_view_accessible_is_child_selected (AtkSelection *selection,
+                                            gint          i)
+{
+  GtkWidget *widget;
+  gint row;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
+  if (widget == NULL)
+    return FALSE;
+
+  row = atk_table_get_row_at_index (ATK_TABLE (selection), i);
+
+  return gtk_tree_view_accessible_is_row_selected (ATK_TABLE (selection), row);
+}
+
+static void atk_selection_interface_init (AtkSelectionIface *iface)
+{
+  iface->add_selection = gtk_tree_view_accessible_add_selection;
+  iface->clear_selection = gtk_tree_view_accessible_clear_selection;
+  iface->ref_selection = gtk_tree_view_accessible_ref_selection;
+  iface->get_selection_count = gtk_tree_view_accessible_get_selection_count;
+  iface->is_child_selected = gtk_tree_view_accessible_is_child_selected;
+}
+
+#define EXTRA_EXPANDER_PADDING 4
+
+static void
+gtk_tree_view_accessible_get_cell_area (GtkCellAccessibleParent *parent,
+                                        GtkCellAccessible       *cell,
+                                        GdkRectangle            *cell_rect)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeViewColumn *tv_col;
+  GtkTreePath *path;
+  AtkObject *parent_cell;
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GtkCellAccessible *top_cell;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
+  if (widget == NULL)
+    return;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  parent_cell = atk_object_get_parent (ATK_OBJECT (cell));
+  if (parent_cell != ATK_OBJECT (parent))
+    top_cell = GTK_CELL_ACCESSIBLE (parent_cell);
+  else
+    top_cell = cell;
+  cell_info = find_cell_info (GTK_TREE_VIEW_ACCESSIBLE (parent), top_cell, TRUE);
+  if (!cell_info || !cell_info->cell_col_ref || !cell_info->cell_row_ref)
+    return;
+  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+  tv_col = cell_info->cell_col_ref;
+  if (path && cell_info->in_use)
+    {
+      GtkTreeViewColumn *expander_column;
+      gint focus_line_width;
+
+      gtk_tree_view_get_cell_area (tree_view, path, tv_col, cell_rect);
+      expander_column = gtk_tree_view_get_expander_column (tree_view);
+      if (expander_column == tv_col)
+        {
+          gint expander_size;
+          gtk_widget_style_get (widget,
+                                "expander-size", &expander_size,
+                                NULL);
+          cell_rect->x += expander_size + EXTRA_EXPANDER_PADDING;
+          cell_rect->width -= expander_size + EXTRA_EXPANDER_PADDING;
+        }
+      gtk_widget_style_get (widget,
+                            "focus-line-width", &focus_line_width,
+                            NULL);
+
+      cell_rect->x += focus_line_width;
+      cell_rect->width -= 2 * focus_line_width;
+
+      gtk_tree_path_free (path);
+
+      /* A column has more than one renderer so we find the position
+       * and width of each
+       */
+      if (top_cell != cell)
+        {
+          gint cell_index;
+          gboolean found;
+          gint cell_start;
+          gint cell_width;
+          GList *renderers;
+          GtkCellRenderer *renderer;
+
+          cell_index = atk_object_get_index_in_parent (ATK_OBJECT (cell));
+          renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (tv_col));
+          renderer = g_list_nth_data (renderers, cell_index);
+
+          found = gtk_tree_view_column_cell_get_position (tv_col, renderer, &cell_start, &cell_width);
+          if (found)
+            {
+              cell_rect->x += cell_start;
+              cell_rect->width = cell_width;
+            }
+          g_list_free (renderers);
+        }
+
+    }
+}
+
+static void
+gtk_tree_view_accessible_get_cell_extents (GtkCellAccessibleParent *parent,
+                                           GtkCellAccessible       *cell,
+                                           gint                    *x,
+                                           gint                    *y,
+                                           gint                    *width,
+                                           gint                    *height,
+                                           AtkCoordType             coord_type)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GdkWindow *bin_window;
+  GdkRectangle cell_rect;
+  gint w_x, w_y;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
+  if (widget == NULL)
+    return;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  gtk_tree_view_accessible_get_cell_area (parent, cell, &cell_rect);
+  bin_window = gtk_tree_view_get_bin_window (tree_view);
+  gdk_window_get_origin (bin_window, &w_x, &w_y);
+
+  if (coord_type == ATK_XY_WINDOW)
+    {
+      GdkWindow *window;
+      gint x_toplevel, y_toplevel;
+
+      window = gdk_window_get_toplevel (bin_window);
+      gdk_window_get_origin (window, &x_toplevel, &y_toplevel);
+
+      w_x -= x_toplevel;
+      w_y -= y_toplevel;
+    }
+
+  *width = cell_rect.width;
+  *height = cell_rect.height;
+  if (is_cell_showing (tree_view, &cell_rect))
+    {
+      *x = cell_rect.x + w_x;
+      *y = cell_rect.y + w_y;
+    }
+  else
+    {
+      *x = G_MININT;
+      *y = G_MININT;
+    }
+}
+
+static gboolean
+gtk_tree_view_accessible_grab_cell_focus (GtkCellAccessibleParent *parent,
+                                          GtkCellAccessible       *cell)
+{
+  GtkWidget *widget;
+  GtkTreeView *tree_view;
+  GtkTreeViewColumn *tv_col;
+  GtkTreePath *path;
+  AtkObject *parent_cell;
+  AtkObject *cell_object;
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GtkCellRenderer *renderer = NULL;
+  GtkWidget *toplevel;
+  gint index;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
+  if (widget == NULL)
+    return FALSE;
+
+  tree_view = GTK_TREE_VIEW (widget);
+
+  cell_info = find_cell_info (GTK_TREE_VIEW_ACCESSIBLE (parent), cell, TRUE);
+  if (!cell_info || !cell_info->cell_col_ref || !cell_info->cell_row_ref)
+    return FALSE;
+  cell_object = ATK_OBJECT (cell);
+  parent_cell = atk_object_get_parent (cell_object);
+  tv_col = cell_info->cell_col_ref;
+  if (parent_cell != ATK_OBJECT (parent))
+    {
+      /* GtkCellAccessible is in a GtkContainerCellAccessible.
+       * The GtkTreeViewColumn has multiple renderers;
+       * find the corresponding one.
+       */
+      GList *renderers;
+
+      renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (tv_col));
+      if (cell_info->in_use)
+        {
+          index = atk_object_get_index_in_parent (cell_object);
+          renderer = g_list_nth_data (renderers, index);
+        }
+      g_list_free (renderers);
+    }
+  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+  if (path && cell_info->in_use)
+    {
+      if (renderer)
+        gtk_tree_view_set_cursor_on_cell (tree_view, path, tv_col, renderer, FALSE);
+      else
+        gtk_tree_view_set_cursor (tree_view, path, tv_col, FALSE);
+
+      gtk_tree_path_free (path);
+      gtk_widget_grab_focus (widget);
+      toplevel = gtk_widget_get_toplevel (widget);
+      if (gtk_widget_is_toplevel (toplevel))
+        {
+#ifdef GDK_WINDOWING_X11
+          gtk_window_present_with_time (GTK_WINDOW (toplevel),
+                                        gdk_x11_get_server_time (gtk_widget_get_window (widget)));
+#else
+          gtk_window_present (GTK_WINDOW (toplevel));
+#endif
+        }
+
+      return TRUE;
+    }
+  else
+      return FALSE;
+}
+
+static void
+gtk_cell_accessible_parent_interface_init (GtkCellAccessibleParentIface *iface)
+{
+  iface->get_cell_extents = gtk_tree_view_accessible_get_cell_extents;
+  iface->get_cell_area = gtk_tree_view_accessible_get_cell_area;
+  iface->grab_focus = gtk_tree_view_accessible_grab_cell_focus;
+}
+
+/* signal handling */
+
+static gboolean
+idle_expand_row (gpointer data)
+{
+  GtkTreeViewAccessible *accessible = data;
+  GtkTreePath *path;
+  GtkTreeView *tree_view;
+  GtkTreeIter iter;
+  GtkTreeModel *tree_model;
+  gint n_inserted, row;
+
+  accessible->idle_expand_id = 0;
+
+  path = accessible->idle_expand_path;
+  tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible)));
+
+  tree_model = gtk_tree_view_get_model (tree_view);
+  if (!tree_model)
+    return FALSE;
+
+  if (!path || !gtk_tree_model_get_iter (tree_model, &iter, path))
+    return FALSE;
+
+  /* Update visibility of cells below expansion row */
+  traverse_cells (accessible, path, FALSE, FALSE);
+
+  /* Figure out number of visible children, the following test
+   * should not fail
+   */
+  if (gtk_tree_model_iter_has_child (tree_model, &iter))
+    {
+      GtkTreePath *path_copy;
+
+      /* By passing path into this function, we find the number of
+       * visible children of path.
+       */
+      path_copy = gtk_tree_path_copy (path);
+      gtk_tree_path_append_index (path_copy, 0);
+
+      n_inserted = 0;
+      iterate_thru_children (tree_view, tree_model,
+                             path_copy, NULL, &n_inserted, 0);
+      gtk_tree_path_free (path_copy);
+    }
+  else
+    {
+      /* We can get here if the row expanded callback deleted the row */
+      return FALSE;
+    }
+
+  /* Set expand state */
+  set_expand_state (tree_view, tree_model, accessible, path, TRUE);
+
+  row = get_row_from_tree_path (tree_view, path);
+
+  /* shouldn't ever happen */
+  if (row == -1)
+    g_assert_not_reached ();
+
+  /* Must add 1 because the "added rows" are below the row being expanded */
+  row += 1;
+
+  g_signal_emit_by_name (accessible, "row-inserted", row, n_inserted);
+
+  accessible->idle_expand_path = NULL;
+
+  gtk_tree_path_free (path);
+
+  return FALSE;
+}
+
+static gboolean
+row_expanded_cb (GtkTreeView *tree_view,
+                 GtkTreeIter *iter,
+                 GtkTreePath *path)
+{
+  AtkObject *atk_obj;
+  GtkTreeViewAccessible *accessible;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (atk_obj);
+
+  /*
+   * The visible rectangle has not been updated when this signal is emitted
+   * so we process the signal when the GTK processing is completed
+   */
+  /* this seems wrong since it overwrites any other pending expand handlers... */
+  accessible->idle_expand_path = gtk_tree_path_copy (path);
+  if (accessible->idle_expand_id)
+    g_source_remove (accessible->idle_expand_id);
+  accessible->idle_expand_id = gdk_threads_add_idle (idle_expand_row, accessible);
+
+  return FALSE;
+}
+
+static gboolean
+row_collapsed_cb (GtkTreeView *tree_view,
+                  GtkTreeIter *iter,
+                  GtkTreePath *path)
+{
+  GtkTreeModel *tree_model;
+  AtkObject *atk_obj;
+  GtkTreeViewAccessible *accessible;
+  gint row;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (atk_obj);
+  tree_model = gtk_tree_view_get_model (tree_view);
+
+  clean_rows (accessible);
+
+  /* Update visibility of cells below collapsed row */
+  traverse_cells (accessible, path, FALSE, FALSE);
+
+  /* Set collapse state */
+  set_expand_state (tree_view, tree_model, accessible, path, FALSE);
+  if (accessible->n_children_deleted == 0)
+    return FALSE;
+  row = get_row_from_tree_path (tree_view, path);
+  if (row == -1)
+    return FALSE;
+  g_signal_emit_by_name (atk_obj, "row-deleted", row,
+                         accessible->n_children_deleted);
+  accessible->n_children_deleted = 0;
+  return FALSE;
+}
+
+static void
+size_allocate_cb (GtkWidget     *widget,
+                  GtkAllocation *allocation)
+{
+  AtkObject *atk_obj;
+  GtkTreeViewAccessible *accessible;
+
+  atk_obj = gtk_widget_get_accessible (widget);
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (atk_obj);
+
+  /* If the size allocation changes, the visibility of cells
+   * may change so update the cells visibility.
+   */
+  traverse_cells (accessible, NULL, FALSE, FALSE);
+}
+
+static void
+selection_changed_cb (GtkTreeSelection *selection,
+                      gpointer          data)
+{
+  GtkTreeViewAccessible *accessible;
+  GtkTreeView *tree_view;
+  GtkWidget *widget;
+  GtkTreeViewAccessibleCellInfo *info;
+  GtkTreeSelection *tree_selection;
+  GtkTreePath *path;
+  GHashTableIter iter;
+
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (data);
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  tree_selection = gtk_tree_view_get_selection (tree_view);
+
+  clean_rows (accessible);
+
+  /* FIXME: clean rows iterates through all cells too */
+  g_hash_table_iter_init (&iter, accessible->cell_info_by_index);
+  while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&info))
+    {
+      if (info->in_use)
+        {
+          _gtk_cell_accessible_remove_state (info->cell, ATK_STATE_SELECTED, TRUE);
+
+          path = gtk_tree_row_reference_get_path (info->cell_row_ref);
+          if (path && gtk_tree_selection_path_is_selected (tree_selection, path))
+            _gtk_cell_accessible_add_state (info->cell, ATK_STATE_SELECTED, TRUE);
+          gtk_tree_path_free (path);
+        }
+    }
+  if (gtk_widget_get_realized (widget))
+    g_signal_emit_by_name (accessible, "selection-changed");
+}
+
+static void
+columns_changed (GtkTreeView *tree_view)
+{
+  AtkObject *atk_obj;
+  GtkTreeViewAccessible *accessible;
+  GList *tv_cols, *tmp_list;
+  gboolean column_found;
+  gboolean move_found = FALSE;
+  gboolean stale_set = FALSE;
+  gint column_count = 0;
+  gint i;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET(tree_view));
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (atk_obj);
+
+  /* This function must determine if the change is an add, delete
+   * or a move based upon its cache of TreeViewColumns in
+   * accessible->col_data
+   */
+  tv_cols = gtk_tree_view_get_columns (tree_view);
+  accessible->n_cols = g_list_length (tv_cols);
+
+  /* check for adds or moves */
+  for (tmp_list = tv_cols; tmp_list; tmp_list = tmp_list->next)
+    {
+      column_found = FALSE;
+
+      for (i = 0; i < accessible->col_data->len; i++)
+        {
+
+          if ((GtkTreeViewColumn *)tmp_list->data ==
+              (GtkTreeViewColumn *)g_array_index (accessible->col_data,
+               GtkTreeViewColumn *, i))
+            {
+              column_found = TRUE;
+
+              /* If the column isn't in the same position, a move happened */
+              if (!move_found && i != column_count)
+                {
+                  if (!stale_set)
+                    {
+                      /* Set all rows to ATK_STATE_STALE */
+                      traverse_cells (accessible, NULL, TRUE, FALSE);
+                      stale_set = TRUE;
+                    }
+
+                  /* Just emit one column reordered signal when a move happens */
+                  g_signal_emit_by_name (atk_obj, "column-reordered");
+                  move_found = TRUE;
+                }
+
+              break;
+            }
+        }
+
+     /* If column_found is FALSE, then an insert happened for column
+      * number column_count
+      */
+      if (!column_found)
+        {
+          gint row;
+
+          if (!stale_set)
+            {
+              /* Set all rows to ATK_STATE_STALE */
+              traverse_cells (accessible, NULL, TRUE, FALSE);
+              stale_set = TRUE;
+            }
+
+          /* Generate column-inserted signal */
+          g_signal_emit_by_name (atk_obj, "column-inserted", column_count, 1);
+
+          /* Generate children-changed signals */
+          for (row = 0; row < accessible->n_rows; row++)
+            {
+             /* Pass NULL as the child object, i.e. 4th argument */
+              g_signal_emit_by_name (atk_obj, "children-changed::add",
+                                    ((row * accessible->n_cols) + column_count), NULL, NULL);
+            }
+        }
+
+      column_count++;
+    }
+
+  /* check for deletes */
+  for (i = 0; i < accessible->col_data->len; i++)
+    {
+      column_found = FALSE;
+
+      for (tmp_list = tv_cols; tmp_list; tmp_list = tmp_list->next)
+        {
+            if ((GtkTreeViewColumn *)tmp_list->data ==
+                (GtkTreeViewColumn *)g_array_index (accessible->col_data,
+                 GtkTreeViewColumn *, i))
+              {
+                column_found = TRUE;
+                break;
+              }
+        }
+
+       /* If column_found is FALSE, then a delete happened for column
+        * number i
+        */
+      if (!column_found)
+        {
+          gint row;
+
+          clean_cols (accessible,
+                      (GtkTreeViewColumn *)g_array_index (accessible->col_data,
+                      GtkTreeViewColumn *, i));
+
+          if (!stale_set)
+            {
+              /* Set all rows to ATK_STATE_STALE */
+              traverse_cells (accessible, NULL, TRUE, FALSE);
+              stale_set = TRUE;
+            }
+
+          /* Generate column-deleted signal */
+          g_signal_emit_by_name (atk_obj, "column-deleted", i, 1);
+
+          /* Generate children-changed signals */
+          for (row = 0; row < accessible->n_rows; row++)
+            {
+              /* Pass NULL as the child object, 4th argument */
+              g_signal_emit_by_name (atk_obj, "children-changed::remove",
+                                     ((row * accessible->n_cols) + column_count), NULL, NULL);
+            }
+        }
+    }
+
+  /* rebuild the array */
+  g_array_free (accessible->col_data, TRUE);
+  accessible->col_data = g_array_sized_new (FALSE, TRUE, sizeof (GtkTreeViewColumn *), 0);
+
+  for (tmp_list = tv_cols; tmp_list; tmp_list = tmp_list->next)
+    g_array_append_val (accessible->col_data, tmp_list->data);
+  g_list_free (tv_cols);
+}
+
+static gint
+idle_cursor_changed (gpointer data)
+{
+  GtkTreeViewAccessible *accessible = GTK_TREE_VIEW_ACCESSIBLE (data);
+  GtkTreeView *tree_view;
+  GtkWidget *widget;
+  AtkObject *cell;
+
+  accessible->idle_cursor_changed_id = 0;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return FALSE;
+
+  tree_view = GTK_TREE_VIEW (widget);
+
+  cell = gtk_tree_view_accessible_ref_focus_cell (tree_view);
+  if (cell)
+    {
+      if (cell != accessible->focus_cell)
+        {
+          if (accessible->focus_cell)
+            {
+              _gtk_cell_accessible_remove_state (GTK_CELL_ACCESSIBLE (accessible->focus_cell), ATK_STATE_ACTIVE, FALSE);
+              _gtk_cell_accessible_remove_state (GTK_CELL_ACCESSIBLE (accessible->focus_cell), ATK_STATE_FOCUSED, FALSE);
+              g_object_unref (accessible->focus_cell);
+              accessible->focus_cell = cell;
+            }
+
+          if (gtk_widget_has_focus (widget))
+            {
+              _gtk_cell_accessible_add_state (GTK_CELL_ACCESSIBLE (cell), ATK_STATE_ACTIVE, FALSE);
+              _gtk_cell_accessible_add_state (GTK_CELL_ACCESSIBLE (cell), ATK_STATE_FOCUSED, FALSE);
+            }
+
+          g_signal_emit_by_name (accessible, "active-descendant-changed", cell);
+        }
+      else
+        g_object_unref (cell);
+    }
+
+  return FALSE;
+}
+
+static void
+cursor_changed (GtkTreeView *tree_view)
+{
+  GtkTreeViewAccessible *accessible;
+
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (tree_view)));
+  if (accessible->idle_cursor_changed_id != 0)
+    return;
+
+  /* We notify the focus change in a idle handler so that the processing
+   * of the cursor change is completed when the focus handler is called.
+   * This will allow actions to be called in the focus handler
+   */
+  accessible->idle_cursor_changed_id = gdk_threads_add_idle (idle_cursor_changed, accessible);
+}
+
+static gboolean
+focus_in (GtkWidget *widget)
+{
+  GtkTreeView *tree_view;
+  GtkTreeViewAccessible *accessible;
+  AtkStateSet *state_set;
+  AtkObject *cell;
+
+  tree_view = GTK_TREE_VIEW (widget);
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (gtk_widget_get_accessible (widget));
+
+  if (accessible->focus_cell == NULL)
+    {
+      cell = gtk_tree_view_accessible_ref_focus_cell (tree_view);
+      if (cell)
+        {
+          state_set = atk_object_ref_state_set (cell);
+          if (state_set)
+            {
+              if (!atk_state_set_contains_state (state_set, ATK_STATE_FOCUSED))
+                {
+                  _gtk_cell_accessible_add_state (GTK_CELL_ACCESSIBLE (cell), ATK_STATE_ACTIVE, FALSE);
+                  accessible->focus_cell = cell;
+                  _gtk_cell_accessible_add_state (GTK_CELL_ACCESSIBLE (cell), ATK_STATE_FOCUSED, FALSE);
+                  g_signal_emit_by_name (accessible, "active-descendant-changed", cell);
+                }
+              g_object_unref (state_set);
+            }
+        }
+    }
+  return FALSE;
+}
+
+static gboolean
+focus_out (GtkWidget *widget)
+{
+  GtkTreeViewAccessible *accessible;
+
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (gtk_widget_get_accessible (widget));
+  if (accessible->focus_cell)
+    {
+      _gtk_cell_accessible_remove_state (GTK_CELL_ACCESSIBLE (accessible->focus_cell), ATK_STATE_ACTIVE, FALSE);
+      _gtk_cell_accessible_remove_state (GTK_CELL_ACCESSIBLE (accessible->focus_cell), ATK_STATE_FOCUSED, FALSE);
+      g_object_unref (accessible->focus_cell);
+      accessible->focus_cell = NULL;
+    }
+  return FALSE;
+}
+
+static void
+model_row_changed (GtkTreeModel *tree_model,
+                   GtkTreePath  *path,
+                   GtkTreeIter  *iter,
+                   gpointer      user_data)
+{
+  GtkTreeView *tree_view = GTK_TREE_VIEW (user_data);
+  GtkTreeViewAccessible *accessible;
+  GtkTreePath *cell_path;
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GHashTableIter hash_iter;
+
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (tree_view)));
+
+  /* Loop through our cached cells */
+  /* Must loop through them all */
+  g_hash_table_iter_init (&hash_iter, accessible->cell_info_by_index);
+  while (g_hash_table_iter_next (&hash_iter, NULL, (gpointer *)&cell_info))
+    {
+      if (cell_info->in_use)
+        {
+          cell_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+
+          if (cell_path != NULL)
+            {
+              if (path && gtk_tree_path_compare (cell_path, path) == 0)
+                {
+                  if (GTK_IS_RENDERER_CELL_ACCESSIBLE (cell_info->cell))
+                    update_cell_value (GTK_RENDERER_CELL_ACCESSIBLE (cell_info->cell),
+                                       accessible, TRUE);
+                }
+              gtk_tree_path_free (cell_path);
+            }
+        }
+    }
+  g_signal_emit_by_name (accessible, "visible-data-changed");
+}
+
+static void
+column_visibility_changed (GObject    *object,
+                           GParamSpec *pspec,
+                           gpointer    user_data)
+{
+  if (g_strcmp0 (pspec->name, "visible") == 0)
+    {
+      /* A column has been made visible or invisible
+       * We update our cache of cells and emit model_changed signal
+       */
+      GtkTreeView *tree_view = (GtkTreeView *)user_data;
+      GtkTreeViewAccessible *accessible;
+      GtkTreeViewAccessibleCellInfo *cell_info;
+      GtkTreeViewColumn *this_col = GTK_TREE_VIEW_COLUMN (object);
+      GtkTreeViewColumn *tv_col;
+      GHashTableIter iter;
+
+      accessible = GTK_TREE_VIEW_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (tree_view))
+);
+      g_signal_emit_by_name (accessible, "model-changed");
+
+      g_hash_table_iter_init (&iter, accessible->cell_info_by_index);
+      while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&cell_info))
+        {
+          if (cell_info->in_use)
+            {
+              tv_col = cell_info->cell_col_ref;
+              if (tv_col == this_col)
+                {
+                  GtkTreePath *row_path;
+                  row_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+                  if (GTK_IS_RENDERER_CELL_ACCESSIBLE (cell_info->cell))
+                    {
+                      if (gtk_tree_view_column_get_visible (tv_col))
+                          set_cell_visibility (tree_view,
+                                               cell_info->cell,
+                                               tv_col, row_path, FALSE);
+                      else
+                        {
+                          _gtk_cell_accessible_remove_state (cell_info->cell, ATK_STATE_VISIBLE, TRUE);
+                          _gtk_cell_accessible_remove_state (cell_info->cell, ATK_STATE_SHOWING, TRUE);
+                        }
+                    }
+                  gtk_tree_path_free (row_path);
+                }
+            }
+        }
+    }
+}
+
+static void
+model_row_inserted (GtkTreeModel *tree_model,
+                    GtkTreePath  *path,
+                    GtkTreeIter  *iter,
+                    gpointer      user_data)
+{
+  GtkTreeView *tree_view = (GtkTreeView *)user_data;
+  AtkObject *atk_obj;
+  GtkTreeViewAccessible *accessible;
+  GtkTreePath *path_copy;
+  gint row, n_inserted, child_row;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (atk_obj);
+  accessible->n_rows++;
+
+  if (accessible->idle_expand_id)
+    {
+      g_source_remove (accessible->idle_expand_id);
+      accessible->idle_expand_id = 0;
+
+      /* don't do this if the insertion precedes the idle path,
+       * since it will now be invalid
+       */
+      if (path && accessible->idle_expand_path &&
+          (gtk_tree_path_compare (path, accessible->idle_expand_path) > 0))
+          set_expand_state (tree_view, tree_model, accessible, accessible->idle_expand_path, FALSE);
+      if (accessible->idle_expand_path)
+          gtk_tree_path_free (accessible->idle_expand_path);
+    }
+  /* Check to see if row is visible */
+  row = get_row_from_tree_path (tree_view, path);
+
+ /* A row insert is not necessarily visible.  For example,
+  * a row can be draged & dropped into another row, which
+  * causes an insert on the model that isn't visible in the
+  * view.  Only generate a signal if the inserted row is
+  * visible.
+  */
+  if (row != -1)
+    {
+      GtkTreeIter tmp_iter;
+      gint n_cols, col;
+
+      gtk_tree_model_get_iter (tree_model, &tmp_iter, path);
+
+      /* Figure out number of visible children. */
+      if (gtk_tree_model_iter_has_child (tree_model, &tmp_iter))
+        {
+         /*
+          * By passing path into this function, we find the number of
+          * visible children of path.
+          */
+          n_inserted = 0;
+          iterate_thru_children (tree_view, tree_model,
+                                 path, NULL, &n_inserted, 0);
+
+          /* Must add one to include the row that is being added */
+          n_inserted++;
+        }
+      else
+        n_inserted = 1;
+
+      /* Set rows below the inserted row to ATK_STATE_STALE */
+      traverse_cells (accessible, path, TRUE, TRUE);
+
+      /* Generate row-inserted signal */
+      g_signal_emit_by_name (atk_obj, "row-inserted", row, n_inserted);
+
+      /* Generate children-changed signals */
+      n_cols = gtk_tree_view_accessible_get_n_columns (ATK_TABLE (atk_obj));
+      for (child_row = row; child_row < (row + n_inserted); child_row++)
+        {
+          for (col = 0; col < n_cols; col++)
+            {
+             /* Pass NULL as the child object, i.e. 4th argument */
+              g_signal_emit_by_name (atk_obj, "children-changed::add",
+                                    ((row * n_cols) + col), NULL, NULL);
+            }
+        }
+    }
+  else
+    {
+     /* The row has been inserted inside another row.  This can
+      * cause a row that previously couldn't be expanded to now
+      * be expandable.
+      */
+      path_copy = gtk_tree_path_copy (path);
+      gtk_tree_path_up (path_copy);
+      set_expand_state (tree_view, tree_model, accessible, path_copy, TRUE);
+      gtk_tree_path_free (path_copy);
+    }
+}
+
+static void
+model_row_deleted (GtkTreeModel *tree_model,
+                   GtkTreePath  *path,
+                   gpointer      user_data)
+{
+  GtkTreeView *tree_view = (GtkTreeView *)user_data;
+  GtkTreePath *path_copy;
+  AtkObject *atk_obj;
+  GtkTreeViewAccessible *accessible;
+  gint row, col;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (atk_obj);
+
+  accessible->n_rows--;
+
+  if (accessible->idle_expand_id)
+    {
+      g_source_remove (accessible->idle_expand_id);
+      gtk_tree_path_free (accessible->idle_expand_path);
+      accessible->idle_expand_id = 0;
+    }
+
+  /* Check to see if row is visible */
+  clean_rows (accessible);
+
+  /* Set rows at or below the specified row to ATK_STATE_STALE */
+  traverse_cells (accessible, path, TRUE, TRUE);
+
+  /* If deleting a row with a depth > 1, then this may affect the
+   * expansion/contraction of its parent(s). Make sure this is
+   * handled.
+   */
+  if (gtk_tree_path_get_depth (path) > 1)
+    {
+      path_copy = gtk_tree_path_copy (path);
+      gtk_tree_path_up (path_copy);
+      set_expand_state (tree_view, tree_model, accessible, path_copy, TRUE);
+      gtk_tree_path_free (path_copy);
+    }
+  row = get_row_from_tree_path (tree_view, path);
+
+  /* If the row which is deleted is not visible because it is a child of
+   * a collapsed row then row will be -1
+   */
+  if (row > 0)
+    g_signal_emit_by_name (atk_obj, "row-deleted", row,
+                           accessible->n_children_deleted + 1);
+  accessible->n_children_deleted = 0;
+
+  /* Generate children-changed signals */
+  for (col = 0; col < accessible->n_cols; col++)
+    {
+      /* Pass NULL as the child object, 4th argument */
+      g_signal_emit_by_name (atk_obj, "children-changed::remove",
+                             ((row * accessible->n_cols) + col), NULL, NULL);
+    }
+}
+
+/* This function gets called when a row is deleted or when rows are
+ * removed from the view due to a collapse event. Note that the
+ * count is the number of visible *children* of the deleted row,
+ * so it does not include the row being deleted.
+ *
+ * As this function is called before the rows are removed we just note
+ * the number of rows and then deal with it when we get a notification
+ * that rows were deleted or collapsed.
+ */
+static void
+destroy_count_func (GtkTreeView *tree_view,
+                    GtkTreePath *path,
+                    gint         count,
+                    gpointer     user_data)
+{
+  AtkObject *atk_obj;
+  GtkTreeViewAccessible *accessible;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (atk_obj);
+
+  if (accessible->n_children_deleted != 0)
+    return;
+
+  accessible->n_children_deleted = count;
+}
+
+static void
+model_rows_reordered (GtkTreeModel *tree_model,
+                      GtkTreePath  *path,
+                      GtkTreeIter  *iter,
+                      gint         *new_order,
+                      gpointer      user_data)
+{
+  GtkTreeView *tree_view = (GtkTreeView *)user_data;
+  AtkObject *atk_obj;
+  GtkTreeViewAccessible *accessible;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (atk_obj);
+
+  if (accessible->idle_expand_id)
+    {
+      g_source_remove (accessible->idle_expand_id);
+      gtk_tree_path_free (accessible->idle_expand_path);
+      accessible->idle_expand_id = 0;
+    }
+  traverse_cells (accessible, NULL, TRUE, FALSE);
+
+  g_signal_emit_by_name (atk_obj, "row-reordered");
+}
+
+static void
+set_cell_visibility (GtkTreeView       *tree_view,
+                     GtkCellAccessible *cell,
+                     GtkTreeViewColumn *tv_col,
+                     GtkTreePath       *tree_path,
+                     gboolean           emit_signal)
+{
+  GdkRectangle cell_rect;
+
+  /* Get these three values in tree coords */
+  if (gtk_widget_get_realized (GTK_WIDGET (tree_view)))
+    gtk_tree_view_get_cell_area (tree_view, tree_path, tv_col, &cell_rect);
+  else
+    cell_rect.height = 0;
+
+  if (cell_rect.height > 0)
+    {
+      /* The height will be zero for a cell for which an antecedent
+       * is not expanded
+       */
+      _gtk_cell_accessible_add_state (cell, ATK_STATE_VISIBLE, emit_signal);
+      if (is_cell_showing (tree_view, &cell_rect))
+        _gtk_cell_accessible_add_state (cell, ATK_STATE_SHOWING, emit_signal);
+      else
+        _gtk_cell_accessible_remove_state (cell, ATK_STATE_SHOWING, emit_signal);
+    }
+  else
+    {
+      _gtk_cell_accessible_remove_state (cell, ATK_STATE_VISIBLE, emit_signal);
+      _gtk_cell_accessible_remove_state (cell, ATK_STATE_SHOWING, emit_signal);
+    }
+}
+
+static gboolean
+is_cell_showing (GtkTreeView  *tree_view,
+                 GdkRectangle *cell_rect)
+{
+  GdkRectangle rect, *visible_rect;
+  GdkRectangle rect1, *tree_cell_rect;
+  gint bx, by;
+  gboolean is_showing;
+
+ /* A cell is considered "SHOWING" if any part of the cell is
+  * in the visible area. Other ways we could do this is by a
+  * cell's midpoint or if the cell is fully in the visible range.
+  * Since we have the cell_rect x, y, width, height of the cell,
+  * any of these is easy to compute.
+  *
+  * It is assumed that cell's rectangle is in widget coordinates
+  * so we must transform to tree cordinates.
+  */
+  visible_rect = &rect;
+  tree_cell_rect = &rect1;
+  tree_cell_rect->x = cell_rect->x;
+  tree_cell_rect->y = cell_rect->y;
+  tree_cell_rect->width = cell_rect->width;
+  tree_cell_rect->height = cell_rect->height;
+
+  gtk_tree_view_get_visible_rect (tree_view, visible_rect);
+  gtk_tree_view_convert_tree_to_bin_window_coords (tree_view, visible_rect->x,
+                                                   visible_rect->y, &bx, &by);
+
+  if (((tree_cell_rect->x + tree_cell_rect->width) < bx) ||
+     ((tree_cell_rect->y + tree_cell_rect->height) < by) ||
+     (tree_cell_rect->x > (bx + visible_rect->width)) ||
+     (tree_cell_rect->y > (by + visible_rect->height)))
+    is_showing =  FALSE;
+  else
+    is_showing = TRUE;
+
+  return is_showing;
+}
+
+/* Misc Public */
+
+/* This function is called when a cell's flyweight is created in
+ * gtk_tree_view_accessible_table_ref_at with emit_change_signal
+ * set to FALSE and in model_row_changed() on receipt of "row-changed"
+ * signal when emit_change_signal is set to TRUE
+ */
+static gboolean
+update_cell_value (GtkRendererCellAccessible      *renderer_cell,
+                   GtkTreeViewAccessible *accessible,
+                   gboolean               emit_change_signal)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GtkTreeView *tree_view;
+  GtkTreeModel *tree_model;
+  GtkTreePath *path;
+  GtkTreeIter iter;
+  GList *renderers, *cur_renderer;
+  GParamSpec *spec;
+  GtkRendererCellAccessibleClass *renderer_cell_class;
+  GtkCellRendererClass *gtk_cell_renderer_class;
+  GtkCellAccessible *cell;
+  gchar **prop_list;
+  AtkObject *parent;
+  gboolean is_expander, is_expanded;
+
+  renderer_cell_class = GTK_RENDERER_CELL_ACCESSIBLE_GET_CLASS (renderer_cell);
+  if (renderer_cell->renderer)
+    gtk_cell_renderer_class = GTK_CELL_RENDERER_GET_CLASS (renderer_cell->renderer);
+  else
+    gtk_cell_renderer_class = NULL;
+
+  prop_list = renderer_cell_class->property_list;
+
+  cell = GTK_CELL_ACCESSIBLE (renderer_cell);
+  cell_info = find_cell_info (accessible, cell, TRUE);
+  if (!cell_info || !cell_info->cell_col_ref || !cell_info->cell_row_ref)
+    return FALSE;
+
+  if (emit_change_signal && cell_info->in_use)
+    {
+      tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible)));
+      tree_model = gtk_tree_view_get_model (tree_view);
+      path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+      if (path == NULL)
+        return FALSE;
+
+      gtk_tree_model_get_iter (tree_model, &iter, path);
+      is_expander = FALSE;
+      is_expanded = FALSE;
+      if (gtk_tree_model_iter_has_child (tree_model, &iter))
+        {
+          GtkTreeViewColumn *expander_tv;
+
+          expander_tv = gtk_tree_view_get_expander_column (tree_view);
+          if (expander_tv == cell_info->cell_col_ref)
+            {
+              is_expander = TRUE;
+              is_expanded = gtk_tree_view_row_expanded (tree_view, path);
+            }
+        }
+      gtk_tree_path_free (path);
+      gtk_tree_view_column_cell_set_cell_data (cell_info->cell_col_ref,
+                                               tree_model, &iter,
+                                               is_expander, is_expanded);
+    }
+  renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (cell_info->cell_col_ref));
+  if (!renderers)
+    return FALSE;
+
+  /* If the cell is in a container, its index is used to find the renderer
+   * in the list. Otherwise, we assume that the cell is represented
+   * by the first renderer in the list
+   */
+
+  if (cell_info->in_use)
+    {
+      parent = atk_object_get_parent (ATK_OBJECT (cell));
+
+      if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
+        cur_renderer = g_list_nth (renderers, cell->index);
+      else
+        cur_renderer = renderers;
+    }
+  else
+    return FALSE;
+
+  if (cur_renderer == NULL)
+    return FALSE;
+
+  if (gtk_cell_renderer_class)
+    {
+      while (*prop_list)
+        {
+          spec = g_object_class_find_property
+                           (G_OBJECT_CLASS (gtk_cell_renderer_class), *prop_list);
+
+          if (spec != NULL)
+            {
+              GValue value = { 0, };
+
+              g_value_init (&value, spec->value_type);
+              g_object_get_property (cur_renderer->data, *prop_list, &value);
+              g_object_set_property (G_OBJECT (renderer_cell->renderer),
+                                     *prop_list, &value);
+              g_value_unset (&value);
+            }
+          else
+            g_warning ("Invalid property: %s\n", *prop_list);
+          prop_list++;
+        }
+    }
+  g_list_free (renderers);
+
+  return _gtk_renderer_cell_accessible_update_cache (renderer_cell, emit_change_signal);
+}
+
+static gint
+get_row_from_tree_path (GtkTreeView *tree_view,
+                        GtkTreePath *path)
+{
+  GtkTreeModel *tree_model;
+  GtkTreePath *root_tree;
+  gint row;
+
+  tree_model = gtk_tree_view_get_model (tree_view);
+
+  if (gtk_tree_model_get_flags (tree_model) & GTK_TREE_MODEL_LIST_ONLY)
+    row = gtk_tree_path_get_indices (path)[0];
+  else
+    {
+      root_tree = gtk_tree_path_new_first ();
+      row = 0;
+      iterate_thru_children (tree_view, tree_model, root_tree, path, &row, 0);
+      gtk_tree_path_free (root_tree);
+    }
+
+  return row;
+}
+
+/* Misc Private */
+
+/*
+ * Get the specified GtkTreeViewColumn in the GtkTreeView.
+ * Only visible columns are considered.
+ */
+static GtkTreeViewColumn *
+get_column (GtkTreeView *tree_view,
+            gint         in_col)
+{
+  GtkTreeViewColumn *tv_col;
+  gint n_cols = -1;
+  gint i = 0;
+
+  if (in_col < 0)
+    {
+       g_warning ("Request for invalid column %d\n", in_col);
+       return NULL;
+    }
+
+  tv_col = gtk_tree_view_get_column (tree_view, i);
+  while (tv_col != NULL)
+    {
+      if (gtk_tree_view_column_get_visible (tv_col))
+        n_cols++;
+      if (in_col == n_cols)
+        break;
+      tv_col = gtk_tree_view_get_column (tree_view, ++i);
+    }
+
+  if (in_col != n_cols)
+    {
+       g_warning ("Request for invalid column %d\n", in_col);
+       return NULL;
+    }
+  return tv_col;
+}
+
+static gint
+get_actual_column_number (GtkTreeView *tree_view,
+                          gint         visible_column)
+{
+  GtkTreeViewColumn *tv_col;
+  gint actual_column = 0;
+  gint visible_columns = -1;
+
+  /* This function calculates the column number which corresponds
+   * to the specified visible column number
+   */
+  tv_col = gtk_tree_view_get_column (tree_view, actual_column);
+  while (tv_col != NULL)
+    {
+      if (gtk_tree_view_column_get_visible (tv_col))
+        visible_columns++;
+      if (visible_columns == visible_column)
+        return actual_column;
+      tv_col = gtk_tree_view_get_column (tree_view, ++actual_column);
+    }
+  g_warning ("get_actual_column_number failed for %d\n", visible_column);
+  return -1;
+}
+
+static gint
+get_visible_column_number (GtkTreeView *tree_view,
+                           gint         actual_column)
+{
+  GtkTreeViewColumn *tv_col;
+  gint column = 0;
+  gint visible_columns = -1;
+
+  /* This function calculates the visible column number
+   * which corresponds to the specified actual column number
+   */
+  tv_col = gtk_tree_view_get_column (tree_view, column);
+
+  while (tv_col != NULL)
+    {
+      if (gtk_tree_view_column_get_visible (tv_col))
+        {
+          visible_columns++;
+          if (actual_column == column)
+            return visible_columns;
+        }
+      else
+        if (actual_column == column)
+          return -1;
+      tv_col = gtk_tree_view_get_column (tree_view, ++column);
+    }
+  g_warning ("get_visible_column_number failed for %d\n", actual_column);
+  return -1;
+}
+
+/* Helper recursive function that returns an iter to nth row
+ */
+static GtkTreeIter *
+return_iter_nth_row (GtkTreeView  *tree_view,
+                     GtkTreeModel *tree_model,
+                     GtkTreeIter  *iter,
+                     gint          increment,
+                     gint          row)
+{
+  GtkTreePath *current_path;
+  GtkTreeIter new_iter;
+  gboolean row_expanded;
+
+  current_path = gtk_tree_model_get_path (tree_model, iter);
+  if (increment == row)
+    {
+      gtk_tree_path_free (current_path);
+      return iter;
+    }
+
+  row_expanded = gtk_tree_view_row_expanded (tree_view, current_path);
+  gtk_tree_path_free (current_path);
+
+  new_iter = *iter;
+  if ((row_expanded && gtk_tree_model_iter_children (tree_model, iter, &new_iter)) ||
+      (gtk_tree_model_iter_next (tree_model, iter)) ||
+      (gtk_tree_model_iter_parent (tree_model, iter, &new_iter) &&
+          (gtk_tree_model_iter_next (tree_model, iter))))
+    return return_iter_nth_row (tree_view, tree_model, iter,
+      ++increment, row);
+
+  return NULL;
+}
+
+static void
+set_iter_nth_row (GtkTreeView *tree_view,
+                  GtkTreeIter *iter,
+                  gint         row)
+{
+  GtkTreeModel *tree_model;
+
+  tree_model = gtk_tree_view_get_model (tree_view);
+  gtk_tree_model_get_iter_first (tree_model, iter);
+  iter = return_iter_nth_row (tree_view, tree_model, iter, 0, row);
+}
+
+/* Recursively called until the row specified by orig is found.
+ *
+ * *count will be set to the visible row number of the child
+ * relative to the row that was initially passed in as tree_path.
+ *
+ * *count will be -1 if orig is not found as a child (a row that is
+ * not visible will not be found, e.g. if the row is inside a
+ * collapsed row).  If NULL is passed in as orig, *count will
+ * be a count of the visible children.
+ *
+ * NOTE: the value for depth must be 0 when this recursive function
+ * is initially called, or it may not function as expected.
+ */
+static void
+iterate_thru_children (GtkTreeView  *tree_view,
+                       GtkTreeModel *tree_model,
+                       GtkTreePath  *tree_path,
+                       GtkTreePath  *orig,
+                       gint         *count,
+                       gint          depth)
+{
+  GtkTreeIter iter;
+
+  if (!gtk_tree_model_get_iter (tree_model, &iter, tree_path))
+    return;
+
+  if (tree_path && orig && !gtk_tree_path_compare (tree_path, orig))
+    /* Found it! */
+    return;
+
+  if (tree_path && orig && gtk_tree_path_compare (tree_path, orig) > 0)
+    {
+      /* Past it, so return -1 */
+      *count = -1;
+      return;
+    }
+  else if (gtk_tree_view_row_expanded (tree_view, tree_path) &&
+    gtk_tree_model_iter_has_child (tree_model, &iter))
+    {
+      (*count)++;
+      gtk_tree_path_append_index (tree_path, 0);
+      iterate_thru_children (tree_view, tree_model, tree_path,
+                             orig, count, (depth + 1));
+      return;
+    }
+  else if (gtk_tree_model_iter_next (tree_model, &iter))
+    {
+      (*count)++;
+      tree_path = gtk_tree_model_get_path (tree_model, &iter);
+       if (tree_path)
+         {
+           iterate_thru_children (tree_view, tree_model, tree_path,
+                                 orig, count, depth);
+           gtk_tree_path_free (tree_path);
+         }
+      return;
+  }
+  else if (gtk_tree_path_up (tree_path))
+    {
+      GtkTreeIter temp_iter;
+      gboolean exit_loop = FALSE;
+      gint new_depth = depth - 1;
+
+      (*count)++;
+
+     /* Make sure that we back up until we find a row
+      * where gtk_tree_path_next does not return NULL.
+      */
+      while (!exit_loop)
+        {
+          if (gtk_tree_path_get_depth (tree_path) == 0)
+              /* depth is now zero so */
+            return;
+          gtk_tree_path_next (tree_path);
+
+          /* Verify that the next row is a valid row! */
+          exit_loop = gtk_tree_model_get_iter (tree_model, &temp_iter, tree_path);
+
+          if (!exit_loop)
+            {
+              /* Keep going up until we find a row that has a valid next */
+              if (gtk_tree_path_get_depth(tree_path) > 1)
+                {
+                  new_depth--;
+                  gtk_tree_path_up (tree_path);
+                }
+              else
+                {
+                 /* If depth is 1 and gtk_tree_model_get_iter returns FALSE,
+                  * then we are at the last row, so just return.
+                  */
+                  if (orig != NULL)
+                    *count = -1;
+
+                  return;
+                }
+            }
+        }
+
+     /* This guarantees that we will stop when we hit the end of the
+      * children.
+      */
+      if (new_depth < 0)
+        return;
+
+      iterate_thru_children (tree_view, tree_model, tree_path,
+                             orig, count, new_depth);
+      return;
+    }
+
+ /* If it gets here, then the path wasn't found.  Situations
+  * that would cause this would be if the path passed in is
+  * invalid or contained within the last row, but not visible
+  * because the last row is not expanded.  If NULL was passed
+  * in then a row count is desired, so only set count to -1
+  * if orig is not NULL.
+  */
+  if (orig != NULL)
+    *count = -1;
+
+  return;
+}
+
+static void
+clean_cell_info (GtkTreeViewAccessible         *accessible,
+                 GtkTreeViewAccessibleCellInfo *cell_info)
+{
+  GObject *obj;
+
+  if (cell_info->in_use)
+    {
+      obj = G_OBJECT (cell_info->cell);
+
+      _gtk_cell_accessible_add_state (cell_info->cell, ATK_STATE_DEFUNCT, FALSE);
+      g_object_weak_unref (obj, (GWeakNotify) cell_destroyed, cell_info);
+      cell_info->in_use = FALSE;
+      if (!accessible->garbage_collection_pending)
+        {
+          accessible->garbage_collection_pending = TRUE;
+          g_assert (accessible->idle_garbage_collect_id == 0);
+          accessible->idle_garbage_collect_id =
+            gdk_threads_add_idle (idle_garbage_collect_cell_data, accessible);
+        }
+    }
+}
+
+static void
+clean_rows (GtkTreeViewAccessible *accessible)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GHashTableIter iter;
+
+  /* Clean GtkTreeViewAccessibleCellInfo data */
+  g_hash_table_iter_init (&iter, accessible->cell_info_by_index);
+  while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&cell_info))
+    {
+      GtkTreePath *row_path;
+
+      row_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+
+      /* If the cell has become invalid because the row has been removed,
+       * then set the cell's state to ATK_STATE_DEFUNCT and schedule
+       * its removal.  If row_path is NULL then the row has
+       * been removed.
+       */
+      if (row_path == NULL)
+        clean_cell_info (accessible, cell_info);
+      else
+        gtk_tree_path_free (row_path);
+    }
+}
+
+static void
+clean_cols (GtkTreeViewAccessible *accessible,
+            GtkTreeViewColumn     *tv_col)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GHashTableIter iter;
+
+  /* Clean GtkTreeViewAccessibleCellInfo data */
+  g_hash_table_iter_init (&iter, accessible->cell_info_by_index);
+  while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &cell_info))
+    {
+      /* If the cell has become invalid because the column tv_col
+       * has been removed, then set the cell's state to ATK_STATE_DEFUNCT
+       * and remove the cell from accessible->cell_data.
+       */
+      if (cell_info->cell_col_ref == tv_col)
+        clean_cell_info (accessible, cell_info);
+    }
+}
+
+static gboolean
+garbage_collect_cell_data (gpointer data)
+{
+  GtkTreeViewAccessible *accessible;
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GHashTableIter iter;
+
+  accessible = (GtkTreeViewAccessible *)data;
+
+  accessible->garbage_collection_pending = FALSE;
+  if (accessible->idle_garbage_collect_id != 0)
+    {
+      g_source_remove (accessible->idle_garbage_collect_id);
+      accessible->idle_garbage_collect_id = 0;
+    }
+
+  /* Must loop through them all */
+  g_hash_table_iter_init (&iter, accessible->cell_info_by_index);
+  while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&cell_info))
+    {
+      if (!cell_info->in_use)
+        {
+           /* g_object_unref (cell_info->cell); */
+           if (cell_info->cell_row_ref)
+             gtk_tree_row_reference_free (cell_info->cell_row_ref);
+           g_free (cell_info);
+           g_hash_table_iter_remove (&iter);
+        }
+    }
+
+  return accessible->garbage_collection_pending;
+}
+
+static gboolean
+idle_garbage_collect_cell_data (gpointer data)
+{
+  GtkTreeViewAccessible *accessible;
+
+  accessible = (GtkTreeViewAccessible *)data;
+
+  /* this is the idle handler (only one instance allowed), so
+   * we can safely delete it.
+   */
+  accessible->garbage_collection_pending = FALSE;
+  accessible->idle_garbage_collect_id = 0;
+
+  accessible->garbage_collection_pending = garbage_collect_cell_data (data);
+
+  /* N.B.: if for some reason another handler has re-enterantly been
+   * queued while this handler was being serviced, it has its own gsource,
+   * therefore this handler should always return FALSE.
+   */
+  return FALSE;
+}
+
+/* If tree_path is passed in as NULL, then all cells are acted on.
+ * Otherwise, just act on those cells that are on a row greater than
+ * the specified tree_path. If inc_row is passed in as TRUE, then rows
+ * greater and equal to the specified tree_path are acted on.
+ *
+ * If set_stale is set the ATK_STATE_STALE is set on cells which
+ * are to be acted on.
+ *
+ * The function set_cell_visibility() is called on all cells to be
+ * acted on to update the visibility of the cell.
+ */
+static void
+traverse_cells (GtkTreeViewAccessible *accessible,
+                GtkTreePath           *tree_path,
+                gboolean               set_stale,
+                gboolean               inc_row)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GtkWidget *widget;
+  GHashTableIter iter;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (!widget)
+    return;
+
+  /* Must loop through them all */
+  g_hash_table_iter_init (&iter, accessible->cell_info_by_index);
+  while (g_hash_table_iter_next (&iter, NULL, (gpointer *)&cell_info))
+    {
+      GtkTreePath *row_path;
+      gboolean act_on_cell;
+
+      if (cell_info->in_use)
+        {
+          row_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+          g_return_if_fail (row_path != NULL);
+          if (tree_path == NULL)
+            act_on_cell = TRUE;
+          else
+            {
+              gint comparison;
+
+              comparison =  gtk_tree_path_compare (row_path, tree_path);
+              if ((comparison > 0) ||
+                  (comparison == 0 && inc_row))
+                act_on_cell = TRUE;
+              else
+                act_on_cell = FALSE;
+            }
+
+          if (!cell_info->in_use)
+            g_warning ("warning: cell info destroyed during traversal");
+
+          if (act_on_cell && cell_info->in_use)
+            {
+              if (set_stale)
+                _gtk_cell_accessible_add_state (cell_info->cell, ATK_STATE_STALE, TRUE);
+              set_cell_visibility (GTK_TREE_VIEW (widget),
+                                   cell_info->cell,
+                                   cell_info->cell_col_ref,
+                                   row_path, TRUE);
+            }
+          gtk_tree_path_free (row_path);
+        }
+    }
+
+  g_signal_emit_by_name (accessible, "visible-data-changed");
+}
+
+/* If the tree_path passed in has children, then
+ * ATK_STATE_EXPANDABLE is set.  If the row is expanded
+ * ATK_STATE_EXPANDED is turned on.  If the row is
+ * collapsed, then ATK_STATE_EXPANDED is removed.
+ *
+ * If the tree_path passed in has no children, then
+ * ATK_STATE_EXPANDABLE and ATK_STATE_EXPANDED are removed.
+ *
+ * If set_on_ancestor is TRUE, then this function will also
+ * update all cells that are ancestors of the tree_path.
+ */
+static void
+set_expand_state (GtkTreeView           *tree_view,
+                  GtkTreeModel          *tree_model,
+                  GtkTreeViewAccessible *accessible,
+                  GtkTreePath           *tree_path,
+                  gboolean               set_on_ancestor)
+{
+  GtkTreeViewColumn *expander_tv;
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GtkTreePath *cell_path;
+  GtkTreeIter iter;
+  gboolean found;
+  GHashTableIter hash_iter;
+
+  g_hash_table_iter_init (&hash_iter, accessible->cell_info_by_index);
+  while (g_hash_table_iter_next (&hash_iter, NULL, (gpointer *) &cell_info))
+    {
+      if (cell_info->in_use)
+        {
+          cell_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+          found = FALSE;
+
+          if (cell_path != NULL)
+            {
+              GtkCellAccessible *cell = GTK_CELL_ACCESSIBLE (cell_info->cell);
+
+              expander_tv = gtk_tree_view_get_expander_column (tree_view);
+
+              /* Only set state for the cell that is in the column with the
+               * expander toggle
+               */
+              if (expander_tv == cell_info->cell_col_ref)
+                {
+                  if (tree_path && gtk_tree_path_compare (cell_path, tree_path) == 0)
+                    found = TRUE;
+                  else if (set_on_ancestor &&
+                           gtk_tree_path_get_depth (cell_path) <
+                           gtk_tree_path_get_depth (tree_path) &&
+                           gtk_tree_path_is_ancestor (cell_path, tree_path) == 1)
+                    /* Only set if set_on_ancestor was passed in as TRUE */
+                    found = TRUE;
+                }
+
+              /* Set ATK_STATE_EXPANDABLE and ATK_STATE_EXPANDED
+               * for ancestors and found cells.
+               */
+              if (found)
+                {
+                  /* Must check against cell_path since cell_path
+                   * can be equal to or an ancestor of tree_path.
+                   */
+                  gtk_tree_model_get_iter (tree_model, &iter, cell_path);
+
+                  /* Set or unset ATK_STATE_EXPANDABLE as appropriate */
+                  if (gtk_tree_model_iter_has_child (tree_model, &iter))
+                    {
+                      set_cell_expandable (cell);
+
+                      if (gtk_tree_view_row_expanded (tree_view, cell_path))
+                        _gtk_cell_accessible_add_state (cell, ATK_STATE_EXPANDED, TRUE);
+                      else
+                        _gtk_cell_accessible_remove_state (cell, ATK_STATE_EXPANDED, TRUE);
+                    }
+                  else
+                    {
+                      _gtk_cell_accessible_remove_state (cell, ATK_STATE_EXPANDED, TRUE);
+                      if (_gtk_cell_accessible_remove_state (cell, ATK_STATE_EXPANDABLE, TRUE))
+                      /* The state may have been propagated to the container cell */
+                      if (!GTK_IS_CONTAINER_CELL_ACCESSIBLE (cell))
+                        _gtk_cell_accessible_remove_action_by_name (cell,
+                                                                    "expand or contract");
+                    }
+
+                  /* We assume that each cell in the cache once and
+                   * a container cell is before its child cells so we are
+                   * finished if set_on_ancestor is not set to TRUE.
+                   */
+                  if (!set_on_ancestor)
+                    break;
+                }
+            }
+          gtk_tree_path_free (cell_path);
+        }
+    }
+}
+
+static void
+add_cell_actions (GtkCellAccessible *cell,
+                  gboolean           editable)
+{
+  if (GTK_IS_BOOLEAN_CELL_ACCESSIBLE (cell))
+    _gtk_cell_accessible_add_action (cell,
+                                     "toggle", "toggles the cell",
+                                     NULL, toggle_cell_toggled);
+  if (editable)
+    _gtk_cell_accessible_add_action (cell,
+                                     "edit", "creates a widget in which the contents of the cell can be edited",
+                                     NULL, edit_cell);
+  _gtk_cell_accessible_add_action (cell,
+                                   "activate", "activate the cell",
+                                   NULL, activate_cell);
+}
+
+static void
+toggle_cell_expanded (GtkCellAccessible *cell)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GtkTreeView *tree_view;
+  GtkTreePath *path;
+  AtkObject *parent;
+  AtkStateSet *stateset;
+
+  parent = atk_object_get_parent (ATK_OBJECT (cell));
+  if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
+    parent = atk_object_get_parent (parent);
+
+  cell_info = find_cell_info (GTK_TREE_VIEW_ACCESSIBLE (parent), cell, TRUE);
+  if (!cell_info || !cell_info->cell_col_ref || !cell_info->cell_row_ref)
+    return;
+
+  tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (parent)));
+  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+  if (!path)
+    return;
+
+  stateset = atk_object_ref_state_set (ATK_OBJECT (cell));
+  if (atk_state_set_contains_state (stateset, ATK_STATE_EXPANDED))
+    gtk_tree_view_collapse_row (tree_view, path);
+  else
+    gtk_tree_view_expand_row (tree_view, path, TRUE);
+  g_object_unref (stateset);
+  gtk_tree_path_free (path);
+}
+
+static void
+toggle_cell_toggled (GtkCellAccessible *cell)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GtkTreePath *path;
+  gchar *pathstring;
+  GList *renderers, *cur_renderer;
+  AtkObject *parent;
+  gboolean is_container_cell = FALSE;
+
+  parent = atk_object_get_parent (ATK_OBJECT (cell));
+  if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
+    {
+      is_container_cell = TRUE;
+      parent = atk_object_get_parent (parent);
+    }
+
+  cell_info = find_cell_info (GTK_TREE_VIEW_ACCESSIBLE (parent), cell, TRUE);
+  if (!cell_info || !cell_info->cell_col_ref || !cell_info->cell_row_ref)
+    return;
+
+  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+  if (!path)
+    return;
+
+  /* If the cell is in a container, its index is used to find the
+   * renderer in the list. Otherwise, we assume that the cell is
+   * represented by the first renderer in the list
+   */
+  renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (cell_info->cell_col_ref));
+  if (is_container_cell)
+    cur_renderer = g_list_nth (renderers, cell->index);
+  else
+    cur_renderer = renderers;
+
+  if (cur_renderer)
+    {
+      pathstring = gtk_tree_path_to_string (path);
+      g_signal_emit_by_name (cur_renderer->data, "toggled", pathstring);
+      g_free (pathstring);
+    }
+
+  g_list_free (renderers);
+  gtk_tree_path_free (path);
+}
+
+static void
+edit_cell (GtkCellAccessible *cell)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GtkTreeView *tree_view;
+  GtkTreePath *path;
+  AtkObject *parent;
+
+  parent = atk_object_get_parent (ATK_OBJECT (cell));
+  if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
+    parent = atk_object_get_parent (parent);
+
+  cell_info = find_cell_info (GTK_TREE_VIEW_ACCESSIBLE (parent), cell, TRUE);
+  if (!cell_info || !cell_info->cell_col_ref || !cell_info->cell_row_ref)
+    return;
+
+  tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (parent)));
+  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+  if (!path)
+    return;
+  gtk_tree_view_set_cursor (tree_view, path, cell_info->cell_col_ref, TRUE);
+  gtk_tree_path_free (path);
+}
+
+static void
+activate_cell (GtkCellAccessible *cell)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GtkTreeView *tree_view;
+  GtkTreePath *path;
+  AtkObject *parent;
+
+  parent = atk_object_get_parent (ATK_OBJECT (cell));
+  if (GTK_IS_CONTAINER_CELL_ACCESSIBLE (parent))
+    parent = atk_object_get_parent (parent);
+
+  cell_info = find_cell_info (GTK_TREE_VIEW_ACCESSIBLE (parent), cell, TRUE);
+  if (!cell_info || !cell_info->cell_col_ref || !cell_info->cell_row_ref)
+    return;
+
+  tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (parent)));
+  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
+  if (!path)
+    return;
+  gtk_tree_view_row_activated (tree_view, path, cell_info->cell_col_ref);
+  gtk_tree_path_free (path);
+}
+
+static void
+cell_destroyed (gpointer data)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info = data;
+
+  if (!cell_info)
+    return;
+  if (cell_info->in_use)
+    {
+      cell_info->in_use = FALSE;
+
+      if (!cell_info->view->garbage_collection_pending)
+        {
+          cell_info->view->garbage_collection_pending = TRUE;
+          cell_info->view->idle_garbage_collect_id =
+            gdk_threads_add_idle (idle_garbage_collect_cell_data, cell_info->view);
+        }
+    }
+}
+
+static void
+cell_info_get_index (GtkTreeView                     *tree_view,
+                     GtkTreeViewAccessibleCellInfo   *info,
+                     gint                            *index)
+{
+  GtkTreePath *path;
+  gint column_number;
+
+  path = gtk_tree_row_reference_get_path (info->cell_row_ref);
+  if (!path)
+    return;
+
+  column_number = get_column_number (tree_view, info->cell_col_ref, FALSE);
+  *index = get_index (tree_view, path, column_number);
+  gtk_tree_path_free (path);
+}
+
+static void
+cell_info_new (GtkTreeViewAccessible *accessible,
+               GtkTreeModel          *tree_model,
+               GtkTreePath           *path,
+               GtkTreeViewColumn     *tv_col,
+               GtkCellAccessible     *cell)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info;
+
+  cell_info = g_new (GtkTreeViewAccessibleCellInfo, 1);
+  cell_info->cell_row_ref = gtk_tree_row_reference_new (tree_model, path);
+
+  cell_info->cell_col_ref = tv_col;
+  cell_info->cell = cell;
+  cell_info->in_use = TRUE; /* if we've created it, assume it's in use */
+  cell_info->view = accessible;
+  g_hash_table_insert (accessible->cell_info_by_index, &cell->index, cell_info);
+
+  /* Setup weak reference notification */
+  g_object_weak_ref (G_OBJECT (cell), (GWeakNotify) cell_destroyed, cell_info);
+}
+
+static GtkCellAccessible *
+find_cell (GtkTreeViewAccessible *accessible,
+           gint                   index)
+{
+  GtkTreeViewAccessibleCellInfo *info;
+
+  info = g_hash_table_lookup (accessible->cell_info_by_index, &index);
+  if (!info)
+    return NULL;
+
+  return info->cell;
+}
+
+static void
+refresh_cell_index (GtkCellAccessible *cell)
+{
+  GtkTreeViewAccessibleCellInfo *info;
+  AtkObject *parent;
+  GtkTreeView *tree_view;
+  GtkTreeViewAccessible *accessible;
+  gint index;
+
+  parent = atk_object_get_parent (ATK_OBJECT (cell));
+  if (!GTK_IS_TREE_VIEW_ACCESSIBLE (parent))
+    return;
+
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (parent);
+
+  tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (parent)));
+
+  /* Find this cell in the GtkTreeViewAccessible's cache */
+  info = find_cell_info (accessible, cell, TRUE);
+  if (!info)
+    return;
+
+  cell_info_get_index (tree_view, info, &index);
+  cell->index = index;
+  g_hash_table_insert (accessible->cell_info_by_index, &index, info);
+}
+
+static void
+connect_model_signals (GtkTreeView           *view,
+                       GtkTreeViewAccessible *accessible)
+{
+  GObject *obj;
+
+  obj = G_OBJECT (accessible->tree_model);
+  g_signal_connect_data (obj, "row-changed",
+                         G_CALLBACK (model_row_changed), view, NULL, 0);
+  g_signal_connect_data (obj, "row-inserted",
+                         G_CALLBACK (model_row_inserted), view, NULL,
+                         G_CONNECT_AFTER);
+  g_signal_connect_data (obj, "row-deleted",
+                         G_CALLBACK (model_row_deleted), view, NULL,
+                         G_CONNECT_AFTER);
+  g_signal_connect_data (obj, "rows-reordered",
+                         G_CALLBACK (model_rows_reordered), view, NULL,
+                         G_CONNECT_AFTER);
+}
+
+static void
+disconnect_model_signals (GtkTreeViewAccessible *accessible)
+{
+  GObject *obj;
+  GtkWidget *widget;
+
+  obj = G_OBJECT (accessible->tree_model);
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  g_signal_handlers_disconnect_by_func (obj, model_row_changed, widget);
+  g_signal_handlers_disconnect_by_func (obj, model_row_inserted, widget);
+  g_signal_handlers_disconnect_by_func (obj, model_row_deleted, widget);
+  g_signal_handlers_disconnect_by_func (obj, model_rows_reordered, widget);
+}
+
+static void
+clear_cached_data (GtkTreeViewAccessible *accessible)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GHashTableIter iter;
+
+  /* Must loop through them all */
+  g_hash_table_iter_init (&iter, accessible->cell_info_by_index);
+  while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &cell_info))
+    clean_cell_info (accessible, cell_info);
+
+  /* FIXME: seems pretty inefficient to loop again here */
+  garbage_collect_cell_data (accessible);
+}
+
+/* Returns the column number of the specified GtkTreeViewColumn
+ *
+ * If visible is set, the value returned will be the visible column number,
+ * i.e. suitable for use in AtkTable function. If visible is not set, the
+ * value returned is the actual column number, which is suitable for use in
+ * getting an index value.
+ */
+static gint
+get_column_number (GtkTreeView       *tree_view,
+                   GtkTreeViewColumn *column,
+                   gboolean           visible)
+{
+  GtkTreeViewColumn *tv_column;
+  gint ret_val;
+  gint i;
+  AtkObject *atk_obj;
+  GtkTreeViewAccessible *accessible;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (atk_obj);
+
+  ret_val = 0;
+  for (i = 0; i < accessible->col_data->len; i++)
+    {
+      tv_column = g_array_index (accessible->col_data, GtkTreeViewColumn *, i);
+      if (tv_column == column)
+        break;
+      if (!visible || gtk_tree_view_column_get_visible (tv_column))
+        ret_val++;
+    }
+  if (i == accessible->col_data->len)
+    ret_val = -1;
+
+  return ret_val;
+}
+
+static gint
+get_index (GtkTreeView *tree_view,
+           GtkTreePath *path,
+           gint         actual_column)
+{
+  AtkObject *atk_obj;
+  GtkTreeViewAccessible *accessible;
+  gint depth = 0;
+  gint index = 1;
+  gint *indices = NULL;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (atk_obj);
+
+  if (path)
+    {
+      depth = gtk_tree_path_get_depth (path);
+      indices = gtk_tree_path_get_indices (path);
+    }
+
+  if (depth > 1)
+    {
+      GtkTreePath *copy_path;
+      GtkTreeModel *model;
+
+      model = gtk_tree_view_get_model (tree_view);
+      copy_path = gtk_tree_path_copy (path);
+      gtk_tree_path_up (copy_path);
+      count_rows (model, NULL, copy_path, &index, 0, depth);
+      gtk_tree_path_free (copy_path);
+    }
+
+  if (path)
+    index += indices[depth - 1];
+  index *= accessible->n_cols;
+  index +=  actual_column;
+  return index;
+}
+
+/* The function count_rows counts the number of rows starting at iter
+ * and ending at end_path. The value of level is the depth of iter and
+ * the value of depth is the depth of end_path. Rows at depth before
+ * end_path are counted. This functions counts rows which are not visible
+ * because an ancestor is collapsed.
+ */
+static void
+count_rows (GtkTreeModel *model,
+            GtkTreeIter  *iter,
+            GtkTreePath  *end_path,
+            gint         *count,
+            gint          level,
+            gint          depth)
+{
+  GtkTreeIter child_iter;
+
+  if (!model)
+    return;
+
+  level++;
+  *count += gtk_tree_model_iter_n_children (model, iter);
+
+  if (gtk_tree_model_get_flags (model) & GTK_TREE_MODEL_LIST_ONLY)
+    return;
+
+  if (level >= depth)
+    return;
+
+  if (gtk_tree_model_iter_children (model, &child_iter, iter))
+    {
+      gboolean ret_val = TRUE;
+
+      while (ret_val)
+        {
+          if (level == depth - 1)
+            {
+              GtkTreePath *iter_path;
+              gboolean finished = FALSE;
+
+              iter_path = gtk_tree_model_get_path (model, &child_iter);
+              if (end_path && gtk_tree_path_compare (iter_path, end_path) >= 0)
+                finished = TRUE;
+              gtk_tree_path_free (iter_path);
+              if (finished)
+                break;
+            }
+          if (gtk_tree_model_iter_has_child (model, &child_iter))
+            count_rows (model, &child_iter, end_path, count, level, depth);
+          ret_val = gtk_tree_model_iter_next (model, &child_iter);
+        }
+    }
+}
+
+/* Find the next node, which has children, at the specified depth below
+ * the specified iter. The level is the depth of the current iter.
+ * The position of the node is returned in path and the return value
+ * of TRUE means that a node was found.
+ */
+
+static gboolean
+get_next_node_with_child_at_depth (GtkTreeModel  *model,
+                                   GtkTreeIter   *iter,
+                                   GtkTreePath  **path,
+                                   gint           level,
+                                   gint           depth)
+{
+  GtkTreeIter child_iter;
+
+  *path = NULL;
+
+  if (gtk_tree_model_iter_children (model, &child_iter, iter))
+    {
+      level++;
+
+      while (TRUE)
+        {
+          while (!gtk_tree_model_iter_has_child (model, &child_iter))
+            {
+              if (!gtk_tree_model_iter_next (model, &child_iter))
+                return FALSE;
+            }
+
+          if (level == depth)
+            {
+              /* We have found what we were looking for */
+              *path = gtk_tree_model_get_path (model, &child_iter);
+              return TRUE;
+            }
+
+          if (get_next_node_with_child_at_depth (model, &child_iter, path,
+                                                 level, depth))
+            return TRUE;
+
+          if (!gtk_tree_model_iter_next (model, &child_iter))
+            return FALSE;
+        }
+    }
+  return FALSE;
+}
+
+/* Find the next node, which has children, at the same depth
+ * as the specified GtkTreePath.
+ */
+static gboolean
+get_next_node_with_child (GtkTreeModel  *model,
+                          GtkTreePath   *path,
+                          GtkTreePath  **return_path)
+{
+  GtkTreeIter iter;
+  gint depth;
+
+  gtk_tree_model_get_iter (model, &iter, path);
+
+  while (gtk_tree_model_iter_next (model, &iter))
+    {
+      if (gtk_tree_model_iter_has_child (model, &iter))
+        {
+          *return_path = gtk_tree_model_get_path (model, &iter);
+          return TRUE;
+        }
+    }
+  depth = gtk_tree_path_get_depth (path);
+  while (gtk_tree_path_up (path))
+    {
+      if (gtk_tree_path_get_depth (path) == 0)
+        break;
+
+      gtk_tree_model_get_iter (model, &iter, path);
+      while (gtk_tree_model_iter_next (model, &iter))
+        if (get_next_node_with_child_at_depth (model, &iter, return_path,
+                                         gtk_tree_path_get_depth (path), depth))
+          return TRUE;
+    }
+  *return_path = NULL;
+  return FALSE;
+}
+
+static gboolean
+get_tree_path_from_row_index (GtkTreeModel  *model,
+                              gint           row_index,
+                              GtkTreePath  **tree_path)
+{
+  GtkTreeIter iter;
+  gint count;
+  gint depth;
+
+  count = gtk_tree_model_iter_n_children (model, NULL);
+  if (count > row_index)
+    {
+      if (gtk_tree_model_iter_nth_child (model, &iter, NULL, row_index))
+        {
+          *tree_path = gtk_tree_model_get_path (model, &iter);
+          return TRUE;
+        }
+      else
+        return FALSE;
+    }
+  else
+     row_index -= count;
+
+  depth = 0;
+  while (TRUE)
+    {
+      depth++;
+
+      if (get_next_node_with_child_at_depth (model, NULL, tree_path, 0, depth))
+        {
+          GtkTreePath *next_path;
+
+          while (TRUE)
+            {
+              gtk_tree_model_get_iter (model, &iter, *tree_path);
+              count = gtk_tree_model_iter_n_children (model, &iter);
+              if (count > row_index)
+                {
+                  gtk_tree_path_append_index (*tree_path, row_index);
+                  return TRUE;
+                }
+              else
+                row_index -= count;
+
+              if (!get_next_node_with_child (model, *tree_path, &next_path))
+                break;
+
+              gtk_tree_path_free (*tree_path);
+              *tree_path = next_path;
+            }
+        }
+      else
+        {
+          g_warning ("Index value is too large\n");
+          gtk_tree_path_free (*tree_path);
+           *tree_path = NULL;
+          return FALSE;
+        }
+    }
+}
+
+static gboolean
+get_path_column_from_index (GtkTreeView        *tree_view,
+                            gint                index,
+                            GtkTreePath       **path,
+                            GtkTreeViewColumn **column)
+{
+  GtkTreeModel *tree_model;
+  AtkObject *atk_obj;
+  GtkTreeViewAccessible *accessible;
+
+  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
+  accessible = GTK_TREE_VIEW_ACCESSIBLE (atk_obj);
+
+  tree_model = gtk_tree_view_get_model (tree_view);
+  if (accessible->n_cols == 0)
+    return FALSE;
+  /* First row is the column headers */
+  index -= accessible->n_cols;
+  if (index < 0)
+    return FALSE;
+
+  if (path)
+    {
+      gint row_index;
+      gboolean retval;
+
+      row_index = index / accessible->n_cols;
+      retval = get_tree_path_from_row_index (tree_model, row_index, path);
+      if (!retval)
+        return FALSE;
+      if (*path == NULL)
+        return FALSE;
+    }
+
+  if (column)
+    {
+      *column = gtk_tree_view_get_column (tree_view, index % accessible->n_cols);
+      if (*column == NULL)
+        {
+          if (path)
+            gtk_tree_path_free (*path);
+          return FALSE;
+        }
+  }
+  return TRUE;
+}
+
+static void
+set_cell_expandable (GtkCellAccessible *cell)
+{
+  if (_gtk_cell_accessible_add_state (cell, ATK_STATE_EXPANDABLE, FALSE))
+    _gtk_cell_accessible_add_action (cell,
+                                     "expand or contract",
+                                     "expands or contracts the row in the tree view containing this cell",
+                                     NULL, toggle_cell_expanded);
+}
+
+static GtkTreeViewAccessibleCellInfo *
+find_cell_info (GtkTreeViewAccessible *accessible,
+                GtkCellAccessible     *cell,
+                gboolean               live_only)
+{
+  GtkTreeViewAccessibleCellInfo *cell_info;
+  GHashTableIter iter;
+
+  /* Clean GtkTreeViewAccessibleCellInfo data */
+  g_hash_table_iter_init (&iter, accessible->cell_info_by_index);
+  while (g_hash_table_iter_next (&iter, NULL, (gpointer *) &cell_info))
+    {
+      if (cell_info->cell == cell && (!live_only || cell_info->in_use))
+        return cell_info;
+    }
+  return NULL;
+}
+
+static AtkObject *
+get_header_from_column (GtkTreeViewColumn *tv_col)
+{
+  AtkObject *rc;
+  GtkWidget *header_widget;
+
+  if (tv_col == NULL)
+    return NULL;
+
+  header_widget = gtk_tree_view_column_get_button (tv_col);
+
+  if (header_widget)
+    rc = gtk_widget_get_accessible (header_widget);
+  else
+    rc = NULL;
+
+  return rc;
+}
diff --git a/gtk/a11y/gtktreeviewaccessible.h b/gtk/a11y/gtktreeviewaccessible.h
new file mode 100644 (file)
index 0000000..5de2619
--- /dev/null
@@ -0,0 +1,67 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_TREE_VIEW_ACCESSIBLE_H__
+#define __GTK_TREE_VIEW_ACCESSIBLE_H__
+
+#include <gtk/gtk.h>
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_TREE_VIEW_ACCESSIBLE                  (_gtk_tree_view_accessible_get_type ())
+#define GTK_TREE_VIEW_ACCESSIBLE(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_TREE_VIEW_ACCESSIBLE, GtkTreeViewAccessible))
+#define GTK_TREE_VIEW_ACCESSIBLE_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_TREE_VIEW_ACCESSIBLE, GtkTreeViewAccessibleClass))
+#define GTK_IS_TREE_VIEW_ACCESSIBLE(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_TREE_VIEW_ACCESSIBLE))
+#define GTK_IS_TREE_VIEW_ACCESSIBLE_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_TREE_VIEW_ACCESSIBLE))
+#define GTK_TREE_VIEW_ACCESSIBLE_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_TREE_VIEW_ACCESSIBLE, GtkTreeViewAccessibleClass))
+
+typedef struct _GtkTreeViewAccessible      GtkTreeViewAccessible;
+typedef struct _GtkTreeViewAccessibleClass GtkTreeViewAccessibleClass;
+
+struct _GtkTreeViewAccessible
+{
+  GtkContainerAccessible parent;
+
+  gint           n_children_deleted;
+  gint           n_rows;
+  gint           n_cols;
+  GArray*        col_data;
+  GHashTable    *cell_info_by_index;
+  GtkTreeModel  *tree_model;
+  AtkObject     *focus_cell;
+  GtkAdjustment *old_hadj;
+  GtkAdjustment *old_vadj;
+  guint          idle_expand_id;
+  guint          idle_garbage_collect_id;
+  guint          idle_cursor_changed_id;
+  GtkTreePath   *idle_expand_path;
+  gboolean       garbage_collection_pending;
+};
+
+struct _GtkTreeViewAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_tree_view_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_TREE_VIEW_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkwidgetaccessible.c b/gtk/a11y/gtkwidgetaccessible.c
new file mode 100644 (file)
index 0000000..5a1fa4f
--- /dev/null
@@ -0,0 +1,843 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtk.h>
+#ifdef GDK_WINDOWING_X11
+#include <gdk/x11/gdkx.h>
+#endif
+#include "gtkwidgetaccessible.h"
+#include "gtknotebookpageaccessible.h"
+
+extern GtkWidget *_focus_widget;
+
+
+static gboolean gtk_widget_accessible_on_screen           (GtkWidget *widget);
+static gboolean gtk_widget_accessible_all_parents_visible (GtkWidget *widget);
+
+static void atk_component_interface_init (AtkComponentIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkWidgetAccessible, _gtk_widget_accessible, GTK_TYPE_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init))
+
+/* Translate GtkWidget::focus-in/out-event to AtkObject::focus-event */
+static gboolean
+focus_cb (GtkWidget     *widget,
+          GdkEventFocus *event)
+{
+  AtkObject *obj;
+
+  obj = gtk_widget_get_accessible (widget);
+
+  g_signal_emit_by_name (obj, "focus-event", event->in);
+
+  return FALSE;
+}
+
+/* Translate GtkWidget property change notification to the notify_gtk vfunc */
+static void
+notify_cb (GObject    *obj,
+           GParamSpec *pspec)
+{
+  GtkWidgetAccessible *widget;
+  GtkWidgetAccessibleClass *klass;
+
+  widget = GTK_WIDGET_ACCESSIBLE (gtk_widget_get_accessible (GTK_WIDGET (obj)));
+  klass = GTK_WIDGET_ACCESSIBLE_GET_CLASS (widget);
+  if (klass->notify_gtk)
+    klass->notify_gtk (obj, pspec);
+}
+
+/* Translate GtkWidget::size-allocate to AtkComponent::bounds-changed */
+static void
+size_allocate_cb (GtkWidget     *widget,
+                  GtkAllocation *allocation)
+{
+  AtkObject* accessible;
+  AtkRectangle rect;
+
+  accessible = gtk_widget_get_accessible (widget);
+  if (ATK_IS_COMPONENT (accessible))
+    {
+      rect.x = allocation->x;
+      rect.y = allocation->y;
+      rect.width = allocation->width;
+      rect.height = allocation->height;
+      g_signal_emit_by_name (accessible, "bounds-changed", &rect);
+    }
+}
+
+/* Translate GtkWidget mapped state into AtkObject showing */
+static gint
+map_cb (GtkWidget *widget)
+{
+  AtkObject *accessible;
+
+  accessible = gtk_widget_get_accessible (widget);
+  atk_object_notify_state_change (accessible, ATK_STATE_SHOWING,
+                                  gtk_widget_get_mapped (widget));
+  return 1;
+}
+
+static void
+gtk_widget_accessible_focus_event (AtkObject *obj,
+                                   gboolean   focus_in)
+{
+  AtkObject *focus_obj;
+
+  focus_obj = g_object_get_data (G_OBJECT (obj), "gail-focus-object");
+  if (focus_obj == NULL)
+    focus_obj = obj;
+  atk_object_notify_state_change (focus_obj, ATK_STATE_FOCUSED, focus_in);
+}
+
+static void
+gtk_widget_accessible_initialize (AtkObject *obj,
+                                  gpointer   data)
+{
+  GtkAccessible *accessible;
+  GtkWidget *widget;
+
+  widget = GTK_WIDGET (data);
+
+  accessible = GTK_ACCESSIBLE (obj);
+  gtk_accessible_set_widget (accessible, widget);
+  gtk_accessible_connect_widget_destroyed (accessible);
+  g_signal_connect_after (widget, "focus-in-event", G_CALLBACK (focus_cb), NULL);
+  g_signal_connect_after (widget, "focus-out-event", G_CALLBACK (focus_cb), NULL);
+  g_signal_connect (widget, "notify", G_CALLBACK (notify_cb), NULL);
+  g_signal_connect (widget, "size-allocate", G_CALLBACK (size_allocate_cb), NULL);
+  g_signal_connect (widget, "map", G_CALLBACK (map_cb), NULL);
+  g_signal_connect (widget, "unmap", G_CALLBACK (map_cb), NULL);
+
+  GTK_WIDGET_ACCESSIBLE (obj)->layer = ATK_LAYER_WIDGET;
+  obj->role = ATK_ROLE_UNKNOWN;
+}
+
+static void
+gtk_widget_accessible_destroyed (GtkWidget     *widget,
+                                 GtkAccessible *accessible)
+{
+  gtk_accessible_set_widget (accessible, NULL);
+  atk_object_notify_state_change (ATK_OBJECT (accessible), ATK_STATE_DEFUNCT, TRUE);
+}
+
+static void
+gtk_widget_accessible_connect_widget_destroyed (GtkAccessible *accessible)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget)
+    g_signal_connect_after (widget, "destroy",
+                            G_CALLBACK (gtk_widget_accessible_destroyed), accessible);
+}
+
+static const gchar *
+gtk_widget_accessible_get_description (AtkObject *accessible)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return NULL;
+
+  if (accessible->description)
+    return accessible->description;
+
+  return gtk_widget_get_tooltip_text (widget);
+}
+
+static AtkObject *
+gtk_widget_accessible_get_parent (AtkObject *accessible)
+{
+  AtkObject *parent;
+  GtkWidget *widget, *parent_widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return NULL;
+
+  parent = accessible->accessible_parent;
+  if (parent != NULL)
+    return parent;
+
+  parent_widget = gtk_widget_get_parent (widget);
+  if (parent_widget == NULL)
+    return NULL;
+
+  /* For a widget whose parent is a GtkNoteBook, we return the
+   * accessible object corresponding the GtkNotebookPage containing
+   * the widget as the accessible parent.
+   */
+  if (GTK_IS_NOTEBOOK (parent_widget))
+    {
+      gint page_num;
+      GtkWidget *child;
+      GtkNotebook *notebook;
+
+      page_num = 0;
+      notebook = GTK_NOTEBOOK (parent_widget);
+      while (TRUE)
+        {
+          child = gtk_notebook_get_nth_page (notebook, page_num);
+          if (!child)
+            break;
+          if (child == widget)
+            {
+              parent = gtk_widget_get_accessible (parent_widget);
+              parent = atk_object_ref_accessible_child (parent, page_num);
+              g_object_unref (parent);
+              return parent;
+            }
+          page_num++;
+        }
+    }
+  parent = gtk_widget_get_accessible (parent_widget);
+  return parent;
+}
+
+static GtkWidget *
+find_label (GtkWidget *widget)
+{
+  GList *labels;
+  GtkWidget *label;
+  GtkWidget *temp_widget;
+
+  labels = gtk_widget_list_mnemonic_labels (widget);
+  label = NULL;
+  if (labels)
+    {
+      if (labels->data)
+        {
+          if (labels->next)
+            g_warning ("Widget (%s) has more than one label", G_OBJECT_TYPE_NAME (widget));
+          else
+            label = labels->data;
+        }
+      g_list_free (labels);
+    }
+
+  /* Ignore a label within a button; bug #136602 */
+  if (label && GTK_IS_BUTTON (widget))
+    {
+      temp_widget = label;
+      while (temp_widget)
+        {
+          if (temp_widget == widget)
+            {
+              label = NULL;
+              break;
+            }
+          temp_widget = gtk_widget_get_parent (temp_widget);
+        }
+    }
+  return label;
+}
+
+static AtkRelationSet *
+gtk_widget_accessible_ref_relation_set (AtkObject *obj)
+{
+  GtkWidget *widget;
+  AtkRelationSet *relation_set;
+  GtkWidget *label;
+  AtkObject *array[1];
+  AtkRelation* relation;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  relation_set = ATK_OBJECT_CLASS (_gtk_widget_accessible_parent_class)->ref_relation_set (obj);
+
+  if (GTK_IS_BOX (widget))
+    return relation_set;
+
+  if (!atk_relation_set_contains (relation_set, ATK_RELATION_LABELLED_BY))
+    {
+      label = find_label (widget);
+      if (label == NULL)
+        {
+          if (GTK_IS_BUTTON (widget))
+            /*
+             * Handle the case where GnomeIconEntry is the mnemonic widget.
+             * The GtkButton which is a grandchild of the GnomeIconEntry
+             * should really be the mnemonic widget. See bug #133967.
+             */
+            {
+              GtkWidget *temp_widget;
+
+              temp_widget = gtk_widget_get_parent (widget);
+
+              if (GTK_IS_ALIGNMENT (temp_widget))
+                {
+                  temp_widget = gtk_widget_get_parent (temp_widget);
+                  if (GTK_IS_BOX (temp_widget))
+                    {
+                      label = find_label (temp_widget);
+                      if (!label)
+                        label = find_label (gtk_widget_get_parent (temp_widget));
+                    }
+                }
+            }
+          else if (GTK_IS_COMBO_BOX (widget))
+            /*
+             * Handle the case when GtkFileChooserButton is the mnemonic
+             * widget.  The GtkComboBox which is a child of the
+             * GtkFileChooserButton should be the mnemonic widget.
+             * See bug #359843.
+             */
+            {
+              GtkWidget *temp_widget;
+
+              temp_widget = gtk_widget_get_parent (widget);
+              if (GTK_IS_BOX (temp_widget))
+                {
+                  label = find_label (temp_widget);
+                }
+            }
+        }
+
+      if (label)
+        {
+          array[0] = gtk_widget_get_accessible (label);
+
+          relation = atk_relation_new (array, 1, ATK_RELATION_LABELLED_BY);
+          atk_relation_set_add (relation_set, relation);
+          g_object_unref (relation);
+        }
+    }
+
+  return relation_set;
+}
+
+static AtkStateSet *
+gtk_widget_accessible_ref_state_set (AtkObject *accessible)
+{
+  GtkWidget *widget;
+  AtkStateSet *state_set;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_widget_accessible_parent_class)->ref_state_set (accessible);
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    atk_state_set_add_state (state_set, ATK_STATE_DEFUNCT);
+  else
+    {
+      if (gtk_widget_is_sensitive (widget))
+        {
+          atk_state_set_add_state (state_set, ATK_STATE_SENSITIVE);
+          atk_state_set_add_state (state_set, ATK_STATE_ENABLED);
+        }
+  
+      if (gtk_widget_get_can_focus (widget))
+        {
+          atk_state_set_add_state (state_set, ATK_STATE_FOCUSABLE);
+        }
+      /*
+       * We do not currently generate notifications when an ATK object
+       * corresponding to a GtkWidget changes visibility by being scrolled
+       * on or off the screen.  The testcase for this is the main window
+       * of the testgtk application in which a set of buttons in a GtkVBox
+       * is in a scrolled window with a viewport.
+       *
+       * To generate the notifications we would need to do the following:
+       * 1) Find the GtkViewport among the ancestors of the objects
+       * 2) Create an accessible for the viewport
+       * 3) Connect to the value-changed signal on the viewport
+       * 4) When the signal is received we need to traverse the children
+       *    of the viewport and check whether the children are visible or not
+       *    visible; we may want to restrict this to the widgets for which
+       *    accessible objects have been created.
+       * 5) We probably need to store a variable on_screen in the
+       *    GtkWidgetAccessible data structure so we can determine whether
+       *    the value has changed.
+       */
+      if (gtk_widget_get_visible (widget))
+        {
+          atk_state_set_add_state (state_set, ATK_STATE_VISIBLE);
+          if (gtk_widget_accessible_on_screen (widget) &&
+              gtk_widget_get_mapped (widget) &&
+              gtk_widget_accessible_all_parents_visible (widget))
+            atk_state_set_add_state (state_set, ATK_STATE_SHOWING);
+        }
+
+      if (gtk_widget_has_focus (widget) && (widget == _focus_widget))
+        {
+          AtkObject *focus_obj;
+
+          focus_obj = g_object_get_data (G_OBJECT (accessible), "gail-focus-object");
+          if (focus_obj == NULL)
+            atk_state_set_add_state (state_set, ATK_STATE_FOCUSED);
+        }
+
+      if (gtk_widget_has_default (widget))
+        atk_state_set_add_state (state_set, ATK_STATE_DEFAULT);
+
+      if (GTK_IS_ORIENTABLE (widget))
+        {
+          if (gtk_orientable_get_orientation (GTK_ORIENTABLE (widget)) == GTK_ORIENTATION_HORIZONTAL)
+            atk_state_set_add_state (state_set, ATK_STATE_HORIZONTAL);
+          else
+            atk_state_set_add_state (state_set, ATK_STATE_VERTICAL);
+        }
+    }
+  return state_set;
+}
+
+static gint
+gtk_widget_accessible_get_index_in_parent (AtkObject *accessible)
+{
+  GtkWidget *widget;
+  GtkWidget *parent_widget;
+  gint index;
+  GList *children;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+
+  if (widget == NULL)
+    return -1;
+
+  if (accessible->accessible_parent)
+    {
+      AtkObject *parent;
+
+      parent = accessible->accessible_parent;
+
+      if (GTK_IS_NOTEBOOK_PAGE_ACCESSIBLE (parent))
+        return 0;
+      else
+        {
+          gint n_children, i;
+          gboolean found = FALSE;
+
+          n_children = atk_object_get_n_accessible_children (parent);
+          for (i = 0; i < n_children; i++)
+            {
+              AtkObject *child;
+
+              child = atk_object_ref_accessible_child (parent, i);
+              if (child == accessible)
+                found = TRUE;
+
+              g_object_unref (child);
+              if (found)
+                return i;
+            }
+        }
+    }
+
+  if (!GTK_IS_WIDGET (widget))
+    return -1;
+  parent_widget = gtk_widget_get_parent (widget);
+  if (!GTK_IS_CONTAINER (parent_widget))
+    return -1;
+
+  children = gtk_container_get_children (GTK_CONTAINER (parent_widget));
+
+  index = g_list_index (children, widget);
+  g_list_free (children);
+  return index;
+}
+
+/* This function is the default implementation for the notify_gtk
+ * vfunc which gets called when a property changes value on the
+ * GtkWidget associated with a GtkWidgetAccessible. It constructs
+ * an AtkPropertyValues structure and emits a "property_changed"
+ * signal which causes the user specified AtkPropertyChangeHandler
+ * to be called.
+ */
+static void
+gtk_widget_accessible_notify_gtk (GObject    *obj,
+                                  GParamSpec *pspec)
+{
+  GtkWidget* widget = GTK_WIDGET (obj);
+  AtkObject* atk_obj = gtk_widget_get_accessible (widget);
+  AtkState state;
+  gboolean value;
+
+  if (g_strcmp0 (pspec->name, "has-focus") == 0)
+    /*
+     * We use focus-in-event and focus-out-event signals to catch
+     * focus changes so we ignore this.
+     */
+    return;
+  else if (g_strcmp0 (pspec->name, "visible") == 0)
+    {
+      state = ATK_STATE_VISIBLE;
+      value = gtk_widget_get_visible (widget);
+    }
+  else if (g_strcmp0 (pspec->name, "sensitive") == 0)
+    {
+      state = ATK_STATE_SENSITIVE;
+      value = gtk_widget_get_sensitive (widget);
+    }
+  else if (g_strcmp0 (pspec->name, "orientation") == 0)
+    {
+      GtkOrientable *orientable;
+
+      orientable = GTK_ORIENTABLE (widget);
+
+      state = ATK_STATE_HORIZONTAL;
+      value = (gtk_orientable_get_orientation (orientable) == GTK_ORIENTATION_HORIZONTAL);
+    }
+  else
+    return;
+
+  atk_object_notify_state_change (atk_obj, state, value);
+  if (state == ATK_STATE_SENSITIVE)
+    atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, value);
+
+  if (state == ATK_STATE_HORIZONTAL)
+    atk_object_notify_state_change (atk_obj, ATK_STATE_VERTICAL, !value);
+}
+
+static AtkAttributeSet *
+gtk_widget_accessible_get_attributes (AtkObject *obj)
+{
+  AtkAttributeSet *attributes;
+  AtkAttribute *toolkit;
+
+  toolkit = g_new (AtkAttribute, 1);
+  toolkit->name = g_strdup ("toolkit");
+  toolkit->value = g_strdup ("gtk");
+
+  attributes = g_slist_append (NULL, toolkit);
+
+  return attributes;
+}
+
+static void
+_gtk_widget_accessible_class_init (GtkWidgetAccessibleClass *klass)
+{
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+  GtkAccessibleClass *accessible_class = GTK_ACCESSIBLE_CLASS (klass);
+
+  klass->notify_gtk = gtk_widget_accessible_notify_gtk;
+
+  accessible_class->connect_widget_destroyed = gtk_widget_accessible_connect_widget_destroyed;
+
+  class->get_description = gtk_widget_accessible_get_description;
+  class->get_parent = gtk_widget_accessible_get_parent;
+  class->ref_relation_set = gtk_widget_accessible_ref_relation_set;
+  class->ref_state_set = gtk_widget_accessible_ref_state_set;
+  class->get_index_in_parent = gtk_widget_accessible_get_index_in_parent;
+  class->initialize = gtk_widget_accessible_initialize;
+  class->get_attributes = gtk_widget_accessible_get_attributes;
+  class->focus_event = gtk_widget_accessible_focus_event;
+}
+
+static void
+_gtk_widget_accessible_init (GtkWidgetAccessible *accessible)
+{
+}
+
+static void
+gtk_widget_accessible_get_extents (AtkComponent   *component,
+                                   gint           *x,
+                                   gint           *y,
+                                   gint           *width,
+                                   gint           *height,
+                                   AtkCoordType    coord_type)
+{
+  GdkWindow *window;
+  gint x_window, y_window;
+  gint x_toplevel, y_toplevel;
+  GtkWidget *widget;
+  GtkAllocation allocation;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
+  if (widget == NULL)
+    return;
+
+  gtk_widget_get_allocation (widget, &allocation);
+  *width = allocation.width;
+  *height = allocation.height;
+  if (!gtk_widget_accessible_on_screen (widget) || (!gtk_widget_is_drawable (widget)))
+    {
+      *x = G_MININT;
+      *y = G_MININT;
+      return;
+    }
+
+  if (gtk_widget_get_parent (widget))
+    {
+      *x = allocation.x;
+      *y = allocation.y;
+      window = gtk_widget_get_parent_window (widget);
+    }
+  else
+    {
+      *x = 0;
+      *y = 0;
+      window = gtk_widget_get_window (widget);
+    }
+  gdk_window_get_origin (window, &x_window, &y_window);
+  *x += x_window;
+  *y += y_window;
+
+  if (coord_type == ATK_XY_WINDOW)
+    {
+      window = gdk_window_get_toplevel (gtk_widget_get_window (widget));
+      gdk_window_get_origin (window, &x_toplevel, &y_toplevel);
+
+      *x -= x_toplevel;
+      *y -= y_toplevel;
+    }
+}
+
+static void
+gtk_widget_accessible_get_size (AtkComponent *component,
+                                gint         *width,
+                                gint         *height)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
+  if (widget == NULL)
+    return;
+
+  *width = gtk_widget_get_allocated_width (widget);
+  *height = gtk_widget_get_allocated_height (widget);
+}
+
+static AtkLayer
+gtk_widget_accessible_get_layer (AtkComponent *component)
+{
+  GtkWidgetAccessible *accessible = GTK_WIDGET_ACCESSIBLE (component);
+
+  return accessible->layer;
+}
+
+static gboolean
+gtk_widget_accessible_grab_focus (AtkComponent *component)
+{
+  GtkWidget *widget;
+  GtkWidget *toplevel;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
+  if (!widget)
+    return FALSE;
+
+  if (!gtk_widget_get_can_focus (widget))
+    return FALSE;
+
+  gtk_widget_grab_focus (widget);
+  toplevel = gtk_widget_get_toplevel (widget);
+  if (gtk_widget_is_toplevel (toplevel))
+    {
+#ifdef GDK_WINDOWING_X11
+      gtk_window_present_with_time (GTK_WINDOW (toplevel),
+      gdk_x11_get_server_time (gtk_widget_get_window (widget)));
+#else
+      gtk_window_present (GTK_WINDOW (toplevel));
+#endif
+    }
+  return TRUE;
+}
+
+static gboolean
+gtk_widget_accessible_set_extents (AtkComponent *component,
+                                   gint          x,
+                                   gint          y,
+                                   gint          width,
+                                   gint          height,
+                                   AtkCoordType  coord_type)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
+  if (widget == NULL)
+    return FALSE;
+
+  if (!gtk_widget_is_toplevel (widget))
+    return FALSE;
+
+  if (coord_type == ATK_XY_WINDOW)
+    {
+      gint x_current, y_current;
+      GdkWindow *window = gtk_widget_get_window (widget);
+
+      gdk_window_get_origin (window, &x_current, &y_current);
+      x_current += x;
+      y_current += y;
+      if (x_current < 0 || y_current < 0)
+        return FALSE;
+      else
+        {
+          gtk_window_move (GTK_WINDOW (widget), x_current, y_current);
+          gtk_widget_set_size_request (widget, width, height);
+          return TRUE;
+        }
+    }
+  else if (coord_type == ATK_XY_SCREEN)
+    {
+      gtk_window_move (GTK_WINDOW (widget), x, y);
+      gtk_widget_set_size_request (widget, width, height);
+      return TRUE;
+    }
+  return FALSE;
+}
+
+static gboolean
+gtk_widget_accessible_set_position (AtkComponent *component,
+                                    gint          x,
+                                    gint          y,
+                                    AtkCoordType  coord_type)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
+  if (widget == NULL)
+    return FALSE;
+
+  if (gtk_widget_is_toplevel (widget))
+    {
+      if (coord_type == ATK_XY_WINDOW)
+        {
+          gint x_current, y_current;
+          GdkWindow *window = gtk_widget_get_window (widget);
+
+          gdk_window_get_origin (window, &x_current, &y_current);
+          x_current += x;
+          y_current += y;
+          if (x_current < 0 || y_current < 0)
+            return FALSE;
+          else
+            {
+              gtk_window_move (GTK_WINDOW (widget), x_current, y_current);
+              return TRUE;
+            }
+        }
+      else if (coord_type == ATK_XY_SCREEN)
+        {
+          gtk_window_move (GTK_WINDOW (widget), x, y);
+          return TRUE;
+        }
+    }
+  return FALSE;
+}
+
+static gboolean
+gtk_widget_accessible_set_size (AtkComponent *component,
+                                gint          width,
+                                gint          height)
+{
+  GtkWidget *widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
+  if (widget == NULL)
+    return FALSE;
+
+  if (gtk_widget_is_toplevel (widget))
+    {
+      gtk_widget_set_size_request (widget, width, height);
+      return TRUE;
+    }
+  else
+   return FALSE;
+}
+
+static void
+atk_component_interface_init (AtkComponentIface *iface)
+{
+  iface->get_extents = gtk_widget_accessible_get_extents;
+  iface->get_size = gtk_widget_accessible_get_size;
+  iface->get_layer = gtk_widget_accessible_get_layer;
+  iface->grab_focus = gtk_widget_accessible_grab_focus;
+  iface->set_extents = gtk_widget_accessible_set_extents;
+  iface->set_position = gtk_widget_accessible_set_position;
+  iface->set_size = gtk_widget_accessible_set_size;
+}
+
+/* This function checks whether the widget has an ancestor which is
+ * a GtkViewport and, if so, whether any part of the widget intersects
+ * the visible rectangle of the GtkViewport.
+ */
+static gboolean
+gtk_widget_accessible_on_screen (GtkWidget *widget)
+{
+  GtkAllocation allocation;
+  GtkWidget *viewport;
+  gboolean return_value;
+
+  gtk_widget_get_allocation (widget, &allocation);
+
+  viewport = gtk_widget_get_ancestor (widget, GTK_TYPE_VIEWPORT);
+  if (viewport)
+    {
+      GtkAllocation viewport_allocation;
+      GtkAdjustment *adjustment;
+      GdkRectangle visible_rect;
+
+      gtk_widget_get_allocation (viewport, &viewport_allocation);
+
+      adjustment = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (viewport));
+      visible_rect.y = gtk_adjustment_get_value (adjustment);
+      adjustment = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE (viewport));
+      visible_rect.x = gtk_adjustment_get_value (adjustment);
+      visible_rect.width = viewport_allocation.width;
+      visible_rect.height = viewport_allocation.height;
+
+      if (((allocation.x + allocation.width) < visible_rect.x) ||
+         ((allocation.y + allocation.height) < visible_rect.y) ||
+         (allocation.x > (visible_rect.x + visible_rect.width)) ||
+         (allocation.y > (visible_rect.y + visible_rect.height)))
+        return_value = FALSE;
+      else
+        return_value = TRUE;
+    }
+  else
+    {
+      /* Check whether the widget has been placed of the screen.
+       * The widget may be MAPPED as when toolbar items do not
+       * fit on the toolbar.
+       */
+      if (allocation.x + allocation.width <= 0 &&
+          allocation.y + allocation.height <= 0)
+        return_value = FALSE;
+      else
+        return_value = TRUE;
+    }
+
+  return return_value;
+}
+
+/* Checks if all the predecessors (the parent widget, his parent, etc)
+ * are visible Used to check properly the SHOWING state.
+ */
+static gboolean
+gtk_widget_accessible_all_parents_visible (GtkWidget *widget)
+{
+  GtkWidget *iter_parent = NULL;
+  gboolean result = TRUE;
+
+  for (iter_parent = gtk_widget_get_parent (widget); iter_parent;
+       iter_parent = gtk_widget_get_parent (iter_parent))
+    {
+      if (!gtk_widget_get_visible (iter_parent))
+        {
+          result = FALSE;
+          break;
+        }
+    }
+
+  return result;
+}
diff --git a/gtk/a11y/gtkwidgetaccessible.h b/gtk/a11y/gtkwidgetaccessible.h
new file mode 100644 (file)
index 0000000..3f9d4ca
--- /dev/null
@@ -0,0 +1,60 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_WIDGET_ACCESSIBLE_H__
+#define __GTK_WIDGET_ACCESSIBLE_H__
+
+#include <gtk/gtk.h>
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_WIDGET_ACCESSIBLE                     (_gtk_widget_accessible_get_type ())
+#define GTK_WIDGET_ACCESSIBLE(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_WIDGET_ACCESSIBLE, GtkWidgetAccessible))
+#define GTK_WIDGET_ACCESSIBLE_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_WIDGET_ACCESSIBLE, GtkWidgetAccessibleClass))
+#define GTK_IS_WIDGET_ACCESSIBLE(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_WIDGET_ACCESSIBLE))
+#define GTK_IS_WIDGET_ACCESSIBLE_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_WIDGET_ACCESSIBLE))
+#define GTK_WIDGET_ACCESSIBLE_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_WIDGET_ACCESSIBLE, GtkWidgetAccessibleClass))
+
+typedef struct _GtkWidgetAccessible      GtkWidgetAccessible;
+typedef struct _GtkWidgetAccessibleClass GtkWidgetAccessibleClass;
+
+struct _GtkWidgetAccessible
+{
+  GtkAccessible parent;
+
+  AtkLayer layer;
+};
+
+struct _GtkWidgetAccessibleClass
+{
+  GtkAccessibleClass parent_class;
+
+  /*
+   * Signal handler for notify signal on GTK widget
+   */
+  void (*notify_gtk)                   (GObject             *object,
+                                        GParamSpec          *pspec);
+
+};
+
+GType _gtk_widget_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_WIDGET_ACCESSIBLE_H__ */
diff --git a/gtk/a11y/gtkwindowaccessible.c b/gtk/a11y/gtkwindowaccessible.c
new file mode 100644 (file)
index 0000000..b82af48
--- /dev/null
@@ -0,0 +1,468 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <gtk/gtkx.h>
+
+#include "gtkwindowaccessible.h"
+#include "gtktoplevelaccessible.h"
+
+enum {
+  ACTIVATE,
+  CREATE,
+  DEACTIVATE,
+  DESTROY,
+  MAXIMIZE,
+  MINIMIZE,
+  MOVE,
+  RESIZE,
+  RESTORE,
+  LAST_SIGNAL
+};
+
+
+/* atkcomponent.h */
+
+static void                  gtk_window_accessible_get_extents      (AtkComponent         *component,
+                                                           gint                 *x,
+                                                           gint                 *y,
+                                                           gint                 *width,
+                                                           gint                 *height,
+                                                           AtkCoordType         coord_type);
+static void                  gtk_window_accessible_get_size         (AtkComponent         *component,
+                                                           gint                 *width,
+                                                           gint                 *height);
+
+static guint gtk_window_accessible_signals [LAST_SIGNAL] = { 0, };
+
+static void atk_component_interface_init (AtkComponentIface *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkWindowAccessible, _gtk_window_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init))
+
+
+static void
+gtk_window_accessible_focus_event (AtkObject *obj,
+                                   gboolean   focus_in)
+{
+  atk_object_notify_state_change (obj, ATK_STATE_ACTIVE, focus_in);
+}
+
+static void
+gtk_window_accessible_notify_gtk (GObject    *obj,
+                                  GParamSpec *pspec)
+{
+  GtkWidget *widget = GTK_WIDGET (obj);
+  AtkObject* atk_obj = gtk_widget_get_accessible (widget);
+
+  if (g_strcmp0 (pspec->name, "title") == 0)
+    {
+      g_object_notify (G_OBJECT (atk_obj), "accessible-name");
+      g_signal_emit_by_name (atk_obj, "visible-data-changed");
+    }
+  else
+    GTK_WIDGET_ACCESSIBLE_CLASS (_gtk_window_accessible_parent_class)->notify_gtk (obj, pspec);
+}
+
+static gboolean
+window_state_event_cb (GtkWidget           *widget,
+                       GdkEventWindowState *event)
+{
+  AtkObject* obj;
+
+  obj = gtk_widget_get_accessible (widget);
+  atk_object_notify_state_change (obj, ATK_STATE_ICONIFIED,
+                                  (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) != 0);
+
+  return FALSE;
+}
+
+static void
+gtk_window_accessible_initialize (AtkObject *obj,
+                                  gpointer   data)
+{
+  GtkWidget *widget = GTK_WIDGET (data);
+  const gchar *name;
+
+  /* A GtkWindowAccessible can be created for a GtkHandleBox or a GtkWindow */
+  if (!GTK_IS_WINDOW (widget) && !GTK_IS_HANDLE_BOX (widget))
+    return;
+
+  ATK_OBJECT_CLASS (_gtk_window_accessible_parent_class)->initialize (obj, data);
+
+  g_signal_connect (data, "window-state-event", G_CALLBACK (window_state_event_cb), NULL);
+  GTK_WIDGET_ACCESSIBLE (obj)->layer = ATK_LAYER_WINDOW;
+
+  name = gtk_widget_get_name (widget);
+
+  if (!g_strcmp0 (name, "gtk-tooltip"))
+    obj->role = ATK_ROLE_TOOL_TIP;
+  else if (gtk_window_get_window_type (GTK_WINDOW (widget)) == GTK_WINDOW_POPUP)
+    obj->role = ATK_ROLE_WINDOW;
+  else
+    obj->role = ATK_ROLE_FRAME;
+
+  /* Notify that tooltip is showing */
+  if (obj->role == ATK_ROLE_TOOL_TIP && gtk_widget_get_mapped (widget))
+    atk_object_notify_state_change (obj, ATK_STATE_SHOWING, 1);
+}
+
+static GtkWidget *
+find_label_child (GtkContainer *container)
+{
+  GList *children, *tmp_list;
+  GtkWidget *child;
+
+  children = gtk_container_get_children (container);
+
+  child = NULL;
+  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next)
+    {
+      if (GTK_IS_LABEL (tmp_list->data))
+        {
+          child = GTK_WIDGET (tmp_list->data);
+          break;
+        }
+      else if (GTK_IS_CONTAINER (tmp_list->data))
+        {
+          child = find_label_child (GTK_CONTAINER (tmp_list->data));
+          if (child)
+            break;
+        }
+   }
+  g_list_free (children);
+  return child;
+}
+
+static const gchar *
+gtk_window_accessible_get_name (AtkObject *accessible)
+{
+  const gchar* name;
+  GtkWidget* widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return NULL;
+
+  name = ATK_OBJECT_CLASS (_gtk_window_accessible_parent_class)->get_name (accessible);
+  if (name != NULL)
+    return name;
+
+  if (GTK_IS_WINDOW (widget))
+    {
+      GtkWindow *window = GTK_WINDOW (widget);
+
+      name = gtk_window_get_title (window);
+      if (name == NULL && accessible->role == ATK_ROLE_TOOL_TIP)
+        {
+          GtkWidget *child;
+
+          child = find_label_child (GTK_CONTAINER (window));
+          if (GTK_IS_LABEL (child))
+            name = gtk_label_get_text (GTK_LABEL (child));
+        }
+    }
+  return name;
+}
+
+static gint
+gtk_window_accessible_get_index_in_parent (AtkObject *accessible)
+{
+  GtkWidget* widget;
+  AtkObject* atk_obj;
+  gint index = -1;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return -1;
+
+  index = ATK_OBJECT_CLASS (_gtk_window_accessible_parent_class)->get_index_in_parent (accessible);
+  if (index != -1)
+    return index;
+
+  atk_obj = atk_get_root ();
+
+  if (GTK_IS_WINDOW (widget))
+    {
+      GtkWindow *window = GTK_WINDOW (widget);
+      if (GTK_IS_TOPLEVEL_ACCESSIBLE (atk_obj))
+        {
+          GtkToplevelAccessible *toplevel = GTK_TOPLEVEL_ACCESSIBLE (atk_obj);
+          index = g_list_index (toplevel->window_list, window);
+        }
+      else
+        {
+          gint i, sibling_count;
+
+          sibling_count = atk_object_get_n_accessible_children (atk_obj);
+          for (i = 0; i < sibling_count && index == -1; ++i)
+            {
+              AtkObject *child = atk_object_ref_accessible_child (atk_obj, i);
+              if (accessible == child)
+                index = i;
+              g_object_unref (G_OBJECT (child));
+            }
+        }
+    }
+  return index;
+}
+
+static AtkRelationSet *
+gtk_window_accessible_ref_relation_set (AtkObject *obj)
+{
+  GtkWidget *widget;
+  AtkRelationSet *relation_set;
+  AtkObject *array[1];
+  AtkRelation* relation;
+  GtkWidget *current_widget;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  if (widget == NULL)
+    return NULL;
+
+  relation_set = ATK_OBJECT_CLASS (_gtk_window_accessible_parent_class)->ref_relation_set (obj);
+
+  if (atk_object_get_role (obj) == ATK_ROLE_TOOL_TIP)
+    {
+      relation = atk_relation_set_get_relation_by_type (relation_set, ATK_RELATION_POPUP_FOR);
+      if (relation)
+        atk_relation_set_remove (relation_set, relation);
+
+      if (0) /* FIXME need a way to go from tooltip window to widget */
+        {
+          array[0] = gtk_widget_get_accessible (current_widget);
+          relation = atk_relation_new (array, 1, ATK_RELATION_POPUP_FOR);
+          atk_relation_set_add (relation_set, relation);
+          g_object_unref (relation);
+        }
+    }
+  return relation_set;
+}
+
+static AtkStateSet *
+gtk_window_accessible_ref_state_set (AtkObject *accessible)
+{
+  AtkStateSet *state_set;
+  GtkWidget *widget;
+  GtkWindow *window;
+  GdkWindow *gdk_window;
+  GdkWindowState state;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+  if (widget == NULL)
+    return NULL;
+
+  state_set = ATK_OBJECT_CLASS (_gtk_window_accessible_parent_class)->ref_state_set (accessible);
+
+  window = GTK_WINDOW (widget);
+
+  if (gtk_window_has_toplevel_focus (window) && gtk_window_is_active (window))
+    atk_state_set_add_state (state_set, ATK_STATE_ACTIVE);
+
+  gdk_window = gtk_widget_get_window (widget);
+  if (window)
+    {
+      state = gdk_window_get_state (gdk_window);
+      if (state & GDK_WINDOW_STATE_ICONIFIED)
+        atk_state_set_add_state (state_set, ATK_STATE_ICONIFIED);
+    }
+  if (gtk_window_get_modal (window))
+    atk_state_set_add_state (state_set, ATK_STATE_MODAL);
+
+  if (gtk_window_get_resizable (window))
+    atk_state_set_add_state (state_set, ATK_STATE_RESIZABLE);
+
+  return state_set;
+}
+
+static void
+_gtk_window_accessible_class_init (GtkWindowAccessibleClass *klass)
+{
+  GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
+  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
+
+  widget_class->notify_gtk = gtk_window_accessible_notify_gtk;
+
+  class->get_name = gtk_window_accessible_get_name;
+  class->get_index_in_parent = gtk_window_accessible_get_index_in_parent;
+  class->ref_relation_set = gtk_window_accessible_ref_relation_set;
+  class->ref_state_set = gtk_window_accessible_ref_state_set;
+  class->initialize = gtk_window_accessible_initialize;
+  class->focus_event = gtk_window_accessible_focus_event;
+
+  gtk_window_accessible_signals [ACTIVATE] =
+    g_signal_new ("activate",
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  0,
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+  gtk_window_accessible_signals [CREATE] =
+    g_signal_new ("create",
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  0,
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+  gtk_window_accessible_signals [DEACTIVATE] =
+    g_signal_new ("deactivate",
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  0,
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+  gtk_window_accessible_signals [DESTROY] =
+    g_signal_new ("destroy",
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  0,
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+  gtk_window_accessible_signals [MAXIMIZE] =
+    g_signal_new ("maximize",
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  0,
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+  gtk_window_accessible_signals [MINIMIZE] =
+    g_signal_new ("minimize",
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  0,
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+  gtk_window_accessible_signals [MOVE] =
+    g_signal_new ("move",
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  0,
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+  gtk_window_accessible_signals [RESIZE] =
+    g_signal_new ("resize",
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  0,
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+  gtk_window_accessible_signals [RESTORE] =
+    g_signal_new ("restore",
+                  G_TYPE_FROM_CLASS (klass),
+                  G_SIGNAL_RUN_LAST,
+                  0,
+                  NULL, NULL,
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
+}
+
+static void
+_gtk_window_accessible_init (GtkWindowAccessible *accessible)
+{
+}
+
+static void
+gtk_window_accessible_get_extents (AtkComponent  *component,
+                                   gint          *x,
+                                   gint          *y,
+                                   gint          *width,
+                                   gint          *height,
+                                   AtkCoordType   coord_type)
+{
+  GtkWidget *widget;
+  GdkRectangle rect;
+  gint x_toplevel, y_toplevel;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
+  if (widget == NULL)
+    return;
+
+  if (!gtk_widget_is_toplevel (widget))
+    {
+      AtkComponentIface *parent_iface;
+
+      parent_iface = (AtkComponentIface *) g_type_interface_peek_parent (ATK_COMPONENT_GET_IFACE (component));
+      parent_iface->get_extents (component, x, y, width, height, coord_type);
+      return;
+    }
+
+  gdk_window_get_frame_extents (gtk_widget_get_window (widget), &rect);
+
+  *width = rect.width;
+  *height = rect.height;
+  if (!gtk_widget_is_drawable (widget))
+    {
+      *x = G_MININT;
+      *y = G_MININT;
+      return;
+    }
+
+  *x = rect.x;
+  *y = rect.y;
+  if (coord_type == ATK_XY_WINDOW)
+    {
+      gdk_window_get_origin (gtk_widget_get_window (widget),
+                             &x_toplevel, &y_toplevel);
+      *x -= x_toplevel;
+      *y -= y_toplevel;
+    }
+}
+
+static void
+gtk_window_accessible_get_size (AtkComponent *component,
+                                gint         *width,
+                                gint         *height)
+{
+  GtkWidget *widget;
+  GdkRectangle rect;
+
+  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
+  if (widget == NULL)
+    return;
+
+  if (!gtk_widget_is_toplevel (widget))
+    {
+      AtkComponentIface *parent_iface;
+
+      parent_iface = (AtkComponentIface *) g_type_interface_peek_parent (ATK_COMPONENT_GET_IFACE (component));
+      parent_iface->get_size (component, width, height);
+      return;
+    }
+
+  gdk_window_get_frame_extents (gtk_widget_get_window (widget), &rect);
+
+  *width = rect.width;
+  *height = rect.height;
+}
+
+static void
+atk_component_interface_init (AtkComponentIface *iface)
+{
+  iface->get_extents = gtk_window_accessible_get_extents;
+  iface->get_size = gtk_window_accessible_get_size;
+}
diff --git a/gtk/a11y/gtkwindowaccessible.h b/gtk/a11y/gtkwindowaccessible.h
new file mode 100644 (file)
index 0000000..73ba162
--- /dev/null
@@ -0,0 +1,51 @@
+/* GAIL - The GNOME Accessibility Implementation Library
+ * Copyright 2001 Sun Microsystems Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#ifndef __GTK_WINDOW_ACCESSIBLE_H__
+#define __GTK_WINDOW_ACCESSIBLE_H__
+
+#include "gtkcontaineraccessible.h"
+
+G_BEGIN_DECLS
+
+#define GTK_TYPE_WINDOW_ACCESSIBLE                        (_gtk_window_accessible_get_type ())
+#define GTK_WINDOW_ACCESSIBLE(obj)                        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_WINDOW_ACCESSIBLE, GtkWindowAccessible))
+#define GTK_WINDOW_ACCESSIBLE_CLASS(klass)                (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_WINDOW_ACCESSIBLE, GtkWindowAccessibleClass))
+#define GTK_IS_WINDOW_ACCESSIBLE(obj)                     (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_WINDOW_ACCESSIBLE))
+#define GTK_IS_WINDOW_ACCESSIBLE_CLASS(klass)             (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_WINDOW_ACCESSIBLE))
+#define GTK_WINDOW_ACCESSIBLE_GET_CLASS(obj)              (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_WINDOW_ACCESSIBLE, GtkWindowAccessibleClass))
+
+typedef struct _GtkWindowAccessible      GtkWindowAccessible;
+typedef struct _GtkWindowAccessibleClass GtkWindowAccessibleClass;
+
+struct _GtkWindowAccessible
+{
+  GtkContainerAccessible parent;
+};
+
+struct _GtkWindowAccessibleClass
+{
+  GtkContainerAccessibleClass parent_class;
+};
+
+GType _gtk_window_accessible_get_type (void);
+
+G_END_DECLS
+
+#endif /* __GTK_WINDOW_ACCESSIBLE_H__ */
index cde5ce5c5ac51c9f4dbfd20c1e136e1870f84c40..a2447f797643a7156779805f67c71461177448c0 100644 (file)
@@ -157,6 +157,7 @@ gtk_adjustment_changed
 gtk_adjustment_clamp_page
 gtk_adjustment_configure
 gtk_adjustment_get_lower
+gtk_adjustment_get_minimum_increment
 gtk_adjustment_get_page_increment
 gtk_adjustment_get_page_size
 gtk_adjustment_get_step_increment
@@ -243,6 +244,7 @@ gtk_assistant_page_type_get_type
 gtk_assistant_prepend_page
 gtk_assistant_previous_page
 gtk_assistant_remove_action_widget
+gtk_assistant_remove_page
 gtk_assistant_set_current_page
 gtk_assistant_set_forward_page_func
 gtk_assistant_set_page_complete
@@ -1534,13 +1536,13 @@ gtk_menu_tool_button_new_from_stock
 gtk_menu_tool_button_set_arrow_tooltip_markup
 gtk_menu_tool_button_set_arrow_tooltip_text
 gtk_menu_tool_button_set_menu
-gtk_message_dialog_format_secondary_markup G_GNUC_PRINTF(2,3)
-gtk_message_dialog_format_secondary_text G_GNUC_PRINTF(2,3)
+gtk_message_dialog_format_secondary_markup
+gtk_message_dialog_format_secondary_text
 gtk_message_dialog_get_image
 gtk_message_dialog_get_message_area
 gtk_message_dialog_get_type
-gtk_message_dialog_new G_GNUC_PRINTF(5,6)
-gtk_message_dialog_new_with_markup G_GNUC_PRINTF(5,6)
+gtk_message_dialog_new
+gtk_message_dialog_new_with_markup
 gtk_message_dialog_set_image
 gtk_message_dialog_set_markup
 gtk_message_type_get_type
@@ -3462,6 +3464,8 @@ gtk_widget_class_install_style_property
 gtk_widget_class_install_style_property_parser
 gtk_widget_class_list_style_properties
 gtk_widget_class_path
+gtk_widget_class_set_accessible_role
+gtk_widget_class_set_accessible_type
 gtk_widget_compute_expand
 gtk_widget_create_pango_context
 gtk_widget_create_pango_layout
index 734e5116fd39d840588963c0a53ad4f2b1a1cb48..faf469a7e3a801839950a1c5a04b4b6b3ad982a2 100644 (file)
@@ -144,6 +144,8 @@ gtk_accel_label_class_init (GtkAccelLabelClass *class)
   widget_class->get_preferred_width = gtk_accel_label_get_preferred_width;
   widget_class->destroy = gtk_accel_label_destroy;
 
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_ACCEL_LABEL);
+
   class->signal_quote1 = g_strdup ("<:");
   class->signal_quote2 = g_strdup (":>");
 
index 32d8c796a22ff523da1fc8eed26cde4ca74ea8c1..dd5421446180e6abc6091db2e66dd1274e622a30 100644 (file)
@@ -806,7 +806,7 @@ gtk_accel_map_save (const gchar *file_name)
 
 /**
  * gtk_accel_map_foreach:
- * @data:         data to be passed into @foreach_func
+ * @data: (allow-none): data to be passed into @foreach_func
  * @foreach_func: (scope call): function to be executed for each accel
  *                map entry which is not filtered out
  *
index eb7697f403fcfc464b8cb6dc6dda1a3e9348626a..161ab734ce7df54558e3abd85022c886e46ca1c7 100644 (file)
  * SECTION:gtkaccessible
  * @Short_description: Accessibility support for widgets
  * @Title: GtkAccessible
+ *
+ * The #GtkAccessible class is the base class for accessible
+ * implementations for #GtkWidget subclasses. It is a thin
+ * wrapper around #AtkObject, which adds facilities for associating
+ * a widget with its accessible object.
+ *
+ * An accessible implementation for a third-party widget should
+ * derive from #GtkAccessible and implement the suitable interfaces
+ * from ATK, such as #AtkText or #AtkSelection. To establish
+ * the connection between the widget class and its corresponding
+ * acccessible implementation, override the get_accessible vfunc
+ * in #GtkWidgetClass.
  */
 
-/*
- * GtkAccessiblePriv:
- * @widget: The GtkWidget whose properties and features are exported via this
- *   accessible instance
- */
 struct _GtkAccessiblePrivate
 {
   GtkWidget *widget;
@@ -68,7 +75,7 @@ gtk_accessible_class_init (GtkAccessibleClass *klass)
  * Sets the #GtkWidget corresponding to the #GtkAccessible.
  *
  * Since: 2.22
- **/
+ */
 void
 gtk_accessible_set_widget (GtkAccessible *accessible,
                            GtkWidget     *widget)
@@ -82,14 +89,15 @@ gtk_accessible_set_widget (GtkAccessible *accessible,
  * gtk_accessible_get_widget:
  * @accessible: a #GtkAccessible
  *
- * Gets the #GtkWidget corresponding to the #GtkAccessible. The returned widget
- * does not have a reference added, so you do not need to unref it.
+ * Gets the #GtkWidget corresponding to the #GtkAccessible.
+ * The returned widget does not have a reference added, so
+ * you do not need to unref it.
  *
- * Returns: (transfer none): pointer to the #GtkWidget corresponding to
- *   the #GtkAccessible, or %NULL.
+ * Returns: (transfer none): pointer to the #GtkWidget
+ *     corresponding to the #GtkAccessible, or %NULL.
  *
  * Since: 2.22
- **/
+ */
 GtkWidget*
 gtk_accessible_get_widget (GtkAccessible *accessible)
 {
@@ -99,11 +107,11 @@ gtk_accessible_get_widget (GtkAccessible *accessible)
 }
 
 /**
- * gtk_accessible_connect_widget_destroyed
+ * gtk_accessible_connect_widget_destroyed:
  * @accessible: a #GtkAccessible
  *
- * This function specifies the callback function to be called when the widget
- * corresponding to a GtkAccessible is destroyed.
+ * This function specifies the callback function to be called
+ * when the widget corresponding to a GtkAccessible is destroyed.
  */
 void
 gtk_accessible_connect_widget_destroyed (GtkAccessible *accessible)
@@ -124,41 +132,6 @@ gtk_accessible_real_connect_widget_destroyed (GtkAccessible *accessible)
   GtkAccessiblePrivate *priv = accessible->priv;
 
   if (priv->widget)
-  {
-    g_signal_connect (priv->widget,
-                      "destroy",
-                      G_CALLBACK (gtk_widget_destroyed),
-                      &priv->widget);
-  }
+    g_signal_connect (priv->widget, "destroy",
+                      G_CALLBACK (gtk_widget_destroyed), &priv->widget);
 }
-
-/*
- * _gtk_accessible_set_factory_type:
- * @widget_type: a #GtkWidget subtype
- * @factory_type: a #AtkObjectFactory subtype
- *
- * A wrapper around atk_registry_set_factory_type().
- *
- * Only installs the factory if accessibility is
- * enabled.
- */
-void
-_gtk_accessible_set_factory_type (GType widget_type,
-                                  GType factory_type)
-{
-  AtkObjectFactory *factory;
-  AtkRegistry *registry;
-  GType accessible_type;
-
-  /*
-   * Figure out whether accessibility is enabled by looking
-   * at the type of the accessible object which would be created
-   * for GtkWidget.
-   */
-  registry = atk_get_default_registry ();
-  factory = atk_registry_get_factory (registry, GTK_TYPE_WIDGET);
-  accessible_type = atk_object_factory_get_accessible_type (factory);
-  if (g_type_is_a (accessible_type, GTK_TYPE_ACCESSIBLE))
-    atk_registry_set_factory_type (registry, widget_type, factory_type);
-}
-
index d3a154e7edd6ff74854969bcd4dcd7ef2af9fb33..04d213a3a328f157494619a74a32875a107eae80 100644 (file)
@@ -36,13 +36,10 @@ G_BEGIN_DECLS
 #define GTK_IS_ACCESSIBLE_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_ACCESSIBLE))
 #define GTK_ACCESSIBLE_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_ACCESSIBLE, GtkAccessibleClass))
 
-typedef struct _GtkAccessible                GtkAccessible;
-typedef struct _GtkAccessiblePrivate         GtkAccessiblePrivate;
-typedef struct _GtkAccessibleClass           GtkAccessibleClass;
+typedef struct _GtkAccessible        GtkAccessible;
+typedef struct _GtkAccessiblePrivate GtkAccessiblePrivate;
+typedef struct _GtkAccessibleClass   GtkAccessibleClass;
 
-  /*
-   * This object is a thin wrapper, in the GTK+ namespace, for AtkObject
-   */
 struct _GtkAccessible
 {
   AtkObject parent;
@@ -55,8 +52,8 @@ struct _GtkAccessibleClass
 {
   AtkObjectClass parent_class;
 
-  void (*connect_widget_destroyed)              (GtkAccessible     *accessible);
-  
+  void (*connect_widget_destroyed) (GtkAccessible *accessible);
+
   /* Padding for future expansion */
   void (*_gtk_reserved1) (void);
   void (*_gtk_reserved2) (void);
@@ -64,12 +61,12 @@ struct _GtkAccessibleClass
   void (*_gtk_reserved4) (void);
 };
 
-GType gtk_accessible_get_type (void) G_GNUC_CONST;
+GType      gtk_accessible_get_type                 (void) G_GNUC_CONST;
 
-void        gtk_accessible_set_widget                  (GtkAccessible     *accessible,
-                                                        GtkWidget         *widget);
-GtkWidget*  gtk_accessible_get_widget                  (GtkAccessible     *accessible);
-void        gtk_accessible_connect_widget_destroyed    (GtkAccessible     *accessible);
+void       gtk_accessible_set_widget               (GtkAccessible *accessible,
+                                                    GtkWidget     *widget);
+GtkWidget *gtk_accessible_get_widget               (GtkAccessible *accessible);
+void       gtk_accessible_connect_widget_destroyed (GtkAccessible *accessible);
 
 G_END_DECLS
 
index 40329a4ef318ffca600a5aa6153d3daa73b6707b..29aa1c9370761a6578ac9deece126499ce24e9e7 100644 (file)
@@ -809,3 +809,47 @@ gtk_adjustment_clamp_page (GtkAdjustment *adjustment,
   if (need_emission)
     gtk_adjustment_value_changed (adjustment);
 }
+
+/**
+ * gtk_adjustment_get_minimum_increment:
+ * @adjustment: a #GtkAdjustment
+ *
+ * Gets the smaller of step increment and page increment.
+ *
+ * Returns: the minimum increment of @adjustment
+ *
+ * Since: 3.2
+ */
+gdouble
+gtk_adjustment_get_minimum_increment (GtkAdjustment *adjustment)
+{
+  GtkAdjustmentPrivate *priv;
+  gdouble minimum_increment;
+
+  g_return_val_if_fail (GTK_IS_ADJUSTMENT (adjustment), 0);
+
+  priv = adjustment->priv;
+
+    if (priv->step_increment != 0 && priv->page_increment != 0)
+    {
+      if (ABS (priv->step_increment) < ABS (priv->page_increment))
+        minimum_increment = priv->step_increment;
+      else
+        minimum_increment = priv->page_increment;
+    }
+  else if (priv->step_increment == 0 && priv->page_increment == 0)
+    {
+      minimum_increment = 0;
+    }
+  else if (priv->step_increment == 0)
+    {
+      minimum_increment = priv->page_increment;
+    }
+  else
+    {
+      minimum_increment = priv->step_increment;
+    }
+
+  return minimum_increment;
+}
+
index 1ea9de5011dfcf6bdc3ff9d5ca7f7c9f079fd7c0..d3ff03a6ac84cac6d9e54ffe2abf9e93536edf84 100644 (file)
@@ -116,6 +116,8 @@ void       gtk_adjustment_configure             (GtkAdjustment   *adjustment,
                                                  gdouble          page_increment,
                                                  gdouble          page_size);
 
+gdouble    gtk_adjustment_get_minimum_increment (GtkAdjustment   *adjustment);
+
 G_END_DECLS
 
 #endif /* __GTK_ADJUSTMENT_H__ */
index b8744e70ba722ffa735065f4d47bce00c22a21bf..0df37bebc7263429c2150501677fe475e3396bce 100644 (file)
@@ -52,6 +52,8 @@
 #include "gtkprivate.h"
 #include "gtkintl.h"
 
+#include "a11y/gtkarrowaccessible.h"
+
 #define MIN_ARROW_SIZE  15
 
 struct _GtkArrowPrivate
@@ -130,6 +132,8 @@ gtk_arrow_class_init (GtkArrowClass *class)
                                                                GTK_PARAM_READABLE));
 
   g_type_class_add_private (class, sizeof (GtkArrowPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_ARROW_ACCESSIBLE);
 }
 
 static void
index 916bfeccf283fc3cfce29f7c719245de0eab09f8..49ebe157c714407a07b744f38eca119ea317b35d 100644 (file)
@@ -62,7 +62,6 @@
 
 #include "gtkassistant.h"
 
-#include "gtkaccessibleprivate.h"
 #include "gtkbutton.h"
 #include "gtkbox.h"
 #include "gtkframe.h"
@@ -76,6 +75,7 @@
 #include "gtkintl.h"
 #include "gtkprivate.h"
 #include "gtkbuildable.h"
+#include "a11y/gtkwindowaccessible.h"
 
 
 #define HEADER_SPACING 12
@@ -149,9 +149,6 @@ static void     gtk_assistant_get_child_property (GtkContainer      *container,
                                                   GValue            *value,
                                                   GParamSpec        *pspec);
 
-static AtkObject *gtk_assistant_get_accessible   (GtkWidget         *widget);
-static GType      gtk_assistant_accessible_factory_get_type  (void);
-
 static void       gtk_assistant_buildable_interface_init     (GtkBuildableIface *iface);
 static GObject   *gtk_assistant_buildable_get_internal_child (GtkBuildable  *buildable,
                                                               GtkBuilder    *builder,
@@ -171,6 +168,8 @@ static void       gtk_assistant_buildable_custom_finished    (GtkBuildable  *bui
 static GList*     find_page                                  (GtkAssistant  *assistant,
                                                               GtkWidget     *page);
 
+GType             _gtk_assistant_accessible_get_type         (void);
+
 enum
 {
   CHILD_PROP_0,
@@ -213,7 +212,8 @@ gtk_assistant_class_init (GtkAssistantClass *class)
   widget_class->map = gtk_assistant_map;
   widget_class->unmap = gtk_assistant_unmap;
   widget_class->delete_event = gtk_assistant_delete_event;
-  widget_class->get_accessible = gtk_assistant_get_accessible;
+
+  gtk_widget_class_set_accessible_type (widget_class, _gtk_assistant_accessible_get_type ());
 
   container_class->add = gtk_assistant_add;
   container_class->remove = gtk_assistant_remove;
@@ -863,6 +863,83 @@ assistant_sidebar_draw_cb (GtkWidget *widget,
   return FALSE;
 }
 
+static void
+on_page_notify_visibility (GtkWidget  *widget,
+                           GParamSpec *arg,
+                           gpointer    data)
+{
+  GtkAssistant *assistant = GTK_ASSISTANT (data);
+
+  if (gtk_widget_get_mapped (GTK_WIDGET (assistant)))
+    {
+      update_buttons_state (assistant);
+      update_title_state (assistant);
+    }
+}
+
+static void
+assistant_remove_page_cb (GtkNotebook *notebook,
+                          GtkWidget *page,
+                          GtkAssistant *assistant)
+{
+  GtkAssistantPrivate *priv = assistant->priv;
+  GtkAssistantPage *page_info;
+  GList *page_node;
+  GList *element;
+
+  element = find_page (assistant, page);
+  if (!element)
+    return;
+
+  page_info = element->data;
+
+  /* If this is the current page, we need to switch away. */
+  if (page_info == priv->current_page)
+    {
+      if (!compute_next_step (assistant))
+        {
+          /* The best we can do at this point is probably to pick
+           * the first visible page.
+           */
+          page_node = priv->pages;
+
+          while (page_node &&
+                 !gtk_widget_get_visible (((GtkAssistantPage *) page_node->data)->page))
+            page_node = page_node->next;
+
+          if (page_node == element)
+            page_node = page_node->next;
+
+          if (page_node)
+            priv->current_page = page_node->data;
+          else
+            priv->current_page = NULL;
+        }
+    }
+
+  g_signal_handlers_disconnect_by_func (page_info->page, on_page_notify_visibility, assistant);
+
+  gtk_size_group_remove_widget (priv->title_size_group, page_info->regular_title);
+  gtk_size_group_remove_widget (priv->title_size_group, page_info->current_title);
+
+  gtk_container_remove (GTK_CONTAINER (priv->sidebar), page_info->regular_title);
+  gtk_container_remove (GTK_CONTAINER (priv->sidebar), page_info->current_title);
+
+  priv->pages = g_list_remove_link (priv->pages, element);
+  priv->visited_pages = g_slist_remove_all (priv->visited_pages, page_info);
+
+  g_free (page_info->title);
+
+  g_slice_free (GtkAssistantPage, page_info);
+  g_list_free_1 (element);
+
+  if (gtk_widget_get_mapped (GTK_WIDGET (assistant)))
+    {
+      update_buttons_state (assistant);
+      update_actions_size (assistant);
+    }
+}
+
 static void
 gtk_assistant_init (GtkAssistant *assistant)
 {
@@ -902,6 +979,9 @@ gtk_assistant_init (GtkAssistant *assistant)
   gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->content), FALSE);
   priv->action_area = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
 
+  g_signal_connect (priv->content, "remove",
+                    G_CALLBACK (assistant_remove_page_cb), assistant);
+
   gtk_container_add (GTK_CONTAINER (sidebar_frame), priv->sidebar);
   gtk_box_pack_start (GTK_BOX (main_box), sidebar_frame, FALSE, FALSE, 0);
   gtk_box_pack_start (GTK_BOX (main_box), content_box, TRUE, TRUE, 0);
@@ -1058,78 +1138,6 @@ gtk_assistant_get_child_property (GtkContainer *container,
     }
 }
 
-static void
-on_page_notify_visibility (GtkWidget  *widget,
-                           GParamSpec *arg,
-                           gpointer    data)
-{
-  GtkAssistant *assistant = GTK_ASSISTANT (data);
-
-  if (gtk_widget_get_mapped (GTK_WIDGET (assistant)))
-    {
-      update_buttons_state (assistant);
-      update_title_state (assistant);
-    }
-}
-
-static void
-remove_page (GtkAssistant *assistant,
-             GList        *element)
-{
-  GtkAssistantPrivate *priv = assistant->priv;
-  GtkAssistantPage *page_info;
-  GList *page_node;
-
-  page_info = element->data;
-
-  /* If this is the current page, we need to switch away. */
-  if (page_info == priv->current_page)
-    {
-      if (!compute_next_step (assistant))
-        {
-          /* The best we can do at this point is probably to pick
-           * the first visible page.
-           */
-          page_node = priv->pages;
-
-          while (page_node &&
-                 !gtk_widget_get_visible (((GtkAssistantPage *) page_node->data)->page))
-            page_node = page_node->next;
-
-          if (page_node == element)
-            page_node = page_node->next;
-
-          if (page_node)
-            priv->current_page = page_node->data;
-          else
-            priv->current_page = NULL;
-        }
-    }
-
-  g_signal_handlers_disconnect_by_func (page_info->page, on_page_notify_visibility, assistant);
-
-  gtk_size_group_remove_widget (priv->title_size_group, page_info->regular_title);
-  gtk_size_group_remove_widget (priv->title_size_group, page_info->current_title);
-
-  gtk_container_remove (GTK_CONTAINER (priv->sidebar), page_info->regular_title);
-  gtk_container_remove (GTK_CONTAINER (priv->sidebar), page_info->current_title);
-
-  gtk_notebook_remove_page (GTK_NOTEBOOK (priv->content), gtk_notebook_page_num (GTK_NOTEBOOK (priv->content), page_info->page));
-  priv->pages = g_list_remove_link (priv->pages, element);
-  priv->visited_pages = g_slist_remove_all (priv->visited_pages, page_info);
-
-  g_free (page_info->title);
-
-  g_slice_free (GtkAssistantPage, page_info);
-  g_list_free_1 (element);
-
-  if (gtk_widget_get_mapped (GTK_WIDGET (assistant)))
-    {
-      update_buttons_state (assistant);
-      update_actions_size (assistant);
-    }
-}
-
 static void
 gtk_assistant_destroy (GtkWidget *widget)
 {
@@ -1141,15 +1149,25 @@ gtk_assistant_destroy (GtkWidget *widget)
    */
   priv->current_page = NULL;
 
-  while (priv->pages)
-    remove_page (assistant, priv->pages);
+  if (priv->content)
+    {
+      GtkNotebook *notebook;
+      GtkWidget *page;
+
+      /* Remove all pages from the content notebook. */
+      notebook = (GtkNotebook *) priv->content;
+      while ((page = gtk_notebook_get_nth_page (notebook, 0)) != NULL)
+        gtk_container_remove ((GtkContainer *) notebook, page);
+
+      /* Our GtkAssistantPage list should be empty now. */
+      g_warn_if_fail (priv->pages == NULL);
+
+      priv->content = NULL;
+    }
 
   if (priv->sidebar)
     priv->sidebar = NULL;
 
-  if (priv->content)
-    priv->content = NULL;
-
   if (priv->action_area)
     priv->action_area = NULL;
 
@@ -1281,14 +1299,12 @@ gtk_assistant_remove (GtkContainer *container,
                       GtkWidget    *page)
 {
   GtkAssistant *assistant = (GtkAssistant*) container;
-  GList *element;
-
-  element = find_page (assistant, page);
 
-  if (element)
+  /* Forward this removal to the content notebook */
+  if (gtk_widget_get_parent (page) == assistant->priv->content)
     {
-      remove_page (assistant, element);
-      gtk_widget_queue_resize ((GtkWidget *) container);
+      container = (GtkContainer *) assistant->priv->content;
+      gtk_container_remove (container, page);
     }
 }
 
@@ -1634,6 +1650,30 @@ gtk_assistant_insert_page (GtkAssistant *assistant,
   return position;
 }
 
+/**
+ * gtk_assistant_remove_page:
+ * @assistant: a #GtkAssistant
+ * @page_num: the index of a page in the @assistant,
+ *     or -1 to get the last page
+ *
+ * Removes the @page_num's page from @assistant.
+ *
+ * Since: 3.2
+ */
+void
+gtk_assistant_remove_page (GtkAssistant *assistant,
+                           gint          page_num)
+{
+  GtkWidget *page;
+
+  g_return_if_fail (GTK_IS_ASSISTANT (assistant));
+
+  page = gtk_assistant_get_nth_page (assistant, page_num);
+
+  if (page)
+    gtk_container_remove (GTK_CONTAINER (assistant), page);
+}
+
 /**
  * gtk_assistant_set_forward_page_func:
  * @assistant: a #GtkAssistant
@@ -2189,29 +2229,13 @@ gtk_assistant_commit (GtkAssistant *assistant)
   update_buttons_state (assistant);
 }
 
-static AtkObject *
-gtk_assistant_get_accessible (GtkWidget *widget)
-{
-  static gboolean first_time = TRUE;
-
-  if (first_time)
-    {
-      _gtk_accessible_set_factory_type (GTK_TYPE_ASSISTANT,
-                                        gtk_assistant_accessible_factory_get_type ());
-
-      first_time = FALSE;
-    }
-
-  return GTK_WIDGET_CLASS (gtk_assistant_parent_class)->get_accessible (widget);
-}
-
 /* accessible implementation */
 
 /* dummy typedefs */
-typedef struct _GtkAssistantAccessible          GtkAssistantAccessible;
-typedef struct _GtkAssistantAccessibleClass     GtkAssistantAccessibleClass;
+typedef GtkWindowAccessible      GtkAssistantAccessible;
+typedef GtkWindowAccessibleClass GtkAssistantAccessibleClass;
 
-ATK_DEFINE_TYPE (GtkAssistantAccessible, _gtk_assistant_accessible, GTK_TYPE_ASSISTANT);
+G_DEFINE_TYPE (GtkAssistantAccessible, _gtk_assistant_accessible, GTK_TYPE_WINDOW_ACCESSIBLE);
 
 static gint
 gtk_assistant_accessible_get_n_children (AtkObject *accessible)
@@ -2283,43 +2307,6 @@ _gtk_assistant_accessible_init (GtkAssistantAccessible *self)
 {
 }
 
-/* factory */
-typedef AtkObjectFactory        GtkAssistantAccessibleFactory;
-typedef AtkObjectFactoryClass   GtkAssistantAccessibleFactoryClass;
-
-G_DEFINE_TYPE (GtkAssistantAccessibleFactory,
-               gtk_assistant_accessible_factory,
-               ATK_TYPE_OBJECT_FACTORY);
-
-static GType
-gtk_assistant_accessible_factory_get_accessible_type (void)
-{
-  return _gtk_assistant_accessible_get_type ();
-}
-
-static AtkObject*
-gtk_assistant_accessible_factory_create_accessible (GObject *obj)
-{
-  AtkObject *accessible;
-
-  accessible = g_object_new (_gtk_assistant_accessible_get_type (), NULL);
-  atk_object_initialize (accessible, obj);
-
-  return accessible;
-}
-
-static void
-gtk_assistant_accessible_factory_class_init (AtkObjectFactoryClass *class)
-{
-  class->create_accessible = gtk_assistant_accessible_factory_create_accessible;
-  class->get_accessible_type = gtk_assistant_accessible_factory_get_accessible_type;
-}
-
-static void
-gtk_assistant_accessible_factory_init (AtkObjectFactory *factory)
-{
-}
-
 /* buildable implementation */
 
 static GtkBuildableIface *parent_buildable_iface;
index b1483691ff5a1247863a44129e76677561310a55..3caff0bf50cfd96fdfe922a8edf3007a2a29e2c8 100644 (file)
@@ -139,6 +139,8 @@ gint                  gtk_assistant_append_page           (GtkAssistant
 gint                  gtk_assistant_insert_page           (GtkAssistant         *assistant,
                                                            GtkWidget            *page,
                                                            gint                  position);
+void                  gtk_asssistant_remove_page          (GtkAssistant         *assistant,
+                                                           gint                  page_num);
 void                  gtk_assistant_set_forward_page_func (GtkAssistant         *assistant,
                                                            GtkAssistantPageFunc  page_func,
                                                            gpointer              data,
index ecf7bb16a58d46d645248190559a8715bf863fae..eacbabfad6b1dc0a3b0d3df08c91575e4cb28cd4 100644 (file)
@@ -85,6 +85,7 @@
 #include "gtktypebuiltins.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
+#include "a11y/gtkboxaccessible.h"
 
 
 enum {
@@ -109,7 +110,6 @@ struct _GtkBoxPrivate
 
   GtkOrientation  orientation;
   gint16          spacing;
-  GtkWidgetPath  *sibling_path;
 
   guint           default_expand : 1;
   guint           homogeneous    : 1;
@@ -199,6 +199,7 @@ static void               gtk_box_get_preferred_height_for_width (GtkWidget
                                                                   gint                *minimum_height,
                                                                   gint                *natural_height);
 
+
 G_DEFINE_TYPE_WITH_CODE (GtkBox, gtk_box, GTK_TYPE_CONTAINER,
                          G_IMPLEMENT_INTERFACE (GTK_TYPE_ORIENTABLE,
                                                 NULL))
@@ -313,6 +314,8 @@ gtk_box_class_init (GtkBoxClass *class)
                                                                GTK_PARAM_READWRITE));
 
   g_type_class_add_private (object_class, sizeof (GtkBoxPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_BOX_ACCESSIBLE);
 }
 
 static void
@@ -881,17 +884,19 @@ static GtkWidgetPath *
 gtk_box_get_path_for_child (GtkContainer *container,
                             GtkWidget    *child)
 {
-  GtkWidgetPath *path;
+  GtkWidgetPath *path, *sibling_path;
   GtkBox *box;
   GtkBoxPrivate *private;
+  GList *list, *children;
 
   box = GTK_BOX (container);
   private = box->priv;
 
-  if (private->sibling_path == NULL)
+  path = gtk_widget_path_copy (gtk_widget_get_path (GTK_WIDGET (container)));
+
+  if (gtk_widget_get_visible (child))
     {
-      GList *list, *children;
-      private->sibling_path = gtk_widget_path_new ();
+      sibling_path = gtk_widget_path_new ();
 
       /* get_children works in visible order */
       children = gtk_container_get_children (container);
@@ -904,17 +909,16 @@ gtk_box_get_path_for_child (GtkContainer *container,
           if (!gtk_widget_get_visible (list->data))
             continue;
 
-          gtk_widget_path_append_for_widget (private->sibling_path, list->data);
+          gtk_widget_path_append_for_widget (sibling_path, list->data);
         }
-      g_list_free (children);
-    }
+        g_list_free (children);
 
-  path = gtk_widget_path_copy (gtk_widget_get_path (GTK_WIDGET (container)));
-  if (gtk_widget_get_visible (child))
-    gtk_widget_path_append_with_siblings (path,
-                                          private->sibling_path,
-                                          gtk_box_get_visible_position (box,
-                                                                        child));
+        gtk_widget_path_append_with_siblings (path,
+                                              sibling_path,
+                                              gtk_box_get_visible_position (box,
+                                                                            child));
+        gtk_widget_path_unref (sibling_path);
+    }
   else
     gtk_widget_path_append_for_widget (path, child);
 
@@ -924,17 +928,9 @@ gtk_box_get_path_for_child (GtkContainer *container,
 static void
 gtk_box_invalidate_order (GtkBox *box)
 {
-  GtkBoxPrivate *private = box->priv;
-
-  if (private->sibling_path != NULL)
-    {
-      gtk_widget_path_unref (private->sibling_path);
-      private->sibling_path = NULL;
-
-      gtk_container_foreach (GTK_CONTAINER (box),
-                             (GtkCallback) gtk_widget_reset_style,
-                             NULL);
-    }
+  gtk_container_foreach (GTK_CONTAINER (box),
+                         (GtkCallback) gtk_widget_reset_style,
+                         NULL);
 }
 
 static void
index d11fcf9c18bca6fae719d3f24e4e5d28b35b6797..74a59991a18f0aa0c5c7e41fae94f99ac76a2622 100644 (file)
@@ -1226,7 +1226,8 @@ gtk_builder_connect_signals_default (GtkBuilder    *builder,
  * It uses #GModule's introspective features (by opening the module %NULL) 
  * to look at the application's symbol table. From here it tries to match
  * the signal handler names given in the interface description with
- * symbols in the application and connects the signals.
+ * symbols in the application and connects the signals. Note that this
+ * function can only be called once, subsequent calls will do nothing.
  * 
  * Note that this function will not work correctly if #GModule is not
  * supported on the platform.
@@ -1276,7 +1277,8 @@ gtk_builder_connect_signals (GtkBuilder *builder,
  * by the gtk_builder_connect_signals() and gtk_builder_connect_signals_full()
  * methods.  It is mainly intended for interpreted language bindings, but
  * could be useful where the programmer wants more control over the signal
- * connection process.
+ * connection process. Note that this function can only be called once,
+ * subsequent calls will do nothing.
  *
  * Since: 2.12
  */
index 30726350944a36be6191a55244dac9a3e05b9329..6b967846fb966b42be77899a86b45b34064c6622 100644 (file)
@@ -58,6 +58,7 @@
 #include "gtktypebuiltins.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
+#include "a11y/gtkbuttonaccessible.h"
 
 
 static const GtkBorder default_default_border = { 1, 1, 1, 1 };
@@ -528,6 +529,8 @@ gtk_button_class_init (GtkButtonClass *klass)
                                                             GTK_PARAM_READABLE));
 
   g_type_class_add_private (gobject_class, sizeof (GtkButtonPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_BUTTON_ACCESSIBLE);
 }
 
 static void
index 404dfe980c289843fd239672e908299b24d28a17..c8eac513687236c4cd303b33a7cf598a7a5020e7 100644 (file)
@@ -393,6 +393,7 @@ static gboolean gtk_calendar_drag_drop          (GtkWidget        *widget,
                                                  gint              y,
                                                  guint             time);
 
+
 static void calendar_start_spinning (GtkCalendar *calendar,
                                      gint         click_child);
 static void calendar_stop_spinning  (GtkCalendar *calendar);
@@ -455,6 +456,8 @@ gtk_calendar_class_init (GtkCalendarClass *class)
   widget_class->drag_drop = gtk_calendar_drag_drop;
   widget_class->drag_data_received = gtk_calendar_drag_data_received;
 
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_CALENDAR);
+
   /**
    * GtkCalendar:year:
    *
index cc2cbb0eda9b714708ab16dc7ca3fd27643c4a97..523037be0790c26e3959ef81736c882cfd139b2a 100644 (file)
@@ -87,17 +87,9 @@ G_DEFINE_TYPE (GtkCellAreaContext, gtk_cell_area_context, G_TYPE_OBJECT);
 static void
 gtk_cell_area_context_init (GtkCellAreaContext *context)
 {
-  GtkCellAreaContextPrivate *priv;
-
   context->priv = G_TYPE_INSTANCE_GET_PRIVATE (context,
                                                GTK_TYPE_CELL_AREA_CONTEXT,
                                                GtkCellAreaContextPrivate);
-  priv = context->priv;
-
-  priv->min_width  = -1;
-  priv->nat_width  = -1;
-  priv->min_height = -1;
-  priv->nat_height = -1;
 }
 
 static void
@@ -289,27 +281,27 @@ gtk_cell_area_context_real_reset (GtkCellAreaContext *context)
 
   g_object_freeze_notify (G_OBJECT (context));
 
-  if (priv->min_width != -1)
+  if (priv->min_width != 0)
     {
-      priv->min_width = -1;
+      priv->min_width = 0;
       g_object_notify (G_OBJECT (context), "minimum-width");
     }
 
-  if (priv->nat_width != -1)
+  if (priv->nat_width != 0)
     {
-      priv->nat_width = -1;
+      priv->nat_width = 0;
       g_object_notify (G_OBJECT (context), "natural-width");
     }
 
-  if (priv->min_height != -1)
+  if (priv->min_height != 0)
     {
-      priv->min_height = -1;
+      priv->min_height = 0;
       g_object_notify (G_OBJECT (context), "minimum-height");
     }
 
-  if (priv->nat_height != -1)
+  if (priv->nat_height != 0)
     {
-      priv->nat_height = -1;
+      priv->nat_height = 0;
       g_object_notify (G_OBJECT (context), "natural-height");
     }
 
@@ -444,7 +436,7 @@ gtk_cell_area_context_allocate (GtkCellAreaContext *context,
  * requested with this context.
  *
  * After gtk_cell_area_context_reset() is called and/or before ever
- * requesting the size of a #GtkCellArea, the returned values are -1.
+ * requesting the size of a #GtkCellArea, the returned values are 0.
  *
  * Since: 3.0
  */
@@ -478,7 +470,7 @@ gtk_cell_area_context_get_preferred_width (GtkCellAreaContext *context,
  * requested with this context.
  *
  * After gtk_cell_area_context_reset() is called and/or before ever
- * requesting the size of a #GtkCellArea, the returned values are -1.
+ * requesting the size of a #GtkCellArea, the returned values are 0.
  *
  * Since: 3.0
  */
index 9ceb6b1b28fe09cdbdc466bff03c8d531cd5b90d..3b8b950b82bacf5d943f30127918609f05e3f786 100644 (file)
@@ -87,6 +87,8 @@ gtk_check_button_class_init (GtkCheckButtonClass *class)
 
   class->draw_indicator = gtk_real_check_button_draw_indicator;
 
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_CHECK_BOX);
+
   gtk_widget_class_install_style_property (widget_class,
                                           g_param_spec_int ("indicator-size",
                                                             P_("Indicator Size"),
index 614e15d95bd721f1f9c50723e6e8a8a418a860d4..5c6f5f0801f79d1325812f31b0913cb9f8954ef8 100644 (file)
@@ -33,7 +33,7 @@
 #include "gtkmarshalers.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
-
+#include "a11y/gtkcheckmenuitemaccessible.h"
 
 /**
  * SECTION:gtkcheckmenuitem
@@ -150,7 +150,9 @@ gtk_check_menu_item_class_init (GtkCheckMenuItemClass *klass)
                                                              GTK_PARAM_READABLE));
 
   widget_class->draw = gtk_check_menu_item_draw;
-  
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_CHECK_MENU_ITEM_ACCESSIBLE);
+
   menu_item_class->activate = gtk_check_menu_item_activate;
   menu_item_class->hide_on_activate = FALSE;
   menu_item_class->toggle_size_request = gtk_check_menu_item_toggle_size_request;
index a77d44379f316d3216b83c9cdb826f988c856adf..ee7766e799b789ea268f07384c8df67a2fcc09de 100644 (file)
@@ -110,9 +110,10 @@ struct _GtkClipboardClass
       clipboard->get_func (clipboard, &selection_data,
                            info,
                            clipboard->user_data);
-      _gtk_quartz_set_selection_data_for_pasteboard (clipboard->pasteboard,
-                                                     &selection_data);
+
+      if (selection_data.length >= 0)
+        _gtk_quartz_set_selection_data_for_pasteboard (clipboard->pasteboard,
+                                                       &selection_data);
 
       g_free (selection_data.data);
     }
index 2d311110815807190261b85c5255bf390597f55e..627efa97c303079420330650811a4709fb8e66f6 100644 (file)
@@ -126,6 +126,8 @@ static void
 gtk_color_selection_dialog_class_init (GtkColorSelectionDialogClass *klass)
 {
   GObjectClass   *gobject_class = G_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
   gobject_class->get_property = gtk_color_selection_dialog_get_property;
 
   g_object_class_install_property (gobject_class,
@@ -157,6 +159,8 @@ gtk_color_selection_dialog_class_init (GtkColorSelectionDialogClass *klass)
                                                     GTK_TYPE_WIDGET,
                                                     G_PARAM_READABLE));
 
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_COLOR_CHOOSER);
+
   g_type_class_add_private (klass, sizeof (GtkColorSelectionDialogPrivate));
 }
 
index 8a74f8f1a68b51495abe942ca2ee061170ff2fd8..38b064bc8ff7d8270a30acc63862571136de4df2 100644 (file)
@@ -53,6 +53,7 @@
 
 #include "gtkentryprivate.h"
 #include "gtktreeprivate.h"
+#include "a11y/gtkcomboboxaccessible.h"
 
 
 /**
@@ -1005,6 +1006,8 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
                                                               GTK_PARAM_READABLE));
 
   g_type_class_add_private (object_class, sizeof (GtkComboBoxPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_COMBO_BOX_ACCESSIBLE);
 }
 
 static void
index 66e7a0c21d6fd45fc9dd3143f6b03c2a35064e1d..229fcf6e1f94d90b6933d853bf0a95c22a3b3af5 100644 (file)
@@ -45,9 +45,9 @@
 #include "gtksizerequest.h"
 #include "gtkwidgetprivate.h"
 #include "gtkwindow.h"
+#include "gtkassistant.h"
 #include "gtkintl.h"
-#include "gtktoolbar.h"
-
+#include "a11y/gtkcontaineraccessible.h"
 
 /**
  * SECTION:gtkcontainer
@@ -512,6 +512,8 @@ gtk_container_class_init (GtkContainerClass *class)
                   GTK_TYPE_WIDGET);
 
   g_type_class_add_private (class, sizeof (GtkContainerPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_CONTAINER_ACCESSIBLE);
 }
 
 static void
@@ -1530,7 +1532,7 @@ gtk_container_remove (GtkContainer *container,
 {
   g_return_if_fail (GTK_IS_CONTAINER (container));
   g_return_if_fail (GTK_IS_WIDGET (widget));
-  g_return_if_fail (gtk_widget_get_parent (widget) == GTK_WIDGET (container));
+  g_return_if_fail (gtk_widget_get_parent (widget) == GTK_WIDGET (container) || GTK_IS_ASSISTANT (container));
 
   g_signal_emit (container, container_signals[REMOVE], 0, widget);
 }
index 1b2710d047731e85ccefeb115bcee2840d04eab8..e9fe6a4fdb795c8a38c701ea2435dcddf038412e 100644 (file)
@@ -662,7 +662,7 @@ gtk_css_parser_read_symbolic_color_function (GtkCssParser *parser,
           child2 = _gtk_css_parser_read_symbolic_color (parser);
           if (child2 == NULL)
             {
-              g_object_unref (child1);
+              gtk_symbolic_color_unref (child1);
               return NULL;
             }
         }
index 4be5b7516ba43925ffa2a6c9e248e796960f5c8f..984618541e82ac0200f693cc053bcdcc04479694 100644 (file)
@@ -1670,7 +1670,10 @@ parse_import (GtkCssScanner *scanner)
   GFile *file;
   char *uri;
 
-  uri = _gtk_css_parser_read_uri (scanner->parser);
+  if (_gtk_css_parser_is_string (scanner->parser))
+    uri = _gtk_css_parser_read_string (scanner->parser);
+  else
+    uri = _gtk_css_parser_read_uri (scanner->parser);
   if (uri == NULL)
     {
       _gtk_css_parser_resync (scanner->parser, TRUE, 0);
@@ -1800,7 +1803,15 @@ parse_binding_set (GtkCssScanner *scanner)
           continue;
         }
 
-      gtk_binding_entry_add_signal_from_string (binding_set, name);
+      if (gtk_binding_entry_add_signal_from_string (binding_set, name) != G_TOKEN_NONE)
+        {
+          gtk_css_provider_error_literal (scanner->provider,
+                                          scanner,
+                                          GTK_CSS_PROVIDER_ERROR,
+                                          GTK_CSS_PROVIDER_ERROR_SYNTAX,
+                                          "Failed to parse binding set.");
+        }
+
       g_free (name);
 
       if (!_gtk_css_parser_try (scanner->parser, ";", TRUE))
@@ -1830,12 +1841,15 @@ parse_binding_set (GtkCssScanner *scanner)
     }
 
 skip_semicolon:
-  if (_gtk_css_parser_try (scanner->parser, ";", TRUE))
-    gtk_css_provider_error_literal (scanner->provider,
-                                    scanner,
-                                    GTK_CSS_PROVIDER_ERROR,
-                                    GTK_CSS_PROVIDER_ERROR_DEPRECATED,
-                                    "Nonstandard semicolon at end of binding set");
+  if (_gtk_css_parser_begins_with (scanner->parser, ';'))
+    {
+      gtk_css_provider_error_literal (scanner->provider,
+                                      scanner,
+                                      GTK_CSS_PROVIDER_ERROR,
+                                      GTK_CSS_PROVIDER_ERROR_DEPRECATED,
+                                      "Nonstandard semicolon at end of binding set");
+      _gtk_css_parser_try (scanner->parser, ";", TRUE);
+    }
 }
 
 static void
@@ -1916,8 +1930,8 @@ parse_selector_pseudo_class (GtkCssScanner  *scanner,
     GtkRegionFlags region_flag;
     GtkStateFlags state_flag;
   } pseudo_classes[] = {
-    { "first",        GTK_REGION_FIRST, 0 },
-    { "last",         GTK_REGION_LAST, 0 },
+    { "first-child",  GTK_REGION_FIRST, 0 },
+    { "last-child",   GTK_REGION_LAST, 0 },
     { "sorted",       GTK_REGION_SORTED, 0 },
     { "active",       0, GTK_STATE_FLAG_ACTIVE },
     { "prelight",     0, GTK_STATE_FLAG_PRELIGHT },
index 931ac617fe592295e57d0b94896c029e02632f05..5dfb7791bb4097c77904a0456585d36b88ba52e4 100644 (file)
@@ -241,6 +241,8 @@ gtk_dialog_class_init (GtkDialogClass *class)
   widget_class->map = gtk_dialog_map;
   widget_class->style_updated = gtk_dialog_style_updated;
 
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_DIALOG);
+
   class->close = gtk_dialog_close;
 
   g_type_class_add_private (gobject_class, sizeof (GtkDialogPrivate));
index dced9a39de89b93f3f1979933bedbfa328484a48..49db14e91e0a185e1263f388668060625e475ecb 100644 (file)
@@ -147,6 +147,7 @@ struct _GtkDragFindData
   selection_data.data = NULL;
   selection_data.length = -1;
   selection_data.target = _gtk_quartz_pasteboard_type_to_atom (type);
+  selection_data.display = gdk_display_get_default ();
 
   if (gtk_target_list_find (info->target_list, 
                            selection_data.target, 
@@ -1110,6 +1111,7 @@ gtk_drag_begin_internal (GtkWidget         *widget,
 {
   GtkDragSourceInfo *info;
   GdkDragContext *context;
+  GdkDevice *pointer;
   NSWindow *nswindow;
 
   context = gdk_drag_begin (gtk_widget_get_window (widget), NULL);
@@ -1166,7 +1168,8 @@ gtk_drag_begin_internal (GtkWidget         *widget,
 
   g_idle_add_full (G_PRIORITY_HIGH_IDLE, gtk_drag_begin_idle, context, NULL);
 
-  gdk_pointer_ungrab (0);
+  pointer = gdk_drag_context_get_device (info->context);
+  gdk_device_ungrab (pointer, 0);
 
   return context;
 }
index 8e1b7ec43c4bfaa695661d3828b825dc6c6f3776..e58b1071f3ae75e6bfe6540a528ca1e3eb959909 100644 (file)
@@ -67,6 +67,8 @@
 #include "gtkwidgetprivate.h"
 #include "gtkstylecontextprivate.h"
 
+#include "a11y/gtkentryaccessible.h"
+
 /**
  * SECTION:gtkentry
  * @Short_description: A single line text entry field
@@ -1870,6 +1872,8 @@ gtk_entry_class_init (GtkEntryClass *class)
                                                                GTK_PARAM_READABLE)); 
 
   g_type_class_add_private (gobject_class, sizeof (GtkEntryPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_ENTRY_ACCESSIBLE);
 }
 
 static void
@@ -4644,8 +4648,14 @@ gtk_entry_real_insert_text (GtkEditable *editable,
    * following signal handlers: buffer_inserted_text(), buffer_notify_display_text(),
    * buffer_notify_text(), buffer_notify_length()
    */
+  begin_change (GTK_ENTRY (editable));
+  g_object_freeze_notify (G_OBJECT (editable));
+
   n_inserted = gtk_entry_buffer_insert_text (get_buffer (GTK_ENTRY (editable)), *position, new_text, n_chars);
 
+  g_object_thaw_notify (G_OBJECT (editable));
+  end_change (GTK_ENTRY (editable));
+
   if (n_inserted != n_chars)
       gtk_widget_error_bell (GTK_WIDGET (editable));
 
@@ -4663,7 +4673,11 @@ gtk_entry_real_delete_text (GtkEditable *editable,
    * buffer_notify_text(), buffer_notify_length()
    */
 
+  begin_change (GTK_ENTRY (editable));
+  g_object_freeze_notify (G_OBJECT (editable));
   gtk_entry_buffer_delete_text (get_buffer (GTK_ENTRY (editable)), start_pos, end_pos - start_pos);
+  g_object_thaw_notify (G_OBJECT (editable));
+  end_change (GTK_ENTRY (editable));
 }
 
 /* GtkEntryBuffer signal handlers
@@ -4677,12 +4691,18 @@ buffer_inserted_text (GtkEntryBuffer *buffer,
 {
   GtkEntryPrivate *priv = entry->priv;
   guint password_hint_timeout;
+  guint current_pos;
+  gint selection_bound;
 
-  if (priv->current_pos > position)
-    priv->current_pos += n_chars;
+  current_pos = priv->current_pos;
+  if (current_pos > position)
+    current_pos += n_chars;
+
+  selection_bound = priv->selection_bound;
+  if (selection_bound > position)
+    selection_bound += n_chars;
 
-  if (priv->selection_bound > position)
-    priv->selection_bound += n_chars;
+  gtk_entry_set_positions (entry, current_pos, selection_bound);
 
   /* Calculate the password hint if it needs to be displayed. */
   if (n_chars == 1 && !priv->visible)
index 2c33a1ac158f528e561f12b5c3c2c366545a110f..643edaef201fee80c191cdbf2a79f677b395870f 100644 (file)
 #include "gtkintl.h"
 #include "gtkprivate.h"
 #include "gtkdnd.h"
+#include "a11y/gtkexpanderaccessible.h"
 
 
 #define DEFAULT_EXPANDER_SIZE 10
@@ -375,6 +376,8 @@ gtk_expander_class_init (GtkExpanderClass *klass)
                   NULL, NULL,
                   _gtk_marshal_VOID__VOID,
                   G_TYPE_NONE, 0);
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_EXPANDER_ACCESSIBLE);
 }
 
 static void
index d24c3c110b7ee5bf53eec68af9c71e64848f0e82..15c00996f19e85237d2d7e08cb97655c44696533 100644 (file)
@@ -1455,7 +1455,6 @@ get_file_info_finished (GCancellable *cancellable,
                        const GError *error,
                        gpointer      data)
 {
-  gint pos = -1;
   gboolean cancelled = g_cancellable_is_cancelled (cancellable);
   GdkPixbuf *pixbuf;
   GtkTreePath *path;
@@ -1468,7 +1467,6 @@ get_file_info_finished (GCancellable *cancellable,
     /* Handle doesn't exist anymore in the model */
     goto out;
 
-  pos = gtk_tree_path_get_indices (path)[0];
   gtk_tree_model_get_iter (GTK_TREE_MODEL (request->impl->shortcuts_model),
                           &iter, path);
   gtk_tree_path_free (path);
@@ -6749,7 +6747,7 @@ file_system_model_set (GtkFileSystemModel *model,
       if (info == NULL || _gtk_file_info_consider_as_directory (info))
         g_value_set_string (value, NULL);
       else
-        g_value_take_string (value, g_format_size_for_display (g_file_info_get_size (info)));
+        g_value_take_string (value, g_format_size (g_file_info_get_size (info)));
       break;
     case MODEL_COL_MTIME:
     case MODEL_COL_MTIME_TEXT:
index 08dfc62d3ef570af9d324b208ff008c6ac5158b6..de61afdc2d1dafdd7047cdb2128ed6bbba0331f0 100644 (file)
  * <section id="gtkfilechooserdialog-setting-up">
  * <title>Setting up a file chooser dialog</title>
  * There are various cases in which you may need to use a #GtkFileChooserDialog:
- * <itemizedlist>
- *   <listitem>
- *     <para>
- *       To select a file for opening, as for a
- *       <guimenuitem>File/Open</guimenuitem> command.  Use
- *       #GTK_FILE_CHOOSER_ACTION_OPEN.
- *     </para>
- *   </listitem>
- *
- *   <listitem>
- *     <para>
- *       To save a file for the first time, as for a
- *       <guimenuitem>File/Save</guimenuitem> command.  Use
- *       #GTK_FILE_CHOOSER_ACTION_SAVE, and suggest a name such as
- *       "Untitled" with gtk_file_chooser_set_current_name().
- *     </para>
- *   </listitem>
- *
- *   <listitem>
- *     <para>
- *       To save a file under a different name, as for a
- *       <guimenuitem>File/Save As</guimenuitem> command.  Use
- *       #GTK_FILE_CHOOSER_ACTION_SAVE, and set the existing filename
- *       with gtk_file_chooser_set_filename().
- *     </para>
- *   </listitem>
- *
- *   <listitem>
- *     <para>
- *        To choose a folder instead of a file.  Use
- *        #GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
- *     </para>
- *   </listitem>
- * </itemizedlist>
+ * <itemizedlist><listitem>To select a file for opening, as for a
+ *   <guimenuitem>File/Open</guimenuitem> command.  Use
+ *   #GTK_FILE_CHOOSER_ACTION_OPEN.
+ * </listitem>
+ * <listitem>To save a file for the first time, as for a
+ *   <guimenuitem>File/Save</guimenuitem> command.  Use
+ *   #GTK_FILE_CHOOSER_ACTION_SAVE, and suggest a name such as
+ *   "Untitled" with gtk_file_chooser_set_current_name().
+ * </listitem>
+ * <listitem>To save a file under a different name, as for a
+ *   <guimenuitem>File/Save As</guimenuitem> command.  Use
+ *   #GTK_FILE_CHOOSER_ACTION_SAVE, and set the existing filename
+ *   with gtk_file_chooser_set_filename().
+ * </listitem>
+ * <listitem>To choose a folder instead of a file.  Use
+ *   #GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
+ * </listitem></itemizedlist>
  * <note>
  * <para>
  * Old versions of the file chooser's documentation suggested
  * considered to be a good policy, as now the file chooser is
  * able to make good suggestions on its own.  In general, you
  * should only cause the file chooser to show a specific folder
- * when it is appropriate to use gtk_file_chooser_set_filename()
- * i.e. when you are doing a <guimenuitem>File/Save
+ * when it is appropriate to use gtk_file_chooser_set_filename(),
+ * i.e. when you are doing a <guimenuitem>File/Save
  * As</guimenuitem> command <emphasis>and</emphasis> you already
  * have a file saved somewhere.
  * </para>
@@ -250,6 +233,8 @@ gtk_file_chooser_dialog_class_init (GtkFileChooserDialogClass *class)
 
   widget_class->map       = gtk_file_chooser_dialog_map;
 
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_FILE_CHOOSER);
+
   _gtk_file_chooser_install_properties (gobject_class);
 
   g_type_class_add_private (class, sizeof (GtkFileChooserDialogPrivate));
index f2162e8003973d775658555a74fb5a764a96b69b..5f2b4dacd62f5ff566358ee72ba1fd3bd3a08ba2 100644 (file)
@@ -1642,6 +1642,10 @@ static GtkBuildableIface *parent_buildable_iface;
 static void
 gtk_font_selection_dialog_class_init (GtkFontSelectionDialogClass *klass)
 {
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_FONT_CHOOSER);
+
   g_type_class_add_private (klass, sizeof (GtkFontSelectionDialogPrivate));
 }
 
index f63de8091e4dcefc2bb9ad8b495106f7c59e3dd7..07393dea2d878a2147f236be539743c6ebddce4d 100644 (file)
@@ -33,6 +33,7 @@
 #include "gtkintl.h"
 #include "gtkbuildable.h"
 
+#include "a11y/gtkframeaccessible.h"
 
 /**
  * SECTION:gtkframe
@@ -221,6 +222,8 @@ gtk_frame_class_init (GtkFrameClass *class)
   class->compute_child_allocation = gtk_frame_real_compute_child_allocation;
 
   g_type_class_add_private (class, sizeof (GtkFramePrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_FRAME_ACCESSIBLE);
 }
 
 static void
index 913f6dfdffc393654d89561df0f1aaba5497bfb7..ea133aaa58408f972c7919d981d0f89cef646128 100644 (file)
@@ -155,6 +155,8 @@ gtk_hsv_class_init (GtkHSVClass *class)
   widget_class->focus = gtk_hsv_focus;
   widget_class->grab_broken_event = gtk_hsv_grab_broken;
 
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_COLOR_CHOOSER);
+
   hsv_class->move = gtk_hsv_move;
 
   hsv_signals[CHANGED] =
@@ -1358,18 +1360,18 @@ gtk_hsv_get_color (GtkHSV *hsv,
                    double *s,
                    double *v)
 {
-  GtkHSVPrivate *priv = hsv->priv;
+  GtkHSVPrivate *priv;
 
   g_return_if_fail (GTK_IS_HSV (hsv));
 
   priv = hsv->priv;
-  
+
   if (h)
     *h = priv->h;
-  
+
   if (s)
     *s = priv->s;
-  
+
   if (v)
     *v = priv->v;
 }
@@ -1389,7 +1391,7 @@ gtk_hsv_set_metrics (GtkHSV *hsv,
                      gint    size,
                      gint    ring_width)
 {
-  GtkHSVPrivate *priv = hsv->priv;
+  GtkHSVPrivate *priv;
   int same_size;
 
   g_return_if_fail (GTK_IS_HSV (hsv));
@@ -1400,7 +1402,7 @@ gtk_hsv_set_metrics (GtkHSV *hsv,
   priv = hsv->priv;
 
   same_size = (priv->size == size);
-  
+
   priv->size = size;
   priv->ring_width = ring_width;
   
@@ -1425,7 +1427,7 @@ gtk_hsv_get_metrics (GtkHSV *hsv,
                      gint   *size,
                      gint   *ring_width)
 {
-  GtkHSVPrivate *priv = hsv->priv;
+  GtkHSVPrivate *priv;
 
   g_return_if_fail (GTK_IS_HSV (hsv));
 
@@ -1456,7 +1458,7 @@ gtk_hsv_get_metrics (GtkHSV *hsv,
 gboolean
 gtk_hsv_is_adjusting (GtkHSV *hsv)
 {
-  GtkHSVPrivate *priv = hsv->priv;
+  GtkHSVPrivate *priv;
 
   g_return_val_if_fail (GTK_IS_HSV (hsv), FALSE);
 
@@ -1618,3 +1620,4 @@ gtk_hsv_move (GtkHSV          *hsv,
   
   gtk_hsv_set_color (hsv, hue, sat, val);
 }
+
index b395f43f46f05ed8c305b6f9114d6f1c311eb7a0..456e4efdf3c7c5f10e825694b7a083b705809855 100644 (file)
@@ -23,7 +23,6 @@
 
 #include <atk/atk.h>
 
-#include "gtkaccessibleprivate.h"
 #include "gtkiconview.h"
 #include "gtkcelllayout.h"
 #include "gtkcellrenderer.h"
 #include "gtkwindow.h"
 #include "gtkentry.h"
 #include "gtkcombobox.h"
-#include "gtktextbuffer.h"
 #include "gtkscrollable.h"
 #include "gtksizerequest.h"
 #include "gtktreednd.h"
 #include "gtktypebuiltins.h"
 #include "gtkprivate.h"
+#include "gtkpango.h"
+#include "a11y/gtkcontaineraccessible.h"
 
 /**
  * SECTION:gtkiconview
@@ -273,7 +273,6 @@ static gboolean         gtk_icon_view_key_press                 (GtkWidget
                                                                 GdkEventKey        *event);
 static gboolean         gtk_icon_view_key_release               (GtkWidget          *widget,
                                                                 GdkEventKey        *event);
-static AtkObject       *gtk_icon_view_get_accessible            (GtkWidget          *widget);
 
 
 /* GtkContainer vfuncs */
@@ -447,6 +446,7 @@ static void     gtk_icon_view_buildable_custom_tag_end   (GtkBuildable  *buildab
                                                          GObject       *child,
                                                          const gchar   *tagname,
                                                          gpointer      *data);
+static GType    _gtk_icon_view_accessible_get_type       (void);
 
 static guint icon_view_signals[LAST_SIGNAL] = { 0 };
 
@@ -482,7 +482,6 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
   widget_class->realize = gtk_icon_view_realize;
   widget_class->unrealize = gtk_icon_view_unrealize;
   widget_class->style_updated = gtk_icon_view_style_updated;
-  widget_class->get_accessible = gtk_icon_view_get_accessible;
   widget_class->get_preferred_width = gtk_icon_view_get_preferred_width;
   widget_class->get_preferred_height = gtk_icon_view_get_preferred_height;
   widget_class->size_allocate = gtk_icon_view_size_allocate;
@@ -1046,6 +1045,8 @@ gtk_icon_view_class_init (GtkIconViewClass *klass)
                                  GTK_MOVEMENT_VISUAL_POSITIONS, 1);
   gtk_icon_view_add_move_binding (binding_set, GDK_KEY_KP_Left, 0, 
                                  GTK_MOVEMENT_VISUAL_POSITIONS, -1);
+
+  gtk_widget_class_set_accessible_type (widget_class, _gtk_icon_view_accessible_get_type ());
 }
 
 static void
@@ -2950,11 +2951,17 @@ gtk_icon_view_paint_item (GtkIconView     *icon_view,
       flags |= GTK_CELL_RENDERER_SELECTED;
 
       gtk_style_context_set_state (style_context, state);
+
       gtk_render_background (style_context, cr,
                              x - icon_view->priv->item_padding,
                              y - icon_view->priv->item_padding,
                              item->cell_area.width  + icon_view->priv->item_padding * 2,
                              item->cell_area.height + icon_view->priv->item_padding * 2);
+      gtk_render_frame (style_context, cr,
+                        x - icon_view->priv->item_padding,
+                        y - icon_view->priv->item_padding,
+                        item->cell_area.width  + icon_view->priv->item_padding * 2,
+                        item->cell_area.height + icon_view->priv->item_padding * 2);
     }
 
   cell_area.x      = x;
@@ -7033,55 +7040,55 @@ gtk_icon_view_set_reorderable (GtkIconView *icon_view,
   g_object_notify (G_OBJECT (icon_view), "reorderable");
 }
 
+static gboolean
+gtk_icon_view_buildable_custom_tag_start (GtkBuildable  *buildable,
+                                          GtkBuilder    *builder,
+                                          GObject       *child,
+                                          const gchar   *tagname,
+                                          GMarkupParser *parser,
+                                          gpointer      *data)
+{
+  if (parent_buildable_iface->custom_tag_start (buildable, builder, child,
+                                                tagname, parser, data))
+    return TRUE;
 
-/* Accessibility Support */
+  return _gtk_cell_layout_buildable_custom_tag_start (buildable, builder, child,
+                                                      tagname, parser, data);
+}
 
-static gpointer accessible_parent_class;
-static gpointer accessible_item_parent_class;
-static GQuark accessible_private_data_quark = 0;
+static void
+gtk_icon_view_buildable_custom_tag_end (GtkBuildable *buildable,
+                                        GtkBuilder   *builder,
+                                        GObject      *child,
+                                        const gchar  *tagname,
+                                        gpointer     *data)
+{
+  if (!_gtk_cell_layout_buildable_custom_tag_end (buildable, builder,
+                                                  child, tagname, data))
+    parent_buildable_iface->custom_tag_end (buildable, builder,
+                                            child, tagname, data);
+}
+
+/* Accessibility Support */
 
-#define GTK_TYPE_ICON_VIEW_ITEM_ACCESSIBLE      (gtk_icon_view_item_accessible_get_type ())
+#define GTK_TYPE_ICON_VIEW_ITEM_ACCESSIBLE      (_gtk_icon_view_item_accessible_get_type ())
 #define GTK_ICON_VIEW_ITEM_ACCESSIBLE(obj)      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ICON_VIEW_ITEM_ACCESSIBLE, GtkIconViewItemAccessible))
 #define GTK_IS_ICON_VIEW_ITEM_ACCESSIBLE(obj)   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ICON_VIEW_ITEM_ACCESSIBLE))
 
-static GType gtk_icon_view_item_accessible_get_type (void);
-
-enum {
-    ACTION_ACTIVATE,
-    LAST_ACTION
-};
-
 typedef struct
 {
   AtkObject parent;
 
   GtkIconViewItem *item;
-
   GtkWidget *widget;
-
   AtkStateSet *state_set;
-
   gchar *text;
-
-  GtkTextBuffer *text_buffer;
-
-  gchar *action_descriptions[LAST_ACTION];
+  gchar *action_description;
   gchar *image_description;
   guint action_idle_handler;
 } GtkIconViewItemAccessible;
 
-static const gchar *const gtk_icon_view_item_accessible_action_names[] = 
-{
-  "activate",
-  NULL
-};
-
-static const gchar *const gtk_icon_view_item_accessible_action_descriptions[] =
-{
-  "Activate item",
-  NULL
-};
-typedef struct _GtkIconViewItemAccessibleClass
+typedef struct
 {
   AtkObjectClass parent_class;
 
@@ -7089,8 +7096,20 @@ typedef struct _GtkIconViewItemAccessibleClass
 
 static gboolean gtk_icon_view_item_accessible_is_showing (GtkIconViewItemAccessible *item);
 
+static void atk_component_item_interface_init (AtkComponentIface *iface);
+static void atk_action_item_interface_init    (AtkActionIface    *iface);
+static void atk_text_item_interface_init      (AtkTextIface      *iface);
+static void atk_image_item_interface_init     (AtkImageIface     *iface);
+
+G_DEFINE_TYPE_WITH_CODE (GtkIconViewItemAccessible, _gtk_icon_view_item_accessible, ATK_TYPE_OBJECT,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_item_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_item_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_item_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_item_interface_init))
+
+
 static gboolean
-gtk_icon_view_item_accessible_idle_do_action (gpointer data)
+idle_do_action (gpointer data)
 {
   GtkIconViewItemAccessible *item;
   GtkIconView *icon_view;
@@ -7111,12 +7130,12 @@ gtk_icon_view_item_accessible_idle_do_action (gpointer data)
 }
 
 static gboolean
-gtk_icon_view_item_accessible_action_do_action (AtkAction *action,
-                                                gint       i)
+gtk_icon_view_item_accessible_do_action (AtkAction *action,
+                                         gint       i)
 {
   GtkIconViewItemAccessible *item;
 
-  if (i < 0 || i >= LAST_ACTION) 
+  if (i != 0)
     return FALSE;
 
   item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (action);
@@ -7127,68 +7146,59 @@ gtk_icon_view_item_accessible_action_do_action (AtkAction *action,
   if (atk_state_set_contains_state (item->state_set, ATK_STATE_DEFUNCT))
     return FALSE;
 
-  switch (i)
-    {
-    case ACTION_ACTIVATE:
-      if (!item->action_idle_handler)
-        item->action_idle_handler = gdk_threads_add_idle (gtk_icon_view_item_accessible_idle_do_action, item);
-      break;
-    default:
-      g_assert_not_reached ();
-      return FALSE;
+  if (!item->action_idle_handler)
+    item->action_idle_handler = gdk_threads_add_idle (idle_do_action, item);
 
-    }        
   return TRUE;
 }
 
 static gint
-gtk_icon_view_item_accessible_action_get_n_actions (AtkAction *action)
+gtk_icon_view_item_accessible_get_n_actions (AtkAction *action)
 {
-        return LAST_ACTION;
+        return 1;
 }
 
 static const gchar *
-gtk_icon_view_item_accessible_action_get_description (AtkAction *action,
-                                                      gint       i)
+gtk_icon_view_item_accessible_get_description (AtkAction *action,
+                                               gint       i)
 {
   GtkIconViewItemAccessible *item;
 
-  if (i < 0 || i >= LAST_ACTION) 
+  if (i != 0)
     return NULL;
 
   item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (action);
 
-  if (item->action_descriptions[i])
-    return item->action_descriptions[i];
+  if (item->action_description)
+    return item->action_description;
   else
-    return gtk_icon_view_item_accessible_action_descriptions[i];
+    return "Activate item";
 }
 
 static const gchar *
-gtk_icon_view_item_accessible_action_get_name (AtkAction *action,
-                                               gint       i)
+gtk_icon_view_item_accessible_get_name (AtkAction *action,
+                                        gint       i)
 {
-  if (i < 0 || i >= LAST_ACTION) 
+  if (i != 0)
     return NULL;
 
-  return gtk_icon_view_item_accessible_action_names[i];
+  return "activate";
 }
 
 static gboolean
-gtk_icon_view_item_accessible_action_set_description (AtkAction   *action,
-                                                      gint         i,
-                                                      const gchar *description)
+gtk_icon_view_item_accessible_set_description (AtkAction   *action,
+                                               gint         i,
+                                               const gchar *description)
 {
   GtkIconViewItemAccessible *item;
 
-  if (i < 0 || i >= LAST_ACTION) 
+  if (i != 0)
     return FALSE;
 
   item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (action);
 
-  g_free (item->action_descriptions[i]);
-
-  item->action_descriptions[i] = g_strdup (description);
+  g_free (item->action_description);
+  item->action_description = g_strdup (description);
 
   return TRUE;
 }
@@ -7196,15 +7206,15 @@ gtk_icon_view_item_accessible_action_set_description (AtkAction   *action,
 static void
 atk_action_item_interface_init (AtkActionIface *iface)
 {
-  iface->do_action = gtk_icon_view_item_accessible_action_do_action;
-  iface->get_n_actions = gtk_icon_view_item_accessible_action_get_n_actions;
-  iface->get_description = gtk_icon_view_item_accessible_action_get_description;
-  iface->get_name = gtk_icon_view_item_accessible_action_get_name;
-  iface->set_description = gtk_icon_view_item_accessible_action_set_description;
+  iface->do_action = gtk_icon_view_item_accessible_do_action;
+  iface->set_description = gtk_icon_view_item_accessible_set_description;
+  iface->get_name = gtk_icon_view_item_accessible_get_name;
+  iface->get_n_actions = gtk_icon_view_item_accessible_get_n_actions;
+  iface->get_description = gtk_icon_view_item_accessible_get_description;
 }
 
 static const gchar *
-gtk_icon_view_item_accessible_image_get_image_description (AtkImage *image)
+gtk_icon_view_item_accessible_get_image_description (AtkImage *image)
 {
   GtkIconViewItemAccessible *item;
 
@@ -7214,8 +7224,8 @@ gtk_icon_view_item_accessible_image_get_image_description (AtkImage *image)
 }
 
 static gboolean
-gtk_icon_view_item_accessible_image_set_image_description (AtkImage    *image,
-                                                           const gchar *description)
+gtk_icon_view_item_accessible_set_image_description (AtkImage    *image,
+                                                     const gchar *description)
 {
   GtkIconViewItemAccessible *item;
 
@@ -7232,11 +7242,11 @@ typedef struct {
   gboolean     pixbuf_found;
 } GetPixbufBoxData;
 
-static gboolean 
+static gboolean
 get_pixbuf_foreach (GtkCellRenderer    *renderer,
-                   const GdkRectangle *cell_area,
-                   const GdkRectangle *cell_background,
-                   GetPixbufBoxData   *data)
+                    const GdkRectangle *cell_area,
+                    const GdkRectangle *cell_background,
+                    GetPixbufBoxData   *data)
 {
   if (GTK_IS_CELL_RENDERER_PIXBUF (renderer))
     {
@@ -7248,8 +7258,8 @@ get_pixbuf_foreach (GtkCellRenderer    *renderer,
 
 static gboolean
 get_pixbuf_box (GtkIconView     *icon_view,
-               GtkIconViewItem *item,
-               GdkRectangle    *box)
+                GtkIconViewItem *item,
+                GdkRectangle    *box)
 {
   GetPixbufBoxData data = { { 0, }, FALSE };
   GtkCellAreaContext *context;
@@ -7258,21 +7268,20 @@ get_pixbuf_box (GtkIconView     *icon_view,
 
   gtk_icon_view_set_cell_data (icon_view, item);
   gtk_cell_area_foreach_alloc (icon_view->priv->cell_area, context,
-                              GTK_WIDGET (icon_view),
-                              (GdkRectangle *)item, (GdkRectangle *)item,
-                              (GtkCellAllocCallback)get_pixbuf_foreach, &data);
+                               GTK_WIDGET (icon_view),
+                               (GdkRectangle *)item, (GdkRectangle *)item,
+                               (GtkCellAllocCallback)get_pixbuf_foreach, &data);
 
   return data.pixbuf_found;
 }
 
-static gboolean 
-get_text_foreach (GtkCellRenderer    *renderer,
-                 gchar             **text)
+static gboolean
+get_text_foreach (GtkCellRenderer  *renderer,
+                  gchar           **text)
 {
   if (GTK_IS_CELL_RENDERER_TEXT (renderer))
     {
       g_object_get (renderer, "text", text, NULL);
-
       return TRUE;
     }
   return FALSE;
@@ -7280,21 +7289,21 @@ get_text_foreach (GtkCellRenderer    *renderer,
 
 static gchar *
 get_text (GtkIconView     *icon_view,
-         GtkIconViewItem *item)
+          GtkIconViewItem *item)
 {
   gchar *text = NULL;
 
   gtk_icon_view_set_cell_data (icon_view, item);
   gtk_cell_area_foreach (icon_view->priv->cell_area,
-                        (GtkCellCallback)get_text_foreach, &text);
+                         (GtkCellCallback)get_text_foreach, &text);
 
   return text;
 }
 
 static void
-gtk_icon_view_item_accessible_image_get_image_size (AtkImage *image,
-                                                    gint     *width,
-                                                    gint     *height)
+gtk_icon_view_item_accessible_get_image_size (AtkImage *image,
+                                              gint     *width,
+                                              gint     *height)
 {
   GtkIconViewItemAccessible *item;
   GdkRectangle box;
@@ -7310,15 +7319,15 @@ gtk_icon_view_item_accessible_image_get_image_size (AtkImage *image,
   if (get_pixbuf_box (GTK_ICON_VIEW (item->widget), item->item, &box))
     {
       *width = box.width;
-      *height = box.height;  
+      *height = box.height;
     }
 }
 
 static void
-gtk_icon_view_item_accessible_image_get_image_position (AtkImage    *image,
-                                                        gint        *x,
-                                                        gint        *y,
-                                                        AtkCoordType coord_type)
+gtk_icon_view_item_accessible_get_image_position (AtkImage    *image,
+                                                  gint        *x,
+                                                  gint        *y,
+                                                  AtkCoordType coord_type)
 {
   GtkIconViewItemAccessible *item;
   GdkRectangle box;
@@ -7344,553 +7353,153 @@ gtk_icon_view_item_accessible_image_get_image_position (AtkImage    *image,
 static void
 atk_image_item_interface_init (AtkImageIface *iface)
 {
-  iface->get_image_description = gtk_icon_view_item_accessible_image_get_image_description;
-  iface->set_image_description = gtk_icon_view_item_accessible_image_set_image_description;
-  iface->get_image_size = gtk_icon_view_item_accessible_image_get_image_size;
-  iface->get_image_position = gtk_icon_view_item_accessible_image_get_image_position;
+  iface->get_image_description = gtk_icon_view_item_accessible_get_image_description;
+  iface->set_image_description = gtk_icon_view_item_accessible_set_image_description;
+  iface->get_image_size = gtk_icon_view_item_accessible_get_image_size;
+  iface->get_image_position = gtk_icon_view_item_accessible_get_image_position;
 }
 
 static gchar *
-gtk_icon_view_item_accessible_text_get_text (AtkText *text,
-                                             gint     start_pos,
-                                             gint     end_pos)
+gtk_icon_view_item_accessible_get_text (AtkText *text,
+                                        gint     start_pos,
+                                        gint     end_pos)
 {
   GtkIconViewItemAccessible *item;
-  GtkTextIter start, end;
-  GtkTextBuffer *buffer;
 
   item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (text);
-
-  if (!GTK_IS_ICON_VIEW (item->widget))
-    return NULL;
-
   if (atk_state_set_contains_state (item->state_set, ATK_STATE_DEFUNCT))
     return NULL;
 
-  buffer = item->text_buffer;
-  gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos);
-  if (end_pos < 0)
-    gtk_text_buffer_get_end_iter (buffer, &end);
+  if (item->text)
+    return g_utf8_substring (item->text, start_pos, end_pos > -1 ? end_pos : g_utf8_strlen (item->text, -1));
   else
-    gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos);
-
-  return gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+    return g_strdup ("");
 }
 
 static gunichar
-gtk_icon_view_item_accessible_text_get_character_at_offset (AtkText *text,
-                                                            gint     offset)
+gtk_icon_view_item_accessible_get_character_at_offset (AtkText *text,
+                                                       gint     offset)
 {
   GtkIconViewItemAccessible *item;
-  GtkTextIter start, end;
-  GtkTextBuffer *buffer;
   gchar *string;
-  gunichar unichar;
+  gchar *index;
 
   item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (text);
-
-  if (!GTK_IS_ICON_VIEW (item->widget))
+  if (atk_state_set_contains_state (item->state_set, ATK_STATE_DEFUNCT))
     return '\0';
 
-  if (atk_state_set_contains_state (item->state_set, ATK_STATE_DEFUNCT))
+  string = item->text;
+
+  if (!string)
     return '\0';
 
-  buffer = item->text_buffer;
-  if (offset >= gtk_text_buffer_get_char_count (buffer))
+  if (offset >= g_utf8_strlen (string, -1))
     return '\0';
 
-  gtk_text_buffer_get_iter_at_offset (buffer, &start, offset);
-  end = start;
-  gtk_text_iter_forward_char (&end);
-  string = gtk_text_buffer_get_slice (buffer, &start, &end, FALSE);
-  unichar = g_utf8_get_char (string);
-  g_free(string);
+  index = g_utf8_offset_to_pointer (string, offset);
 
-  return unichar;
+  return g_utf8_get_char (index);
 }
 
-#if 0
-static void
-get_pango_text_offsets (PangoLayout     *layout,
-                        GtkTextBuffer   *buffer,
-                        gint             function,
-                        AtkTextBoundary  boundary_type,
-                        gint             offset,
-                        gint            *start_offset,
-                        gint            *end_offset,
-                        GtkTextIter     *start_iter,
-                        GtkTextIter     *end_iter)
-{
-  PangoLayoutIter *iter;
-  PangoLayoutLine *line, *prev_line = NULL, *prev_prev_line = NULL;
-  gint index, start_index, end_index;
-  const gchar *text;
-  gboolean found = FALSE;
-
-  text = pango_layout_get_text (layout);
-  index = g_utf8_offset_to_pointer (text, offset) - text;
-  iter = pango_layout_get_iter (layout);
-  do
-    {
-      line = pango_layout_iter_get_line_readonly (iter);
-      start_index = line->start_index;
-      end_index = start_index + line->length;
+static PangoLayout *
+create_pango_layout (GtkIconViewItemAccessible *item)
+{
+  PangoLayout *layout;
 
-      if (index >= start_index && index <= end_index)
-        {
-          /*
-           * Found line for offset
-           */
-          switch (function)
-            {
-            case 0:
-                  /*
-                   * We want the previous line
-                   */
-              if (prev_line)
-                {
-                  switch (boundary_type)
-                    {
-                    case ATK_TEXT_BOUNDARY_LINE_START:
-                      end_index = start_index;
-                      start_index = prev_line->start_index;
-                      break;
-                    case ATK_TEXT_BOUNDARY_LINE_END:
-                      if (prev_prev_line)
-                        start_index = prev_prev_line->start_index + 
-                                  prev_prev_line->length;
-                      end_index = prev_line->start_index + prev_line->length;
-                      break;
-                    default:
-                      g_assert_not_reached();
-                    }
-                }
-              else
-                start_index = end_index = 0;
-              break;
-            case 1:
-              switch (boundary_type)
-                {
-                case ATK_TEXT_BOUNDARY_LINE_START:
-                  if (pango_layout_iter_next_line (iter))
-                    end_index = pango_layout_iter_get_line_readonly (iter)->start_index;
-                  break;
-                case ATK_TEXT_BOUNDARY_LINE_END:
-                  if (prev_line)
-                    start_index = prev_line->start_index + 
-                                  prev_line->length;
-                  break;
-                default:
-                  g_assert_not_reached();
-                }
-              break;
-            case 2:
-               /*
-                * We want the next line
-                */
-              if (pango_layout_iter_next_line (iter))
-                {
-                  line = pango_layout_iter_get_line_readonly (iter);
-                  switch (boundary_type)
-                    {
-                    case ATK_TEXT_BOUNDARY_LINE_START:
-                      start_index = line->start_index;
-                      if (pango_layout_iter_next_line (iter))
-                        end_index = pango_layout_iter_get_line_readonly (iter)->start_index;
-                      else
-                        end_index = start_index + line->length;
-                      break;
-                    case ATK_TEXT_BOUNDARY_LINE_END:
-                      start_index = end_index;
-                      end_index = line->start_index + line->length;
-                      break;
-                    default:
-                      g_assert_not_reached();
-                    }
-                }
-              else
-                start_index = end_index;
-              break;
-            }
-          found = TRUE;
-          break;
-        }
-      prev_prev_line = prev_line; 
-      prev_line = line; 
-    }
-  while (pango_layout_iter_next_line (iter));
+  layout = gtk_widget_create_pango_layout (item->widget, item->text);
 
-  if (!found)
-    {
-      start_index = prev_line->start_index + prev_line->length;
-      end_index = start_index;
-    }
-  pango_layout_iter_free (iter);
-  *start_offset = g_utf8_pointer_to_offset (text, text + start_index);
-  *end_offset = g_utf8_pointer_to_offset (text, text + end_index);
-  gtk_text_buffer_get_iter_at_offset (buffer, start_iter, *start_offset);
-  gtk_text_buffer_get_iter_at_offset (buffer, end_iter, *end_offset);
+  return layout;
 }
-#endif
 
-static gchar*
-gtk_icon_view_item_accessible_text_get_text_before_offset (AtkText         *text,
-                                                           gint            offset,
-                                                           AtkTextBoundary boundary_type,
-                                                           gint            *start_offset,
-                                                           gint            *end_offset)
+static gchar *
+gtk_icon_view_item_accessible_get_text_before_offset (AtkText         *atk_text,
+                                                      gint             offset,
+                                                      AtkTextBoundary  boundary_type,
+                                                      gint            *start_offset,
+                                                      gint            *end_offset)
 {
   GtkIconViewItemAccessible *item;
-  GtkTextIter start, end;
-  GtkTextBuffer *buffer;
-#if 0
-  GtkIconView *icon_view;
-#endif
-
-  item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (text);
-
-  if (!GTK_IS_ICON_VIEW (item->widget))
-    return NULL;
+  PangoLayout *layout;
+  gchar *text;
 
+  item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (atk_text);
   if (atk_state_set_contains_state (item->state_set, ATK_STATE_DEFUNCT))
     return NULL;
 
-  buffer = item->text_buffer;
-
-  if (!gtk_text_buffer_get_char_count (buffer))
-    {
-      *start_offset = 0;
-      *end_offset = 0;
-      return g_strdup ("");
-    }
-  gtk_text_buffer_get_iter_at_offset (buffer, &start, offset);
-   
-  end = start;
-
-  switch (boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-      gtk_text_iter_backward_char(&start);
-      break;
-    case ATK_TEXT_BOUNDARY_WORD_START:
-      if (!gtk_text_iter_starts_word (&start))
-        gtk_text_iter_backward_word_start (&start);
-      end = start;
-      gtk_text_iter_backward_word_start(&start);
-      break;
-    case ATK_TEXT_BOUNDARY_WORD_END:
-      if (gtk_text_iter_inside_word (&start) &&
-          !gtk_text_iter_starts_word (&start))
-        gtk_text_iter_backward_word_start (&start);
-      while (!gtk_text_iter_ends_word (&start))
-        {
-          if (!gtk_text_iter_backward_char (&start))
-            break;
-        }
-      end = start;
-      gtk_text_iter_backward_word_start(&start);
-      while (!gtk_text_iter_ends_word (&start))
-        {
-          if (!gtk_text_iter_backward_char (&start))
-            break;
-        }
-      break;
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-      if (!gtk_text_iter_starts_sentence (&start))
-        gtk_text_iter_backward_sentence_start (&start);
-      end = start;
-      gtk_text_iter_backward_sentence_start (&start);
-      break;
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-      if (gtk_text_iter_inside_sentence (&start) &&
-          !gtk_text_iter_starts_sentence (&start))
-        gtk_text_iter_backward_sentence_start (&start);
-      while (!gtk_text_iter_ends_sentence (&start))
-        {
-          if (!gtk_text_iter_backward_char (&start))
-            break;
-        }
-      end = start;
-      gtk_text_iter_backward_sentence_start (&start);
-      while (!gtk_text_iter_ends_sentence (&start))
-        {
-          if (!gtk_text_iter_backward_char (&start))
-            break;
-        }
-      break;
-   case ATK_TEXT_BOUNDARY_LINE_START:
-   case ATK_TEXT_BOUNDARY_LINE_END:
-#if 0
-      icon_view = GTK_ICON_VIEW (item->widget);
-      /* FIXME we probably have to use GailTextCell to salvage this */
-      gtk_icon_view_update_item_text (icon_view, item->item);
-      get_pango_text_offsets (icon_view->priv->layout,
-                              buffer,
-                              0,
-                              boundary_type,
-                              offset,
-                              start_offset,
-                              end_offset,
-                              &start,
-                              &end);
-#endif
-      break;
-    }
-
-  *start_offset = gtk_text_iter_get_offset (&start);
-  *end_offset = gtk_text_iter_get_offset (&end);
+  layout = create_pango_layout (item);
+  text = _gtk_pango_get_text_before (layout, boundary_type, offset, start_offset, end_offset);
+  g_object_unref (layout);
 
-  return gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+  return text;
 }
 
-static gchar*
-gtk_icon_view_item_accessible_text_get_text_at_offset (AtkText         *text,
-                                                       gint            offset,
-                                                       AtkTextBoundary boundary_type,
-                                                       gint            *start_offset,
-                                                       gint            *end_offset)
+static gchar *
+gtk_icon_view_item_accessible_get_text_at_offset (AtkText         *atk_text,
+                                                  gint             offset,
+                                                  AtkTextBoundary  boundary_type,
+                                                  gint            *start_offset,
+                                                  gint            *end_offset)
 {
   GtkIconViewItemAccessible *item;
-  GtkTextIter start, end;
-  GtkTextBuffer *buffer;
-#if 0
-  GtkIconView *icon_view;
-#endif
-
-  item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (text);
-
-  if (!GTK_IS_ICON_VIEW (item->widget))
-    return NULL;
+  PangoLayout *layout;
+  gchar *text;
 
+  item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (atk_text);
   if (atk_state_set_contains_state (item->state_set, ATK_STATE_DEFUNCT))
     return NULL;
 
-  buffer = item->text_buffer;
+  layout = create_pango_layout (item);
+  text = _gtk_pango_get_text_at (layout, boundary_type, offset, start_offset, end_offset);
+  g_object_unref (layout);
 
-  if (!gtk_text_buffer_get_char_count (buffer))
-    {
-      *start_offset = 0;
-      *end_offset = 0;
-      return g_strdup ("");
-    }
-  gtk_text_buffer_get_iter_at_offset (buffer, &start, offset);
-   
-  end = start;
-
-  switch (boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-      gtk_text_iter_forward_char (&end);
-      break;
-    case ATK_TEXT_BOUNDARY_WORD_START:
-      if (!gtk_text_iter_starts_word (&start))
-        gtk_text_iter_backward_word_start (&start);
-      if (gtk_text_iter_inside_word (&end))
-        gtk_text_iter_forward_word_end (&end);
-      while (!gtk_text_iter_starts_word (&end))
-        {
-          if (!gtk_text_iter_forward_char (&end))
-            break;
-        }
-      break;
-    case ATK_TEXT_BOUNDARY_WORD_END:
-      if (gtk_text_iter_inside_word (&start) &&
-          !gtk_text_iter_starts_word (&start))
-        gtk_text_iter_backward_word_start (&start);
-      while (!gtk_text_iter_ends_word (&start))
-        {
-          if (!gtk_text_iter_backward_char (&start))
-            break;
-        }
-      gtk_text_iter_forward_word_end (&end);
-      break;
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-      if (!gtk_text_iter_starts_sentence (&start))
-        gtk_text_iter_backward_sentence_start (&start);
-      if (gtk_text_iter_inside_sentence (&end))
-        gtk_text_iter_forward_sentence_end (&end);
-      while (!gtk_text_iter_starts_sentence (&end))
-        {
-          if (!gtk_text_iter_forward_char (&end))
-            break;
-        }
-      break;
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-      if (gtk_text_iter_inside_sentence (&start) &&
-          !gtk_text_iter_starts_sentence (&start))
-        gtk_text_iter_backward_sentence_start (&start);
-      while (!gtk_text_iter_ends_sentence (&start))
-        {
-          if (!gtk_text_iter_backward_char (&start))
-            break;
-        }
-      gtk_text_iter_forward_sentence_end (&end);
-      break;
-   case ATK_TEXT_BOUNDARY_LINE_START:
-   case ATK_TEXT_BOUNDARY_LINE_END:
-#if 0
-      icon_view = GTK_ICON_VIEW (item->widget);
-      /* FIXME we probably have to use GailTextCell to salvage this */
-      gtk_icon_view_update_item_text (icon_view, item->item);
-      get_pango_text_offsets (icon_view->priv->layout,
-                              buffer,
-                              1,
-                              boundary_type,
-                              offset,
-                              start_offset,
-                              end_offset,
-                              &start,
-                              &end);
-#endif
-      break;
-    }
-
-
-  *start_offset = gtk_text_iter_get_offset (&start);
-  *end_offset = gtk_text_iter_get_offset (&end);
-
-  return gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+  return text;
 }
 
-static gchar*
-gtk_icon_view_item_accessible_text_get_text_after_offset (AtkText         *text,
-                                                          gint            offset,
-                                                          AtkTextBoundary boundary_type,
-                                                          gint            *start_offset,
-                                                          gint            *end_offset)
+static gchar *
+gtk_icon_view_item_accessible_get_text_after_offset (AtkText         *atk_text,
+                                                     gint             offset,
+                                                     AtkTextBoundary  boundary_type,
+                                                     gint            *start_offset,
+                                                     gint            *end_offset)
 {
   GtkIconViewItemAccessible *item;
-  GtkTextIter start, end;
-  GtkTextBuffer *buffer;
-#if 0
-  GtkIconView *icon_view;
-#endif
-
-  item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (text);
-
-  if (!GTK_IS_ICON_VIEW (item->widget))
-    return NULL;
+  PangoLayout *layout;
+  gchar *text;
 
+  item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (atk_text);
   if (atk_state_set_contains_state (item->state_set, ATK_STATE_DEFUNCT))
     return NULL;
 
-  buffer = item->text_buffer;
+  layout = create_pango_layout (item);
+  text = _gtk_pango_get_text_after (layout, boundary_type, offset, start_offset, end_offset);
+  g_object_unref (layout);
 
-  if (!gtk_text_buffer_get_char_count (buffer))
-    {
-      *start_offset = 0;
-      *end_offset = 0;
-      return g_strdup ("");
-    }
-  gtk_text_buffer_get_iter_at_offset (buffer, &start, offset);
-   
-  end = start;
-
-  switch (boundary_type)
-    {
-    case ATK_TEXT_BOUNDARY_CHAR:
-      gtk_text_iter_forward_char(&start);
-      gtk_text_iter_forward_chars(&end, 2);
-      break;
-    case ATK_TEXT_BOUNDARY_WORD_START:
-      if (gtk_text_iter_inside_word (&end))
-        gtk_text_iter_forward_word_end (&end);
-      while (!gtk_text_iter_starts_word (&end))
-        {
-          if (!gtk_text_iter_forward_char (&end))
-            break;
-        }
-      start = end;
-      if (!gtk_text_iter_is_end (&end))
-        {
-          gtk_text_iter_forward_word_end (&end);
-          while (!gtk_text_iter_starts_word (&end))
-            {
-              if (!gtk_text_iter_forward_char (&end))
-                break;
-            }
-        }
-      break;
-    case ATK_TEXT_BOUNDARY_WORD_END:
-      gtk_text_iter_forward_word_end (&end);
-      start = end;
-      if (!gtk_text_iter_is_end (&end))
-        gtk_text_iter_forward_word_end (&end);
-      break;
-    case ATK_TEXT_BOUNDARY_SENTENCE_START:
-      if (gtk_text_iter_inside_sentence (&end))
-        gtk_text_iter_forward_sentence_end (&end);
-      while (!gtk_text_iter_starts_sentence (&end))
-        {
-          if (!gtk_text_iter_forward_char (&end))
-            break;
-        }
-      start = end;
-      if (!gtk_text_iter_is_end (&end))
-        {
-          gtk_text_iter_forward_sentence_end (&end);
-          while (!gtk_text_iter_starts_sentence (&end))
-            {
-              if (!gtk_text_iter_forward_char (&end))
-                break;
-            }
-        }
-      break;
-    case ATK_TEXT_BOUNDARY_SENTENCE_END:
-      gtk_text_iter_forward_sentence_end (&end);
-      start = end;
-      if (!gtk_text_iter_is_end (&end))
-        gtk_text_iter_forward_sentence_end (&end);
-      break;
-   case ATK_TEXT_BOUNDARY_LINE_START:
-   case ATK_TEXT_BOUNDARY_LINE_END:
-#if 0
-      icon_view = GTK_ICON_VIEW (item->widget);
-      /* FIXME we probably have to use GailTextCell to salvage this */
-      gtk_icon_view_update_item_text (icon_view, item->item);
-      get_pango_text_offsets (icon_view->priv->layout,
-                              buffer,
-                              2,
-                              boundary_type,
-                              offset,
-                              start_offset,
-                              end_offset,
-                              &start,
-                              &end);
-#endif
-      break;
-    }
-  *start_offset = gtk_text_iter_get_offset (&start);
-  *end_offset = gtk_text_iter_get_offset (&end);
-
-  return gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
+  return text;
 }
 
 static gint
-gtk_icon_view_item_accessible_text_get_character_count (AtkText *text)
+gtk_icon_view_item_accessible_get_character_count (AtkText *text)
 {
   GtkIconViewItemAccessible *item;
 
   item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (text);
-
-  if (!GTK_IS_ICON_VIEW (item->widget))
-    return 0;
-
   if (atk_state_set_contains_state (item->state_set, ATK_STATE_DEFUNCT))
     return 0;
 
-  return gtk_text_buffer_get_char_count (item->text_buffer);
+  if (item->text)
+    return g_utf8_strlen (item->text, -1);
+  else
+    return 0;
 }
 
 static void
-gtk_icon_view_item_accessible_text_get_character_extents (AtkText      *text,
-                                                          gint         offset,
-                                                          gint         *x,
-                                                          gint         *y,
-                                                          gint         *width,
-                                                          gint         *height,
-                                                          AtkCoordType coord_type)
+gtk_icon_view_item_accessible_get_character_extents (AtkText      *text,
+                                                     gint         offset,
+                                                     gint         *x,
+                                                     gint         *y,
+                                                     gint         *width,
+                                                     gint         *height,
+                                                     AtkCoordType coord_type)
 {
   GtkIconViewItemAccessible *item;
 #if 0
@@ -7927,10 +7536,10 @@ gtk_icon_view_item_accessible_text_get_character_extents (AtkText      *text,
 }
 
 static gint
-gtk_icon_view_item_accessible_text_get_offset_at_point (AtkText      *text,
-                                                        gint          x,
-                                                        gint          y,
-                                                        AtkCoordType coord_type)
+gtk_icon_view_item_accessible_get_offset_at_point (AtkText      *text,
+                                                   gint          x,
+                                                   gint          y,
+                                                   AtkCoordType coord_type)
 {
   GtkIconViewItemAccessible *item;
   gint offset = 0;
@@ -7979,14 +7588,14 @@ gtk_icon_view_item_accessible_text_get_offset_at_point (AtkText      *text,
 static void
 atk_text_item_interface_init (AtkTextIface *iface)
 {
-  iface->get_text = gtk_icon_view_item_accessible_text_get_text;
-  iface->get_character_at_offset = gtk_icon_view_item_accessible_text_get_character_at_offset;
-  iface->get_text_before_offset = gtk_icon_view_item_accessible_text_get_text_before_offset;
-  iface->get_text_at_offset = gtk_icon_view_item_accessible_text_get_text_at_offset;
-  iface->get_text_after_offset = gtk_icon_view_item_accessible_text_get_text_after_offset;
-  iface->get_character_count = gtk_icon_view_item_accessible_text_get_character_count;
-  iface->get_character_extents = gtk_icon_view_item_accessible_text_get_character_extents;
-  iface->get_offset_at_point = gtk_icon_view_item_accessible_text_get_offset_at_point;
+  iface->get_text = gtk_icon_view_item_accessible_get_text;
+  iface->get_character_at_offset = gtk_icon_view_item_accessible_get_character_at_offset;
+  iface->get_text_before_offset = gtk_icon_view_item_accessible_get_text_before_offset;
+  iface->get_text_at_offset = gtk_icon_view_item_accessible_get_text_at_offset;
+  iface->get_text_after_offset = gtk_icon_view_item_accessible_get_text_after_offset;
+  iface->get_character_count = gtk_icon_view_item_accessible_get_character_count;
+  iface->get_character_extents = gtk_icon_view_item_accessible_get_character_extents;
+  iface->get_offset_at_point = gtk_icon_view_item_accessible_get_offset_at_point;
 }
 
 static void
@@ -8062,12 +7671,11 @@ gtk_icon_view_item_accessible_add_state (GtkIconViewItemAccessible *item,
   gboolean rc;
 
   rc = atk_state_set_add_state (item->state_set, state_type);
-  /*
-   * The signal should only be generated if the value changed,
-   * not when the item is set up.  So states that are set
+
+  /* The signal should only be generated if the value changed,
+   * not when the item is set up. So states that are set
    * initially should pass FALSE as the emit_signal argument.
    */
-
   if (emit_signal)
     {
       atk_object_notify_state_change (ATK_OBJECT (item), state_type, TRUE);
@@ -8089,12 +7697,11 @@ gtk_icon_view_item_accessible_remove_state (GtkIconViewItemAccessible *item,
       gboolean rc;
 
       rc = atk_state_set_remove_state (item->state_set, state_type);
-      /*
-       * The signal should only be generated if the value changed,
-       * not when the item is set up.  So states that are set
+
+      /* The signal should only be generated if the value changed,
+       * not when the item is set up. So states that are set
        * initially should pass FALSE as the emit_signal argument.
        */
-
       if (emit_signal)
         {
           atk_object_notify_state_change (ATK_OBJECT (item), state_type, FALSE);
@@ -8117,11 +7724,9 @@ gtk_icon_view_item_accessible_is_showing (GtkIconViewItemAccessible *item)
   GdkRectangle visible_rect;
   gboolean is_showing;
 
-  /*
-   * An item is considered "SHOWING" if any part of the item is in the
-   * visible rectangle.
+  /* An item is considered "SHOWING" if any part of the item
+   * is in the visible rectangle.
    */
-
   if (!GTK_IS_ICON_VIEW (item->widget))
     return FALSE;
 
@@ -8144,7 +7749,7 @@ gtk_icon_view_item_accessible_is_showing (GtkIconViewItemAccessible *item)
      ((item->item->cell_area.y + item->item->cell_area.height) < (visible_rect.y)) ||
      (item->item->cell_area.x > (visible_rect.x + visible_rect.width)) ||
      (item->item->cell_area.y > (visible_rect.y + visible_rect.height)))
-    is_showing =  FALSE;
+    is_showing = FALSE;
   else
     is_showing = TRUE;
 
@@ -8157,17 +7762,15 @@ gtk_icon_view_item_accessible_set_visibility (GtkIconViewItemAccessible *item,
 {
   if (gtk_icon_view_item_accessible_is_showing (item))
     return gtk_icon_view_item_accessible_add_state (item, ATK_STATE_SHOWING,
-                                                   emit_signal);
+                                                    emit_signal);
   else
     return gtk_icon_view_item_accessible_remove_state (item, ATK_STATE_SHOWING,
-                                                      emit_signal);
+                                                       emit_signal);
 }
 
 static void
-gtk_icon_view_item_accessible_object_init (GtkIconViewItemAccessible *item)
+_gtk_icon_view_item_accessible_init (GtkIconViewItemAccessible *item)
 {
-  gint i;
-
   item->state_set = atk_state_set_new ();
 
   atk_state_set_add_state (item->state_set, ATK_STATE_ENABLED);
@@ -8176,9 +7779,7 @@ gtk_icon_view_item_accessible_object_init (GtkIconViewItemAccessible *item)
   atk_state_set_add_state (item->state_set, ATK_STATE_SELECTABLE);
   atk_state_set_add_state (item->state_set, ATK_STATE_VISIBLE);
 
-  for (i = 0; i < LAST_ACTION; i++)
-    item->action_descriptions[i] = NULL;
-
+  item->action_description = NULL;
   item->image_description = NULL;
 
   item->action_idle_handler = 0;
@@ -8188,9 +7789,6 @@ static void
 gtk_icon_view_item_accessible_finalize (GObject *object)
 {
   GtkIconViewItemAccessible *item;
-  gint i;
-
-  g_return_if_fail (GTK_IS_ICON_VIEW_ITEM_ACCESSIBLE (object));
 
   item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (object);
 
@@ -8200,12 +7798,9 @@ gtk_icon_view_item_accessible_finalize (GObject *object)
   if (item->state_set)
     g_object_unref (item->state_set);
 
-  if (item->text_buffer)
-     g_object_unref (item->text_buffer);
-
-  for (i = 0; i < LAST_ACTION; i++)
-    g_free (item->action_descriptions[i]);
 
+  g_free (item->text);
+  g_free (item->action_description);
   g_free (item->image_description);
 
   if (item->action_idle_handler)
@@ -8214,7 +7809,7 @@ gtk_icon_view_item_accessible_finalize (GObject *object)
       item->action_idle_handler = 0;
     }
 
-  G_OBJECT_CLASS (accessible_item_parent_class)->finalize (object);
+  G_OBJECT_CLASS (_gtk_icon_view_item_accessible_parent_class)->finalize (object);
 }
 
 static AtkObject*
@@ -8239,7 +7834,7 @@ gtk_icon_view_item_accessible_get_index_in_parent (AtkObject *obj)
   g_return_val_if_fail (GTK_IS_ICON_VIEW_ITEM_ACCESSIBLE (obj), 0);
   item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (obj);
 
-  return item->item->index; 
+  return item->item->index;
 }
 
 static AtkStateSet *
@@ -8268,133 +7863,66 @@ gtk_icon_view_item_accessible_ref_state_set (AtkObject *obj)
 }
 
 static void
-gtk_icon_view_item_accessible_class_init (AtkObjectClass *klass)
+_gtk_icon_view_item_accessible_class_init (GtkIconViewItemAccessibleClass *klass)
 {
   GObjectClass *gobject_class;
-
-  accessible_item_parent_class = g_type_class_peek_parent (klass);
+  AtkObjectClass *atk_class;
 
   gobject_class = (GObjectClass *)klass;
+  atk_class = (AtkObjectClass *)klass;
 
   gobject_class->finalize = gtk_icon_view_item_accessible_finalize;
 
-  klass->get_index_in_parent = gtk_icon_view_item_accessible_get_index_in_parent;
-  klass->get_parent = gtk_icon_view_item_accessible_get_parent;
-  klass->ref_state_set = gtk_icon_view_item_accessible_ref_state_set;
-}
-
-static GType
-gtk_icon_view_item_accessible_get_type (void)
-{
-  static GType type = 0;
-
-  if (!type)
-    {
-      const GTypeInfo tinfo =
-      {
-        sizeof (GtkIconViewItemAccessibleClass),
-        (GBaseInitFunc) NULL, /* base init */
-        (GBaseFinalizeFunc) NULL, /* base finalize */
-        (GClassInitFunc) gtk_icon_view_item_accessible_class_init, /* class init */
-        (GClassFinalizeFunc) NULL, /* class finalize */
-        NULL, /* class data */
-        sizeof (GtkIconViewItemAccessible), /* instance size */
-        0, /* nb preallocs */
-        (GInstanceInitFunc) gtk_icon_view_item_accessible_object_init, /* instance init */
-        NULL /* value table */
-      };
-
-      const GInterfaceInfo atk_component_info =
-      {
-        (GInterfaceInitFunc) atk_component_item_interface_init,
-        (GInterfaceFinalizeFunc) NULL,
-        NULL
-      };
-      const GInterfaceInfo atk_action_info =
-      {
-        (GInterfaceInitFunc) atk_action_item_interface_init,
-        (GInterfaceFinalizeFunc) NULL,
-        NULL
-      };
-      const GInterfaceInfo atk_image_info =
-      {
-        (GInterfaceInitFunc) atk_image_item_interface_init,
-        (GInterfaceFinalizeFunc) NULL,
-        NULL
-      };
-      const GInterfaceInfo atk_text_info =
-      {
-        (GInterfaceInitFunc) atk_text_item_interface_init,
-        (GInterfaceFinalizeFunc) NULL,
-        NULL
-      };
-
-      type = g_type_register_static (ATK_TYPE_OBJECT,
-                                     I_("GtkIconViewItemAccessible"), &tinfo, 0);
-      g_type_add_interface_static (type, ATK_TYPE_COMPONENT,
-                                   &atk_component_info);
-      g_type_add_interface_static (type, ATK_TYPE_ACTION,
-                                   &atk_action_info);
-      g_type_add_interface_static (type, ATK_TYPE_IMAGE,
-                                   &atk_image_info);
-      g_type_add_interface_static (type, ATK_TYPE_TEXT,
-                                   &atk_text_info);
-    }
-
-  return type;
-}
-
-#define GTK_TYPE_ICON_VIEW_ACCESSIBLE      (gtk_icon_view_accessible_get_type ())
+  atk_class->get_index_in_parent = gtk_icon_view_item_accessible_get_index_in_parent;
+  atk_class->get_parent = gtk_icon_view_item_accessible_get_parent;
+  atk_class->ref_state_set = gtk_icon_view_item_accessible_ref_state_set;
+}
+
+#define GTK_TYPE_ICON_VIEW_ACCESSIBLE      (_gtk_icon_view_accessible_get_type ())
 #define GTK_ICON_VIEW_ACCESSIBLE(obj)      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_ICON_VIEW_ACCESSIBLE, GtkIconViewAccessible))
 #define GTK_IS_ICON_VIEW_ACCESSIBLE(obj)   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_ICON_VIEW_ACCESSIBLE))
 
-static GType gtk_icon_view_accessible_get_type (void);
-
-typedef struct
-{
-   AtkObject parent;
-} GtkIconViewAccessible;
-
 typedef struct
 {
-  AtkObject *item;
-  gint       index;
-} GtkIconViewItemAccessibleInfo;
+  GtkContainerAccessible parent;
 
-typedef struct
-{
   GList *items;
-
   GtkAdjustment *old_hadj;
   GtkAdjustment *old_vadj;
-
   GtkTreeModel *model;
+} GtkIconViewAccessible;
+
+typedef GtkContainerAccessibleClass GtkIconViewAccessibleClass;
+
+static void atk_component_interface_init (AtkComponentIface *iface);
+static void atk_selection_interface_init (AtkSelectionIface *iface);
 
-} GtkIconViewAccessiblePrivate;
+G_DEFINE_TYPE_WITH_CODE (GtkIconViewAccessible, _gtk_icon_view_accessible, GTK_TYPE_CONTAINER_ACCESSIBLE,
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init)
+                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
 
-static GtkIconViewAccessiblePrivate *
-gtk_icon_view_accessible_get_priv (AtkObject *accessible)
+typedef struct
 {
-  return g_object_get_qdata (G_OBJECT (accessible),
-                             accessible_private_data_quark);
-}
+  AtkObject *item;
+  gint       index;
+} GtkIconViewItemAccessibleInfo;
+
 
 static void
 gtk_icon_view_item_accessible_info_new (AtkObject *accessible,
                                         AtkObject *item,
                                         gint       index)
 {
+  GtkIconViewAccessible *view = (GtkIconViewAccessible *)accessible;
   GtkIconViewItemAccessibleInfo *info;
   GtkIconViewItemAccessibleInfo *tmp_info;
-  GtkIconViewAccessiblePrivate *priv;
   GList *items;
 
   info = g_new (GtkIconViewItemAccessibleInfo, 1);
   info->item = item;
   info->index = index;
 
-  priv = gtk_icon_view_accessible_get_priv (accessible);
-  items = priv->items;
+  items = view->items;
   while (items)
     {
       tmp_info = items->data;
@@ -8402,9 +7930,9 @@ gtk_icon_view_item_accessible_info_new (AtkObject *accessible,
         break;
       items = items->next;
     }
-  priv->items = g_list_insert_before (priv->items, items, info);
-  priv->old_hadj = NULL;
-  priv->old_vadj = NULL;
+  view->items = g_list_insert_before (view->items, items, info);
+  view->old_hadj = NULL;
+  view->old_vadj = NULL;
 }
 
 static gint
@@ -8426,20 +7954,20 @@ static AtkObject *
 gtk_icon_view_accessible_find_child (AtkObject *accessible,
                                      gint       index)
 {
-  GtkIconViewAccessiblePrivate *priv;
+  GtkIconViewAccessible *view = (GtkIconViewAccessible*)accessible;
   GtkIconViewItemAccessibleInfo *info;
   GList *items;
 
-  priv = gtk_icon_view_accessible_get_priv (accessible);
-  items = priv->items;
+  items = view->items;
 
   while (items)
     {
       info = items->data;
       if (info->index == index)
         return info->item;
-      items = items->next; 
+      items = items->next;
     }
+
   return NULL;
 }
 
@@ -8463,29 +7991,20 @@ gtk_icon_view_accessible_ref_child (AtkObject *accessible,
   if (icons)
     {
       GtkIconViewItem *item = icons->data;
-   
+
       g_return_val_if_fail (item->index == index, NULL);
       obj = gtk_icon_view_accessible_find_child (accessible, index);
       if (!obj)
         {
-          gchar *text;
-
-          obj = g_object_new (gtk_icon_view_item_accessible_get_type (), NULL);
-          gtk_icon_view_item_accessible_info_new (accessible,
-                                                  obj,
-                                                  index);
+          obj = g_object_new (GTK_TYPE_ICON_VIEW_ITEM_ACCESSIBLE, NULL);
+          gtk_icon_view_item_accessible_info_new (accessible, obj, index);
           obj->role = ATK_ROLE_ICON;
           a11y_item = GTK_ICON_VIEW_ITEM_ACCESSIBLE (obj);
           a11y_item->item = item;
           a11y_item->widget = widget;
-          a11y_item->text_buffer = gtk_text_buffer_new (NULL);
 
-          text = get_text (icon_view, item);
-          if (text)
-            {
-              gtk_text_buffer_set_text (a11y_item->text_buffer, text, -1);
-              g_free (text);
-            } 
+          g_free (a11y_item->text);
+          a11y_item->text = get_text (icon_view, item);
 
           gtk_icon_view_item_accessible_set_visibility (a11y_item, FALSE);
           g_object_add_weak_pointer (G_OBJECT (widget), (gpointer) &(a11y_item->widget));
@@ -8499,13 +8018,11 @@ static void
 gtk_icon_view_accessible_traverse_items (GtkIconViewAccessible *view,
                                          GList                 *list)
 {
-  GtkIconViewAccessiblePrivate *priv;
   GtkIconViewItemAccessibleInfo *info;
   GtkIconViewItemAccessible *item;
   GList *items;
-  
-  priv =  gtk_icon_view_accessible_get_priv (ATK_OBJECT (view));
-  if (priv->items)
+
+  if (view->items)
     {
       GtkWidget *widget;
       gboolean act_on_item;
@@ -8514,7 +8031,7 @@ gtk_icon_view_accessible_traverse_items (GtkIconViewAccessible *view,
       if (widget == NULL)
         return;
 
-      items = priv->items;
+      items = view->items;
 
       act_on_item = (list == NULL);
 
@@ -8528,7 +8045,7 @@ gtk_icon_view_accessible_traverse_items (GtkIconViewAccessible *view,
             act_on_item = TRUE;
 
           if (act_on_item)
-           gtk_icon_view_item_accessible_set_visibility (item, TRUE);
+            gtk_icon_view_item_accessible_set_visibility (item, TRUE);
 
           items = items->next;
        }
@@ -8547,36 +8064,29 @@ gtk_icon_view_accessible_set_adjustment (AtkObject      *accessible,
                                          GtkOrientation  orientation,
                                          GtkAdjustment  *adjustment)
 {
-  GtkIconViewAccessiblePrivate *priv;
+  GtkIconViewAccessible *view = (GtkIconViewAccessible*)accessible;
   GtkAdjustment **old_adj_ptr;
 
-  priv = gtk_icon_view_accessible_get_priv (accessible);
-
-  /* Adjustments are set for the first time in constructor and priv is not
-   * initialized at that time, so skip this first setting. */
-  if (!priv)
-    return;
-
   if (orientation == GTK_ORIENTATION_HORIZONTAL)
     {
-      if (priv->old_hadj == adjustment)
+      if (view->old_hadj == adjustment)
         return;
 
-      old_adj_ptr = &priv->old_hadj;
+      old_adj_ptr = &view->old_hadj;
     }
   else
     {
-      if (priv->old_vadj == adjustment)
+      if (view->old_vadj == adjustment)
         return;
 
-      old_adj_ptr = &priv->old_vadj;
+      old_adj_ptr = &view->old_vadj;
     }
 
   /* Disconnect signal handlers */
   if (*old_adj_ptr)
     {
       g_object_remove_weak_pointer (G_OBJECT (*old_adj_ptr),
-                                    (gpointer *)&priv->old_hadj);
+                                    (gpointer *)&view->old_hadj);
       g_signal_handlers_disconnect_by_func (*old_adj_ptr,
                                             gtk_icon_view_accessible_adjustment_changed,
                                             accessible);
@@ -8603,7 +8113,6 @@ gtk_icon_view_accessible_model_row_changed (GtkTreeModel *tree_model,
   GtkIconViewItem *item;
   GtkIconViewItemAccessible *a11y_item;
   const gchar *name;
-  gchar *text;
 
   atk_obj = gtk_widget_get_accessible (GTK_WIDGET (user_data));
   index = gtk_tree_path_get_indices(path)[0];
@@ -8617,15 +8126,10 @@ gtk_icon_view_accessible_model_row_changed (GtkTreeModel *tree_model,
       item = a11y_item->item;
 
       name = atk_object_get_name (ATK_OBJECT (a11y_item));
-
       if (!name || strcmp (name, "") == 0)
         {
-          text = get_text (icon_view, item);
-          if (text)
-            {
-              gtk_text_buffer_set_text (a11y_item->text_buffer, text, -1);
-              g_free (text);
-            }
+          g_free (a11y_item->text);
+          a11y_item->text = get_text (icon_view, item);
         }
     }
 
@@ -8640,7 +8144,6 @@ gtk_icon_view_accessible_model_row_inserted (GtkTreeModel *tree_model,
                                              GtkTreeIter  *iter,
                                              gpointer     user_data)
 {
-  GtkIconViewAccessiblePrivate *priv;
   GtkIconViewItemAccessibleInfo *info;
   GtkIconViewAccessible *view;
   GtkIconViewItemAccessible *item;
@@ -8652,9 +8155,8 @@ gtk_icon_view_accessible_model_row_inserted (GtkTreeModel *tree_model,
   index = gtk_tree_path_get_indices(path)[0];
   atk_obj = gtk_widget_get_accessible (GTK_WIDGET (user_data));
   view = GTK_ICON_VIEW_ACCESSIBLE (atk_obj);
-  priv = gtk_icon_view_accessible_get_priv (atk_obj);
 
-  items = priv->items;
+  items = view->items;
   tmp_list = NULL;
   while (items)
     {
@@ -8664,10 +8166,10 @@ gtk_icon_view_accessible_model_row_inserted (GtkTreeModel *tree_model,
         {
           if (info->index < index)
             g_warning ("Unexpected index value on insertion %d %d", index, info->index);
+
           if (tmp_list == NULL)
             tmp_list = items;
-   
+
           info->index = item->item->index;
         }
 
@@ -8684,7 +8186,6 @@ gtk_icon_view_accessible_model_row_deleted (GtkTreeModel *tree_model,
                                             GtkTreePath  *path,
                                             gpointer     user_data)
 {
-  GtkIconViewAccessiblePrivate *priv;
   GtkIconViewItemAccessibleInfo *info;
   GtkIconViewAccessible *view;
   GtkIconViewItemAccessible *item;
@@ -8697,9 +8198,8 @@ gtk_icon_view_accessible_model_row_deleted (GtkTreeModel *tree_model,
   index = gtk_tree_path_get_indices(path)[0];
   atk_obj = gtk_widget_get_accessible (GTK_WIDGET (user_data));
   view = GTK_ICON_VIEW_ACCESSIBLE (atk_obj);
-  priv = gtk_icon_view_accessible_get_priv (atk_obj);
 
-  items = priv->items;
+  items = view->items;
   tmp_list = NULL;
   deleted_item = NULL;
   info = NULL;
@@ -8715,7 +8215,7 @@ gtk_icon_view_accessible_model_row_deleted (GtkTreeModel *tree_model,
         {
           if (tmp_list == NULL)
             tmp_list = items;
-            
+
           info->index = item->item->index;
         }
 
@@ -8728,7 +8228,7 @@ gtk_icon_view_accessible_model_row_deleted (GtkTreeModel *tree_model,
       gtk_icon_view_item_accessible_add_state (GTK_ICON_VIEW_ITEM_ACCESSIBLE (info->item), ATK_STATE_DEFUNCT, TRUE);
       g_signal_emit_by_name (atk_obj, "children-changed::remove",
                              index, NULL, NULL);
-      priv->items = g_list_remove_link (priv->items, deleted_item);
+      view->items = g_list_remove_link (view->items, deleted_item);
       g_free (info);
     }
 
@@ -8749,7 +8249,7 @@ gtk_icon_view_accessible_model_rows_reordered (GtkTreeModel *tree_model,
                                                gint         *new_order,
                                                gpointer     user_data)
 {
-  GtkIconViewAccessiblePrivate *priv;
+  GtkIconViewAccessible *view;
   GtkIconViewItemAccessibleInfo *info;
   GtkIconView *icon_view;
   GtkIconViewItemAccessible *item;
@@ -8760,7 +8260,7 @@ gtk_icon_view_accessible_model_rows_reordered (GtkTreeModel *tree_model,
 
   atk_obj = gtk_widget_get_accessible (GTK_WIDGET (user_data));
   icon_view = GTK_ICON_VIEW (user_data);
-  priv = gtk_icon_view_accessible_get_priv (atk_obj);
+  view = (GtkIconViewAccessible*)atk_obj;
 
   length = gtk_tree_model_iter_n_children (tree_model, NULL);
 
@@ -8768,7 +8268,7 @@ gtk_icon_view_accessible_model_rows_reordered (GtkTreeModel *tree_model,
   for (i = 0; i < length; i++)
     order [new_order[i]] = i;
 
-  items = priv->items;
+  items = view->items;
   while (items)
     {
       info = items->data;
@@ -8778,7 +8278,7 @@ gtk_icon_view_accessible_model_rows_reordered (GtkTreeModel *tree_model,
       items = items->next;
     }
   g_free (order);
-  priv->items = g_list_sort (priv->items, 
+  view->items = g_list_sort (view->items,
                              (GCompareFunc)gtk_icon_view_accessible_item_compare);
 
   return;
@@ -8807,23 +8307,23 @@ gtk_icon_view_accessible_connect_model_signals (GtkIconView *icon_view)
                          (GCallback) gtk_icon_view_accessible_model_row_changed,
                          icon_view, NULL, 0);
   g_signal_connect_data (obj, "row-inserted",
-                         (GCallback) gtk_icon_view_accessible_model_row_inserted, 
+                         (GCallback) gtk_icon_view_accessible_model_row_inserted,
                          icon_view, NULL, G_CONNECT_AFTER);
   g_signal_connect_data (obj, "row-deleted",
-                         (GCallback) gtk_icon_view_accessible_model_row_deleted, 
+                         (GCallback) gtk_icon_view_accessible_model_row_deleted,
                          icon_view, NULL, G_CONNECT_AFTER);
   g_signal_connect_data (obj, "rows-reordered",
-                         (GCallback) gtk_icon_view_accessible_model_rows_reordered, 
+                         (GCallback) gtk_icon_view_accessible_model_rows_reordered,
                          icon_view, NULL, G_CONNECT_AFTER);
 }
 
 static void
-gtk_icon_view_accessible_clear_cache (GtkIconViewAccessiblePrivate *priv)
+gtk_icon_view_accessible_clear_cache (GtkIconViewAccessible *view)
 {
   GtkIconViewItemAccessibleInfo *info;
   GList *items;
 
-  items = priv->items;
+  items = view->items;
   while (items)
     {
       info = (GtkIconViewItemAccessibleInfo *) items->data;
@@ -8831,38 +8331,38 @@ gtk_icon_view_accessible_clear_cache (GtkIconViewAccessiblePrivate *priv)
       g_free (items->data);
       items = items->next;
     }
-  g_list_free (priv->items);
-  priv->items = NULL;
+  g_list_free (view->items);
+  view->items = NULL;
 }
 
 static void
-gtk_icon_view_accessible_notify_gtk (GObject *obj,
+gtk_icon_view_accessible_notify_gtk (GObject    *obj,
                                      GParamSpec *pspec)
 {
   GtkIconView *icon_view;
   GtkWidget *widget;
   AtkObject *atk_obj;
-  GtkIconViewAccessiblePrivate *priv;
+  GtkIconViewAccessible *view;
 
   if (strcmp (pspec->name, "model") == 0)
     {
-      widget = GTK_WIDGET (obj); 
+      widget = GTK_WIDGET (obj);
       atk_obj = gtk_widget_get_accessible (widget);
-      priv = gtk_icon_view_accessible_get_priv (atk_obj);
-      if (priv->model)
+      view = (GtkIconViewAccessible*)atk_obj;
+      if (view->model)
         {
-          g_object_remove_weak_pointer (G_OBJECT (priv->model),
-                                        (gpointer *)&priv->model);
-          gtk_icon_view_accessible_disconnect_model_signals (priv->model, widget);
+          g_object_remove_weak_pointer (G_OBJECT (view->model),
+                                        (gpointer *)&view->model);
+          gtk_icon_view_accessible_disconnect_model_signals (view->model, widget);
         }
-      gtk_icon_view_accessible_clear_cache (priv);
+      gtk_icon_view_accessible_clear_cache (view);
 
       icon_view = GTK_ICON_VIEW (obj);
-      priv->model = icon_view->priv->model;
+      view->model = icon_view->priv->model;
       /* If there is no model the GtkIconView is probably being destroyed */
-      if (priv->model)
+      if (view->model)
         {
-          g_object_add_weak_pointer (G_OBJECT (priv->model), (gpointer *)&priv->model);
+          g_object_add_weak_pointer (G_OBJECT (view->model), (gpointer *)&view->model);
           gtk_icon_view_accessible_connect_model_signals (icon_view);
         }
     }
@@ -8874,82 +8374,74 @@ static void
 gtk_icon_view_accessible_initialize (AtkObject *accessible,
                                      gpointer   data)
 {
-  GtkIconViewAccessiblePrivate *priv;
+  GtkIconViewAccessible *view;
   GtkIconView *icon_view;
 
-  if (ATK_OBJECT_CLASS (accessible_parent_class)->initialize)
-    ATK_OBJECT_CLASS (accessible_parent_class)->initialize (accessible, data);
+  if (ATK_OBJECT_CLASS (_gtk_icon_view_accessible_parent_class)->initialize)
+    ATK_OBJECT_CLASS (_gtk_icon_view_accessible_parent_class)->initialize (accessible, data);
 
-  priv = g_new0 (GtkIconViewAccessiblePrivate, 1);
-  g_object_set_qdata (G_OBJECT (accessible),
-                      accessible_private_data_quark,
-                      priv);
+  icon_view = (GtkIconView*)data;
+  view = (GtkIconViewAccessible*)accessible;
 
-  icon_view = GTK_ICON_VIEW (data);
   if (icon_view->priv->hadjustment)
     gtk_icon_view_accessible_set_adjustment (accessible,
-                                            GTK_ORIENTATION_HORIZONTAL,
-                                            icon_view->priv->hadjustment);
+                                             GTK_ORIENTATION_HORIZONTAL,
+                                             icon_view->priv->hadjustment);
   if (icon_view->priv->vadjustment)
     gtk_icon_view_accessible_set_adjustment (accessible,
-                                            GTK_ORIENTATION_VERTICAL,
-                                            icon_view->priv->vadjustment);
-  g_signal_connect (data,
-                    "notify",
-                    G_CALLBACK (gtk_icon_view_accessible_notify_gtk),
-                    NULL);
+                                             GTK_ORIENTATION_VERTICAL,
+                                             icon_view->priv->vadjustment);
+  g_signal_connect (data, "notify",
+                    G_CALLBACK (gtk_icon_view_accessible_notify_gtk), NULL);
 
-  priv->model = icon_view->priv->model;
-  if (priv->model)
+  view->model = icon_view->priv->model;
+  if (view->model)
     {
-      g_object_add_weak_pointer (G_OBJECT (priv->model), (gpointer *)&priv->model);
+      g_object_add_weak_pointer (G_OBJECT (view->model), (gpointer *)&view->model);
       gtk_icon_view_accessible_connect_model_signals (icon_view);
     }
-                          
+
   accessible->role = ATK_ROLE_LAYERED_PANE;
 }
 
 static void
 gtk_icon_view_accessible_finalize (GObject *object)
 {
-  GtkIconViewAccessiblePrivate *priv;
+  GtkIconViewAccessible *view = (GtkIconViewAccessible*)object;
 
-  priv = gtk_icon_view_accessible_get_priv (ATK_OBJECT (object));
-  gtk_icon_view_accessible_clear_cache (priv);
+  gtk_icon_view_accessible_clear_cache (view);
 
-  g_free (priv);
-
-  G_OBJECT_CLASS (accessible_parent_class)->finalize (object);
+  G_OBJECT_CLASS (_gtk_icon_view_accessible_parent_class)->finalize (object);
 }
 
 static void
-gtk_icon_view_accessible_destroyed (GtkWidget *widget,
+gtk_icon_view_accessible_destroyed (GtkWidget     *widget,
                                     GtkAccessible *accessible)
 {
   AtkObject *atk_obj;
-  GtkIconViewAccessiblePrivate *priv;
+  GtkIconViewAccessible *view;
 
   atk_obj = ATK_OBJECT (accessible);
-  priv = gtk_icon_view_accessible_get_priv (atk_obj);
-  if (priv->old_hadj)
+  view = (GtkIconViewAccessible*)atk_obj;
+  if (view->old_hadj)
     {
-      g_object_remove_weak_pointer (G_OBJECT (priv->old_hadj),
-                                    (gpointer *)&priv->old_hadj);
-          
-      g_signal_handlers_disconnect_by_func (priv->old_hadj,
+      g_object_remove_weak_pointer (G_OBJECT (view->old_hadj),
+                                    (gpointer *)&view->old_hadj);
+
+      g_signal_handlers_disconnect_by_func (view->old_hadj,
                                             (gpointer) gtk_icon_view_accessible_adjustment_changed,
                                             accessible);
-      priv->old_hadj = NULL;
+      view->old_hadj = NULL;
     }
-  if (priv->old_vadj)
+  if (view->old_vadj)
     {
-      g_object_remove_weak_pointer (G_OBJECT (priv->old_vadj),
-                                    (gpointer *)&priv->old_vadj);
-          
-      g_signal_handlers_disconnect_by_func (priv->old_vadj,
+      g_object_remove_weak_pointer (G_OBJECT (view->old_vadj),
+                                    (gpointer *)&view->old_vadj);
+
+      g_signal_handlers_disconnect_by_func (view->old_vadj,
                                             (gpointer) gtk_icon_view_accessible_adjustment_changed,
                                             accessible);
-      priv->old_vadj = NULL;
+      view->old_vadj = NULL;
     }
 }
 
@@ -8961,34 +8453,35 @@ gtk_icon_view_accessible_connect_widget_destroyed (GtkAccessible *accessible)
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
   if (widget)
     {
-      g_signal_connect_after (widget,
-                              "destroy",
-                              G_CALLBACK (gtk_icon_view_accessible_destroyed),
-                              accessible);
+      g_signal_connect_after (widget, "destroy",
+                              G_CALLBACK (gtk_icon_view_accessible_destroyed), accessible);
     }
-  GTK_ACCESSIBLE_CLASS (accessible_parent_class)->connect_widget_destroyed (accessible);
+  GTK_ACCESSIBLE_CLASS (_gtk_icon_view_accessible_parent_class)->connect_widget_destroyed (accessible);
 }
 
 static void
-gtk_icon_view_accessible_class_init (AtkObjectClass *klass)
+_gtk_icon_view_accessible_class_init (GtkIconViewAccessibleClass *klass)
 {
   GObjectClass *gobject_class;
   GtkAccessibleClass *accessible_class;
-
-  accessible_parent_class = g_type_class_peek_parent (klass);
+  AtkObjectClass *atk_class;
 
   gobject_class = (GObjectClass *)klass;
   accessible_class = (GtkAccessibleClass *)klass;
+  atk_class = (AtkObjectClass *)klass;
 
   gobject_class->finalize = gtk_icon_view_accessible_finalize;
 
-  klass->get_n_children = gtk_icon_view_accessible_get_n_children;
-  klass->ref_child = gtk_icon_view_accessible_ref_child;
-  klass->initialize = gtk_icon_view_accessible_initialize;
+  atk_class->get_n_children = gtk_icon_view_accessible_get_n_children;
+  atk_class->ref_child = gtk_icon_view_accessible_ref_child;
+  atk_class->initialize = gtk_icon_view_accessible_initialize;
 
   accessible_class->connect_widget_destroyed = gtk_icon_view_accessible_connect_widget_destroyed;
+}
 
-  accessible_private_data_quark = g_quark_from_static_string ("icon_view-accessible-private-data");
+static void
+_gtk_icon_view_accessible_init (GtkIconViewAccessible *accessible)
+{
 }
 
 static AtkObject*
@@ -9004,7 +8497,6 @@ gtk_icon_view_accessible_ref_accessible_at_point (AtkComponent *component,
 
   widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
   if (widget == NULL)
-  /* State is defunct */
     return NULL;
 
   icon_view = GTK_ICON_VIEW (widget);
@@ -9024,7 +8516,7 @@ atk_component_interface_init (AtkComponentIface *iface)
 
 static gboolean
 gtk_icon_view_accessible_add_selection (AtkSelection *selection,
-                                        gint i)
+                                        gint          i)
 {
   GtkWidget *widget;
   GtkIconView *icon_view;
@@ -9037,7 +8529,6 @@ gtk_icon_view_accessible_add_selection (AtkSelection *selection,
   icon_view = GTK_ICON_VIEW (widget);
 
   item = g_list_nth_data (icon_view->priv->items, i);
-
   if (!item)
     return FALSE;
 
@@ -9084,7 +8575,7 @@ gtk_icon_view_accessible_ref_selection (AtkSelection *selection,
       if (item->selected)
         {
           if (i == 0)
-           return atk_object_ref_accessible_child (gtk_widget_get_accessible (widget), item->index);
+            return atk_object_ref_accessible_child (gtk_widget_get_accessible (widget), item->index);
           else
             i--;
         }
@@ -9116,7 +8607,7 @@ gtk_icon_view_accessible_get_selection_count (AtkSelection *selection)
       item = l->data;
 
       if (item->selected)
-       count++;
+        count++;
 
       l = l->next;
     }
@@ -9196,7 +8687,7 @@ gtk_icon_view_accessible_select_all_selection (AtkSelection *selection)
 }
 
 static void
-gtk_icon_view_accessible_selection_interface_init (AtkSelectionIface *iface)
+atk_selection_interface_init (AtkSelectionIface *iface)
 {
   iface->add_selection = gtk_icon_view_accessible_add_selection;
   iface->clear_selection = gtk_icon_view_accessible_clear_selection;
@@ -9206,167 +8697,3 @@ gtk_icon_view_accessible_selection_interface_init (AtkSelectionIface *iface)
   iface->remove_selection = gtk_icon_view_accessible_remove_selection;
   iface->select_all_selection = gtk_icon_view_accessible_select_all_selection;
 }
-
-static GType
-gtk_icon_view_accessible_get_type (void)
-{
-  static GType type = 0;
-
-  if (!type)
-    {
-      GTypeInfo tinfo =
-      {
-        0, /* class size */
-        (GBaseInitFunc) NULL, /* base init */
-        (GBaseFinalizeFunc) NULL, /* base finalize */
-        (GClassInitFunc) gtk_icon_view_accessible_class_init,
-        (GClassFinalizeFunc) NULL, /* class finalize */
-        NULL, /* class data */
-        0, /* instance size */
-        0, /* nb preallocs */
-        (GInstanceInitFunc) NULL, /* instance init */
-        NULL /* value table */
-      };
-      const GInterfaceInfo atk_component_info =
-      {
-        (GInterfaceInitFunc) atk_component_interface_init,
-        (GInterfaceFinalizeFunc) NULL,
-        NULL
-      };
-      const GInterfaceInfo atk_selection_info =
-      {
-        (GInterfaceInitFunc) gtk_icon_view_accessible_selection_interface_init,
-        (GInterfaceFinalizeFunc) NULL,
-        NULL
-      };
-
-      /*
-       * Figure out the size of the class and instance
-       * we are deriving from
-       */
-      AtkObjectFactory *factory;
-      GType derived_type;
-      GTypeQuery query;
-      GType derived_atk_type;
-
-      derived_type = g_type_parent (GTK_TYPE_ICON_VIEW);
-      factory = atk_registry_get_factory (atk_get_default_registry (), 
-                                          derived_type);
-      derived_atk_type = atk_object_factory_get_accessible_type (factory);
-      g_type_query (derived_atk_type, &query);
-      tinfo.class_size = query.class_size;
-      tinfo.instance_size = query.instance_size;
-      type = g_type_register_static (derived_atk_type, 
-                                     I_("GtkIconViewAccessible"), 
-                                     &tinfo, 0);
-      g_type_add_interface_static (type, ATK_TYPE_COMPONENT,
-                                   &atk_component_info);
-      g_type_add_interface_static (type, ATK_TYPE_SELECTION,
-                                   &atk_selection_info);
-    }
-  return type;
-}
-
-static AtkObject *
-gtk_icon_view_accessible_new (GObject *obj)
-{
-  AtkObject *accessible;
-
-  g_return_val_if_fail (GTK_IS_WIDGET (obj), NULL);
-
-  accessible = g_object_new (gtk_icon_view_accessible_get_type (), NULL);
-  atk_object_initialize (accessible, obj);
-
-  return accessible;
-}
-
-static GType
-gtk_icon_view_accessible_factory_get_accessible_type (void)
-{
-  return gtk_icon_view_accessible_get_type ();
-}
-
-static AtkObject*
-gtk_icon_view_accessible_factory_create_accessible (GObject *obj)
-{
-  return gtk_icon_view_accessible_new (obj);
-}
-
-static void
-gtk_icon_view_accessible_factory_class_init (AtkObjectFactoryClass *klass)
-{
-  klass->create_accessible = gtk_icon_view_accessible_factory_create_accessible;
-  klass->get_accessible_type = gtk_icon_view_accessible_factory_get_accessible_type;
-}
-
-static GType
-gtk_icon_view_accessible_factory_get_type (void)
-{
-  static GType type = 0;
-
-  if (!type)
-    {
-      const GTypeInfo tinfo =
-      {
-        sizeof (AtkObjectFactoryClass),
-        NULL,           /* base_init */
-        NULL,           /* base_finalize */
-        (GClassInitFunc) gtk_icon_view_accessible_factory_class_init,
-        NULL,           /* class_finalize */
-        NULL,           /* class_data */
-        sizeof (AtkObjectFactory),
-        0,             /* n_preallocs */
-        NULL, NULL
-      };
-
-      type = g_type_register_static (ATK_TYPE_OBJECT_FACTORY, 
-                                    I_("GtkIconViewAccessibleFactory"),
-                                    &tinfo, 0);
-    }
-  return type;
-}
-
-
-static AtkObject *
-gtk_icon_view_get_accessible (GtkWidget *widget)
-{
-  static gboolean first_time = TRUE;
-
-  if (first_time)
-    {
-      _gtk_accessible_set_factory_type (GTK_TYPE_ICON_VIEW,
-                                        gtk_icon_view_accessible_factory_get_type ());
-      first_time = FALSE;
-    }
-  return GTK_WIDGET_CLASS (gtk_icon_view_parent_class)->get_accessible (widget);
-}
-
-static gboolean
-gtk_icon_view_buildable_custom_tag_start (GtkBuildable  *buildable,
-                                         GtkBuilder    *builder,
-                                         GObject       *child,
-                                         const gchar   *tagname,
-                                         GMarkupParser *parser,
-                                         gpointer      *data)
-{
-  if (parent_buildable_iface->custom_tag_start (buildable, builder, child,
-                                               tagname, parser, data))
-    return TRUE;
-
-  return _gtk_cell_layout_buildable_custom_tag_start (buildable, builder, child,
-                                                     tagname, parser, data);
-}
-
-static void
-gtk_icon_view_buildable_custom_tag_end (GtkBuildable *buildable,
-                                       GtkBuilder   *builder,
-                                       GObject      *child,
-                                       const gchar  *tagname,
-                                       gpointer     *data)
-{
-  if (!_gtk_cell_layout_buildable_custom_tag_end (buildable, builder, 
-                                                 child, tagname, data))
-    parent_buildable_iface->custom_tag_end (buildable, builder, child, tagname,
-                                           data);
-}
index 6fbb7183f9e6fd3cbae8c3adb92741bfeaadf9d2..d0cac9677bd97632ec9a6b5f3d75e3460c80dfc9 100644 (file)
@@ -39,6 +39,8 @@
 #include "gtkprivate.h"
 #include "gtktypebuiltins.h"
 
+#include "a11y/gtkimageaccessible.h"
+
 /**
  * SECTION:gtkimage
  * @Short_description: A widget displaying an image
@@ -357,6 +359,8 @@ gtk_image_class_init (GtkImageClass *class)
                                                          GTK_PARAM_READWRITE));
 
   g_type_class_add_private (class, sizeof (GtkImagePrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_IMAGE_ACCESSIBLE);
 }
 
 static void
index 685429d9be7d666321c50d1fe74a7f12e4493600..0b7ee8833235b8391f193fb5aa8cd15b389fd246 100644 (file)
@@ -52,6 +52,7 @@
 #include "gtkprivate.h"
 #include "gtktypebuiltins.h"
 
+#include "a11y/gtklabelaccessible.h"
 
 /**
  * SECTION:gtklabel
@@ -464,6 +465,7 @@ static void gtk_label_select_region_index (GtkLabel *label,
                                            gint      anchor_index,
                                            gint      end_index);
 
+
 static gboolean gtk_label_mnemonic_activate (GtkWidget         *widget,
                                             gboolean           group_cycling);
 static void     gtk_label_setup_mnemonic    (GtkLabel          *label,
@@ -1093,6 +1095,8 @@ gtk_label_class_init (GtkLabelClass *class)
                                "activate-current-link", 0);
 
   g_type_class_add_private (class, sizeof (GtkLabelPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_LABEL_ACCESSIBLE);
 }
 
 static void 
@@ -1201,24 +1205,10 @@ gtk_label_get_property (GObject     *object,
       g_value_set_object (value, (GObject*) priv->mnemonic_widget);
       break;
     case PROP_CURSOR_POSITION:
-      if (priv->select_info && priv->select_info->selectable)
-       {
-         gint offset = g_utf8_pointer_to_offset (priv->text,
-                                                 priv->text + priv->select_info->selection_end);
-         g_value_set_int (value, offset);
-       }
-      else
-       g_value_set_int (value, 0);
+      g_value_set_int (value, _gtk_label_get_cursor_position (label));
       break;
     case PROP_SELECTION_BOUND:
-      if (priv->select_info && priv->select_info->selectable)
-       {
-         gint offset = g_utf8_pointer_to_offset (priv->text,
-                                                 priv->text + priv->select_info->selection_anchor);
-         g_value_set_int (value, offset);
-       }
-      else
-       g_value_set_int (value, 0);
+      g_value_set_int (value, _gtk_label_get_selection_bound (label));
       break;
     case PROP_ELLIPSIZE:
       g_value_set_enum (value, priv->ellipsize);
@@ -2830,7 +2820,7 @@ void
 gtk_label_set_pattern (GtkLabel           *label,
                       const gchar *pattern)
 {
-  GtkLabelPrivate *priv = label->priv;
+  GtkLabelPrivate *priv;
 
   g_return_if_fail (GTK_IS_LABEL (label));
 
@@ -5438,14 +5428,24 @@ gtk_label_select_region_index (GtkLabel *label,
       GtkClipboard *clipboard;
 
       if (priv->select_info->selection_anchor == anchor_index &&
-         priv->select_info->selection_end == end_index)
-       return;
+          priv->select_info->selection_end == end_index)
+        return;
+
+      g_object_freeze_notify (G_OBJECT (label));
+
+      if (priv->select_info->selection_anchor != anchor_index)
+        g_object_notify (G_OBJECT (label), "selection-bound");
+      if (priv->select_info->selection_end != end_index)
+        g_object_notify (G_OBJECT (label), "cursor-position");
 
       priv->select_info->selection_anchor = anchor_index;
       priv->select_info->selection_end = end_index;
 
-      clipboard = gtk_widget_get_clipboard (GTK_WIDGET (label),
-                                           GDK_SELECTION_PRIMARY);
+      if (gtk_widget_has_screen (GTK_WIDGET (label)))
+        clipboard = gtk_widget_get_clipboard (GTK_WIDGET (label),
+                                              GDK_SELECTION_PRIMARY);
+      else
+        clipboard = NULL;
 
       if (anchor_index != end_index)
         {
@@ -5457,26 +5457,25 @@ gtk_label_select_region_index (GtkLabel *label,
           gtk_target_list_add_text_targets (list, 0);
           targets = gtk_target_table_new_from_list (list, &n_targets);
 
-          gtk_clipboard_set_with_owner (clipboard,
-                                        targets, n_targets,
-                                        get_text_callback,
-                                        clear_text_callback,
-                                        G_OBJECT (label));
+          if (clipboard)
+            gtk_clipboard_set_with_owner (clipboard,
+                                          targets, n_targets,
+                                          get_text_callback,
+                                          clear_text_callback,
+                                          G_OBJECT (label));
 
           gtk_target_table_free (targets, n_targets);
           gtk_target_list_unref (list);
         }
       else
         {
-          if (gtk_clipboard_get_owner (clipboard) == G_OBJECT (label))
+          if (clipboard &&
+              gtk_clipboard_get_owner (clipboard) == G_OBJECT (label))
             gtk_clipboard_clear (clipboard);
         }
 
       gtk_widget_queue_draw (GTK_WIDGET (label));
 
-      g_object_freeze_notify (G_OBJECT (label));
-      g_object_notify (G_OBJECT (label), "cursor-position");
-      g_object_notify (G_OBJECT (label), "selection-bound");
       g_object_thaw_notify (G_OBJECT (label));
     }
 }
@@ -5658,8 +5657,12 @@ gtk_label_set_use_markup (GtkLabel *label,
 {
   g_return_if_fail (GTK_IS_LABEL (label));
 
+  g_object_freeze_notify (G_OBJECT (label));
+
   gtk_label_set_use_markup_internal (label, setting);
   gtk_label_recalculate (label);
+
+  g_object_thaw_notify (G_OBJECT (label));
 }
 
 /**
@@ -5694,8 +5697,12 @@ gtk_label_set_use_underline (GtkLabel *label,
 {
   g_return_if_fail (GTK_IS_LABEL (label));
 
+  g_object_freeze_notify (G_OBJECT (label));
+
   gtk_label_set_use_underline_internal (label, setting);
   gtk_label_recalculate (label);
+
+  g_object_thaw_notify (G_OBJECT (label));
 }
 
 /**
@@ -6647,3 +6654,27 @@ gtk_label_query_tooltip (GtkWidget  *widget,
                                                                    keyboard_tip,
                                                                    tooltip);
 }
+
+gint
+_gtk_label_get_cursor_position (GtkLabel *label)
+{
+  GtkLabelPrivate *priv = label->priv;
+
+  if (priv->select_info && priv->select_info->selectable)
+    return g_utf8_pointer_to_offset (priv->text,
+                                     priv->text + priv->select_info->selection_end);
+
+  return 0;
+}
+
+gint
+_gtk_label_get_selection_bound (GtkLabel *label)
+{
+  GtkLabelPrivate *priv = label->priv;
+
+  if (priv->select_info && priv->select_info->selectable)
+    return g_utf8_pointer_to_offset (priv->text,
+                                     priv->text + priv->select_info->selection_anchor);
+
+  return 0;
+}
index f22c84df79c714eb9e491b9dcef88da48e6b3e94..38d4052d720936b64987ef2e99d099ffe638814a 100644 (file)
@@ -169,6 +169,8 @@ gboolean     gtk_label_get_track_visited_links  (GtkLabel *label);
 
 void _gtk_label_mnemonics_visible_apply_recursively (GtkWidget *widget,
                                                      gboolean   mnemonics_visible);
+gint _gtk_label_get_cursor_position (GtkLabel *label);
+gint _gtk_label_get_selection_bound (GtkLabel *label);
 
 G_END_DECLS
 
index b98972fe62cd6e716d1e6b5a75007561d0a05e3b..cafa3aaacb36564ab872f4bf34be7b8c2095bfbc 100644 (file)
@@ -63,9 +63,9 @@
 #include "gtkstock.h"
 #include "gtkshow.h"
 #include "gtktooltip.h"
-
 #include "gtkintl.h"
 
+#include "a11y/gtklinkbuttonaccessible.h"
 
 struct _GtkLinkButtonPrivate
 {
@@ -214,6 +214,8 @@ gtk_link_button_class_init (GtkLinkButtonClass *klass)
                   _gtk_boolean_handled_accumulator, NULL,
                   _gtk_marshal_BOOLEAN__VOID,
                   G_TYPE_BOOLEAN, 0);
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_LINK_BUTTON_ACCESSIBLE);
 }
 
 static void
index 1844a8bbcf10325998b527e734c77da475003b75..b6533e4d80d9838e5819f372318b8323340e37f5 100644 (file)
@@ -939,7 +939,7 @@ gtk_list_store_set_value (GtkListStore *list_store,
                          gint          column,
                          GValue       *value)
 {
-  GtkListStorePrivate *priv = list_store->priv;
+  GtkListStorePrivate *priv;
 
   g_return_if_fail (GTK_IS_LIST_STORE (list_store));
   g_return_if_fail (iter_is_valid (iter, list_store));
index d941bb835c177a5912ffab1dd3c5c1dc71ae2fde..f26a9f53cd8dbd9b4ff654b13d43d98100f126a2 100644 (file)
@@ -811,6 +811,9 @@ gettext_initialization (void)
 #endif  
 }
 
+/* XXX: Remove me after getting rid of gail */
+extern void _gtk_accessibility_init (void);
+
 static void
 do_post_parse_initialization (int    *argc,
                               char ***argv)
@@ -868,6 +871,8 @@ do_post_parse_initialization (int    *argc,
     {
       _gtk_modules_init (argc, argv, NULL);
     }
+
+  _gtk_accessibility_init ();
 }
 
 
index 3dbbc049b5bc9537511e11bc7dc726948e57e063..c50abda9dd025f39318813ec59d419a8cefebf2c 100644 (file)
 #include "gtkwidgetprivate.h"
 #include "gtkintl.h"
 #include "gtktypebuiltins.h"
+#include "a11y/gtkmenuaccessible.h"
 
 #define NAVIGATION_REGION_OVERSHOOT 50  /* How much the navigation region
                                          * extends below the submenu
@@ -882,6 +883,8 @@ gtk_menu_class_init (GtkMenuClass *class)
                                 GTK_SCROLL_PAGE_DOWN);
 
   g_type_class_add_private (gobject_class, sizeof (GtkMenuPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_MENU_ACCESSIBLE);
 }
 
 
index c54bc79244be6778f100cc5f278d2530d213d880..428cf51fb74b3e4643bfb378e1c3c0ef5e14021f 100644 (file)
@@ -130,6 +130,8 @@ gtk_menu_bar_class_init (GtkMenuBarClass *class)
   widget_class->draw = gtk_menu_bar_draw;
   widget_class->hierarchy_changed = gtk_menu_bar_hierarchy_changed;
   
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_MENU_BAR);
+
   menu_shell_class->submenu_placement = GTK_TOP_BOTTOM;
   menu_shell_class->get_popup_delay = gtk_menu_bar_get_popup_delay;
   menu_shell_class->move_current = gtk_menu_bar_move_current;
index 32d35e480ab7d15359ca854e962c16c20d4bf534..d21b36302810dc1369b300137f9f33084b433a08 100644 (file)
@@ -43,6 +43,7 @@
 #include "gtkwidgetprivate.h"
 #include "gtkintl.h"
 #include "gtktypebuiltins.h"
+#include "a11y/gtkmenuitemaccessible.h"
 
 
 /**
@@ -207,7 +208,6 @@ G_DEFINE_TYPE_WITH_CODE (GtkMenuItem, gtk_menu_item, GTK_TYPE_BIN,
                          G_IMPLEMENT_INTERFACE (GTK_TYPE_ACTIVATABLE,
                                                 gtk_menu_item_activatable_interface_init))
 
-
 static void
 gtk_menu_item_class_init (GtkMenuItemClass *klass)
 {
@@ -236,6 +236,8 @@ gtk_menu_item_class_init (GtkMenuItemClass *klass)
   widget_class->get_preferred_height = gtk_menu_item_get_preferred_height;
   widget_class->get_preferred_height_for_width = gtk_menu_item_get_preferred_height_for_width;
 
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_MENU_ITEM_ACCESSIBLE);
+
   container_class->forall = gtk_menu_item_forall;
 
   klass->activate = gtk_real_menu_item_activate;
index 548bcaa809db51b60ca2a84a8d3cb116b8338f2c..9d87b818a6a54ce8df297551f96adf6b5b91c056 100644 (file)
@@ -54,6 +54,7 @@
 #include "gtkprivate.h"
 #include "gtkintl.h"
 #include "gtktypebuiltins.h"
+#include "a11y/gtkmenushellaccessible.h"
 
 #define MENU_SHELL_TIMEOUT   500
 
@@ -422,6 +423,8 @@ gtk_menu_shell_class_init (GtkMenuShellClass *klass)
                                                          TRUE,
                                                          GTK_PARAM_READWRITE));
 
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_MENU_SHELL_ACCESSIBLE);
+
   g_type_class_add_private (object_class, sizeof (GtkMenuShellPrivate));
 }
 
index e0c8316a2126a7a00e43e3b3a5e023ff444a42f6..bd3a1306eeb22e4e3fe3809c27dd280bf23a637a 100644 (file)
@@ -177,6 +177,8 @@ gtk_message_dialog_class_init (GtkMessageDialogClass *class)
   
   widget_class->style_updated = gtk_message_dialog_style_updated;
 
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_ALERT);
+
   gobject_class->set_property = gtk_message_dialog_set_property;
   gobject_class->get_property = gtk_message_dialog_get_property;
   
@@ -376,6 +378,8 @@ gtk_message_dialog_init (GtkMessageDialog *dialog)
   gtk_container_set_border_width (GTK_CONTAINER (action_area), 5);
   gtk_box_set_spacing (GTK_BOX (action_area), 6);
 
+  gtk_message_dialog_style_updated (GTK_WIDGET (dialog));
+
   gtk_widget_show_all (hbox);
 }
 
@@ -389,7 +393,7 @@ setup_primary_label_font (GtkMessageDialog *dialog)
   GtkStateFlags state;
 
   /* unset the font settings */
-  gtk_widget_modify_font (priv->label, NULL);
+  gtk_widget_override_font (priv->label, NULL);
 
   if (priv->has_secondary_text && !priv->has_primary_markup)
     {
@@ -400,7 +404,7 @@ setup_primary_label_font (GtkMessageDialog *dialog)
       font_desc = pango_font_description_new ();
       pango_font_description_set_weight (font_desc, PANGO_WEIGHT_BOLD);
       pango_font_description_set_size (font_desc, size * PANGO_SCALE_LARGE);
-      gtk_widget_modify_font (priv->label, font_desc);
+      gtk_widget_override_font (priv->label, font_desc);
       pango_font_description_free (font_desc);
     }
 }
index 5fa2abf8a13ffd35a42526ff3da7fa6c830730bf..57765256bb60575ba32d6c1f0089113895de40aa 100644 (file)
@@ -258,6 +258,18 @@ cmp_module (GtkModuleInfo *info,
   return info->module != module;
 }
 
+static gboolean
+module_is_blacklisted (const gchar *name)
+{
+  if (g_str_equal (name, "gail"))
+    {
+      g_message ("Not loading module \"gail\": The functionality is provided by GTK natively. Please try to not load it.");
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
 static GSList *
 load_module (GSList      *module_list,
             const gchar *name)
@@ -289,7 +301,14 @@ load_module (GSList      *module_list,
 
          if (module)
            {
-             if (g_module_symbol (module, "gtk_module_init", &modinit_func_ptr))
+              /* Do the check this late so we only warn about existing modules,
+               * not old modules that are still in the modules path. */
+              if (module_is_blacklisted (name))
+                {
+                  modinit_func = NULL;
+                  success = TRUE;
+                }
+              else if (g_module_symbol (module, "gtk_module_init", &modinit_func_ptr))
                modinit_func = modinit_func_ptr;
              else
                modinit_func = NULL;
index d757139c74bafbc524a82d70189c7667935a073e..1663a028a47a1a4d36130f479ba24b9f20a7cf9c 100644 (file)
 #include <signal.h>
 #include <errno.h>
 
+#if defined(__OpenBSD__)
+#include <kvm.h>
+#include <fcntl.h>
+#include <sys/sysctl.h>
+#endif
+
 #include "gtkmountoperationprivate.h"
 
 /* ---------------------------------------------------------------------------------------------------- */
@@ -711,6 +717,100 @@ pid_get_command_line (GPid pid)
 }
 
 /* ---------------------------------------------------------------------------------------------------- */
+
+#elif defined(__OpenBSD__)
+
+/* ---------------------------------------------------------------------------------------------------- */
+
+static GPid
+pid_get_parent (GPid pid)
+{
+  struct kinfo_proc *proc;
+  int count;
+  kvm_t *kvm;
+  GPid ppid = 0;
+
+  kvm = kvm_openfiles (NULL, NULL, NULL, KVM_NO_FILES, NULL);
+  if (kvm == NULL)
+    return 0;
+
+  proc = kvm_getprocs (kvm, KERN_PROC_PID, pid, sizeof(struct kinfo_proc), &count);
+  if (count == 1)
+    ppid = proc->p_ppid;
+
+  kvm_close (kvm);
+  return ppid;
+}
+
+static gchar *
+pid_get_env (GPid pid, const gchar *key)
+{
+  kvm_t *kvm;
+  struct kinfo_proc *proc;
+  char **strs;
+  char *ret;
+  char *end;
+  int key_len;
+  int count;
+  int i;
+
+  kvm = kvm_openfiles (NULL, NULL, NULL, KVM_NO_FILES, NULL);
+  if (kvm == NULL)
+    return NULL;
+
+  key_len = strlen (key);
+
+  ret = NULL;
+  proc = kvm_getprocs (kvm, KERN_PROC_PID, pid, sizeof(struct kinfo_proc), &count);
+  if (proc != NULL)
+    {
+      strs = kvm_getenvv (kvm, proc, 0);
+      for (i = 0; strs[i] != NULL; i++)
+       {
+         if (g_str_has_prefix (strs[i], key) && (*(strs[i] + key_len) == '='))
+           {
+             ret = g_strdup (strs[i] + key_len + 1);
+
+             /* skip invalid UTF-8 */
+             if (!g_utf8_validate (ret, -1, (const gchar **) &end))
+               *end = '\0';
+             break;
+           }
+       }
+    }
+
+  kvm_close (kvm);
+  return ret;
+}
+
+static gchar *
+pid_get_command_line (GPid pid)
+{
+  kvm_t *kvm;
+  struct kinfo_proc *proc;
+  int count;
+  char **strs;
+  char *ret;
+  char *end;
+
+  kvm = kvm_openfiles (NULL, NULL, NULL, KVM_NO_FILES, NULL);
+  if (kvm == NULL)
+    return NULL;
+
+  proc = kvm_getprocs (kvm, KERN_PROC_PID, pid, sizeof (struct kinfo_proc), &count);
+  if (proc == NULL)
+    return NULL;
+
+  strs = kvm_getargv (kvm, proc, 0);
+  ret = g_strjoinv (" ", strs);
+  /* skip invalid UTF-8 */
+  if (!g_utf8_validate (ret, -1, (const gchar **) &end))
+    *end = '\0';
+
+  kvm_close (kvm);
+  return ret;
+}
+
 #else
 
 /* TODO: please implement for your OS - must return valid UTF-8 */
index 5bf3de5b6bcc33924e851f82f8324b7e09d706ce..8cf23c40c38becfe94dda1bd648fd39429877035 100644 (file)
@@ -43,6 +43,7 @@
 #include "gtkdnd.h"
 #include "gtkbuildable.h"
 #include "gtktypebuiltins.h"
+#include "a11y/gtknotebookaccessible.h"
 
 
 /**
@@ -163,8 +164,6 @@ struct _GtkNotebookPrivate
   guint          during_reorder     : 1;
   guint          focus_out          : 1; /* Flag used by ::move-focus-out implementation */
   guint          has_scrolled       : 1;
-  guint          have_visible_child : 1;
-  guint          homogeneous        : 1;
   guint          in_child           : 3;
   guint          need_timer         : 1;
   guint          show_border        : 1;
@@ -1152,6 +1151,8 @@ gtk_notebook_class_init (GtkNotebookClass *class)
   add_tab_bindings (binding_set, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
 
   g_type_class_add_private (class, sizeof (GtkNotebookPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_NOTEBOOK_ACCESSIBLE);
 }
 
 static void
@@ -1187,7 +1188,6 @@ gtk_notebook_init (GtkNotebook *notebook)
   priv->button = 0;
   priv->need_timer = 0;
   priv->child_has_focus = FALSE;
-  priv->have_visible_child = FALSE;
   priv->focus_out = FALSE;
 
   priv->has_before_previous = 1;
@@ -2086,10 +2086,7 @@ gtk_notebook_get_preferred_tabs_size (GtkNotebook    *notebook,
               if (!gtk_widget_get_visible (page->child))
                 continue;
 
-              if (priv->homogeneous)
-                page->requisition.width = tab_max;
-              else
-                page->requisition.width += padding;
+              page->requisition.width += padding;
 
               tab_width += page->requisition.width;
               page->requisition.height = tab_height;
@@ -2101,10 +2098,7 @@ gtk_notebook_get_preferred_tabs_size (GtkNotebook    *notebook,
 
           action_width += action_widget_requisition[ACTION_WIDGET_START].width;
           action_width += action_widget_requisition[ACTION_WIDGET_END].width;
-          if (priv->homogeneous && !priv->scrollable)
-            requisition->width = vis_pages * tab_max + tab_overlap + action_width;
-          else
-            requisition->width = tab_width + tab_overlap + action_width;
+          requisition->width = tab_width + tab_overlap + action_width;
 
           requisition->height = tab_height;
           break;
@@ -2132,10 +2126,7 @@ gtk_notebook_get_preferred_tabs_size (GtkNotebook    *notebook,
 
               page->requisition.width = tab_width;
 
-              if (priv->homogeneous)
-                page->requisition.height = tab_max;
-              else
-                page->requisition.height += padding;
+              page->requisition.height += padding;
 
               tab_height += page->requisition.height;
             }
@@ -2146,15 +2137,9 @@ gtk_notebook_get_preferred_tabs_size (GtkNotebook    *notebook,
           action_height += action_widget_requisition[ACTION_WIDGET_START].height;
           action_height += action_widget_requisition[ACTION_WIDGET_END].height;
 
-          if (priv->homogeneous && !priv->scrollable)
-            requisition->height = vis_pages * tab_max + tab_overlap + action_height;
-          else
-            requisition->height = tab_height + tab_overlap + action_height;
+          requisition->height = tab_height + tab_overlap + action_height;
 
-          if (!priv->homogeneous || priv->scrollable)
-            vis_pages = 1;
-          requisition->height = MAX (requisition->height,
-                                     vis_pages * tab_max + tab_overlap);
+          requisition->height = MAX (requisition->height, tab_max + tab_overlap);
 
           requisition->width = tab_width;
           break;
@@ -5746,10 +5731,6 @@ gtk_notebook_calculate_shown_tabs (GtkNotebook  *notebook,
               (gtk_widget_compute_expand (page->tab_label, tab_expand_orientation)))
             (*n)++;
         }
-
-      /* if notebook is homogeneous, all tabs are expanded */
-      if (priv->homogeneous && *n)
-        *n = c;
     }
 }
 
@@ -5878,7 +5859,7 @@ gtk_notebook_calculate_tabs_allocation (GtkNotebook  *notebook,
         continue;
 
       tab_extra_space = 0;
-      if (*expanded_tabs && (showarrow || page->expand || gtk_widget_compute_expand (page->tab_label, tab_expand_orientation) || priv->homogeneous))
+      if (*expanded_tabs && (showarrow || page->expand || gtk_widget_compute_expand (page->tab_label, tab_expand_orientation)))
         {
           tab_extra_space = *remaining_space / *expanded_tabs;
           *remaining_space -= tab_extra_space;
index f99721033f8d6c6c12961619e897ded395804309..e2e761f7de5002514faea5f83a06060f406ce43e 100644 (file)
@@ -36,7 +36,7 @@
 #include "gtktypebuiltins.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
-
+#include "a11y/gtkpanedaccessible.h"
 
 /**
  * SECTION:gtkpaned
@@ -653,6 +653,7 @@ gtk_paned_class_init (GtkPanedClass *class)
   add_move_binding (binding_set, GDK_KEY_KP_End, 0, GTK_SCROLL_END);
 
   g_type_class_add_private (object_class, sizeof (GtkPanedPrivate));
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_PANED_ACCESSIBLE);
 }
 
 static GType
index be6eb4e57e963e26d7069532164c81e0251bcd2d..6af3a8337c8d703e4e46ba56181ebbb2e65fd8fe 100644 (file)
@@ -1,4 +1,4 @@
-/* gtktextdisplay.c - display layed-out text
+/* gtkpango.c - pango-related utilities
  *
  * Copyright (c) 2010 Red Hat, Inc.
  *
@@ -24,6 +24,7 @@
  */
 
 #include "config.h"
+#include "gtkpango.h"
 #include <pango/pangocairo.h>
 #include "gtkintl.h"
 
@@ -231,3 +232,1058 @@ _gtk_pango_fill_layout (cairo_t     *cr,
     cairo_move_to (cr, current_x, current_y);
 }
 
+static AtkAttributeSet *
+add_attribute (AtkAttributeSet  *attributes,
+               AtkTextAttribute  attr,
+               const gchar      *value)
+{
+  AtkAttribute *at;
+
+  at = g_new (AtkAttribute, 1);
+  at->name = g_strdup (atk_text_attribute_get_name (attr));
+  at->value = g_strdup (value);
+
+  return g_slist_prepend (attributes, at);
+}
+
+/*
+ * _gtk_pango_get_default_attributes:
+ * @attributes: a #AtkAttributeSet to add the attributes to
+ * @layout: the #PangoLayout from which to get attributes
+ *
+ * Adds the default text attributes from @layout to @attributes,
+ * after translating them from Pango attributes to ATK attributes.
+ *
+ * This is a convenience function that can be used to implement
+ * support for the #AtkText interface in widgets using Pango
+ * layouts.
+ *
+ * Returns: the modified @attributes
+ */
+AtkAttributeSet*
+_gtk_pango_get_default_attributes (AtkAttributeSet *attributes,
+                                   PangoLayout     *layout)
+{
+  PangoContext *context;
+  gint i;
+  PangoWrapMode mode;
+
+  context = pango_layout_get_context (layout);
+  if (context)
+    {
+      PangoLanguage *language;
+      PangoFontDescription *font;
+
+      language = pango_context_get_language (context);
+      if (language)
+        attributes = add_attribute (attributes, ATK_TEXT_ATTR_LANGUAGE,
+                         pango_language_to_string (language));
+
+      font = pango_context_get_font_description (context);
+      if (font)
+        {
+          gchar buf[60];
+          attributes = add_attribute (attributes, ATK_TEXT_ATTR_STYLE,
+                           atk_text_attribute_get_value (ATK_TEXT_ATTR_STYLE,
+                                 pango_font_description_get_style (font)));
+          attributes = add_attribute (attributes, ATK_TEXT_ATTR_VARIANT,
+                           atk_text_attribute_get_value (ATK_TEXT_ATTR_VARIANT,
+                                 pango_font_description_get_variant (font)));
+          attributes = add_attribute (attributes, ATK_TEXT_ATTR_STRETCH,
+                           atk_text_attribute_get_value (ATK_TEXT_ATTR_STRETCH,
+                                 pango_font_description_get_stretch (font)));
+          attributes = add_attribute (attributes, ATK_TEXT_ATTR_FAMILY_NAME,
+                           pango_font_description_get_family (font));
+          g_snprintf (buf, 60, "%d", pango_font_description_get_weight (font));
+          attributes = add_attribute (attributes, ATK_TEXT_ATTR_WEIGHT, buf);
+          g_snprintf (buf, 60, "%i", pango_font_description_get_size (font) / PANGO_SCALE);
+          attributes = add_attribute (attributes, ATK_TEXT_ATTR_SIZE, buf);
+        }
+    }
+  if (pango_layout_get_justify (layout))
+    {
+      i = 3;
+    }
+  else
+    {
+      PangoAlignment align;
+
+      align = pango_layout_get_alignment (layout);
+      if (align == PANGO_ALIGN_LEFT)
+        i = 0;
+      else if (align == PANGO_ALIGN_CENTER)
+        i = 2;
+      else   /* PANGO_ALIGN_RIGHT */
+        i = 1;
+    }
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_JUSTIFICATION,
+                   atk_text_attribute_get_value (ATK_TEXT_ATTR_JUSTIFICATION, i));
+  mode = pango_layout_get_wrap (layout);
+  if (mode == PANGO_WRAP_WORD)
+    i = 2;
+  else   /* PANGO_WRAP_CHAR */
+    i = 1;
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_WRAP_MODE,
+                   atk_text_attribute_get_value (ATK_TEXT_ATTR_WRAP_MODE, i));
+
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_STRIKETHROUGH,
+                   atk_text_attribute_get_value (ATK_TEXT_ATTR_STRIKETHROUGH, 0));
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_UNDERLINE,
+                   atk_text_attribute_get_value (ATK_TEXT_ATTR_UNDERLINE, 0));
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_RISE, "0");
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_SCALE, "1");
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_BG_FULL_HEIGHT, "0");
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP, "0");
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_PIXELS_BELOW_LINES, "0");
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_PIXELS_ABOVE_LINES, "0");
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_EDITABLE,
+                   atk_text_attribute_get_value (ATK_TEXT_ATTR_EDITABLE, 0));
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_INVISIBLE,
+                   atk_text_attribute_get_value (ATK_TEXT_ATTR_INVISIBLE, 0));
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_INDENT, "0");
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_RIGHT_MARGIN, "0");
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_LEFT_MARGIN, "0");
+
+  return attributes;
+}
+
+/*
+ * _gtk_pango_get_run_attributes:
+ * @attributes: a #AtkAttributeSet to add attributes to
+ * @layout: the #PangoLayout to get the attributes from
+ * @offset: the offset at which the attributes are wanted
+ * @start_offset: return location for the starting offset
+ *    of the current run
+ * @end_offset: return location for the ending offset of the
+ *    current run
+ *
+ * Finds the 'run' around index (i.e. the maximal range of characters
+ * where the set of applicable attributes remains constant) and
+ * returns the starting and ending offsets for it.
+ *
+ * The attributes for the run are added to @attributes, after
+ * translating them from Pango attributes to ATK attributes.
+ *
+ * This is a convenience function that can be used to implement
+ * support for the #AtkText interface in widgets using Pango
+ * layouts.
+ *
+ * Returns: the modified #AtkAttributeSet
+ */
+AtkAttributeSet *
+_gtk_pango_get_run_attributes (AtkAttributeSet *attributes,
+                               PangoLayout     *layout,
+                               gint             offset,
+                               gint            *start_offset,
+                               gint            *end_offset)
+{
+  PangoAttrIterator *iter;
+  PangoAttrList *attr;
+  PangoAttrString *pango_string;
+  PangoAttrInt *pango_int;
+  PangoAttrColor *pango_color;
+  PangoAttrLanguage *pango_lang;
+  PangoAttrFloat *pango_float;
+  gint index, start_index, end_index;
+  gboolean is_next;
+  glong len;
+  const gchar *text;
+  gchar *value;
+
+  text = pango_layout_get_text (layout);
+  len = g_utf8_strlen (text, -1);
+
+  /* Grab the attributes of the PangoLayout, if any */
+  attr = pango_layout_get_attributes (layout);
+
+  if (attr == NULL)
+    {
+      *start_offset = 0;
+      *end_offset = len;
+      return attributes;
+    }
+
+  iter = pango_attr_list_get_iterator (attr);
+  /* Get invariant range offsets */
+  /* If offset out of range, set offset in range */
+  if (offset > len)
+    offset = len;
+  else if (offset < 0)
+    offset = 0;
+
+  index = g_utf8_offset_to_pointer (text, offset) - text;
+  pango_attr_iterator_range (iter, &start_index, &end_index);
+  is_next = TRUE;
+  while (is_next)
+    {
+      if (index >= start_index && index < end_index)
+        {
+          *start_offset = g_utf8_pointer_to_offset (text, text + start_index);
+          if (end_index == G_MAXINT) /* Last iterator */
+            end_index = len;
+
+          *end_offset = g_utf8_pointer_to_offset (text, text + end_index);
+          break;
+        }
+      is_next = pango_attr_iterator_next (iter);
+      pango_attr_iterator_range (iter, &start_index, &end_index);
+    }
+
+  /* Get attributes */
+  pango_string = (PangoAttrString*) pango_attr_iterator_get (iter, PANGO_ATTR_FAMILY);
+  if (pango_string != NULL)
+    {
+      value = g_strdup_printf ("%s", pango_string->value);
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_FAMILY_NAME, value);
+      g_free (value);
+    }
+  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_STYLE);
+  if (pango_int != NULL)
+    {
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_STYLE,
+                       atk_text_attribute_get_value (ATK_TEXT_ATTR_STYLE, pango_int->value));
+    }
+  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_WEIGHT);
+  if (pango_int != NULL)
+    {
+      value = g_strdup_printf ("%i", pango_int->value);
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_WEIGHT, value);
+      g_free (value);
+    }
+  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_VARIANT);
+  if (pango_int != NULL)
+    {
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_VARIANT,
+                       atk_text_attribute_get_value (ATK_TEXT_ATTR_VARIANT, pango_int->value));
+    }
+  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_STRETCH);
+  if (pango_int != NULL)
+    {
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_STRETCH,
+                       atk_text_attribute_get_value (ATK_TEXT_ATTR_STRETCH, pango_int->value));
+    }
+  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_SIZE);
+  if (pango_int != NULL)
+    {
+      value = g_strdup_printf ("%i", pango_int->value / PANGO_SCALE);
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_SIZE, value);
+      g_free (value);
+    }
+  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_UNDERLINE);
+  if (pango_int != NULL)
+    {
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_UNDERLINE,
+                       atk_text_attribute_get_value (ATK_TEXT_ATTR_UNDERLINE, pango_int->value));
+    }
+  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_STRIKETHROUGH);
+  if (pango_int != NULL)
+    {
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_STRIKETHROUGH,
+                       atk_text_attribute_get_value (ATK_TEXT_ATTR_STRIKETHROUGH, pango_int->value));
+    }
+  pango_int = (PangoAttrInt*) pango_attr_iterator_get (iter, PANGO_ATTR_RISE);
+  if (pango_int != NULL)
+    {
+      value = g_strdup_printf ("%i", pango_int->value);
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_RISE, value);
+      g_free (value);
+    }
+  pango_lang = (PangoAttrLanguage*) pango_attr_iterator_get (iter, PANGO_ATTR_LANGUAGE);
+  if (pango_lang != NULL)
+    {
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_LANGUAGE,
+                                  pango_language_to_string (pango_lang->value));
+    }
+  pango_float = (PangoAttrFloat*) pango_attr_iterator_get (iter, PANGO_ATTR_SCALE);
+  if (pango_float != NULL)
+    {
+      value = g_strdup_printf ("%g", pango_float->value);
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_SCALE, value);
+      g_free (value);
+    }
+  pango_color = (PangoAttrColor*) pango_attr_iterator_get (iter, PANGO_ATTR_FOREGROUND);
+  if (pango_color != NULL)
+    {
+      value = g_strdup_printf ("%u,%u,%u",
+                               pango_color->color.red,
+                               pango_color->color.green,
+                               pango_color->color.blue);
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_FG_COLOR, value);
+      g_free (value);
+    }
+  pango_color = (PangoAttrColor*) pango_attr_iterator_get (iter, PANGO_ATTR_BACKGROUND);
+  if (pango_color != NULL)
+    {
+      value = g_strdup_printf ("%u,%u,%u",
+                               pango_color->color.red,
+                               pango_color->color.green,
+                               pango_color->color.blue);
+      attributes = add_attribute (attributes, ATK_TEXT_ATTR_BG_COLOR, value);
+      g_free (value);
+    }
+  pango_attr_iterator_destroy (iter);
+
+  return attributes;
+}
+
+/*
+ * _gtk_pango_move_chars:
+ * @layout: a #PangoLayout
+ * @offset: a character offset in @layout
+ * @count: the number of characters to move from @offset
+ *
+ * Returns the position that is @count characters from the
+ * given @offset. @count may be positive or negative.
+ *
+ * For the purpose of this function, characters are defined
+ * by what Pango considers cursor positions.
+ *
+ * Returns: the new position
+ */
+gint
+_gtk_pango_move_chars (PangoLayout *layout,
+                       gint         offset,
+                       gint         count)
+{
+  const PangoLogAttr *attrs;
+  gint n_attrs;
+
+  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
+
+  while (count > 0 && offset < n_attrs - 1)
+    {
+      do
+        offset++;
+      while (offset < n_attrs - 1 && !attrs[offset].is_cursor_position);
+
+      count--;
+    }
+  while (count < 0 && offset > 0)
+    {
+      do
+        offset--;
+      while (offset > 0 && !attrs[offset].is_cursor_position);
+
+      count++;
+    }
+
+  return offset;
+}
+
+/*
+ * _gtk_pango_move_words:
+ * @layout: a #PangoLayout
+ * @offset: a character offset in @layout
+ * @count: the number of words to move from @offset
+ *
+ * Returns the position that is @count words from the
+ * given @offset. @count may be positive or negative.
+ *
+ * If @count is positive, the returned position will
+ * be a word end, otherwise it will be a word start.
+ * See the Pango documentation for details on how
+ * word starts and ends are defined.
+ *
+ * Returns: the new position
+ */
+gint
+_gtk_pango_move_words (PangoLayout  *layout,
+                       gint          offset,
+                       gint          count)
+{
+  const PangoLogAttr *attrs;
+  gint n_attrs;
+
+  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
+
+  while (count > 0 && offset < n_attrs - 1)
+    {
+      do
+        offset++;
+      while (offset < n_attrs - 1 && !attrs[offset].is_word_end);
+
+      count--;
+    }
+  while (count < 0 && offset > 0)
+    {
+      do
+        offset--;
+      while (offset > 0 && !attrs[offset].is_word_start);
+
+      count++;
+    }
+
+  return offset;
+}
+
+/*
+ * _gtk_pango_move_sentences:
+ * @layout: a #PangoLayout
+ * @offset: a character offset in @layout
+ * @count: the number of sentences to move from @offset
+ *
+ * Returns the position that is @count sentences from the
+ * given @offset. @count may be positive or negative.
+ *
+ * If @count is positive, the returned position will
+ * be a sentence end, otherwise it will be a sentence start.
+ * See the Pango documentation for details on how
+ * sentence starts and ends are defined.
+ *
+ * Returns: the new position
+ */
+gint
+_gtk_pango_move_sentences (PangoLayout  *layout,
+                           gint          offset,
+                           gint          count)
+{
+  const PangoLogAttr *attrs;
+  gint n_attrs;
+
+  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
+
+  while (count > 0 && offset < n_attrs - 1)
+    {
+      do
+        offset++;
+      while (offset < n_attrs - 1 && !attrs[offset].is_sentence_end);
+
+      count--;
+    }
+  while (count < 0 && offset > 0)
+    {
+      do
+        offset--;
+      while (offset > 0 && !attrs[offset].is_sentence_start);
+
+      count++;
+    }
+
+  return offset;
+}
+
+/*
+ * _gtk_pango_move_lines:
+ * @layout: a #PangoLayout
+ * @offset: a character offset in @layout
+ * @count: the number of lines to move from @offset
+ *
+ * Returns the position that is @count lines from the
+ * given @offset. @count may be positive or negative.
+ *
+ * If @count is negative, the returned position will
+ * be the start of a line, else it will be the end of
+ * line.
+ *
+ * Returns: the new position
+ */
+gint
+_gtk_pango_move_lines (PangoLayout *layout,
+                       gint         offset,
+                       gint         count)
+{
+  GSList *lines, *l;
+  PangoLayoutLine *line;
+  gint num;
+  const gchar *text;
+  gint pos, line_pos;
+  gint index;
+  gint len;
+
+  text = pango_layout_get_text (layout);
+  index = g_utf8_offset_to_pointer (text, offset) - text;
+  lines = pango_layout_get_lines (layout);
+
+  num = 0;
+  for (l = lines; l; l = l->next)
+    {
+      line = l->data;
+      if (index < line->start_index + line->length)
+        break;
+      num++;
+    }
+
+  if (count < 0)
+    {
+      num += count;
+      if (num < 0)
+        num = 0;
+
+      line = g_slist_nth_data (lines, num);
+
+      return g_utf8_pointer_to_offset (text, text + line->start_index);
+    }
+  else
+    {
+      line_pos = index - line->start_index;
+
+      len = g_slist_length (lines);
+      num += count;
+      if (num >= len || (count == 0 && num == len - 1))
+        return g_utf8_strlen (text, -1) - 1;
+
+      line = l->data;
+      pos = line->start_index + line_pos;
+      if (pos >= line->start_index + line->length)
+        pos = line->start_index + line->length - 1;
+
+      return g_utf8_pointer_to_offset (text, text + pos);
+    }
+}
+
+/*
+ * _gtk_pango_is_inside_word:
+ * @layout: a #PangoLayout
+ * @offset: a character offset in @layout
+ *
+ * Returns whether the given position is inside
+ * a word.
+ *
+ * Returns: %TRUE if @offset is inside a word
+ */
+gboolean
+_gtk_pango_is_inside_word (PangoLayout  *layout,
+                           gint          offset)
+{
+  const PangoLogAttr *attrs;
+  gint n_attrs;
+
+  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
+
+  while (offset >= 0 &&
+         !(attrs[offset].is_word_start || attrs[offset].is_word_end))
+    offset--;
+
+  if (offset >= 0)
+    return attrs[offset].is_word_start;
+
+  return FALSE;
+}
+
+/*
+ * _gtk_pango_is_inside_sentence:
+ * @layout: a #PangoLayout
+ * @offset: a character offset in @layout
+ *
+ * Returns whether the given position is inside
+ * a sentence.
+ *
+ * Returns: %TRUE if @offset is inside a sentence
+ */
+gboolean
+_gtk_pango_is_inside_sentence (PangoLayout  *layout,
+                               gint          offset)
+{
+  const PangoLogAttr *attrs;
+  gint n_attrs;
+
+  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
+
+  while (offset >= 0 &&
+         !(attrs[offset].is_sentence_start || attrs[offset].is_sentence_end))
+    offset--;
+
+  if (offset >= 0)
+    return attrs[offset].is_sentence_start;
+
+  return FALSE;
+}
+
+static void
+pango_layout_get_line_before (PangoLayout     *layout,
+                              AtkTextBoundary  boundary_type,
+                              gint             offset,
+                              gint            *start_offset,
+                              gint            *end_offset)
+{
+  PangoLayoutIter *iter;
+  PangoLayoutLine *line, *prev_line = NULL, *prev_prev_line = NULL;
+  gint index, start_index, end_index;
+  const gchar *text;
+  gboolean found = FALSE;
+
+  text = pango_layout_get_text (layout);
+  index = g_utf8_offset_to_pointer (text, offset) - text;
+  iter = pango_layout_get_iter (layout);
+  do
+    {
+      line = pango_layout_iter_get_line (iter);
+      start_index = line->start_index;
+      end_index = start_index + line->length;
+
+      if (index >= start_index && index <= end_index)
+        {
+          /* Found line for offset */
+          if (prev_line)
+            {
+              switch (boundary_type)
+                {
+                case ATK_TEXT_BOUNDARY_LINE_START:
+                  end_index = start_index;
+                  start_index = prev_line->start_index;
+                  break;
+                case ATK_TEXT_BOUNDARY_LINE_END:
+                  if (prev_prev_line)
+                    start_index = prev_prev_line->start_index + prev_prev_line->length;
+                  else
+                    start_index = 0;
+                  end_index = prev_line->start_index + prev_line->length;
+                  break;
+                default:
+                  g_assert_not_reached();
+                }
+            }
+          else
+            start_index = end_index = 0;
+
+          found = TRUE;
+          break;
+        }
+
+      prev_prev_line = prev_line;
+      prev_line = line;
+    }
+  while (pango_layout_iter_next_line (iter));
+
+  if (!found)
+    {
+      start_index = prev_line->start_index + prev_line->length;
+      end_index = start_index;
+    }
+  pango_layout_iter_free (iter);
+
+  *start_offset = g_utf8_pointer_to_offset (text, text + start_index);
+  *end_offset = g_utf8_pointer_to_offset (text, text + end_index);
+}
+
+static void
+pango_layout_get_line_at (PangoLayout     *layout,
+                          AtkTextBoundary  boundary_type,
+                          gint             offset,
+                          gint            *start_offset,
+                          gint            *end_offset)
+{
+  PangoLayoutIter *iter;
+  PangoLayoutLine *line, *prev_line = NULL;
+  gint index, start_index, end_index;
+  const gchar *text;
+  gboolean found = FALSE;
+
+  text = pango_layout_get_text (layout);
+  index = g_utf8_offset_to_pointer (text, offset) - text;
+  iter = pango_layout_get_iter (layout);
+  do
+    {
+      line = pango_layout_iter_get_line (iter);
+      start_index = line->start_index;
+      end_index = start_index + line->length;
+
+      if (index >= start_index && index <= end_index)
+        {
+          /* Found line for offset */
+          switch (boundary_type)
+            {
+            case ATK_TEXT_BOUNDARY_LINE_START:
+              if (pango_layout_iter_next_line (iter))
+                end_index = pango_layout_iter_get_line (iter)->start_index;
+              break;
+            case ATK_TEXT_BOUNDARY_LINE_END:
+              if (prev_line)
+                start_index = prev_line->start_index + prev_line->length;
+              break;
+            default:
+              g_assert_not_reached();
+            }
+
+          found = TRUE;
+          break;
+        }
+
+      prev_line = line;
+    }
+  while (pango_layout_iter_next_line (iter));
+
+  if (!found)
+    {
+      start_index = prev_line->start_index + prev_line->length;
+      end_index = start_index;
+    }
+  pango_layout_iter_free (iter);
+
+  *start_offset = g_utf8_pointer_to_offset (text, text + start_index);
+  *end_offset = g_utf8_pointer_to_offset (text, text + end_index);
+}
+
+static void
+pango_layout_get_line_after (PangoLayout     *layout,
+                             AtkTextBoundary  boundary_type,
+                             gint             offset,
+                             gint            *start_offset,
+                             gint            *end_offset)
+{
+  PangoLayoutIter *iter;
+  PangoLayoutLine *line, *prev_line = NULL;
+  gint index, start_index, end_index;
+  const gchar *text;
+  gboolean found = FALSE;
+
+  text = pango_layout_get_text (layout);
+  index = g_utf8_offset_to_pointer (text, offset) - text;
+  iter = pango_layout_get_iter (layout);
+  do
+    {
+      line = pango_layout_iter_get_line (iter);
+      start_index = line->start_index;
+      end_index = start_index + line->length;
+
+      if (index >= start_index && index <= end_index)
+        {
+          /* Found line for offset */
+          if (pango_layout_iter_next_line (iter))
+            {
+              line = pango_layout_iter_get_line (iter);
+              switch (boundary_type)
+                {
+                case ATK_TEXT_BOUNDARY_LINE_START:
+                  start_index = line->start_index;
+                  if (pango_layout_iter_next_line (iter))
+                    end_index = pango_layout_iter_get_line (iter)->start_index;
+                  else
+                    end_index = start_index + line->length;
+                  break;
+                case ATK_TEXT_BOUNDARY_LINE_END:
+                  start_index = end_index;
+                  end_index = line->start_index + line->length;
+                  break;
+                default:
+                  g_assert_not_reached();
+                }
+            }
+          else
+            start_index = end_index;
+
+          found = TRUE;
+          break;
+        }
+
+      prev_line = line;
+    }
+  while (pango_layout_iter_next_line (iter));
+
+  if (!found)
+    {
+      start_index = prev_line->start_index + prev_line->length;
+      end_index = start_index;
+    }
+  pango_layout_iter_free (iter);
+
+  *start_offset = g_utf8_pointer_to_offset (text, text + start_index);
+  *end_offset = g_utf8_pointer_to_offset (text, text + end_index);
+}
+
+/*
+ * _gtk_pango_get_text_before:
+ * @layout: a #PangoLayout
+ * @boundary_type: a #AtkTextBoundary
+ * @offset: a character offset in @layout
+ * @start_offset: return location for the start of the returned text
+ * @end_offset: return location for the end of the return text
+ *
+ * Gets a slice of the text from @layout before @offset.
+ *
+ * The @boundary_type determines the size of the returned slice of
+ * text. For the exact semantics of this function, see
+ * atk_text_get_text_before_offset().
+ *
+ * Returns: a newly allocated string containing a slice of text
+ *     from layout. Free with g_free().
+ */
+gchar *
+_gtk_pango_get_text_before (PangoLayout     *layout,
+                            AtkTextBoundary  boundary_type,
+                            gint             offset,
+                            gint            *start_offset,
+                            gint            *end_offset)
+{
+  const gchar *text;
+  gint start, end;
+  const PangoLogAttr *attrs;
+  gint n_attrs;
+
+  text = pango_layout_get_text (layout);
+
+  if (text[0] == 0)
+    {
+      *start_offset = 0;
+      *end_offset = 0;
+      return g_strdup ("");
+    }
+
+  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
+
+  start = offset;
+  end = start;
+
+  switch (boundary_type)
+    {
+    case ATK_TEXT_BOUNDARY_CHAR:
+      start = _gtk_pango_move_chars (layout, start, -1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_START:
+      if (!attrs[start].is_word_start)
+        start = _gtk_pango_move_words (layout, start, -1);
+      end = start;
+      start = _gtk_pango_move_words (layout, start, -1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_END:
+      if (_gtk_pango_is_inside_word (layout, start) &&
+          !attrs[start].is_word_start)
+        start = _gtk_pango_move_words (layout, start, -1);
+      while (!attrs[start].is_word_end && start > 0)
+        start = _gtk_pango_move_chars (layout, start, -1);
+      end = start;
+      start = _gtk_pango_move_words (layout, start, -1);
+      while (!attrs[start].is_word_end && start > 0)
+        start = _gtk_pango_move_chars (layout, start, -1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_START:
+      if (!attrs[start].is_sentence_start)
+        start = _gtk_pango_move_sentences (layout, start, -1);
+      end = start;
+      start = _gtk_pango_move_sentences (layout, start, -1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_END:
+      if (_gtk_pango_is_inside_sentence (layout, start) &&
+          !attrs[start].is_sentence_start)
+        start = _gtk_pango_move_sentences (layout, start, -1);
+      while (!attrs[start].is_sentence_end && start > 0)
+        start = _gtk_pango_move_chars (layout, start, -1);
+      end = start;
+      start = _gtk_pango_move_sentences (layout, start, -1);
+      while (!attrs[start].is_sentence_end && start > 0)
+        start = _gtk_pango_move_chars (layout, start, -1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_LINE_START:
+    case ATK_TEXT_BOUNDARY_LINE_END:
+      pango_layout_get_line_before (layout, boundary_type, offset, &start, &end);
+      break;
+    }
+
+  *start_offset = start;
+  *end_offset = end;
+
+  g_assert (start <= end);
+
+  return g_utf8_substring (text, start, end);
+}
+
+/*
+ * _gtk_pango_get_text_after:
+ * @layout: a #PangoLayout
+ * @boundary_type: a #AtkTextBoundary
+ * @offset: a character offset in @layout
+ * @start_offset: return location for the start of the returned text
+ * @end_offset: return location for the end of the return text
+ *
+ * Gets a slice of the text from @layout after @offset.
+ *
+ * The @boundary_type determines the size of the returned slice of
+ * text. For the exact semantics of this function, see
+ * atk_text_get_text_after_offset().
+ *
+ * Returns: a newly allocated string containing a slice of text
+ *     from layout. Free with g_free().
+ */
+gchar *
+_gtk_pango_get_text_after (PangoLayout     *layout,
+                           AtkTextBoundary  boundary_type,
+                           gint             offset,
+                           gint            *start_offset,
+                           gint            *end_offset)
+{
+  const gchar *text;
+  gint start, end;
+  const PangoLogAttr *attrs;
+  gint n_attrs;
+
+  text = pango_layout_get_text (layout);
+
+  if (text[0] == 0)
+    {
+      *start_offset = 0;
+      *end_offset = 0;
+      return g_strdup ("");
+    }
+
+  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
+
+  start = offset;
+  end = start;
+
+  switch (boundary_type)
+    {
+    case ATK_TEXT_BOUNDARY_CHAR:
+      start = _gtk_pango_move_chars (layout, start, 1);
+      end = start;
+      end = _gtk_pango_move_chars (layout, end, 1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_START:
+      if (_gtk_pango_is_inside_word (layout, end))
+        end = _gtk_pango_move_words (layout, end, 1);
+      while (!attrs[end].is_word_start && end < n_attrs - 1)
+        end = _gtk_pango_move_chars (layout, end, 1);
+      start = end;
+      if (end < n_attrs - 1)
+        {
+          end = _gtk_pango_move_words (layout, end, 1);
+          while (!attrs[end].is_word_end && end < n_attrs - 1)
+            end = _gtk_pango_move_chars (layout, end, 1);
+        }
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_END:
+      end = _gtk_pango_move_words (layout, end, 1);
+      start = end;
+      if (end < n_attrs - 1)
+        end = _gtk_pango_move_words (layout, end, 1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_START:
+      if (_gtk_pango_is_inside_sentence (layout, end))
+        end = _gtk_pango_move_sentences (layout, end, 1);
+      while (!attrs[end].is_sentence_end && end < n_attrs - 1)
+        end = _gtk_pango_move_chars (layout, end, 1);
+      start = end;
+      if (end < n_attrs - 1)
+        {
+          end = _gtk_pango_move_sentences (layout, end, 1);
+          while (!attrs[end].is_sentence_start && end < n_attrs - 1)
+            end = _gtk_pango_move_chars (layout, end, 1);
+        }
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_END:
+      end = _gtk_pango_move_sentences (layout, end, 1);
+      start = end;
+      if (end < n_attrs - 1)
+        end = _gtk_pango_move_sentences (layout, end, 1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_LINE_START:
+    case ATK_TEXT_BOUNDARY_LINE_END:
+      pango_layout_get_line_after (layout, boundary_type, offset, &start, &end);
+      break;
+    }
+
+  *start_offset = start;
+  *end_offset = end;
+
+  g_assert (start <= end);
+
+  return g_utf8_substring (text, start, end);
+}
+
+/*
+ * _gtk_pango_get_text_at:
+ * @layout: a #PangoLayout
+ * @boundary_type: a #AtkTextBoundary
+ * @offset: a character offset in @layout
+ * @start_offset: return location for the start of the returned text
+ * @end_offset: return location for the end of the return text
+ *
+ * Gets a slice of the text from @layout at @offset.
+ *
+ * The @boundary_type determines the size of the returned slice of
+ * text. For the exact semantics of this function, see
+ * atk_text_get_text_after_offset().
+ *
+ * Returns: a newly allocated string containing a slice of text
+ *     from layout. Free with g_free().
+ */
+gchar *
+_gtk_pango_get_text_at (PangoLayout     *layout,
+                        AtkTextBoundary  boundary_type,
+                        gint             offset,
+                        gint            *start_offset,
+                        gint            *end_offset)
+{
+  const gchar *text;
+  gint start, end;
+  const PangoLogAttr *attrs;
+  gint n_attrs;
+
+  text = pango_layout_get_text (layout);
+
+  if (text[0] == 0)
+    {
+      *start_offset = 0;
+      *end_offset = 0;
+      return g_strdup ("");
+    }
+
+  attrs = pango_layout_get_log_attrs_readonly (layout, &n_attrs);
+
+  start = offset;
+  end = start;
+
+  switch (boundary_type)
+    {
+    case ATK_TEXT_BOUNDARY_CHAR:
+      end = _gtk_pango_move_chars (layout, end, 1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_START:
+      if (!attrs[start].is_word_start)
+        start = _gtk_pango_move_words (layout, start, -1);
+      if (_gtk_pango_is_inside_word (layout, end))
+        end = _gtk_pango_move_words (layout, end, 1);
+      while (!attrs[end].is_word_start && end < n_attrs - 1)
+        end = _gtk_pango_move_chars (layout, end, -1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_END:
+      if (_gtk_pango_is_inside_word (layout, start) &&
+          !attrs[start].is_word_start)
+        start = _gtk_pango_move_words (layout, start, -1);
+      while (!attrs[start].is_word_end && start > 0)
+        start = _gtk_pango_move_chars (layout, start, -1);
+      end = _gtk_pango_move_words (layout, end, 1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_START:
+      if (!attrs[start].is_sentence_start)
+        start = _gtk_pango_move_sentences (layout, start, -1);
+      if (_gtk_pango_is_inside_sentence (layout, end))
+        end = _gtk_pango_move_sentences (layout, end, 1);
+      while (!attrs[end].is_word_end && end < n_attrs - 1)
+        end = _gtk_pango_move_chars (layout, end, 1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_END:
+      if (_gtk_pango_is_inside_sentence (layout, start) &&
+          !attrs[start].is_sentence_start)
+        start = _gtk_pango_move_sentences (layout, start, -1);
+      while (!attrs[start].is_sentence_end && start > 0)
+        start = _gtk_pango_move_chars (layout, start, -1);
+      end = _gtk_pango_move_sentences (layout, end, 1);
+      break;
+
+    case ATK_TEXT_BOUNDARY_LINE_START:
+    case ATK_TEXT_BOUNDARY_LINE_END:
+      pango_layout_get_line_at (layout, boundary_type, offset, &start, &end);
+      break;
+    }
+
+  *start_offset = start;
+  *end_offset = end;
+
+  g_assert (start <= end);
+
+  return g_utf8_substring (text, start, end);
+}
index d02c7a655c60cf78fdd54fb5cc1dd259dd080c38..523d6635296f2f37aba561159436bbaeeecc0729 100644 (file)
  * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  */
 
-#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
-#error "Only <gtk/gtk.h> can be included directly."
-#endif
-
 #ifndef __GTK_PANGO_H__
 #define __GTK_PANGO_H__
 
 
 #include <pango/pangocairo.h>
-
+#include <atk/atk.h>
 
 G_BEGIN_DECLS
 
-void
-_gtk_pango_fill_layout (cairo_t     *cr,
-                        PangoLayout *layout);
+void             _gtk_pango_fill_layout            (cairo_t         *cr,
+                                                    PangoLayout     *layout);
+
+
+AtkAttributeSet *_gtk_pango_get_default_attributes (AtkAttributeSet *attributes,
+                                                    PangoLayout     *layout);
+
+AtkAttributeSet *_gtk_pango_get_run_attributes     (AtkAttributeSet *attributes,
+                                                    PangoLayout     *layout,
+                                                    gint             offset,
+                                                    gint            *start_offset,
+                                                    gint            *end_offset);
+
+gint _gtk_pango_move_chars     (PangoLayout  *layout,
+                                gint          offset,
+                                gint          count);
+gint _gtk_pango_move_words     (PangoLayout  *layout,
+                                gint          offset,
+                                gint          count);
+gint _gtk_pango_move_sentences (PangoLayout  *layout,
+                                gint          offset,
+                                gint          count);
+gint _gtk_pango_move_lines     (PangoLayout  *layout,
+                                gint          offset,
+                                gint          count);
+
+gboolean _gtk_pango_is_inside_word     (PangoLayout  *layout,
+                                        gint          offset);
+gboolean _gtk_pango_is_inside_sentence (PangoLayout  *layout,
+                                        gint          offset);
+
 
+gchar *_gtk_pango_get_text_before (PangoLayout     *layout,
+                                   AtkTextBoundary  boundary_type,
+                                   gint             offset,
+                                   gint            *start_offset,
+                                   gint            *end_offset);
+gchar *_gtk_pango_get_text_at     (PangoLayout     *layout,
+                                   AtkTextBoundary  boundary_type,
+                                   gint             offset,
+                                   gint            *start_offset,
+                                   gint            *end_offset);
+gchar *_gtk_pango_get_text_after  (PangoLayout     *layout,
+                                   AtkTextBoundary  boundary_type,
+                                   gint             offset,
+                                   gint            *start_offset,
+                                   gint            *end_offset);
 
 G_END_DECLS
 
index 3a20b5d2e4e72d3c7d0687ef3d4b469e3af36a57..e0c38366912e3f8539b2d1110ec5dee97d11b459 100644 (file)
@@ -183,6 +183,8 @@ gtk_plug_class_init (GtkPlugClass *class)
 
   widget_class->focus = gtk_plug_focus;
 
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_PANEL);
+
   container_class->check_resize = gtk_plug_check_resize;
 
   window_class->set_focus = gtk_plug_set_focus;
index aa1f28dd0bd89741faf8428af2ad995c61d544ea..bbf5509c95baaab9c438c844a53a4762a3d9b62f 100644 (file)
@@ -33,6 +33,8 @@
 #include "gtkprivate.h"
 #include "gtkintl.h"
 
+#include "a11y/gtkprogressbaraccessible.h"
+
 /**
  * SECTION:gtkprogressbar
  * @Short_description: A widget which indicates progress visually
@@ -184,6 +186,10 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class)
    * the #GtkProgressBar::text property or, if that is %NULL,
    * the #GtkProgressBar::fraction value, as a percentage.
    *
+   * To make a progress bar that is styled and sized suitably for containing
+   * text (even if the actual text is blank), set #GtkProgressBar:show-text to
+   * %TRUE and #GtkProgressBar:text to the empty string (not %NULL).
+   *
    * Since: 3.0
    */
   g_object_class_install_property (gobject_class,
@@ -284,6 +290,8 @@ gtk_progress_bar_class_init (GtkProgressBarClass *class)
                                                              G_PARAM_READWRITE));
 
   g_type_class_add_private (class, sizeof (GtkProgressBarPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_PROGRESS_BAR_ACCESSIBLE);
 }
 
 static void
@@ -423,7 +431,7 @@ gtk_progress_bar_real_update (GtkProgressBar *pbar)
       GtkStyleContext *context;
       GtkStateFlags state;
       GtkBorder padding;
-      guint size;
+      gint size;
 
       gtk_widget_get_allocation (widget, &allocation);
       context = gtk_widget_get_style_context (widget);
@@ -1095,6 +1103,14 @@ gtk_progress_bar_pulse (GtkProgressBar *pbar)
  * @text: (allow-none): a UTF-8 string, or %NULL
  *
  * Causes the given @text to appear superimposed on the progress bar.
+ *
+ * If @text is %NULL and #GtkProgressBar:show-text is %TRUE, the current
+ * value of #GtkProgressBar:fraction will be displayed as a percentage.
+ *
+ * If @text is non-%NULL and #GtkProgressBar:show-text is %TRUE, the text will
+ * be displayed. In this case, it will not display the progress percentage.
+ * If @text is the empty string, the progress bar will still be styled and sized
+ * suitably for containing text, as long as #GtkProgressBar:show-text is %TRUE.
  **/
 void
 gtk_progress_bar_set_text (GtkProgressBar *pbar,
@@ -1106,8 +1122,12 @@ gtk_progress_bar_set_text (GtkProgressBar *pbar,
 
   priv = pbar->priv;
 
+  /* Don't notify again if nothing's changed. */
+  if (g_strcmp0 (priv->text, text) == 0)
+    return;
+
   g_free (priv->text);
-  priv->text = text && *text ? g_strdup (text) : NULL;
+  priv->text = g_strdup (text);
 
   gtk_widget_queue_resize (GTK_WIDGET (pbar));
 
@@ -1124,6 +1144,10 @@ gtk_progress_bar_set_text (GtkProgressBar *pbar,
  * the #GtkProgressBar::text property or, if that is %NULL,
  * the #GtkProgressBar::fraction value, as a percentage.
  *
+ * To make a progress bar that is styled and sized suitably for containing
+ * text (even if the actual text is blank), set #GtkProgressBar:show-text to
+ * %TRUE and #GtkProgressBar:text to the empty string (not %NULL).
+ *
  * Since: 3.0
  */
 void
index d691f7f254fd911ea5aa6701584b77ad08f28b0e..b9ea2ec1ff119c3cb70dd416b897338a128a3ea4 100644 (file)
@@ -160,7 +160,8 @@ _gtk_quartz_get_selection_data_from_pasteboard (NSPasteboard *pasteboard,
   selection_data = g_slice_new0 (GtkSelectionData);
   selection_data->selection = selection;
   selection_data->target = target;
-
+  if (!selection_data->display)
+    selection_data->display = gdk_display_get_default ();
   if (target == gdk_atom_intern_static_string ("UTF8_STRING"))
     {
       NSString *s = [pasteboard stringForType:NSStringPboardType];
index b080dc29f9ade42794f34a477644a31f0ae080d5..cb1ba20d55f142a5a22096ab8dedeef987954073 100644 (file)
@@ -33,6 +33,7 @@
 #include "gtkmarshalers.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
+#include "a11y/gtkradiobuttonaccessible.h"
 
 /**
  * SECTION:gtkradiobutton
@@ -195,6 +196,8 @@ gtk_radio_button_class_init (GtkRadioButtonClass *class)
                                       G_TYPE_NONE, 0);
 
   g_type_class_add_private (class, sizeof (GtkRadioButtonPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_RADIO_BUTTON_ACCESSIBLE);
 }
 
 static void
index 848c2a764f3b88086b751f7a93889a310f0de0fb..b901d1cd1f40b8b82ebb5eb10768eab3ca957f5f 100644 (file)
@@ -31,7 +31,7 @@
 #include "gtkactivatable.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
-
+#include "a11y/gtkradiomenuitemaccessible.h"
 
 /**
  * SECTION:gtkradiomenuitem
@@ -393,11 +393,10 @@ gtk_radio_menu_item_get_group (GtkRadioMenuItem *radio_menu_item)
   return radio_menu_item->priv->group;
 }
 
-
 static void
 gtk_radio_menu_item_class_init (GtkRadioMenuItemClass *klass)
 {
-  GObjectClass *gobject_class;  
+  GObjectClass *gobject_class;
   GtkWidgetClass *widget_class;
   GtkMenuItemClass *menu_item_class;
 
@@ -410,6 +409,8 @@ gtk_radio_menu_item_class_init (GtkRadioMenuItemClass *klass)
 
   widget_class->destroy = gtk_radio_menu_item_destroy;
 
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_RADIO_MENU_ITEM_ACCESSIBLE);
+
   menu_item_class->activate = gtk_radio_menu_item_activate;
 
   /**
index 94239e7b922e7ac580d0f13c6d814142355a0be7..2e4331610d37668f14d2bc6b9f32139782ab3900 100644 (file)
@@ -40,6 +40,7 @@
 #include "gtkprivate.h"
 #include "gtkintl.h"
 #include "gtktypebuiltins.h"
+#include "a11y/gtkrangeaccessible.h"
 
 /**
  * SECTION:gtkrange
@@ -600,6 +601,8 @@ gtk_range_class_init (GtkRangeClass *class)
                                                               GTK_PARAM_READABLE));
 
   g_type_class_add_private (class, sizeof (GtkRangePrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_RANGE_ACCESSIBLE);
 }
 
 static void
index 5b1eefcfe1ad43a6a16a4650b56bd42fc3ac6345..c6512c110899fc029a22e6302aa0a0249bb3f908 100644 (file)
@@ -48,6 +48,32 @@ _gtk_rounded_box_init_rect (GtkRoundedBox *box,
   memset (&box->border_radius, 0, sizeof (GtkCssBorderRadius));
 }
 
+/* clamp border radius, following CSS specs */
+static void
+gtk_rounded_box_clamp_border_radius (GtkRoundedBox *box)
+{
+  gdouble factor = 1.0;
+
+  /* note: division by zero leads to +INF, which is > factor, so will be ignored */
+  factor = MIN (factor, box->box.width / (box->border_radius.top_left.horizontal +
+                                          box->border_radius.top_right.horizontal));
+  factor = MIN (factor, box->box.height / (box->border_radius.top_right.vertical +
+                                           box->border_radius.bottom_right.vertical));
+  factor = MIN (factor, box->box.width / (box->border_radius.bottom_right.horizontal +
+                                          box->border_radius.bottom_left.horizontal));
+  factor = MIN (factor, box->box.height / (box->border_radius.top_left.vertical +
+                                           box->border_radius.bottom_left.vertical));
+
+  box->border_radius.top_left.horizontal *= factor;
+  box->border_radius.top_left.vertical *= factor;
+  box->border_radius.top_right.horizontal *= factor;
+  box->border_radius.top_right.vertical *= factor;
+  box->border_radius.bottom_right.horizontal *= factor;
+  box->border_radius.bottom_right.vertical *= factor;
+  box->border_radius.bottom_left.horizontal *= factor;
+  box->border_radius.bottom_left.vertical *= factor;
+}
+
 void
 _gtk_rounded_box_apply_border_radius (GtkRoundedBox    *box,
                                       GtkThemingEngine *engine,
@@ -75,6 +101,8 @@ _gtk_rounded_box_apply_border_radius (GtkRoundedBox    *box,
   if (bottom_left_radius && (junction & GTK_JUNCTION_CORNER_BOTTOMLEFT) == 0)
     box->border_radius.bottom_left = *bottom_left_radius;
 
+  gtk_rounded_box_clamp_border_radius (box);
+
   g_free (top_left_radius);
   g_free (top_right_radius);
   g_free (bottom_right_radius);
index 6969741f29472188ff4b7c5c1603fccb51d0cf0a..979f45f66be93929e1de0b81b45f59484f1a4a8e 100644 (file)
@@ -42,6 +42,8 @@
 #include "gtkbuildable.h"
 #include "gtkbuilderprivate.h"
 
+#include "a11y/gtkscaleaccessible.h"
+
 
 /**
  * SECTION:gtkscale
@@ -410,6 +412,8 @@ gtk_scale_class_init (GtkScaleClass *class)
                       GTK_SCROLL_END);
 
   g_type_class_add_private (gobject_class, sizeof (GtkScalePrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SCALE_ACCESSIBLE);
 }
 
 static void
@@ -1334,8 +1338,7 @@ _gtk_scale_format_value (GtkScale *scale,
   if (fmt)
     return fmt;
   else
-    /* insert a LRM, to prevent -20 to come out as 20- in RTL locales */
-    return g_strdup_printf ("\342\200\216%0.*f", priv->digits, value);
+    return g_strdup_printf ("%0.*f", priv->digits, value);
 }
 
 static void
index 7a62baf418d4337374419a9acc26f4e916905edb..c56b73e7ef84f92dc5f5bdadcbfe266815d04dbb 100644 (file)
@@ -55,6 +55,7 @@
 #include "gtkwindow.h"
 #include "gtktypebuiltins.h"
 #include "gtkintl.h"
+#include "a11y/gtkscalebuttonaccessible.h"
 
 /**
  * SECTION:gtkscalebutton
@@ -343,6 +344,8 @@ gtk_scale_button_class_init (GtkScaleButtonClass *klass)
                                "popup", 0);
   gtk_binding_entry_add_signal (binding_set, GDK_KEY_Escape, 0,
                                "popdown", 0);
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SCALE_BUTTON_ACCESSIBLE);
 }
 
 static void
index fd79b99eb098e8b8f6cea48001f2f8af5a6bf5e3..01825a98df26cadaaae6d46fb9349df70a5b2780 100644 (file)
@@ -31,6 +31,8 @@
 #include "gtkintl.h"
 #include "gtkprivate.h"
 
+#include "a11y/gtkscrollbaraccessible.h"
+
 
 /**
  * SECTION:gtkscrollbar
@@ -108,6 +110,8 @@ gtk_scrollbar_class_init (GtkScrollbarClass *class)
                                                                  P_("Display a second forward arrow button on the opposite end of the scrollbar"),
                                                                  FALSE,
                                                                  GTK_PARAM_READABLE));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SCROLLBAR_ACCESSIBLE);
 }
 
 static void
index 292b1e1b4b62e2c4ebbd47c6e41bcc43335906c3..1f2d33b3c074e02d6cb3490d128f9da890591e8c 100644 (file)
@@ -37,7 +37,7 @@
 #include "gtkprivate.h"
 #include "gtktypebuiltins.h"
 #include "gtkintl.h"
-
+#include "a11y/gtkscrolledwindowaccessible.h"
 
 /**
  * SECTION:gtkscrolledwindow
@@ -479,6 +479,8 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class)
   add_tab_bindings (binding_set, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
 
   g_type_class_add_private (class, sizeof (GtkScrolledWindowPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SCROLLED_WINDOW_ACCESSIBLE);
 }
 
 static void
index e285a40e742bac4de1c05e60ac4341444338bc1c..f8c020216ebcc345d1de10a195efec272211f268 100644 (file)
@@ -91,7 +91,9 @@ gtk_separator_class_init (GtkSeparatorClass *class)
   widget_class->get_preferred_width = gtk_separator_get_preferred_width;
   widget_class->get_preferred_height = gtk_separator_get_preferred_height;
 
-  widget_class->draw         = gtk_separator_draw;
+  widget_class->draw = gtk_separator_draw;
+
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_SEPARATOR);
 
   g_object_class_override_property (object_class, PROP_ORIENTATION, "orientation");
 
index 0a9569debe11e367bbd719a5e919568eb67dd0f2..934ac8622734c919750516f067e054dfd9c40882 100644 (file)
@@ -25,7 +25,6 @@
  */
 
 #include "config.h"
-#include "gtkaccessibleprivate.h"
 #include "gtkseparatormenuitem.h"
 
 /**
  * make it appear sunken into the interface.
  */
 
-static AtkObject *gtk_separator_menu_item_get_accessible (GtkWidget *widget);
-
 G_DEFINE_TYPE (GtkSeparatorMenuItem, gtk_separator_menu_item, GTK_TYPE_MENU_ITEM)
 
 static void
 gtk_separator_menu_item_class_init (GtkSeparatorMenuItemClass *class)
 {
   GTK_CONTAINER_CLASS (class)->child_type = NULL;
-  GTK_WIDGET_CLASS (class)->get_accessible = gtk_separator_menu_item_get_accessible;
+
+  gtk_widget_class_set_accessible_role (GTK_WIDGET_CLASS (class), ATK_ROLE_SEPARATOR);
 }
 
 static void 
@@ -70,82 +68,3 @@ gtk_separator_menu_item_new (void)
 {
   return g_object_new (GTK_TYPE_SEPARATOR_MENU_ITEM, NULL);
 }
-
-typedef struct _GtkSeparatorMenuItemAccessible GtkSeparatorMenuItemAccessible;
-typedef struct _GtkSeparatorMenuItemAccessibleClass GtkSeparatorMenuItemAccessibleClass;
-
-ATK_DEFINE_TYPE (GtkSeparatorMenuItemAccessible, _gtk_separator_menu_item_accessible, GTK_TYPE_MENU_ITEM);
-
-static void
-_gtk_separator_menu_item_accessible_initialize (AtkObject *accessible,
-                                                gpointer   widget)
-{
-  ATK_OBJECT_CLASS (_gtk_separator_menu_item_accessible_parent_class)->initialize (accessible, widget);
-
-  atk_object_set_role (accessible, ATK_ROLE_SEPARATOR);
-}
-
-static void
-_gtk_separator_menu_item_accessible_class_init (GtkSeparatorMenuItemAccessibleClass *klass)
-{
-  AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
-
-  atk_class->initialize = _gtk_separator_menu_item_accessible_initialize;
-}
-
-static void
-_gtk_separator_menu_item_accessible_init (GtkSeparatorMenuItemAccessible *self)
-{
-}
-
-typedef AtkObjectFactoryClass   GtkSeparatorMenuItemAccessibleFactoryClass;
-typedef AtkObjectFactory        GtkSeparatorMenuItemAccessibleFactory;
-
-G_DEFINE_TYPE (GtkSeparatorMenuItemAccessibleFactory,
-               _gtk_separator_menu_item_accessible_factory,
-               ATK_TYPE_OBJECT_FACTORY);
-
-static GType
-_gtk_separator_menu_item_accessible_factory_get_accessible_type (void)
-{
-  return _gtk_separator_menu_item_accessible_get_type ();
-}
-
-static AtkObject *
-_gtk_separator_menu_item_accessible_factory_create_accessible (GObject *obj)
-{
-  AtkObject *accessible;
-
-  accessible = g_object_new (_gtk_separator_menu_item_accessible_get_type (), NULL);
-  atk_object_initialize (accessible, obj);
-
-  return accessible;
-}
-
-static void
-_gtk_separator_menu_item_accessible_factory_class_init (AtkObjectFactoryClass *klass)
-{
-  klass->create_accessible = _gtk_separator_menu_item_accessible_factory_create_accessible;
-  klass->get_accessible_type = _gtk_separator_menu_item_accessible_factory_get_accessible_type;
-}
-
-static void
-_gtk_separator_menu_item_accessible_factory_init (AtkObjectFactory *factory)
-{
-}
-
-static AtkObject *
-gtk_separator_menu_item_get_accessible (GtkWidget *widget)
-{
-  static gboolean initialized = FALSE;
-
-  if (G_UNLIKELY (!initialized))
-    {
-      _gtk_accessible_set_factory_type (GTK_TYPE_SEPARATOR_MENU_ITEM,
-                                        _gtk_separator_menu_item_accessible_factory_get_type ());
-
-      initialized = TRUE;
-    }
-
-  return GTK_WIDGET_CLASS (gtk_separator_menu_item_parent_class)->get_accessible (widget);
-}
index 0bb565633f5d6232c22fe1e3e7f88612cf9bcca7..8ff0df4ede7d65d97580cc5beb5ba666e36eb196 100644 (file)
@@ -45,6 +45,8 @@
 #include "gtkintl.h"
 #include "gtktypebuiltins.h"
 
+#include "a11y/gtkspinbuttonaccessible.h"
+
 #define MIN_SPIN_BUTTON_WIDTH 30
 #define MAX_TIMER_CALLS       5
 #define EPSILON               1e-10
@@ -507,6 +509,8 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
   add_spin_binding (binding_set, GDK_KEY_Page_Down, GDK_CONTROL_MASK, GTK_SCROLL_START);
 
   g_type_class_add_private (class, sizeof (GtkSpinButtonPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SPIN_BUTTON_ACCESSIBLE);
 }
 
 static void
index 306eeb8f9eacb93bd0b16fcb840ec65b654d0c4b..e495603b0a07a9b8e7e05cf010c31791adae4341 100644 (file)
@@ -35,6 +35,7 @@
 #include "gtkaccessible.h"
 #include "gtkimage.h"
 #include "gtkspinner.h"
+#include "a11y/gtkspinneraccessible.h"
 
 
 /**
@@ -83,8 +84,6 @@ static void gtk_spinner_get_preferred_height (GtkWidget *widget,
                                         gint            *minimum_size,
                                         gint            *natural_size);
 
-static AtkObject *gtk_spinner_get_accessible      (GtkWidget *widget);
-static GType      gtk_spinner_accessible_get_type (void);
 
 G_DEFINE_TYPE (GtkSpinner, gtk_spinner, GTK_TYPE_WIDGET)
 
@@ -101,7 +100,6 @@ gtk_spinner_class_init (GtkSpinnerClass *klass)
 
   widget_class = GTK_WIDGET_CLASS(klass);
   widget_class->draw = gtk_spinner_draw;
-  widget_class->get_accessible = gtk_spinner_get_accessible;
   widget_class->get_preferred_width = gtk_spinner_get_preferred_width;
   widget_class->get_preferred_height = gtk_spinner_get_preferred_height;
 
@@ -118,6 +116,8 @@ gtk_spinner_class_init (GtkSpinnerClass *klass)
                                                          P_("Whether the spinner is active"),
                                                          FALSE,
                                                          G_PARAM_READWRITE));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SPINNER_ACCESSIBLE);
 }
 
 static void
@@ -238,137 +238,6 @@ gtk_spinner_set_active (GtkSpinner *spinner,
     }
 }
 
-/* accessible implementation */
-
-static void
-gtk_spinner_accessible_image_get_size (AtkImage *image,
-                                       gint     *width,
-                                       gint     *height)
-{
-  GtkAllocation allocation;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
-  if (widget == NULL)
-    {
-      *width = *height = 0;
-    }
-  else
-    {
-      gtk_widget_get_allocation (widget, &allocation);
-      *width = allocation.width;
-      *height = allocation.height;
-    }
-}
-
-static void
-gtk_spinner_accessible_image_iface_init (AtkImageIface *iface)
-{
-  iface->get_image_size = gtk_spinner_accessible_image_get_size;
-}
-
-/* dummy typedef */
-typedef struct _GtkSpinnerAccessible            GtkSpinnerAccessible;
-typedef struct _GtkSpinnerAccessibleClass       GtkSpinnerAccessibleClass;
-
-ATK_DEFINE_TYPE_WITH_CODE (GtkSpinnerAccessible,
-                           gtk_spinner_accessible,
-                           GTK_TYPE_IMAGE,
-                           G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE,
-                                                  gtk_spinner_accessible_image_iface_init));
-
-static void
-gtk_spinner_accessible_initialize (AtkObject *accessible,
-                                   gpointer   widget)
-{
-  ATK_OBJECT_CLASS (gtk_spinner_accessible_parent_class)->initialize (accessible, widget);
-
-  atk_object_set_name (accessible, C_("throbbing progress animation widget", "Spinner"));
-  atk_object_set_description (accessible, _("Provides visual indication of progress"));
-}
-
-static void
-gtk_spinner_accessible_class_init (GtkSpinnerAccessibleClass *klass)
-{
-  AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
-
-  atk_class->initialize = gtk_spinner_accessible_initialize;
-}
-
-static void
-gtk_spinner_accessible_init (GtkSpinnerAccessible *self)
-{
-}
-
-/* factory */
-typedef AtkObjectFactory        GtkSpinnerAccessibleFactory;
-typedef AtkObjectFactoryClass   GtkSpinnerAccessibleFactoryClass;
-
-G_DEFINE_TYPE (GtkSpinnerAccessibleFactory,
-               _gtk_spinner_accessible_factory,
-               ATK_TYPE_OBJECT_FACTORY);
-
-static GType
-gtk_spinner_accessible_factory_get_accessible_type (void)
-{
-  return gtk_spinner_accessible_get_type ();
-}
-
-static AtkObject *
-gtk_spinner_accessible_factory_create_accessible (GObject *obj)
-{
-  AtkObject *accessible;
-
-  accessible = g_object_new (gtk_spinner_accessible_get_type (), NULL);
-  atk_object_initialize (accessible, obj);
-
-  return accessible;
-}
-
-static void
-_gtk_spinner_accessible_factory_class_init (AtkObjectFactoryClass *klass)
-{
-  klass->create_accessible = gtk_spinner_accessible_factory_create_accessible;
-  klass->get_accessible_type = gtk_spinner_accessible_factory_get_accessible_type;
-}
-
-static void
-_gtk_spinner_accessible_factory_init (AtkObjectFactory *factory)
-{
-}
-
-static AtkObject *
-gtk_spinner_get_accessible (GtkWidget *widget)
-{
-  static gboolean first_time = TRUE;
-
-  if (first_time)
-    {
-      AtkObjectFactory *factory;
-      AtkRegistry *registry;
-      GType derived_type;
-      GType derived_atk_type;
-
-      /*
-       * Figure out whether accessibility is enabled by looking at the
-       * type of the accessible object which would be created for
-       * the parent type of GtkSpinner.
-       */
-      derived_type = g_type_parent (GTK_TYPE_SPINNER);
-
-      registry = atk_get_default_registry ();
-      factory = atk_registry_get_factory (registry, derived_type);
-      derived_atk_type = atk_object_factory_get_accessible_type (factory);
-      if (g_type_is_a (derived_atk_type, GTK_TYPE_ACCESSIBLE))
-        atk_registry_set_factory_type (registry,
-                                       GTK_TYPE_SPINNER,
-                                       _gtk_spinner_accessible_factory_get_type ());
-      first_time = FALSE;
-    }
-
-  return GTK_WIDGET_CLASS (gtk_spinner_parent_class)->get_accessible (widget);
-}
-
 /**
  * gtk_spinner_new:
  *
index 44398b34d4b15d548a31d688643128b5bb061c29..3a7df1736e707040f2c61399eadfa7be0975698e 100644 (file)
@@ -37,6 +37,7 @@
 #include "gtkbuildable.h"
 #include "gtkorientable.h"
 #include "gtktypebuiltins.h"
+#include "a11y/gtkstatusbaraccessible.h"
 
 /**
  * SECTION:gtkstatusbar
@@ -185,6 +186,8 @@ gtk_statusbar_class_init (GtkStatusbarClass *class)
                                                               GTK_PARAM_READABLE));
 
    g_type_class_add_private (class, sizeof (GtkStatusbarPrivate));
+
+   gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_STATUSBAR_ACCESSIBLE);
 }
 
 static void
index 93a3defb2f7cd2a2c1654abed81e4f773cfb6eb8..549fbaf411b42ab0d0cf9e0a83d363065a2e536c 100644 (file)
@@ -20,6 +20,7 @@
 #include "config.h"
 
 #include <gdk/gdk.h>
+#include <math.h>
 #include <stdlib.h>
 #include <gobject/gvaluecollector.h>
 
@@ -4313,3 +4314,58 @@ gtk_render_icon (GtkStyleContext *context,
 
   cairo_restore (cr);  
 }
+
+static AtkAttributeSet *
+add_attribute (AtkAttributeSet  *attributes,
+               AtkTextAttribute  attr,
+               const gchar      *value)
+{
+  AtkAttribute *at;
+
+  at = g_new (AtkAttribute, 1);
+  at->name = g_strdup (atk_text_attribute_get_name (attr));
+  at->value = g_strdup (value);
+
+  return g_slist_prepend (attributes, at);
+}
+
+/*
+ * _gtk_style_context_get_attributes:
+ * @attributes: a #AtkAttributeSet to add attributes to
+ * @context: the #GtkStyleContext to get attributes from
+ * @flags: the state to use with @context
+ *
+ * Adds the foreground and background color from @context to
+ * @attributes, after translating them to ATK attributes.
+ *
+ * This is a convenience function that can be used in
+ * implementing the #AtkText interface in widgets.
+ *
+ * Returns: the modified #AtkAttributeSet
+ */
+AtkAttributeSet *
+_gtk_style_context_get_attributes (AtkAttributeSet *attributes,
+                                   GtkStyleContext *context,
+                                   GtkStateFlags    flags)
+{
+  GdkRGBA color;
+  gchar *value;
+
+  gtk_style_context_get_background_color (context, flags, &color);
+  value = g_strdup_printf ("%u,%u,%u",
+                           (guint) ceil (color.red * 65536 - color.red),
+                           (guint) ceil (color.green * 65536 - color.green),
+                           (guint) ceil (color.blue * 65536 - color.blue));
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_BG_COLOR, value);
+  g_free (value);
+
+  gtk_style_context_get_color (context, flags, &color);
+  value = g_strdup_printf ("%u,%u,%u",
+                           (guint) ceil (color.red * 65536 - color.red),
+                           (guint) ceil (color.green * 65536 - color.green),
+                           (guint) ceil (color.blue * 65536 - color.blue));
+  attributes = add_attribute (attributes, ATK_TEXT_ATTR_FG_COLOR, value);
+  g_free (value);
+
+  return attributes;
+}
index 661edd0f764ecfe8a840b2c98e970e58adcf1a01..dd1339508cb3595a5dd2a14ad5fedbc8281ff660 100644 (file)
@@ -28,6 +28,7 @@
 #include <gtk/gtkstyleprovider.h>
 #include <gtk/gtkwidgetpath.h>
 #include <gtk/gtkborder.h>
+#include <atk/atk.h>
 
 G_BEGIN_DECLS
 
@@ -858,6 +859,11 @@ void        gtk_render_icon        (GtkStyleContext     *context,
                                     gdouble              x,
                                     gdouble              y);
 
+/* Accessibility support */
+AtkAttributeSet *_gtk_style_context_get_attributes (AtkAttributeSet *attributes,
+                                                    GtkStyleContext *context,
+                                                    GtkStateFlags    flags);
+
 G_END_DECLS
 
 #endif /* __GTK_STYLE_CONTEXT_H__ */
index 458fcaa2fb32e033345bdbc282ac8e8bd529e5e2..24837d55dc1d830f0888a3507a9cc98223b90b2f 100644 (file)
@@ -319,6 +319,7 @@ gtk_style_properties_register_property (GtkStylePropertyParser  parse_func,
                                 NULL,
                                 NULL,
                                 NULL,
+                                NULL,
                                 NULL);
 }
 
@@ -839,6 +840,12 @@ gtk_style_properties_unset_property (GtkStyleProperties *props,
       return;
     }
 
+  if (node->unset_func)
+    {
+      node->unset_func (props, state);
+      return;
+    }
+
   priv = props->priv;
   prop = g_hash_table_lookup (priv->properties, node);
 
index f3c19980de6e788e55fe7d4eb1d9015d05d89c31..6ffb46c446a7abcd2836a6d64c7255b63f37b77e 100644 (file)
@@ -302,6 +302,7 @@ font_description_value_parse (GtkCssParser *parser,
                               GValue       *value)
 {
   PangoFontDescription *font_desc;
+  guint mask;
   char *str;
 
   str = _gtk_css_parser_read_value (parser);
@@ -309,6 +310,13 @@ font_description_value_parse (GtkCssParser *parser,
     return FALSE;
 
   font_desc = pango_font_description_from_string (str);
+  mask = pango_font_description_get_set_fields (font_desc);
+  /* These values are not really correct,
+   * but the fields must be set, so we set them to something */
+  if ((mask & PANGO_FONT_MASK_FAMILY) == 0)
+    pango_font_description_set_family_static (font_desc, "Sans");
+  if ((mask & PANGO_FONT_MASK_SIZE) == 0)
+    pango_font_description_set_size (font_desc, 10 * PANGO_SCALE);
   g_free (str);
   g_value_take_boxed (value, font_desc);
   return TRUE;
@@ -523,7 +531,7 @@ theming_engine_value_print (const GValue *value,
     {
       /* XXX: gtk_theming_engine_get_name()? */
       g_object_get (engine, "name", &name, NULL);
-      g_string_append (string, name);
+      g_string_append (string, name ? name : "none");
       g_free (name);
     }
 }
@@ -948,6 +956,72 @@ pattern_value_parse (GtkCssParser *parser,
   return TRUE;
 }
 
+static cairo_status_t
+surface_write (void                *closure,
+               const unsigned char *data,
+               unsigned int         length)
+{
+  g_byte_array_append (closure, data, length);
+
+  return CAIRO_STATUS_SUCCESS;
+}
+
+static void
+surface_print (cairo_surface_t *surface,
+               GString *        string)
+{
+#if CAIRO_HAS_PNG_FUNCTIONS
+  GByteArray *array;
+  char *base64;
+  
+  array = g_byte_array_new ();
+  cairo_surface_write_to_png_stream (surface, surface_write, array);
+  base64 = g_base64_encode (array->data, array->len);
+  g_byte_array_free (array, TRUE);
+
+  g_string_append (string, "url(\"data:image/png;base64,");
+  g_string_append (string, base64);
+  g_string_append (string, "\")");
+
+  g_free (base64);
+#else
+  g_string_append (string, "none /* you need cairo png functions enabled to make this work */");
+#endif
+}
+
+static void
+pattern_value_print (const GValue *value,
+                     GString      *string)
+{
+  cairo_pattern_t *pattern;
+  cairo_surface_t *surface;
+
+  pattern = g_value_get_boxed (value);
+
+  if (pattern == NULL)
+    {
+      g_string_append (string, "none");
+      return;
+    }
+
+  switch (cairo_pattern_get_type (pattern))
+    {
+    case CAIRO_PATTERN_TYPE_SURFACE:
+      if (cairo_pattern_get_surface (pattern, &surface) != CAIRO_STATUS_SUCCESS)
+        {
+          g_assert_not_reached ();
+        }
+      surface_print (surface, string);
+      break;
+    case CAIRO_PATTERN_TYPE_SOLID:
+    case CAIRO_PATTERN_TYPE_LINEAR:
+    case CAIRO_PATTERN_TYPE_RADIAL:
+    default:
+      g_assert_not_reached ();
+      break;
+    }
+}
+
 static gboolean
 shadow_value_parse (GtkCssParser *parser,
                     GFile *base,
@@ -1109,9 +1183,12 @@ border_image_repeat_value_print (const GValue *value,
 
   image_repeat = g_value_get_boxed (value);
 
-  g_string_append_printf (string, "%s %s",
-                          border_image_repeat_style_to_string (image_repeat->hrepeat),
-                          border_image_repeat_style_to_string (image_repeat->vrepeat));
+  g_string_append (string, border_image_repeat_style_to_string (image_repeat->hrepeat));
+  if (image_repeat->hrepeat != image_repeat->vrepeat)
+    {
+      g_string_append (string, " ");
+      g_string_append (string, border_image_repeat_style_to_string (image_repeat->vrepeat));
+    }
 }
 
 static gboolean
@@ -1649,7 +1726,7 @@ border_color_shorthand_value_parse (GtkCssParser *parser,
 
   g_value_unset (value);
   g_value_init (value, G_TYPE_PTR_ARRAY);
-  g_value_set_boxed (value, array);
+  g_value_take_boxed (value, array);
 
   return TRUE;
 }
@@ -1931,7 +2008,7 @@ pack_font_description (GValue             *value,
   pango_font_description_set_variant (description, variant);
   pango_font_description_set_weight (description, weight);
 
-  g_free (families);
+  g_strfreev (families);
 
   g_value_take_boxed (value, description);
 }
@@ -1992,6 +2069,79 @@ pack_border_color (GValue             *value,
   gtk_style_properties_get_property (props, "border-top-color", state, value);
 }
 
+/*** UNSET FUNCS ***/
+
+static void
+unset_font_description (GtkStyleProperties *props,
+                        GtkStateFlags       state)
+{
+  gtk_style_properties_unset_property (props, "font-family", state);
+  gtk_style_properties_unset_property (props, "font-style", state);
+  gtk_style_properties_unset_property (props, "font-variant", state);
+  gtk_style_properties_unset_property (props, "font-weight", state);
+  gtk_style_properties_unset_property (props, "font-size", state);
+}
+
+static void
+unset_margin (GtkStyleProperties *props,
+              GtkStateFlags       state)
+{
+  gtk_style_properties_unset_property (props, "margin-top", state);
+  gtk_style_properties_unset_property (props, "margin-right", state);
+  gtk_style_properties_unset_property (props, "margin-bottom", state);
+  gtk_style_properties_unset_property (props, "margin-left", state);
+}
+
+static void
+unset_padding (GtkStyleProperties *props,
+               GtkStateFlags       state)
+{
+  gtk_style_properties_unset_property (props, "padding-top", state);
+  gtk_style_properties_unset_property (props, "padding-right", state);
+  gtk_style_properties_unset_property (props, "padding-bottom", state);
+  gtk_style_properties_unset_property (props, "padding-left", state);
+}
+
+static void
+unset_border_width (GtkStyleProperties *props,
+                    GtkStateFlags       state)
+{
+  gtk_style_properties_unset_property (props, "border-top-width", state);
+  gtk_style_properties_unset_property (props, "border-right-width", state);
+  gtk_style_properties_unset_property (props, "border-bottom-width", state);
+  gtk_style_properties_unset_property (props, "border-left-width", state);
+}
+
+static void
+unset_border_radius (GtkStyleProperties *props,
+                     GtkStateFlags       state)
+{
+  gtk_style_properties_unset_property (props, "border-top-right-radius", state);
+  gtk_style_properties_unset_property (props, "border-bottom-right-radius", state);
+  gtk_style_properties_unset_property (props, "border-bottom-left-radius", state);
+  gtk_style_properties_unset_property (props, "border-top-left-radius", state);
+}
+
+static void
+unset_border_color (GtkStyleProperties *props,
+                    GtkStateFlags       state)
+{
+  gtk_style_properties_unset_property (props, "border-top-color", state);
+  gtk_style_properties_unset_property (props, "border-right-color", state);
+  gtk_style_properties_unset_property (props, "border-bottom-color", state);
+  gtk_style_properties_unset_property (props, "border-left-color", state);
+}
+
+static void
+unset_border_image (GtkStyleProperties *props,
+                    GtkStateFlags       state)
+{
+  gtk_style_properties_unset_property (props, "border-image-source", state);
+  gtk_style_properties_unset_property (props, "border-image-slice", state);
+  gtk_style_properties_unset_property (props, "border-image-repeat", state);
+  gtk_style_properties_unset_property (props, "border-image-width", state);
+}
+
 /*** default values ***/
 
 static void
@@ -2065,7 +2215,7 @@ css_string_funcs_init (void)
                                 gradient_value_print);
   register_conversion_function (CAIRO_GOBJECT_TYPE_PATTERN,
                                 pattern_value_parse,
-                                NULL);
+                                pattern_value_print);
   register_conversion_function (GTK_TYPE_BORDER_IMAGE,
                                 border_image_value_parse,
                                 NULL);
@@ -2394,6 +2544,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           NULL,
                                           NULL,
+                                          NULL,
                                           NULL);
 
   gtk_style_properties_register_property (NULL,
@@ -2412,6 +2563,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           font_family_parse,
                                           font_family_value_print,
+                                          NULL,
                                           NULL);
   _gtk_style_property_register           (g_param_spec_enum ("font-style",
                                                              "Font style",
@@ -2424,6 +2576,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           NULL,
                                           NULL,
+                                          NULL,
                                           NULL);
   _gtk_style_property_register           (g_param_spec_enum ("font-variant",
                                                              "Font variant",
@@ -2436,6 +2589,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           NULL,
                                           NULL,
+                                          NULL,
                                           NULL);
   /* xxx: need to parse this properly, ie parse the numbers */
   _gtk_style_property_register           (g_param_spec_enum ("font-weight",
@@ -2449,6 +2603,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           NULL,
                                           NULL,
+                                          NULL,
                                           NULL);
   _gtk_style_property_register           (g_param_spec_double ("font-size",
                                                                "Font size",
@@ -2460,6 +2615,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           NULL,
                                           NULL,
+                                          NULL,
                                           NULL);
   _gtk_style_property_register           (g_param_spec_boxed ("font",
                                                               "Font Description",
@@ -2471,7 +2627,8 @@ gtk_style_property_init (void)
                                           pack_font_description,
                                           font_description_value_parse,
                                           font_description_value_print,
-                                          NULL);
+                                          NULL,
+                                          unset_font_description);
 
   _gtk_style_property_register           (g_param_spec_boxed ("text-shadow",
                                                               "Text shadow",
@@ -2483,6 +2640,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           NULL,
                                           NULL,
+                                          NULL,
                                           NULL);
 
   _gtk_style_property_register           (g_param_spec_boxed ("icon-shadow",
@@ -2495,6 +2653,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           NULL,
                                           NULL,
+                                          NULL,
                                           NULL);
 
   gtk_style_properties_register_property (NULL,
@@ -2532,7 +2691,8 @@ gtk_style_property_init (void)
                                           pack_margin,
                                           NULL,
                                           NULL,
-                                          NULL);
+                                          NULL,
+                                          unset_margin);
   gtk_style_properties_register_property (NULL,
                                           g_param_spec_int ("padding-top",
                                                             "padding top",
@@ -2563,7 +2723,8 @@ gtk_style_property_init (void)
                                           pack_padding,
                                           NULL,
                                           NULL,
-                                          NULL);
+                                          NULL,
+                                          unset_padding);
   gtk_style_properties_register_property (NULL,
                                           g_param_spec_int ("border-top-width",
                                                             "border top width",
@@ -2594,7 +2755,8 @@ gtk_style_property_init (void)
                                           pack_border_width,
                                           NULL,
                                           NULL,
-                                          NULL);
+                                          NULL,
+                                          unset_border_width);
 
   _gtk_style_property_register           (g_param_spec_boxed ("border-top-left-radius",
                                                               "Border top left radius",
@@ -2606,6 +2768,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           border_corner_radius_value_parse,
                                           border_corner_radius_value_print,
+                                          NULL,
                                           NULL);
   _gtk_style_property_register           (g_param_spec_boxed ("border-top-right-radius",
                                                               "Border top right radius",
@@ -2617,6 +2780,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           border_corner_radius_value_parse,
                                           border_corner_radius_value_print,
+                                          NULL,
                                           NULL);
   _gtk_style_property_register           (g_param_spec_boxed ("border-bottom-right-radius",
                                                               "Border bottom right radius",
@@ -2628,6 +2792,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           border_corner_radius_value_parse,
                                           border_corner_radius_value_print,
+                                          NULL,
                                           NULL);
   _gtk_style_property_register           (g_param_spec_boxed ("border-bottom-left-radius",
                                                               "Border bottom left radius",
@@ -2639,6 +2804,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           border_corner_radius_value_parse,
                                           border_corner_radius_value_print,
+                                          NULL,
                                           NULL);
   _gtk_style_property_register           (g_param_spec_int ("border-radius",
                                                             "Border radius",
@@ -2650,7 +2816,8 @@ gtk_style_property_init (void)
                                           pack_border_radius,
                                           border_radius_value_parse,
                                           border_radius_value_print,
-                                          NULL);
+                                          NULL,
+                                          unset_border_radius);
 
   gtk_style_properties_register_property (NULL,
                                           g_param_spec_enum ("border-style",
@@ -2668,7 +2835,8 @@ gtk_style_property_init (void)
                                           NULL,
                                           border_color_value_parse,
                                           NULL,
-                                          border_color_default_value);
+                                          border_color_default_value,
+                                          NULL);
   _gtk_style_property_register           (g_param_spec_boxed ("border-right-color",
                                                               "Border right color",
                                                               "Border right color",
@@ -2679,7 +2847,8 @@ gtk_style_property_init (void)
                                           NULL,
                                           border_color_value_parse,
                                           NULL,
-                                          border_color_default_value);
+                                          border_color_default_value,
+                                          NULL);
   _gtk_style_property_register           (g_param_spec_boxed ("border-bottom-color",
                                                               "Border bottom color",
                                                               "Border bottom color",
@@ -2690,7 +2859,8 @@ gtk_style_property_init (void)
                                           NULL,
                                           border_color_value_parse,
                                           NULL,
-                                          border_color_default_value);
+                                          border_color_default_value,
+                                          NULL);
   _gtk_style_property_register           (g_param_spec_boxed ("border-left-color",
                                                               "Border left color",
                                                               "Border left color",
@@ -2701,7 +2871,8 @@ gtk_style_property_init (void)
                                           NULL,
                                           border_color_value_parse,
                                           NULL,
-                                          border_color_default_value);
+                                          border_color_default_value,
+                                          NULL);
   _gtk_style_property_register           (g_param_spec_boxed ("border-color",
                                                               "Border color",
                                                               "Border color",
@@ -2712,7 +2883,8 @@ gtk_style_property_init (void)
                                           pack_border_color,
                                           border_color_shorthand_value_parse,
                                           NULL,
-                                          NULL);
+                                          NULL,
+                                          unset_border_color);
 
   gtk_style_properties_register_property (NULL,
                                           g_param_spec_boxed ("background-image",
@@ -2744,7 +2916,8 @@ gtk_style_property_init (void)
                                           NULL,
                                           NULL,
                                           NULL,
-                                          border_image_width_default_value);
+                                          border_image_width_default_value,
+                                          NULL);
   _gtk_style_property_register           (g_param_spec_boxed ("border-image",
                                                               "Border Image",
                                                               "Border Image",
@@ -2755,7 +2928,8 @@ gtk_style_property_init (void)
                                           _gtk_border_image_pack,
                                           NULL,
                                           NULL,
-                                          NULL);
+                                          NULL,
+                                          unset_border_image);
   gtk_style_properties_register_property (NULL,
                                           g_param_spec_object ("engine",
                                                                "Theming Engine",
@@ -2778,6 +2952,7 @@ gtk_style_property_init (void)
                                           NULL,
                                           bindings_value_parse,
                                           bindings_value_print,
+                                          NULL,
                                           NULL);
 }
 
@@ -2797,7 +2972,8 @@ _gtk_style_property_register (GParamSpec               *pspec,
                               GtkStylePackFunc          pack_func,
                               GtkStyleParseFunc         parse_func,
                               GtkStylePrintFunc         print_func,
-                              GtkStyleDefaultValueFunc  default_value_func)
+                              GtkStyleDefaultValueFunc  default_value_func,
+                              GtkStyleUnsetFunc         unset_func)
 {
   const GtkStyleProperty *existing;
   GtkStyleProperty *node;
@@ -2823,6 +2999,7 @@ _gtk_style_property_register (GParamSpec               *pspec,
   node->parse_func = parse_func;
   node->print_func = print_func;
   node->default_value_func = default_value_func;
+  node->unset_func = unset_func;
 
   g_hash_table_insert (properties, pspec->name, node);
 }
index db8706843f72df25ddb24e5c6b34ff12ca76ecda..aef18b8893b5cc3758ab6ab3c29475da99f081af 100644 (file)
@@ -42,6 +42,8 @@ typedef void             (* GtkStylePrintFunc)             (const GValue
 typedef void             (* GtkStyleDefaultValueFunc)      (GtkStyleProperties     *props,
                                                             GtkStateFlags           state,
                                                             GValue                 *value);
+typedef void             (* GtkStyleUnsetFunc)             (GtkStyleProperties     *props,
+                                                            GtkStateFlags           state);
 
 
 struct _GtkStyleProperty
@@ -55,6 +57,7 @@ struct _GtkStyleProperty
   GtkStyleParseFunc         parse_func;
   GtkStylePrintFunc         print_func;
   GtkStyleDefaultValueFunc  default_value_func;
+  GtkStyleUnsetFunc         unset_func;
 };
 
 const GtkStyleProperty * _gtk_style_property_lookup        (const char             *name);
@@ -66,7 +69,8 @@ void                     _gtk_style_property_register      (GParamSpec
                                                             GtkStylePackFunc        pack_func,
                                                             GtkStyleParseFunc       parse_func,
                                                             GtkStylePrintFunc       print_func,
-                                                            GtkStyleDefaultValueFunc default_value_func);
+                                                            GtkStyleDefaultValueFunc default_value_func,
+                                                            GtkStyleUnsetFunc       unset_func);
 
 gboolean                 _gtk_style_property_is_inherit    (const GtkStyleProperty *property);
 
index c63a68e6c44415d0d50ea561424c2e5ba47fa9af..8d9c38aeb72fe6cf3370b9d2ea052d460d9b8b7a 100644 (file)
 
 #include "gtkswitch.h"
 
-#include "gtkaccessibleprivate.h"
 #include "gtkactivatable.h"
 #include "gtkintl.h"
 #include "gtkprivate.h"
 #include "gtktoggleaction.h"
 #include "gtkwidget.h"
 #include "gtkmarshalers.h"
+#include "a11y/gtkswitchaccessible.h"
 
 #include <math.h>
 
@@ -89,8 +89,6 @@ static guint signals[LAST_SIGNAL] = { 0 };
 
 static GParamSpec *switch_props[LAST_PROP] = { NULL, };
 
-static GType gtk_switch_accessible_factory_get_type (void);
-
 static void gtk_switch_activatable_interface_init (GtkActivatableIface *iface);
 
 G_DEFINE_TYPE_WITH_CODE (GtkSwitch, gtk_switch, GTK_TYPE_WIDGET,
@@ -659,21 +657,6 @@ gtk_switch_draw (GtkWidget *widget,
   return FALSE;
 }
 
-static AtkObject *
-gtk_switch_get_accessible (GtkWidget *widget)
-{
-  static gboolean first_time = TRUE;
-
-  if (G_UNLIKELY (first_time))
-    {
-      _gtk_accessible_set_factory_type (GTK_TYPE_SWITCH,
-                                        gtk_switch_accessible_factory_get_type ());
-      first_time = FALSE;
-    }
-
-  return GTK_WIDGET_CLASS (gtk_switch_parent_class)->get_accessible (widget);
-}
-
 static void
 gtk_switch_set_related_action (GtkSwitch *sw,
                                GtkAction *action)
@@ -821,7 +804,6 @@ gtk_switch_class_init (GtkSwitchClass *klass)
   widget_class->motion_notify_event = gtk_switch_motion;
   widget_class->enter_notify_event = gtk_switch_enter;
   widget_class->leave_notify_event = gtk_switch_leave;
-  widget_class->get_accessible = gtk_switch_get_accessible;
 
   klass->activate = gtk_switch_activate;
 
@@ -857,6 +839,7 @@ gtk_switch_class_init (GtkSwitchClass *klass)
                   G_TYPE_NONE, 0);
   widget_class->activate_signal = signals[ACTIVATE];
 
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_SWITCH_ACCESSIBLE);
 }
 
 static void
@@ -1000,210 +983,3 @@ gtk_switch_activatable_interface_init (GtkActivatableIface *iface)
   iface->update = gtk_switch_update;
   iface->sync_action_properties = gtk_switch_sync_action_properties;
 }
-
-/* accessibility: object */
-
-typedef struct _GtkSwitchAccessible      GtkSwitchAccessible;
-typedef struct _GtkSwitchAccessibleClass GtkSwitchAccessibleClass;
-
-struct _GtkSwitchAccessible
-{
-  GtkAccessible object;
-
-  gchar *description;
-  guint  action_idle;
-};
-
-static void atk_action_interface_init (AtkActionIface *iface);
-
-ATK_DEFINE_TYPE_WITH_CODE (GtkSwitchAccessible, _gtk_switch_accessible, GTK_TYPE_SWITCH,
-                           G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
-
-static AtkStateSet *
-gtk_switch_accessible_ref_state_set (AtkObject *accessible)
-{
-  AtkStateSet *state_set;
-  GtkWidget *widget;
-
-  state_set = ATK_OBJECT_CLASS (_gtk_switch_accessible_parent_class)->ref_state_set (accessible);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  if (widget == NULL)
-    return state_set;
-
-  if (gtk_switch_get_active (GTK_SWITCH (widget)))
-    atk_state_set_add_state (state_set, ATK_STATE_CHECKED);
-
-  return state_set;
-}
-
-static void
-gtk_switch_accessible_finalize (GObject *obj)
-{
-  GtkSwitchAccessible *accessible = (GtkSwitchAccessible *)obj;
-
-  g_free (accessible->description);
-
-  if (accessible->action_idle)
-    g_source_remove (accessible->action_idle);
-
-  G_OBJECT_CLASS (_gtk_switch_accessible_parent_class)->finalize (obj);
-}
-
-static void
-_gtk_switch_accessible_initialize (AtkObject *accessible,
-                                   gpointer   widget)
-{
-  ATK_OBJECT_CLASS (_gtk_switch_accessible_parent_class)->initialize (accessible, widget);
-
-  atk_object_set_role (accessible, ATK_ROLE_TOGGLE_BUTTON);
-  atk_object_set_name (accessible, C_("light switch widget", "Switch"));
-  atk_object_set_description (accessible, _("Switches between on and off states"));
-}
-
-static void
-_gtk_switch_accessible_class_init (GtkSwitchAccessibleClass *klass)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *atk_class = ATK_OBJECT_CLASS (klass);
-
-  object_class->finalize = gtk_switch_accessible_finalize;
-
-  atk_class->initialize = _gtk_switch_accessible_initialize;
-  atk_class->ref_state_set = gtk_switch_accessible_ref_state_set;
-}
-
-static void
-_gtk_switch_accessible_init (GtkSwitchAccessible *self)
-{
-  self->description = NULL;
-  self->action_idle = 0;
-}
-
-/* accessibility: action interface */
-
-static gint
-gtk_switch_action_get_n_actions (AtkAction *action)
-{
-  return 1;
-}
-
-static const gchar *
-gtk_switch_action_get_name (AtkAction *action,
-                            gint       i)
-{
-  return "toggle";
-}
-
-static const gchar *
-gtk_switch_action_get_description (AtkAction *action,
-                                   gint       i)
-{
-  GtkSwitchAccessible *accessible = (GtkSwitchAccessible*)action;
-
-  return accessible->description;
-}
-
-static gboolean
-gtk_switch_action_set_description (AtkAction   *action,
-                                   gint         i,
-                                   const gchar *description)
-{
-  GtkSwitchAccessible *accessible = (GtkSwitchAccessible*)action;
-
-  g_free (accessible->description);
-  accessible->description = g_strdup (description);
-
-  return TRUE;
-}
-
-static gboolean
-idle_do_action (gpointer data)
-{
-  GtkSwitchAccessible *accessible = data;
-  GtkWidget *widget;
-  GtkSwitch *sw;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (data));
-  sw = GTK_SWITCH (widget);
-
-  accessible->action_idle = 0;
-
-  if (widget == NULL ||
-      !gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  gtk_switch_set_active (sw, !gtk_switch_get_active (sw));
-
-  return FALSE;
-}
-
-static gboolean
-gtk_switch_action_do_action (AtkAction *action,
-                             gint       i)
-{
-  GtkSwitchAccessible *accessible;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
-  if (widget == NULL)
-    return FALSE;
-
-  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  accessible = (GtkSwitchAccessible *)action;
-
-  if (!accessible->action_idle)
-    accessible->action_idle = gdk_threads_add_idle (idle_do_action, accessible);
-
-  return TRUE;
-}
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
-  iface->do_action = gtk_switch_action_do_action;
-  iface->get_n_actions = gtk_switch_action_get_n_actions;
-  iface->get_name = gtk_switch_action_get_name;
-  iface->get_description = gtk_switch_action_get_description;
-  iface->set_description = gtk_switch_action_set_description;
-}
-
-/* accessibility: factory */
-
-typedef AtkObjectFactoryClass   GtkSwitchAccessibleFactoryClass;
-typedef AtkObjectFactory        GtkSwitchAccessibleFactory;
-
-G_DEFINE_TYPE (GtkSwitchAccessibleFactory,
-               gtk_switch_accessible_factory,
-               ATK_TYPE_OBJECT_FACTORY);
-
-static GType
-gtk_switch_accessible_factory_get_accessible_type (void)
-{
-  return _gtk_switch_accessible_get_type ();
-}
-
-static AtkObject *
-gtk_switch_accessible_factory_create_accessible (GObject *obj)
-{
-  AtkObject *accessible;
-
-  accessible = g_object_new (_gtk_switch_accessible_get_type (), NULL);
-  atk_object_initialize (accessible, obj);
-
-  return accessible;
-}
-
-static void
-gtk_switch_accessible_factory_class_init (AtkObjectFactoryClass *klass)
-{
-  klass->create_accessible = gtk_switch_accessible_factory_create_accessible;
-  klass->get_accessible_type = gtk_switch_accessible_factory_get_accessible_type;
-}
-
-static void
-gtk_switch_accessible_factory_init (AtkObjectFactory *factory)
-{
-}
index ab8c826e523960b3f3da5a381e15d2a5ce8a4ead..dee3d34b09e392761a1571eacc8cc01669a315c5 100644 (file)
@@ -750,9 +750,9 @@ gtk_table_attach (GtkTable    *table,
                  guint            xpadding,
                  guint            ypadding)
 {
-  GtkTablePrivate *priv = table->priv;
+  GtkTablePrivate *priv;
   GtkTableChild *table_child;
-  
+
   g_return_if_fail (GTK_IS_TABLE (table));
   g_return_if_fail (GTK_IS_WIDGET (child));
   g_return_if_fail (gtk_widget_get_parent (child) == NULL);
index bf3a37c766db5a27e75160a58c530411b1d0b489..81c9ec73b37a6d9900a87b9e112417fb317dc6be 100644 (file)
@@ -103,6 +103,8 @@ gtk_tearoff_menu_item_class_init (GtkTearoffMenuItemClass *klass)
   widget_class->get_preferred_height = gtk_tearoff_menu_item_get_preferred_height;
   widget_class->parent_set = gtk_tearoff_menu_item_parent_set;
 
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_TEAR_OFF_MENU_ITEM);
+
   menu_item_class->activate = gtk_tearoff_menu_item_activate;
 
   g_type_class_add_private (klass, sizeof (GtkTearoffMenuItemPrivate));
index 8f52e92dc41dda4ea2655ade227ab84cc525ada5..5bf7c8a95f3f2aaa0801e516b52188473a464788 100644 (file)
@@ -43,7 +43,7 @@
  *        <parameter>argv</parameter> parameter of main().
  *        Any parameters understood by g_test_init() or gtk_init() are
  *        stripped before return.
- * @Varargs: currently unused
+ * @...: currently unused
  *
  * This function is used to initialize a GTK+ test program.
  *
@@ -513,7 +513,7 @@ gtk_test_text_get (GtkWidget *widget)
  * gtk_test_create_widget:
  * @widget_type: a valid widget type.
  * @first_property_name: (allow-none): Name of first property to set or %NULL
- * @Varargs: value to set the first property to, followed by more
+ * @...: value to set the first property to, followed by more
  *    name-value pairs, terminated by %NULL
  *
  * This function wraps g_object_new() for widget types.
@@ -643,14 +643,15 @@ static guint  n_all_registered_types = 0;
 /**
  * gtk_test_list_all_types:
  * @n_types: location to store number of types
- * @returns: (array length=n_types zero-terminated=1) (transfer none):
- *    0-terminated array of type ids
  *
  * Return the type ids that have been registered after
  * calling gtk_test_register_all_types().
  *
+ * Returns: (array length=n_types zero-terminated=1) (transfer none):
+ *    0-terminated array of type ids
+ *
  * Since: 2.14
- **/
+ */
 const GType*
 gtk_test_list_all_types (guint *n_types)
 {
index 24ca6e18e9c01314b98087674713a28ddddc4bd3..b66eb77a2ba0da2ed5a048c2d6dbcdbad9687935 100644 (file)
@@ -4448,3 +4448,302 @@ _gtk_text_buffer_spew (GtkTextBuffer *buffer)
 {
   _gtk_text_btree_spew (get_btree (buffer));
 }
+
+void
+_gtk_text_buffer_get_text_before (GtkTextBuffer   *buffer,
+                                  AtkTextBoundary  boundary_type,
+                                  GtkTextIter     *position,
+                                  GtkTextIter     *start,
+                                  GtkTextIter     *end)
+{
+  gint line_number;
+
+  *start = *position;
+  *end = *start;
+
+  switch (boundary_type)
+    {
+    case ATK_TEXT_BOUNDARY_CHAR:
+      gtk_text_iter_backward_char (start);
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_START:
+      if (!gtk_text_iter_starts_word (start))
+        gtk_text_iter_backward_word_start (start);
+      *end = *start;
+      gtk_text_iter_backward_word_start (start);
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_END:
+      if (gtk_text_iter_inside_word (start) &&
+          !gtk_text_iter_starts_word (start))
+        gtk_text_iter_backward_word_start (start);
+      while (!gtk_text_iter_ends_word (start))
+        {
+          if (!gtk_text_iter_backward_char (start))
+            break;
+        }
+      *end = *start;
+      gtk_text_iter_backward_word_start (start);
+      while (!gtk_text_iter_ends_word (start))
+        {
+          if (!gtk_text_iter_backward_char (start))
+            break;
+        }
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_START:
+      if (!gtk_text_iter_starts_sentence (start))
+        gtk_text_iter_backward_sentence_start (start);
+      *end = *start;
+      gtk_text_iter_backward_sentence_start (start);
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_END:
+      if (gtk_text_iter_inside_sentence (start) &&
+          !gtk_text_iter_starts_sentence (start))
+        gtk_text_iter_backward_sentence_start (start);
+      while (!gtk_text_iter_ends_sentence (start))
+        {
+          if (!gtk_text_iter_backward_char (start))
+            break;
+        }
+      *end = *start;
+      gtk_text_iter_backward_sentence_start (start);
+      while (!gtk_text_iter_ends_sentence (start))
+        {
+          if (!gtk_text_iter_backward_char (start))
+            break;
+        }
+      break;
+
+    case ATK_TEXT_BOUNDARY_LINE_START:
+      line_number = gtk_text_iter_get_line (start);
+      if (line_number == 0)
+        {
+          gtk_text_buffer_get_iter_at_offset (buffer, start, 0);
+        }
+      else
+        {
+          gtk_text_iter_backward_line (start);
+          gtk_text_iter_forward_line (start);
+        }
+      *end = *start;
+      gtk_text_iter_backward_line (start);
+      break;
+
+    case ATK_TEXT_BOUNDARY_LINE_END:
+      line_number = gtk_text_iter_get_line (start);
+      if (line_number == 0)
+        {
+          gtk_text_buffer_get_iter_at_offset (buffer, start, 0);
+          *end = *start;
+        }
+      else
+        {
+          gtk_text_iter_backward_line (start);
+          *end = *start;
+          while (!gtk_text_iter_ends_line (start))
+            {
+              if (!gtk_text_iter_backward_char (start))
+                break;
+            }
+          gtk_text_iter_forward_to_line_end (end);
+        }
+      break;
+    }
+}
+
+void
+_gtk_text_buffer_get_text_at (GtkTextBuffer   *buffer,
+                              AtkTextBoundary  boundary_type,
+                              GtkTextIter     *position,
+                              GtkTextIter     *start,
+                              GtkTextIter     *end)
+{
+  gint line_number;
+
+  *start = *position;
+  *end = *start;
+
+  switch (boundary_type)
+    {
+    case ATK_TEXT_BOUNDARY_CHAR:
+      gtk_text_iter_forward_char (end);
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_START:
+      if (!gtk_text_iter_starts_word (start))
+        gtk_text_iter_backward_word_start (start);
+      if (gtk_text_iter_inside_word (end))
+        gtk_text_iter_forward_word_end (end);
+      while (!gtk_text_iter_starts_word (end))
+        {
+          if (!gtk_text_iter_forward_char (end))
+            break;
+        }
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_END:
+      if (gtk_text_iter_inside_word (start) &&
+          !gtk_text_iter_starts_word (start))
+        gtk_text_iter_backward_word_start (start);
+      while (!gtk_text_iter_ends_word (start))
+        {
+          if (!gtk_text_iter_backward_char (start))
+            break;
+        }
+      gtk_text_iter_forward_word_end (end);
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_START:
+      if (!gtk_text_iter_starts_sentence (start))
+        gtk_text_iter_backward_sentence_start (start);
+      if (gtk_text_iter_inside_sentence (end))
+        gtk_text_iter_forward_sentence_end (end);
+      while (!gtk_text_iter_starts_sentence (end))
+        {
+          if (!gtk_text_iter_forward_char (end))
+            break;
+        }
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_END:
+      if (gtk_text_iter_inside_sentence (start) &&
+          !gtk_text_iter_starts_sentence (start))
+        gtk_text_iter_backward_sentence_start (start);
+      while (!gtk_text_iter_ends_sentence (start))
+        {
+          if (!gtk_text_iter_backward_char (start))
+            break;
+        }
+      gtk_text_iter_forward_sentence_end (end);
+      break;
+
+    case ATK_TEXT_BOUNDARY_LINE_START:
+      line_number = gtk_text_iter_get_line (start);
+      if (line_number == 0)
+        {
+          gtk_text_buffer_get_iter_at_offset (buffer, start, 0);
+        }
+      else
+        {
+          gtk_text_iter_backward_line (start);
+          gtk_text_iter_forward_line (start);
+        }
+      gtk_text_iter_forward_line (end);
+      break;
+
+    case ATK_TEXT_BOUNDARY_LINE_END:
+      line_number = gtk_text_iter_get_line (start);
+      if (line_number == 0)
+        {
+          gtk_text_buffer_get_iter_at_offset (buffer, start, 0);
+        }
+      else
+        {
+          gtk_text_iter_backward_line (start);
+          gtk_text_iter_forward_line (start);
+        }
+      while (!gtk_text_iter_ends_line (start))
+        {
+          if (!gtk_text_iter_backward_char (start))
+            break;
+        }
+      gtk_text_iter_forward_to_line_end (end);
+      break;
+   }
+}
+
+void
+_gtk_text_buffer_get_text_after (GtkTextBuffer   *buffer,
+                                 AtkTextBoundary  boundary_type,
+                                 GtkTextIter     *position,
+                                 GtkTextIter     *start,
+                                 GtkTextIter     *end)
+{
+  *start = *position;
+  *end = *start;
+
+  switch (boundary_type)
+    {
+    case ATK_TEXT_BOUNDARY_CHAR:
+      gtk_text_iter_forward_char (start);
+      gtk_text_iter_forward_chars (end, 2);
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_START:
+      if (gtk_text_iter_inside_word (end))
+        gtk_text_iter_forward_word_end (end);
+      while (!gtk_text_iter_starts_word (end))
+        {
+          if (!gtk_text_iter_forward_char (end))
+            break;
+        }
+      *start = *end;
+      if (!gtk_text_iter_is_end (end))
+        {
+          gtk_text_iter_forward_word_end (end);
+          while (!gtk_text_iter_starts_word (end))
+            {
+              if (!gtk_text_iter_forward_char (end))
+                break;
+            }
+        }
+      break;
+
+    case ATK_TEXT_BOUNDARY_WORD_END:
+      gtk_text_iter_forward_word_end (end);
+      *start = *end;
+      if (!gtk_text_iter_is_end (end))
+        gtk_text_iter_forward_word_end (end);
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_START:
+      if (gtk_text_iter_inside_sentence (end))
+        gtk_text_iter_forward_sentence_end (end);
+      while (!gtk_text_iter_starts_sentence (end))
+        {
+          if (!gtk_text_iter_forward_char (end))
+            break;
+        }
+      *start = *end;
+      if (!gtk_text_iter_is_end (end))
+        {
+          gtk_text_iter_forward_sentence_end (end);
+          while (!gtk_text_iter_starts_sentence (end))
+            {
+              if (!gtk_text_iter_forward_char (end))
+                break;
+            }
+        }
+      break;
+
+    case ATK_TEXT_BOUNDARY_SENTENCE_END:
+      gtk_text_iter_forward_sentence_end (end);
+      *start = *end;
+      if (!gtk_text_iter_is_end (end))
+        gtk_text_iter_forward_sentence_end (end);
+      break;
+
+    case ATK_TEXT_BOUNDARY_LINE_START:
+      gtk_text_iter_forward_line (end);
+      *start = *end;
+      gtk_text_iter_forward_line (end);
+      break;
+
+    case ATK_TEXT_BOUNDARY_LINE_END:
+      gtk_text_iter_forward_line (start);
+      *end = *start;
+      if (!gtk_text_iter_is_end (start))
+        {
+          while (!gtk_text_iter_ends_line (start))
+            {
+              if (!gtk_text_iter_backward_char (start))
+                break;
+            }
+          gtk_text_iter_forward_to_line_end (end);
+        }
+      break;
+    }
+}
index 565d597056e0f9fe05eba559e998554415258aa9..8c9fe924eceaa9a884ed8fe030069795e29cf525 100644 (file)
@@ -389,6 +389,22 @@ const PangoLogAttr* _gtk_text_buffer_get_line_log_attrs (GtkTextBuffer     *buff
 void _gtk_text_buffer_notify_will_remove_tag (GtkTextBuffer *buffer,
                                               GtkTextTag    *tag);
 
+void _gtk_text_buffer_get_text_before (GtkTextBuffer   *buffer,
+                                       AtkTextBoundary  boundary_type,
+                                       GtkTextIter     *position,
+                                       GtkTextIter     *start,
+                                       GtkTextIter     *end);
+void _gtk_text_buffer_get_text_at     (GtkTextBuffer   *buffer,
+                                       AtkTextBoundary  boundary_type,
+                                       GtkTextIter     *position,
+                                       GtkTextIter     *start,
+                                       GtkTextIter     *end);
+void _gtk_text_buffer_get_text_after  (GtkTextBuffer   *buffer,
+                                       AtkTextBoundary  boundary_type,
+                                       GtkTextIter     *position,
+                                       GtkTextIter     *start,
+                                       GtkTextIter     *end);
+
 G_END_DECLS
 
 #endif
index 51c8f8f0320c66e1ec03223c90cf0133b39394c9..c399f6fe8b184509a7ce2e36df886614138d557a 100644 (file)
@@ -4476,7 +4476,7 @@ exact_prefix_cmp (const gchar *string,
   /* If string contains prefix, check that prefix is not followed
    * by a unicode mark symbol, e.g. that trailing 'a' in prefix
    * is not part of two-char a-with-hat symbol in string. */
-  return type != G_UNICODE_COMBINING_MARK &&
+  return type != G_UNICODE_SPACING_MARK &&
          type != G_UNICODE_ENCLOSING_MARK &&
          type != G_UNICODE_NON_SPACING_MARK;
 }
index dc9addc478ac081ad019a83caaada947ae309b8c..b722c51d986d74c0c2661e417cf331f63bc936ea 100644 (file)
@@ -53,6 +53,7 @@
 #include "gtkscrollable.h"
 #include "gtktypebuiltins.h"
 
+#include "a11y/gtktextviewaccessible.h"
 
 /**
  * SECTION:gtktextview
@@ -1351,6 +1352,8 @@ gtk_text_view_class_init (GtkTextViewClass *klass)
                                GTK_TYPE_DIRECTION_TYPE, GTK_DIR_TAB_BACKWARD);
 
   g_type_class_add_private (gobject_class, sizeof (GtkTextViewPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_TEXT_VIEW_ACCESSIBLE);
 }
 
 static void
index 66adad6fe22e3f4a1a82f0277af69affb5ff9d28..d07640931575d0652c395dce8deabc5f26a60df3 100644 (file)
@@ -55,8 +55,6 @@
  * style information contained in the rendered object's #GtkStyleContext.
  */
 
-typedef struct GtkThemingEnginePrivate GtkThemingEnginePrivate;
-
 enum {
   SIDE_LEFT   = 1,
   SIDE_BOTTOM = 1 << 1,
@@ -391,8 +389,8 @@ gtk_theming_engine_register_property (const gchar            *name_space,
 
   /* FIXME: hack hack hack, replacing pspec->name to include namespace */
   name = g_strdup_printf ("-%s-%s", name_space, pspec->name);
-  g_free (pspec->name);
-  pspec->name = name;
+  pspec->name = (char *)g_intern_string (name);
+  g_free (name);
 
   gtk_style_properties_register_property (parse_func, pspec);
 }
@@ -1022,8 +1020,7 @@ gtk_theming_engine_load (const gchar *name)
             }
         }
     }
-
-  if (!engine)
+  else
     {
       if (G_UNLIKELY (!default_engine))
         default_engine = g_object_new (GTK_TYPE_THEMING_ENGINE, NULL);
index 63c792c1fde65d457e5cc0aa3eb558610ed4fe45..d19d6d3b7f1b0b2cba0a8d7746f328116f28bccf 100644 (file)
@@ -41,12 +41,13 @@ G_BEGIN_DECLS
 #define GTK_THEMING_ENGINE_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS  ((o), GTK_TYPE_THEMING_ENGINE, GtkThemingEngineClass))
 
 typedef struct _GtkThemingEngine GtkThemingEngine;
+typedef struct GtkThemingEnginePrivate GtkThemingEnginePrivate;
 typedef struct _GtkThemingEngineClass GtkThemingEngineClass;
 
 struct _GtkThemingEngine
 {
   GObject parent_object;
-  gpointer priv;
+  GtkThemingEnginePrivate *priv;
 };
 
 /**
index 586b7351ee0d3de2269b22e5c9e5a353a08e31d3..3b1a0ada33269e0a0e60f369d9be2b06da5eab49 100644 (file)
@@ -36,6 +36,7 @@
 #include "gtkactivatable.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
+#include "a11y/gtktogglebuttonaccessible.h"
 
 
 /**
@@ -212,6 +213,8 @@ gtk_toggle_button_class_init (GtkToggleButtonClass *class)
                  G_TYPE_NONE, 0);
 
   g_type_class_add_private (class, sizeof (GtkToggleButtonPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_TOGGLE_BUTTON_ACCESSIBLE);
 }
 
 static void
index 737a5f065a5e2d5c1b6a275fcd710b12ea6ffd7f..d9f93fc8b486c0a9505f6300dfc21cfecebb355a 100644 (file)
@@ -381,6 +381,8 @@ gtk_toolbar_class_init (GtkToolbarClass *klass)
   widget_class->style_updated = gtk_toolbar_style_updated;
   widget_class->focus = gtk_toolbar_focus;
 
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_TOOL_BAR);
+
   /* need to override the base class function via override_class_handler,
    * because the signal slot is not available in GtkWidgetClass
    */
index c5c3bd0a51ce7b49eb104b4fffadc8e90e22db99..906912efb00de299d6b371799c5ecd979499a00c 100644 (file)
@@ -50,6 +50,7 @@
 #include "gtkentryprivate.h"
 #include "gtkstylecontextprivate.h"
 #include "gtktypebuiltins.h"
+#include "a11y/gtktreeviewaccessible.h"
 
 
 /**
@@ -1695,6 +1696,8 @@ gtk_tree_view_class_init (GtkTreeViewClass *class)
   gtk_binding_entry_add_signal (binding_set, GDK_KEY_F, GDK_CONTROL_MASK, "start-interactive-search", 0);
 
   g_type_class_add_private (o_class, sizeof (GtkTreeViewPrivate));
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_TREE_VIEW_ACCESSIBLE);
 }
 
 static void
index 6d313d95cba7bee66ce204d85d393ac4d5ce034e..7319841030f03a7920c59db3c9e021fa2cffd3c9 100644 (file)
@@ -139,6 +139,8 @@ gtk_viewport_class_init (GtkViewportClass *class)
   widget_class->get_preferred_width = gtk_viewport_get_preferred_width;
   widget_class->get_preferred_height = gtk_viewport_get_preferred_height;
   
+  gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_VIEWPORT);
+
   container_class->add = gtk_viewport_add;
 
   /* GtkScrollable implementation */
index 05bc04ce3af00ef5ea2c7e09d84e77ee1e9ef904..a84f31c881ed7a860356807f05f534d4af7ace5e 100644 (file)
@@ -65,7 +65,7 @@
 #include "gtkdebug.h"
 #include "gtkplug.h"
 #include "gtktypebuiltins.h"
-
+#include "a11y/gtkwidgetaccessible.h"
 
 /**
  * SECTION:gtkwidget
@@ -406,6 +406,12 @@ struct _GtkWidgetPrivate
 #endif /* G_ENABLE_DEBUG */
 };
 
+struct _GtkWidgetClassPrivate
+{
+  GType accessible_type;
+  AtkRole accessible_role;
+};
+
 enum {
   DESTROY,
   SHOW,
@@ -532,6 +538,7 @@ struct _GtkStateData
 };
 
 /* --- prototypes --- */
+static void    gtk_widget_base_class_init      (gpointer            g_class);
 static void    gtk_widget_class_init           (GtkWidgetClass     *klass);
 static void    gtk_widget_base_class_finalize  (GtkWidgetClass     *klass);
 static void    gtk_widget_init                 (GtkWidget          *widget);
@@ -738,7 +745,7 @@ gtk_widget_get_type (void)
       const GTypeInfo widget_info =
       {
        sizeof (GtkWidgetClass),
-       NULL,           /* base_init */
+       gtk_widget_base_class_init,
        (GBaseFinalizeFunc) gtk_widget_base_class_finalize,
        (GClassInitFunc) gtk_widget_class_init,
        NULL,           /* class_finalize */
@@ -766,6 +773,8 @@ gtk_widget_get_type (void)
       widget_type = g_type_register_static (G_TYPE_INITIALLY_UNOWNED, "GtkWidget",
                                             &widget_info, G_TYPE_FLAG_ABSTRACT);
 
+      g_type_add_class_private (widget_type, sizeof (GtkWidgetClassPrivate));
+
       g_type_add_interface_static (widget_type, ATK_TYPE_IMPLEMENTOR,
                                    &accessibility_info) ;
       g_type_add_interface_static (widget_type, GTK_TYPE_BUILDABLE,
@@ -775,6 +784,14 @@ gtk_widget_get_type (void)
   return widget_type;
 }
 
+static void
+gtk_widget_base_class_init (gpointer g_class)
+{
+  GtkWidgetClass *klass = g_class;
+
+  klass->priv = G_TYPE_CLASS_GET_PRIVATE (g_class, GTK_TYPE_WIDGET, GtkWidgetClassPrivate);
+}
+
 static void
 child_property_notify_dispatcher (GObject     *object,
                                  guint        n_pspecs,
@@ -920,6 +937,8 @@ gtk_widget_class_init (GtkWidgetClass *klass)
   klass->show_help = gtk_widget_real_show_help;
 
   /* Accessibility support */
+  klass->priv->accessible_type = GTK_TYPE_ACCESSIBLE;
+  klass->priv->accessible_role = ATK_ROLE_INVALID;
   klass->get_accessible = gtk_widget_real_get_accessible;
 
   klass->adjust_size_request = gtk_widget_real_adjust_size_request;
@@ -3161,6 +3180,8 @@ gtk_widget_class_init (GtkWidgetClass *klass)
                                                              GTK_PARAM_READABLE));
 
   g_type_class_add_private (klass, sizeof (GtkWidgetPrivate));
+
+  gtk_widget_class_set_accessible_type (klass, GTK_TYPE_WIDGET_ACCESSIBLE);
 }
 
 static void
@@ -11896,6 +11917,70 @@ G_DEFINE_BOXED_TYPE (GtkRequisition, gtk_requisition,
                      gtk_requisition_copy,
                      gtk_requisition_free)
 
+/**
+ * gtk_widget_class_set_accessible_type:
+ * @widget_class: class to set the accessible type for
+ * @type: The object type that implements the accessible for @widget_class
+ *
+ * Sets the type to be used for creating accessibles for widgets of
+ * @widget_class. The given @type must be a subtype of the type used for
+ * accessibles of the parent class.
+ *
+ * This function should only be called from class init functions of widgets.
+ *
+ * Since: 3.2
+ **/
+void
+gtk_widget_class_set_accessible_type (GtkWidgetClass *widget_class,
+                                      GType           type)
+{
+  GtkWidgetClassPrivate *priv;
+
+  g_return_if_fail (GTK_IS_WIDGET_CLASS (widget_class));
+  g_return_if_fail (g_type_is_a (type, widget_class->priv->accessible_type));
+
+  priv = widget_class->priv;
+
+  priv->accessible_type = type;
+  /* reset this - honoring the type's role is better. */
+  priv->accessible_role = ATK_ROLE_INVALID;
+}
+
+/**
+ * gtk_widget_class_set_accessible_role:
+ * @widget_class: class to set the accessible role for
+ * @role: The role to use for accessibles created for @widget_class
+ *
+ * Sets the default #AtkRole to be set on accessibles created for
+ * widgets of @widget_class. Accessibles may decide to not honor this
+ * setting if their role reporting is more refined. Calls to 
+ * gtk_widget_class_set_accessible_type() will reset this value.
+ *
+ * In cases where you want more fine-grained control over the role of
+ * accessibles created for @widget_class, you should provide your own
+ * accessible type and use gtk_widget_class_set_accessible_type()
+ * instead.
+ *
+ * If @role is #ATK_ROLE_INVALID, the default role will not be changed
+ * and the accessible's default role will be used instead.
+ *
+ * This function should only be called from class init functions of widgets.
+ *
+ * Since: 3.2
+ **/
+void
+gtk_widget_class_set_accessible_role (GtkWidgetClass *widget_class,
+                                      AtkRole         role)
+{
+  GtkWidgetClassPrivate *priv;
+
+  g_return_if_fail (GTK_IS_WIDGET_CLASS (widget_class));
+
+  priv = widget_class->priv;
+
+  priv->accessible_role = role;
+}
+
 /**
  * gtk_widget_get_accessible:
  * @widget: a #GtkWidget
@@ -11903,12 +11988,11 @@ G_DEFINE_BOXED_TYPE (GtkRequisition, gtk_requisition,
  * Returns the accessible object that describes the widget to an
  * assistive technology.
  *
- * If no accessibility library is loaded (i.e. no ATK implementation library is
- * loaded via <envar>GTK_MODULES</envar> or via another application library,
- * such as libgnome), then this #AtkObject instance may be a no-op. Likewise,
- * if no class-specific #AtkObject implementation is available for the widget
- * instance in question, it will inherit an #AtkObject implementation from the
- * first ancestor class for which such an implementation is defined.
+ * If accessibility support is not available, this #AtkObject
+ * instance may be a no-op. Likewise, if no class-specific #AtkObject
+ * implementation is available for the widget instance in question,
+ * it will inherit an #AtkObject implementation from the first ancestor
+ * class for which such an implementation is defined.
  *
  * The documentation of the
  * <ulink url="http://library.gnome.org/devel/atk/stable/">ATK</ulink>
@@ -11939,15 +12023,32 @@ gtk_widget_real_get_accessible (GtkWidget *widget)
                                    quark_accessible_object);
   if (!accessible)
   {
+    GtkWidgetClass *widget_class;
+    GtkWidgetClassPrivate *priv;
     AtkObjectFactory *factory;
     AtkRegistry *default_registry;
 
-    default_registry = atk_get_default_registry ();
-    factory = atk_registry_get_factory (default_registry,
-                                        G_TYPE_FROM_INSTANCE (widget));
-    accessible =
-      atk_object_factory_create_accessible (factory,
-                                           G_OBJECT (widget));
+    widget_class = GTK_WIDGET_GET_CLASS (widget);
+    priv = widget_class->priv;
+
+    if (priv->accessible_type == GTK_TYPE_ACCESSIBLE)
+      {
+        default_registry = atk_get_default_registry ();
+        factory = atk_registry_get_factory (default_registry,
+                                            G_TYPE_FROM_INSTANCE (widget));
+        accessible =
+          atk_object_factory_create_accessible (factory,
+                                                G_OBJECT (widget));
+      }
+    else
+      {
+        accessible = g_object_new (priv->accessible_type, NULL);
+        atk_object_initialize (accessible, widget);
+      }
+
+    if (priv->accessible_role != ATK_ROLE_INVALID)
+      atk_object_set_role (accessible, priv->accessible_role);
+
     g_object_set_qdata (G_OBJECT (widget),
                         quark_accessible_object,
                         accessible);
index 064152112afc2dc7bb70bd172fb74774cd368247..4694ffa1afa0f610380c1654a809c8f19d3eb38d 100644 (file)
@@ -64,14 +64,15 @@ typedef enum
 
 /* forward declaration to avoid excessive includes (and concurrent includes)
  */
-typedef struct _GtkRequisition    GtkRequisition;
-typedef struct _GtkSelectionData   GtkSelectionData;
-typedef struct _GtkWidgetPrivate   GtkWidgetPrivate;
-typedef struct _GtkWidgetClass    GtkWidgetClass;
-typedef struct _GtkWidgetAuxInfo   GtkWidgetAuxInfo;
-typedef struct _GtkClipboard      GtkClipboard;
-typedef struct _GtkTooltip         GtkTooltip;
-typedef struct _GtkWindow          GtkWindow;
+typedef struct _GtkRequisition        GtkRequisition;
+typedef struct _GtkSelectionData       GtkSelectionData;
+typedef struct _GtkWidgetPrivate       GtkWidgetPrivate;
+typedef struct _GtkWidgetClass        GtkWidgetClass;
+typedef struct _GtkWidgetClassPrivate  GtkWidgetClassPrivate;
+typedef struct _GtkWidgetAuxInfo       GtkWidgetAuxInfo;
+typedef struct _GtkClipboard          GtkClipboard;
+typedef struct _GtkTooltip             GtkTooltip;
+typedef struct _GtkWindow              GtkWindow;
 
 
 /**
@@ -428,8 +429,9 @@ struct _GtkWidgetClass
 
   /*< private >*/
 
+  GtkWidgetClassPrivate *priv;
+
   /* Padding for future expansion */
-  void (*_gtk_reserved1) (void);
   void (*_gtk_reserved2) (void);
   void (*_gtk_reserved3) (void);
   void (*_gtk_reserved4) (void);
@@ -720,6 +722,10 @@ void             gtk_widget_set_support_multidevice (GtkWidget      *widget,
                                                      gboolean        support_multidevice);
 
 /* Accessibility support */
+void             gtk_widget_class_set_accessible_type    (GtkWidgetClass     *widget_class,
+                                                          GType               type);
+void             gtk_widget_class_set_accessible_role    (GtkWidgetClass     *widget_class,
+                                                          AtkRole             role);
 AtkObject*       gtk_widget_get_accessible               (GtkWidget          *widget);
 
 
index 4c65594e9d9b1dc3d618d2d709726ae893bb7743..3eb31054e7856d9586c45fcdb7df8db054634c60 100644 (file)
@@ -50,6 +50,7 @@
 #include "gtkcontainerprivate.h"
 #include "gtkintl.h"
 #include "gtktypebuiltins.h"
+#include "a11y/gtkwindowaccessible.h"
 
 #ifdef GDK_WINDOWING_X11
 #include "x11/gdkx.h"
@@ -1060,6 +1061,8 @@ gtk_window_class_init (GtkWindowClass *klass)
   add_tab_bindings (binding_set, GDK_CONTROL_MASK, GTK_DIR_TAB_FORWARD);
   add_tab_bindings (binding_set, GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
   add_tab_bindings (binding_set, GDK_CONTROL_MASK | GDK_SHIFT_MASK, GTK_DIR_TAB_BACKWARD);
+
+  gtk_widget_class_set_accessible_type (widget_class, GTK_TYPE_WINDOW_ACCESSIBLE);
 }
 
 static void
diff --git a/gtk/makeenums.pl b/gtk/makeenums.pl
deleted file mode 100755 (executable)
index 2bdd369..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-#!/usr/bin/perl -w
-
-# Information about the current enumeration
-
-my $flags;                     # Is enumeration a bitmask
-my $seenbitshift;              # Have we seen bitshift operators?
-my $prefix;                    # Prefix for this enumeration
-my $enumname;                  # Name for this enumeration
-my $firstenum = 1;             # Is this the first enumeration in file?
-my @entries;                   # [ $name, $val ] for each entry
-
-sub parse_options {
-    my $opts = shift;
-    my @opts;
-
-    for $opt (split /\s*,\s*/, $opts) {
-       my ($key,$val) = $opt =~ /\s*(\w+)(?:=(\S+))?/;
-       defined $val or $val = 1;
-       push @opts, $key, $val;
-    }
-    @opts;
-}
-sub parse_entries {
-    my $file = shift;
-
-    while (<$file>) {
-       # Read lines until we have no open comments
-       while (m@/\*
-              ([^*]|\*(?!/))*$
-              @x) {
-           my $new;
-           defined ($new = <$file>) || die "Unmatched comment";
-           $_ .= $new;
-       }
-       # Now strip comments
-       s@/\*(?!<)
-           ([^*]+|\*(?!/))*
-          \*/@@gx;
-       
-       s@\n@ @;
-       
-       next if m@^\s*$@;
-
-       # Handle include files
-       if (/^\#include\s*<([^>]*)>/ ) {
-            my $file= "../$1";
-           open NEWFILE, $file or die "Cannot open include file $file: $!\n";
-           
-           if (parse_entries (\*NEWFILE)) {
-               return 1;
-           } else {
-               next;
-           }
-       }
-       
-       if (/^\s*\}\s*(\w+)/) {
-           $enumname = $1;
-           return 1;
-       }
-
-       if (m@^\s*
-              (\w+)\s*                  # name
-              (?:=(                      # value
-                   (?:[^,/]|/(?!\*))*
-                  ))?,?\s*
-              (?:/\*<                   # options 
-                (([^*]|\*(?!/))*)
-               >\*/)?
-              \s*$
-             @x) {
-           my ($name, $value, $options) = ($1,$2,$3);
-
-           if (!defined $flags && defined $value && $value =~ /<</) {
-               $seenbitshift = 1;
-           }
-           if (defined $options) {
-               my %options = parse_options($options);
-               if (!defined $options{skip}) {
-                   push @entries, [ $name, $options{nick} ];
-               }
-           } else {
-               push @entries, [ $name ];
-           }
-       } else {
-           print STDERR "Can't understand: $_\n";
-       }
-    }
-    return 0;
-}
-
-
-my $gen_arrays = 0;
-my $gen_defs = 0;
-
-# Parse arguments
-
-if (@ARGV) {
-    if ($ARGV[0] eq "arrays") {
-       shift @ARGV;
-       $gen_arrays = 1;
-    } elsif ($ARGV[0] eq "defs") {
-       shift @ARGV;
-       $gen_defs = 1;
-    } else {
-       $gen_defs = 1;
-    }
-    
-}
-
-if ($gen_defs) {
-    print ";; generated by makeenums.pl  ; -*- scheme -*-\n\n";
-} else {
-    print "/* Generated by makeenums.pl */\n\n";
-}
-
-ENUMERATION:
-while (<>) {
-    if (eof) {
-       close (ARGV);           # reset line numbering
-       $firstenum = 1;         # Flag to print filename at next enum
-    }
-
-    if (m@^\s*typedef\s+enum\s*
-           ({)?\s*
-           (?:/\*<
-             (([^*]|\*(?!/))*)
-            >\*/)?
-         @x) {
-       if (defined $2) {
-           my %options = parse_options($2);
-           $prefix = $options{prefix};
-           $flags = $options{flags};
-       } else {
-           $prefix = undef;
-           $flags = undef;
-       }
-       # Didn't have trailing '{' look on next lines
-       if (!defined $1) {
-           while (<>) {
-               if (s/^\s*\{//) {
-                   last;
-               }
-           }
-       }
-
-       $seenbitshift = 0;
-       @entries = ();
-
-       # Now parse the entries
-       parse_entries (\*ARGV);
-
-       # figure out if this was a flags or enums enumeration
-
-       if (!defined $flags) {
-           $flags = $seenbitshift;
-       }
-
-       # Autogenerate a prefix
-
-       if (!defined $prefix) {
-           for (@entries) {
-               my $name = $_->[0];
-               if (defined $prefix) {
-                   my $tmp = ~ ($name ^ $prefix);
-                   ($tmp) = $tmp =~ /(^\xff*)/;
-                   $prefix = $prefix & $tmp;
-               } else {
-                   $prefix = $name;
-               }
-           }
-           # Trim so that it ends in an underscore
-           $prefix =~ s/_[^_]*$/_/;
-       }
-       
-       for $entry (@entries) {
-           my ($name,$nick) = @{$entry};
-            if (!defined $nick) {
-               ($nick = $name) =~ s/^$prefix//;
-               $nick =~ tr/_/-/;
-               $nick = lc($nick);
-               @{$entry} = ($name, $nick);
-            }
-       }
-
-       # Spit out the output
-
-       if ($gen_defs) {
-           if ($firstenum) {
-               print qq(\n; enumerations from "$ARGV"\n);
-               $firstenum = 0;
-           }
-           
-           print "\n(define-".($flags ? "flags" : "enum")." $enumname";
-
-           for (@entries) {
-               my ($name,$nick) = @{$_};
-               print "\n   ($nick $name)";
-           }
-           print ")\n";
-
-       } else {
-           my $valuename = $enumname;
-            $valuename =~ s/([^A-Z])([A-Z])/$1_$2/g;
-            $valuename =~ s/([A-Z][A-Z])([A-Z][0-9a-z])/$1_$2/g;
-            $valuename = lc($valuename);
-
-           print "static const GtkEnumValue _${valuename}_values[] = {\n";
-           for (@entries) {
-               my ($name,$nick) = @{$_};
-               print qq(  { $name, "$name", "$nick" },\n);
-           }
-           print "  { 0, NULL, NULL }\n";
-           print "};\n";
-       }
-    }
-}
index 32d741a5727962d6a1a6acb26242f5a15de001be..ff5720d68e39dc598285b03d8e13c7a1878978b3 100644 (file)
@@ -1,6 +1,8 @@
 include $(top_srcdir)/Makefile.decl
 
-INCLUDES = \
+SUBDIRS =
+
+AM_CPPFLAGS = \
        -I$(top_srcdir)                 \
        -I$(top_builddir)/gdk           \
        -I$(top_srcdir)/gdk             \
@@ -99,7 +101,6 @@ action_LDADD                  = $(progs_ldadd)
 TEST_PROGS                     += stylecontext
 stylecontext_SOURCES            = stylecontext.c
 stylecontext_LDADD              = $(progs_ldadd)
-EXTRA_DIST                     += test.css test.png
 
 TEST_PROGS                     += papersize
 papersize_SOURCES               = papersize.c
@@ -113,6 +114,14 @@ TEST_PROGS                 += treepath
 treepath_SOURCES                = treepath.c
 treepath_LDADD                  = $(progs_ldadd)
 
+TEST_PROGS                     += accessible
+accessible_SOURCES              = accessible.c
+accessible_LDADD                = $(progs_ldadd)
+
+TEST_PROGS                     += entry
+entry_SOURCES                   = entry.c
+entry_LDADD                     = $(progs_ldadd)
+
 EXTRA_DIST +=                          \
        file-chooser-test-dir/empty     \
        file-chooser-test-dir/text.txt
diff --git a/gtk/tests/accessible.c b/gtk/tests/accessible.c
new file mode 100644 (file)
index 0000000..4e1e3ec
--- /dev/null
@@ -0,0 +1,39 @@
+/* gtktypefuncs.c includes deprecated types */
+#undef GTK_DISABLE_DEPRECATED
+
+#include <gtk/gtk.h>
+
+static void
+test_type (GType t)
+{
+  GtkWidget *w;
+  AtkObject *a;
+
+  if (g_type_is_a (t, GTK_TYPE_WIDGET))
+    {
+      w = (GtkWidget *)g_object_new (t, NULL);
+      a = gtk_widget_get_accessible (w);
+
+      g_assert (GTK_IS_ACCESSIBLE (a));
+      g_assert (gtk_accessible_get_widget (GTK_ACCESSIBLE (a)) == w);
+
+      g_object_unref (w);
+    }
+}
+
+int
+main (int argc, char *argv[])
+{
+  GType *tp;
+  gint i;
+
+  gtk_init (&argc, &argv);
+
+  tp = g_new0 (GType, 1000);
+#undef GDK_WINDOWING_X11
+#include "../gtktypefuncs.c"
+  *tp = 0;
+
+  for (i = 0; tp[i]; i++)
+    test_type (tp[i]);
+}
diff --git a/gtk/tests/entry.c b/gtk/tests/entry.c
new file mode 100644 (file)
index 0000000..5077496
--- /dev/null
@@ -0,0 +1,321 @@
+/* GTK - The GIMP Toolkit
+ * Copyright (C) 2011 Red Hat, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gtk/gtk.h>
+
+static gint serial = 0;
+
+typedef struct {
+  gint serial;
+  gint count;
+  gint start;
+  gint end;
+  gchar *text;
+  gchar *new_text;
+  gint position;
+  gint length;
+} EntryData;
+
+static void
+notify (GtkEditable *editable, GParamSpec *pspec, EntryData *data)
+{
+  data->serial = serial++;
+  data->count++;
+  data->text = gtk_editable_get_chars (editable, 0, -1);
+  gtk_editable_get_selection_bounds (editable, &data->start, &data->end);
+
+#if 0
+  g_print ("notify::%s\n", pspec->name);
+  g_print ("\ttext: %s\n", data->text);
+  g_print ("\tstart: %d\n", data->start);
+  g_print ("\tend: %d\n", data->end);
+#endif
+}
+
+static void
+insert_text (GtkEditable *editable,
+             const gchar *new_text,
+             gint         new_text_length,
+             gint        *position,
+             EntryData   *data)
+{
+  data->serial = serial++;
+  data->count++;
+  data->text = gtk_editable_get_chars (editable, 0, -1);
+  gtk_editable_get_selection_bounds (editable, &data->start, &data->end);
+  data->new_text = g_strdup (new_text);
+  data->position = *position;
+  data->length = new_text_length;
+
+#if 0
+  g_print ("insert-text \"%s\", %d\n", new_text, *position);
+  g_print ("\ttext: %s\n", data->text);
+  g_print ("\tstart: %d\n", data->start);
+  g_print ("\tend: %d\n", data->end);
+#endif
+}
+
+static void
+delete_text (GtkEditable *editable,
+             gint         start_pos,
+             gint         end_pos,
+             EntryData   *data)
+{
+  data->serial = serial++;
+  data->count++;
+  data->text = gtk_editable_get_chars (editable, 0, -1);
+  gtk_editable_get_selection_bounds (editable, &data->start, &data->end);
+  data->position = start_pos;
+  data->length = end_pos - start_pos;
+
+#if 0
+  g_print ("delete-text %d %d\n", start_pos, end_pos);
+  g_print ("\ttext: %s\n", data->text);
+  g_print ("\tstart: %d\n", data->start);
+  g_print ("\tend: %d\n", data->end);
+#endif
+}
+
+static void
+changed (GtkEditable *editable,
+         EntryData   *data)
+{
+  data->serial = serial++;
+  data->count++;
+  data->text = gtk_editable_get_chars (editable, 0, -1);
+  gtk_editable_get_selection_bounds (editable, &data->start, &data->end);
+
+#if 0
+  g_print ("changed\n");
+  g_print ("\ttext: %s\n", data->text);
+  g_print ("\tstart: %d\n", data->start);
+  g_print ("\tend: %d\n", data->end);
+#endif
+}
+
+static void
+test_insert (void)
+{
+  GtkWidget *entry;
+  gint pos;
+  EntryData data1;
+  EntryData data2;
+  EntryData data3;
+  EntryData data4;
+  EntryData data5;
+  EntryData data6;
+
+  entry = gtk_entry_new ();
+  g_object_ref_sink (entry);
+
+  gtk_entry_set_text (GTK_ENTRY (entry), "bar");
+  gtk_editable_set_position (GTK_EDITABLE (entry), -1);
+  pos = gtk_editable_get_position (GTK_EDITABLE (entry));
+  g_assert_cmpint (pos, ==, 3);
+
+  data1.count = 0;
+  data2.count = 0;
+  data3.count = 0;
+  data4.count = 0;
+  data5.count = 0;
+  data6.count = 0;
+  g_signal_connect (entry, "notify::cursor-position",
+                    G_CALLBACK (notify), &data1);
+  g_signal_connect (entry, "notify::selection-bound",
+                    G_CALLBACK (notify), &data2);
+  g_signal_connect (entry, "notify::text",
+                    G_CALLBACK (notify), &data3);
+  g_signal_connect (entry, "insert-text",
+                    G_CALLBACK (insert_text), &data4);
+  g_signal_connect (entry, "delete-text",
+                    G_CALLBACK (delete_text), &data5);
+  g_signal_connect (entry, "changed",
+                    G_CALLBACK (changed), &data6);
+
+  pos = 0;
+  gtk_editable_insert_text (GTK_EDITABLE (entry), "foo", -1, &pos);
+  g_assert_cmpint (pos, ==, 3);
+
+  pos = gtk_editable_get_position (GTK_EDITABLE (entry));
+  g_assert_cmpint (pos, ==, 6);
+
+  /* Check that notification for ::text, ::cursor-position and
+   * ::selection-bound happens in a consistent state after the
+   * change.
+   */
+  g_assert_cmpint (data1.count, ==, 1);
+  g_assert_cmpint (data1.start, ==, 6);
+  g_assert_cmpint (data1.end, ==, 6);
+  g_assert_cmpstr (data1.text, ==, "foobar");
+  g_free (data1.text);
+
+  g_assert_cmpint (data2.count, ==, 1);
+  g_assert_cmpint (data2.start, ==, 6);
+  g_assert_cmpint (data2.end, ==, 6);
+  g_assert_cmpstr (data2.text, ==, "foobar");
+  g_free (data2.text);
+
+  g_assert_cmpint (data3.count, ==, 1);
+  g_assert_cmpint (data3.start, ==, 6);
+  g_assert_cmpint (data3.end, ==, 6);
+  g_assert_cmpstr (data3.text, ==, "foobar");
+  g_free (data3.text);
+
+  /* Check that ::insert-text sees the state _before_ the insertion */
+  g_assert_cmpint (data4.count, ==, 1);
+  g_assert_cmpint (data4.start, ==, 3);
+  g_assert_cmpint (data4.end, ==, 3);
+  g_assert_cmpstr (data4.text, ==, "bar");
+  g_assert_cmpint (data4.position, ==, 0);
+  g_assert_cmpint (data4.length, ==, 3);
+  g_assert_cmpstr (data4.new_text, ==, "foo");
+  g_free (data4.text);
+  g_free (data4.new_text);
+
+  /* no deletion here */
+  g_assert_cmpint (data5.count, ==, 0);
+
+  /* Check that ::changed sees the post-change state */
+  g_assert_cmpint (data6.count, ==, 1);
+  g_assert_cmpint (data6.start, ==, 6);
+  g_assert_cmpint (data6.end, ==, 6);
+  g_assert_cmpstr (data6.text, ==, "foobar");
+  g_free (data6.text);
+
+  /* Now check ordering: ::insert-text comes before ::notify */
+  g_assert_cmpint (data4.serial, <, data1.serial);
+  g_assert_cmpint (data4.serial, <, data2.serial);
+  g_assert_cmpint (data4.serial, <, data3.serial);
+
+  /* ... and ::changed comes after ::notify */
+  g_assert_cmpint (data6.serial, >, data1.serial);
+  g_assert_cmpint (data6.serial, >, data2.serial);
+  g_assert_cmpint (data6.serial, >, data3.serial);
+
+  g_object_unref (entry);
+}
+
+static void
+test_delete (void)
+{
+  GtkWidget *entry;
+  gint pos;
+  EntryData data1;
+  EntryData data2;
+  EntryData data3;
+  EntryData data4;
+  EntryData data5;
+  EntryData data6;
+
+  entry = gtk_entry_new ();
+  g_object_ref_sink (entry);
+
+  gtk_entry_set_text (GTK_ENTRY (entry), "foobar");
+  gtk_editable_set_position (GTK_EDITABLE (entry), -1);
+  pos = gtk_editable_get_position (GTK_EDITABLE (entry));
+  g_assert_cmpint (pos, ==, 6);
+
+  data1.count = 0;
+  data2.count = 0;
+  data3.count = 0;
+  data4.count = 0;
+  data5.count = 0;
+  data6.count = 0;
+  g_signal_connect (entry, "notify::cursor-position",
+                    G_CALLBACK (notify), &data1);
+  g_signal_connect (entry, "notify::selection-bound",
+                    G_CALLBACK (notify), &data2);
+  g_signal_connect (entry, "notify::text",
+                    G_CALLBACK (notify), &data3);
+  g_signal_connect (entry, "insert-text",
+                    G_CALLBACK (insert_text), &data4);
+  g_signal_connect (entry, "delete-text",
+                    G_CALLBACK (delete_text), &data5);
+  g_signal_connect (entry, "changed",
+                    G_CALLBACK (changed), &data6);
+
+  gtk_editable_delete_text (GTK_EDITABLE (entry), 0, 3);
+
+  pos = gtk_editable_get_position (GTK_EDITABLE (entry));
+  g_assert_cmpint (pos, ==, 3);
+
+  /* Check that notification for ::text, ::cursor-position and
+   * ::selection-bound happens in a consistent state after the
+   * change.
+   */
+  g_assert_cmpint (data1.count, ==, 1);
+  g_assert_cmpint (data1.start, ==, 3);
+  g_assert_cmpint (data1.end, ==, 3);
+  g_assert_cmpstr (data1.text, ==, "bar");
+  g_free (data1.text);
+
+  g_assert_cmpint (data2.count, ==, 1);
+  g_assert_cmpint (data2.start, ==, 3);
+  g_assert_cmpint (data2.end, ==, 3);
+  g_assert_cmpstr (data2.text, ==, "bar");
+  g_free (data2.text);
+
+  g_assert_cmpint (data3.count, ==, 1);
+  g_assert_cmpint (data3.start, ==, 3);
+  g_assert_cmpint (data3.end, ==, 3);
+  g_assert_cmpstr (data3.text, ==, "bar");
+  g_free (data3.text);
+
+  /* no insertion here */
+  g_assert_cmpint (data4.count, ==, 0);
+
+  /* Check that ::delete-text sees the state _before_ the insertion */
+  g_assert_cmpint (data5.count, ==, 1);
+  g_assert_cmpint (data5.start, ==, 6);
+  g_assert_cmpint (data5.end, ==, 6);
+  g_assert_cmpstr (data5.text, ==, "foobar");
+  g_assert_cmpint (data5.position, ==, 0);
+  g_assert_cmpint (data5.length, ==, 3);
+  g_free (data5.text);
+
+  /* Check that ::changed sees the post-change state */
+  g_assert_cmpint (data6.count, ==, 1);
+  g_assert_cmpint (data6.start, ==, 3);
+  g_assert_cmpint (data6.end, ==, 3);
+  g_assert_cmpstr (data6.text, ==, "bar");
+  g_free (data6.text);
+
+  /* Now check ordering: ::delete-text comes before ::notify */
+  g_assert_cmpint (data5.serial, <, data1.serial);
+  g_assert_cmpint (data5.serial, <, data2.serial);
+  g_assert_cmpint (data5.serial, <, data3.serial);
+
+  /* ... and ::changed comes after ::notify */
+  g_assert_cmpint (data6.serial, >, data1.serial);
+  g_assert_cmpint (data6.serial, >, data2.serial);
+  g_assert_cmpint (data6.serial, >, data3.serial);
+  g_object_unref (entry);
+}
+
+int
+main (int   argc,
+      char *argv[])
+{
+  gtk_test_init (&argc, &argv);
+
+  g_test_add_func ("/entry/delete", test_delete);
+  g_test_add_func ("/entry/insert", test_insert);
+
+  return g_test_run();
+}
index f68128ebe84304196e36f9ea259285218448093a..a3a1e221650ddcb87f74f3ccd4bce489c1cbade9 100644 (file)
@@ -1,116 +1,5 @@
 #include <gtk/gtk.h>
 
-static void
-test_parse_empty (void)
-{
-  GtkCssProvider *provider;
-  GError *error;
-  gboolean res;
-
-  provider = gtk_css_provider_new ();
-  error = NULL;
-  res = gtk_css_provider_load_from_data (provider, "", -1, &error);
-
-  g_assert (res);
-  g_assert_no_error (error);
-  g_clear_error (&error);
-
-  g_object_unref (provider);
-}
-
-static void
-test_parse_at (void)
-{
-  GtkCssProvider *provider;
-  GError *error;
-  gboolean res;
-  gint i;
-  const gchar *valid[] = {
-    "@import \"" SRCDIR "/test.css\";",
-    "@import '" SRCDIR "/test.css';",
-    "@import url(\"" SRCDIR "/test.css\");",
-    "@import url('" SRCDIR "/test.css');",
-    "@import\nurl (\t\"" SRCDIR "/test.css\" ) ;",
-    "@define-color bg_color #f9a039;",
-    "@define-color color @bg_color;",
-    "@define-color color rgb(100, 99, 88);",
-    "@define-color color rgba(50%, 50%, 50%, 0.5);",
-    "@define-color color lighter(#f9a039);",
-    "@define-color color darker ( @blue ) ;",
-    "@define-color color shade(@blue, 1.3);",
-    "@define-color color alpha(@blue, 1.3);",
-    "@define-color color mix(@blue, @red, 0.2);",
-    "@define-color color red;",
-    "@define-color color mix(shade (#121212, 0.5), mix (rgb(10%,20%,100%), @blue,0.5), 0.2);",
-    "@define-color blue @blue;",
-    "@define-color blue123_a-b #123;",
-    "@binding-set gtk-emacs-menu { bind \"<ctrl>n\" { \"move-current\" (next) }; };",
-    "@binding-set gtk-emacs-text-view {\n"
-      "  bind \"<ctrl>u\" { \"move-cursor\" (paragraph-ends, -1, 0)\n"
-      "                   \"delete-from-cursor\" (paragraph-ends, 1) };\n"
-      "};",
-    "@binding-set test {\n"
-       "  bind \"<ctrl>space\" { \"set-anchor\" () };\n"
-       "  unbind \"<ctrl>v\";\n"
-       "};",
-    NULL
-  };
-
-  const gchar *invalid[] = {
-    "@import " SRCDIR "/test.css ;",
-    "@import url ( \"" SRCDIR "/test.css\" xyz );",
-    "@import url(\");",
-    "@import url(');",
-    "@import url(\"abc');",
-    "@ import ;",
-    "@define_color blue  red;",
-    "@define-color blue #12234;",
-    "@define-color blue #12g234;",
-    "@define-color blue @@;",
-    "@define-color blue 5!#%4@DG$##x;",
-    "@define-color color mix(@red, @blue, @green);",
-    "@define-color color mix(@blue, 0.2, @red);",
-    "@define-color color mix(0.2, @blue, @red);",
-    "@define-color color mix(@blue, @red);",
-    "@define-color color mix(@blue);",
-    "@define-color color mix();",
-    "@define-color color rgba(50%, 50%, 50%);",
-    "@define-color color rgb(50%, a);",
-    "@define-color 1col rgb(50%, a);",
-    "@three-dee { some other crap };",
-    "@binding-set \"foo\";",
-    "@binding-set foo { bind key { \"action\"() }; };",
-    "@binding-set foo { bind key { \"action\"() }; };",
-    "@binding-set foo { bind \"key\" { action() }; };",
-    "@binding-set foo { bind \"key\"; };",
-    "@binding-set foo { unbind \"key\" { \"bla\" () }; };",
-    NULL
-  };
-
-  error = NULL;
-  for (i = 0; valid[i]; i++)
-    {
-      provider = gtk_css_provider_new ();
-      res = gtk_css_provider_load_from_data (provider, valid[i], -1, &error);
-      if (error)
-        g_print ("parsing '%s': got unexpected error: %s\n", valid[i], error->message);
-      g_assert_no_error (error);
-      g_assert (res);
-
-      g_object_unref (provider);
-   }
-
-  for (i = 0; invalid[i]; i++)
-    {
-      provider = gtk_css_provider_new ();
-      res = gtk_css_provider_load_from_data (provider, invalid[i], -1, &error);
-      g_assert_error (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_FAILED);
-      g_assert (!res);
-      g_object_unref (provider);
-      g_clear_error (&error);
-   }
-}
-
 static void
 test_parse_selectors (void)
 {
@@ -152,13 +41,6 @@ test_parse_selectors (void)
     "E, F /* comment here */ {}",
     "E,/* comment here */ F {}",
     "E1.e1_2 #T3_4 {}",
-    NULL
-  };
-
-  const gchar *invalid[] = {
-    /* nth-child and similar pseudo classes can only
-     * be used with regions, not with types
-     */
     "E:first-child {}",
     "E:last-child {}",
     "E:nth-child(first) {}",
@@ -166,9 +48,6 @@ test_parse_selectors (void)
     "E:nth-child(even) {}",
     "E:nth-child(odd) {}",
     "E:sorted {}",
-    /* widget state pseudo-classes can only be used for
-     * the last element
-     */
     "E:focused tab {}",
      NULL
   };
@@ -185,98 +64,6 @@ test_parse_selectors (void)
 
       g_object_unref (provider);
    }
-
-  for (i = 0; invalid[i]; i++)
-    {
-      provider = gtk_css_provider_new ();
-      res = gtk_css_provider_load_from_data (provider, invalid[i], -1, &error);
-      g_assert_error (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_FAILED);
-      g_assert (!res);
-      g_object_unref (provider);
-      g_clear_error (&error);
-   }
-}
-
-static void
-test_parse_declarations (void)
-{
-  GtkCssProvider *provider;
-  GError *error;
-  gboolean res;
-  gint i;
-  const gchar *valid[] = {
-    "* {}",
-    "* { font: Sans 15 }",
-    "* { font: Sans 15; }",
-    "* { font: bold }",
-    "* { color: red }",
-    "* { /* just a comment */ }",
-    "* { /* multi\nline\ncomment */ }",
-    "* { font: /* comment here */ Sans 15 }",
-    "* { color: red; background-color: shade (@bg_color, 0.5) }",
-    "* { margin: 5 }",
-    "* { margin: 5 10 }",
-    "* { margin: 5 10 3 }",
-    "* { margin: 5 10 3 5 }",
-    "* { padding: 5 }",
-    "* { padding: 5 10 }",
-    "* { border-width: 5; border-radius: 10 }",
-    "* { border-color: #ff00ff }",
-    "* { engine: clearlooks }",
-    "* { background-image: -gtk-gradient (linear,               \n"
-    "                                    left top, right top,   \n"
-    "                                    from (#fff), to (#000)) }",
-    "* { background-image: -gtk-gradient (linear,               \n"
-    "                                    0.0 0.5, 0.5 1.0,      \n"
-    "                                    from (#fff),           \n"
-    "                                    color-stop (0.5, #f00),\n"
-    "                                    to (#000))              }",
-    "* { background-image: -gtk-gradient (radial,               \n"
-    "                                     center center, 0.2,   \n"
-    "                                     center center, 0.8,   \n"
-    "                                     color-stop (0.0,#fff),\n"
-    "                                     color-stop (1.0,#000))}\n",
-    "* { border-image: url (\"" SRCDIR "/test.png\") 3 4 3 4 stretch       }",
-    "* { border-image: url (\"" SRCDIR "/test.png\") 3 4 3 4 repeat stretch}",
-    "* { transition: 150ms ease-in-out                          }",
-    "* { transition: 1s linear loop                             }",
-    NULL
-  };
-
-  const gchar *invalid[] = {
-    "* { color }",
-    "* { color:green; color }",
-    "* { color:red; color; color:green }",
-    "* { color:green; color: }",
-    "* { color:red; color:; color:green }",
-    "* { color:green; color{;color:maroon} }",
-    "* { color:red; color{;color:maroon}; color:green }",
-    "* { content: 'Hello",
-    NULL
-  };
-
-  error = NULL;
-  for (i = 0; valid[i]; i++)
-    {
-      provider = gtk_css_provider_new ();
-      res = gtk_css_provider_load_from_data (provider, valid[i], -1, &error);
-      if (error)
-        g_print ("parsing '%s': got unexpected error: %s\n", valid[i], error->message);
-      g_assert_no_error (error);
-      g_assert (res);
-
-      g_object_unref (provider);
-   }
-
-  for (i = 0; invalid[i]; i++)
-    {
-      provider = gtk_css_provider_new ();
-      res = gtk_css_provider_load_from_data (provider, invalid[i], -1, &error);
-      g_assert_error (error, GTK_CSS_PROVIDER_ERROR, GTK_CSS_PROVIDER_ERROR_FAILED);
-      g_assert (!res);
-      g_object_unref (provider);
-      g_clear_error (&error);
-   }
 }
 
 static void
@@ -457,8 +244,8 @@ test_match (void)
   g_assert (gdk_rgba_equal (&color, &expected));
 
   data = "* { color: #f00 }\n"
-         "GtkWindow .button { color: #fff }\n"
-         "GObject .button { color: #000 }";
+         "GtkWindow .button { color: #000 }\n"
+         "GObject .button { color: #fff }";
   gtk_css_provider_load_from_data (provider, data, -1, &error);
   g_assert_no_error (error);
   gtk_style_context_invalidate (context);
@@ -562,10 +349,7 @@ main (int argc, char *argv[])
   gtk_init (NULL, NULL);
   g_test_init (&argc, &argv, NULL);
 
-  g_test_add_func ("/style/parse/empty", test_parse_empty);
-  g_test_add_func ("/style/parse/at", test_parse_at);
   g_test_add_func ("/style/parse/selectors", test_parse_selectors);
-  g_test_add_func ("/style/parse/declarations", test_parse_declarations);
   g_test_add_func ("/style/path", test_path);
   g_test_add_func ("/style/match", test_match);
   g_test_add_func ("/style/style-property", test_style_property);
diff --git a/gtk/tests/test.png b/gtk/tests/test.png
deleted file mode 100644 (file)
index 8d0f458..0000000
Binary files a/gtk/tests/test.png and /dev/null differ
index 40d5fa5fd12098dbfa66b52d69ae670f4c1a091c..90aab4ab13fec916f269faf18f4ec8ae8fe55df4 100644 (file)
@@ -1,6 +1,6 @@
 include $(top_srcdir)/Makefile.decl
 
-SUBDIRS = input engines other
+SUBDIRS = input engines
 
 if OS_UNIX
 SUBDIRS += printbackends
index de4562ba7b9541f797bffcb01b3bcd866695b391..fd0a40e480e018df9dde436a4f9cc4435b8690b9 100644 (file)
@@ -4,7 +4,7 @@ SUBDIRS=Theme
 
 EXTRA_DIST += Makefile.msc
 
-INCLUDES = \
+AM_CPPFLAGS = \
        -I$(top_srcdir)                 \
        -I$(top_srcdir)/gdk             \
        -I$(top_builddir)/gdk           \
index 2a90796b74bc5aa906c51bd015ae7cdaa0a2ca13..59a280c7073031c8cdbd79eed41228e84bf368e8 100644 (file)
@@ -4,7 +4,7 @@ if PLATFORM_WIN32
 no_undefined = -no-undefined
 endif
 
-INCLUDES = \
+AM_CPPFLAGS = \
        -I$(top_srcdir)                 \
        -I$(top_srcdir)/gdk             \
        -I$(top_builddir)/gdk           \
diff --git a/modules/other/Makefile.am b/modules/other/Makefile.am
deleted file mode 100644 (file)
index 5b647d6..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-include $(top_srcdir)/Makefile.decl
-
-SUBDIRS = gail
-
--include $(top_srcdir)/git.mk
diff --git a/modules/other/gail/Makefile.am b/modules/other/gail/Makefile.am
deleted file mode 100644 (file)
index 789c38e..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-include $(top_srcdir)/Makefile.decl
-
-SUBDIRS = libgail-util tests
-
-if PLATFORM_WIN32
-no_undefined = -no-undefined
-endif
-
-moduledir = $(libdir)/gtk-3.0/modules
-module_LTLIBRARIES = libgail.la
-
-gail_c_sources =                       \
-       gail-private-macros.h           \
-       gail.c                          \
-       gailadjustment.c                \
-       gailarrow.c                     \
-       gailbooleancell.c               \
-       gailbox.c                       \
-       gailbutton.c                    \
-       gailcalendar.c                  \
-       gailcell.c                      \
-       gailcellparent.c                \
-       gailcheckmenuitem.c             \
-       gailchecksubmenuitem.c          \
-       gailcombobox.c                  \
-       gailcontainer.c                 \
-       gailcontainercell.c             \
-       gailentry.c                     \
-       gailexpander.c                  \
-       gailframe.c                     \
-       gailimage.c                     \
-       gailimagecell.c                 \
-       gaillabel.c                     \
-       gaillinkbutton.c                \
-       gailmenu.c                      \
-       gailmenushell.c                 \
-       gailmenuitem.c                  \
-       gailnotebook.c                  \
-       gailnotebookpage.c              \
-       gailpaned.c                     \
-       gailprogressbar.c               \
-       gailradiobutton.c               \
-       gailradiomenuitem.c             \
-       gailradiosubmenuitem.c          \
-       gailrange.c                     \
-       gailrenderercell.c              \
-       gailscale.c                     \
-       gailscalebutton.c               \
-       gailscrollbar.c                 \
-       gailscrolledwindow.c            \
-       gailseparator.c                 \
-       gailspinbutton.c                \
-       gailsubmenuitem.c               \
-       gailstatusbar.c                 \
-       gailtextcell.c                  \
-       gailtextview.c                  \
-       gailtogglebutton.c              \
-       gailtoplevel.c                  \
-       gailtreeview.c                  \
-       gailutil.c                      \
-       gailwidget.c                    \
-       gailwindow.c
-
-libgailincludedir=$(includedir)/gail-3.0/gail
-
-gail_private_h_sources =               \
-       gail.h                          \
-       gailadjustment.h                \
-       gailarrow.h                     \
-       gailbooleancell.h               \
-       gailbox.h                       \
-       gailbutton.h                    \
-       gailcalendar.h                  \
-       gailcell.h                      \
-       gailcellparent.h                \
-       gailcheckmenuitem.h             \
-       gailchecksubmenuitem.h          \
-       gailcombobox.h                  \
-       gailcontainercell.h             \
-       gailcontainer.h                 \
-       gailentry.h                     \
-       gailexpander.h                  \
-       gailfactory.h                   \
-       gailframe.h                     \
-       gailimage.h                     \
-       gailimagecell.h                 \
-       gaillabel.h                     \
-       gaillinkbutton.h                \
-       gailmenu.h                      \
-       gailmenushell.h                 \
-       gailmenuitem.h                  \
-       gailnotebook.h                  \
-       gailnotebookpage.h              \
-       gailpaned.h                     \
-       gailprogressbar.h               \
-       gailradiobutton.h               \
-       gailradiomenuitem.h             \
-       gailradiosubmenuitem.h          \
-       gailrange.h                     \
-       gailrenderercell.h              \
-       gailscale.h                     \
-       gailscalebutton.h               \
-       gailscrollbar.h                 \
-       gailscrolledwindow.h            \
-       gailseparator.h                 \
-       gailspinbutton.h                \
-       gailsubmenuitem.h               \
-       gailstatusbar.h                 \
-       gailtextcell.h                  \
-       gailtextview.h                  \
-       gailtogglebutton.h              \
-       gailtoplevel.h                  \
-       gailtreeview.h                  \
-       gailutil.h                      \
-       gailwindow.h
-
-gail_public_h_sources =        \
-       gailwidget.h
-
-libgail_la_SOURCES =                   \
-       $(gail_c_sources)               \
-       $(gail_public_h_sources)        \
-       $(gail_private_h_sources)
-
-libgailinclude_HEADERS =               \
-       $(gail_public_h_sources)
-
-libgail_la_CPPFLAGS = \
-       -I$(top_srcdir)                 \
-       -I$(top_srcdir)/modules/other   \
-       -I$(top_srcdir)/gdk             \
-       -I$(top_builddir)/gdk           \
-       -I$(top_srcdir)/gtk             \
-       -I$(top_builddir)/gtk           \
-       -DGTK_VERSION=\"$(GTK_VERSION)\"\
-       -DGDK_DISABLE_DEPRECATED        \
-       -DGTK_DISABLE_DEPRECATED        \
-       $(AM_CPPFLAGS)
-
-libgail_la_CFLAGS = \
-       $(GTK_DEP_CFLAGS)       \
-       $(GTK_DEBUG_FLAGS)      \
-       $(AM_CFLAGS)
-
-libgail_la_LIBADD =  \
-       $(top_builddir)/gtk/libgtk-3.la                         \
-       $(top_builddir)/modules/other/gail/libgail-util/libgailutil-3.la        \
-       $(GTK_DEP_LIBS)                                                 \
-       $(INTLLIBS)
-
-libgail_la_LDFLAGS =    \
-       -rpath $(moduledir) -module -avoid-version \
-       $(no_undefined) \
-        $(LDFLAGS)
-
--include $(top_srcdir)/git.mk
diff --git a/modules/other/gail/gail.h b/modules/other/gail/gail.h
deleted file mode 100644 (file)
index 2ae956a..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-#include <gail/gailadjustment.h>
-#include <gail/gailarrow.h>
-#include <gail/gailbooleancell.h>
-#include <gail/gailbox.h>
-#include <gail/gailbutton.h>
-#include <gail/gailcalendar.h>
-#include <gail/gailcell.h>
-#include <gail/gailcheckmenuitem.h>
-#include <gail/gailcombobox.h>
-#include <gail/gailcontainer.h>
-#include <gail/gailcontainercell.h>
-#include <gail/gailentry.h>
-#include <gail/gailexpander.h>
-#include <gail/gailframe.h>
-#include <gail/gailimage.h>
-#include <gail/gailimagecell.h>
-#include <gail/gaillabel.h>
-#include <gail/gaillinkbutton.h>
-#include <gail/gailmenu.h>
-#include <gail/gailmenushell.h>
-#include <gail/gailmenuitem.h>
-#include <gail/gailnotebook.h>
-#include <gail/gailpaned.h>
-#include <gail/gailprogressbar.h>
-#include <gail/gailradiobutton.h>
-#include <gail/gailradiomenuitem.h>
-#include <gail/gailrenderercell.h>
-#include <gail/gailrange.h>
-#include <gail/gailscale.h>
-#include <gail/gailscalebutton.h>
-#include <gail/gailscrollbar.h>
-#include <gail/gailscrolledwindow.h>
-#include <gail/gailseparator.h>
-#include <gail/gailspinbutton.h>
-#include <gail/gailstatusbar.h>
-#include <gail/gailtextcell.h>
-#include <gail/gailtextview.h>
-#include <gail/gailtogglebutton.h>
-#include <gail/gailtoplevel.h>
-#include <gail/gailtreeview.h>
-#include <gail/gailutil.h>
-#include <gail/gailwidget.h>
-#include <gail/gailwindow.h>
diff --git a/modules/other/gail/gailadjustment.c b/modules/other/gail/gailadjustment.c
deleted file mode 100644 (file)
index 58e19ea..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include "gailadjustment.h"
-
-static void     gail_adjustment_class_init        (GailAdjustmentClass *klass);
-
-static void     gail_adjustment_init              (GailAdjustment      *adjustment);
-
-static void     gail_adjustment_real_initialize   (AtkObject           *obj,
-                                                    gpointer            data);
-
-static void     atk_value_interface_init          (AtkValueIface       *iface);
-
-static void     gail_adjustment_get_current_value (AtkValue            *obj,
-                                                    GValue              *value);
-static void     gail_adjustment_get_maximum_value (AtkValue            *obj,
-                                                    GValue              *value);
-static void     gail_adjustment_get_minimum_value (AtkValue            *obj,
-                                                    GValue              *value);
-static void     gail_adjustment_get_minimum_increment (AtkValue        *obj,
-                                                    GValue              *value);
-static gboolean         gail_adjustment_set_current_value (AtkValue            *obj,
-                                                    const GValue        *value);
-
-G_DEFINE_TYPE_WITH_CODE (GailAdjustment, gail_adjustment, ATK_TYPE_OBJECT,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init))
-
-static void     
-gail_adjustment_class_init (GailAdjustmentClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->initialize = gail_adjustment_real_initialize;
-}
-
-static void
-gail_adjustment_init (GailAdjustment *adjustment)
-{
-}
-
-AtkObject* 
-gail_adjustment_new (GtkAdjustment *adjustment)
-{
-  GObject *object;
-  AtkObject *atk_object;
-
-  g_return_val_if_fail (GTK_IS_ADJUSTMENT (adjustment), NULL);
-
-  object = g_object_new (GAIL_TYPE_ADJUSTMENT, NULL);
-
-  atk_object = ATK_OBJECT (object);
-  atk_object_initialize (atk_object, adjustment);
-
-  return atk_object;
-}
-
-static void
-gail_adjustment_real_initialize (AtkObject *obj,
-                                 gpointer  data)
-{
-  GtkAdjustment *adjustment;
-  GailAdjustment *gail_adjustment;
-
-  ATK_OBJECT_CLASS (gail_adjustment_parent_class)->initialize (obj, data);
-
-  adjustment = GTK_ADJUSTMENT (data);
-
-  obj->role = ATK_ROLE_UNKNOWN;
-  gail_adjustment = GAIL_ADJUSTMENT (obj);
-  gail_adjustment->adjustment = adjustment;
-
-  g_object_add_weak_pointer (G_OBJECT (adjustment),
-                             (gpointer *) &gail_adjustment->adjustment);
-}
-
-static void     
-atk_value_interface_init (AtkValueIface *iface)
-{
-  iface->get_current_value = gail_adjustment_get_current_value;
-  iface->get_maximum_value = gail_adjustment_get_maximum_value;
-  iface->get_minimum_value = gail_adjustment_get_minimum_value;
-  iface->get_minimum_increment = gail_adjustment_get_minimum_increment;
-  iface->set_current_value = gail_adjustment_set_current_value;
-}
-
-static void     
-gail_adjustment_get_current_value (AtkValue             *obj,
-                                   GValue               *value)
-{
-  GtkAdjustment* adjustment;
-  gdouble current_value;
-  adjustment = GAIL_ADJUSTMENT (obj)->adjustment;
-  if (adjustment == NULL)
-  {
-    /* State is defunct */
-    return;
-  }
-
-  current_value = gtk_adjustment_get_value (adjustment);
-  memset (value,  0, sizeof (GValue));
-  g_value_init (value, G_TYPE_DOUBLE);
-  g_value_set_double (value,current_value);
-}
-
-static void     
-gail_adjustment_get_maximum_value (AtkValue             *obj,
-                                   GValue               *value)
-{
-  GtkAdjustment* adjustment;
-  gdouble maximum_value;
-  adjustment = GAIL_ADJUSTMENT (obj)->adjustment;
-  if (adjustment == NULL)
-  {
-    /* State is defunct */
-    return;
-  }
-
-  maximum_value = gtk_adjustment_get_upper (adjustment);
-  memset (value,  0, sizeof (GValue));
-  g_value_init (value, G_TYPE_DOUBLE);
-  g_value_set_double (value, maximum_value);
-}
-
-static void     
-gail_adjustment_get_minimum_value (AtkValue             *obj,
-                                   GValue               *value)
-{
-  GtkAdjustment* adjustment;
-  gdouble minimum_value;
-  adjustment = GAIL_ADJUSTMENT (obj)->adjustment;
-  if (adjustment == NULL)
-  {
-    /* State is defunct */
-    return;
-  }
-
-  minimum_value = gtk_adjustment_get_lower (adjustment);
-  memset (value,  0, sizeof (GValue));
-  g_value_init (value, G_TYPE_DOUBLE);
-  g_value_set_double (value, minimum_value);
-}
-
-static void
-gail_adjustment_get_minimum_increment (AtkValue        *obj,
-                                       GValue          *value)
-{
-  GtkAdjustment* adjustment;
-  gdouble minimum_increment;
-  adjustment = GAIL_ADJUSTMENT (obj)->adjustment;
-  if (adjustment == NULL)
-  {
-    /* State is defunct */
-    return;
-  }
-
-  if (gtk_adjustment_get_step_increment (adjustment) != 0 &&
-      gtk_adjustment_get_page_increment (adjustment) != 0)
-    {
-      if (ABS (gtk_adjustment_get_step_increment (adjustment)) < ABS (gtk_adjustment_get_page_increment (adjustment)))
-        minimum_increment = gtk_adjustment_get_step_increment (adjustment);
-      else
-        minimum_increment = gtk_adjustment_get_page_increment (adjustment);
-    }
-  else if (gtk_adjustment_get_step_increment (adjustment) == 0 &&
-           gtk_adjustment_get_page_increment (adjustment) == 0)
-    {
-      minimum_increment = 0;
-    }
-  else if (gtk_adjustment_get_step_increment (adjustment) == 0)
-    {
-      minimum_increment = gtk_adjustment_get_page_increment (adjustment);
-    }
-  else
-    {
-      minimum_increment = gtk_adjustment_get_step_increment (adjustment);
-    }
-
-  memset (value,  0, sizeof (GValue));
-  g_value_init (value, G_TYPE_DOUBLE);
-  g_value_set_double (value, minimum_increment);
-}
-
-static gboolean         
-gail_adjustment_set_current_value (AtkValue             *obj,
-                                   const GValue         *value)
-{
-  if (G_VALUE_HOLDS_DOUBLE (value))
-  {
-    GtkAdjustment* adjustment;
-    gdouble new_value;
-    adjustment = GAIL_ADJUSTMENT (obj)->adjustment;
-    if (adjustment == NULL)
-    {
-      /* State is defunct */
-      return FALSE;
-    }
-    new_value = g_value_get_double (value);
-    gtk_adjustment_set_value (adjustment, new_value);
-
-    return TRUE;
-  }
-  else
-    return FALSE;
-}
diff --git a/modules/other/gail/gailadjustment.h b/modules/other/gail/gailadjustment.h
deleted file mode 100644 (file)
index 790534d..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_ADJUSTMENT_H__
-#define __GAIL_ADJUSTMENT_H__
-
-#include <atk/atk.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_ADJUSTMENT                     (gail_adjustment_get_type ())
-#define GAIL_ADJUSTMENT(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_ADJUSTMENT, GailAdjustment))
-#define GAIL_ADJUSTMENT_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_ADJUSTMENT, GailAdjustmentClass))
-#define GAIL_IS_ADJUSTMENT(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_ADJUSTMENT))
-#define GAIL_IS_ADJUSTMENT_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_ADJUSTMENT))
-#define GAIL_ADJUSTMENT_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_ADJUSTMENT, GailAdjustmentClass))
-
-typedef struct _GailAdjustment                  GailAdjustment;
-typedef struct _GailAdjustmentClass            GailAdjustmentClass;
-
-struct _GailAdjustment
-{
-  AtkObject parent;
-
-  GtkAdjustment *adjustment;
-};
-
-GType gail_adjustment_get_type (void);
-
-struct _GailAdjustmentClass
-{
-  AtkObjectClass parent_class;
-};
-
-AtkObject *gail_adjustment_new (GtkAdjustment *adjustment);
-
-G_END_DECLS
-
-#endif /* __GAIL_ADJUSTMENT_H__ */
diff --git a/modules/other/gail/gailarrow.c b/modules/other/gail/gailarrow.c
deleted file mode 100644 (file)
index 9253d84..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailarrow.h"
-
-static void gail_arrow_class_init      (GailArrowClass *klass);
-static void gail_arrow_init            (GailArrow      *arrow);
-static void gail_arrow_initialize       (AtkObject      *accessible,
-                                         gpointer        data);
-
-/* AtkImage */
-static void  atk_image_interface_init   (AtkImageIface  *iface);
-static const gchar* gail_arrow_get_image_description
-                                        (AtkImage       *obj);
-static gboolean gail_arrow_set_image_description 
-                                        (AtkImage       *obj,
-                                        const gchar    *description);
-static void  gail_arrow_finalize       (GObject         *object);
-
-G_DEFINE_TYPE_WITH_CODE (GailArrow, gail_arrow, GAIL_TYPE_WIDGET,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_interface_init))
-
-static void     
-gail_arrow_class_init          (GailArrowClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *atk_object_class = ATK_OBJECT_CLASS (klass);
-
-  atk_object_class->initialize = gail_arrow_initialize;
-
-  gobject_class->finalize = gail_arrow_finalize;
-}
-
-static void
-gail_arrow_init (GailArrow *arrow)
-{
-  arrow->image_description = NULL;
-}
-
-static void
-gail_arrow_initialize (AtkObject *accessible,
-                       gpointer data)
-{
-  ATK_OBJECT_CLASS (gail_arrow_parent_class)->initialize (accessible, data);
-
-  accessible->role = ATK_ROLE_ICON;
-}
-
-static void
-atk_image_interface_init (AtkImageIface *iface)
-{
-  iface->get_image_description = gail_arrow_get_image_description;
-  iface->set_image_description = gail_arrow_set_image_description;
-}
-
-static const gchar*
-gail_arrow_get_image_description (AtkImage       *obj)
-{
-  GailArrow* arrow;
-
-  g_return_val_if_fail(GAIL_IS_ARROW(obj), NULL);
-
-  arrow = GAIL_ARROW (obj);
-
-  return arrow->image_description;
-}
-
-static gboolean 
-gail_arrow_set_image_description (AtkImage       *obj,
-                                  const gchar    *description)
-{
-  GailArrow* arrow;
-
-  g_return_val_if_fail(GAIL_IS_ARROW(obj), FALSE);
-
-  arrow = GAIL_ARROW (obj);
-  g_free (arrow->image_description);
-
-  arrow->image_description = g_strdup (description);
-
-  return TRUE;
-
-}
-
-/*
- * static void  
- * gail_arrow_get_image_size (AtkImage       *obj,
- *                          gint           *height,
- *                          gint           *width)
- *
- * We dont implement this function for GailArrow as gtk hardcodes the size 
- * of the arrow to be 7x5 and it is not possible to query this.
- */
-
-static void
-gail_arrow_finalize (GObject      *object)
-{
-  GailArrow *arrow = GAIL_ARROW (object);
-
-  g_free (arrow->image_description);
-  G_OBJECT_CLASS (gail_arrow_parent_class)->finalize (object);
-}
diff --git a/modules/other/gail/gailarrow.h b/modules/other/gail/gailarrow.h
deleted file mode 100644 (file)
index f2bfa3e..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_ARROW_H__
-#define __GAIL_ARROW_H__
-
-#include <gail/gailwidget.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_ARROW                      (gail_arrow_get_type ())
-#define GAIL_ARROW(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_ARROW, GailArrow))
-#define GAIL_ARROW_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_ARROW, GailArrowClass))
-#define GAIL_IS_ARROW(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_ARROW))
-#define GAIL_IS_ARROW_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_ARROW))
-#define GAIL_ARROW_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_ARROW, GailArrowClass))
-
-typedef struct _GailArrow              GailArrow;
-typedef struct _GailArrowClass         GailArrowClass;
-
-struct _GailArrow
-{
-  GailWidget parent;
-
-  gchar*     image_description;
-};
-
-GType gail_arrow_get_type (void);
-
-struct _GailArrowClass
-{
-  GailWidgetClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_ARROW_H__ */
diff --git a/modules/other/gail/gailbooleancell.c b/modules/other/gail/gailbooleancell.c
deleted file mode 100644 (file)
index 0aefcfa..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailbooleancell.h"
-
-static void      gail_boolean_cell_class_init          (GailBooleanCellClass *klass);
-static void      gail_boolean_cell_init                (GailBooleanCell *cell);
-/* Misc */
-
-static gboolean gail_boolean_cell_update_cache         (GailRendererCell     *cell,
-                                                        gboolean             emit_change_signal);
-
-gchar *gail_boolean_cell_property_list[] = {
-  "active",
-  "radio",
-  "sensitive",
-  NULL
-};
-
-G_DEFINE_TYPE (GailBooleanCell, gail_boolean_cell, GAIL_TYPE_RENDERER_CELL)
-
-static void 
-gail_boolean_cell_class_init (GailBooleanCellClass *klass)
-{
-  GailRendererCellClass *renderer_cell_class = GAIL_RENDERER_CELL_CLASS (klass);
-
-  renderer_cell_class->update_cache = gail_boolean_cell_update_cache;
-  renderer_cell_class->property_list = gail_boolean_cell_property_list;
-}
-
-static void
-gail_boolean_cell_init (GailBooleanCell *cell)
-{
-}
-
-AtkObject* 
-gail_boolean_cell_new (void)
-{
-  GObject *object;
-  AtkObject *atk_object;
-  GailRendererCell *cell;
-  GailBooleanCell *boolean_cell;
-
-  object = g_object_new (GAIL_TYPE_BOOLEAN_CELL, NULL);
-
-  g_return_val_if_fail (object != NULL, NULL);
-
-  atk_object = ATK_OBJECT (object);
-  atk_object->role = ATK_ROLE_TABLE_CELL;
-
-  cell = GAIL_RENDERER_CELL(object);
-  boolean_cell = GAIL_BOOLEAN_CELL(object);
-
-  cell->renderer = gtk_cell_renderer_toggle_new ();
-  g_object_ref_sink (cell->renderer);
-  boolean_cell->cell_value = FALSE;
-  boolean_cell->cell_sensitive = TRUE;
-  return atk_object;
-}
-
-static gboolean
-gail_boolean_cell_update_cache (GailRendererCell *cell, 
-                                gboolean         emit_change_signal)
-{
-  GailBooleanCell *boolean_cell = GAIL_BOOLEAN_CELL (cell);
-  gboolean rv = FALSE;
-  gboolean new_boolean;
-  gboolean new_sensitive;
-
-  g_object_get (G_OBJECT(cell->renderer), "active", &new_boolean,
-                                          "sensitive", &new_sensitive, NULL);
-
-  if (boolean_cell->cell_value != new_boolean)
-    {
-      rv = TRUE;
-      boolean_cell->cell_value = !(boolean_cell->cell_value);
-
-      /* Update cell's state */
-
-    if (new_boolean)
-      gail_cell_add_state (GAIL_CELL (cell), ATK_STATE_CHECKED, emit_change_signal);
-    else
-      gail_cell_remove_state (GAIL_CELL (cell), ATK_STATE_CHECKED, emit_change_signal);
-    }
-
-  if (boolean_cell->cell_sensitive != new_sensitive)
-    {
-      rv = TRUE;
-      boolean_cell->cell_sensitive = !(boolean_cell->cell_sensitive);
-
-      /* Update cell's state */
-
-      if (new_sensitive)
-        gail_cell_add_state (GAIL_CELL (cell), ATK_STATE_SENSITIVE, emit_change_signal);
-      else
-        gail_cell_remove_state (GAIL_CELL (cell), ATK_STATE_SENSITIVE, emit_change_signal);
-    }
-
-  return rv;
-}
diff --git a/modules/other/gail/gailbooleancell.h b/modules/other/gail/gailbooleancell.h
deleted file mode 100644 (file)
index f888b1d..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_BOOLEAN_CELL_H__
-#define __GAIL_BOOLEAN_CELL_H__
-
-#include <atk/atk.h>
-#include <gail/gailrenderercell.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_BOOLEAN_CELL            (gail_boolean_cell_get_type ())
-#define GAIL_BOOLEAN_CELL(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_BOOLEAN_CELL, GailBooleanCell))
-#define GAIL_BOOLEAN_CELL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_BOOLEAN_CELL, GailBooleanCellClass))
-#define GAIL_IS_BOOLEAN_CELL(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_BOOLEAN_CELL))
-#define GAIL_IS_BOOLEAN_CELL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_BOOLEAN_CELL))
-#define GAIL_BOOLEAN_CELL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_BOOLEAN_CELL, GailBooleanCellClass))
-
-typedef struct _GailBooleanCell                  GailBooleanCell;
-typedef struct _GailBooleanCellClass             GailBooleanCellClass;
-
-struct _GailBooleanCell
-{
-  GailRendererCell parent;
-  gboolean cell_value;
-  gboolean cell_sensitive;
-};
-
- GType gail_boolean_cell_get_type (void);
-
-struct _GailBooleanCellClass
-{
-  GailRendererCellClass parent_class;
-};
-
-AtkObject *gail_boolean_cell_new (void);
-
-G_END_DECLS
-
-#endif /* __GAIL_TREE_VIEW_BOOLEAN_CELL_H__ */
diff --git a/modules/other/gail/gailbox.h b/modules/other/gail/gailbox.h
deleted file mode 100644 (file)
index 403f163..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_BOX_H__
-#define __GAIL_BOX_H__
-
-#include <gail/gailcontainer.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_BOX                        (gail_box_get_type ())
-#define GAIL_BOX(obj)                        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_BOX, GailBox))
-#define GAIL_BOX_CLASS(klass)                (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_BOX, GailBoxClass))
-#define GAIL_IS_BOX(obj)                     (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_BOX))
-#define GAIL_IS_BOX_CLASS(klass)             (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_BOX))
-#define GAIL_BOX_GET_CLASS(obj)              (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_BOX, GailBoxClass))
-
-typedef struct _GailBox              GailBox;
-typedef struct _GailBoxClass         GailBoxClass;
-
-struct _GailBox
-{
-  GailContainer parent;
-};
-
-GType gail_box_get_type (void);
-
-struct _GailBoxClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_BOX_H__ */
diff --git a/modules/other/gail/gailbutton.c b/modules/other/gail/gailbutton.c
deleted file mode 100644 (file)
index f8c648e..0000000
+++ /dev/null
@@ -1,1686 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-#include "gailbutton.h"
-#include <libgail-util/gailmisc.h>
-
-#define GAIL_BUTTON_ATTACHED_MENUS "gtk-attached-menus"
-
-static void                  gail_button_class_init       (GailButtonClass *klass);
-static void                  gail_button_init             (GailButton      *button);
-
-static const gchar* gail_button_get_name         (AtkObject       *obj);
-static gint                  gail_button_get_n_children   (AtkObject       *obj);
-static AtkObject*            gail_button_ref_child        (AtkObject       *obj,
-                                                           gint            i);
-static AtkStateSet*          gail_button_ref_state_set    (AtkObject       *obj);
-static void                  gail_button_notify_label_gtk (GObject         *obj,
-                                                           GParamSpec      *pspec,
-                                                           gpointer        data);
-static void                  gail_button_label_map_gtk    (GtkWidget       *widget,
-                                                           gpointer        data);
-
-static void                  gail_button_real_initialize  (AtkObject       *obj,
-                                                           gpointer        data);
-static void                  gail_button_finalize         (GObject        *object);
-static void                  gail_button_init_textutil    (GailButton     *button,
-                                                           GtkWidget      *label);
-
-static void                  gail_button_pressed_enter_handler  (GtkWidget       *widget);
-static void                  gail_button_released_leave_handler (GtkWidget       *widget);
-static gint                  gail_button_real_add_gtk           (GtkContainer    *container,
-                                                                 GtkWidget       *widget,
-                                                                 gpointer        data);
-
-
-static void                  atk_action_interface_init  (AtkActionIface *iface);
-static gboolean              gail_button_do_action      (AtkAction      *action,
-                                                         gint           i);
-static gboolean              idle_do_action             (gpointer       data);
-static gint                  gail_button_get_n_actions  (AtkAction      *action);
-static const gchar* gail_button_get_description(AtkAction      *action,
-                                                         gint           i);
-static const gchar* gail_button_get_keybinding (AtkAction      *action,
-                                                         gint           i);
-static const gchar* gail_button_action_get_name(AtkAction      *action,
-                                                         gint           i);
-static gboolean              gail_button_set_description(AtkAction      *action,
-                                                         gint           i,
-                                                         const gchar    *desc);
-static void                  gail_button_notify_label_weak_ref (gpointer data,
-                                                                GObject  *obj);
-static void                  gail_button_notify_weak_ref       (gpointer data,
-                                                                GObject  *obj);
-
-
-/* AtkImage.h */
-static void                  atk_image_interface_init   (AtkImageIface  *iface);
-static const gchar* gail_button_get_image_description
-                                                        (AtkImage       *image);
-static void                 gail_button_get_image_position
-                                                        (AtkImage       *image,
-                                                         gint          *x,
-                                                         gint          *y,
-                                                         AtkCoordType   coord_type);
-static void                  gail_button_get_image_size (AtkImage       *image,
-                                                         gint           *width,
-                                                         gint           *height);
-static gboolean              gail_button_set_image_description 
-                                                        (AtkImage       *image,
-                                                         const gchar    *description);
-
-/* atktext.h */ 
-static void      atk_text_interface_init          (AtkTextIface        *iface);
-
-static gchar*    gail_button_get_text             (AtkText           *text,
-                                                    gint             start_pos,
-                                                   gint              end_pos);
-static gunichar          gail_button_get_character_at_offset(AtkText         *text,
-                                                   gint              offset);
-static gchar*     gail_button_get_text_before_offset(AtkText         *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*     gail_button_get_text_at_offset   (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*     gail_button_get_text_after_offset(AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gint      gail_button_get_character_count  (AtkText           *text);
-static void gail_button_get_character_extents      (AtkText          *text,
-                                                   gint              offset,
-                                                   gint              *x,
-                                                   gint              *y,
-                                                   gint              *width,
-                                                   gint              *height,
-                                                   AtkCoordType      coords);
-static gint gail_button_get_offset_at_point        (AtkText           *text,
-                                                    gint              x,
-                                                    gint              y,
-                                                   AtkCoordType      coords);
-static AtkAttributeSet* gail_button_get_run_attributes 
-                                                   (AtkText           *text,
-                                                   gint              offset,
-                                                    gint             *start_offset,
-                                                   gint              *end_offset);
-static AtkAttributeSet* gail_button_get_default_attributes
-                                                   (AtkText           *text);
-static GtkImage*             get_image_from_button      (GtkWidget      *button);
-static GtkWidget*            get_label_from_button      (GtkWidget      *button,
-                                                         gint           index,
-                                                         gboolean       allow_many);
-static gint                  get_n_labels_from_button   (GtkWidget      *button);
-static void                  set_role_for_button        (AtkObject      *accessible,
-                                                         GtkWidget      *button);
-
-static gint                  get_n_attached_menus       (GtkWidget      *widget);
-static GtkWidget*            get_nth_attached_menu      (GtkWidget      *widget,
-                                                         gint           index);
-
-G_DEFINE_TYPE_WITH_CODE (GailButton, gail_button, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init))
-
-static void
-gail_button_class_init (GailButtonClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-  GailContainerClass *container_class;
-
-  container_class = (GailContainerClass*)klass;
-
-  gobject_class->finalize = gail_button_finalize;
-
-  class->get_name = gail_button_get_name;
-  class->get_n_children = gail_button_get_n_children;
-  class->ref_child = gail_button_ref_child;
-  class->ref_state_set = gail_button_ref_state_set;
-  class->initialize = gail_button_real_initialize;
-
-  container_class->add_gtk = gail_button_real_add_gtk;
-  container_class->remove_gtk = NULL;
-}
-
-static void
-gail_button_init (GailButton *button)
-{
-  button->click_description = NULL;
-  button->press_description = NULL;
-  button->release_description = NULL;
-  button->click_keybinding = NULL;
-  button->action_queue = NULL;
-  button->action_idle_handler = 0;
-  button->textutil = NULL;
-}
-
-static const gchar*
-gail_button_get_name (AtkObject *obj)
-{
-  const gchar* name = NULL;
-
-  g_return_val_if_fail (GAIL_IS_BUTTON (obj), NULL);
-
-  name = ATK_OBJECT_CLASS (gail_button_parent_class)->get_name (obj);
-  if (name == NULL)
-    {
-      /*
-       * Get the text on the label
-       */
-      GtkWidget *widget;
-      GtkWidget *child;
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-      if (widget == NULL)
-        /*
-         * State is defunct
-         */
-        return NULL;
-
-      g_return_val_if_fail (GTK_IS_BUTTON (widget), NULL);
-
-      child = get_label_from_button (widget, 0, FALSE);
-      if (GTK_IS_LABEL (child))
-        name = gtk_label_get_text (GTK_LABEL (child)); 
-      else
-        {
-          GtkImage *image;
-
-          image = get_image_from_button (widget);
-          if (GTK_IS_IMAGE (image))
-            {
-              AtkObject *atk_obj;
-
-              atk_obj = gtk_widget_get_accessible (GTK_WIDGET (image));
-              name = atk_object_get_name (atk_obj);
-            }
-        }
-    }
-  return name;
-}
-
-/*
- * A DownArrow in a GtkToggltButton whose parent is not a ColorCombo
- * has press as default action.
- */
-static gboolean
-gail_button_is_default_press (GtkWidget *widget)
-{
-  GtkArrowType arrow_type;
-  GtkWidget  *child;
-  GtkWidget  *parent;
-  gboolean ret = FALSE;
-  const gchar *parent_type_name;
-
-  child = gtk_bin_get_child (GTK_BIN (widget));
-  if (GTK_IS_ARROW (child))
-    {
-      g_object_get (child,
-                    "arrow_type", &arrow_type,
-                    NULL);
-
-      if (arrow_type == GTK_ARROW_DOWN)
-        {
-          parent = gtk_widget_get_parent (widget);
-          if (parent)
-            {
-              parent_type_name = g_type_name (G_OBJECT_TYPE (parent));
-              if (g_strcmp0 (parent_type_name, "ColorCombo"))
-                return TRUE;
-            }
-        }
-    }
-
-  return ret;
-}
-
-static void
-gail_button_real_initialize (AtkObject *obj,
-                             gpointer   data)
-{
-  GailButton *button = GAIL_BUTTON (obj);
-  GtkWidget  *label;
-  GtkWidget  *widget;
-
-  ATK_OBJECT_CLASS (gail_button_parent_class)->initialize (obj, data);
-
-  button->state = GTK_STATE_NORMAL;
-
-  g_signal_connect (data,
-                    "pressed",
-                    G_CALLBACK (gail_button_pressed_enter_handler),
-                    NULL);
-  g_signal_connect (data,
-                    "enter",
-                    G_CALLBACK (gail_button_pressed_enter_handler),
-                    NULL);
-  g_signal_connect (data,
-                    "released",
-                    G_CALLBACK (gail_button_released_leave_handler),
-                    NULL);
-  g_signal_connect (data,
-                    "leave",
-                    G_CALLBACK (gail_button_released_leave_handler),
-                    NULL);
-
-
-  widget = GTK_WIDGET (data);
-  label = get_label_from_button (widget, 0, FALSE);
-  if (GTK_IS_LABEL (label))
-    {
-      if (gtk_widget_get_mapped (label))
-        gail_button_init_textutil (button, label);
-      else 
-        g_signal_connect (label,
-                          "map",
-                          G_CALLBACK (gail_button_label_map_gtk),
-                          button);
-    }
-  button->default_is_press = gail_button_is_default_press (widget);
-    
-  set_role_for_button (obj, data);
-}
-
-static void
-gail_button_label_map_gtk (GtkWidget *widget,
-                           gpointer data)
-{
-  GailButton *button; 
-
-  button = GAIL_BUTTON (data);
-  gail_button_init_textutil (button, widget);
-}
-
-static void
-gail_button_notify_label_gtk (GObject           *obj,
-                              GParamSpec        *pspec,
-                              gpointer           data)
-{
-  AtkObject* atk_obj = ATK_OBJECT (data);
-  GtkLabel *label;
-  GailButton *gail_button;
-
-  if (strcmp (pspec->name, "label") == 0)
-    {
-      const gchar* label_text;
-
-      label = GTK_LABEL (obj);
-
-      label_text = gtk_label_get_text (label);
-
-      gail_button = GAIL_BUTTON (atk_obj);
-      gail_text_util_text_setup (gail_button->textutil, label_text);
-
-      if (atk_obj->name == NULL)
-      {
-        /*
-         * The label has changed so notify a change in accessible-name
-         */
-        g_object_notify (G_OBJECT (atk_obj), "accessible-name");
-      }
-      /*
-       * The label is the only property which can be changed
-       */
-      g_signal_emit_by_name (atk_obj, "visible_data_changed");
-    }
-}
-
-static void
-gail_button_notify_weak_ref (gpointer data, GObject* obj)
-{
-  GtkLabel *label = NULL;
-
-  AtkObject* atk_obj = ATK_OBJECT (obj);
-  if (data && GTK_IS_WIDGET (data))
-    {
-      label = GTK_LABEL (data);
-      if (label)
-        {
-          g_signal_handlers_disconnect_by_func (label,
-                                                (GCallback) gail_button_notify_label_gtk,
-                                                GAIL_BUTTON (atk_obj));
-          g_object_weak_unref (G_OBJECT (label),
-                               gail_button_notify_label_weak_ref,
-                               GAIL_BUTTON (atk_obj));
-        }
-    }
-}
-
-static void
-gail_button_notify_label_weak_ref (gpointer data, GObject* obj)
-{
-  GtkLabel *label = NULL;
-  GailButton *button = NULL;
-
-  label = GTK_LABEL (obj);
-  if (data && GAIL_IS_BUTTON (data))
-    {
-      button = GAIL_BUTTON (ATK_OBJECT (data));
-      if (button)
-        g_object_weak_unref (G_OBJECT (button), gail_button_notify_weak_ref,
-                             label);
-    }
-}
-
-
-static void
-gail_button_init_textutil (GailButton  *button,
-                           GtkWidget   *label)
-{
-  const gchar *label_text;
-
-  if (button->textutil)
-    g_object_unref (button->textutil);
-  button->textutil = gail_text_util_new ();
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  gail_text_util_text_setup (button->textutil, label_text);
-  g_object_weak_ref (G_OBJECT (button),
-                     gail_button_notify_weak_ref, label);
-  g_object_weak_ref (G_OBJECT (label),
-                     gail_button_notify_label_weak_ref, button);
-  g_signal_connect (label,
-                    "notify",
-                    (GCallback) gail_button_notify_label_gtk,
-                    button);     
-}
-
-static gint
-gail_button_real_add_gtk (GtkContainer *container,
-                          GtkWidget    *widget,
-                          gpointer     data)
-{
-  GtkLabel *label;
-  GailButton *button;
-
-  if (GTK_IS_LABEL (widget))
-    {
-      const gchar* label_text;
-
-      label = GTK_LABEL (widget);
-
-
-      button = GAIL_BUTTON (data);
-      if (!button->textutil)
-        gail_button_init_textutil (button, widget);
-      else
-        {
-          label_text = gtk_label_get_text (label);
-          gail_text_util_text_setup (button->textutil, label_text);
-        }
-    }
-
-  return 1;
-}
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
-  iface->do_action = gail_button_do_action;
-  iface->get_n_actions = gail_button_get_n_actions;
-  iface->get_description = gail_button_get_description;
-  iface->get_keybinding = gail_button_get_keybinding;
-  iface->get_name = gail_button_action_get_name;
-  iface->set_description = gail_button_set_description;
-}
-
-static gboolean
-gail_button_do_action (AtkAction *action,
-                       gint      i)
-{
-  GtkWidget *widget;
-  GailButton *button;
-  gboolean return_value = TRUE;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-
-  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  button = GAIL_BUTTON (action); 
-
-  switch (i)
-    {
-    case 0:
-    case 1:
-    case 2:
-      if (!button->action_queue) 
-       {
-         button->action_queue = g_queue_new ();
-       }
-      g_queue_push_head (button->action_queue, GINT_TO_POINTER(i));
-      if (!button->action_idle_handler)
-       button->action_idle_handler = gdk_threads_add_idle (idle_do_action, button);
-      break;
-    default:
-      return_value = FALSE;
-      break;
-    }
-  return return_value; 
-}
-
-static gboolean
-idle_do_action (gpointer data)
-{
-  GtkButton *button; 
-  GtkWidget *widget;
-  GailButton *gail_button;
-  GdkEvent tmp_event;
-  GdkWindow *window;
-
-  gail_button = GAIL_BUTTON (data);
-  gail_button->action_idle_handler = 0;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (gail_button));
-  window = gtk_widget_get_window (widget);
-
-  tmp_event.button.type = GDK_BUTTON_RELEASE;
-  tmp_event.button.window = window;
-  tmp_event.button.button = 1;
-  tmp_event.button.send_event = TRUE;
-  tmp_event.button.time = GDK_CURRENT_TIME;
-  tmp_event.button.axes = NULL;
-
-  g_object_ref (gail_button);
-
-  if (widget == NULL /* State is defunct */ ||
-      !gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
-    {
-      g_object_unref (gail_button);
-      return FALSE;
-    }
-  else
-    gtk_widget_event (widget, &tmp_event);
-
-  button = GTK_BUTTON (widget); 
-  while (!g_queue_is_empty (gail_button->action_queue)) 
-    {
-      gint action_number = GPOINTER_TO_INT(g_queue_pop_head (gail_button->action_queue));
-      if (gail_button->default_is_press)
-        {
-          if (action_number == 0)
-            action_number = 1;
-          else if (action_number == 1)
-            action_number = 0;
-        }
-      switch (action_number)
-       {
-       case 0:
-         /* first a press */ 
-
-          /* FIXME: Do not access public member
-         button->in_button = TRUE;
-          */
-         g_signal_emit_by_name (button, "enter");
-         /*
-          * Simulate a button press event. calling gtk_button_pressed() does
-          * not get the job done for a GtkOptionMenu.  
-          */
-         tmp_event.button.type = GDK_BUTTON_PRESS;
-         tmp_event.button.window = window;
-         tmp_event.button.button = 1;
-         tmp_event.button.send_event = TRUE;
-         tmp_event.button.time = GDK_CURRENT_TIME;
-         tmp_event.button.axes = NULL;
-         
-         gtk_widget_event (widget, &tmp_event);
-
-         /* then a release */
-         tmp_event.button.type = GDK_BUTTON_RELEASE;
-         gtk_widget_event (widget, &tmp_event);
-          /* FIXME: Do not access public member
-         button->in_button = FALSE;
-          */
-         g_signal_emit_by_name (button, "leave");
-         break;
-       case 1:
-          /* FIXME: Do not access public member
-         button->in_button = TRUE;
-          */
-         g_signal_emit_by_name (button, "enter");
-         /*
-          * Simulate a button press event. calling gtk_button_pressed() does
-          * not get the job done for a GtkOptionMenu.  
-          */
-         tmp_event.button.type = GDK_BUTTON_PRESS;
-         tmp_event.button.window = window;
-         tmp_event.button.button = 1;
-         tmp_event.button.send_event = TRUE;
-         tmp_event.button.time = GDK_CURRENT_TIME;
-         tmp_event.button.axes = NULL;
-         
-         gtk_widget_event (widget, &tmp_event);
-         break;
-       case 2:
-          /* FIXME: Do not access public member
-         button->in_button = FALSE;
-          */
-         g_signal_emit_by_name (button, "leave");
-         break;
-       default:
-         g_assert_not_reached ();
-         break;
-       }
-    }
-  g_object_unref (gail_button);
-  return FALSE;
-}
-
-static gint
-gail_button_get_n_actions (AtkAction *action)
-{
-  return 3;
-}
-
-static const gchar*
-gail_button_get_description (AtkAction *action,
-                             gint      i)
-{
-  GailButton *button;
-  const gchar *return_value;
-
-  button = GAIL_BUTTON (action);
-
-  if (button->default_is_press)
-    {
-      if (i == 0)
-        i = 1;
-      else if (i == 1)
-        i = 0;
-    }
-  switch (i)
-    {
-    case 0:
-      return_value = button->click_description;
-      break;
-    case 1:
-      return_value = button->press_description;
-      break;
-    case 2:
-      return_value = button->release_description;
-      break;
-    default:
-      return_value = NULL;
-      break;
-    }
-  return return_value; 
-}
-
-static const gchar*
-gail_button_get_keybinding (AtkAction *action,
-                            gint      i)
-{
-  GailButton *button;
-  gchar *return_value = NULL;
-
-  button = GAIL_BUTTON (action);
-  if (button->default_is_press)
-    {
-      if (i == 0)
-        i = 1;
-      else if (i == 1)
-        i = 0;
-    }
-  switch (i)
-    {
-    case 0:
-      {
-        /*
-         * We look for a mnemonic on the label
-         */
-        GtkWidget *widget;
-        GtkWidget *label;
-        guint key_val; 
-
-        widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (button));
-        if (widget == NULL)
-          /*
-           * State is defunct
-           */
-          return NULL;
-
-        g_return_val_if_fail (GTK_IS_BUTTON (widget), NULL);
-
-        label = get_label_from_button (widget, 0, FALSE);
-        if (GTK_IS_LABEL (label))
-          {
-            key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label)); 
-            if (key_val != GDK_KEY_VoidSymbol)
-              return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
-          }
-        if (return_value == NULL)
-          {
-            /* Find labelled-by relation */
-            AtkRelationSet *set;
-            AtkRelation *relation;
-            GPtrArray *target;
-            gpointer target_object;
-
-            set = atk_object_ref_relation_set (ATK_OBJECT (action));
-            if (set)
-              {
-                relation = atk_relation_set_get_relation_by_type (set, ATK_RELATION_LABELLED_BY);
-                if (relation)
-                  {              
-                    target = atk_relation_get_target (relation);
-            
-                    target_object = g_ptr_array_index (target, 0);
-                    label = gtk_accessible_get_widget (GTK_ACCESSIBLE (target_object));
-                  }
-                g_object_unref (set);
-              }
-
-            if (GTK_IS_LABEL (label))
-              {
-                key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label)); 
-                if (key_val != GDK_KEY_VoidSymbol)
-                  return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
-              }
-          }
-        g_free (button->click_keybinding);
-        button->click_keybinding = return_value;
-        break;
-      }
-    default:
-      break;
-    }
-  return return_value; 
-}
-
-static const gchar*
-gail_button_action_get_name (AtkAction *action,
-                             gint      i)
-{
-  const gchar *return_value;
-  GailButton *button;
-
-  button = GAIL_BUTTON (action);
-
-  if (button->default_is_press)
-    {
-      if (i == 0)
-        i = 1;
-      else if (i == 1)
-        i = 0;
-    }
-  switch (i)
-    {
-    case 0:
-      /*
-       * This action is a "click" to activate a button or "toggle" to change
-       * the state of a toggle button check box or radio button.
-       */ 
-      return_value = "click";
-      break;
-    case 1:
-      /*
-       * This action simulates a button press by simulating moving the
-       * mouse into the button followed by pressing the left mouse button.
-       */
-      return_value = "press";
-      break;
-    case 2:
-      /*
-       * This action simulates releasing the left mouse button outside the 
-       * button.
-       *
-       * To simulate releasing the left mouse button inside the button use
-       * the click action.
-       */
-      return_value = "release";
-      break;
-    default:
-      return_value = NULL;
-      break;
-    }
-  return return_value; 
-}
-
-static gboolean
-gail_button_set_description (AtkAction      *action,
-                             gint           i,
-                             const gchar    *desc)
-{
-  GailButton *button;
-  gchar **value;
-
-  button = GAIL_BUTTON (action);
-
-  if (button->default_is_press)
-    {
-      if (i == 0)
-        i = 1;
-      else if (i == 1)
-        i = 0;
-    }
-  switch (i)
-    {
-    case 0:
-      value = &button->click_description;
-      break;
-    case 1:
-      value = &button->press_description;
-      break;
-    case 2:
-      value = &button->release_description;
-      break;
-    default:
-      value = NULL;
-      break;
-    }
-  if (value)
-    {
-      g_free (*value);
-      *value = g_strdup (desc);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static gint
-gail_button_get_n_children (AtkObject* obj)
-{
-  GtkWidget *widget;
-  gint n_children;
-
-  g_return_val_if_fail (GAIL_IS_BUTTON (obj), 0);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return 0;
-
-  /*
-   * Check whether we have an attached menus for PanelMenuButton
-   */
-  n_children = get_n_attached_menus (widget);
-  if (n_children > 0)
-    return n_children;
-
-  n_children = get_n_labels_from_button (widget);
-  if (n_children <= 1)
-    n_children = 0;
-
-  return n_children;
-}
-
-static AtkObject*
-gail_button_ref_child (AtkObject *obj,
-                       gint      i)
-{
-  GtkWidget *widget;
-  GtkWidget *child_widget;
-  AtkObject *child;
-
-  g_return_val_if_fail (GAIL_IS_BUTTON (obj), NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return NULL;
-
-  if (i >= gail_button_get_n_children (obj))
-    return NULL;
-
-  if (get_n_attached_menus (widget) > 0)
-  {
-    child_widget = get_nth_attached_menu (widget, i);
-  }
-  else
-    child_widget = NULL;    
-
-  if (!child_widget) 
-    {
-      if (get_n_labels_from_button (widget) > 1)
-        {
-          child_widget = get_label_from_button (widget, i, TRUE);
-        }
-    }
-
-  if (child_widget)
-    {
-      child = gtk_widget_get_accessible (child_widget);
-      g_object_ref (child);
-    }
-  else
-    child = NULL;
-
-  return child;
-}
-
-static AtkStateSet*
-gail_button_ref_state_set (AtkObject *obj)
-{
-  AtkStateSet *state_set;
-  GtkWidget *widget;
-
-  state_set = ATK_OBJECT_CLASS (gail_button_parent_class)->ref_state_set (obj);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-
-  if (widget == NULL)
-    return state_set;
-
-  if (gtk_widget_get_state (widget) == GTK_STATE_ACTIVE)
-    atk_state_set_add_state (state_set, ATK_STATE_ARMED);
-
-  if (!gtk_widget_get_can_focus (widget))
-    atk_state_set_remove_state (state_set, ATK_STATE_SELECTABLE);
-
-
-  return state_set;
-}
-
-/*
- * This is the signal handler for the "pressed" or "enter" signal handler
- * on the GtkButton.
- *
- * If the state is now GTK_STATE_ACTIVE we notify a property change
- */
-static void
-gail_button_pressed_enter_handler (GtkWidget       *widget)
-{
-  AtkObject *accessible;
-
-  if (gtk_widget_get_state (widget) == GTK_STATE_ACTIVE)
-    {
-      accessible = gtk_widget_get_accessible (widget);
-      atk_object_notify_state_change (accessible, ATK_STATE_ARMED, TRUE);
-      GAIL_BUTTON (accessible)->state = GTK_STATE_ACTIVE;
-    }
-}
-
-/*
- * This is the signal handler for the "released" or "leave" signal handler
- * on the GtkButton.
- *
- * If the state was GTK_STATE_ACTIVE we notify a property change
- */
-static void
-gail_button_released_leave_handler (GtkWidget       *widget)
-{
-  AtkObject *accessible;
-
-  accessible = gtk_widget_get_accessible (widget);
-  if (GAIL_BUTTON (accessible)->state == GTK_STATE_ACTIVE)
-    {
-      atk_object_notify_state_change (accessible, ATK_STATE_ARMED, FALSE);
-      GAIL_BUTTON (accessible)->state = GTK_STATE_NORMAL;
-    }
-}
-
-static void
-atk_image_interface_init (AtkImageIface *iface)
-{
-  iface->get_image_description = gail_button_get_image_description;
-  iface->get_image_position = gail_button_get_image_position;
-  iface->get_image_size = gail_button_get_image_size;
-  iface->set_image_description = gail_button_set_image_description;
-}
-
-static GtkImage*
-get_image_from_button (GtkWidget *button)
-{
-  GtkWidget *child;
-  GList *list;
-  GtkImage *image = NULL;
-
-  child = gtk_bin_get_child (GTK_BIN (button));
-  if (GTK_IS_IMAGE (child))
-    image = GTK_IMAGE (child);
-  else
-    {
-      if (GTK_IS_ALIGNMENT (child))
-        child = gtk_bin_get_child (GTK_BIN (child));
-      if (GTK_IS_CONTAINER (child))
-        {
-          list = gtk_container_get_children (GTK_CONTAINER (child));
-          if (!list)
-            return NULL;
-          if (GTK_IS_IMAGE (list->data))
-            image = GTK_IMAGE (list->data);
-          g_list_free (list);
-        }
-    }
-
-  return image;
-}
-
-static const gchar*
-gail_button_get_image_description (AtkImage *image) {
-
-  GtkWidget *widget;
-  GtkImage  *button_image;
-  AtkObject *obj;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return NULL;
-
-  button_image = get_image_from_button (widget);
-
-  if (button_image != NULL)
-    {
-      obj = gtk_widget_get_accessible (GTK_WIDGET (button_image));
-      return atk_image_get_image_description (ATK_IMAGE (obj));
-    }
-  else 
-    return NULL;
-}
-
-static void
-gail_button_get_image_position (AtkImage     *image,
-                                gint        *x,
-                                gint        *y,
-                                AtkCoordType coord_type)
-{
-  GtkWidget *widget;
-  GtkImage  *button_image;
-  AtkObject *obj;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
-
-  if (widget == NULL)
-    {
-    /*
-     * State is defunct
-     */
-      *x = G_MININT;
-      *y = G_MININT;
-      return;
-    }
-
-  button_image = get_image_from_button (widget);
-
-  if (button_image != NULL)
-    {
-      obj = gtk_widget_get_accessible (GTK_WIDGET (button_image));
-      atk_component_get_position (ATK_COMPONENT (obj), x, y, coord_type); 
-    }
-  else
-    {
-      *x = G_MININT;
-      *y = G_MININT;
-    }
-}
-
-static void
-gail_button_get_image_size (AtkImage *image,
-                            gint     *width,
-                            gint     *height)
-{
-  GtkWidget *widget;
-  GtkImage  *button_image;
-  AtkObject *obj;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
-
-  if (widget == NULL)
-    {
-    /*
-     * State is defunct
-     */
-      *width = -1;
-      *height = -1;
-      return;
-    }
-
-  button_image = get_image_from_button (widget);
-
-  if (button_image != NULL)
-    {
-      obj = gtk_widget_get_accessible (GTK_WIDGET (button_image));
-      atk_image_get_image_size (ATK_IMAGE (obj), width, height); 
-    }
-  else
-    {
-      *width = -1;
-      *height = -1;
-    }
-}
-
-static gboolean
-gail_button_set_image_description (AtkImage    *image,
-                                   const gchar *description)
-{
-  GtkWidget *widget;
-  GtkImage  *button_image;
-  AtkObject *obj;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-
-  button_image = get_image_from_button (widget);
-
-  if (button_image != NULL) 
-    {
-      obj = gtk_widget_get_accessible (GTK_WIDGET (button_image));
-      return atk_image_set_image_description (ATK_IMAGE (obj), description);
-    }
-  else 
-    return FALSE;
-}
-
-/* atktext.h */
-
-static void
-atk_text_interface_init (AtkTextIface *iface)
-{
-  iface->get_text = gail_button_get_text;
-  iface->get_character_at_offset = gail_button_get_character_at_offset;
-  iface->get_text_before_offset = gail_button_get_text_before_offset;
-  iface->get_text_at_offset = gail_button_get_text_at_offset;
-  iface->get_text_after_offset = gail_button_get_text_after_offset;
-  iface->get_character_count = gail_button_get_character_count;
-  iface->get_character_extents = gail_button_get_character_extents;
-  iface->get_offset_at_point = gail_button_get_offset_at_point;
-  iface->get_run_attributes = gail_button_get_run_attributes;
-  iface->get_default_attributes = gail_button_get_default_attributes;
-}
-
-static gchar*
-gail_button_get_text (AtkText *text,
-                      gint    start_pos,
-                      gint    end_pos)
-{
-  GtkWidget *widget;
-  GtkWidget  *label;
-  GailButton *button;
-  const gchar *label_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = get_label_from_button (widget, 0, FALSE);
-
-  if (!GTK_IS_LABEL (label))
-    return NULL;
-
-  button = GAIL_BUTTON (text);
-  if (!button->textutil) 
-    gail_button_init_textutil (button, label);
-
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-
-  if (label_text == NULL)
-    return NULL;
-  else
-  {
-    return gail_text_util_get_substring (button->textutil, 
-                                         start_pos, end_pos);
-  }
-}
-
-static gchar*
-gail_button_get_text_before_offset (AtkText         *text,
-                                   gint            offset,
-                                   AtkTextBoundary boundary_type,
-                                   gint            *start_offset,
-                                   gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  GailButton *button;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-  
-  /* Get label */
-  label = get_label_from_button (widget, 0, FALSE);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  button = GAIL_BUTTON (text);
-  if (!button->textutil)
-    gail_button_init_textutil (button, label);
-
-  return gail_text_util_get_text (button->textutil,
-                           gtk_label_get_layout (GTK_LABEL (label)), GAIL_BEFORE_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset); 
-}
-
-static gchar*
-gail_button_get_text_at_offset (AtkText         *text,
-                               gint            offset,
-                               AtkTextBoundary boundary_type,
-                               gint            *start_offset,
-                               gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  GailButton *button;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-  
-  /* Get label */
-  label = get_label_from_button (widget, 0, FALSE);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  button = GAIL_BUTTON (text);
-  if (!button->textutil)
-    gail_button_init_textutil (button, label);
-
-  return gail_text_util_get_text (button->textutil,
-                              gtk_label_get_layout (GTK_LABEL (label)), GAIL_AT_OFFSET, 
-                              boundary_type, offset, start_offset, end_offset);
-}
-
-static gchar*
-gail_button_get_text_after_offset (AtkText         *text,
-                                  gint            offset,
-                                  AtkTextBoundary boundary_type,
-                                  gint            *start_offset,
-                                  gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  GailButton *button;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-  {
-    /* State is defunct */
-    return NULL;
-  }
-  
-  /* Get label */
-  label = get_label_from_button (widget, 0, FALSE);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  button = GAIL_BUTTON (text);
-  if (!button->textutil)
-    gail_button_init_textutil (button, label);
-
-  return gail_text_util_get_text (button->textutil,
-                           gtk_label_get_layout (GTK_LABEL (label)), GAIL_AFTER_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset);
-}
-
-static gint
-gail_button_get_character_count (AtkText *text)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  label = get_label_from_button (widget, 0, FALSE);
-
-  if (!GTK_IS_LABEL(label))
-    return 0;
-
-  return g_utf8_strlen (gtk_label_get_text (GTK_LABEL (label)), -1);
-}
-
-static void
-gail_button_get_character_extents (AtkText      *text,
-                                  gint         offset,
-                                  gint         *x,
-                                  gint         *y,
-                                   gint        *width,
-                                   gint        *height,
-                                  AtkCoordType coords)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  PangoRectangle char_rect;
-  gint index, x_layout, y_layout;
-  const gchar *label_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  label = get_label_from_button (widget, 0, FALSE);
-
-  if (!GTK_IS_LABEL(label))
-    return;
-  
-  gtk_label_get_layout_offsets (GTK_LABEL (label), &x_layout, &y_layout);
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  index = g_utf8_offset_to_pointer (label_text, offset) - label_text;
-  pango_layout_index_to_pos (gtk_label_get_layout (GTK_LABEL (label)), index, &char_rect);
-  
-  gail_misc_get_extents_from_pango_rectangle (label, &char_rect, 
-                    x_layout, y_layout, x, y, width, height, coords);
-} 
-
-static gint 
-gail_button_get_offset_at_point (AtkText      *text,
-                                 gint         x,
-                                 gint         y,
-                                AtkCoordType coords)
-{ 
-  GtkWidget *widget;
-  GtkWidget *label;
-  gint index, x_layout, y_layout;
-  const gchar *label_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-
-  label = get_label_from_button (widget, 0, FALSE);
-
-  if (!GTK_IS_LABEL(label))
-    return -1;
-  
-  gtk_label_get_layout_offsets (GTK_LABEL (label), &x_layout, &y_layout);
-  
-  index = gail_misc_get_index_at_point_in_layout (label, 
-                                              gtk_label_get_layout (GTK_LABEL (label)), 
-                                              x_layout, y_layout, x, y, coords);
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  if (index == -1)
-    {
-      if (coords == ATK_XY_WINDOW || coords == ATK_XY_SCREEN)
-        return g_utf8_strlen (label_text, -1);
-
-      return index;  
-    }
-  else
-    return g_utf8_pointer_to_offset (label_text, label_text + index);  
-}
-
-static AtkAttributeSet*
-gail_button_get_run_attributes (AtkText        *text,
-                                gint         offset,
-                                gint         *start_offset,
-                               gint          *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  AtkAttributeSet *at_set = NULL;
-  GtkJustification justify;
-  GtkTextDirection dir;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = get_label_from_button (widget, 0, FALSE);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-  
-  /* Get values set for entire label, if any */
-  justify = gtk_label_get_justify (GTK_LABEL (label));
-  if (justify != GTK_JUSTIFY_CENTER)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_JUSTIFICATION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_JUSTIFICATION, justify)));
-    }
-  dir = gtk_widget_get_direction (label);
-  if (dir == GTK_TEXT_DIR_RTL)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_DIRECTION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION, dir)));
-    }
-
-  at_set = gail_misc_layout_get_run_attributes (at_set,
-                                                gtk_label_get_layout (GTK_LABEL (label)),
-                                                (gchar *) gtk_label_get_text (GTK_LABEL (label)),
-                                                offset,
-                                                start_offset,
-                                                end_offset);
-  return at_set;
-}
-
-static AtkAttributeSet*
-gail_button_get_default_attributes (AtkText        *text)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  AtkAttributeSet *at_set = NULL;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = get_label_from_button (widget, 0, FALSE);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  at_set = gail_misc_get_default_attributes (at_set,
-                                             gtk_label_get_layout (GTK_LABEL (label)),
-                                             widget);
-  return at_set;
-}
-
-static gunichar 
-gail_button_get_character_at_offset (AtkText            *text,
-                                     gint               offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  const gchar *string;
-  gchar *index;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return '\0';
-
-  label = get_label_from_button (widget, 0, FALSE);
-
-  if (!GTK_IS_LABEL(label))
-    return '\0';
-  string = gtk_label_get_text (GTK_LABEL (label));
-  if (offset >= g_utf8_strlen (string, -1))
-    return '\0';
-  index = g_utf8_offset_to_pointer (string, offset);
-
-  return g_utf8_get_char (index);
-}
-
-static void
-gail_button_finalize (GObject            *object)
-{
-  GailButton *button = GAIL_BUTTON (object);
-
-  g_free (button->click_description);
-  g_free (button->press_description);
-  g_free (button->release_description);
-  g_free (button->click_keybinding);
-  if (button->action_idle_handler)
-    {
-      g_source_remove (button->action_idle_handler);
-      button->action_idle_handler = 0;
-    }
-  if (button->action_queue)
-    {
-      g_queue_free (button->action_queue);
-    }
-  if (button->textutil)
-    {
-      g_object_unref (button->textutil);
-    }
-  G_OBJECT_CLASS (gail_button_parent_class)->finalize (object);
-}
-
-static GtkWidget*
-find_label_child (GtkContainer *container,
-                  gint         *index,
-                  gboolean     allow_many)
-{
-  GList *children, *tmp_list;
-  GtkWidget *child;
-  children = gtk_container_get_children (container);
-
-  child = NULL;
-  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next) 
-    {
-      if (GTK_IS_LABEL (tmp_list->data))
-        {
-          if (!allow_many)
-            {
-              if (child)
-                {
-                  child = NULL;
-                  break;
-                }
-              child = GTK_WIDGET (tmp_list->data);
-            }
-          else
-            {
-              if (*index == 0)
-                {
-                  child = GTK_WIDGET (tmp_list->data);
-                  break;
-                }
-              (*index)--;
-           }
-        }
-       /*
-        * Label for button which are GtkTreeView column headers are in a 
-        * GtkHBox in a GtkAlignment.
-        */
-      else if (GTK_IS_ALIGNMENT (tmp_list->data))
-        {
-          GtkWidget *widget;
-
-          widget = gtk_bin_get_child (GTK_BIN (tmp_list->data));
-          if (GTK_IS_LABEL (widget))
-            {
-              if (!allow_many)
-                {
-                  if (child)
-                    {
-                      child = NULL;
-                      break;
-                    }
-                  child = widget;
-                }
-              else
-                {
-                  if (*index == 0)
-                    {
-                     child = widget;
-                      break;
-                    }
-                  (*index)--;
-               }
-           }
-        }
-      else if (GTK_IS_CONTAINER (tmp_list->data))
-        {
-          child = find_label_child (GTK_CONTAINER (tmp_list->data), index, allow_many);
-          if (child)
-            break;
-        } 
-    }
-  g_list_free (children);
-  return child;
-}
-
-static GtkWidget*
-get_label_from_button (GtkWidget *button,
-                       gint      index,
-                       gboolean  allow_many)
-{
-  GtkWidget *child;
-
-  if (index > 0 && !allow_many)
-    g_warning ("Inconsistent values passed to get_label_from_button");
-
-  child = gtk_bin_get_child (GTK_BIN (button));
-  if (GTK_IS_ALIGNMENT (child))
-    child = gtk_bin_get_child (GTK_BIN (child));
-
-  if (GTK_IS_CONTAINER (child))
-    child = find_label_child (GTK_CONTAINER (child), &index, allow_many);
-  else if (!GTK_IS_LABEL (child))
-    child = NULL;
-
-  return child;
-}
-
-static void
-count_labels (GtkContainer *container,
-              gint         *n_labels)
-{
-  GList *children, *tmp_list;
-  children = gtk_container_get_children (container);
-
-  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next) 
-    {
-      if (GTK_IS_LABEL (tmp_list->data))
-        {
-          (*n_labels)++;
-        }
-       /*
-        * Label for button which are GtkTreeView column headers are in a 
-        * GtkHBox in a GtkAlignment.
-        */
-      else if (GTK_IS_ALIGNMENT (tmp_list->data))
-        {
-          GtkWidget *widget;
-
-          widget = gtk_bin_get_child (GTK_BIN (tmp_list->data));
-          if (GTK_IS_LABEL (widget))
-            (*n_labels)++;
-        }
-      else if (GTK_IS_CONTAINER (tmp_list->data))
-        {
-          count_labels (GTK_CONTAINER (tmp_list->data), n_labels);
-        } 
-    }
-  g_list_free (children);
-}
-
-static gint
-get_n_labels_from_button (GtkWidget *button)
-{
-  GtkWidget *child;
-  gint n_labels;
-
-  n_labels = 0;
-
-  child = gtk_bin_get_child (GTK_BIN (button));
-  if (GTK_IS_ALIGNMENT (child))
-    child = gtk_bin_get_child (GTK_BIN (child));
-
-  if (GTK_IS_CONTAINER (child))
-    count_labels (GTK_CONTAINER (child), &n_labels);
-
-  return n_labels;
-}
-
-static void
-set_role_for_button (AtkObject *accessible,
-                     GtkWidget *button)
-{
-  GtkWidget *parent;
-  AtkRole role;
-
-  parent = gtk_widget_get_parent (button);
-  if (GTK_IS_TREE_VIEW (parent))
-    {
-      role = ATK_ROLE_TABLE_COLUMN_HEADER;
-      /*
-       * Even though the accessible parent of the column header will
-       * be reported as the table because the parent widget of the
-       * GtkTreeViewColumn's button is the GtkTreeView we set
-       * the accessible parent for column header to be the table
-       * to ensure that atk_object_get_index_in_parent() returns
-       * the correct value; see gail_widget_get_index_in_parent().
-       */
-      atk_object_set_parent (accessible, gtk_widget_get_accessible (parent));
-    }
-  else
-    role = ATK_ROLE_PUSH_BUTTON;
-
-  accessible->role =  role;
-}
-
-static gint
-get_n_attached_menus (GtkWidget  *widget)
-{
-  GList *list_menus;
-  
-  if (widget == NULL)
-    return 0;
-
-  list_menus = g_object_get_data (G_OBJECT (widget), GAIL_BUTTON_ATTACHED_MENUS);
-  if (list_menus == NULL)
-    return 0;
-
-  return g_list_length (list_menus);
-}
-
-static GtkWidget*
-get_nth_attached_menu (GtkWidget  *widget,
-                       gint       index)
-{
-  GtkWidget *attached_menu;
-  GList *list_menus;
-
-  if (widget == NULL)
-    return NULL;
-
-  list_menus = g_object_get_data (G_OBJECT (widget), GAIL_BUTTON_ATTACHED_MENUS);
-  if (list_menus == NULL ||
-      index >= g_list_length (list_menus))
-    return NULL;
-
-  attached_menu = (GtkWidget *) g_list_nth_data (list_menus, index);
-
-  return attached_menu;
-}
diff --git a/modules/other/gail/gailbutton.h b/modules/other/gail/gailbutton.h
deleted file mode 100644 (file)
index cf6d715..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_BUTTON_H__
-#define __GAIL_BUTTON_H__
-
-#include <gail/gailcontainer.h>
-#include <libgail-util/gailtextutil.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_BUTTON                     (gail_button_get_type ())
-#define GAIL_BUTTON(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_BUTTON, GailButton))
-#define GAIL_BUTTON_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_BUTTON, GailButtonClass))
-#define GAIL_IS_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_BUTTON))
-#define GAIL_IS_BUTTON_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_BUTTON))
-#define GAIL_BUTTON_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_BUTTON, GailButtonClass))
-
-typedef struct _GailButton                   GailButton;
-typedef struct _GailButtonClass              GailButtonClass;
-
-struct _GailButton
-{
-  GailContainer parent;
-
-  /*
-   * Cache the widget state so we know the previous state when it changed
-   */
-  gint8         state;
-
-  gchar         *click_description;
-  gchar         *press_description;
-  gchar         *release_description;
-  gchar         *click_keybinding;
-  guint         action_idle_handler;
-  GQueue        *action_queue;
-
-  GailTextUtil  *textutil;
-
-  gboolean     default_is_press;
-};
-
-GType gail_button_get_type (void);
-
-struct _GailButtonClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_BUTTON_H__ */
diff --git a/modules/other/gail/gailcalendar.h b/modules/other/gail/gailcalendar.h
deleted file mode 100644 (file)
index 5a99976..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_CALENDAR_H__
-#define __GAIL_CALENDAR_H__
-
-#include <gail/gailcontainer.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_CALENDAR                   (gail_calendar_get_type ())
-#define GAIL_CALENDAR(obj)                   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_CALENDAR, GailCalendar))
-#define GAIL_CALENDAR_CLASS(klass)           (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_CALENDAR, GailCalendarClass))
-#define GAIL_IS_CALENDAR(obj)                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_CALENDAR))
-#define GAIL_IS_CALENDAR_CLASS(klass)        (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_CALENDAR))
-#define GAIL_CALENDAR_GET_CLASS(obj)         (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_CALENDAR, GailCalendarClass))
-
-typedef struct _GailCalendar              GailCalendar;
-typedef struct _GailCalendarClass         GailCalendarClass;
-
-struct _GailCalendar
-{
-  GailWidget parent;
-};
-
-GType gail_calendar_get_type (void);
-
-struct _GailCalendarClass
-{
-  GailWidgetClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_CALENDAR_H__ */
diff --git a/modules/other/gail/gailcell.c b/modules/other/gail/gailcell.c
deleted file mode 100644 (file)
index 6aaee03..0000000
+++ /dev/null
@@ -1,526 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <stdlib.h>
-#include <gtk/gtk.h>
-#include "gailcontainercell.h"
-#include "gailcell.h"
-#include "gailcellparent.h"
-
-static void        gail_cell_class_init          (GailCellClass       *klass);
-static void         gail_cell_destroyed           (GtkWidget           *widget,
-                                                   GailCell            *cell);
-
-static void         gail_cell_init                (GailCell            *cell);
-static void         gail_cell_object_finalize     (GObject             *cell);
-static AtkStateSet* gail_cell_ref_state_set       (AtkObject           *obj);
-static gint         gail_cell_get_index_in_parent (AtkObject           *obj);
-
-/* AtkAction */
-
-static void         atk_action_interface_init 
-                                                  (AtkActionIface      *iface);
-static ActionInfo * _gail_cell_get_action_info    (GailCell            *cell,
-                                                  gint                index);
-static void         _gail_cell_destroy_action_info 
-                                                  (gpointer            data,
-                                                  gpointer            user_data);
-
-static gint         gail_cell_action_get_n_actions 
-                                                  (AtkAction           *action);
-static const gchar*
-                    gail_cell_action_get_name     (AtkAction           *action,
-                                                  gint                index);
-static const gchar *
-                    gail_cell_action_get_description 
-                                                  (AtkAction           *action,
-                                                  gint                index);
-static gboolean     gail_cell_action_set_description 
-                                                  (AtkAction           *action,
-                                                  gint                index,
-                                                  const gchar         *desc);
-static const gchar *
-                    gail_cell_action_get_keybinding 
-                                                  (AtkAction           *action,
-                                                  gint                index);
-static gboolean     gail_cell_action_do_action    (AtkAction           *action,
-                                                  gint                index);
-static gboolean     idle_do_action                (gpointer            data);
-
-static void         atk_component_interface_init  (AtkComponentIface   *iface);
-static void         gail_cell_get_extents         (AtkComponent        *component,
-                                                   gint                *x,
-                                                   gint                *y,
-                                                   gint                *width,
-                                                   gint                *height,
-                                                   AtkCoordType        coord_type);
-static gboolean     gail_cell_grab_focus         (AtkComponent        *component);
-
-G_DEFINE_TYPE_WITH_CODE (GailCell, gail_cell, ATK_TYPE_OBJECT,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init))
-
-static void     
-gail_cell_class_init (GailCellClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-  GObjectClass *g_object_class = G_OBJECT_CLASS (klass);
-
-  g_object_class->finalize = gail_cell_object_finalize;
-
-  class->get_index_in_parent = gail_cell_get_index_in_parent;
-  class->ref_state_set = gail_cell_ref_state_set;
-}
-
-void 
-gail_cell_initialise (GailCell  *cell,
-                      GtkWidget *widget,
-                      AtkObject *parent,
-                      gint      index)
-{
-  g_return_if_fail (GAIL_IS_CELL (cell));
-  g_return_if_fail (GTK_IS_WIDGET (widget));
-
-  cell->widget = widget;
-  atk_object_set_parent (ATK_OBJECT (cell), parent);
-  cell->index = index;
-
-  g_signal_connect_object (G_OBJECT (widget),
-                           "destroy",
-                           G_CALLBACK (gail_cell_destroyed ),
-                           cell, 0);
-}
-
-static void
-gail_cell_destroyed (GtkWidget       *widget,
-                     GailCell        *cell)
-{
-  /*
-   * This is the signal handler for the "destroy" signal for the 
-   * GtkWidget. We set the  pointer location to NULL;
-   */
-  cell->widget = NULL;
-}
-
-static void
-gail_cell_init (GailCell *cell)
-{
-  cell->state_set = atk_state_set_new ();
-  cell->widget = NULL;
-  cell->action_list = NULL;
-  cell->index = 0;
-  atk_state_set_add_state (cell->state_set, ATK_STATE_TRANSIENT);
-  atk_state_set_add_state (cell->state_set, ATK_STATE_ENABLED);
-  atk_state_set_add_state (cell->state_set, ATK_STATE_SENSITIVE);
-  atk_state_set_add_state (cell->state_set, ATK_STATE_SELECTABLE);
-  cell->refresh_index = NULL;
-}
-
-static void
-gail_cell_object_finalize (GObject *obj)
-{
-  GailCell *cell = GAIL_CELL (obj);
-  AtkRelationSet *relation_set;
-  AtkRelation *relation;
-  GPtrArray *target;
-  gpointer target_object;
-  gint i;
-
-  if (cell->state_set)
-    g_object_unref (cell->state_set);
-  if (cell->action_list)
-    {
-      g_list_foreach (cell->action_list, _gail_cell_destroy_action_info, NULL);
-      g_list_free (cell->action_list);
-    }
-  if (cell->action_idle_handler)
-    {
-      g_source_remove (cell->action_idle_handler);
-      cell->action_idle_handler = 0;
-    }
-  relation_set = atk_object_ref_relation_set (ATK_OBJECT (obj));
-  if (ATK_IS_RELATION_SET (relation_set))
-    {
-      relation = atk_relation_set_get_relation_by_type (relation_set, 
-                                                        ATK_RELATION_NODE_CHILD_OF);
-      if (relation)
-        {
-          target = atk_relation_get_target (relation);
-          for (i = 0; i < target->len; i++)
-            {
-              target_object = g_ptr_array_index (target, i);
-              if (GAIL_IS_CELL (target_object))
-                {
-                  g_object_unref (target_object);
-                }
-            }
-        }
-      g_object_unref (relation_set);
-    }
-  G_OBJECT_CLASS (gail_cell_parent_class)->finalize (obj);
-}
-
-static AtkStateSet *
-gail_cell_ref_state_set (AtkObject *obj)
-{
-  GailCell *cell = GAIL_CELL (obj);
-  g_assert (cell->state_set);
-
-  g_object_ref(cell->state_set);
-  return cell->state_set;
-}
-
-gboolean
-gail_cell_add_state (GailCell     *cell, 
-                     AtkStateType state_type,
-                     gboolean     emit_signal)
-{
-  if (!atk_state_set_contains_state (cell->state_set, state_type))
-    {
-      gboolean rc;
-      AtkObject *parent;
-    
-      rc = atk_state_set_add_state (cell->state_set, state_type);
-      /*
-       * The signal should only be generated if the value changed,
-       * not when the cell is set up.  So states that are set
-       * initially should pass FALSE as the emit_signal argument.
-       */
-
-      if (emit_signal)
-        {
-          atk_object_notify_state_change (ATK_OBJECT (cell), state_type, TRUE);
-          /* If state_type is ATK_STATE_VISIBLE, additional notification */
-          if (state_type == ATK_STATE_VISIBLE)
-            g_signal_emit_by_name (cell, "visible_data_changed");
-        }
-
-      /* 
-       * If the parent is a flyweight container cell, propagate the state 
-       * change to it also 
-       */
-
-      parent = atk_object_get_parent (ATK_OBJECT (cell));
-      if (GAIL_IS_CONTAINER_CELL (parent))
-        gail_cell_add_state (GAIL_CELL (parent), state_type, emit_signal);
-      return rc;
-    }
-  else
-    return FALSE;
-}
-
-gboolean
-gail_cell_remove_state (GailCell     *cell, 
-                        AtkStateType state_type,
-                        gboolean     emit_signal)
-{
-  if (atk_state_set_contains_state (cell->state_set, state_type))
-    {
-      gboolean rc;
-      AtkObject *parent;
-
-      parent = atk_object_get_parent (ATK_OBJECT (cell));
-
-      rc = atk_state_set_remove_state (cell->state_set, state_type);
-      /*
-       * The signal should only be generated if the value changed,
-       * not when the cell is set up.  So states that are set
-       * initially should pass FALSE as the emit_signal argument.
-       */
-
-      if (emit_signal)
-        {
-          atk_object_notify_state_change (ATK_OBJECT (cell), state_type, FALSE);
-          /* If state_type is ATK_STATE_VISIBLE, additional notification */
-          if (state_type == ATK_STATE_VISIBLE)
-            g_signal_emit_by_name (cell, "visible_data_changed");
-        }
-
-      /* 
-       * If the parent is a flyweight container cell, propagate the state 
-       * change to it also 
-       */
-
-      if (GAIL_IS_CONTAINER_CELL (parent))
-        gail_cell_remove_state (GAIL_CELL (parent), state_type, emit_signal);
-      return rc;
-    }
-  else
-    return FALSE;
-}
-
-static gint
-gail_cell_get_index_in_parent (AtkObject *obj)
-{
-  GailCell *cell;
-
-  g_assert (GAIL_IS_CELL (obj));
-
-  cell = GAIL_CELL (obj);
-  if (atk_state_set_contains_state (cell->state_set, ATK_STATE_STALE))
-    if (cell->refresh_index)
-      {
-        cell->refresh_index (cell);
-        atk_state_set_remove_state (cell->state_set, ATK_STATE_STALE);
-      }
-  return cell->index;
-}
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
-  iface->get_n_actions = gail_cell_action_get_n_actions;
-  iface->do_action = gail_cell_action_do_action;
-  iface->get_name = gail_cell_action_get_name;
-  iface->get_description = gail_cell_action_get_description;
-  iface->set_description = gail_cell_action_set_description;
-  iface->get_keybinding = gail_cell_action_get_keybinding;
-}
-
-gboolean
-gail_cell_add_action (GailCell    *cell,
-                     const gchar *action_name,
-                     const gchar *action_description,
-                     const gchar *action_keybinding,
-                     ACTION_FUNC action_func)
-{
-  ActionInfo *info;
-  g_return_val_if_fail (GAIL_IS_CELL (cell), FALSE);
-  info = g_new (ActionInfo, 1);
-
-  if (action_name != NULL)
-    info->name = g_strdup (action_name);
-  else
-    info->name = NULL;
-  if (action_description != NULL)
-    info->description = g_strdup (action_description);
-  else
-    info->description = NULL;
-  if (action_keybinding != NULL)
-    info->keybinding = g_strdup (action_keybinding);
-  else
-    info->keybinding = NULL;
-  info->do_action_func = action_func;
-
-  cell->action_list = g_list_append (cell->action_list, (gpointer) info);
-  return TRUE;
-}
-
-gboolean
-gail_cell_remove_action (GailCell *cell,
-                        gint     action_index)
-{
-  GList *list_node;
-
-  g_return_val_if_fail (GAIL_IS_CELL (cell), FALSE);
-  list_node = g_list_nth (cell->action_list, action_index);
-  if (!list_node)
-    return FALSE;
-  _gail_cell_destroy_action_info (list_node->data, NULL);
-  cell->action_list = g_list_remove_link (cell->action_list, list_node);
-  return TRUE;
-}
-
-
-gboolean
-gail_cell_remove_action_by_name (GailCell    *cell,
-                                const gchar *action_name)
-{
-  GList *list_node;
-  gboolean action_found= FALSE;
-  
-  g_return_val_if_fail (GAIL_IS_CELL (cell), FALSE);
-  for (list_node = cell->action_list; list_node && !action_found; 
-                    list_node = list_node->next)
-    {
-      if (!strcmp (((ActionInfo *)(list_node->data))->name, action_name))
-       {
-         action_found = TRUE;
-         break;
-       }
-    }
-  if (!action_found)
-    return FALSE;
-  _gail_cell_destroy_action_info (list_node->data, NULL);
-  cell->action_list = g_list_remove_link (cell->action_list, list_node);
-  return TRUE;
-}
-
-static ActionInfo *
-_gail_cell_get_action_info (GailCell *cell,
-                           gint     index)
-{
-  GList *list_node;
-
-  g_return_val_if_fail (GAIL_IS_CELL (cell), NULL);
-  if (cell->action_list == NULL)
-    return NULL;
-  list_node = g_list_nth (cell->action_list, index);
-  if (!list_node)
-    return NULL;
-  return (ActionInfo *) (list_node->data);
-}
-
-
-static void
-_gail_cell_destroy_action_info (gpointer action_info, 
-                                gpointer user_data)
-{
-  ActionInfo *info = (ActionInfo *)action_info;
-  g_assert (info != NULL);
-  g_free (info->name);
-  g_free (info->description);
-  g_free (info->keybinding);
-  g_free (info);
-}
-static gint
-gail_cell_action_get_n_actions (AtkAction *action)
-{
-  GailCell *cell = GAIL_CELL(action);
-  if (cell->action_list != NULL)
-    return g_list_length (cell->action_list);
-  else
-    return 0;
-}
-
-static const gchar *
-gail_cell_action_get_name (AtkAction *action,
-                          gint      index)
-{
-  GailCell *cell = GAIL_CELL(action);
-  ActionInfo *info = _gail_cell_get_action_info (cell, index);
-
-  if (info == NULL)
-    return NULL;
-  return info->name;
-}
-
-static const gchar *
-gail_cell_action_get_description (AtkAction *action,
-                                 gint      index)
-{
-  GailCell *cell = GAIL_CELL(action);
-  ActionInfo *info = _gail_cell_get_action_info (cell, index);
-
-  if (info == NULL)
-    return NULL;
-  return info->description;
-}
-
-static gboolean
-gail_cell_action_set_description (AtkAction   *action,
-                                 gint        index,
-                                 const gchar *desc)
-{
-  GailCell *cell = GAIL_CELL(action);
-  ActionInfo *info = _gail_cell_get_action_info (cell, index);
-
-  if (info == NULL)
-    return FALSE;
-  g_free (info->description);
-  info->description = g_strdup (desc);
-  return TRUE;
-}
-
-static const gchar *
-gail_cell_action_get_keybinding (AtkAction *action,
-                                gint      index)
-{
-  GailCell *cell = GAIL_CELL(action);
-  ActionInfo *info = _gail_cell_get_action_info (cell, index);
-  if (info == NULL)
-    return NULL;
-  return info->keybinding;
-}
-
-static gboolean
-gail_cell_action_do_action (AtkAction *action,
-                           gint      index)
-{
-  GailCell *cell = GAIL_CELL(action);
-  ActionInfo *info = _gail_cell_get_action_info (cell, index);
-  if (info == NULL)
-    return FALSE;
-  if (info->do_action_func == NULL)
-    return FALSE;
-  if (cell->action_idle_handler)
-    return FALSE;
-  cell->action_func = info->do_action_func;
-  cell->action_idle_handler = gdk_threads_add_idle (idle_do_action, cell);
-  return TRUE;
-}
-
-static gboolean
-idle_do_action (gpointer data)
-{
-  GailCell *cell;
-
-  cell = GAIL_CELL (data);
-  cell->action_idle_handler = 0;
-  cell->action_func (cell);
-
-  return FALSE;
-}
-
-static void
-atk_component_interface_init (AtkComponentIface *iface)
-{
-  iface->get_extents = gail_cell_get_extents;
-  iface->grab_focus = gail_cell_grab_focus;
-}
-
-static void 
-gail_cell_get_extents (AtkComponent *component,
-                       gint         *x,
-                       gint         *y,
-                       gint         *width,
-                       gint         *height,
-                       AtkCoordType coord_type)
-{
-  GailCell *gailcell;
-  AtkObject *cell_parent;
-
-  g_assert (GAIL_IS_CELL (component));
-
-  gailcell = GAIL_CELL (component);
-
-  cell_parent = gtk_widget_get_accessible (gailcell->widget);
-
-  gail_cell_parent_get_cell_extents (GAIL_CELL_PARENT (cell_parent), 
-                                   gailcell, x, y, width, height, coord_type);
-}
-
-static gboolean 
-gail_cell_grab_focus (AtkComponent *component)
-{
-  GailCell *gailcell;
-  AtkObject *cell_parent;
-
-  g_assert (GAIL_IS_CELL (component));
-
-  gailcell = GAIL_CELL (component);
-
-  cell_parent = gtk_widget_get_accessible (gailcell->widget);
-
-  return gail_cell_parent_grab_focus (GAIL_CELL_PARENT (cell_parent), 
-                                      gailcell);
-}
diff --git a/modules/other/gail/gailcell.h b/modules/other/gail/gailcell.h
deleted file mode 100644 (file)
index 9beb3b8..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_CELL_H__
-#define __GAIL_CELL_H__
-
-#include <atk/atk.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_CELL                           (gail_cell_get_type ())
-#define GAIL_CELL(obj)                           (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_CELL, GailCell))
-#define GAIL_CELL_CLASS(klass)                   (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_CELL, GailCellClass))
-#define GAIL_IS_CELL(obj)                        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_CELL))
-#define GAIL_IS_CELL_CLASS(klass)                (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_CELL))
-#define GAIL_CELL_GET_CLASS(obj)                 (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_CELL, GailCellClass))
-
-typedef struct _GailCell                  GailCell;
-typedef struct _GailCellClass             GailCellClass;
-typedef struct _ActionInfo ActionInfo;
-typedef void (*ACTION_FUNC) (GailCell *cell);
-  
-struct _GailCell
-{
-  AtkObject parent;
-
-  GtkWidget    *widget;
-  /*
-   * This cached value is used only by atk_object_get_index_in_parent()
-   * which updates the value when it is stale.
-   */
-  gint         index;
-  AtkStateSet *state_set;
-  GList       *action_list;
-  void (*refresh_index) (GailCell *cell);
-  gint         action_idle_handler;
-  ACTION_FUNC  action_func;
-};
-
-GType gail_cell_get_type (void);
-
-struct _GailCellClass
-{
-  AtkObjectClass parent_class;
-};
-
-struct _ActionInfo {
-  gchar *name;
-  gchar *description;
-  gchar *keybinding;
-  ACTION_FUNC do_action_func;
-};
-
-void      gail_cell_initialise           (GailCell        *cell,
-                                          GtkWidget       *widget, 
-                                          AtkObject       *parent,
-                                         gint            index);
-
-gboolean gail_cell_add_state             (GailCell        *cell,
-                                          AtkStateType    state_type,
-                                          gboolean        emit_signal);
-
-gboolean gail_cell_remove_state          (GailCell        *cell,
-                                          AtkStateType    state_type,
-                                          gboolean        emit_signal);
-
-gboolean gail_cell_add_action            (GailCell        *cell,
-                                         const gchar     *action_name,
-                                         const gchar     *action_description,
-                                         const gchar     *action_keybinding,
-                                         ACTION_FUNC     action_func);
-
-gboolean gail_cell_remove_action         (GailCell        *cell,
-                                          gint            action_id);
-
-gboolean gail_cell_remove_action_by_name (GailCell        *cell,
-                                          const gchar     *action_name);
-
-G_END_DECLS
-
-#endif /* __GAIL_CELL_H__ */
diff --git a/modules/other/gail/gailcellparent.c b/modules/other/gail/gailcellparent.c
deleted file mode 100644 (file)
index 883b719..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
-
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailcellparent.h"
-
-GType
-gail_cell_parent_get_type (void)
-{
-  static volatile gsize g_define_type_id__volatile = 0;
-
-  if (g_once_init_enter (&g_define_type_id__volatile))
-    {
-      GType g_define_type_id =
-        g_type_register_static_simple (G_TYPE_INTERFACE,
-                                       "GailCellParent",
-                                       sizeof (GailCellParentIface),
-                                       NULL,
-                                       0,
-                                       NULL,
-                                       0);
-
-      g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);
-    }
-
-  return g_define_type_id__volatile;
-}
-
-/**
- * gail_cell_parent_get_cell_extents:
- * @parent: a #GObject instance that implements GailCellParentIface
- * @cell: a #GailCell whose extents is required
- * @x: address of #gint to put x coordinate
- * @y: address of #gint to put y coordinate
- * @width: address of #gint to put width
- * @height: address of #gint to put height
- * @coord_type: specifies whether the coordinates are relative to the screen
- * or to the components top level window
- *
- * Gets the rectangle which gives the extent of the @cell.
- *
- **/
-void
-gail_cell_parent_get_cell_extents (GailCellParent *parent,
-                                   GailCell       *cell,
-                                   gint           *x,
-                                   gint           *y,
-                                   gint           *width,
-                                   gint           *height,
-                                   AtkCoordType   coord_type)
-{
-  GailCellParentIface *iface;
-
-  g_return_if_fail (GAIL_IS_CELL_PARENT (parent));
-
-  iface = GAIL_CELL_PARENT_GET_IFACE (parent);
-
-  if (iface->get_cell_extents)
-    (iface->get_cell_extents) (parent, cell, x, y, width, height, coord_type);
-}
-
-/**
- * gail_cell_parent_get_cell_area:
- * @parent: a #GObject instance that implements GailCellParentIface
- * @cell: a #GailCell whose area is required
- * @cell_rect: address of #GdkRectangle to put the cell area
- *
- * Gets the cell area of the @cell.
- *
- **/
-void
-gail_cell_parent_get_cell_area (GailCellParent *parent,
-                                GailCell       *cell,
-                                GdkRectangle   *cell_rect)
-{
-  GailCellParentIface *iface;
-
-  g_return_if_fail (GAIL_IS_CELL_PARENT (parent));
-  g_return_if_fail (cell_rect);
-
-  iface = GAIL_CELL_PARENT_GET_IFACE (parent);
-
-  if (iface->get_cell_area)
-    (iface->get_cell_area) (parent, cell, cell_rect);
-}
-/**
- * gail_cell_parent_grab_focus:
- * @parent: a #GObject instance that implements GailCellParentIface
- * @cell: a #GailCell whose area is required
- *
- * Puts focus in the specified cell.
- *
- **/
-gboolean
-gail_cell_parent_grab_focus (GailCellParent *parent,
-                             GailCell       *cell)
-{
-  GailCellParentIface *iface;
-
-  g_return_val_if_fail (GAIL_IS_CELL_PARENT (parent), FALSE);
-
-  iface = GAIL_CELL_PARENT_GET_IFACE (parent);
-
-  if (iface->grab_focus)
-    return (iface->grab_focus) (parent, cell);
-  else
-    return FALSE;
-}
diff --git a/modules/other/gail/gailcellparent.h b/modules/other/gail/gailcellparent.h
deleted file mode 100644 (file)
index ba750ef..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- *
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_CELL_PARENT_H__
-#define __GAIL_CELL_PARENT_H__
-
-#include <atk/atk.h>
-#include <gail/gailcell.h>
-
-G_BEGIN_DECLS
-
-/*
- * The GailCellParent interface should be supported by any object which
- * contains children which are flyweights, i.e. do not have corresponding
- * widgets and the children need help from their parent to provide
- * functionality. One example is GailTreeView where the children GailCell
- * need help from the GailTreeView in order to implement 
- * atk_component_get_extents
- */
-
-#define GAIL_TYPE_CELL_PARENT            (gail_cell_parent_get_type ())
-#define GAIL_IS_CELL_PARENT(obj)         G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_CELL_PARENT)
-#define GAIL_CELL_PARENT(obj)            G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_CELL_PARENT, GailCellParent)
-#define GAIL_CELL_PARENT_GET_IFACE(obj)  (G_TYPE_INSTANCE_GET_INTERFACE ((obj), GAIL_TYPE_CELL_PARENT, GailCellParentIface))
-
-#ifndef _TYPEDEF_GAIL_CELL_PARENT_
-#define _TYPEDEF_GAIL_CELL_PARENT_
-typedef struct _GailCellParent GailCellParent;
-#endif
-typedef struct _GailCellParentIface GailCellParentIface;
-
-struct _GailCellParentIface
-{
-  GTypeInterface parent;
-  void                  ( *get_cell_extents)      (GailCellParent        *parent,
-                                                   GailCell              *cell,
-                                                   gint                  *x,
-                                                   gint                  *y,
-                                                   gint                  *width,
-                                                   gint                  *height,
-                                                   AtkCoordType          coord_type);
-  void                  ( *get_cell_area)         (GailCellParent        *parent,
-                                                   GailCell              *cell,
-                                                   GdkRectangle          *cell_rect);
-  gboolean              ( *grab_focus)            (GailCellParent        *parent,
-                                                   GailCell              *cell);
-};
-
-GType  gail_cell_parent_get_type               (void);
-
-void   gail_cell_parent_get_cell_extents       (GailCellParent        *parent,
-                                                GailCell              *cell,
-                                                gint                  *x,
-                                                gint                  *y,
-                                                gint                  *width,
-                                                gint                  *height,
-                                                AtkCoordType          coord_type
-);
-void  gail_cell_parent_get_cell_area           (GailCellParent        *parent,
-                                                GailCell              *cell,
-                                                GdkRectangle          *cell_rect);
-gboolean gail_cell_parent_grab_focus           (GailCellParent        *parent,
-                                                GailCell              *cell);
-
-G_END_DECLS
-
-#endif /* __GAIL_CELL_PARENT_H__ */
diff --git a/modules/other/gail/gailcheckmenuitem.c b/modules/other/gail/gailcheckmenuitem.c
deleted file mode 100644 (file)
index 52b588f..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include "gailcheckmenuitem.h"
-#include "gailchecksubmenuitem.h"
-
-static void      gail_check_menu_item_class_init        (GailCheckMenuItemClass *klass);
-
-static void      gail_check_menu_item_init              (GailCheckMenuItem      *item);
-
-static void      gail_check_menu_item_toggled_gtk       (GtkWidget              *widget);
-
-static void      gail_check_menu_item_real_notify_gtk   (GObject                *obj,
-                                                         GParamSpec             *pspec);
-
-static void      gail_check_menu_item_real_initialize   (AtkObject              *obj,
-                                                         gpointer               data);
-
-static AtkStateSet* gail_check_menu_item_ref_state_set  (AtkObject              *accessible);
-
-G_DEFINE_TYPE (GailCheckMenuItem, gail_check_menu_item, GAIL_TYPE_MENU_ITEM)
-
-static void
-gail_check_menu_item_class_init (GailCheckMenuItemClass *klass)
-{
-  GailWidgetClass *widget_class;
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  widget_class = (GailWidgetClass*)klass;
-  widget_class->notify_gtk = gail_check_menu_item_real_notify_gtk;
-
-  class->ref_state_set = gail_check_menu_item_ref_state_set;
-  class->initialize = gail_check_menu_item_real_initialize;
-}
-
-static void
-gail_check_menu_item_init (GailCheckMenuItem *item)
-{
-}
-
-AtkObject* 
-gail_check_menu_item_new (GtkWidget *widget)
-{
-  GObject *object;
-  AtkObject *accessible;
-
-  g_return_val_if_fail (GTK_IS_CHECK_MENU_ITEM (widget), NULL);
-
-  if (gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget)))
-    return gail_check_sub_menu_item_new (widget);
-
-  object = g_object_new (GAIL_TYPE_CHECK_MENU_ITEM, NULL);
-
-  accessible = ATK_OBJECT (object);
-  atk_object_initialize (accessible, widget);
-  return accessible;
-}
-
-static void
-gail_check_menu_item_real_initialize (AtkObject *obj,
-                                      gpointer  data)
-{
-  ATK_OBJECT_CLASS (gail_check_menu_item_parent_class)->initialize (obj, data);
-
-  g_signal_connect (data,
-                    "toggled",
-                    G_CALLBACK (gail_check_menu_item_toggled_gtk),
-                    NULL);
-
-  obj->role = ATK_ROLE_CHECK_MENU_ITEM;
-}
-
-static void
-gail_check_menu_item_toggled_gtk (GtkWidget       *widget)
-{
-  AtkObject *accessible;
-  GtkCheckMenuItem *check_menu_item;
-
-  check_menu_item = GTK_CHECK_MENU_ITEM (widget);
-
-  accessible = gtk_widget_get_accessible (widget);
-  atk_object_notify_state_change (accessible, ATK_STATE_CHECKED, 
-                                  gtk_check_menu_item_get_active (check_menu_item));
-} 
-
-static AtkStateSet*
-gail_check_menu_item_ref_state_set (AtkObject *accessible)
-{
-  AtkStateSet *state_set;
-  GtkCheckMenuItem *check_menu_item;
-  GtkWidget *widget;
-
-  state_set = ATK_OBJECT_CLASS (gail_check_menu_item_parent_class)->ref_state_set (accessible);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  if (widget == NULL)
-    return state_set;
-
-  check_menu_item = GTK_CHECK_MENU_ITEM (widget);
-
-  if (gtk_check_menu_item_get_active (check_menu_item))
-    atk_state_set_add_state (state_set, ATK_STATE_CHECKED);
-
-  if (gtk_check_menu_item_get_inconsistent (check_menu_item))
-    {
-      atk_state_set_remove_state (state_set, ATK_STATE_ENABLED);
-      atk_state_set_add_state (state_set, ATK_STATE_INDETERMINATE);
-    }
-  return state_set;
-}
-
-static void
-gail_check_menu_item_real_notify_gtk (GObject           *obj,
-                                    GParamSpec        *pspec)
-{
-  GtkCheckMenuItem *check_menu_item = GTK_CHECK_MENU_ITEM (obj);
-  AtkObject *atk_obj;
-  gboolean sensitive;
-  gboolean inconsistent;
-
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (check_menu_item));
-  sensitive = gtk_widget_get_sensitive (GTK_WIDGET (check_menu_item));
-  inconsistent = gtk_check_menu_item_get_inconsistent (check_menu_item);
-
-  if (strcmp (pspec->name, "inconsistent") == 0)
-    {
-      atk_object_notify_state_change (atk_obj, ATK_STATE_INDETERMINATE, inconsistent);
-      atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, (sensitive && !inconsistent));
-    }
-  else if (strcmp (pspec->name, "sensitive") == 0)
-    {
-      /* Need to override gailwidget behavior of notifying for ENABLED */
-      atk_object_notify_state_change (atk_obj, ATK_STATE_SENSITIVE, sensitive);
-      atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, (sensitive && !inconsistent));
-    }
-  else
-    GAIL_WIDGET_CLASS (gail_check_menu_item_parent_class)->notify_gtk (obj, pspec);
-}
diff --git a/modules/other/gail/gailcheckmenuitem.h b/modules/other/gail/gailcheckmenuitem.h
deleted file mode 100644 (file)
index e78d38f..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2002 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_CHECK_MENU_ITEM_H__
-#define __GAIL_CHECK_MENU_ITEM_H__
-
-#include <gail/gailmenuitem.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_CHECK_MENU_ITEM              (gail_check_menu_item_get_type ())
-#define GAIL_CHECK_MENU_ITEM(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_CHECK_MENU_ITEM, GailCheckMenuItem))
-#define GAIL_CHECK_MENU_ITEM_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_CHECK_MENU_ITEM, GailCheckMenuItemClass))
-#define GAIL_IS_CHECK_MENU_ITEM(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_CHECK_MENU_ITEM))
-#define GAIL_IS_CHECK_MENU_ITEM_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_CHECK_MENU_ITEM))
-#define GAIL_CHECK_MENU_ITEM_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_CHECK_MENU_ITEM, GailCheckMenuItemClass))
-
-typedef struct _GailCheckMenuItem              GailCheckMenuItem;
-typedef struct _GailCheckMenuItemClass         GailCheckMenuItemClass;
-
-struct _GailCheckMenuItem
-{
-  GailMenuItem parent;
-};
-
-GType gail_check_menu_item_get_type (void);
-
-struct _GailCheckMenuItemClass
-{
-  GailMenuItemClass parent_class;
-};
-
-AtkObject* gail_check_menu_item_new (GtkWidget *widget);
-
-G_END_DECLS
-
-#endif /* __GAIL_CHECK_MENU_ITEM_H__ */
diff --git a/modules/other/gail/gailchecksubmenuitem.h b/modules/other/gail/gailchecksubmenuitem.h
deleted file mode 100644 (file)
index c77bd66..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2002 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_CHECK_SUB_MENU_ITEM_H__
-#define __GAIL_CHECK_SUB_MENU_ITEM_H__
-
-#include <gail/gailsubmenuitem.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_CHECK_SUB_MENU_ITEM              (gail_check_sub_menu_item_get_type ())
-#define GAIL_CHECK_SUB_MENU_ITEM(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_CHECK_SUB_MENU_ITEM, GailCheckSubMenuItem))
-#define GAIL_CHECK_SUB_MENU_ITEM_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_CHECK_SUB_MENU_ITEM, GailCheckSubMenuItemClass))
-#define GAIL_IS_CHECK_SUB_MENU_ITEM(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_CHECK_SUB_MENU_ITEM))
-#define GAIL_IS_CHECK_SUB_MENU_ITEM_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_CHECK_SUB_MENU_ITEM))
-#define GAIL_CHECK_SUB_MENU_ITEM_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_CHECK_SUB_MENU_ITEM, GailCheckSubMenuItemClass))
-
-typedef struct _GailCheckSubMenuItem              GailCheckSubMenuItem;
-typedef struct _GailCheckSubMenuItemClass         GailCheckSubMenuItemClass;
-
-struct _GailCheckSubMenuItem
-{
-  GailSubMenuItem parent;
-};
-
-GType gail_check_sub_menu_item_get_type (void);
-
-struct _GailCheckSubMenuItemClass
-{
-  GailSubMenuItemClass parent_class;
-};
-
-AtkObject* gail_check_sub_menu_item_new (GtkWidget *widget);
-
-G_END_DECLS
-
-#endif /* __GAIL_CHECK_SUB_MENU_ITEM_H__ */
diff --git a/modules/other/gail/gailcombobox.c b/modules/other/gail/gailcombobox.c
deleted file mode 100644 (file)
index 8c78337..0000000
+++ /dev/null
@@ -1,589 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2004 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-#include "gailcombobox.h"
-
-static void         gail_combo_box_class_init              (GailComboBoxClass *klass);
-static void         gail_combo_box_init                    (GailComboBox      *combo_box);
-static void         gail_combo_box_real_initialize         (AtkObject      *obj,
-                                                            gpointer       data);
-
-static void         gail_combo_box_changed_gtk             (GtkWidget      *widget);
-
-static const gchar* gail_combo_box_get_name       (AtkObject      *obj);
-static gint         gail_combo_box_get_n_children          (AtkObject      *obj);
-static AtkObject*   gail_combo_box_ref_child               (AtkObject      *obj,
-                                                            gint           i);
-static void         gail_combo_box_finalize                (GObject        *object);
-static void         atk_action_interface_init              (AtkActionIface *iface);
-
-static gboolean     gail_combo_box_do_action               (AtkAction      *action,
-                                                            gint           i);
-static gboolean     idle_do_action                         (gpointer       data);
-static gint         gail_combo_box_get_n_actions           (AtkAction      *action);
-static const gchar* gail_combo_box_get_description(AtkAction      *action,
-                                                            gint           i);
-static const gchar* gail_combo_box_get_keybinding   (AtkAction       *action,
-                                                            gint            i);
-static const gchar* gail_combo_box_action_get_name(AtkAction      *action,
-                                                            gint           i);
-static gboolean              gail_combo_box_set_description(AtkAction      *action,
-                                                            gint           i,
-                                                            const gchar    *desc);
-static void         atk_selection_interface_init           (AtkSelectionIface *iface);
-static gboolean     gail_combo_box_add_selection           (AtkSelection   *selection,
-                                                            gint           i);
-static gboolean     gail_combo_box_clear_selection         (AtkSelection   *selection);
-static AtkObject*   gail_combo_box_ref_selection           (AtkSelection   *selection,
-                                                            gint           i);
-static gint         gail_combo_box_get_selection_count     (AtkSelection   *selection);
-static gboolean     gail_combo_box_is_child_selected       (AtkSelection   *selection,
-                                                            gint           i);
-static gboolean     gail_combo_box_remove_selection        (AtkSelection   *selection,
-                                                            gint           i);
-
-G_DEFINE_TYPE_WITH_CODE (GailComboBox, gail_combo_box, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
-
-static void
-gail_combo_box_class_init (GailComboBoxClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  gobject_class->finalize = gail_combo_box_finalize;
-
-  class->get_name = gail_combo_box_get_name;
-  class->get_n_children = gail_combo_box_get_n_children;
-  class->ref_child = gail_combo_box_ref_child;
-  class->initialize = gail_combo_box_real_initialize;
-}
-
-static void
-gail_combo_box_init (GailComboBox      *combo_box)
-{
-  combo_box->press_description = NULL;
-  combo_box->press_keybinding = NULL;
-  combo_box->old_selection = -1;
-  combo_box->name = NULL;
-  combo_box->popup_set = FALSE;
-}
-
-static void
-gail_combo_box_real_initialize (AtkObject *obj,
-                                gpointer  data)
-{
-  GtkComboBox *combo_box;
-  GailComboBox *gail_combo_box;
-  AtkObject *popup;
-
-  ATK_OBJECT_CLASS (gail_combo_box_parent_class)->initialize (obj, data);
-
-  combo_box = GTK_COMBO_BOX (data);
-
-  gail_combo_box = GAIL_COMBO_BOX (obj);
-
-  g_signal_connect (combo_box,
-                    "changed",
-                    G_CALLBACK (gail_combo_box_changed_gtk),
-                    NULL);
-  gail_combo_box->old_selection = gtk_combo_box_get_active (combo_box);
-
-  popup = gtk_combo_box_get_popup_accessible (combo_box);
-  if (popup)
-    {
-      atk_object_set_parent (popup, obj);
-      gail_combo_box->popup_set = TRUE;
-    }
-  if (gtk_combo_box_get_has_entry (combo_box))
-    atk_object_set_parent (gtk_widget_get_accessible (gtk_bin_get_child (GTK_BIN (combo_box))), obj);
-
-  obj->role = ATK_ROLE_COMBO_BOX;
-}
-
-static void
-gail_combo_box_changed_gtk (GtkWidget *widget)
-{
-  GtkComboBox *combo_box;
-  AtkObject *obj;
-  GailComboBox *gail_combo_box;
-  gint index;
-
-  combo_box = GTK_COMBO_BOX (widget);
-
-  index = gtk_combo_box_get_active (combo_box);
-  obj = gtk_widget_get_accessible (widget);
-  gail_combo_box = GAIL_COMBO_BOX (obj);
-  if (gail_combo_box->old_selection != index)
-    {
-      gail_combo_box->old_selection = index;
-      g_object_notify (G_OBJECT (obj), "accessible-name");
-      g_signal_emit_by_name (obj, "selection_changed");
-    }
-}
-
-static const gchar*
-gail_combo_box_get_name (AtkObject *obj)
-{
-  GtkWidget *widget;
-  GtkComboBox *combo_box;
-  GailComboBox *gail_combo_box;
-  GtkTreeIter iter;
-  const gchar *name;
-  GtkTreeModel *model;
-  gint n_columns;
-  gint i;
-
-  g_return_val_if_fail (GAIL_IS_COMBO_BOX (obj), NULL);
-
-  name = ATK_OBJECT_CLASS (gail_combo_box_parent_class)->get_name (obj);
-  if (name)
-    return name;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return NULL;
-
-  combo_box = GTK_COMBO_BOX (widget);
-  gail_combo_box = GAIL_COMBO_BOX (obj);
-  if (gtk_combo_box_get_active_iter (combo_box, &iter))
-    {
-      model = gtk_combo_box_get_model (combo_box);
-      n_columns = gtk_tree_model_get_n_columns (model);
-      for (i = 0; i < n_columns; i++)
-        {
-          GValue value = { 0, };
-
-          gtk_tree_model_get_value (model, &iter, i, &value);
-          if (G_VALUE_HOLDS_STRING (&value))
-            {
-             if (gail_combo_box->name) g_free (gail_combo_box->name);
-              gail_combo_box->name =  g_strdup ((gchar *) 
-                                               g_value_get_string (&value));
-             g_value_unset (&value);
-              break;
-            }
-         else
-           g_value_unset (&value);
-        }
-    }
-  return gail_combo_box->name;
-}
-
-/*
- * The children of a GailComboBox are the list of items and the entry field
- * if it is editable.
- */
-static gint
-gail_combo_box_get_n_children (AtkObject* obj)
-{
-  gint n_children = 0;
-  GtkWidget *widget;
-
-  g_return_val_if_fail (GAIL_IS_COMBO_BOX (obj), 0);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return 0;
-
-  n_children++;
-  if (gtk_combo_box_get_has_entry (GTK_COMBO_BOX (widget)))
-    n_children ++;
-
-  return n_children;
-}
-
-static AtkObject*
-gail_combo_box_ref_child (AtkObject *obj,
-                          gint      i)
-{
-  GtkWidget *widget;
-  AtkObject *child;
-  GailComboBox *box;
-
-  g_return_val_if_fail (GAIL_IS_COMBO_BOX (obj), NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return NULL;
-
-  if (i == 0)
-    {
-      child = gtk_combo_box_get_popup_accessible (GTK_COMBO_BOX (widget));
-      box = GAIL_COMBO_BOX (obj);
-      if (box->popup_set == FALSE)
-        {
-          atk_object_set_parent (child, obj);
-          box->popup_set = TRUE;
-        }
-    }
-  else if (i == 1 && gtk_combo_box_get_has_entry (GTK_COMBO_BOX (widget)))
-    {
-      child = gtk_widget_get_accessible (gtk_bin_get_child (GTK_BIN (widget)));
-    }
-  else
-    {
-      return NULL;
-    }
-  return g_object_ref (child);
-}
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
-  iface->do_action = gail_combo_box_do_action;
-  iface->get_n_actions = gail_combo_box_get_n_actions;
-  iface->get_description = gail_combo_box_get_description;
-  iface->get_keybinding = gail_combo_box_get_keybinding;
-  iface->get_name = gail_combo_box_action_get_name;
-  iface->set_description = gail_combo_box_set_description;
-}
-
-static gboolean
-gail_combo_box_do_action (AtkAction *action,
-                          gint      i)
-{
-  GailComboBox *combo_box;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-
-  if (!gtk_widget_get_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  combo_box = GAIL_COMBO_BOX (action);
-  if (i == 0)
-    {
-      if (combo_box->action_idle_handler)
-        return FALSE;
-
-      combo_box->action_idle_handler = gdk_threads_add_idle (idle_do_action, combo_box);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static gboolean
-idle_do_action (gpointer data)
-{
-  GtkComboBox *combo_box;
-  GtkWidget *widget;
-  GailComboBox *gail_combo_box;
-  AtkObject *popup;
-  gboolean do_popup;
-
-  gail_combo_box = GAIL_COMBO_BOX (data);
-  gail_combo_box->action_idle_handler = 0;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (gail_combo_box));
-
-  if (widget == NULL || /* State is defunct */
-      !gtk_widget_get_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  combo_box = GTK_COMBO_BOX (widget);
-
-  popup = gtk_combo_box_get_popup_accessible (combo_box);
-  do_popup = !gtk_widget_get_mapped (gtk_accessible_get_widget (GTK_ACCESSIBLE (popup)));
-  if (do_popup)
-      gtk_combo_box_popup (combo_box);
-  else
-      gtk_combo_box_popdown (combo_box);
-
-  return FALSE;
-}
-
-static gint
-gail_combo_box_get_n_actions (AtkAction *action)
-{
-  /*
-   * The default behavior of a combo_box box is to have one action -
-   */
-  return 1;
-}
-
-static const gchar*
-gail_combo_box_get_description (AtkAction *action,
-                           gint      i)
-{
-  if (i == 0)
-    {
-      GailComboBox *combo_box;
-
-      combo_box = GAIL_COMBO_BOX (action);
-      return combo_box->press_description;
-    }
-  else
-    return NULL;
-}
-
-static const gchar*
-gail_combo_box_get_keybinding (AtkAction *action,
-                                   gint      i)
-{
-  GailComboBox *combo_box;
-  gchar *return_value = NULL;
-  switch (i)
-  {
-     case 0:
-      {
-         GtkWidget *widget;
-         GtkWidget *label;
-         AtkRelationSet *set;
-         AtkRelation *relation;
-         GPtrArray *target;
-         gpointer target_object;
-         guint key_val;
-
-         combo_box = GAIL_COMBO_BOX (action);
-          widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (combo_box));
-         if (widget == NULL)
-             return NULL;
-         set = atk_object_ref_relation_set (ATK_OBJECT (action));
-         if (!set)
-             return NULL;
-         label = NULL;
-         relation = atk_relation_set_get_relation_by_type (set, ATK_RELATION_LABELLED_BY);
-         if (relation)
-         {
-            target = atk_relation_get_target (relation);
-            target_object = g_ptr_array_index (target, 0);
-             widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (target_object));
-         }
-         g_object_unref (set);
-         if (GTK_IS_LABEL (label))
-         {
-             key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label));
-            if (key_val != GDK_KEY_VoidSymbol)
-             return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
-         }
-          g_free (combo_box->press_keybinding);
-          combo_box->press_keybinding = return_value;
-          break;
-       }
-    default:
-          break;
-  }
-  return return_value;
-}
-
-
-static const gchar*
-gail_combo_box_action_get_name (AtkAction *action,
-                                gint      i)
-{
-  if (i == 0)
-    return "press";
-  else
-    return NULL;
-}
-
-static gboolean
-gail_combo_box_set_description (AtkAction   *action,
-                                gint        i,
-                                const gchar *desc)
-{
-  if (i == 0)
-    {
-      GailComboBox *combo_box;
-
-      combo_box = GAIL_COMBO_BOX (action);
-      g_free (combo_box->press_description);
-      combo_box->press_description = g_strdup (desc);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static void
-atk_selection_interface_init (AtkSelectionIface *iface)
-{
-  iface->add_selection = gail_combo_box_add_selection;
-  iface->clear_selection = gail_combo_box_clear_selection;
-  iface->ref_selection = gail_combo_box_ref_selection;
-  iface->get_selection_count = gail_combo_box_get_selection_count;
-  iface->is_child_selected = gail_combo_box_is_child_selected;
-  iface->remove_selection = gail_combo_box_remove_selection;
-  /*
-   * select_all_selection does not make sense for a combo_box
-   * so no implementation is provided.
-   */
-}
-
-static gboolean
-gail_combo_box_add_selection (AtkSelection *selection,
-                              gint         i)
-{
-  GtkComboBox *combo_box;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-
-  combo_box = GTK_COMBO_BOX (widget);
-
-  gtk_combo_box_set_active (combo_box, i);
-  return TRUE;
-}
-
-static gboolean 
-gail_combo_box_clear_selection (AtkSelection *selection)
-{
-  GtkComboBox *combo_box;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-
-  combo_box = GTK_COMBO_BOX (widget);
-
-  gtk_combo_box_set_active (combo_box, -1);
-  return TRUE;
-}
-
-static AtkObject*
-gail_combo_box_ref_selection (AtkSelection *selection,
-                              gint         i)
-{
-  GtkComboBox *combo_box;
-  GtkWidget *widget;
-  AtkObject *obj;
-  gint index;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return NULL;
-
-  combo_box = GTK_COMBO_BOX (widget);
-
-  /*
-   * A combo_box box can have only one selection.
-   */
-  if (i != 0)
-    return NULL;
-
-  obj = gtk_combo_box_get_popup_accessible (combo_box);
-  index = gtk_combo_box_get_active (combo_box);
-  return atk_object_ref_accessible_child (obj, index);
-}
-
-static gint
-gail_combo_box_get_selection_count (AtkSelection *selection)
-{
-  GtkComboBox *combo_box;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return 0;
-
-  combo_box = GTK_COMBO_BOX (widget);
-
-  return (gtk_combo_box_get_active (combo_box) == -1) ? 0 : 1;
-}
-
-static gboolean
-gail_combo_box_is_child_selected (AtkSelection *selection,
-                                  gint         i)
-{
-  GtkComboBox *combo_box;
-  gint j;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-
-  combo_box = GTK_COMBO_BOX (widget);
-
-  j = gtk_combo_box_get_active (combo_box);
-
-  return (j == i);
-}
-
-static gboolean
-gail_combo_box_remove_selection (AtkSelection *selection,
-                                 gint         i)
-{
-  if (atk_selection_is_child_selected (selection, i))
-    atk_selection_clear_selection (selection);
-
-  return TRUE;
-}
-
-static void
-gail_combo_box_finalize (GObject *object)
-{
-  GailComboBox *combo_box = GAIL_COMBO_BOX (object);
-
-  g_free (combo_box->press_description);
-  g_free (combo_box->press_keybinding);
-  g_free (combo_box->name);
-  if (combo_box->action_idle_handler)
-    {
-      g_source_remove (combo_box->action_idle_handler);
-      combo_box->action_idle_handler = 0;
-    }
-  G_OBJECT_CLASS (gail_combo_box_parent_class)->finalize (object);
-}
diff --git a/modules/other/gail/gailcombobox.h b/modules/other/gail/gailcombobox.h
deleted file mode 100644 (file)
index be8eae9..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2004 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_COMBO_BOX_H__
-#define __GAIL_COMBO_BOX_H__
-
-#include <gail/gailcontainer.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_COMBO_BOX                      (gail_combo_box_get_type ())
-#define GAIL_COMBO_BOX(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_COMBO_BOX, GailComboBox))
-#define GAIL_COMBO_BOX_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_COMBO_BOX, GailComboBoxClass))
-#define GAIL_IS_COMBO_BOX(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_COMBO_BOX))
-#define GAIL_IS_COMBO_BOX_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_COMBO_BOX))
-#define GAIL_COMBO_BOX_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_COMBO_BOX, GailComboBoxClass))
-
-typedef struct _GailComboBox              GailComboBox;
-typedef struct _GailComboBoxClass         GailComboBoxClass;
-
-struct _GailComboBox
-{
-  GailContainer parent;
-
-  gchar         *press_keybinding;
-  gchar         *press_description;
-  guint         action_idle_handler;
-
-  gchar         *name;
-  gint          old_selection;
-  gboolean      popup_set;
-};
-
-GType gail_combo_box_get_type (void);
-
-struct _GailComboBoxClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_COMBO_BOX_H__ */
diff --git a/modules/other/gail/gailcontainer.c b/modules/other/gail/gailcontainer.c
deleted file mode 100644 (file)
index 81e0c05..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailcontainer.h"
-
-static void         gail_container_class_init          (GailContainerClass *klass);
-static void         gail_container_init                (GailContainer      *container);
-
-static gint         gail_container_get_n_children      (AtkObject          *obj);
-static AtkObject*   gail_container_ref_child           (AtkObject          *obj,
-                                                        gint               i);
-static gint         gail_container_add_gtk             (GtkContainer       *container,
-                                                        GtkWidget          *widget,
-                                                        gpointer           data);
-static gint         gail_container_remove_gtk          (GtkContainer       *container,
-                                                        GtkWidget          *widget,
-                                                        gpointer           data);
-static gint         gail_container_real_add_gtk        (GtkContainer       *container,
-                                                        GtkWidget          *widget,
-                                                        gpointer           data);
-static gint         gail_container_real_remove_gtk     (GtkContainer       *container,
-                                                        GtkWidget          *widget,
-                                                        gpointer           data);
-
-static void          gail_container_real_initialize    (AtkObject          *obj,
-                                                        gpointer           data);
-
-static void          gail_container_finalize           (GObject            *object);
-
-G_DEFINE_TYPE (GailContainer, gail_container, GAIL_TYPE_WIDGET)
-
-static void
-gail_container_class_init (GailContainerClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  gobject_class->finalize = gail_container_finalize;
-
-  class->get_n_children = gail_container_get_n_children;
-  class->ref_child = gail_container_ref_child;
-  class->initialize = gail_container_real_initialize;
-
-  klass->add_gtk = gail_container_real_add_gtk;
-  klass->remove_gtk = gail_container_real_remove_gtk;
-}
-
-static void
-gail_container_init (GailContainer      *container)
-{
-  container->children = NULL;
-}
-
-static gint
-gail_container_get_n_children (AtkObject* obj)
-{
-  GtkWidget *widget;
-  GList *children;
-  gint count = 0;
-
-  g_return_val_if_fail (GAIL_IS_CONTAINER (obj), count);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    return 0;
-
-  children = gtk_container_get_children (GTK_CONTAINER(widget));
-  count = g_list_length (children);
-  g_list_free (children);
-
-  return count; 
-}
-
-static AtkObject* 
-gail_container_ref_child (AtkObject *obj,
-                          gint       i)
-{
-  GList *children, *tmp_list;
-  AtkObject  *accessible;
-  GtkWidget *widget;
-
-  g_return_val_if_fail (GAIL_IS_CONTAINER (obj), NULL);
-  g_return_val_if_fail ((i >= 0), NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    return NULL;
-
-  children = gtk_container_get_children (GTK_CONTAINER (widget));
-  tmp_list = g_list_nth (children, i);
-  if (!tmp_list)
-    {
-      g_list_free (children);
-      return NULL;
-    }  
-  accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
-
-  g_list_free (children);
-  g_object_ref (accessible);
-  return accessible; 
-}
-
-static gint
-gail_container_add_gtk (GtkContainer *container,
-                        GtkWidget    *widget,
-                        gpointer     data)
-{
-  GailContainer *gail_container = GAIL_CONTAINER (data);
-  GailContainerClass *klass;
-
-  klass = GAIL_CONTAINER_GET_CLASS (gail_container);
-
-  if (klass->add_gtk)
-    return klass->add_gtk (container, widget, data);
-  else
-    return 1;
-}
-static gint
-gail_container_remove_gtk (GtkContainer *container,
-                           GtkWidget    *widget,
-                           gpointer     data)
-{
-  GailContainer *gail_container = GAIL_CONTAINER (data);
-  GailContainerClass *klass;
-
-  klass = GAIL_CONTAINER_GET_CLASS (gail_container);
-
-  if (klass->remove_gtk)
-    return klass->remove_gtk (container, widget, data);
-  else
-    return 1;
-}
-static gint
-gail_container_real_add_gtk (GtkContainer *container,
-                             GtkWidget    *widget,
-                             gpointer     data)
-{
-  AtkObject* atk_parent = ATK_OBJECT (data);
-  AtkObject* atk_child = gtk_widget_get_accessible (widget);
-  GailContainer *gail_container = GAIL_CONTAINER (atk_parent);
-  gint       index;
-
-  g_object_notify (G_OBJECT (atk_child), "accessible_parent");
-
-  g_list_free (gail_container->children);
-  gail_container->children = gtk_container_get_children (container);
-  index = g_list_index (gail_container->children, widget);
-  g_signal_emit_by_name (atk_parent, "children_changed::add", 
-                         index, atk_child, NULL);
-
-  return 1;
-}
-
-static gint
-gail_container_real_remove_gtk (GtkContainer       *container,
-                                GtkWidget          *widget,
-                                gpointer           data)
-{
-  AtkPropertyValues values = { NULL };
-  AtkObject* atk_parent;
-  AtkObject *atk_child;
-  GailContainer *gail_container;
-  gint       index;
-
-  atk_parent = ATK_OBJECT (data);
-  atk_child = gtk_widget_get_accessible (widget);
-
-  if (atk_child)
-    {
-      g_value_init (&values.old_value, G_TYPE_POINTER);
-      g_value_set_pointer (&values.old_value, atk_parent);
-    
-      values.property_name = "accessible-parent";
-
-      g_object_ref (atk_child);
-      g_signal_emit_by_name (atk_child,
-                             "property_change::accessible-parent", &values, NULL);
-      g_object_unref (atk_child);
-    }
-  gail_container = GAIL_CONTAINER (atk_parent);
-  index = g_list_index (gail_container->children, widget);
-  g_list_free (gail_container->children);
-  gail_container->children = gtk_container_get_children (container);
-  if (index >= 0 && index <= g_list_length (gail_container->children))
-    g_signal_emit_by_name (atk_parent, "children_changed::remove", 
-                          index, atk_child, NULL);
-
-  return 1;
-}
-
-static void
-gail_container_real_initialize (AtkObject *obj,
-                                gpointer  data)
-{
-  GailContainer *container = GAIL_CONTAINER (obj);
-
-  ATK_OBJECT_CLASS (gail_container_parent_class)->initialize (obj, data);
-
-  container->children = gtk_container_get_children (GTK_CONTAINER (data));
-
-  g_signal_connect (data, "add",
-                    G_CALLBACK (gail_container_add_gtk),
-                    obj);
-  g_signal_connect (data, "remove",
-                    G_CALLBACK (gail_container_remove_gtk),
-                    obj);
-
-  if (GTK_IS_TOOLBAR (data))
-    obj->role = ATK_ROLE_TOOL_BAR;
-  else if (GTK_IS_VIEWPORT (data))
-    obj->role = ATK_ROLE_VIEWPORT;
-  else
-    obj->role = ATK_ROLE_PANEL;
-}
-
-static void
-gail_container_finalize (GObject *object)
-{
-  GailContainer *container = GAIL_CONTAINER (object);
-
-  g_list_free (container->children);
-  G_OBJECT_CLASS (gail_container_parent_class)->finalize (object);
-}
diff --git a/modules/other/gail/gailcontainer.h b/modules/other/gail/gailcontainer.h
deleted file mode 100644 (file)
index 58adc88..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_CONTAINER_H__
-#define __GAIL_CONTAINER_H__
-
-#include <gail/gailwidget.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_CONTAINER                  (gail_container_get_type ())
-#define GAIL_CONTAINER(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_CONTAINER, GailContainer))
-#define GAIL_CONTAINER_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_CONTAINER, GailContainerClass))
-#define GAIL_IS_CONTAINER(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_CONTAINER))
-#define GAIL_IS_CONTAINER_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_CONTAINER))
-#define GAIL_CONTAINER_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_CONTAINER, GailContainerClass))
-
-typedef struct _GailContainer                 GailContainer;
-typedef struct _GailContainerClass            GailContainerClass;
-
-struct _GailContainer
-{
-  GailWidget parent;
-
-  /*
-   * Cached list of children
-   */
-  GList      *children;
-};
-
-GType gail_container_get_type (void);
-
-struct _GailContainerClass
-{
-  GailWidgetClass parent_class;
-
-  gint (*add_gtk) (GtkContainer *container,
-                   GtkWidget    *widget,
-                   gpointer     data);
-  gint (*remove_gtk) (GtkContainer *container,
-                      GtkWidget    *widget,
-                      gpointer     data);
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_CONTAINER_H__ */
diff --git a/modules/other/gail/gailcontainercell.c b/modules/other/gail/gailcontainercell.c
deleted file mode 100644 (file)
index eb3a561..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailcontainercell.h"
-
-static void       gail_container_cell_class_init          (GailContainerCellClass *klass);
-static void       gail_container_cell_init                (GailContainerCell   *cell);
-static void       gail_container_cell_finalize            (GObject             *obj);
-
-
-static void       _gail_container_cell_recompute_child_indices 
-                                                          (GailContainerCell *container);
-
-static void       gail_container_cell_refresh_child_index (GailCell *cell);
-
-static gint       gail_container_cell_get_n_children      (AtkObject *obj);
-
-static AtkObject* gail_container_cell_ref_child           (AtkObject *obj,
-                                                           gint      child);
-
-G_DEFINE_TYPE (GailContainerCell, gail_container_cell, GAIL_TYPE_CELL)
-
-static void 
-gail_container_cell_class_init (GailContainerCellClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS(klass);
-  GObjectClass *g_object_class = G_OBJECT_CLASS (klass);
-
-  g_object_class->finalize = gail_container_cell_finalize;
-
-  class->get_n_children = gail_container_cell_get_n_children;
-  class->ref_child = gail_container_cell_ref_child;
-}
-
-static void
-gail_container_cell_init (GailContainerCell   *cell)
-{
-}
-
-GailContainerCell * 
-gail_container_cell_new (void)
-{
-  GObject *object;
-  AtkObject *atk_object;
-  GailContainerCell *container;
-
-  object = g_object_new (GAIL_TYPE_CONTAINER_CELL, NULL);
-
-  g_return_val_if_fail (object != NULL, NULL);
-
-  atk_object = ATK_OBJECT (object);
-  atk_object->role = ATK_ROLE_TABLE_CELL;
-
-  container = GAIL_CONTAINER_CELL(object);
-  container->children = NULL;
-  container->NChildren = 0;
-  return container;
-}
-
-static void
-gail_container_cell_finalize (GObject *obj)
-{
-  GailContainerCell *container = GAIL_CONTAINER_CELL (obj);
-  GList *list;
-
-  list = container->children;
-  while (list)
-  {
-    g_object_unref (list->data);
-    list = list->next;
-  }
-  g_list_free (container->children);
-  
-  G_OBJECT_CLASS (gail_container_cell_parent_class)->finalize (obj);
-}
-
-
-void
-gail_container_cell_add_child (GailContainerCell *container,
-                              GailCell *child)
-{
-  gint child_index;
-
-  g_return_if_fail (GAIL_IS_CONTAINER_CELL(container));
-  g_return_if_fail (GAIL_IS_CELL(child));
-
-  child_index = container->NChildren++;
-  container->children = g_list_append (container->children, (gpointer) child);
-  child->index = child_index;
-  atk_object_set_parent (ATK_OBJECT (child), ATK_OBJECT (container));
-  child->refresh_index = gail_container_cell_refresh_child_index;
-}
-
-
-void
-gail_container_cell_remove_child (GailContainerCell *container,
-                                 GailCell *child)
-{
-  g_return_if_fail (GAIL_IS_CONTAINER_CELL(container));
-  g_return_if_fail (GAIL_IS_CELL(child));
-  g_return_if_fail (container->NChildren > 0);
-
-  container->children = g_list_remove (container->children, (gpointer) child);
-  _gail_container_cell_recompute_child_indices (container);
-  container->NChildren--;
-}
-
-
-static void
-_gail_container_cell_recompute_child_indices (GailContainerCell *container)
-{
-  gint cur_index = 0;
-  GList *temp_list;
-
-  g_return_if_fail (GAIL_IS_CONTAINER_CELL(container));
-
-  for (temp_list = container->children; temp_list; temp_list = temp_list->next)
-    {
-      GAIL_CELL(temp_list->data)->index = cur_index;
-      cur_index++;
-    }
-}
-
-
-static void
-gail_container_cell_refresh_child_index (GailCell *cell)
-{
-  GailContainerCell *container;
-  g_return_if_fail (GAIL_IS_CELL(cell));
-  container = GAIL_CONTAINER_CELL (atk_object_get_parent (ATK_OBJECT(cell)));
-  g_return_if_fail (GAIL_IS_CONTAINER_CELL (container));
-  _gail_container_cell_recompute_child_indices (container);
-}
-
-
-
-static gint
-gail_container_cell_get_n_children (AtkObject *obj)
-{
-  GailContainerCell *cell;
-  g_return_val_if_fail (GAIL_IS_CONTAINER_CELL(obj), 0);
-  cell = GAIL_CONTAINER_CELL(obj);
-  return cell->NChildren;
-}
-
-
-static AtkObject *
-gail_container_cell_ref_child (AtkObject *obj,
-                              gint       child)
-{
-  GailContainerCell *cell;
-  GList *list_node;
-
-  g_return_val_if_fail (GAIL_IS_CONTAINER_CELL(obj), NULL);
-  cell = GAIL_CONTAINER_CELL(obj);
-  
-  list_node = g_list_nth (cell->children, child);
-  if (!list_node)
-    return NULL;
-
-  return g_object_ref (ATK_OBJECT (list_node->data));
-}
diff --git a/modules/other/gail/gailcontainercell.h b/modules/other/gail/gailcontainercell.h
deleted file mode 100644 (file)
index 739a334..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_CONTAINER_CELL_H__
-#define __GAIL_CONTAINER_CELL_H__
-
-#include <atk/atk.h>
-#include <gail/gailcell.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_CONTAINER_CELL            (gail_container_cell_get_type ())
-#define GAIL_CONTAINER_CELL(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_CONTAINER_CELL, GailContainerCell))
-#define GAIL_CONTAINER_CELL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_CONTAINER_CELL, GailContainerCellClass))
-#define GAIL_IS_CONTAINER_CELL(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_CONTAINER_CELL))
-#define GAIL_IS_CONTAINER_CELL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_CONTAINER_CELL))
-#define GAIL_CONTAINER_CELL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_CONTAINER_CELL, GailContainerCellClass))
-
-typedef struct _GailContainerCell                  GailContainerCell;
-typedef struct _GailContainerCellClass             GailContainerCellClass;
-
-struct _GailContainerCell
-{
-  GailCell parent;
-  GList *children;
-  gint NChildren;
-};
-
-GType gail_container_cell_get_type (void);
-
-struct _GailContainerCellClass
-{
-  GailCellClass parent_class;
-};
-
-GailContainerCell *
-gail_container_cell_new (void);
-
-void
-gail_container_cell_add_child (GailContainerCell *container,
-                              GailCell *child);
-
-void
-gail_container_cell_remove_child (GailContainerCell *container,
-                                 GailCell *child);
-
-G_END_DECLS
-
-#endif /* __GAIL_TREE_VIEW_TEXT_CELL_H__ */
diff --git a/modules/other/gail/gailentry.c b/modules/other/gail/gailentry.c
deleted file mode 100644 (file)
index 1a24de9..0000000
+++ /dev/null
@@ -1,1441 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-#include "gailentry.h"
-#include "gailcombobox.h"
-#include <libgail-util/gailmisc.h>
-
-static void       gail_entry_class_init            (GailEntryClass       *klass);
-static void       gail_entry_init                  (GailEntry            *entry);
-static void      gail_entry_real_initialize       (AtkObject            *obj,
-                                                    gpointer             data);
-static void       text_setup                       (GailEntry            *entry,
-                                                    GtkEntry             *gtk_entry);
-static void      gail_entry_real_notify_gtk       (GObject              *obj,
-                                                    GParamSpec          *pspec);
-static void       gail_entry_finalize              (GObject              *object);
-
-static gint       gail_entry_get_index_in_parent   (AtkObject            *accessible);
-
-/* atkobject.h */
-
-static AtkStateSet*     gail_entry_ref_state_set   (AtkObject            *accessible);
-static AtkAttributeSet* gail_entry_get_attributes  (AtkObject            *accessible);
-
-/* atktext.h */
-
-static void       atk_text_interface_init          (AtkTextIface         *iface);
-
-static gchar*     gail_entry_get_text              (AtkText              *text,
-                                                    gint                 start_pos,
-                                                    gint                 end_pos);
-static gunichar          gail_entry_get_character_at_offset
-                                                  (AtkText              *text,
-                                                   gint                 offset);
-static gchar*    gail_entry_get_text_before_offset(AtkText              *text,
-                                                   gint                 offset,
-                                                   AtkTextBoundary      boundary_type,
-                                                   gint                 *start_offset,
-                                                   gint                 *end_offset);
-static gchar*    gail_entry_get_text_at_offset    (AtkText              *text,
-                                                   gint                 offset,
-                                                   AtkTextBoundary      boundary_type,
-                                                   gint                 *start_offset,
-                                                   gint                 *end_offset);
-static gchar*    gail_entry_get_text_after_offset (AtkText              *text,
-                                                   gint                 offset,
-                                                   AtkTextBoundary      boundary_type,
-                                                   gint                 *start_offset,
-                                                   gint                 *end_offset);
-static gint       gail_entry_get_caret_offset      (AtkText              *text);
-static gboolean   gail_entry_set_caret_offset      (AtkText              *text,
-                                                   gint                 offset);
-static gint      gail_entry_get_n_selections      (AtkText              *text);
-static gchar*    gail_entry_get_selection         (AtkText              *text,
-                                                   gint                 selection_num,
-                                                   gint                 *start_offset,
-                                                   gint                 *end_offset);
-static gboolean          gail_entry_add_selection         (AtkText              *text,
-                                                   gint                 start_offset,
-                                                   gint                 end_offset);
-static gboolean          gail_entry_remove_selection      (AtkText              *text,
-                                                   gint                 selection_num);
-static gboolean          gail_entry_set_selection         (AtkText              *text,
-                                                   gint                 selection_num,
-                                                   gint                 start_offset,
-                                                   gint                 end_offset);
-static gint      gail_entry_get_character_count   (AtkText              *text);
-static AtkAttributeSet *  gail_entry_get_run_attributes 
-                                                   (AtkText              *text,
-                                                   gint                 offset,
-                                                   gint                 *start_offset,
-                                                   gint                 *end_offset);
-static AtkAttributeSet *  gail_entry_get_default_attributes 
-                                                   (AtkText              *text);
-static void gail_entry_get_character_extents       (AtkText             *text,
-                                                   gint                 offset,
-                                                   gint                 *x,
-                                                   gint                 *y,
-                                                   gint                 *width,
-                                                   gint                 *height,
-                                                   AtkCoordType         coords);
-static gint gail_entry_get_offset_at_point         (AtkText              *text,
-                                                    gint                 x,
-                                                    gint                 y,
-                                                   AtkCoordType         coords);
-/* atkeditabletext.h */
-
-static void       atk_editable_text_interface_init (AtkEditableTextIface *iface);
-static void       gail_entry_set_text_contents     (AtkEditableText      *text,
-                                                    const gchar          *string);
-static void       gail_entry_insert_text           (AtkEditableText      *text,
-                                                    const gchar          *string,
-                                                    gint                 length,
-                                                    gint                 *position);
-static void       gail_entry_copy_text             (AtkEditableText      *text,
-                                                    gint                 start_pos,
-                                                    gint                 end_pos);
-static void       gail_entry_cut_text              (AtkEditableText      *text,
-                                                    gint                 start_pos,
-                                                    gint                 end_pos);
-static void       gail_entry_delete_text           (AtkEditableText      *text,
-                                                    gint                 start_pos,
-                                                    gint                 end_pos);
-static void       gail_entry_paste_text            (AtkEditableText      *text,
-                                                    gint                 position);
-static void       gail_entry_paste_received       (GtkClipboard *clipboard,
-                                                   const gchar  *text,
-                                                   gpointer     data);
-
-
-/* Callbacks */
-
-static gboolean   gail_entry_idle_notify_insert    (gpointer data);
-static void       gail_entry_notify_insert         (GailEntry            *entry);
-static void       gail_entry_notify_delete         (GailEntry            *entry);
-static void      _gail_entry_insert_text_cb       (GtkEntry             *entry,
-                                                    gchar               *arg1,
-                                                    gint                arg2,
-                                                    gpointer            arg3);
-static void      _gail_entry_delete_text_cb       (GtkEntry             *entry,
-                                                    gint                arg1,
-                                                    gint                arg2);
-static void      _gail_entry_changed_cb           (GtkEntry             *entry);
-static gboolean   check_for_selection_change       (GailEntry            *entry,
-                                                    GtkEntry             *gtk_entry);
-
-static void                  atk_action_interface_init          (AtkActionIface  *iface);
-
-static gboolean              gail_entry_do_action               (AtkAction       *action,
-                                                                 gint            i);
-static gboolean              idle_do_action                     (gpointer        data);
-static gint                  gail_entry_get_n_actions           (AtkAction       *action);
-static const gchar* gail_entry_action_get_description  (AtkAction       *action,
-                                                                 gint            i);
-static const gchar* gail_entry_get_keybinding          (AtkAction       *action,
-                                                                 gint            i);
-static const gchar* gail_entry_action_get_name         (AtkAction       *action,
-                                                                 gint            i);
-static gboolean              gail_entry_action_set_description  (AtkAction       *action,
-                                                                 gint            i,
-                                                                 const gchar     *desc);
-
-typedef struct _GailEntryPaste                 GailEntryPaste;
-
-struct _GailEntryPaste
-{
-  GtkEntry* entry;
-  gint position;
-};
-
-G_DEFINE_TYPE_WITH_CODE (GailEntry, gail_entry, GAIL_TYPE_WIDGET,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_EDITABLE_TEXT, atk_editable_text_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
-
-static void
-gail_entry_class_init (GailEntryClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-  GailWidgetClass *widget_class;
-
-  widget_class = (GailWidgetClass*)klass;
-
-  gobject_class->finalize = gail_entry_finalize;
-
-  class->ref_state_set = gail_entry_ref_state_set;
-  class->get_index_in_parent = gail_entry_get_index_in_parent;
-  class->initialize = gail_entry_real_initialize;
-  class->get_attributes = gail_entry_get_attributes;
-
-  widget_class->notify_gtk = gail_entry_real_notify_gtk;
-}
-
-static void
-gail_entry_init (GailEntry *entry)
-{
-  entry->textutil = NULL;
-  entry->signal_name_insert = NULL;
-  entry->signal_name_delete = NULL;
-  entry->cursor_position = 0;
-  entry->selection_bound = 0;
-  entry->activate_description = NULL;
-  entry->activate_keybinding = NULL;
-}
-
-static void
-gail_entry_real_initialize (AtkObject *obj, 
-                            gpointer  data)
-{
-  GtkEntry *entry;
-  GailEntry *gail_entry;
-  gint start_pos, end_pos;
-
-  ATK_OBJECT_CLASS (gail_entry_parent_class)->initialize (obj, data);
-
-  gail_entry = GAIL_ENTRY (obj);
-  gail_entry->textutil = gail_text_util_new ();
-  
-  g_assert (GTK_IS_ENTRY (data));
-
-  entry = GTK_ENTRY (data);
-  text_setup (gail_entry, entry);
-  gtk_editable_get_selection_bounds (GTK_EDITABLE (entry),
-                                     &start_pos, &end_pos);
-  gail_entry->cursor_position = end_pos;
-  gail_entry->selection_bound = start_pos;
-
-  /* Set up signal callbacks */
-  g_signal_connect (data, "insert-text",
-       G_CALLBACK (_gail_entry_insert_text_cb), NULL);
-  g_signal_connect (data, "delete-text",
-       G_CALLBACK (_gail_entry_delete_text_cb), NULL);
-  g_signal_connect (data, "changed",
-       G_CALLBACK (_gail_entry_changed_cb), NULL);
-
-  if (gtk_entry_get_visibility (entry))
-    obj->role = ATK_ROLE_TEXT;
-  else
-    obj->role = ATK_ROLE_PASSWORD_TEXT;
-}
-
-static void
-gail_entry_real_notify_gtk (GObject            *obj,
-                            GParamSpec         *pspec)
-{
-  GtkWidget *widget;
-  AtkObject* atk_obj;
-  GtkEntry* gtk_entry;
-  GailEntry* entry;
-
-  widget = GTK_WIDGET (obj);
-  atk_obj = gtk_widget_get_accessible (widget);
-  gtk_entry = GTK_ENTRY (widget);
-  entry = GAIL_ENTRY (atk_obj);
-
-  if (strcmp (pspec->name, "cursor-position") == 0)
-    {
-      if (entry->insert_idle_handler == 0)
-        entry->insert_idle_handler = gdk_threads_add_idle (gail_entry_idle_notify_insert, entry);
-
-      if (check_for_selection_change (entry, gtk_entry))
-        g_signal_emit_by_name (atk_obj, "text_selection_changed");
-      /*
-       * The entry cursor position has moved so generate the signal.
-       */
-      g_signal_emit_by_name (atk_obj, "text_caret_moved", 
-                             entry->cursor_position);
-    }
-  else if (strcmp (pspec->name, "selection-bound") == 0)
-    {
-      if (entry->insert_idle_handler == 0)
-        entry->insert_idle_handler = gdk_threads_add_idle (gail_entry_idle_notify_insert, entry);
-
-      if (check_for_selection_change (entry, gtk_entry))
-        g_signal_emit_by_name (atk_obj, "text_selection_changed");
-    }
-  else if (strcmp (pspec->name, "editable") == 0)
-    {
-      gboolean value;
-
-      g_object_get (obj, "editable", &value, NULL);
-      atk_object_notify_state_change (atk_obj, ATK_STATE_EDITABLE,
-                                               value);
-    }
-  else if (strcmp (pspec->name, "visibility") == 0)
-    {
-      gboolean visibility;
-      AtkRole new_role;
-
-      text_setup (entry, gtk_entry);
-      visibility = gtk_entry_get_visibility (gtk_entry);
-      new_role = visibility ? ATK_ROLE_TEXT : ATK_ROLE_PASSWORD_TEXT;
-      atk_object_set_role (atk_obj, new_role);
-    }
-  else if (strcmp (pspec->name, "invisible-char") == 0)
-    {
-      text_setup (entry, gtk_entry);
-    }
-  else if (strcmp (pspec->name, "editing-canceled") == 0)
-    {
-      if (entry->insert_idle_handler)
-        {
-          g_source_remove (entry->insert_idle_handler);
-          entry->insert_idle_handler = 0;
-        }
-    }
-  else
-    GAIL_WIDGET_CLASS (gail_entry_parent_class)->notify_gtk (obj, pspec);
-}
-
-static void
-text_setup (GailEntry *entry,
-            GtkEntry  *gtk_entry)
-{
-  if (gtk_entry_get_visibility (gtk_entry))
-    {
-      gail_text_util_text_setup (entry->textutil, gtk_entry_get_text (gtk_entry));
-    }
-  else
-    {
-      gunichar invisible_char;
-      GString *tmp_string = g_string_new (NULL);
-      gint ch_len; 
-      gchar buf[7];
-      guint length;
-      gint i;
-
-      invisible_char = gtk_entry_get_invisible_char (gtk_entry);
-      if (invisible_char == 0)
-        invisible_char = ' ';
-
-      ch_len = g_unichar_to_utf8 (invisible_char, buf);
-      length = gtk_entry_get_text_length (gtk_entry);
-      for (i = 0; i < length; i++)
-        {
-          g_string_append_len (tmp_string, buf, ch_len);
-        }
-
-      gail_text_util_text_setup (entry->textutil, tmp_string->str);
-      g_string_free (tmp_string, TRUE);
-
-    } 
-}
-
-static void
-gail_entry_finalize (GObject            *object)
-{
-  GailEntry *entry = GAIL_ENTRY (object);
-
-  g_object_unref (entry->textutil);
-  g_free (entry->activate_description);
-  g_free (entry->activate_keybinding);
-  if (entry->action_idle_handler)
-    {
-      g_source_remove (entry->action_idle_handler);
-      entry->action_idle_handler = 0;
-    }
-  if (entry->insert_idle_handler)
-    {
-      g_source_remove (entry->insert_idle_handler);
-      entry->insert_idle_handler = 0;
-    }
-  G_OBJECT_CLASS (gail_entry_parent_class)->finalize (object);
-}
-
-static gint
-gail_entry_get_index_in_parent (AtkObject *accessible)
-{
-  /*
-   * If the parent widget is a combo box then the index is 1
-   * otherwise do the normal thing.
-   */
-  if (accessible->accessible_parent)
-    if (GAIL_IS_COMBO_BOX (accessible->accessible_parent))
-      return 1;
-
-  return ATK_OBJECT_CLASS (gail_entry_parent_class)->get_index_in_parent (accessible);
-}
-
-/* atkobject.h */
-
-static AtkStateSet*
-gail_entry_ref_state_set (AtkObject *accessible)
-{
-  AtkStateSet *state_set;
-  GtkEntry *entry;
-  gboolean value;
-  GtkWidget *widget;
-
-  state_set = ATK_OBJECT_CLASS (gail_entry_parent_class)->ref_state_set (accessible);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-
-  if (widget == NULL)
-    return state_set;
-
-  entry = GTK_ENTRY (widget);
-
-  g_object_get (G_OBJECT (entry), "editable", &value, NULL);
-  if (value)
-    atk_state_set_add_state (state_set, ATK_STATE_EDITABLE);
-  atk_state_set_add_state (state_set, ATK_STATE_SINGLE_LINE);
-
-  return state_set;
-}
-
-static AtkAttributeSet *
-gail_entry_get_attributes (AtkObject *accessible)
-{
-  GtkWidget *widget;
-  AtkAttributeSet *attributes;
-  AtkAttribute *placeholder_text;
-  const gchar *text;
-
-  attributes = ATK_OBJECT_CLASS (gail_entry_parent_class)->get_attributes (accessible);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  if (widget == NULL)
-    return attributes;
-
-  text = gtk_entry_get_placeholder_text (GTK_ENTRY (widget));
-  if (text == NULL)
-    return attributes;
-
-  placeholder_text = g_malloc (sizeof (AtkAttribute));
-  placeholder_text->name = g_strdup ("placeholder-text");
-  placeholder_text->value = g_strdup (text);
-
-  attributes = g_slist_append (attributes, placeholder_text);
-
-  return attributes;
-}
-
-/* atktext.h */
-
-static void
-atk_text_interface_init (AtkTextIface *iface)
-{
-  iface->get_text = gail_entry_get_text;
-  iface->get_character_at_offset = gail_entry_get_character_at_offset;
-  iface->get_text_before_offset = gail_entry_get_text_before_offset;
-  iface->get_text_at_offset = gail_entry_get_text_at_offset;
-  iface->get_text_after_offset = gail_entry_get_text_after_offset;
-  iface->get_caret_offset = gail_entry_get_caret_offset;
-  iface->set_caret_offset = gail_entry_set_caret_offset;
-  iface->get_character_count = gail_entry_get_character_count;
-  iface->get_n_selections = gail_entry_get_n_selections;
-  iface->get_selection = gail_entry_get_selection;
-  iface->add_selection = gail_entry_add_selection;
-  iface->remove_selection = gail_entry_remove_selection;
-  iface->set_selection = gail_entry_set_selection;
-  iface->get_run_attributes = gail_entry_get_run_attributes;
-  iface->get_default_attributes = gail_entry_get_default_attributes;
-  iface->get_character_extents = gail_entry_get_character_extents;
-  iface->get_offset_at_point = gail_entry_get_offset_at_point;
-}
-
-static gchar*
-gail_entry_get_text (AtkText *text,
-                     gint    start_pos,
-                     gint    end_pos)
-{
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  return gail_text_util_get_substring (GAIL_ENTRY (text)->textutil, start_pos, end_pos);
-}
-
-static gchar*
-gail_entry_get_text_before_offset (AtkText         *text,
-                                  gint             offset,
-                                  AtkTextBoundary  boundary_type,
-                                  gint             *start_offset,
-                                  gint             *end_offset)
-{
-  GtkWidget *widget;
-  GtkEntry *entry;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  /* Get Entry */
-  entry = GTK_ENTRY (widget);
-
-  return gail_text_util_get_text (GAIL_ENTRY (text)->textutil,
-                          gtk_entry_get_layout (entry), GAIL_BEFORE_OFFSET, 
-                          boundary_type, offset, start_offset, end_offset);
-}
-
-static gchar*
-gail_entry_get_text_at_offset (AtkText          *text,
-                               gint             offset,
-                               AtkTextBoundary  boundary_type,
-                               gint             *start_offset,
-                               gint             *end_offset)
-{
-  GtkWidget *widget;
-  GtkEntry *entry;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  /* Get Entry */
-  entry = GTK_ENTRY (widget);
-
-  return gail_text_util_get_text (GAIL_ENTRY (text)->textutil,
-                            gtk_entry_get_layout (entry), GAIL_AT_OFFSET, 
-                            boundary_type, offset, start_offset, end_offset);
-}
-
-static gchar*
-gail_entry_get_text_after_offset  (AtkText         *text,
-                                  gint             offset,
-                                  AtkTextBoundary  boundary_type,
-                                  gint             *start_offset,
-                                  gint             *end_offset)
-{
-  GtkWidget *widget;
-  GtkEntry *entry;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  /* Get Entry */
-  entry = GTK_ENTRY (widget);
-
-  return gail_text_util_get_text (GAIL_ENTRY (text)->textutil,
-                           gtk_entry_get_layout (entry), GAIL_AFTER_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset);
-}
-
-static gint
-gail_entry_get_character_count (AtkText *text)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  entry = GTK_ENTRY (widget);
-  return g_utf8_strlen (gtk_entry_get_text (entry), -1);
-}
-
-static gint
-gail_entry_get_caret_offset (AtkText *text)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  entry = GTK_ENTRY (widget);
-
-  return gtk_editable_get_position (GTK_EDITABLE (entry));
-}
-
-static gboolean
-gail_entry_set_caret_offset (AtkText *text, gint offset)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  entry = GTK_ENTRY (widget);
-
-  gtk_editable_set_position (GTK_EDITABLE (entry), offset);
-  return TRUE;
-}
-
-static AtkAttributeSet*
-gail_entry_get_run_attributes (AtkText *text,
-                              gint    offset,
-                               gint    *start_offset,
-                               gint    *end_offset)
-{
-  GtkWidget *widget;
-  GtkEntry *entry;
-  AtkAttributeSet *at_set = NULL;
-  GtkTextDirection dir;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  entry = GTK_ENTRY (widget);
-  dir = gtk_widget_get_direction (widget);
-  if (dir == GTK_TEXT_DIR_RTL)
-    {
-      at_set = gail_misc_add_attribute (at_set,
-                                        ATK_TEXT_ATTR_DIRECTION,
-       g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION, dir)));
-    }
-
-  at_set = gail_misc_layout_get_run_attributes (at_set,
-                                                gtk_entry_get_layout (entry),
-                                                (gchar*)gtk_entry_get_text (entry),
-                                                offset,
-                                                start_offset,
-                                                end_offset);
-  return at_set;
-}
-
-static AtkAttributeSet*
-gail_entry_get_default_attributes (AtkText *text)
-{
-  GtkWidget *widget;
-  GtkEntry *entry;
-  AtkAttributeSet *at_set = NULL;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  entry = GTK_ENTRY (widget);
-
-  at_set = gail_misc_get_default_attributes (at_set,
-                                             gtk_entry_get_layout (entry),
-                                             widget);
-  return at_set;
-}
-  
-static void
-gail_entry_get_character_extents (AtkText *text,
-                                 gint    offset,
-                                 gint    *x,
-                                 gint    *y,
-                                  gint           *width,
-                                  gint           *height,
-                                 AtkCoordType coords)
-{
-  GtkWidget *widget;
-  GtkEntry *entry;
-  PangoRectangle char_rect;
-  gint index, x_layout, y_layout;
-  const gchar *entry_text;
-  gint start_pos, end_pos;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  entry = GTK_ENTRY (widget);
-
-  gtk_editable_get_selection_bounds (GTK_EDITABLE (entry),
-                                     &start_pos, &end_pos);
-  gtk_entry_get_layout_offsets (entry, &x_layout, &y_layout);
-  entry_text = gtk_entry_get_text (entry);
-
-  index = g_utf8_offset_to_pointer (entry_text, offset) - entry_text;
-
-  /* FIXME: entry->preedit cannot be accessed directly
-  cursor_index = g_utf8_offset_to_pointer (entry_text, end_pos) - entry_text;
-  if (index > cursor_index)
-    index += entry->preedit_length;
-  */
-  pango_layout_index_to_pos (gtk_entry_get_layout(entry), index, &char_rect);
-  gail_misc_get_extents_from_pango_rectangle (widget, &char_rect, 
-                        x_layout, y_layout, x, y, width, height, coords);
-} 
-
-static gint 
-gail_entry_get_offset_at_point (AtkText *text,
-                                gint x,
-                                gint y,
-                               AtkCoordType coords)
-{ 
-  GtkWidget *widget;
-  GtkEntry *entry;
-  gint index, x_layout, y_layout;
-  const gchar *entry_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-
-  entry = GTK_ENTRY (widget);
-  
-  gtk_entry_get_layout_offsets (entry, &x_layout, &y_layout);
-  entry_text = gtk_entry_get_text (entry);
-  
-  index = gail_misc_get_index_at_point_in_layout (widget, 
-               gtk_entry_get_layout(entry), x_layout, y_layout, x, y, coords);
-  if (index == -1)
-    {
-      if (coords == ATK_XY_SCREEN || coords == ATK_XY_WINDOW)
-        return g_utf8_strlen (entry_text, -1);
-
-      return index;  
-    }
-  else
-    {
-      gint start_pos, end_pos;
-
-      gtk_editable_get_selection_bounds (GTK_EDITABLE (entry),
-                                         &start_pos, &end_pos);
-      /* FIXME: entry->preedit_length cannot be accessed directly
-      cursor_index = g_utf8_offset_to_pointer (entry_text, end_pos) - entry_text;
-      if (index >= cursor_index && entry->preedit_length)
-        {
-          if (index >= cursor_index + entry->preedit_length)
-            index -= entry->preedit_length;
-          else
-            index = cursor_index;
-        }
-      */
-      return g_utf8_pointer_to_offset (entry_text, entry_text + index);
-    }
-}
-
-static gint
-gail_entry_get_n_selections (AtkText              *text)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-  gint select_start, select_end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-
-  entry = GTK_ENTRY (widget);
-
-  gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), &select_start, 
-                                     &select_end);
-
-  if (select_start != select_end)
-    return 1;
-  else
-    return 0;
-}
-
-static gchar*
-gail_entry_get_selection (AtkText *text,
-                         gint    selection_num,
-                          gint    *start_pos,
-                          gint    *end_pos)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
- /* Only let the user get the selection if one is set, and if the
-  * selection_num is 0.
-  */
-  if (selection_num != 0)
-     return NULL;
-
-  entry = GTK_ENTRY (widget);
-  gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), start_pos, end_pos);
-
-  if (*start_pos != *end_pos)
-     return gtk_editable_get_chars (GTK_EDITABLE (entry), *start_pos, *end_pos);
-  else
-     return NULL;
-}
-
-static gboolean
-gail_entry_add_selection (AtkText *text,
-                          gint    start_pos,
-                          gint    end_pos)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-  gint select_start, select_end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  entry = GTK_ENTRY (widget);
-
-  gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), &select_start, 
-                                     &select_end);
-
- /* If there is already a selection, then don't allow another to be added,
-  * since GtkEntry only supports one selected region.
-  */
-  if (select_start == select_end)
-    {
-       gtk_editable_select_region (GTK_EDITABLE (entry), start_pos, end_pos);
-       return TRUE;
-    }
-  else
-   return FALSE;
-}
-
-static gboolean
-gail_entry_remove_selection (AtkText *text,
-                             gint    selection_num)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-  gint select_start, select_end, caret_pos;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  if (selection_num != 0)
-     return FALSE;
-
-  entry = GTK_ENTRY (widget);
-  gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), &select_start, 
-                                     &select_end);
-
-  if (select_start != select_end)
-    {
-     /* Setting the start & end of the selected region to the caret position
-      * turns off the selection.
-      */
-      caret_pos = gtk_editable_get_position (GTK_EDITABLE (entry));
-      gtk_editable_select_region (GTK_EDITABLE (entry), caret_pos, caret_pos);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static gboolean
-gail_entry_set_selection (AtkText *text,
-                         gint    selection_num,
-                          gint    start_pos,
-                          gint    end_pos)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-  gint select_start, select_end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
- /* Only let the user move the selection if one is set, and if the
-  * selection_num is 0
-  */
-  if (selection_num != 0)
-     return FALSE;
-
-  entry = GTK_ENTRY (widget);
-
-  gtk_editable_get_selection_bounds (GTK_EDITABLE (entry), &select_start, 
-                                     &select_end);
-
-  if (select_start != select_end)
-    {
-      gtk_editable_select_region (GTK_EDITABLE (entry), start_pos, end_pos);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static void
-atk_editable_text_interface_init (AtkEditableTextIface *iface)
-{
-  iface->set_text_contents = gail_entry_set_text_contents;
-  iface->insert_text = gail_entry_insert_text;
-  iface->copy_text = gail_entry_copy_text;
-  iface->cut_text = gail_entry_cut_text;
-  iface->delete_text = gail_entry_delete_text;
-  iface->paste_text = gail_entry_paste_text;
-  iface->set_run_attributes = NULL;
-}
-
-static void
-gail_entry_set_text_contents (AtkEditableText *text,
-                              const gchar     *string)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-  GtkEditable *editable;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  entry = GTK_ENTRY (widget);
-  editable = GTK_EDITABLE (entry);
-  if (!gtk_editable_get_editable (editable))
-    return;
-
-  gtk_entry_set_text (entry, string);
-}
-
-static void
-gail_entry_insert_text (AtkEditableText *text,
-                        const gchar     *string,
-                        gint            length,
-                        gint            *position)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-  GtkEditable *editable;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  entry = GTK_ENTRY (widget);
-  editable = GTK_EDITABLE (entry);
-  if (!gtk_editable_get_editable (editable))
-    return;
-
-  gtk_editable_insert_text (editable, string, length, position);
-  gtk_editable_set_position (editable, *position);
-}
-
-static void
-gail_entry_copy_text   (AtkEditableText *text,
-                        gint            start_pos,
-                        gint            end_pos)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-  GtkEditable *editable;
-  gchar *str;
-  GtkClipboard *clipboard;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  entry = GTK_ENTRY (widget);
-  editable = GTK_EDITABLE (entry);
-  str = gtk_editable_get_chars (editable, start_pos, end_pos);
-  clipboard = gtk_clipboard_get_for_display (gtk_widget_get_display (widget),
-                                             GDK_SELECTION_CLIPBOARD);
-  gtk_clipboard_set_text (clipboard, str, -1);
-}
-
-static void
-gail_entry_cut_text (AtkEditableText *text,
-                     gint            start_pos,
-                     gint            end_pos)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-  GtkEditable *editable;
-  gchar *str;
-  GtkClipboard *clipboard;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  entry = GTK_ENTRY (widget);
-  editable = GTK_EDITABLE (entry);
-  if (!gtk_editable_get_editable (editable))
-    return;
-  str = gtk_editable_get_chars (editable, start_pos, end_pos);
-  clipboard = gtk_clipboard_get_for_display (gtk_widget_get_display (widget),
-                                             GDK_SELECTION_CLIPBOARD);
-  gtk_clipboard_set_text (clipboard, str, -1);
-  gtk_editable_delete_text (editable, start_pos, end_pos);
-}
-
-static void
-gail_entry_delete_text (AtkEditableText *text,
-                        gint            start_pos,
-                        gint            end_pos)
-{
-  GtkEntry *entry;
-  GtkWidget *widget;
-  GtkEditable *editable;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  entry = GTK_ENTRY (widget);
-  editable = GTK_EDITABLE (entry);
-  if (!gtk_editable_get_editable (editable))
-    return;
-
-  gtk_editable_delete_text (editable, start_pos, end_pos);
-}
-
-static void
-gail_entry_paste_text (AtkEditableText *text,
-                       gint            position)
-{
-  GtkWidget *widget;
-  GtkEditable *editable;
-  GailEntryPaste paste_struct;
-  GtkClipboard *clipboard;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  editable = GTK_EDITABLE (widget);
-  if (!gtk_editable_get_editable (editable))
-    return;
-  paste_struct.entry = GTK_ENTRY (widget);
-  paste_struct.position = position;
-
-  g_object_ref (paste_struct.entry);
-  clipboard = gtk_clipboard_get_for_display (gtk_widget_get_display (widget),
-                                             GDK_SELECTION_CLIPBOARD);
-  gtk_clipboard_request_text (clipboard,
-    gail_entry_paste_received, &paste_struct);
-}
-
-static void
-gail_entry_paste_received (GtkClipboard *clipboard,
-               const gchar  *text,
-               gpointer     data)
-{
-  GailEntryPaste* paste_struct = (GailEntryPaste *)data;
-
-  if (text)
-    gtk_editable_insert_text (GTK_EDITABLE (paste_struct->entry), text, -1,
-       &(paste_struct->position));
-
-  g_object_unref (paste_struct->entry);
-}
-
-/* Callbacks */
-
-static gboolean
-gail_entry_idle_notify_insert (gpointer data)
-{
-  GailEntry *entry;
-
-  entry = GAIL_ENTRY (data);
-  entry->insert_idle_handler = 0;
-  gail_entry_notify_insert (entry);
-
-  return FALSE;
-}
-
-static void
-gail_entry_notify_insert (GailEntry *entry)
-{
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (entry));
-  if (gtk_entry_get_text_length (GTK_ENTRY (widget)) == 0)
-    return;
-
-  if (entry->signal_name_insert)
-    {
-      g_signal_emit_by_name (entry, 
-                             entry->signal_name_insert,
-                             entry->position_insert,
-                             entry->length_insert);
-      entry->signal_name_insert = NULL;
-    }
-}
-
-/* Note arg1 returns the character at the start of the insert.
- * arg2 returns the number of characters inserted.
- */
-static void 
-_gail_entry_insert_text_cb (GtkEntry *entry, 
-                            gchar    *arg1, 
-                            gint     arg2,
-                            gpointer arg3)
-{
-  AtkObject *accessible;
-  GailEntry *gail_entry;
-  gint *position = (gint *) arg3;
-
-  if (arg2 == 0)
-    return;
-
-  accessible = gtk_widget_get_accessible (GTK_WIDGET (entry));
-  gail_entry = GAIL_ENTRY (accessible);
-  if (!gail_entry->signal_name_insert)
-    {
-      gail_entry->signal_name_insert = "text_changed::insert";
-      gail_entry->position_insert = *position;
-      gail_entry->length_insert = g_utf8_strlen(arg1, arg2);
-    }
-  /*
-   * The signal will be emitted when the cursor position is updated.
-   * or in an idle handler if it not updated.
-   */
-   if (gail_entry->insert_idle_handler == 0)
-     gail_entry->insert_idle_handler = gdk_threads_add_idle (gail_entry_idle_notify_insert, gail_entry);
-}
-
-static gunichar 
-gail_entry_get_character_at_offset (AtkText *text,
-                                    gint     offset)
-{
-  GtkWidget *widget;
-  GailEntry *entry;
-  gchar *string;
-  gchar *index;
-  gunichar unichar;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return '\0';
-
-  entry = GAIL_ENTRY (text);
-  string = gail_text_util_get_substring (entry->textutil, 0, -1);
-  if (offset >= g_utf8_strlen (string, -1))
-    {
-      unichar = '\0';
-    }
-  else
-    {
-      index = g_utf8_offset_to_pointer (string, offset);
-
-      unichar = g_utf8_get_char(index);
-    }
-
-  g_free(string);
-  return unichar;
-}
-
-static void
-gail_entry_notify_delete (GailEntry *entry)
-{
-  if (entry->signal_name_delete)
-    {
-      g_signal_emit_by_name (entry, 
-                             entry->signal_name_delete,
-                             entry->position_delete,
-                             entry->length_delete);
-      entry->signal_name_delete = NULL;
-    }
-}
-
-/* Note arg1 returns the start of the delete range, arg2 returns the
- * end of the delete range if multiple characters are deleted. 
- */
-static void 
-_gail_entry_delete_text_cb (GtkEntry *entry, 
-                            gint      arg1, 
-                            gint      arg2)
-{
-  AtkObject *accessible;
-  GailEntry *gail_entry;
-
-  /*
-   * Zero length text deleted so ignore
-   */
-  if (arg2 - arg1 == 0)
-    return;
-
-  accessible = gtk_widget_get_accessible (GTK_WIDGET (entry));
-  gail_entry = GAIL_ENTRY (accessible);
-  if (!gail_entry->signal_name_delete)
-    {
-      gail_entry->signal_name_delete = "text_changed::delete";
-      gail_entry->position_delete = arg1;
-      gail_entry->length_delete = arg2 - arg1;
-    }
-  gail_entry_notify_delete (gail_entry);
-}
-
-static void
-_gail_entry_changed_cb (GtkEntry *entry)
-{
-  AtkObject *accessible;
-  GailEntry *gail_entry;
-
-  accessible = gtk_widget_get_accessible (GTK_WIDGET (entry));
-
-  gail_entry = GAIL_ENTRY (accessible);
-
-  text_setup (gail_entry, entry);
-}
-
-static gboolean 
-check_for_selection_change (GailEntry   *entry,
-                            GtkEntry    *gtk_entry)
-{
-  gboolean selected, ret_val = FALSE;
-  gint start_pos, end_pos;
-
-  selected = gtk_editable_get_selection_bounds (GTK_EDITABLE (gtk_entry),
-                                                &start_pos, &end_pos);
-  if (selected)
-    {
-      if (end_pos != entry->cursor_position ||
-          start_pos != entry->selection_bound)
-        /*
-         * This check is here as this function can be called
-         * for notification of selection_bound and current_pos.
-         * The values of current_pos and selection_bound may be the same 
-         * for both notifications and we only want to generate one
-         * text_selection_changed signal.
-         */
-        ret_val = TRUE;
-    }
-  else 
-    {
-      /* We had a selection */
-      ret_val = (entry->cursor_position != entry->selection_bound);
-    }
-  entry->cursor_position = end_pos;
-  entry->selection_bound = start_pos;
-
-  return ret_val;
-}
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
-  iface->do_action = gail_entry_do_action;
-  iface->get_n_actions = gail_entry_get_n_actions;
-  iface->get_description = gail_entry_action_get_description;
-  iface->get_keybinding = gail_entry_get_keybinding;
-  iface->get_name = gail_entry_action_get_name;
-  iface->set_description = gail_entry_action_set_description;
-}
-
-static gboolean
-gail_entry_do_action (AtkAction *action,
-                      gint      i)
-{
-  GailEntry *entry;
-  GtkWidget *widget;
-  gboolean return_value = TRUE;
-
-  entry = GAIL_ENTRY (action);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-
-  if (!gtk_widget_get_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  switch (i)
-    {
-    case 0:
-      if (entry->action_idle_handler)
-        return_value = FALSE;
-      else
-        entry->action_idle_handler = gdk_threads_add_idle (idle_do_action, entry);
-      break;
-    default:
-      return_value = FALSE;
-      break;
-    }
-  return return_value; 
-}
-
-static gboolean
-idle_do_action (gpointer data)
-{
-  GailEntry *entry;
-  GtkWidget *widget;
-
-  entry = GAIL_ENTRY (data);
-  entry->action_idle_handler = 0;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (entry));
-  if (widget == NULL /* State is defunct */ ||
-      !gtk_widget_get_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  gtk_widget_activate (widget);
-
-  return FALSE;
-}
-
-static gint
-gail_entry_get_n_actions (AtkAction *action)
-{
-  return 1;
-}
-
-static const gchar*
-gail_entry_action_get_description (AtkAction *action,
-                                   gint      i)
-{
-  GailEntry *entry;
-  const gchar *return_value;
-
-  entry = GAIL_ENTRY (action);
-  switch (i)
-    {
-    case 0:
-      return_value = entry->activate_description;
-      break;
-    default:
-      return_value = NULL;
-      break;
-    }
-  return return_value; 
-}
-
-static const gchar*
-gail_entry_get_keybinding (AtkAction *action,
-                           gint      i)
-{
-  GailEntry *entry;
-  gchar *return_value = NULL;
-
-  entry = GAIL_ENTRY (action);
-  switch (i)
-    {
-    case 0:
-      {
-        /*
-         * We look for a mnemonic on the label
-         */
-        GtkWidget *widget;
-        GtkWidget *label;
-        AtkRelationSet *set;
-        AtkRelation *relation;
-        GPtrArray *target;
-        gpointer target_object;
-        guint key_val; 
-
-        entry = GAIL_ENTRY (action);
-        widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (entry));
-        if (widget == NULL)
-          /*
-           * State is defunct
-           */
-          return NULL;
-
-        /* Find labelled-by relation */
-
-        set = atk_object_ref_relation_set (ATK_OBJECT (action));
-        if (!set)
-          return NULL;
-        label = NULL;
-        relation = atk_relation_set_get_relation_by_type (set, ATK_RELATION_LABELLED_BY);
-        if (relation)
-          {              
-            target = atk_relation_get_target (relation);
-          
-            target_object = g_ptr_array_index (target, 0);
-            label = gtk_accessible_get_widget (GTK_ACCESSIBLE (target_object));
-          }
-
-        g_object_unref (set);
-
-        if (GTK_IS_LABEL (label))
-          {
-            key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label)); 
-            if (key_val != GDK_KEY_VoidSymbol)
-              return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
-          }
-        g_free (entry->activate_keybinding);
-        entry->activate_keybinding = return_value;
-        break;
-      }
-    default:
-      break;
-    }
-  return return_value; 
-}
-
-static const gchar*
-gail_entry_action_get_name (AtkAction *action,
-                            gint      i)
-{
-  const gchar *return_value;
-
-  switch (i)
-    {
-    case 0:
-      return_value = "activate";
-      break;
-    default:
-      return_value = NULL;
-      break;
-  }
-  return return_value; 
-}
-
-static gboolean
-gail_entry_action_set_description (AtkAction      *action,
-                                   gint           i,
-                                   const gchar    *desc)
-{
-  GailEntry *entry;
-  gchar **value;
-
-  entry = GAIL_ENTRY (action);
-  switch (i)
-    {
-    case 0:
-      value = &entry->activate_description;
-      break;
-    default:
-      value = NULL;
-      break;
-    }
-
-  if (value)
-    {
-      g_free (*value);
-      *value = g_strdup (desc);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
diff --git a/modules/other/gail/gailentry.h b/modules/other/gail/gailentry.h
deleted file mode 100644 (file)
index 4387730..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_ENTRY_H__
-#define __GAIL_ENTRY_H__
-
-#include <gail/gailwidget.h>
-#include <libgail-util/gailtextutil.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_ENTRY                      (gail_entry_get_type ())
-#define GAIL_ENTRY(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_ENTRY, GailEntry))
-#define GAIL_ENTRY_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_ENTRY, GailEntryClass))
-#define GAIL_IS_ENTRY(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_ENTRY))
-#define GAIL_IS_ENTRY_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_ENTRY))
-#define GAIL_ENTRY_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_ENTRY, GailEntryClass))
-
-typedef struct _GailEntry              GailEntry;
-typedef struct _GailEntryClass         GailEntryClass;
-
-struct _GailEntry
-{
-  GailWidget parent;
-
-  GailTextUtil *textutil;
-  /*
-   * These fields store information about text changed
-   */
-  gchar          *signal_name_insert;
-  gchar          *signal_name_delete;
-  gint           position_insert;
-  gint           position_delete;
-  gint           length_insert;
-  gint           length_delete;
-  gint           cursor_position;
-  gint           selection_bound;
-
-  gchar          *activate_description;
-  gchar          *activate_keybinding;
-  guint          action_idle_handler;
-  guint          insert_idle_handler;
-};
-
-GType gail_entry_get_type (void);
-
-struct _GailEntryClass
-{
-  GailWidgetClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_ENTRY_H__ */
diff --git a/modules/other/gail/gailexpander.c b/modules/other/gail/gailexpander.c
deleted file mode 100644 (file)
index 559c686..0000000
+++ /dev/null
@@ -1,890 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-#include "gailexpander.h"
-#include <libgail-util/gailmisc.h>
-
-static void                  gail_expander_class_init       (GailExpanderClass *klass);
-static void                  gail_expander_init             (GailExpander      *expander);
-
-static const gchar* gail_expander_get_name         (AtkObject         *obj);
-static gint                  gail_expander_get_n_children   (AtkObject         *obj)
-;
-static AtkObject*            gail_expander_ref_child        (AtkObject         *obj,
-                                                             gint              i);
-
-static AtkStateSet*          gail_expander_ref_state_set    (AtkObject         *obj);
-static void                  gail_expander_real_notify_gtk  (GObject           *obj,
-                                                             GParamSpec        *pspec);
-static void                  gail_expander_map_gtk          (GtkWidget         *widget,
-                                                             gpointer          data);
-
-static void                  gail_expander_real_initialize  (AtkObject         *obj,
-                                                             gpointer          data);
-static void                  gail_expander_finalize         (GObject           *object);
-static void                  gail_expander_init_textutil    (GailExpander      *expander,
-                                                             GtkExpander       *widget);
-static const gchar* gail_expander_get_full_text    (GtkExpander       *widget);
-
-static void                  atk_action_interface_init  (AtkActionIface *iface);
-static gboolean              gail_expander_do_action    (AtkAction      *action,
-                                                         gint           i);
-static gboolean              idle_do_action             (gpointer       data);
-static gint                  gail_expander_get_n_actions(AtkAction      *action);
-static const gchar* gail_expander_get_description
-                                                        (AtkAction      *action,
-                                                         gint           i);
-static const gchar* gail_expander_get_keybinding
-                                                        (AtkAction      *action,
-                                                         gint           i);
-static const gchar* gail_expander_action_get_name
-                                                        (AtkAction      *action,
-                                                         gint           i);
-static gboolean              gail_expander_set_description
-                                                        (AtkAction      *action,
-                                                         gint           i,
-                                                         const gchar    *desc);
-
-/* atktext.h */ 
-static void      atk_text_interface_init          (AtkTextIface        *iface);
-
-static gchar*    gail_expander_get_text           (AtkText           *text,
-                                                    gint             start_pos,
-                                                   gint              end_pos);
-static gunichar          gail_expander_get_character_at_offset
-                                                   (AtkText          *text,
-                                                   gint              offset);
-static gchar*     gail_expander_get_text_before_offset
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*     gail_expander_get_text_at_offset (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*     gail_expander_get_text_after_offset
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gint      gail_expander_get_character_count(AtkText           *text);
-static void gail_expander_get_character_extents    (AtkText          *text,
-                                                   gint              offset,
-                                                   gint              *x,
-                                                   gint              *y,
-                                                   gint              *width,
-                                                   gint              *height,
-                                                   AtkCoordType      coords);
-static gint gail_expander_get_offset_at_point      (AtkText           *text,
-                                                    gint              x,
-                                                    gint              y,
-                                                   AtkCoordType      coords);
-static AtkAttributeSet* gail_expander_get_run_attributes 
-                                                   (AtkText           *text,
-                                                   gint              offset,
-                                                    gint             *start_offset,
-                                                   gint              *end_offset);
-static AtkAttributeSet* gail_expander_get_default_attributes
-                                                   (AtkText           *text);
-
-G_DEFINE_TYPE_WITH_CODE (GailExpander, gail_expander, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init))
-
-static void
-gail_expander_class_init (GailExpanderClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-  GailWidgetClass *widget_class;
-
-  widget_class = (GailWidgetClass*)klass;
-  widget_class->notify_gtk = gail_expander_real_notify_gtk;
-
-  gobject_class->finalize = gail_expander_finalize;
-
-  class->get_name = gail_expander_get_name;
-  class->get_n_children = gail_expander_get_n_children;
-  class->ref_child = gail_expander_ref_child;
-  class->ref_state_set = gail_expander_ref_state_set;
-
-  class->initialize = gail_expander_real_initialize;
-}
-
-static void
-gail_expander_init (GailExpander *expander)
-{
-  expander->activate_description = NULL;
-  expander->activate_keybinding = NULL;
-  expander->action_idle_handler = 0;
-  expander->textutil = NULL;
-}
-
-static const gchar*
-gail_expander_get_name (AtkObject *obj)
-{
-  const gchar *name;
-  g_return_val_if_fail (GAIL_IS_EXPANDER (obj), NULL);
-
-  name = ATK_OBJECT_CLASS (gail_expander_parent_class)->get_name (obj);
-  if (name != NULL)
-    return name;
-  else
-    {
-      /*
-       * Get the text on the label
-       */
-      GtkWidget *widget;
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-      if (widget == NULL)
-        /*
-         * State is defunct
-         */
-        return NULL;
-
-      g_return_val_if_fail (GTK_IS_EXPANDER (widget), NULL);
-
-      return gail_expander_get_full_text (GTK_EXPANDER (widget));
-    }
-}
-
-static gint
-gail_expander_get_n_children (AtkObject* obj)
-{
-  GtkWidget *widget;
-  GList *children;
-  gint count = 0;
-
-  g_return_val_if_fail (GAIL_IS_CONTAINER (obj), count);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    return 0;
-
-  children = gtk_container_get_children (GTK_CONTAINER(widget));
-  count = g_list_length (children);
-  g_list_free (children);
-
-  /* See if there is a label - if there is, reduce our count by 1
-   * since we don't want the label included with the children.
-   */
-  if (gtk_expander_get_label_widget (GTK_EXPANDER (widget)))
-    count -= 1;
-
-  return count; 
-}
-
-static AtkObject*
-gail_expander_ref_child (AtkObject *obj,
-                         gint      i)
-{
-  GList *children, *tmp_list;
-  AtkObject *accessible;
-  GtkWidget *widget;
-  GtkWidget *label;
-  gint index;
-
-  g_return_val_if_fail (GAIL_IS_CONTAINER (obj), NULL);
-  g_return_val_if_fail ((i >= 0), NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    return NULL;
-
-  children = gtk_container_get_children (GTK_CONTAINER (widget));
-
-  /* See if there is a label - if there is, we need to skip it
-   * since we don't want the label included with the children.
-   */
-  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
-  if (label) {
-    for (index = 0; index <= i; index++) {
-      tmp_list = g_list_nth (children, index);
-      if (label == GTK_WIDGET (tmp_list->data)) {
-       i += 1;
-       break;
-      }
-    }
-  }
-
-  tmp_list = g_list_nth (children, i);
-  if (!tmp_list)
-    {
-      g_list_free (children);
-      return NULL;
-    }  
-  accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
-
-  g_list_free (children);
-  g_object_ref (accessible);
-  return accessible; 
-}
-
-static void
-gail_expander_real_initialize (AtkObject *obj,
-                               gpointer   data)
-{
-  GailExpander *gail_expander = GAIL_EXPANDER (obj);
-  GtkWidget  *expander;
-
-  ATK_OBJECT_CLASS (gail_expander_parent_class)->initialize (obj, data);
-
-  expander = GTK_WIDGET (data);
-  if (gtk_widget_get_mapped (expander))
-    gail_expander_init_textutil (gail_expander, GTK_EXPANDER (expander));
-  else 
-    g_signal_connect (expander,
-                      "map",
-                      G_CALLBACK (gail_expander_map_gtk),
-                      gail_expander);
-  obj->role = ATK_ROLE_TOGGLE_BUTTON;
-}
-
-static void
-gail_expander_map_gtk (GtkWidget *widget,
-                       gpointer data)
-{
-  GailExpander *expander; 
-
-  expander = GAIL_EXPANDER (data);
-  gail_expander_init_textutil (expander, GTK_EXPANDER (widget));
-}
-
-static void
-gail_expander_real_notify_gtk (GObject    *obj,
-                               GParamSpec *pspec)
-{
-  AtkObject* atk_obj;
-  GtkExpander *expander;
-  GailExpander *gail_expander;
-
-  expander = GTK_EXPANDER (obj);
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (expander));
-;
-  if (strcmp (pspec->name, "label") == 0)
-    {
-      const gchar* label_text;
-
-
-      label_text = gail_expander_get_full_text (expander);
-
-      gail_expander = GAIL_EXPANDER (atk_obj);
-      if (gail_expander->textutil)
-        gail_text_util_text_setup (gail_expander->textutil, label_text);
-
-      if (atk_obj->name == NULL)
-      {
-        /*
-         * The label has changed so notify a change in accessible-name
-         */
-        g_object_notify (G_OBJECT (atk_obj), "accessible-name");
-      }
-      /*
-       * The label is the only property which can be changed
-       */
-      g_signal_emit_by_name (atk_obj, "visible_data_changed");
-    }
-  else if (strcmp (pspec->name, "expanded") == 0)
-    {
-      atk_object_notify_state_change (atk_obj, ATK_STATE_CHECKED, 
-                                      gtk_expander_get_expanded (expander));
-      atk_object_notify_state_change (atk_obj, ATK_STATE_EXPANDED, 
-                                      gtk_expander_get_expanded (expander));
-      g_signal_emit_by_name (atk_obj, "visible_data_changed");
-    }
-  else
-    GAIL_WIDGET_CLASS (gail_expander_parent_class)->notify_gtk (obj, pspec);
-}
-
-static const gchar*
-gail_expander_get_full_text (GtkExpander *widget)
-{
-  GtkWidget *label_widget;
-
-  label_widget = gtk_expander_get_label_widget (widget);
-
-  if (!GTK_IS_LABEL (label_widget))
-    return NULL;
-
-  return gtk_label_get_text (GTK_LABEL (label_widget));
-}
-
-static void
-gail_expander_init_textutil (GailExpander *expander,
-                             GtkExpander  *widget)
-{
-  const gchar *label_text;
-
-  expander->textutil = gail_text_util_new ();
-  label_text = gail_expander_get_full_text (widget);
-  gail_text_util_text_setup (expander->textutil, label_text);
-}
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
-  iface->do_action = gail_expander_do_action;
-  iface->get_n_actions = gail_expander_get_n_actions;
-  iface->get_description = gail_expander_get_description;
-  iface->get_keybinding = gail_expander_get_keybinding;
-  iface->get_name = gail_expander_action_get_name;
-  iface->set_description = gail_expander_set_description;
-}
-
-static gboolean
-gail_expander_do_action (AtkAction *action,
-                         gint      i)
-{
-  GtkWidget *widget;
-  GailExpander *expander;
-  gboolean return_value = TRUE;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-
-  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  expander = GAIL_EXPANDER (action);
-  switch (i)
-    {
-    case 0:
-      if (expander->action_idle_handler)
-        return_value = FALSE;
-      else
-       expander->action_idle_handler = gdk_threads_add_idle (idle_do_action, expander);
-      break;
-    default:
-      return_value = FALSE;
-      break;
-    }
-  return return_value; 
-}
-
-static gboolean
-idle_do_action (gpointer data)
-{
-  GtkWidget *widget;
-  GailExpander *gail_expander;
-
-  gail_expander = GAIL_EXPANDER (data);
-  gail_expander->action_idle_handler = 0;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (gail_expander));
-  if (widget == NULL /* State is defunct */ ||
-      !gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  gtk_widget_activate (widget);
-
-  return FALSE;
-}
-
-static gint
-gail_expander_get_n_actions (AtkAction *action)
-{
-  return 1;
-}
-
-static const gchar*
-gail_expander_get_description (AtkAction *action,
-                               gint      i)
-{
-  GailExpander *expander;
-  const gchar *return_value;
-
-  expander = GAIL_EXPANDER (action);
-
-  switch (i)
-    {
-    case 0:
-      return_value = expander->activate_description;
-      break;
-    default:
-      return_value = NULL;
-      break;
-    }
-  return return_value; 
-}
-
-static const gchar*
-gail_expander_get_keybinding (AtkAction *action,
-                              gint      i)
-{
-  GailExpander *expander;
-  gchar *return_value = NULL;
-
-  switch (i)
-    {
-    case 0:
-      {
-        /*
-         * We look for a mnemonic on the label
-         */
-        GtkWidget *widget;
-        GtkWidget *label;
-
-        expander = GAIL_EXPANDER (action);
-        widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (expander));
-        if (widget == NULL)
-          /*
-           * State is defunct
-           */
-          return NULL;
-
-        g_return_val_if_fail (GTK_IS_EXPANDER (widget), NULL);
-
-        label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
-        if (GTK_IS_LABEL (label))
-          {
-            guint key_val; 
-
-            key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label)); 
-            if (key_val != GDK_KEY_VoidSymbol)
-              return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
-            g_free (expander->activate_keybinding);
-            expander->activate_keybinding = return_value;
-          }
-        break;
-      }
-    default:
-      break;
-    }
-  return return_value; 
-}
-
-static const gchar*
-gail_expander_action_get_name (AtkAction *action,
-                               gint      i)
-{
-  const gchar *return_value;
-
-  switch (i)
-    {
-    case 0:
-      return_value = "activate";
-      break;
-    default:
-      return_value = NULL;
-      break;
-    }
-  return return_value; 
-}
-
-static gboolean
-gail_expander_set_description (AtkAction      *action,
-                               gint           i,
-                               const gchar    *desc)
-{
-  GailExpander *expander;
-  gchar **value;
-
-  expander = GAIL_EXPANDER (action);
-
-  switch (i)
-    {
-    case 0:
-      value = &expander->activate_description;
-      break;
-    default:
-      value = NULL;
-      break;
-    }
-  if (value)
-    {
-      g_free (*value);
-      *value = g_strdup (desc);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static AtkStateSet*
-gail_expander_ref_state_set (AtkObject *obj)
-{
-  AtkStateSet *state_set;
-  GtkWidget *widget;
-  GtkExpander *expander;
-
-  state_set = ATK_OBJECT_CLASS (gail_expander_parent_class)->ref_state_set (obj);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-
-  if (widget == NULL)
-    return state_set;
-
-  expander = GTK_EXPANDER (widget);
-
-  atk_state_set_add_state (state_set, ATK_STATE_EXPANDABLE);
-
-  if (gtk_expander_get_expanded (expander)) {
-    atk_state_set_add_state (state_set, ATK_STATE_CHECKED);
-    atk_state_set_add_state (state_set, ATK_STATE_EXPANDED);
-  }
-
-  return state_set;
-}
-
-/* atktext.h */
-
-static void
-atk_text_interface_init (AtkTextIface *iface)
-{
-  iface->get_text = gail_expander_get_text;
-  iface->get_character_at_offset = gail_expander_get_character_at_offset;
-  iface->get_text_before_offset = gail_expander_get_text_before_offset;
-  iface->get_text_at_offset = gail_expander_get_text_at_offset;
-  iface->get_text_after_offset = gail_expander_get_text_after_offset;
-  iface->get_character_count = gail_expander_get_character_count;
-  iface->get_character_extents = gail_expander_get_character_extents;
-  iface->get_offset_at_point = gail_expander_get_offset_at_point;
-  iface->get_run_attributes = gail_expander_get_run_attributes;
-  iface->get_default_attributes = gail_expander_get_default_attributes;
-}
-
-static gchar*
-gail_expander_get_text (AtkText *text,
-                        gint    start_pos,
-                        gint    end_pos)
-{
-  GtkWidget *widget;
-  GailExpander *expander;
-  const gchar *label_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  expander = GAIL_EXPANDER (text);
-  if (!expander->textutil) 
-    gail_expander_init_textutil (expander, GTK_EXPANDER (widget));
-
-  label_text = gail_expander_get_full_text (GTK_EXPANDER (widget));
-
-  if (label_text == NULL)
-    return NULL;
-  else
-    return gail_text_util_get_substring (expander->textutil, 
-                                         start_pos, end_pos);
-}
-
-static gchar*
-gail_expander_get_text_before_offset (AtkText         *text,
-                                     gint            offset,
-                                     AtkTextBoundary boundary_type,
-                                     gint            *start_offset,
-                                     gint            *end_offset)
-{
-  GtkWidget *widget;
-  GailExpander *expander;
-  GtkWidget *label;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  expander = GAIL_EXPANDER (text);
-  if (!expander->textutil) 
-    gail_expander_init_textutil (expander, GTK_EXPANDER (widget));
-
-  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-  return gail_text_util_get_text (expander->textutil,
-                           gtk_label_get_layout (GTK_LABEL (label)),
-                           GAIL_BEFORE_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset); 
-}
-
-static gchar*
-gail_expander_get_text_at_offset (AtkText         *text,
-                                 gint            offset,
-                                 AtkTextBoundary boundary_type,
-                                 gint            *start_offset,
-                                 gint            *end_offset)
-{
-  GtkWidget *widget;
-  GailExpander *expander;
-  GtkWidget *label;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  expander = GAIL_EXPANDER (text);
-  if (!expander->textutil) 
-    gail_expander_init_textutil (expander, GTK_EXPANDER (widget));
-
-  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-  return gail_text_util_get_text (expander->textutil,
-                           gtk_label_get_layout (GTK_LABEL (label)),
-                           GAIL_AT_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset);
-}
-
-static gchar*
-gail_expander_get_text_after_offset (AtkText         *text,
-                                    gint            offset,
-                                    AtkTextBoundary boundary_type,
-                                    gint            *start_offset,
-                                    gint            *end_offset)
-{
-  GtkWidget *widget;
-  GailExpander *expander;
-  GtkWidget *label;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  expander = GAIL_EXPANDER (text);
-  if (!expander->textutil) 
-    gail_expander_init_textutil (expander, GTK_EXPANDER (widget));
-
-  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-  return gail_text_util_get_text (expander->textutil,
-                           gtk_label_get_layout (GTK_LABEL (label)),
-                           GAIL_AFTER_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset);
-}
-
-static gint
-gail_expander_get_character_count (AtkText *text)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
-  if (!GTK_IS_LABEL(label))
-    return 0;
-
-  return g_utf8_strlen (gtk_label_get_text (GTK_LABEL (label)), -1);
-}
-
-static void
-gail_expander_get_character_extents (AtkText      *text,
-                                    gint         offset,
-                                    gint         *x,
-                                    gint       *y,
-                                     gint      *width,
-                                     gint      *height,
-                                    AtkCoordType coords)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  PangoRectangle char_rect;
-  gint index, x_layout, y_layout;
-  const gchar *label_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
-  if (!GTK_IS_LABEL(label))
-    return;
-  
-  gtk_label_get_layout_offsets (GTK_LABEL (label), &x_layout, &y_layout);
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  index = g_utf8_offset_to_pointer (label_text, offset) - label_text;
-  pango_layout_index_to_pos (gtk_label_get_layout (GTK_LABEL (label)), index, &char_rect);
-  
-  gail_misc_get_extents_from_pango_rectangle (label, &char_rect, 
-                    x_layout, y_layout, x, y, width, height, coords);
-} 
-
-static gint 
-gail_expander_get_offset_at_point (AtkText      *text,
-                                   gint         x,
-                                   gint         y,
-                                  AtkCoordType coords)
-{ 
-  GtkWidget *widget;
-  GtkWidget *label;
-  gint index, x_layout, y_layout;
-  const gchar *label_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
-
-  if (!GTK_IS_LABEL(label))
-    return -1;
-  
-  gtk_label_get_layout_offsets (GTK_LABEL (label), &x_layout, &y_layout);
-  
-  index = gail_misc_get_index_at_point_in_layout (label, 
-                                              gtk_label_get_layout (GTK_LABEL (label)), 
-                                              x_layout, y_layout, x, y, coords);
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  if (index == -1)
-    {
-      if (coords == ATK_XY_WINDOW || coords == ATK_XY_SCREEN)
-        return g_utf8_strlen (label_text, -1);
-
-      return index;  
-    }
-  else
-    return g_utf8_pointer_to_offset (label_text, label_text + index);  
-}
-
-static AtkAttributeSet*
-gail_expander_get_run_attributes (AtkText *text,
-                                  gint           offset,
-                                  gint           *start_offset,
-                                 gint    *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  AtkAttributeSet *at_set = NULL;
-  GtkJustification justify;
-  GtkTextDirection dir;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-  
-  /* Get values set for entire label, if any */
-  justify = gtk_label_get_justify (GTK_LABEL (label));
-  if (justify != GTK_JUSTIFY_CENTER)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_JUSTIFICATION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_JUSTIFICATION, justify)));
-    }
-  dir = gtk_widget_get_direction (label);
-  if (dir == GTK_TEXT_DIR_RTL)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_DIRECTION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION, dir)));
-    }
-
-  at_set = gail_misc_layout_get_run_attributes (at_set,
-                                                gtk_label_get_layout (GTK_LABEL (label)),
-                                                (gchar *) gtk_label_get_text (GTK_LABEL (label)),
-                                                offset,
-                                                start_offset,
-                                                end_offset);
-  return at_set;
-}
-
-static AtkAttributeSet*
-gail_expander_get_default_attributes (AtkText *text)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  AtkAttributeSet *at_set = NULL;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  at_set = gail_misc_get_default_attributes (at_set,
-                                             gtk_label_get_layout (GTK_LABEL (label)),
-                                             widget);
-  return at_set;
-}
-
-static gunichar 
-gail_expander_get_character_at_offset (AtkText *text,
-                                       gint    offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  const gchar *string;
-  gchar *index;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return '\0';
-
-  label = gtk_expander_get_label_widget (GTK_EXPANDER (widget));
-
-  if (!GTK_IS_LABEL(label))
-    return '\0';
-  string = gtk_label_get_text (GTK_LABEL (label));
-  if (offset >= g_utf8_strlen (string, -1))
-    return '\0';
-  index = g_utf8_offset_to_pointer (string, offset);
-
-  return g_utf8_get_char (index);
-}
-
-static void
-gail_expander_finalize (GObject *object)
-{
-  GailExpander *expander = GAIL_EXPANDER (object);
-
-  g_free (expander->activate_description);
-  g_free (expander->activate_keybinding);
-  if (expander->action_idle_handler)
-    {
-      g_source_remove (expander->action_idle_handler);
-      expander->action_idle_handler = 0;
-    }
-  if (expander->textutil)
-    g_object_unref (expander->textutil);
-
-  G_OBJECT_CLASS (gail_expander_parent_class)->finalize (object);
-}
diff --git a/modules/other/gail/gailexpander.h b/modules/other/gail/gailexpander.h
deleted file mode 100644 (file)
index 0e958b5..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_EXPANDER_H__
-#define __GAIL_EXPANDER_H__
-
-#include <gail/gailcontainer.h>
-#include <libgail-util/gailtextutil.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_EXPANDER              (gail_expander_get_type ())
-#define GAIL_EXPANDER(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_EXPANDER, GailExpander))
-#define GAIL_EXPANDER_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_EXPANDER, GailExpanderClass))
-#define GAIL_IS_EXPANDER(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_EXPANDER))
-#define GAIL_IS_EXPANDER_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_EXPANDER))
-#define GAIL_EXPANDER_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_EXPANDER, GailExpanderClass))
-
-typedef struct _GailExpander              GailExpander;
-typedef struct _GailExpanderClass         GailExpanderClass;
-
-struct _GailExpander
-{
-  GailContainer parent;
-
-  gchar         *activate_description;
-  gchar         *activate_keybinding;
-  guint         action_idle_handler;
-
-  GailTextUtil   *textutil;
-};
-
-GType gail_expander_get_type (void);
-
-struct _GailExpanderClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_EXPANDER_H__ */
diff --git a/modules/other/gail/gailfactory.h b/modules/other/gail/gailfactory.h
deleted file mode 100644 (file)
index d9d2221..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2002 Sun Microsystems Inc.
- * Copyright (C) 1998-1999, 2000-2001 Tim Janik and Red Hat, Inc.
- * Copyright (C) 2007 Christian Persch
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef _GAIL_FACTORY_H__
-#define _GAIL_FACTORY_H__
-
-#include <glib-object.h>
-#include <atk/atk.h>
-
-#define _GAIL_IMPLEMENT_FACTORY_CREATE_ACCESSIBLE(GAIL_TYPE, TYPE) \
-{ \
-  AtkObject *accessible; \
-\
-  g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (object, TYPE), NULL); \
-\
-  accessible = g_object_new (GAIL_TYPE, NULL); \
-  atk_object_initialize (accessible, object); \
-\
-  return accessible; \
-}
-
-#define _GAIL_IMPLEMENT_FACTORY_BEGIN(GAIL_TYPE, TypeName, type_name) \
-\
-static GType \
-type_name##_factory_get_accessible_type (void) \
-{ \
-  return GAIL_TYPE; \
-} \
-\
-static AtkObject* \
-type_name##_factory_create_accessible (GObject *object) \
-{
-
-#define _GAIL_IMPLEMENT_FACTORY_END(GAIL_TYPE, TypeName, type_name) \
-} \
-\
-static void \
-type_name##_factory_class_init (AtkObjectFactoryClass *klass) \
-{ \
-  klass->create_accessible   = type_name ## _factory_create_accessible;        \
-  klass->get_accessible_type = type_name ## _factory_get_accessible_type;\
-} \
-\
-GType \
-type_name##_factory_get_type (void) \
-{ \
-  static volatile gsize g_define_type_id__volatile = 0; \
-  if (g_once_init_enter (&g_define_type_id__volatile)) \
-    { \
-      GType g_define_type_id = \
-        g_type_register_static_simple (ATK_TYPE_OBJECT_FACTORY, \
-                                       g_intern_static_string (#TypeName "Factory"), \
-                                       sizeof (AtkObjectFactoryClass), \
-                                       (GClassInitFunc) type_name##_factory_class_init, \
-                                       sizeof (AtkObjectFactory), \
-                                       (GInstanceInitFunc) NULL, \
-                                       (GTypeFlags) 0); \
-      g_once_init_leave (&g_define_type_id__volatile, g_define_type_id); \
-    } \
-  return g_define_type_id__volatile; \
-}
-
-/* Implements a AtkObjectFactory creating accessibles of type
- * @GAIL_TYPE for objects of type @TYPE.
- */
-#define GAIL_IMPLEMENT_FACTORY(GAIL_TYPE, TypeName, type_name, TYPE) \
-_GAIL_IMPLEMENT_FACTORY_BEGIN (GAIL_TYPE, TypeName, type_name) \
-_GAIL_IMPLEMENT_FACTORY_CREATE_ACCESSIBLE (GAIL_TYPE, TYPE) \
-_GAIL_IMPLEMENT_FACTORY_END (GAIL_TYPE, TypeName, type_name)
-
-/* Implements a AtkObjectFactory creating accessibles of type
- * @GAIL_TYPE with creation func @create_accessible.
- */
-#define GAIL_IMPLEMENT_FACTORY_WITH_FUNC(GAIL_TYPE, TypeName, type_name, create_accessible) \
-_GAIL_IMPLEMENT_FACTORY_BEGIN (GAIL_TYPE, TypeName, type_name) \
-{ return create_accessible (GTK_WIDGET (object)); } \
-_GAIL_IMPLEMENT_FACTORY_END (GAIL_TYPE, TypeName, type_name)
-
-#define GAIL_IMPLEMENT_FACTORY_WITH_FUNC_DUMMY(GAIL_TYPE, TypeName, type_name, TYPE, create_accessible) \
-_GAIL_IMPLEMENT_FACTORY_BEGIN (GAIL_TYPE, TypeName, type_name) \
-{ \
-  g_return_val_if_fail (G_TYPE_CHECK_INSTANCE_TYPE (object, TYPE), NULL);\
-  return create_accessible (); \
-} \
-_GAIL_IMPLEMENT_FACTORY_END (GAIL_TYPE, TypeName, type_name)
-
-#define GAIL_WIDGET_SET_FACTORY(widget_type, type_as_function)                 \
-       atk_registry_set_factory_type (atk_get_default_registry (),             \
-                                      widget_type,                             \
-                                      type_as_function ## _factory_get_type ())
-
-#endif /* _GAIL_FACTORY_H__ */
diff --git a/modules/other/gail/gailframe.c b/modules/other/gail/gailframe.c
deleted file mode 100644 (file)
index 7806837..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include "gailframe.h"
-
-static void                  gail_frame_class_init       (GailFrameClass  *klass);
-static void                  gail_frame_init             (GailFrame       *frame);
-static void                  gail_frame_initialize       (AtkObject       *accessible,
-                                                          gpointer         data);
-static const gchar* gail_frame_get_name         (AtkObject       *obj);
-
-G_DEFINE_TYPE (GailFrame, gail_frame, GAIL_TYPE_CONTAINER)
-
-static void
-gail_frame_class_init (GailFrameClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->initialize = gail_frame_initialize;
-  class->get_name = gail_frame_get_name;
-}
-
-static void
-gail_frame_init (GailFrame       *frame)
-{
-}
-
-static void
-gail_frame_initialize (AtkObject *accessible,
-                       gpointer  data)
-{
-  ATK_OBJECT_CLASS (gail_frame_parent_class)->initialize (accessible, data);
-
-  accessible->role = ATK_ROLE_PANEL;
-}
-
-static const gchar*
-gail_frame_get_name (AtkObject *obj)
-{
-  const gchar *name;
-  g_return_val_if_fail (GAIL_IS_FRAME (obj), NULL);
-
-  name = ATK_OBJECT_CLASS (gail_frame_parent_class)->get_name (obj);
-  if (name != NULL)
-  {
-    return name;
-  }
-  else
-  {
-    /*
-     * Get the text on the label
-     */
-    GtkWidget *widget;
-
-    widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-    if (widget == NULL)
-    {
-      /*
-       * State is defunct
-       */
-      return NULL;
-    }
-    return gtk_frame_get_label (GTK_FRAME (widget));
-  }
-}
diff --git a/modules/other/gail/gailframe.h b/modules/other/gail/gailframe.h
deleted file mode 100644 (file)
index 4c832ed..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_FRAME_H__
-#define __GAIL_FRAME_H__
-
-#include <gail/gailcontainer.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_FRAME                      (gail_frame_get_type ())
-#define GAIL_FRAME(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_FRAME, GailFrame))
-#define GAIL_FRAME_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_FRAME, GailFrameClass))
-#define GAIL_IS_FRAME(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_FRAME))
-#define GAIL_IS_FRAME_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_FRAME))
-#define GAIL_FRAME_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_FRAME, GailFrameClass))
-
-typedef struct _GailFrame                   GailFrame;
-typedef struct _GailFrameClass              GailFrameClass;
-
-struct _GailFrame
-{
-  GailContainer parent;
-};
-
-GType gail_frame_get_type (void);
-
-struct _GailFrameClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_FRAME_H__ */
diff --git a/modules/other/gail/gailhtmlbox.c b/modules/other/gail/gailhtmlbox.c
deleted file mode 100644 (file)
index 7db6111..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailhtmlbox.h"
-#include "gailhtmlview.h"
-#include <libgtkhtml/layout/htmlbox.h>
-
-static void         gail_html_box_class_init               (GailHtmlBoxClass  *klass);
-static void         gail_html_box_initialize               (AtkObject         *obj,
-                                                            gpointer          data);
-static gint         gail_html_box_get_index_in_parent      (AtkObject         *obj);
-static AtkStateSet* gail_html_box_ref_state_set                   (AtkObject         *obj);
-
-static void         gail_html_box_component_interface_init (AtkComponentIface *iface);
-static guint        gail_html_box_add_focus_handler        (AtkComponent      *component,
-                                                            AtkFocusHandler   handler);
-static void         gail_html_box_get_extents              (AtkComponent      *component,
-                                                            gint              *x,
-                                                            gint              *y,
-                                                            gint              *width,
-                                                            gint              *height,
-                                                            AtkCoordType      coord_type);
-static gboolean     gail_html_box_grab_focus               (AtkComponent      *component);
-static void         gail_html_box_remove_focus_handler     (AtkComponent      *component,
-                                                            guint             handler_id);
-
-G_DEFINE_TYPE_WITH_CODE (GailHtmlBox, gail_html_box, ATK_TYPE_GOBJECT,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, gail_html_box_component_interface_init))
-
-static void
-gail_html_box_class_init (GailHtmlBoxClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->get_index_in_parent = gail_html_box_get_index_in_parent;
-  class->ref_state_set = gail_html_box_ref_state_set;
-  class->initialize = gail_html_box_initialize;
-}
-
-static void
-gail_html_box_initialize (AtkObject *obj,
-                          gpointer  data)
-{
-  HtmlBox *box;
-
-  ATK_OBJECT_CLASS (gail_html_box_parent_class)->initialize (obj, data);
-
-  obj->role = ATK_ROLE_UNKNOWN;
-
-  box = HTML_BOX (data);
-
-  /*
-   * We do not set the parent here for the root node of a HtmlView
-   */
-  if (box->parent)
-    { 
-      atk_object_set_parent (obj,
-                        atk_gobject_get_accessible (G_OBJECT (box->parent)));
-    }
-}
-
-static gint
-gail_html_box_get_index_in_parent (AtkObject *obj)
-{
-  AtkObject *parent;
-  AtkGObject *atk_gobj;
-  HtmlBox *box;
-  HtmlBox *parent_box;
-  gint n_children = 0;
-  GObject *g_obj;
-
-  g_return_val_if_fail (GAIL_IS_HTML_BOX (obj), -1);
-
-  atk_gobj = ATK_GOBJECT (obj);
-  g_obj = atk_gobject_get_object (atk_gobj);
-  if (g_obj == NULL)
-    return -1;
-
-  g_return_val_if_fail (HTML_IS_BOX (g_obj), -1);
-  box = HTML_BOX (g_obj);
-  parent = atk_object_get_parent (obj);
-  if (GAIL_IS_HTML_VIEW (parent))
-    {
-      return 0;
-    }
-  else if (ATK_IS_GOBJECT (parent))
-    {
-      parent_box = HTML_BOX (atk_gobject_get_object (ATK_GOBJECT (parent)));
-    }
-  else
-    {
-      g_assert_not_reached ();
-      return -1;
-    }
-
-  if (parent_box)
-    {
-      HtmlBox *child;
-
-      child = parent_box->children;
-
-      while (child)
-        {
-          if (child == box)
-            return n_children;
-
-          n_children++;
-          child = child->next;
-        }
-    }
-  return -1;
-}
-
-static AtkStateSet*
-gail_html_box_ref_state_set (AtkObject   *obj)
-{
-  AtkGObject *atk_gobj;
-  GObject *g_obj;
-  AtkStateSet *state_set;
-
-  g_return_val_if_fail (GAIL_IS_HTML_BOX (obj), NULL);
-  atk_gobj = ATK_GOBJECT (obj);
-  state_set = ATK_OBJECT_CLASS (gail_html_box_parent_class)->ref_state_set (obj);
-
-  g_obj = atk_gobject_get_object (atk_gobj);
-  if (g_obj == NULL)
-    {
-      /* Object is defunct */
-      atk_state_set_add_state (state_set, ATK_STATE_DEFUNCT);
-    }
-  else
-    {
-      HtmlBox *box;
-  
-      box = HTML_BOX (g_obj);
-
-      if (HTML_BOX_GET_STYLE (box)->display != HTML_DISPLAY_NONE)
-        {
-          atk_state_set_add_state (state_set, ATK_STATE_VISIBLE);
-          atk_state_set_add_state (state_set, ATK_STATE_SHOWING);
-        }
-    }
-  return state_set;
-} 
-
-static void
-gail_html_box_component_interface_init (AtkComponentIface *iface)
-{
-  /*
-   * Use default implementation for contains and get_position
-   */
-  iface->contains = NULL;
-  iface->get_position = NULL;
-  iface->add_focus_handler = gail_html_box_add_focus_handler;
-  iface->get_extents = gail_html_box_get_extents;
-  iface->get_size = NULL;
-  iface->grab_focus = gail_html_box_grab_focus;
-  iface->remove_focus_handler = gail_html_box_remove_focus_handler;
-  iface->set_extents = NULL;
-  iface->set_position = NULL;
-  iface->set_size = NULL;
-}
-
-static guint
-gail_html_box_add_focus_handler (AtkComponent    *component,
-                                 AtkFocusHandler handler)
-{
-  return g_signal_connect_closure (component, 
-                                   "focus-event",
-                                   g_cclosure_new (
-                                                  G_CALLBACK (handler), NULL,
-                                                  (GClosureNotify) NULL),
-                                   FALSE);
-}
-
-static void
-gail_html_box_get_extents (AtkComponent *component,
-                           gint         *x,
-                           gint         *y,
-                           gint         *width,
-                           gint         *height,
-                           AtkCoordType coord_type)
-{
-  AtkGObject *atk_gobj;
-  HtmlBox *box;
-  GObject *g_obj;
-
-  g_return_if_fail (GAIL_IS_HTML_BOX (component));
-
-  atk_gobj = ATK_GOBJECT (component);
-  g_obj = atk_gobject_get_object (atk_gobj);
-  if (g_obj == NULL)
-    return;
-
-  g_return_if_fail (HTML_IS_BOX (g_obj));
-  box = HTML_BOX (g_obj);
-
-  *x = html_box_get_absolute_x (box);
-  *y = html_box_get_absolute_y (box);
-  *width = box->width;
-  *height = box->height;
-
-  g_print ("%d %d %d %d\n",
-           html_box_get_absolute_x (box),
-           html_box_get_absolute_y (box),
-           html_box_get_containing_block_width (box),
-           html_box_get_containing_block_height (box));
-}
-
-static gboolean
-gail_html_box_grab_focus (AtkComponent    *component)
-{
-  return TRUE;
-}
-
-static void
-gail_html_box_remove_focus_handler (AtkComponent *component,
-                                    guint        handler_id)
-{
-  g_signal_handler_disconnect (ATK_OBJECT (component), handler_id);
-}
diff --git a/modules/other/gail/gailhtmlbox.h b/modules/other/gail/gailhtmlbox.h
deleted file mode 100644 (file)
index eef67f4..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_HTML_BOX_H__
-#define __GAIL_HTML_BOX_H__
-
-#include <atk/atk.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_HTML_BOX                   (gail_html_box_get_type ())
-#define GAIL_HTML_BOX(obj)                   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_HTML_BOX, GailHtmlBox))
-#define GAIL_HTML_BOX_CLASS(klass)           (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_HTML_BOX, GailHtmlBoxClass))
-#define GAIL_IS_HTML_BOX(obj)                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_HTML_BOX))
-#define GAIL_IS_HTML_BOX_CLASS(klass)        (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_HTML_BOX))
-#define GAIL_HTML_BOX_GET_CLASS(obj)         (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_HTML_BOX, GailHtmlBoxClass))
-
-typedef struct _GailHtmlBox                 GailHtmlBox;
-typedef struct _GailHtmlBoxClass            GailHtmlBoxClass;
-
-struct _GailHtmlBox
-{
-  AtkGObject parent;
-};
-
-struct _GailHtmlBoxClass
-{
-  AtkGObjectClass parent_class;
-};
-
-GType gail_html_box_get_type (void);
-
-G_END_DECLS
-
-#endif /* __GAIL_HTML_BOX_H__ */
diff --git a/modules/other/gail/gailhtmlboxblock.c b/modules/other/gail/gailhtmlboxblock.c
deleted file mode 100644 (file)
index a9b47d4..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <libgtkhtml/gtkhtml.h>
-#include "gailhtmlboxblock.h"
-
-static void       gail_html_box_block_class_init      (GailHtmlBoxBlockClass *klass);
-static gint       gail_html_box_block_get_n_children  (AtkObject             *obj);
-static AtkObject* gail_html_box_block_ref_child       (AtkObject             *obj,
-                                                       gint                  i);
-
-G_DEFINE_TYPE (GailHtmlBoxBlock, gail_html_box_block, GAIL_TYPE_HTML_BOX)
-
-AtkObject*
-gail_html_box_block_new (GObject *obj)
-{
-  GObject *object;
-  AtkObject *atk_object;
-
-  g_return_val_if_fail (HTML_IS_BOX_BLOCK (obj), NULL);
-  object = g_object_new (GAIL_TYPE_HTML_BOX_BLOCK, NULL);
-  atk_object = ATK_OBJECT (object);
-  atk_object_initialize (atk_object, obj);
-  atk_object->role = ATK_ROLE_PANEL;
-  return atk_object;
-}
-
-static void
-gail_html_box_block_class_init (GailHtmlBoxBlockClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->get_n_children = gail_html_box_block_get_n_children;
-  class->ref_child = gail_html_box_block_ref_child;
-}
-
-static gint
-gail_html_box_block_get_n_children (AtkObject *obj)
-{
-  AtkGObject *atk_gobject;
-  HtmlBox *box;
-  gint n_children = 0;
-  GObject *g_obj;
-
-  g_return_val_if_fail (GAIL_IS_HTML_BOX_BLOCK (obj), 0);
-  atk_gobject = ATK_GOBJECT (obj); 
-  g_obj = atk_gobject_get_object (atk_gobject);
-  if (g_obj == NULL)
-    return 0;
-
-  g_return_val_if_fail (HTML_IS_BOX (g_obj), 0);
-  box = HTML_BOX (g_obj);
-
-  if (box)
-    {
-      HtmlBox *child;
-
-      child = box->children;
-
-      while (child)
-        {
-          n_children++;
-          child = child->next;
-        }
-    }
-  return n_children;
-}
-
-static AtkObject *
-gail_html_box_block_ref_child (AtkObject *obj,
-                               gint      i)
-{
-  AtkGObject *atk_gobject;
-  GObject *g_obj;
-  HtmlBox *box;
-  AtkObject *atk_child = NULL;
-  gint n_children = 0;
-
-  g_return_val_if_fail (GAIL_IS_HTML_BOX_BLOCK (obj), NULL);
-  atk_gobject = ATK_GOBJECT (obj); 
-  g_obj = atk_gobject_get_object (atk_gobject);
-  if (g_obj == NULL)
-    return NULL;
-
-  g_return_val_if_fail (HTML_IS_BOX (g_obj), NULL);
-  box = HTML_BOX (g_obj);
-
-  if (box)
-    {
-      HtmlBox *child;
-
-      child = box->children;
-
-      while (child)
-        {
-          if (n_children == i)
-            {
-              atk_child = atk_gobject_get_accessible (G_OBJECT (child));
-              g_object_ref (atk_child);
-              break;
-            }
-          n_children++;
-          child = child->next;
-        }
-    }
-  return atk_child;
-}
diff --git a/modules/other/gail/gailhtmlboxembedded.c b/modules/other/gail/gailhtmlboxembedded.c
deleted file mode 100644 (file)
index 32778b6..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <libgtkhtml/gtkhtml.h>
-#include "gailhtmlboxembedded.h"
-
-static void       gail_html_box_embedded_class_init      (GailHtmlBoxEmbeddedClass *klass);
-static gint       gail_html_box_embedded_get_n_children  (AtkObject             *obj);
-static AtkObject* gail_html_box_embedded_ref_child       (AtkObject             *obj,
-                                                          gint                  i);
-
-G_DEFINE_TYPE (GailHtmlBoxEmbedded, gail_html_box_embedded, GAIL_TYPE_HTML_BOX)
-
-AtkObject*
-gail_html_box_embedded_new (GObject *obj)
-{
-  gpointer object;
-  AtkObject *atk_object;
-
-  g_return_val_if_fail (HTML_IS_BOX_EMBEDDED (obj), NULL);
-  object = g_object_new (GAIL_TYPE_HTML_BOX_EMBEDDED, NULL);
-  atk_object = ATK_OBJECT (object);
-  atk_object_initialize (atk_object, obj);
-  atk_object->role = ATK_ROLE_PANEL;
-  return atk_object;
-}
-
-static void
-gail_html_box_embedded_class_init (GailHtmlBoxEmbeddedClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->get_n_children = gail_html_box_embedded_get_n_children;
-  class->ref_child = gail_html_box_embedded_ref_child;
-}
-
-static gint
-gail_html_box_embedded_get_n_children (AtkObject *obj)
-{
-  AtkGObject *atk_gobject;
-  HtmlBoxEmbedded *box_embedded;
-  GObject *g_obj;
-
-  g_return_val_if_fail (GAIL_IS_HTML_BOX_EMBEDDED (obj), 0);
-  atk_gobject = ATK_GOBJECT (obj); 
-  g_obj = atk_gobject_get_object (atk_gobject);
-  if (g_obj == NULL)
-    /* State is defunct */
-    return 0;
-
-  g_return_val_if_fail (HTML_IS_BOX_EMBEDDED (g_obj), 0);
-
-  box_embedded = HTML_BOX_EMBEDDED (g_obj);
-  g_return_val_if_fail (box_embedded->widget, 0);
-  return 1;
-}
-
-static AtkObject*
-gail_html_box_embedded_ref_child (AtkObject *obj,
-                                  gint      i)
-{
-  AtkGObject *atk_gobject;
-  HtmlBoxEmbedded *box_embedded;
-  GObject *g_obj;
-  AtkObject *atk_child;
-
-  g_return_val_if_fail (GAIL_IS_HTML_BOX_EMBEDDED (obj), NULL);
-
-  if (i != 0)
-         return NULL;
-
-  atk_gobject = ATK_GOBJECT (obj);
-  g_obj = atk_gobject_get_object (atk_gobject);
-  if (g_obj == NULL)
-    /* State is defunct */
-    return NULL;
-
-  g_return_val_if_fail (HTML_IS_BOX_EMBEDDED (g_obj), NULL);
-
-  box_embedded = HTML_BOX_EMBEDDED (g_obj);
-  g_return_val_if_fail (box_embedded->widget, NULL);
-
-  atk_child = gtk_widget_get_accessible (box_embedded->widget);
-  g_object_ref (atk_child);
-  atk_object_set_parent (atk_child, obj);
-  return atk_child;
-}
diff --git a/modules/other/gail/gailhtmlboxtext.c b/modules/other/gail/gailhtmlboxtext.c
deleted file mode 100644 (file)
index 5e88ea3..0000000
+++ /dev/null
@@ -1,470 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gailhtmlboxtext.h"
-
-static void           gail_html_box_text_class_init          (GailHtmlBoxTextClass *klass);
-static void           gail_html_box_text_text_interface_init (AtkTextIface        *iface);
-static gchar*         gail_html_box_text_get_text            (AtkText             *text,
-                                                              gint                start_offset,
-                                                              gint                end_offset);
-static gchar*         gail_html_box_text_get_text_after_offset 
-                                                             (AtkText             *text,
-                                                              gint                offset,
-                                                              AtkTextBoundary     boundary_type,
-                                                              gint                *start_offset,
-                                                              gint                *end_offset);
-static gchar*         gail_html_box_text_get_text_at_offset  (AtkText             *text,
-                                                              gint                offset,
-                                                              AtkTextBoundary     boundary_type,
-                                                              gint                *start_offset,
-                                                              gint                *end_offset);
-static gchar*         gail_html_box_text_get_text_before_offset 
-                                                             (AtkText             *text,
-                                                              gint                offset,
-                                                              AtkTextBoundary     boundary_type,
-                                                              gint                *start_offset,
-                                                              gint                *end_offset);
-static gunichar       gail_html_box_text_get_character_at_offset 
-                                                              (AtkText            *text,
-                                                               gint               offset);
-static gint           gail_html_box_text_get_character_count  (AtkText            *text);
-static gint           gail_html_box_text_get_caret_offset     (AtkText            *text);
-static gboolean       gail_html_box_text_set_caret_offset     (AtkText            *text,
-                                                               gint               offset);
-static gint           gail_html_box_text_get_offset_at_point  (AtkText            *text,
-                                                               gint               x,
-                                                               gint               y,
-                                                               AtkCoordType       coords);
-static void           gail_html_box_text_get_character_extents (AtkText           *text,
-                                                                gint              offset,
-                                                                gint              *x,
-                                                                gint              *y,
-                                                                gint              *width,
-                                                                gint              *height,
-                                                                AtkCoordType      coords);
-static AtkAttributeSet* 
-                      gail_html_box_text_get_run_attributes    (AtkText           *text,
-                                                                gint              offset,
-                                                                gint              *start_offset,
-                                                                gint              *end_offset);
-static AtkAttributeSet* 
-                      gail_html_box_text_get_default_attributes (AtkText          *text);
-static gint           gail_html_box_text_get_n_selections      (AtkText           *text);
-static gchar*         gail_html_box_text_get_selection         (AtkText           *text,
-                                                                gint              selection_num,
-                                                                gint              *start_pos,
-                                                                gint              *end_pos);
-static gboolean       gail_html_box_text_add_selection         (AtkText           *text,
-                                                                gint              start_pos,
-                                                                gint              end_pos);
-static gboolean       gail_html_box_text_remove_selection      (AtkText           *text,
-                                                                gint              selection_num);
-static gboolean       gail_html_box_text_set_selection         (AtkText           *text,
-                                                                gint              selection_num,
-                                                                gint              start_pos,
-                                                                gint              end_pos);
-static AtkAttributeSet*
-                      add_to_attr_set                          (AtkAttributeSet   *attrib_set,
-                                                                GtkTextAttributes *attrs,
-                                                                AtkTextAttribute  attr);
-static gchar*         get_text_near_offset                     (AtkText           *text,
-                                                                GailOffsetType    function,
-                                                                AtkTextBoundary   boundary_type,
-                                                                gint              offset,
-                                                                gint              *start_offset,
-                                                                gint              *end_offset);
-
-G_DEFINE_TYPE_WITH_CODE (GailHtmlBoxText, gail_html_box_text, GAIL_TYPE_HTML_BOX,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, gail_html_box_text_text_interface_init))
-
-AtkObject*
-gail_html_box_text_new (GObject *obj)
-{
-  gpointer object;
-  AtkObject *atk_object;
-  GailHtmlBoxText *gail_text;
-
-  g_return_val_if_fail (HTML_IS_BOX_TEXT (obj), NULL);
-  object = g_object_new (GAIL_TYPE_HTML_BOX_TEXT, NULL);
-  atk_object = ATK_OBJECT (object);
-  gail_text = GAIL_HTML_BOX_TEXT (object);
-
-  atk_object_initialize (atk_object, obj);
-  gail_text->texthelper = gail_text_helper_new ();
-#if 0
-  gail_text_helper_text_setup (gail_text->texthelper,
-                               HTML_BOX_TEXT (obj)->master->text);
-#endif
-
-  atk_object->role =  ATK_ROLE_TEXT;
-  return atk_object;
-}
-
-static void
-gail_html_box_text_class_init (GailHtmlBoxTextClass *klass)
-{
-}
-
-static void
-gail_html_box_text_text_interface_init (AtkTextIface *iface)
-{
-  iface->get_text = gail_html_box_text_get_text;
-  iface->get_text_after_offset = gail_html_box_text_get_text_after_offset;
-  iface->get_text_at_offset = gail_html_box_text_get_text_at_offset;
-  iface->get_text_before_offset = gail_html_box_text_get_text_before_offset;
-  iface->get_character_at_offset = gail_html_box_text_get_character_at_offset;
-  iface->get_character_count = gail_html_box_text_get_character_count;
-  iface->get_caret_offset = gail_html_box_text_get_caret_offset;
-  iface->set_caret_offset = gail_html_box_text_set_caret_offset;
-  iface->get_offset_at_point = gail_html_box_text_get_offset_at_point;
-  iface->get_character_extents = gail_html_box_text_get_character_extents;
-  iface->get_n_selections = gail_html_box_text_get_n_selections;
-  iface->get_selection = gail_html_box_text_get_selection;
-  iface->add_selection = gail_html_box_text_add_selection;
-  iface->remove_selection = gail_html_box_text_remove_selection;
-  iface->set_selection = gail_html_box_text_set_selection;
-  iface->get_run_attributes = gail_html_box_text_get_run_attributes;
-  iface->get_default_attributes = gail_html_box_text_get_default_attributes;
-}
-
-static gchar*
-gail_html_box_text_get_text (AtkText *text,
-                             gint    start_offset,
-                             gint    end_offset)
-{
-  GailHtmlBoxText *gail_text;
-  GtkTextBuffer *buffer;
-  GtkTextIter start, end;
-
-  g_return_val_if_fail (GAIL_IS_HTML_BOX_TEXT (text), NULL);
-  gail_text = GAIL_HTML_BOX_TEXT (text);
-  g_return_val_if_fail (gail_text->texthelper, NULL);
-
-  buffer = gail_text->texthelper->buffer;
-  gtk_text_buffer_get_iter_at_offset (buffer, &start, start_offset);
-  gtk_text_buffer_get_iter_at_offset (buffer, &end, end_offset);
-
-  return gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
-}
-
-static gchar*
-gail_html_box_text_get_text_after_offset (AtkText         *text,
-                                          gint            offset,
-                                          AtkTextBoundary boundary_type,
-                                          gint            *start_offset,
-                                          gint            *end_offset)
-{
-  return get_text_near_offset (text, GAIL_AFTER_OFFSET,
-                               boundary_type, offset, 
-                               start_offset, end_offset);
-}
-
-static gchar*
-gail_html_box_text_get_text_at_offset (AtkText         *text,
-                                       gint            offset,
-                                       AtkTextBoundary boundary_type,
-                                       gint            *start_offset,
-                                       gint            *end_offset)
-{
-  return get_text_near_offset (text, GAIL_AT_OFFSET,
-                               boundary_type, offset, 
-                               start_offset, end_offset);
-}
-
-static gchar*
-gail_html_box_text_get_text_before_offset (AtkText         *text,
-                                           gint            offset,
-                                           AtkTextBoundary boundary_type,
-                                           gint            *start_offset,
-                                           gint            *end_offset)
-{
-  return get_text_near_offset (text, GAIL_BEFORE_OFFSET,
-                               boundary_type, offset, 
-                               start_offset, end_offset);
-}
-
-static gunichar
-gail_html_box_text_get_character_at_offset (AtkText *text,
-                                            gint    offset)
-{
-  GailHtmlBoxText *gail_item;
-  GtkTextIter start, end;
-  GtkTextBuffer *buffer;
-  gchar *string;
-  gchar *index;
-
-  g_return_val_if_fail (GAIL_IS_HTML_BOX_TEXT (text), 0);
-  gail_item = GAIL_HTML_BOX_TEXT (text);
-  buffer = gail_item->texthelper->buffer;
-  gtk_text_buffer_get_start_iter (buffer, &start);
-  gtk_text_buffer_get_end_iter (buffer, &end);
-  string = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
-  index = g_utf8_offset_to_pointer (string, offset);
-  g_free (string);
-
-  return g_utf8_get_char (index);
-}
-
-static gint
-gail_html_box_text_get_character_count (AtkText *text)
-{
-  GtkTextBuffer *buffer;
-  GailHtmlBoxText *gail_text;
-
-  g_return_val_if_fail (GAIL_IS_HTML_BOX_TEXT (text), 0);
-  gail_text = GAIL_HTML_BOX_TEXT (text);
-  g_return_val_if_fail (gail_text->texthelper, 0);
-  buffer = gail_text->texthelper->buffer;
-  return gtk_text_buffer_get_char_count (buffer);
-}
-
-static gint
-gail_html_box_text_get_caret_offset (AtkText *text)
-{
-  GailHtmlBoxText *gail_text;
-  GtkTextBuffer *buffer;
-  GtkTextMark *cursor_mark;
-  GtkTextIter cursor_itr;
-
-  g_return_val_if_fail (GAIL_IS_HTML_BOX_TEXT (text), 0);
-  gail_text = GAIL_HTML_BOX_TEXT (text);
-  g_return_val_if_fail (gail_text->texthelper, 0);
-  buffer = gail_text->texthelper->buffer;
-  cursor_mark = gtk_text_buffer_get_insert (buffer);
-  gtk_text_buffer_get_iter_at_mark (buffer, &cursor_itr, cursor_mark);
-  return gtk_text_iter_get_offset (&cursor_itr);
-}
-
-static gboolean
-gail_html_box_text_set_caret_offset (AtkText *text,
-                                     gint    offset)
-{
-  GailHtmlBoxText *gail_text;
-  GtkTextBuffer *buffer;
-  GtkTextIter pos_itr;
-
-  g_return_val_if_fail (GAIL_IS_HTML_BOX_TEXT (text), FALSE);
-  gail_text = GAIL_HTML_BOX_TEXT (text);
-  g_return_val_if_fail (gail_text->texthelper, FALSE);
-  buffer = gail_text->texthelper->buffer;
-  gtk_text_buffer_get_iter_at_offset (buffer,  &pos_itr, offset);
-  gtk_text_buffer_move_mark_by_name (buffer, "insert", &pos_itr);
-  return TRUE;
-}
-
-static gint
-gail_html_box_text_get_offset_at_point (AtkText      *text,
-                                        gint         x,
-                                        gint         y,
-                                        AtkCoordType coords)
-{
-  return -1;
-}
-
-static void
-gail_html_box_text_get_character_extents (AtkText      *text,
-                                          gint         offset,
-                                          gint         *x,
-                                          gint         *y,
-                                          gint         *width,
-                                          gint         *height,
-                                          AtkCoordType coords)
-{
-  return;
-}
-
-static AtkAttributeSet*
-gail_html_box_text_get_run_attributes (AtkText *text,
-                                       gint    offset,
-                                       gint    *start_offset,
-                                       gint    *end_offset)
-{
-  return NULL;
-}
-
-static AtkAttributeSet*
-gail_html_box_text_get_default_attributes (AtkText *text)
-{
-  return NULL;
-}
-
-static gint
-gail_html_box_text_get_n_selections (AtkText *text)
-{
-  return 0;
-}
-
-static gchar*
-gail_html_box_text_get_selection (AtkText *text,
-                                  gint    selection_num,
-                                  gint    *start_pos,
-                                  gint    *end_pos)
-{
-  return NULL;
-}
-
-static gboolean
-gail_html_box_text_add_selection (AtkText *text,
-                                gint    start_pos,
-                                gint    end_pos)
-{
-  return FALSE;
-}
-
-static gboolean
-gail_html_box_text_remove_selection (AtkText *text,
-                                 gint    selection_num)
-{
-  return FALSE;
-}
-
-static gboolean
-gail_html_box_text_set_selection (AtkText *text,
-                                  gint    selection_num,
-                                  gint    start_pos,
-                                  gint    end_pos)
-{
-  return FALSE;
-}
-
-static AtkAttributeSet*
-add_to_attr_set (AtkAttributeSet   *attrib_set,
-                 GtkTextAttributes *attrs,
-                 AtkTextAttribute  attr)
-{
-  gchar *value;
-
-  switch (attr)
-    {
-    case ATK_TEXT_ATTR_LEFT_MARGIN:
-      value = g_strdup_printf ("%i", attrs->left_margin);
-      break;
-    case ATK_TEXT_ATTR_RIGHT_MARGIN:
-      value = g_strdup_printf ("%i", attrs->right_margin);
-      break;
-    case ATK_TEXT_ATTR_INDENT:
-      value = g_strdup_printf ("%i", attrs->indent);
-      break;
-    case ATK_TEXT_ATTR_INVISIBLE:
-      value = g_strdup (atk_text_attribute_get_value (attr, attrs->invisible));
-      break;
-    case ATK_TEXT_ATTR_EDITABLE:
-      value = g_strdup (atk_text_attribute_get_value (attr, attrs->editable));
-      break;
-    case ATK_TEXT_ATTR_PIXELS_ABOVE_LINES:
-      value = g_strdup_printf ("%i", attrs->pixels_above_lines);
-      break;
-    case ATK_TEXT_ATTR_PIXELS_BELOW_LINES:
-      value = g_strdup_printf ("%i", attrs->pixels_below_lines);
-      break;
-    case ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP:
-      value = g_strdup_printf ("%i", attrs->pixels_inside_wrap);
-      break;
-    case ATK_TEXT_ATTR_BG_FULL_HEIGHT:
-      value = g_strdup (atk_text_attribute_get_value (attr, attrs->bg_full_height));
-      break;
-    case ATK_TEXT_ATTR_RISE:
-      value = g_strdup_printf ("%i", attrs->appearance.rise);
-      break;
-    case ATK_TEXT_ATTR_UNDERLINE:
-      value = g_strdup (atk_text_attribute_get_value (attr, attrs->appearance.underline));
-      break;
-    case ATK_TEXT_ATTR_STRIKETHROUGH:
-      value = g_strdup (atk_text_attribute_get_value (attr, attrs->appearance.strikethrough));
-      break;
-    case ATK_TEXT_ATTR_SIZE:
-      value = g_strdup_printf ("%i", 
-                              pango_font_description_get_size (attrs->font));
-      break;
-    case ATK_TEXT_ATTR_SCALE:
-      value = g_strdup_printf ("%g", attrs->font_scale);
-      break;
-    case ATK_TEXT_ATTR_WEIGHT:
-      value = g_strdup_printf ("%d", 
-                              pango_font_description_get_weight (attrs->font));
-      break;
-    case ATK_TEXT_ATTR_LANGUAGE:
-      value = g_strdup ((gchar *)(attrs->language));
-      break;
-    case ATK_TEXT_ATTR_FAMILY_NAME:
-      value = g_strdup (pango_font_description_get_family (attrs->font));
-      break;
-    case ATK_TEXT_ATTR_BG_COLOR:
-      value = g_strdup_printf ("%u,%u,%u",
-                               attrs->appearance.bg_color.red,
-                               attrs->appearance.bg_color.green,
-                               attrs->appearance.bg_color.blue);
-      break;
-    case ATK_TEXT_ATTR_FG_COLOR:
-      value = g_strdup_printf ("%u,%u,%u",
-                               attrs->appearance.fg_color.red,
-                               attrs->appearance.fg_color.green,
-                               attrs->appearance.fg_color.blue);
-      break;
-    case ATK_TEXT_ATTR_BG_STIPPLE:
-      value = g_strdup (atk_text_attribute_get_value (attr, attrs->appearance.bg_stipple ? 1 : 0));
-      break;
-    case ATK_TEXT_ATTR_FG_STIPPLE:
-      value = g_strdup (atk_text_attribute_get_value (attr, attrs->appearance.fg_stipple ? 1 : 0));
-      break;
-    case ATK_TEXT_ATTR_WRAP_MODE:
-      value = g_strdup (atk_text_attribute_get_value (attr, attrs->wrap_mode));
-      break;
-    case ATK_TEXT_ATTR_DIRECTION:
-      value = g_strdup (atk_text_attribute_get_value (attr, attrs->direction));
-      break;
-    case ATK_TEXT_ATTR_JUSTIFICATION:
-      value = g_strdup (atk_text_attribute_get_value (attr, attrs->justification));
-      break;
-    case ATK_TEXT_ATTR_STRETCH:
-      value = g_strdup (atk_text_attribute_get_value (attr, 
-                        pango_font_description_get_stretch (attrs->font)));
-      break;
-    case ATK_TEXT_ATTR_VARIANT:
-      value = g_strdup (atk_text_attribute_get_value (attr, 
-                        pango_font_description_get_variant (attrs->font)));
-      break;
-    case ATK_TEXT_ATTR_STYLE:
-      value = g_strdup (atk_text_attribute_get_value (attr, 
-                        pango_font_description_get_style (attrs->font)));
-      break;
-    default:
-      value = NULL;
-      break;
-    }
-  return gail_text_helper_add_attribute (attrib_set, 
-                                         attr,
-                                         value);
-}
-
-static gchar*
-get_text_near_offset (AtkText          *text,
-                      GailOffsetType   function,
-                      AtkTextBoundary  boundary_type,
-                      gint             offset,
-                      gint             *start_offset,
-                      gint             *end_offset)
-{
-  return gail_text_helper_get_text (GAIL_HTML_BOX_TEXT (text)->texthelper, NULL,
-                                    function, boundary_type, offset, 
-                                    start_offset, end_offset);
-}
diff --git a/modules/other/gail/gailimage.c b/modules/other/gail/gailimage.c
deleted file mode 100644 (file)
index 1a5552c..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include "gailimage.h"
-
-static void      gail_image_class_init         (GailImageClass *klass);
-static void      gail_image_init               (GailImage      *image);
-static void      gail_image_initialize         (AtkObject       *accessible,
-                                                gpointer        data);
-static const gchar* gail_image_get_name  (AtkObject     *accessible);
-
-
-static void      atk_image_interface_init      (AtkImageIface  *iface);
-
-static const gchar *
-                 gail_image_get_image_description (AtkImage     *image);
-static void     gail_image_get_image_position    (AtkImage     *image,
-                                                   gint         *x,
-                                                   gint         *y,
-                                                   AtkCoordType coord_type);
-static void      gail_image_get_image_size     (AtkImage        *image,
-                                                gint            *width,
-                                                gint            *height);
-static gboolean  gail_image_set_image_description (AtkImage     *image,
-                                                const gchar     *description);
-static void      gail_image_finalize           (GObject         *object);
-
-G_DEFINE_TYPE_WITH_CODE (GailImage, gail_image, GAIL_TYPE_WIDGET,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_interface_init))
-
-static void
-gail_image_class_init (GailImageClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-
-  gobject_class->finalize = gail_image_finalize;
-  class->initialize = gail_image_initialize;
-  class->get_name = gail_image_get_name;
-}
-
-static void
-gail_image_init (GailImage *image)
-{
-  image->image_description = NULL;
-}
-
-static void
-gail_image_initialize (AtkObject *accessible,
-                       gpointer data)
-{
-  ATK_OBJECT_CLASS (gail_image_parent_class)->initialize (accessible, data);
-
-  accessible->role = ATK_ROLE_ICON;
-}
-
-/* Copied from gtktoolbar.c, keep in sync */
-static gchar *
-elide_underscores (const gchar *original)
-{
-  gchar *q, *result;
-  const gchar *p, *end;
-  gsize len;
-  gboolean last_underscore;
-  
-  if (!original)
-    return NULL;
-
-  len = strlen (original);
-  q = result = g_malloc (len + 1);
-  last_underscore = FALSE;
-  
-  end = original + len;
-  for (p = original; p < end; p++)
-    {
-      if (!last_underscore && *p == '_')
-       last_underscore = TRUE;
-      else
-       {
-         last_underscore = FALSE;
-         if (original + 2 <= p && p + 1 <= end && 
-              p[-2] == '(' && p[-1] == '_' && p[0] != '_' && p[1] == ')')
-           {
-             q--;
-             *q = '\0';
-             p++;
-           }
-         else
-           *q++ = *p;
-       }
-    }
-
-  if (last_underscore)
-    *q++ = '_';
-  
-  *q = '\0';
-  
-  return result;
-}
-
-static const gchar*
-gail_image_get_name (AtkObject *accessible)
-{
-  GtkWidget* widget;
-  GtkImage *image;
-  GailImage *image_accessible;
-  GtkStockItem stock_item;
-  gchar *stock_id;
-  const gchar *name;
-
-  name = ATK_OBJECT_CLASS (gail_image_parent_class)->get_name (accessible);
-  if (name)
-    return name;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  /*
-   * State is defunct
-   */
-  if (widget == NULL)
-    return NULL;
-
-  g_return_val_if_fail (GTK_IS_IMAGE (widget), NULL);
-  image = GTK_IMAGE (widget);
-  image_accessible = GAIL_IMAGE (accessible);
-
-  g_free (image_accessible->stock_name);
-  image_accessible->stock_name = NULL;
-
-  if (gtk_image_get_storage_type (image) != GTK_IMAGE_STOCK)
-    return NULL;
-
-  gtk_image_get_stock (image, &stock_id, NULL);
-  if (stock_id == NULL)
-    return NULL;
-
-  if (!gtk_stock_lookup (stock_id, &stock_item))
-    return NULL;
-
-  image_accessible->stock_name = elide_underscores (stock_item.label);
-  return image_accessible->stock_name;
-}
-
-static void
-atk_image_interface_init (AtkImageIface *iface)
-{
-  iface->get_image_description = gail_image_get_image_description;
-  iface->get_image_position = gail_image_get_image_position;
-  iface->get_image_size = gail_image_get_image_size;
-  iface->set_image_description = gail_image_set_image_description;
-}
-
-static const gchar *
-gail_image_get_image_description (AtkImage     *image)
-{
-  GailImage* aimage = GAIL_IMAGE (image);
-
-  return aimage->image_description;
-}
-
-static void
-gail_image_get_image_position (AtkImage     *image,
-                               gint         *x,
-                               gint         *y,
-                               AtkCoordType coord_type)
-{
-  atk_component_get_position (ATK_COMPONENT (image), x, y, coord_type);
-}
-
-static void
-gail_image_get_image_size (AtkImage *image, 
-                           gint     *width,
-                           gint     *height)
-{
-  GtkWidget* widget;
-  GtkImage *gtk_image;
-  GtkImageType image_type;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (image));
-  if (widget == 0)
-  {
-    /* State is defunct */
-    *height = -1;
-    *width = -1;
-    return;
-  }
-
-  gtk_image = GTK_IMAGE(widget);
-
-  image_type = gtk_image_get_storage_type(gtk_image);
-  switch(image_type) {
-    case GTK_IMAGE_PIXBUF:
-    {
-      GdkPixbuf *pixbuf;
-      pixbuf = gtk_image_get_pixbuf(gtk_image);
-      *height = gdk_pixbuf_get_height(pixbuf);
-      *width = gdk_pixbuf_get_width(pixbuf);
-      break;
-    }
-    case GTK_IMAGE_STOCK:
-    case GTK_IMAGE_ICON_SET:
-    case GTK_IMAGE_ICON_NAME:
-    case GTK_IMAGE_GICON:
-    {
-      GtkIconSize size;
-      GtkSettings *settings;
-
-      settings = gtk_settings_get_for_screen (gtk_widget_get_screen (widget));
-
-      g_object_get (gtk_image, "icon-size", &size, NULL);
-      gtk_icon_size_lookup_for_settings (settings, size, width, height);
-      break;
-    }
-    case GTK_IMAGE_ANIMATION:
-    {
-      GdkPixbufAnimation *animation;
-      animation = gtk_image_get_animation(gtk_image);
-      *height = gdk_pixbuf_animation_get_height(animation);
-      *width = gdk_pixbuf_animation_get_width(animation);
-      break;
-    }
-    default:
-    {
-      *height = -1;
-      *width = -1;
-      break;
-    }
-  }
-}
-
-static gboolean
-gail_image_set_image_description (AtkImage     *image,
-                                  const gchar  *description)
-{
-  GailImage* aimage = GAIL_IMAGE (image);
-
-  g_free (aimage->image_description);
-  aimage->image_description = g_strdup (description);
-  return TRUE;
-}
-
-static void
-gail_image_finalize (GObject      *object)
-{
-  GailImage *aimage = GAIL_IMAGE (object);
-
-  g_free (aimage->image_description);
-  g_free (aimage->stock_name);
-
-  G_OBJECT_CLASS (gail_image_parent_class)->finalize (object);
-}
diff --git a/modules/other/gail/gailimage.h b/modules/other/gail/gailimage.h
deleted file mode 100644 (file)
index d3d2b52..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_IMAGE_H__
-#define __GAIL_IMAGE_H__
-
-#include <gail/gailwidget.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_IMAGE                      (gail_image_get_type ())
-#define GAIL_IMAGE(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_IMAGE, GailImage))
-#define GAIL_IMAGE_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_IMAGE, GailImageClass))
-#define GAIL_IS_IMAGE(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_IMAGE))
-#define GAIL_IS_IMAGE_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_IMAGE))
-#define GAIL_IMAGE_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_IMAGE, GailImageClass))
-
-typedef struct _GailImage              GailImage;
-typedef struct _GailImageClass         GailImageClass;
-
-struct _GailImage
-{
-  GailWidget parent;
-
-  gchar*     image_description;
-  gchar*     stock_name;
-};
-
-GType gail_image_get_type (void);
-
-struct _GailImageClass
-{
-  GailWidgetClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_IMAGE_H__ */
diff --git a/modules/other/gail/gailimagecell.c b/modules/other/gail/gailimagecell.c
deleted file mode 100644 (file)
index 078b4b7..0000000
+++ /dev/null
@@ -1,170 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailimagecell.h"
-
-static void      gail_image_cell_class_init          (GailImageCellClass *klass);
-static void      gail_image_cell_init                (GailImageCell      *image_cell);
-
-static void      gail_image_cell_finalize            (GObject            *object);
-
-/* AtkImage */
-static void      atk_image_interface_init              (AtkImageIface  *iface);
-static const gchar *
-                 gail_image_cell_get_image_description (AtkImage       *image);
-static gboolean  gail_image_cell_set_image_description (AtkImage       *image,
-                                                        const gchar    *description);
-static void      gail_image_cell_get_image_position    (AtkImage       *image,
-                                                        gint           *x,
-                                                        gint           *y,
-                                                        AtkCoordType   coord_type);
-static void      gail_image_cell_get_image_size        (AtkImage       *image,
-                                                        gint           *width,
-                                                        gint           *height);
-
-/* Misc */
-
-static gboolean  gail_image_cell_update_cache          (GailRendererCell *cell,
-                                                        gboolean         emit_change_signal);
-
-// FIXMEchpe static!!!
-gchar *gail_image_cell_property_list[] = {
-  "pixbuf",
-  NULL
-};
-
-G_DEFINE_TYPE_WITH_CODE (GailImageCell, gail_image_cell, GAIL_TYPE_RENDERER_CELL,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_IMAGE, atk_image_interface_init))
-
-static void 
-gail_image_cell_class_init (GailImageCellClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  GailRendererCellClass *renderer_cell_class = GAIL_RENDERER_CELL_CLASS(klass);
-
-  gobject_class->finalize = gail_image_cell_finalize;
-
-  renderer_cell_class->update_cache = gail_image_cell_update_cache;
-  renderer_cell_class->property_list = gail_image_cell_property_list;
-}
-
-AtkObject* 
-gail_image_cell_new (void)
-{
-  GObject *object;
-  AtkObject *atk_object;
-  GailRendererCell *cell;
-
-  object = g_object_new (GAIL_TYPE_IMAGE_CELL, NULL);
-
-  g_return_val_if_fail (object != NULL, NULL);
-
-  atk_object = ATK_OBJECT (object);
-  atk_object->role = ATK_ROLE_TABLE_CELL;
-
-  cell = GAIL_RENDERER_CELL(object);
-
-  cell->renderer = gtk_cell_renderer_pixbuf_new ();
-  g_object_ref_sink (cell->renderer);
-  return atk_object;
-}
-
-static void
-gail_image_cell_init (GailImageCell *image_cell)
-{
-  image_cell->image_description = NULL;
-}
-
-
-static void
-gail_image_cell_finalize (GObject *object)
-{
-  GailImageCell *image_cell = GAIL_IMAGE_CELL (object);
-
-  g_free (image_cell->image_description);
-  G_OBJECT_CLASS (gail_image_cell_parent_class)->finalize (object);
-}
-
-static gboolean
-gail_image_cell_update_cache (GailRendererCell *cell, 
-                              gboolean         emit_change_signal)
-{
-  return FALSE;
-}
-
-static void
-atk_image_interface_init (AtkImageIface  *iface)
-{
-  iface->get_image_description = gail_image_cell_get_image_description;
-  iface->set_image_description = gail_image_cell_set_image_description;
-  iface->get_image_position = gail_image_cell_get_image_position;
-  iface->get_image_size = gail_image_cell_get_image_size;
-}
-
-static const gchar *
-gail_image_cell_get_image_description (AtkImage     *image)
-{
-  GailImageCell *image_cell;
-
-  image_cell = GAIL_IMAGE_CELL (image);
-  return image_cell->image_description;
-}
-
-static gboolean
-gail_image_cell_set_image_description (AtkImage     *image,
-                                       const gchar  *description)
-{
-  GailImageCell *image_cell;
-
-  image_cell = GAIL_IMAGE_CELL (image);
-  g_free (image_cell->image_description);
-  image_cell->image_description = g_strdup (description);
-  if (image_cell->image_description)
-    return TRUE;
-  else
-    return FALSE;
-}
-
-static void
-gail_image_cell_get_image_position (AtkImage     *image,
-                                    gint         *x,
-                                    gint         *y,
-                                    AtkCoordType coord_type)
-{
-  atk_component_get_position (ATK_COMPONENT (image), x, y, coord_type);
-}
-
-static void
-gail_image_cell_get_image_size (AtkImage *image,
-                                gint     *width,
-                                gint     *height)
-{
-  GailImageCell *cell = GAIL_IMAGE_CELL (image);
-  GtkCellRenderer *cell_renderer;
-  GdkPixbuf *pixbuf;
-
-  cell_renderer  = GAIL_RENDERER_CELL (cell)->renderer;
-  g_object_get (GTK_CELL_RENDERER_PIXBUF (cell_renderer), "pixbuf", &pixbuf, NULL);
-
-  *width = gdk_pixbuf_get_width (pixbuf);
-  *height = gdk_pixbuf_get_height (pixbuf);
-}
diff --git a/modules/other/gail/gailimagecell.h b/modules/other/gail/gailimagecell.h
deleted file mode 100644 (file)
index f317801..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_IMAGE_CELL_H__
-#define __GAIL_IMAGE_CELL_H__
-
-#include <atk/atk.h>
-#include <gail/gailrenderercell.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_IMAGE_CELL            (gail_image_cell_get_type ())
-#define GAIL_IMAGE_CELL(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_IMAGE_CELL, GailImageCell))
-#define GAIL_IMAGE_CELL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_IMAGE_CELL, GailImageCellClass))
-#define GAIL_IS_IMAGE_CELL(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_IMAGE_CELL))
-#define GAIL_IS_IMAGE_CELL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_IMAGE_CELL))78
-#define GAIL_IMAGE_CELL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_IMAGE_CELL, GailImageCellClass))
-
-typedef struct _GailImageCell                  GailImageCell;
-typedef struct _GailImageCellClass             GailImageCellClass;
-
-struct _GailImageCell
-{
-  GailRendererCell parent;
-
-  gchar            *image_description;
-  gint             x, y;
-};
-
-GType gail_image_cell_get_type (void);
-
-struct _GailImageCellClass
-{
-  GailRendererCellClass parent_class;
-};
-
-AtkObject *gail_image_cell_new (void);
-
-G_END_DECLS
-
-#endif /* __GAIL_TREE_VIEW_IMAGE_CELL_H__ */
diff --git a/modules/other/gail/gaillabel.c b/modules/other/gail/gaillabel.c
deleted file mode 100644 (file)
index e257b73..0000000
+++ /dev/null
@@ -1,1005 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-
-#include <gtk/gtk.h>
-#include "gaillabel.h"
-#include "gailwindow.h"
-#include <libgail-util/gailmisc.h>
-
-static void       gail_label_class_init            (GailLabelClass    *klass);
-static void       gail_label_init                  (GailLabel         *label);
-static void      gail_label_real_initialize       (AtkObject         *obj,
-                                                    gpointer         data);
-static void      gail_label_real_notify_gtk       (GObject           *obj,
-                                                    GParamSpec       *pspec);
-static void       gail_label_map_gtk               (GtkWidget         *widget,
-                                                    gpointer          data);
-static void       gail_label_init_text_util        (GailLabel         *gail_label,
-                                                    GtkWidget         *widget);
-static void       gail_label_finalize              (GObject           *object);
-
-static void       atk_text_interface_init          (AtkTextIface      *iface);
-
-/* atkobject.h */
-
-static const gchar* gail_label_get_name         (AtkObject         *accessible);
-static AtkStateSet*          gail_label_ref_state_set   (AtkObject         *accessible);
-static AtkRelationSet*       gail_label_ref_relation_set (AtkObject         *accessible);
-
-/* atktext.h */
-
-static gchar*    gail_label_get_text              (AtkText           *text,
-                                                    gint             start_pos,
-                                                   gint              end_pos);
-static gunichar          gail_label_get_character_at_offset(AtkText          *text,
-                                                   gint              offset);
-static gchar*     gail_label_get_text_before_offset(AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*     gail_label_get_text_at_offset    (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*     gail_label_get_text_after_offset    (AtkText       *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gint      gail_label_get_character_count   (AtkText           *text);
-static gint      gail_label_get_caret_offset      (AtkText           *text);
-static gboolean          gail_label_set_caret_offset      (AtkText           *text,
-                                                    gint             offset);
-static gint      gail_label_get_n_selections      (AtkText           *text);
-static gchar*    gail_label_get_selection         (AtkText           *text,
-                                                    gint             selection_num,
-                                                    gint             *start_offset,
-                                                    gint             *end_offset);
-static gboolean          gail_label_add_selection         (AtkText           *text,
-                                                    gint             start_offset,
-                                                    gint             end_offset);
-static gboolean          gail_label_remove_selection      (AtkText           *text,
-                                                    gint             selection_num);
-static gboolean          gail_label_set_selection         (AtkText           *text,
-                                                    gint             selection_num,
-                                                    gint             start_offset,
-                                                   gint              end_offset);
-static void gail_label_get_character_extents       (AtkText          *text,
-                                                   gint              offset,
-                                                   gint              *x,
-                                                   gint              *y,
-                                                   gint              *width,
-                                                   gint              *height,
-                                                   AtkCoordType      coords);
-static gint gail_label_get_offset_at_point         (AtkText           *text,
-                                                    gint              x,
-                                                    gint              y,
-                                                   AtkCoordType      coords);
-static AtkAttributeSet* gail_label_get_run_attributes 
-                                                   (AtkText           *text,
-                                                   gint              offset,
-                                                    gint             *start_offset,
-                                                   gint              *end_offset);
-static AtkAttributeSet* gail_label_get_default_attributes
-                                                   (AtkText           *text);
-
-G_DEFINE_TYPE_WITH_CODE (GailLabel, gail_label, GAIL_TYPE_WIDGET,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init))
-
-static void
-gail_label_class_init (GailLabelClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-  GailWidgetClass *widget_class;
-
-  gobject_class->finalize = gail_label_finalize;
-
-  widget_class = (GailWidgetClass*)klass;
-  widget_class->notify_gtk = gail_label_real_notify_gtk;
-
-  class->get_name = gail_label_get_name;
-  class->ref_state_set = gail_label_ref_state_set;
-  class->ref_relation_set = gail_label_ref_relation_set;
-  class->initialize = gail_label_real_initialize;
-}
-
-static void
-gail_label_init (GailLabel *label)
-{
-}
-
-static void
-gail_label_real_initialize (AtkObject *obj,
-                            gpointer  data)
-{
-  GtkWidget  *widget;
-  GailLabel *gail_label;
-
-  ATK_OBJECT_CLASS (gail_label_parent_class)->initialize (obj, data);
-  
-  gail_label = GAIL_LABEL (obj);
-
-  gail_label->window_create_handler = 0;
-  gail_label->has_top_level = FALSE;
-  gail_label->cursor_position = 0;
-  gail_label->selection_bound = 0;
-  gail_label->textutil = NULL;
-  gail_label->label_length = 0;
-  
-  widget = GTK_WIDGET (data);
-
-  if (gtk_widget_get_mapped (widget))
-    gail_label_init_text_util (gail_label, widget);
-  else
-    g_signal_connect (widget,
-                      "map",
-                      G_CALLBACK (gail_label_map_gtk),
-                      gail_label);
-
-  /* 
-   * Check whether ancestor of GtkLabel is a GtkButton and if so
-   * set accessible parent for GailLabel
-   */
-  while (widget != NULL)
-    {
-      widget = gtk_widget_get_parent (widget);
-      if (GTK_IS_BUTTON (widget))
-        {
-          atk_object_set_parent (obj, gtk_widget_get_accessible (widget));
-          break;
-        }
-    }
-
-  if (GTK_IS_ACCEL_LABEL (widget))
-    obj->role = ATK_ROLE_ACCEL_LABEL;
-  else
-    obj->role = ATK_ROLE_LABEL;
-}
-
-static void
-gail_label_map_gtk (GtkWidget *widget,
-                    gpointer data)
-{
-  GailLabel *gail_label;
-
-  gail_label = GAIL_LABEL (data);
-  gail_label_init_text_util (gail_label, widget);
-}
-
-static void
-gail_label_init_text_util (GailLabel *gail_label,
-                           GtkWidget *widget)
-{
-  GtkLabel *label;
-  const gchar *label_text;
-
-  if (gail_label->textutil == NULL)
-    gail_label->textutil = gail_text_util_new ();
-
-  label = GTK_LABEL (widget);
-  label_text = gtk_label_get_text (label);
-  gail_text_util_text_setup (gail_label->textutil, label_text);
-  
-  if (label_text == NULL)
-    gail_label->label_length = 0;
-  else
-    gail_label->label_length = g_utf8_strlen (label_text, -1);
-}
-
-static void
-notify_name_change (AtkObject *atk_obj)
-{
-  GtkLabel *label;
-  GailLabel *gail_label;
-  GtkWidget *widget;
-  GObject *gail_obj;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_obj));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return;
-
-  gail_obj = G_OBJECT (atk_obj);
-  label = GTK_LABEL (widget);
-  gail_label = GAIL_LABEL (atk_obj);
-
-  if (gail_label->textutil == NULL)
-    return;
-
-  /*
-   * Check whether the label has actually changed before emitting
-   * notification.
-   */
-  if (gail_label->textutil->buffer) 
-    {
-      GtkTextIter start, end;
-      const char *new_label;
-      char *old_label;
-      int same;   
-
-      gtk_text_buffer_get_start_iter (gail_label->textutil->buffer, &start);
-      gtk_text_buffer_get_end_iter (gail_label->textutil->buffer, &end);
-      old_label = gtk_text_buffer_get_text (gail_label->textutil->buffer, &start, &end, FALSE);
-      new_label = gtk_label_get_text (label);
-      same = strcmp (new_label, old_label);
-      g_free (old_label);
-      if (same == 0)
-        return;
-    }
-   
-  /* Create a delete text and an insert text signal */
-  g_signal_emit_by_name (gail_obj, "text_changed::delete", 0, 
-                         gail_label->label_length);
-
-  gail_label_init_text_util (gail_label, widget);
-
-  g_signal_emit_by_name (gail_obj, "text_changed::insert", 0, 
-                         gail_label->label_length);
-
-  if (atk_obj->name == NULL)
-    /*
-     * The label has changed so notify a change in accessible-name
-     */
-    g_object_notify (gail_obj, "accessible-name");
-
-  g_signal_emit_by_name (gail_obj, "visible_data_changed");
-}
-
-static void
-window_created (GObject *obj,
-                gpointer data)
-{
-  g_return_if_fail (GAIL_LABEL (data));
-
-  notify_name_change (ATK_OBJECT (data)); 
-}
-
-static void
-gail_label_real_notify_gtk (GObject           *obj,
-                            GParamSpec        *pspec)
-{
-  GtkWidget *widget = GTK_WIDGET (obj);
-  AtkObject* atk_obj = gtk_widget_get_accessible (widget);
-  GtkLabel *label;
-  GailLabel *gail_label;
-  GObject *gail_obj;
-  AtkObject *top_level;
-  AtkObject *temp_obj;
-
-  gail_label = GAIL_LABEL (atk_obj);
-
-  if (strcmp (pspec->name, "label") == 0)
-    {
-     /* 
-      * We may get a label change for a label which is not attached to an
-      * application. We wait until the toplevel window is created before
-      * emitting the notification.
-      *
-      * This happens when [Ctrl+]Alt+Tab is pressed in metacity
-      */
-      if (!gail_label->has_top_level)
-        {
-          temp_obj = atk_obj;
-          top_level = NULL;
-          while (temp_obj)
-            {
-              top_level = temp_obj;
-              temp_obj = atk_object_get_parent (top_level);
-            }
-          if (atk_object_get_role (top_level) != ATK_ROLE_APPLICATION)
-            {
-              if (gail_label->window_create_handler == 0 && 
-                  GAIL_IS_WINDOW (top_level))
-                gail_label->window_create_handler = g_signal_connect_after (top_level, "create", G_CALLBACK (window_created), atk_obj);
-            }
-          else
-            gail_label->has_top_level = TRUE;
-        }
-      if (gail_label->has_top_level)
-        notify_name_change (atk_obj);
-    }
-  else if (strcmp (pspec->name, "cursor-position") == 0)
-    {
-      gint start, end, tmp;
-      gboolean text_caret_moved = FALSE;
-      gboolean selection_changed = FALSE;
-
-      gail_obj = G_OBJECT (atk_obj);
-      label = GTK_LABEL (widget);
-
-      if (gail_label->selection_bound != -1 && gail_label->selection_bound < gail_label->cursor_position)
-        {
-          tmp = gail_label->selection_bound;
-          gail_label->selection_bound = gail_label->cursor_position;
-          gail_label->cursor_position = tmp;
-        }
-
-      if (gtk_label_get_selection_bounds (label, &start, &end))
-        {
-          if (start != gail_label->cursor_position ||
-              end != gail_label->selection_bound)
-            {
-              if (end != gail_label->selection_bound)
-                {
-                  gail_label->selection_bound = start;
-                  gail_label->cursor_position = end;
-                }
-              else
-                {
-                  gail_label->selection_bound = end;
-                  gail_label->cursor_position = start;
-                }
-              text_caret_moved = TRUE;
-              if (start != end)
-                selection_changed = TRUE;
-            }
-        }
-      else 
-        {
-          if (gail_label->cursor_position != gail_label->selection_bound)
-            selection_changed = TRUE;
-          if (gtk_label_get_selectable (label))
-            {
-              if (gail_label->cursor_position != -1 && start != gail_label->cursor_position)
-                text_caret_moved = TRUE;
-              if (gail_label->selection_bound != -1 && end != gail_label->selection_bound)
-                {
-                  text_caret_moved = TRUE;
-                  gail_label->cursor_position = end;
-                  gail_label->selection_bound = start;
-                }
-              else
-                {
-                  gail_label->cursor_position = start;
-                  gail_label->selection_bound = end;
-                }
-            }
-          else
-            {
-              /* GtkLabel has become non selectable */
-
-              gail_label->cursor_position = 0;
-              gail_label->selection_bound = 0;
-              text_caret_moved = TRUE;
-            }
-
-        }
-        if (text_caret_moved)
-          g_signal_emit_by_name (gail_obj, "text_caret_moved", 
-                                 gail_label->cursor_position);
-        if (selection_changed)
-          g_signal_emit_by_name (gail_obj, "text_selection_changed");
-
-    }
-  else
-    GAIL_WIDGET_CLASS (gail_label_parent_class)->notify_gtk (obj, pspec);
-}
-
-static void
-gail_label_finalize (GObject            *object)
-{
-  GailLabel *label = GAIL_LABEL (object);
-
-  if (label->textutil)
-    g_object_unref (label->textutil);
-  G_OBJECT_CLASS (gail_label_parent_class)->finalize (object);
-}
-
-
-/* atkobject.h */
-
-static AtkStateSet*
-gail_label_ref_state_set (AtkObject *accessible)
-{
-  AtkStateSet *state_set;
-  GtkWidget *widget;
-
-  state_set = ATK_OBJECT_CLASS (gail_label_parent_class)->ref_state_set (accessible);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-
-  if (widget == NULL)
-    return state_set;
-
-  atk_state_set_add_state (state_set, ATK_STATE_MULTI_LINE);
-
-  return state_set;
-}
-
-AtkRelationSet*
-gail_label_ref_relation_set (AtkObject *obj)
-{
-  GtkWidget *widget;
-  AtkRelationSet *relation_set;
-
-  g_return_val_if_fail (GAIL_IS_LABEL (obj), NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return NULL;
-
-  relation_set = ATK_OBJECT_CLASS (gail_label_parent_class)->ref_relation_set (obj);
-
-  if (!atk_relation_set_contains (relation_set, ATK_RELATION_LABEL_FOR))
-    {
-      /*
-       * Get the mnemonic widget
-       *
-       * The relation set is not updated if the mnemonic widget is changed
-       */
-      GtkWidget *mnemonic_widget = gtk_label_get_mnemonic_widget (GTK_LABEL (widget));
-
-      if (mnemonic_widget)
-        {
-          AtkObject *accessible_array[1];
-          AtkRelation* relation;
-
-          if (!gtk_widget_get_can_focus (mnemonic_widget))
-            {
-            /*
-             * Handle the case where a GtkFileChooserButton is specified as the 
-             * mnemonic widget. use the combobox which is a child of the
-             * GtkFileChooserButton as the mnemonic widget. See bug #359843.
-             */
-             if (GTK_IS_BOX (mnemonic_widget))
-               {
-                  GList *list, *tmpl;
-
-                  list = gtk_container_get_children (GTK_CONTAINER (mnemonic_widget));
-                  if (g_list_length (list) == 2)
-                    {
-                      tmpl = g_list_last (list);
-                      if (GTK_IS_COMBO_BOX(tmpl->data))
-                        {
-                          mnemonic_widget = GTK_WIDGET(tmpl->data);
-                        }
-                    }
-                  g_list_free (list);
-                }
-            }
-          accessible_array[0] = gtk_widget_get_accessible (mnemonic_widget);
-          relation = atk_relation_new (accessible_array, 1,
-                                       ATK_RELATION_LABEL_FOR);
-          atk_relation_set_add (relation_set, relation);
-          /*
-           * Unref the relation so that it is not leaked.
-           */
-          g_object_unref (relation);
-        }
-    }
-  return relation_set;
-}
-
-static const gchar*
-gail_label_get_name (AtkObject *accessible)
-{
-  const gchar *name;
-
-  g_return_val_if_fail (GAIL_IS_LABEL (accessible), NULL);
-
-  name = ATK_OBJECT_CLASS (gail_label_parent_class)->get_name (accessible);
-  if (name != NULL)
-    return name;
-  else
-    {
-      /*
-       * Get the text on the label
-       */
-      GtkWidget *widget;
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-      if (widget == NULL)
-        /*
-         * State is defunct
-         */
-        return NULL;
-
-      g_return_val_if_fail (GTK_IS_LABEL (widget), NULL);
-
-      return gtk_label_get_text (GTK_LABEL (widget));
-    }
-}
-
-/* atktext.h */
-
-static void
-atk_text_interface_init (AtkTextIface *iface)
-{
-  iface->get_text = gail_label_get_text;
-  iface->get_character_at_offset = gail_label_get_character_at_offset;
-  iface->get_text_before_offset = gail_label_get_text_before_offset;
-  iface->get_text_at_offset = gail_label_get_text_at_offset;
-  iface->get_text_after_offset = gail_label_get_text_after_offset;
-  iface->get_character_count = gail_label_get_character_count;
-  iface->get_caret_offset = gail_label_get_caret_offset;
-  iface->set_caret_offset = gail_label_set_caret_offset;
-  iface->get_n_selections = gail_label_get_n_selections;
-  iface->get_selection = gail_label_get_selection;
-  iface->add_selection = gail_label_add_selection;
-  iface->remove_selection = gail_label_remove_selection;
-  iface->set_selection = gail_label_set_selection;
-  iface->get_character_extents = gail_label_get_character_extents;
-  iface->get_offset_at_point = gail_label_get_offset_at_point;
-  iface->get_run_attributes = gail_label_get_run_attributes;
-  iface->get_default_attributes = gail_label_get_default_attributes;
-}
-
-static gchar*
-gail_label_get_text (AtkText *text,
-                     gint    start_pos,
-                     gint    end_pos)
-{
-  GtkWidget *widget;
-  GtkLabel  *label;
-
-  const gchar *label_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = GTK_LABEL (widget);
-
-  label_text = gtk_label_get_text (label);
-  if (label_text == NULL)
-    return NULL;
-  else
-  {
-    if (GAIL_LABEL (text)->textutil == NULL) 
-      gail_label_init_text_util (GAIL_LABEL (text), widget);
-    return gail_text_util_get_substring (GAIL_LABEL(text)->textutil, 
-                                         start_pos, end_pos);
-  }
-}
-
-static gchar*
-gail_label_get_text_before_offset (AtkText         *text,
-                                  gint            offset,
-                                  AtkTextBoundary boundary_type,
-                                  gint            *start_offset,
-                                  gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkLabel *label;
-  
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-  
-  /* Get label */
-  label = GTK_LABEL (widget);
-
-  return gail_text_util_get_text (GAIL_LABEL (text)->textutil,
-                           gtk_label_get_layout (label), GAIL_BEFORE_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset); 
-}
-
-static gchar*
-gail_label_get_text_at_offset (AtkText         *text,
-                              gint            offset,
-                              AtkTextBoundary boundary_type,
-                              gint            *start_offset,
-                              gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkLabel *label;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-  
-  /* Get label */
-  label = GTK_LABEL (widget);
-
-  return gail_text_util_get_text (GAIL_LABEL (text)->textutil,
-                              gtk_label_get_layout (label), GAIL_AT_OFFSET, 
-                              boundary_type, offset, start_offset, end_offset);
-}
-
-static gchar*
-gail_label_get_text_after_offset (AtkText         *text,
-                                 gint            offset,
-                                 AtkTextBoundary boundary_type,
-                                 gint            *start_offset,
-                                 gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkLabel *label;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-  {
-    /* State is defunct */
-    return NULL;
-  }
-  
-  /* Get label */
-  label = GTK_LABEL (widget);
-
-  return gail_text_util_get_text (GAIL_LABEL (text)->textutil,
-                           gtk_label_get_layout (label), GAIL_AFTER_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset);
-}
-
-static gint
-gail_label_get_character_count (AtkText *text)
-{
-  GtkWidget *widget;
-  GtkLabel  *label;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  label = GTK_LABEL (widget);
-  return g_utf8_strlen (gtk_label_get_text (label), -1);
-}
-
-static gint
-gail_label_get_caret_offset (AtkText *text)
-{
-   return GAIL_LABEL (text)->cursor_position;
-}
-
-static gboolean
-gail_label_set_caret_offset (AtkText *text, 
-                             gint    offset)
-{
-  GtkWidget *widget;
-  GtkLabel  *label;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  label = GTK_LABEL (widget);
-
-  if (gtk_label_get_selectable (label) &&
-      offset >= 0 &&
-      offset <= g_utf8_strlen (gtk_label_get_text (label), -1))
-    {
-      gtk_label_select_region (label, offset, offset);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static gint
-gail_label_get_n_selections (AtkText *text)
-{
-  GtkWidget *widget;
-  GtkLabel  *label;
-  gint start, end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  label = GTK_LABEL (widget);
-
-  if (!gtk_label_get_selectable (label))
-     return 0;
-
-  if (gtk_label_get_selection_bounds (label, &start, &end))
-     return 1;
-  else 
-     return 0;
-}
-
-static gchar*
-gail_label_get_selection (AtkText *text,
-                         gint    selection_num,
-                          gint    *start_pos,
-                          gint    *end_pos)
-{
-  GtkWidget *widget;
-  GtkLabel  *label;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = GTK_LABEL (widget);
-
- /* Only let the user get the selection if one is set, and if the
-  * selection_num is 0.
-  */
-  if (!gtk_label_get_selectable( label) || selection_num != 0)
-     return NULL;
-
-  if (gtk_label_get_selection_bounds (label, start_pos, end_pos))
-    {
-      const gchar* label_text = gtk_label_get_text (label);
-    
-      if (label_text == NULL)
-        return 0;
-      else
-        return gail_text_util_get_substring (GAIL_LABEL (text)->textutil, 
-                                             *start_pos, *end_pos);
-    }
-  else 
-    return NULL;
-}
-
-static gboolean
-gail_label_add_selection (AtkText *text,
-                          gint    start_pos,
-                          gint    end_pos)
-{
-  GtkWidget *widget;
-  GtkLabel  *label;
-  gint start, end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  label = GTK_LABEL (widget);
-
-  if (!gtk_label_get_selectable (label))
-     return FALSE;
-
-  if (! gtk_label_get_selection_bounds (label, &start, &end))
-    {
-      gtk_label_select_region (label, start_pos, end_pos);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static gboolean
-gail_label_remove_selection (AtkText *text,
-                             gint    selection_num)
-{
-  GtkWidget *widget;
-  GtkLabel  *label;
-  gint start, end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  if (selection_num != 0)
-     return FALSE;
-
-  label = GTK_LABEL (widget);
-
-  if (!gtk_label_get_selectable (label))
-     return FALSE;
-
-  if (gtk_label_get_selection_bounds (label, &start, &end))
-    {
-      gtk_label_select_region (label, 0, 0);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static gboolean
-gail_label_set_selection (AtkText *text,
-                         gint    selection_num,
-                          gint    start_pos,
-                          gint    end_pos)
-{
-  GtkWidget *widget;
-  GtkLabel  *label;
-  gint start, end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  if (selection_num != 0)
-     return FALSE;
-
-  label = GTK_LABEL (widget);
-
-  if (!gtk_label_get_selectable (label))
-     return FALSE;
-
-  if (gtk_label_get_selection_bounds (label, &start, &end))
-    {
-      gtk_label_select_region (label, start_pos, end_pos);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static void
-gail_label_get_character_extents (AtkText      *text,
-                                 gint         offset,
-                                 gint         *x,
-                                 gint         *y,
-                                  gint                *width,
-                                  gint                *height,
-                                 AtkCoordType coords)
-{
-  GtkWidget *widget;
-  GtkLabel *label;
-  PangoRectangle char_rect;
-  const gchar *label_text;
-  gint index, x_layout, y_layout;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  label = GTK_LABEL (widget);
-  
-  gtk_label_get_layout_offsets (label, &x_layout, &y_layout);
-  label_text = gtk_label_get_text (label);
-  index = g_utf8_offset_to_pointer (label_text, offset) - label_text;
-  pango_layout_index_to_pos (gtk_label_get_layout (label), index, &char_rect);
-  
-  gail_misc_get_extents_from_pango_rectangle (widget, &char_rect, 
-                    x_layout, y_layout, x, y, width, height, coords);
-} 
-
-static gint 
-gail_label_get_offset_at_point (AtkText      *text,
-                                gint         x,
-                                gint         y,
-                               AtkCoordType coords)
-{ 
-  GtkWidget *widget;
-  GtkLabel *label;
-  const gchar *label_text;
-  gint index, x_layout, y_layout;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-  label = GTK_LABEL (widget);
-  
-  gtk_label_get_layout_offsets (label, &x_layout, &y_layout);
-  
-  index = gail_misc_get_index_at_point_in_layout (widget, 
-                                              gtk_label_get_layout (label), 
-                                              x_layout, y_layout, x, y, coords);
-  label_text = gtk_label_get_text (label);
-  if (index == -1)
-    {
-      if (coords == ATK_XY_WINDOW || coords == ATK_XY_SCREEN)
-        return g_utf8_strlen (label_text, -1);
-
-      return index;  
-    }
-  else
-    return g_utf8_pointer_to_offset (label_text, label_text + index);
-}
-
-static AtkAttributeSet*
-gail_label_get_run_attributes (AtkText        *text,
-                               gint          offset,
-                               gint          *start_offset,
-                              gint           *end_offset)
-{
-  GtkWidget *widget;
-  GtkLabel *label;
-  AtkAttributeSet *at_set = NULL;
-  GtkJustification justify;
-  GtkTextDirection dir;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = GTK_LABEL (widget);
-  
-  /* Get values set for entire label, if any */
-  justify = gtk_label_get_justify (label);
-  if (justify != GTK_JUSTIFY_CENTER)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_JUSTIFICATION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_JUSTIFICATION, justify)));
-    }
-  dir = gtk_widget_get_direction (widget);
-  if (dir == GTK_TEXT_DIR_RTL)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_DIRECTION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION, dir)));
-    }
-
-  at_set = gail_misc_layout_get_run_attributes (at_set,
-                                                gtk_label_get_layout (label),
-                                                gtk_label_get_text (label),
-                                                offset,
-                                                start_offset,
-                                                end_offset);
-  return at_set;
-}
-
-static AtkAttributeSet*
-gail_label_get_default_attributes (AtkText        *text)
-{
-  GtkWidget *widget;
-  GtkLabel *label;
-  AtkAttributeSet *at_set = NULL;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = GTK_LABEL (widget);
-  
-  at_set = gail_misc_get_default_attributes (at_set,
-                                             gtk_label_get_layout (label),
-                                             widget);
-  return at_set;
-}
-
-static gunichar 
-gail_label_get_character_at_offset (AtkText             *text,
-                                    gint                offset)
-{
-  GtkWidget *widget;
-  GtkLabel *label;
-  const gchar *string;
-  gchar *index;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return '\0';
-
-  label = GTK_LABEL (widget);
-  string = gtk_label_get_text (label);
-  if (offset >= g_utf8_strlen (string, -1))
-    return '\0';
-  index = g_utf8_offset_to_pointer (string, offset);
-
-  return g_utf8_get_char (index);
-}
diff --git a/modules/other/gail/gaillabel.h b/modules/other/gail/gaillabel.h
deleted file mode 100644 (file)
index f1012e6..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_LABEL_H__
-#define __GAIL_LABEL_H__
-
-#include <gail/gailwidget.h>
-#include <libgail-util/gailtextutil.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_LABEL                      (gail_label_get_type ())
-#define GAIL_LABEL(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_LABEL, GailLabel))
-#define GAIL_LABEL_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_LABEL, GailLabelClass))
-#define GAIL_IS_LABEL(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_LABEL))
-#define GAIL_IS_LABEL_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_LABEL))
-#define GAIL_LABEL_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_LABEL, GailLabelClass))
-
-typedef struct _GailLabel              GailLabel;
-typedef struct _GailLabelClass         GailLabelClass;
-
-struct _GailLabel
-{
-  GailWidget parent;
-
-  GailTextUtil   *textutil;
-  gint           cursor_position;
-  gint           selection_bound;
-  gint           label_length;
-  gulong         window_create_handler;
-  gboolean       has_top_level;
-};
-
-GType gail_label_get_type (void);
-
-struct _GailLabelClass
-{
-  GailWidgetClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_LABEL_H__ */
diff --git a/modules/other/gail/gaillinkbutton.c b/modules/other/gail/gaillinkbutton.c
deleted file mode 100644 (file)
index 16671f8..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2011 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gaillinkbutton.h"
-
-typedef struct _GailLinkButtonLink GailLinkButtonLink;
-typedef struct _GailLinkButtonLinkClass GailLinkButtonLinkClass;
-
-struct _GailLinkButtonLink
-{
-  AtkHyperlink parent;
-
-  GailLinkButton *button;
-  gchar *description;
-};
-
-struct _GailLinkButtonLinkClass
-{
-  AtkHyperlinkClass parent_class;
-};
-
-static void atk_action_interface_init (AtkActionIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GailLinkButtonLink, gail_link_button_link, ATK_TYPE_HYPERLINK,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init))
-
-static gchar *
-gail_link_button_link_get_uri (AtkHyperlink *link,
-                               gint          i)
-{
-  GailLinkButtonLink *l = (GailLinkButtonLink *)link;
-  GtkWidget *widget;
-  const gchar *uri;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (l->button));
-  uri = gtk_link_button_get_uri (GTK_LINK_BUTTON (widget));
-
-  return g_strdup (uri);
-}
-
-static gint
-gail_link_button_link_get_n_anchors (AtkHyperlink *link)
-{
-  return 1;
-}
-
-static gboolean
-gail_link_button_link_is_valid (AtkHyperlink *link)
-{
-  return TRUE;
-}
-
-static AtkObject *
-gail_link_button_link_get_object (AtkHyperlink *link,
-                                  gint          i)
-{
-  GailLinkButtonLink *l = (GailLinkButtonLink *)link;
-
-  return ATK_OBJECT (l->button);
-}
-
-static gint
-gail_link_button_link_get_start_index (AtkHyperlink *link)
-{
-  return 0;
-}
-
-static gint
-gail_link_button_link_get_end_index (AtkHyperlink *link)
-{
-  GailLinkButtonLink *l = (GailLinkButtonLink *)link;
-
-  return atk_text_get_character_count (ATK_TEXT (l->button));
-}
-
-static void
-gail_link_button_link_init (GailLinkButtonLink *link)
-{
-  link->description = NULL;
-}
-
-static void
-gail_link_button_link_finalize (GObject *obj)
-{
-  GailLinkButtonLink *link = (GailLinkButtonLink *)obj;
-
-  g_free (link->description);
-
-  G_OBJECT_CLASS (gail_link_button_link_parent_class)->finalize (obj);
-}
-
-static void
-gail_link_button_link_class_init (GailLinkButtonLinkClass *class)
-{
-  GObjectClass *object_class = G_OBJECT_CLASS (class);
-  AtkHyperlinkClass *hyperlink_class = ATK_HYPERLINK_CLASS (class);
-
-  object_class->finalize = gail_link_button_link_finalize;
-
-  hyperlink_class->get_uri = gail_link_button_link_get_uri;
-  hyperlink_class->get_n_anchors = gail_link_button_link_get_n_anchors;
-  hyperlink_class->is_valid = gail_link_button_link_is_valid;
-  hyperlink_class->get_object = gail_link_button_link_get_object;
-  hyperlink_class->get_start_index = gail_link_button_link_get_start_index;
-  hyperlink_class->get_end_index = gail_link_button_link_get_end_index;
-}
-
-static gboolean
-gail_link_button_link_do_action (AtkAction *action,
-                                 gint       i)
-{
-  GailLinkButtonLink *link = (GailLinkButtonLink *)action;
-  GtkWidget *widget;
-
-  widget = GTK_WIDGET (link->button);
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-
-  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  gtk_button_clicked (GTK_BUTTON (widget));
-
-  return TRUE;
-}
-
-static gint
-gail_link_button_link_get_n_actions (AtkAction *action)
-{
-  return 1;
-}
-
-static const gchar *
-gail_link_button_link_get_name (AtkAction *action,
-                                gint i)
-{
-  g_return_val_if_fail (i == 0, NULL);
-
-  return "activate";
-}
-
-static const gchar *
-gail_link_button_link_get_description (AtkAction *action,
-                                       gint       i)
-{
-  GailLinkButtonLink *link = (GailLinkButtonLink *)action;
-
-  g_return_val_if_fail (i == 0, NULL);
-
-  return link->description;
-}
-
-static gboolean
-gail_link_button_link_set_description (AtkAction   *action,
-                                       gint         i,
-                                       const gchar *description)
-{
-  GailLinkButtonLink *link = (GailLinkButtonLink *)action;
-
-  g_return_val_if_fail (i == 0, FALSE);
-
-  g_free (link->description);
-  link->description = g_strdup (description);
-
-  return TRUE;
-}
-
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
-  iface->do_action = gail_link_button_link_do_action;
-  iface->get_n_actions = gail_link_button_link_get_n_actions;
-  iface->get_name = gail_link_button_link_get_name;
-  iface->get_description = gail_link_button_link_get_description;
-  iface->set_description = gail_link_button_link_set_description;
-}
-
-static gboolean
-activate_link (GtkLinkButton *button, AtkHyperlink *link)
-{
-  g_signal_emit_by_name (link, "link-activated");
-
-  return FALSE;
-}
-
-static AtkHyperlink *
-gail_link_button_get_hyperlink (AtkHyperlinkImpl *impl)
-{
-  GailLinkButton *button = GAIL_LINK_BUTTON (impl);
-
-  if (!button->link)
-    {
-      button->link = g_object_new (gail_link_button_link_get_type (), NULL);
-      g_signal_connect (gtk_accessible_get_widget (GTK_ACCESSIBLE (button)),
-                        "activate-link", G_CALLBACK (activate_link), button->link);
-    }
-
-  return button->link;
-}
-
-static void atk_hypertext_impl_interface_init (AtkHyperlinkImplIface *iface);
-
-G_DEFINE_TYPE_WITH_CODE (GailLinkButton, gail_link_button, GAIL_TYPE_BUTTON,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_HYPERLINK_IMPL, atk_hypertext_impl_interface_init))
-
-static void
-gail_link_button_init (GailLinkButton *button)
-{
-}
-
-static void
-gail_link_button_finalize (GObject *object)
-{
-  GailLinkButton *button = GAIL_LINK_BUTTON (object);
-
-  if (button->link)
-    g_object_unref (button->link);
-
-  G_OBJECT_CLASS (gail_link_button_parent_class)->finalize (object);
-}
-
-static void
-gail_link_button_class_init (GailLinkButtonClass *klass)
-{
-  G_OBJECT_CLASS (klass)->finalize = gail_link_button_finalize;
-}
-
-static void
-atk_hypertext_impl_interface_init (AtkHyperlinkImplIface *iface)
-{
-  iface->get_hyperlink = gail_link_button_get_hyperlink;
-}
diff --git a/modules/other/gail/gaillinkbutton.h b/modules/other/gail/gaillinkbutton.h
deleted file mode 100644 (file)
index 97e5214..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2011 Red Hat, Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_LINK_BUTTON_H__
-#define __GAIL_LINK_BUTTON_H__
-
-#include <gail/gailbutton.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_LINK_BUTTON                (gail_link_button_get_type ())
-#define GAIL_LINK_BUTTON(obj)                (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_LINK_BUTTON, GailLinkButton))
-#define GAIL_LINK_BUTTON_CLASS(klass)        (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_LINK_BUTTON, GailLinkButtonClass))
-#define GAIL_IS_LINK_BUTTON(obj)             (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_LINK_BUTTON))
-#define GAIL_IS_LINK_BUTTON_CLASS(klass)     (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_LINK_BUTTON))
-#define GAIL_LINK_BUTTON_GET_CLASS(obj)      (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_LINK_BUTTON, GailLinkButtonClass))
-
-typedef struct _GailLinkButton                   GailLinkButton;
-typedef struct _GailLinkButtonClass              GailLinkButtonClass;
-
-struct _GailLinkButton
-{
-  GailButton parent;
-
-  AtkHyperlink *link;
-};
-
-GType gail_link_button_get_type (void);
-
-struct _GailLinkButtonClass
-{
-  GailButtonClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_LINK_BUTTON_H__ */
diff --git a/modules/other/gail/gailmenu.c b/modules/other/gail/gailmenu.c
deleted file mode 100644 (file)
index b744d0c..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include "gailmenu.h"
-
-static void gail_menu_class_init (GailMenuClass *klass);
-static void gail_menu_init       (GailMenu      *accessible);
-
-static void      gail_menu_real_initialize     (AtkObject *obj,
-                                                 gpointer  data);
-
-static AtkObject* gail_menu_get_parent          (AtkObject *accessible);
-static gint       gail_menu_get_index_in_parent (AtkObject *accessible);
-
-G_DEFINE_TYPE (GailMenu, gail_menu, GAIL_TYPE_MENU_SHELL)
-
-static void
-gail_menu_class_init (GailMenuClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->get_parent = gail_menu_get_parent;
-  class->get_index_in_parent = gail_menu_get_index_in_parent;
-  class->initialize = gail_menu_real_initialize;
-}
-
-static void
-gail_menu_init (GailMenu *accessible)
-{
-}
-
-static void
-gail_menu_real_initialize (AtkObject *obj,
-                           gpointer  data)
-{
-  ATK_OBJECT_CLASS (gail_menu_parent_class)->initialize (obj, data);
-
-  obj->role = ATK_ROLE_MENU;
-
-  g_object_set_data (G_OBJECT (obj), "atk-component-layer",
-                    GINT_TO_POINTER (ATK_LAYER_POPUP));
-}
-
-static AtkObject*
-gail_menu_get_parent (AtkObject *accessible)
-{
-  AtkObject *parent;
-
-  parent = accessible->accessible_parent;
-
-  if (parent != NULL)
-    {
-      g_return_val_if_fail (ATK_IS_OBJECT (parent), NULL);
-    }
-  else
-    {
-      GtkWidget *widget, *parent_widget;
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-      if (widget == NULL)
-        {
-          /*
-           * State is defunct
-           */
-          return NULL;
-        }
-      g_return_val_if_fail (GTK_IS_MENU (widget), NULL);
-
-      /*
-       * If the menu is attached to a menu item or a button (Gnome Menu)
-       * report the menu item as parent.
-       */
-      parent_widget = gtk_menu_get_attach_widget (GTK_MENU (widget));
-
-      if (!GTK_IS_MENU_ITEM (parent_widget) && !GTK_IS_BUTTON (parent_widget) && !GTK_IS_COMBO_BOX (parent_widget))
-        parent_widget = gtk_widget_get_parent (widget);
-
-      if (parent_widget == NULL)
-        return NULL;
-
-      parent = gtk_widget_get_accessible (parent_widget);
-      atk_object_set_parent (accessible, parent);
-    }
-  return parent;
-}
-
-static gint
-gail_menu_get_index_in_parent (AtkObject *accessible)
-{
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-
-  if (widget == NULL)
-    {
-      /*
-       * State is defunct
-       */
-      return -1;
-    }
-  g_return_val_if_fail (GTK_IS_MENU (widget), -1);
-
-  if (gtk_menu_get_attach_widget (GTK_MENU (widget)))
-    {
-      return 0;
-    }
-  return ATK_OBJECT_CLASS (gail_menu_parent_class)->get_index_in_parent (accessible);
-}
diff --git a/modules/other/gail/gailmenu.h b/modules/other/gail/gailmenu.h
deleted file mode 100644 (file)
index 7efed5e..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_MENU_H__
-#define __GAIL_MENU_H__
-
-#include <gail/gailmenushell.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_MENU                          (gail_menu_get_type ())
-#define GAIL_MENU(obj)                          (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_MENU_SHELL, GailMenu))
-#define GAIL_MENU_CLASS(klass)                  (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_MENU, GailMenuClass))
-#define GAIL_IS_MENU(obj)                       (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_MENU))
-#define GAIL_IS_MENU_CLASS(klass)               (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_MENU))
-#define GAIL_MENU_GET_CLASS(obj)                (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_MENU, GailMenuClass))
-
-typedef struct _GailMenu                   GailMenu;
-typedef struct _GailMenuClass              GailMenuClass;
-
-struct _GailMenu
-{
-  GailMenuShell parent;
-};
-
-GType gail_menu_get_type (void);
-
-struct _GailMenuClass
-{
-  GailMenuShellClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_MENU_H__ */
diff --git a/modules/other/gail/gailmenuitem.c b/modules/other/gail/gailmenuitem.c
deleted file mode 100644 (file)
index 34e6391..0000000
+++ /dev/null
@@ -1,1241 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-#include "gailmenuitem.h"
-#include "gailsubmenuitem.h"
-#include <libgail-util/gailmisc.h>
-
-#define KEYBINDING_SEPARATOR ";"
-
-static void gail_menu_item_class_init  (GailMenuItemClass *klass);
-static void gail_menu_item_init        (GailMenuItem      *menu_item);
-
-static void                  gail_menu_item_real_initialize
-                                                          (AtkObject       *obj,
-                                                           gpointer        data);
-static gint                  gail_menu_item_get_n_children (AtkObject      *obj);
-static AtkObject*            gail_menu_item_ref_child      (AtkObject      *obj,
-                                                            gint           i);
-static AtkStateSet*          gail_menu_item_ref_state_set  (AtkObject      *obj);
-static void                  gail_menu_item_finalize       (GObject        *object);
-static void                  gail_menu_item_label_map_gtk  (GtkWidget     *widget,
-                                                            gpointer       data);
-static void                  gail_menu_item_init_textutil  (GailMenuItem  *item,
-                                                            GtkWidget     *label);
-static void                  gail_menu_item_notify_label_gtk (GObject       *obj,
-                                                              GParamSpec    *pspec,
-                                                              gpointer      data);
-static const gchar *         gail_menu_item_get_name         (AtkObject    *object);
-
-
-static void                  atk_action_interface_init     (AtkActionIface *iface);
-static gboolean              gail_menu_item_do_action      (AtkAction      *action,
-                                                            gint           i);
-static gboolean              idle_do_action                (gpointer       data);
-static gint                  gail_menu_item_get_n_actions  (AtkAction      *action);
-static const gchar* gail_menu_item_get_description(AtkAction      *action,
-                                                            gint           i);
-static const gchar* gail_menu_item_action_get_name (AtkAction      *action,
-                                                             gint           i);
-static const gchar* gail_menu_item_get_keybinding (AtkAction      *action,
-                                                            gint           i);
-static gboolean              gail_menu_item_set_description(AtkAction      *action,
-                                                            gint           i,
-                                                            const gchar    *desc);
-static void                  menu_item_select              (GtkMenuItem        *item);
-static void                  menu_item_deselect            (GtkMenuItem        *item);
-static void                  menu_item_selection           (GtkMenuItem        *item,
-                                                            gboolean       selected);
-static gboolean              find_accel                    (GtkAccelKey    *key,
-                                                            GClosure       *closure,
-                                                            gpointer       data);
-static gboolean              find_accel_new                (GtkAccelKey    *key,
-                                                            GClosure       *closure,
-                                                            gpointer       data);
-/* atktext.h */
-static void       atk_text_interface_init          (AtkTextIface      *iface);
-
-static gchar*     gail_menu_item_get_text          (AtkText           *text,
-                                                    gint               start_pos,
-                                                    gint               end_pos);
-static gunichar   gail_menu_item_get_character_at_offset (AtkText     *text,
-                                                          gint         offset);
-static gchar*     gail_menu_item_get_text_before_offset  (AtkText     *text,
-                                                          gint         offset,
-                                                          AtkTextBoundary  boundary_type,
-                                                          gint        *start_offset,
-                                                          gint        *end_offset);
-static gchar*     gail_menu_item_get_text_at_offset      (AtkText     *text,
-                                                          gint         offset,
-                                                          AtkTextBoundary   boundary_type,
-                                                          gint        *start_offset,
-                                                          gint        *end_offset);
-static gchar*     gail_menu_item_get_text_after_offset   (AtkText     *text,
-                                                          gint         offset,
-                                                          AtkTextBoundary   boundary_type,
-                                                          gint        *start_offset,
-                                                          gint        *end_offset);
-static gint       gail_menu_item_get_character_count     (AtkText     *text);
-static void       gail_menu_item_get_character_extents   (AtkText     *text,
-                                                          gint         offset,
-                                                          gint        *x,
-                                                          gint        *y,
-                                                          gint        *width,
-                                                          gint        *height,
-                                                          AtkCoordType  coords);
-static gint      gail_menu_item_get_offset_at_point      (AtkText     *text,
-                                                          gint         x,
-                                                          gint         y,
-                                                          AtkCoordType  coords);
-static AtkAttributeSet* gail_menu_item_get_run_attributes (AtkText    *text,
-                                                           gint        offset,
-                                                           gint       *start_offset,
-                                                           gint       *end_offset);
-static AtkAttributeSet* gail_menu_item_get_default_attributes (AtkText *text);
-static GtkWidget*       get_label_from_container   (GtkWidget    *container);
-static gchar *          get_text_from_label_widget (GtkWidget    *widget);
-
-
-G_DEFINE_TYPE_WITH_CODE (GailMenuItem, gail_menu_item, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init))
-
-static void
-gail_menu_item_class_init (GailMenuItemClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  gobject_class->finalize = gail_menu_item_finalize;
-
-  class->get_n_children = gail_menu_item_get_n_children;
-  class->ref_child = gail_menu_item_ref_child;
-  class->ref_state_set = gail_menu_item_ref_state_set;
-  class->initialize = gail_menu_item_real_initialize;
-  class->get_name = gail_menu_item_get_name;
-}
-
-static void
-gail_menu_item_real_initialize (AtkObject *obj,
-                                gpointer  data)
-{
-  GtkWidget *widget;
-  GtkWidget *parent;
-  GailMenuItem *item = GAIL_MENU_ITEM (obj);
-  GtkWidget *label;
-
-  ATK_OBJECT_CLASS (gail_menu_item_parent_class)->initialize (obj, data);
-
-  item->textutil = NULL;
-  item->text = NULL;
-
-  label = get_label_from_container (GTK_WIDGET (data));
-  if (gtk_widget_get_mapped (label))
-    gail_menu_item_init_textutil (item, label);
-  else
-    g_signal_connect (label,
-                      "map",
-                      G_CALLBACK (gail_menu_item_label_map_gtk),
-                      item);
-
-  g_signal_connect (data,
-                    "select",
-                    G_CALLBACK (menu_item_select),
-                    NULL);
-  g_signal_connect (data,
-                    "deselect",
-                    G_CALLBACK (menu_item_deselect),
-                    NULL);
-  widget = GTK_WIDGET (data);
-  parent = gtk_widget_get_parent (widget);
-  if (GTK_IS_MENU (parent))
-    {
-      GtkWidget *parent_widget;
-
-      parent_widget =  gtk_menu_get_attach_widget (GTK_MENU (parent));
-
-      if (!GTK_IS_MENU_ITEM (parent_widget))
-        parent_widget = gtk_widget_get_parent (widget);
-       if (parent_widget)
-        {
-          atk_object_set_parent (obj, gtk_widget_get_accessible (parent_widget));
-        }
-    }
-  g_object_set_data (G_OBJECT (obj), "atk-component-layer",
-                     GINT_TO_POINTER (ATK_LAYER_POPUP));
-
-  if (GTK_IS_TEAROFF_MENU_ITEM (data))
-    obj->role = ATK_ROLE_TEAR_OFF_MENU_ITEM;
-  else if (GTK_IS_SEPARATOR_MENU_ITEM (data))
-    obj->role = ATK_ROLE_SEPARATOR;
-  else
-    obj->role = ATK_ROLE_MENU_ITEM;
-}
-
-static void
-gail_menu_item_init (GailMenuItem *menu_item)
-{
-  menu_item->click_keybinding = NULL;
-  menu_item->click_description = NULL;
-}
-
-static void
-gail_menu_item_label_map_gtk (GtkWidget *widget,
-                              gpointer data)
-{
-  GailMenuItem *item;
-
-  item = GAIL_MENU_ITEM (data);
-  gail_menu_item_init_textutil (item, widget);
-}
-
-static void
-gail_menu_item_notify_label_gtk (GObject           *obj,
-                                 GParamSpec        *pspec,
-                                 gpointer           data)
-{
-  AtkObject* atk_obj = ATK_OBJECT (data);
-  GtkLabel *label;
-  GailMenuItem *menu_item;
-
-  if (strcmp (pspec->name, "label") == 0)
-    {
-      const gchar* label_text;
-
-      label = GTK_LABEL (obj);
-
-      label_text = gtk_label_get_text (label);
-
-      menu_item = GAIL_MENU_ITEM (atk_obj);
-      gail_text_util_text_setup (menu_item->textutil, label_text);
-
-      if (atk_obj->name == NULL)
-      {
-        /*
-         * The label has changed so notify a change in accessible-name
-         */
-        g_object_notify (G_OBJECT (atk_obj), "accessible-name");
-      }
-      /*
-       * The label is the only property which can be changed
-       */
-      g_signal_emit_by_name (atk_obj, "visible_data_changed");
-    }
-}
-
-static void
-gail_menu_item_init_textutil (GailMenuItem  *item,
-                              GtkWidget *label)
-{
-  const gchar *label_text;
-
-  if (item->textutil == NULL)
-    {
-      item->textutil = gail_text_util_new ();
-      g_signal_connect (label,
-                        "notify",
-                        (GCallback) gail_menu_item_notify_label_gtk,
-                        item);     
-    }
-  label_text = get_text_from_label_widget (label);
-  gail_text_util_text_setup (item->textutil, label_text);
-}
-
-/* atktext.h */
-
-static void
-atk_text_interface_init (AtkTextIface *iface)
-{
-  iface->get_text = gail_menu_item_get_text;
-  iface->get_character_at_offset = gail_menu_item_get_character_at_offset;
-  iface->get_text_before_offset = gail_menu_item_get_text_before_offset;
-  iface->get_text_at_offset = gail_menu_item_get_text_at_offset;
-  iface->get_text_after_offset = gail_menu_item_get_text_after_offset;
-  iface->get_character_count = gail_menu_item_get_character_count;
-  iface->get_character_extents = gail_menu_item_get_character_extents;
-  iface->get_offset_at_point = gail_menu_item_get_offset_at_point;
-  iface->get_run_attributes = gail_menu_item_get_run_attributes;
-  iface->get_default_attributes = gail_menu_item_get_default_attributes;
-}
-
-static gchar*
-gail_menu_item_get_text (AtkText *text,
-                         gint    start_pos,
-                         gint    end_pos)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  GailMenuItem *item;
-  const gchar *label_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = get_label_from_container (widget);
-
-  item = GAIL_MENU_ITEM (text);
-  if (!item->textutil)
-    gail_menu_item_init_textutil (item, label);
-
-  label_text = get_text_from_label_widget (label);
-
-  if (label_text == NULL)
-    return NULL;
-  else
-    return gail_text_util_get_substring (item->textutil,
-                                         start_pos, end_pos);
-}
-
-static gchar*
-gail_menu_item_get_text_before_offset (AtkText         *text,
-                                        gint            offset,
-                                        AtkTextBoundary boundary_type,
-                                        gint            *start_offset,
-                                        gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  GailMenuItem *item;
-  
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-  
-  /* Get label */
-  label = get_label_from_container (widget);
-
-  item = GAIL_MENU_ITEM (text);
-  if (!item->textutil)
-    gail_menu_item_init_textutil (item, label);
-
-  return gail_text_util_get_text (item->textutil,
-                           NULL, GAIL_BEFORE_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset); 
-}
-
-static gchar*
-gail_menu_item_get_text_at_offset (AtkText         *text,
-                                   gint            offset,
-                                   AtkTextBoundary boundary_type,
-                                   gint            *start_offset,
-                                   gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  GailMenuItem *item;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-  
-  /* Get label */
-  label = get_label_from_container (widget);
-
-  item = GAIL_MENU_ITEM (text);
-  if (!item->textutil)
-    gail_menu_item_init_textutil (item, label);
-
-  return gail_text_util_get_text (item->textutil,
-                              NULL, GAIL_AT_OFFSET, 
-                              boundary_type, offset, start_offset, end_offset);
-}
-
-static gchar*
-gail_menu_item_get_text_after_offset (AtkText         *text,
-                                      gint            offset,
-                                      AtkTextBoundary boundary_type,
-                                      gint            *start_offset,
-                                      gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  GailMenuItem *item;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-  {
-    /* State is defunct */
-    return NULL;
-  }
-  
-  /* Get label */
-  label = get_label_from_container (widget);
-
-  item = GAIL_MENU_ITEM (text);
-  if (!item->textutil)
-    gail_menu_item_init_textutil (item, label);
-
-  return gail_text_util_get_text (item->textutil,
-                           NULL, GAIL_AFTER_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset);
-}
-
-static gint
-gail_menu_item_get_character_count (AtkText *atk_text)
-{
-  gchar *text;
-  gint len;
-
-  text = gail_menu_item_get_text (atk_text, 0, -1);
-  if (text)
-    {
-      len = g_utf8_strlen (text, -1);
-      g_free (text);
-    }
-  else
-    len = 0;
-
-  return len;
-}
-
-static void
-gail_menu_item_get_character_extents (AtkText      *text,
-                                      gint         offset,
-                                      gint         *x,
-                                      gint         *y,
-                                      gint         *width,
-                                      gint         *height,
-                                      AtkCoordType coords)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  PangoRectangle char_rect;
-  gint index, x_layout, y_layout;
-  const gchar *label_text;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  label = get_label_from_container (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return;
-
-  gtk_label_get_layout_offsets (GTK_LABEL (label), &x_layout, &y_layout);
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  index = g_utf8_offset_to_pointer (label_text, offset) - label_text;
-  pango_layout_index_to_pos (gtk_label_get_layout (GTK_LABEL (label)), index, &char_rect);
-
-  gail_misc_get_extents_from_pango_rectangle (label, &char_rect,
-                    x_layout, y_layout, x, y, width, height, coords);
-}
-
-static gint 
-gail_menu_item_get_offset_at_point (AtkText      *text,
-                               gint         x,
-                               gint         y,
-                               AtkCoordType coords)
-{ 
-  GtkWidget *widget;
-  GtkWidget *label;
-  gint index, x_layout, y_layout;
-  const gchar *label_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-
-  label = get_label_from_container (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return -1;
-  
-  gtk_label_get_layout_offsets (GTK_LABEL (label), &x_layout, &y_layout);
-  
-  index = gail_misc_get_index_at_point_in_layout (label, 
-                                              gtk_label_get_layout (GTK_LABEL (label)), 
-                                              x_layout, y_layout, x, y, coords);
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  if (index == -1)
-    {
-      if (coords == ATK_XY_WINDOW || coords == ATK_XY_SCREEN)
-        return g_utf8_strlen (label_text, -1);
-
-      return index;  
-    }
-  else
-    return g_utf8_pointer_to_offset (label_text, label_text + index);  
-}
-
-static AtkAttributeSet*
-gail_menu_item_get_run_attributes (AtkText *text,
-                              gint    offset,
-                              gint    *start_offset,
-                              gint    *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  AtkAttributeSet *at_set = NULL;
-  GtkJustification justify;
-  GtkTextDirection dir;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = get_label_from_container (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-  
-  /* Get values set for entire label, if any */
-  justify = gtk_label_get_justify (GTK_LABEL (label));
-  if (justify != GTK_JUSTIFY_CENTER)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_JUSTIFICATION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_JUSTIFICATION, justify)));
-    }
-  dir = gtk_widget_get_direction (label);
-  if (dir == GTK_TEXT_DIR_RTL)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_DIRECTION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION, dir)));
-    }
-
-  at_set = gail_misc_layout_get_run_attributes (at_set,
-                                                gtk_label_get_layout (GTK_LABEL (label)),
-                                                (gchar *) gtk_label_get_text (GTK_LABEL (label)),
-                                                offset,
-                                                start_offset,
-                                                end_offset);
-  return at_set;
-}
-
-static AtkAttributeSet*
-gail_menu_item_get_default_attributes (AtkText *text)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  AtkAttributeSet *at_set = NULL;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = get_label_from_container (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  at_set = gail_misc_get_default_attributes (at_set,
-                                             gtk_label_get_layout (GTK_LABEL (label)),
-                                             widget);
-  return at_set;
-}
-
-static gunichar 
-gail_menu_item_get_character_at_offset (AtkText *text,
-                                   gint   offset)
-{
-  gchar *string;
-  gchar *index;
-  gunichar ch;
-
-  string = gail_menu_item_get_text (text, 0, -1);
-
-  if (string == NULL || offset >= g_utf8_strlen (string, -1))
-    ch = '\0';
-  else
-    {
-      index = g_utf8_offset_to_pointer (string, offset);
-      ch = g_utf8_get_char (index);
-    }
-
-  g_free (string);
-
-  return ch;
-}
-
-static GtkWidget*
-get_label_from_container (GtkWidget *container)
-{
-  GtkWidget *label;
-  GList *children, *tmp_list;
-
-  if (!GTK_IS_CONTAINER (container))
-    return NULL;
-  children = gtk_container_get_children (GTK_CONTAINER (container));
-  label = NULL;
-
-  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next) 
-    {
-      if (GTK_IS_LABEL (tmp_list->data))
-        {
-          label = tmp_list->data;
-          break;
-        }
-      else if (GTK_IS_CELL_VIEW (tmp_list->data))
-        {
-          label = tmp_list->data;
-          break;
-        }
-      /*
- *        * Get label from menu item in desktop background preferences
- *               * option menu. See bug #144084.
- *                      */
-      else if (GTK_IS_BOX (tmp_list->data))
-        {
-          label = get_label_from_container (GTK_WIDGET (tmp_list->data));
-          if (label)
-            break;
-        }
-    }
-  g_list_free (children);
-
-  return label;
-}
-
-static gchar *
-get_text_from_label_widget (GtkWidget *label)
-{
-  if (GTK_IS_LABEL (label))
-    return g_strdup (gtk_label_get_text (GTK_LABEL (label)));
-  else if (GTK_IS_CELL_VIEW (label))
-    {
-      GList *cells, *l;
-      GtkTreeModel *model;
-      GtkTreeIter iter;
-      GtkTreePath *path;
-      GtkCellArea *area;
-      gchar *text;
-
-      model = gtk_cell_view_get_model (GTK_CELL_VIEW (label));
-      path = gtk_cell_view_get_displayed_row (GTK_CELL_VIEW (label));
-      gtk_tree_model_get_iter (model, &iter, path);
-      gtk_tree_path_free (path);
-
-      area = gtk_cell_layout_get_area (GTK_CELL_LAYOUT (label));
-
-      gtk_cell_area_apply_attributes (area, model, &iter, FALSE, FALSE);
-
-      cells = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (label));
-      for (l = cells; l; l = l->next)
-        {
-          GtkCellRenderer *cell = l->data;
-
-          if (GTK_IS_CELL_RENDERER_TEXT (cell))
-            {
-              g_object_get (cell, "text", &text, NULL);
-              break;
-            }
-        }
-
-      g_list_free (cells);
-
-      return text;
-    }
-
-  return NULL;
-}
-
-AtkObject*
-gail_menu_item_new (GtkWidget *widget)
-{
-  GObject *object;
-  AtkObject *accessible;
-  
-  g_return_val_if_fail (GTK_IS_MENU_ITEM (widget), NULL);
-
-  if (gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget)))
-    return gail_sub_menu_item_new (widget);
-
-  object = g_object_new (GAIL_TYPE_MENU_ITEM, NULL);
-
-  accessible = ATK_OBJECT (object);
-  atk_object_initialize (accessible, widget);
-
-  return accessible;
-}
-
-GList *
-get_children (GtkWidget *submenu)
-{
-  GList *children;
-
-  children = gtk_container_get_children (GTK_CONTAINER (submenu));
-  if (g_list_length (children) == 0)
-    {
-      /*
-       * If menu is empty it may be because the menu items are created only 
-       * on demand. For example, in gnome-panel the menu items are created
-       * only when "show" signal is emitted on the menu.
-       *
-       * The following hack forces the menu items to be created.
-       */
-      if (!gtk_widget_get_visible (submenu))
-        {
-          /* FIXME GTK_WIDGET_SET_FLAGS (submenu, GTK_VISIBLE); */
-          g_signal_emit_by_name (submenu, "show");
-          /* FIXME GTK_WIDGET_UNSET_FLAGS (submenu, GTK_VISIBLE); */
-        }
-      g_list_free (children);
-      children = gtk_container_get_children (GTK_CONTAINER (submenu));
-    }
-  return children;
-}
-
-/*
- * If a menu item has a submenu return the items of the submenu as the 
- * accessible children; otherwise expose no accessible children.
- */
-static gint
-gail_menu_item_get_n_children (AtkObject* obj)
-{
-  GtkWidget *widget;
-  GtkWidget *submenu;
-  gint count = 0;
-
-  g_return_val_if_fail (GAIL_IS_MENU_ITEM (obj), count);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    return count;
-
-  submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
-  if (submenu)
-    {
-      GList *children;
-
-      children = get_children (submenu);
-      count = g_list_length (children);
-      g_list_free (children);
-    }
-  return count;
-}
-
-static AtkObject*
-gail_menu_item_ref_child (AtkObject *obj,
-                          gint       i)
-{
-  AtkObject  *accessible;
-  GtkWidget *widget;
-  GtkWidget *submenu;
-
-  g_return_val_if_fail (GAIL_IS_MENU_ITEM (obj), NULL);
-  g_return_val_if_fail ((i >= 0), NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    return NULL;
-
-  submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
-  if (submenu)
-    {
-      GList *children;
-      GList *tmp_list;
-
-      children = get_children (submenu);
-      tmp_list = g_list_nth (children, i);
-      if (!tmp_list)
-        {
-          g_list_free (children);
-          return NULL;
-        }
-      accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
-      g_list_free (children);
-      g_object_ref (accessible);
-    }
-  else
-    accessible = NULL;
-
-  return accessible;
-}
-
-static AtkStateSet*
-gail_menu_item_ref_state_set (AtkObject *obj)
-{
-  AtkObject *menu_item;
-  AtkStateSet *state_set, *parent_state_set;
-
-  state_set = ATK_OBJECT_CLASS (gail_menu_item_parent_class)->ref_state_set (obj);
-
-  menu_item = atk_object_get_parent (obj);
-
-  if (menu_item)
-    {
-      if (!GTK_IS_MENU_ITEM (gtk_accessible_get_widget (GTK_ACCESSIBLE (menu_item))))
-        return state_set;
-
-      parent_state_set = atk_object_ref_state_set (menu_item);
-      if (!atk_state_set_contains_state (parent_state_set, ATK_STATE_SELECTED))
-        {
-          atk_state_set_remove_state (state_set, ATK_STATE_FOCUSED);
-          atk_state_set_remove_state (state_set, ATK_STATE_SHOWING);
-        }
-    }
-  return state_set;
-}
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
-  iface->do_action = gail_menu_item_do_action;
-  iface->get_n_actions = gail_menu_item_get_n_actions;
-  iface->get_description = gail_menu_item_get_description;
-  iface->get_name = gail_menu_item_action_get_name;
-  iface->get_keybinding = gail_menu_item_get_keybinding;
-  iface->set_description = gail_menu_item_set_description;
-}
-
-static gboolean
-gail_menu_item_do_action (AtkAction *action,
-                          gint      i)
-{
-  if (i == 0)
-    {
-      GtkWidget *item;
-      GailMenuItem *gail_menu_item;
-
-      item = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
-      if (item == NULL)
-        /* State is defunct */
-        return FALSE;
-
-      if (!gtk_widget_get_sensitive (item) || !gtk_widget_get_visible (item))
-        return FALSE;
-
-      gail_menu_item = GAIL_MENU_ITEM (action);
-      if (gail_menu_item->action_idle_handler)
-        return FALSE;
-      else
-       {
-         gail_menu_item->action_idle_handler =
-            gdk_threads_add_idle_full (G_PRIORITY_DEFAULT_IDLE,
-                                       idle_do_action,
-                                       g_object_ref (gail_menu_item),
-                                       (GDestroyNotify) g_object_unref);
-       }
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static void
-ensure_menus_unposted (GailMenuItem *menu_item)
-{
-  AtkObject *parent;
-  GtkWidget *widget;
-
-  parent = atk_object_get_parent (ATK_OBJECT (menu_item));
-  while (parent)
-    {
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
-      if (GTK_IS_MENU (widget))
-        {
-          if (gtk_widget_get_mapped (widget))
-            gtk_menu_shell_cancel (GTK_MENU_SHELL (widget));
-
-          return;
-        }
-      parent = atk_object_get_parent (parent);
-    }
-}
-
-static gboolean
-idle_do_action (gpointer data)
-{
-  GtkWidget *item;
-  GtkWidget *item_parent;
-  GailMenuItem *menu_item;
-  gboolean item_mapped;
-
-  menu_item = GAIL_MENU_ITEM (data);
-  menu_item->action_idle_handler = 0;
-  item = gtk_accessible_get_widget (GTK_ACCESSIBLE (menu_item));
-  if (item == NULL /* State is defunct */ ||
-      !gtk_widget_get_sensitive (item) || !gtk_widget_get_visible (item))
-    return FALSE;
-
-  item_parent = gtk_widget_get_parent (item);
-  gtk_menu_shell_select_item (GTK_MENU_SHELL (item_parent), item);
-  item_mapped = gtk_widget_get_mapped (item);
-  /*
-   * This is what is called when <Return> is pressed for a menu item
-   */
-  g_signal_emit_by_name (item_parent, "activate_current",  
-                         /*force_hide*/ 1); 
-  if (!item_mapped)
-    ensure_menus_unposted (menu_item);
-
-  return FALSE;
-}
-
-static gint
-gail_menu_item_get_n_actions (AtkAction *action)
-{
-  /*
-   * Menu item has 1 action
-   */
-  return 1;
-}
-
-static const gchar*
-gail_menu_item_get_description (AtkAction *action,
-                                gint      i)
-{
-  if (i == 0)
-    {
-      GailMenuItem *item;
-
-      item = GAIL_MENU_ITEM (action);
-      return item->click_description;
-    }
-  else
-    return NULL;
-}
-
-static const gchar*
-gail_menu_item_action_get_name (AtkAction *action,
-                                gint      i)
-{
-  if (i == 0)
-    return "click";
-  else
-    return NULL;
-}
-
-static const gchar*
-gail_menu_item_get_keybinding (AtkAction *action,
-                               gint      i)
-{
-  /*
-   * This function returns a string of the form A;B;C where
-   * A is the keybinding for the widget; B is the keybinding to traverse
-   * from the menubar and C is the accelerator.
-   * The items in the keybinding to traverse from the menubar are separated
-   * by ":".
-   */
-  GailMenuItem  *gail_menu_item;
-  gchar *keybinding = NULL;
-  gchar *item_keybinding = NULL;
-  gchar *full_keybinding = NULL;
-  gchar *accelerator = NULL;
-
-  gail_menu_item = GAIL_MENU_ITEM (action);
-  if (i == 0)
-    {
-      GtkWidget *item;
-      GtkWidget *temp_item;
-      GtkWidget *child;
-      GtkWidget *parent;
-
-      item = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
-      if (item == NULL)
-        /* State is defunct */
-        return NULL;
-
-      temp_item = item;
-      while (TRUE)
-        {
-          GdkModifierType mnemonic_modifier = 0;
-          guint key_val;
-          gchar *key, *temp_keybinding;
-
-          child = gtk_bin_get_child (GTK_BIN (temp_item));
-          if (child == NULL)
-            {
-              /* Possibly a tear off menu item; it could also be a menu 
-               * separator generated by gtk_item_factory_create_items()
-               */
-              return NULL;
-            }
-          parent = gtk_widget_get_parent (temp_item);
-          if (!parent)
-            {
-              /*
-               * parent can be NULL when activating a window from the panel
-               */
-              return NULL;
-            }
-          g_return_val_if_fail (GTK_IS_MENU_SHELL (parent), NULL);
-          if (GTK_IS_MENU_BAR (parent))
-            {
-              GtkWidget *toplevel;
-
-              toplevel = gtk_widget_get_toplevel (parent);
-              if (toplevel && GTK_IS_WINDOW (toplevel))
-                mnemonic_modifier = gtk_window_get_mnemonic_modifier (
-                                       GTK_WINDOW (toplevel));
-            }
-          if (GTK_IS_LABEL (child))
-            {
-              key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (child));
-              if (key_val != GDK_KEY_VoidSymbol)
-                {
-                  key = gtk_accelerator_name (key_val, mnemonic_modifier);
-                  if (full_keybinding)
-                    temp_keybinding = g_strconcat (key, ":", full_keybinding, NULL);
-                  else 
-                    temp_keybinding = g_strconcat (key, NULL);
-                  if (temp_item == item)
-                    {
-                      item_keybinding = g_strdup (key); 
-                    }
-                  g_free (key);
-                  g_free (full_keybinding);
-                  full_keybinding = temp_keybinding;
-                }
-              else
-                {
-                  /* No keybinding */
-                  g_free (full_keybinding);
-                  full_keybinding = NULL;
-                  break;
-                }        
-            }        
-          if (GTK_IS_MENU_BAR (parent))
-            /* We have reached the menu bar so we are finished */
-            break;
-          g_return_val_if_fail (GTK_IS_MENU (parent), NULL);
-          temp_item = gtk_menu_get_attach_widget (GTK_MENU (parent));
-          if (!GTK_IS_MENU_ITEM (temp_item))
-            {
-              /* 
-               * Menu is attached to something other than a menu item;
-               * probably an option menu
-               */
-              g_free (full_keybinding);
-              full_keybinding = NULL;
-              break;
-            }
-        }
-
-      parent = gtk_widget_get_parent (item);
-      if (GTK_IS_MENU (parent))
-        {
-          GtkAccelGroup *group; 
-          GtkAccelKey *key;
-
-          group = gtk_menu_get_accel_group (GTK_MENU (parent));
-
-          if (group)
-            {
-              key = gtk_accel_group_find (group, find_accel, item);
-            }
-          else
-            {
-              /*
-               * If the menu item is created using GtkAction and GtkUIManager
-               * we get here.
-               */
-              key = NULL;
-              child = gtk_bin_get_child (GTK_BIN (item));
-              if (GTK_IS_ACCEL_LABEL (child))
-                {
-                  GtkAccelLabel *accel_label;
-                  GClosure      *accel_closure;
-
-                  accel_label = GTK_ACCEL_LABEL (child);
-                  g_object_get (accel_label,
-                                "accel-closure", &accel_closure,
-                                NULL);
-                  if (accel_closure)
-                    {
-                      key = gtk_accel_group_find (gtk_accel_group_from_accel_closure (accel_closure),
-                                                  find_accel_new,
-                                                  accel_closure);
-                    }
-               
-                }
-            }
-
-          if (key)
-            {           
-              accelerator = gtk_accelerator_name (key->accel_key,
-                                                  key->accel_mods);
-            }
-        }
-    }
-  /*
-   * Concatenate the bindings
-   */
-  if (item_keybinding || full_keybinding || accelerator)
-    {
-      gchar *temp;
-      if (item_keybinding)
-        {
-          keybinding = g_strconcat (item_keybinding, KEYBINDING_SEPARATOR, NULL);
-          g_free (item_keybinding);
-        }
-      else
-        keybinding = g_strconcat (KEYBINDING_SEPARATOR, NULL);
-
-      if (full_keybinding)
-        {
-          temp = g_strconcat (keybinding, full_keybinding, 
-                              KEYBINDING_SEPARATOR, NULL);
-          g_free (full_keybinding);
-        }
-      else
-        temp = g_strconcat (keybinding, KEYBINDING_SEPARATOR, NULL);
-
-      g_free (keybinding);
-      keybinding = temp;
-      if (accelerator)
-        {
-          temp = g_strconcat (keybinding, accelerator, NULL);
-          g_free (accelerator);
-          g_free (keybinding);
-          keybinding = temp;
-      }
-    }
-  g_free (gail_menu_item->click_keybinding);
-  gail_menu_item->click_keybinding = keybinding;
-  return keybinding;
-}
-
-static gboolean
-gail_menu_item_set_description (AtkAction      *action,
-                                gint           i,
-                                const gchar    *desc)
-{
-  if (i == 0)
-    {
-      GailMenuItem *item;
-
-      item = GAIL_MENU_ITEM (action);
-      g_free (item->click_description);
-      item->click_description = g_strdup (desc);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static void
-gail_menu_item_finalize (GObject *object)
-{
-  GailMenuItem *menu_item = GAIL_MENU_ITEM (object);
-
-  g_free (menu_item->click_keybinding);
-  g_free (menu_item->click_description);
-  if (menu_item->action_idle_handler)
-    {
-      g_source_remove (menu_item->action_idle_handler);
-      menu_item->action_idle_handler = 0;
-    }
-
-  if (menu_item->textutil)
-    {
-      g_object_unref (menu_item->textutil);
-    }
-  if (menu_item->text)
-    {
-      g_free (menu_item->text);
-      menu_item->text = NULL;
-    }
-
-  G_OBJECT_CLASS (gail_menu_item_parent_class)->finalize (object);
-}
-
-static const gchar *
-gail_menu_item_get_name (AtkObject *obj)
-{
-  const gchar* name;
-  GtkWidget *widget;
-  GtkWidget *label;
-
-  name = ATK_OBJECT_CLASS (gail_menu_item_parent_class)->get_name (obj);
-
-  if (name)
-    return name;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    return NULL;
-
-  label = get_label_from_container (widget);
-  if (GTK_IS_LABEL (label))
-    return gtk_label_get_text (GTK_LABEL(label));
-
-  return NULL;
-}
-
-static void
-menu_item_select (GtkMenuItem *item)
-{
-  menu_item_selection (item, TRUE);
-}
-
-static void
-menu_item_deselect (GtkMenuItem *item)
-{
-  menu_item_selection (item, FALSE);
-}
-
-static void
-menu_item_selection (GtkMenuItem  *item,
-                     gboolean selected)
-{
-  AtkObject *obj, *parent;
-  gint i;
-
-  obj = gtk_widget_get_accessible (GTK_WIDGET (item));
-  atk_object_notify_state_change (obj, ATK_STATE_SELECTED, selected);
-
-  for (i = 0; i < atk_object_get_n_accessible_children (obj); i++)
-    {
-      AtkObject *child;
-      child = atk_object_ref_accessible_child (obj, i);
-      atk_object_notify_state_change (child, ATK_STATE_SHOWING, selected);
-      g_object_unref (child);
-    }
-  parent = atk_object_get_parent (obj);
-  g_signal_emit_by_name (parent, "selection_changed"); 
-}
-
-static gboolean
-find_accel (GtkAccelKey *key,
-            GClosure    *closure,
-            gpointer     data)
-{
-  /*
-   * We assume that closure->data points to the widget
-   * pending gtk_widget_get_accel_closures being made public
-   */
-  return data == (gpointer) closure->data;
-}
-
-static gboolean
-find_accel_new (GtkAccelKey *key,
-                GClosure    *closure,
-                gpointer     data)
-{
-  return data == (gpointer) closure;
-}
diff --git a/modules/other/gail/gailmenuitem.h b/modules/other/gail/gailmenuitem.h
deleted file mode 100644 (file)
index 298ead4..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_MENU_ITEM_H__
-#define __GAIL_MENU_ITEM_H__
-
-#include <gail/gailcontainer.h>
-#include <libgail-util/gailtextutil.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_MENU_ITEM                     (gail_menu_item_get_type ())
-#define GAIL_MENU_ITEM(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_MENU_ITEM, GailMenuItem))
-#define GAIL_MENU_ITEM_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_MENU_ITEM, GailMenuItemClass))
-#define GAIL_IS_MENU_ITEM(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_MENU_ITEM))
-#define GAIL_IS_MENU_ITEM_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_MENU_ITEM))
-#define GAIL_MENU_ITEM_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_MENU_ITEM, GailMenuItemClass))
-
-typedef struct _GailMenuItem                   GailMenuItem;
-typedef struct _GailMenuItemClass              GailMenuItemClass;
-
-struct _GailMenuItem
-{
-  GailContainer parent;
-
-  GailTextUtil *textutil;
-
-  gchar *text;
-
-  gchar    *click_keybinding;
-  gchar    *click_description;
-  guint    action_idle_handler;
-};
-
-GType gail_menu_item_get_type (void);
-
-struct _GailMenuItemClass
-{
-  GailContainerClass parent_class;
-};
-
-AtkObject* gail_menu_item_new (GtkWidget *widget);
-
-G_END_DECLS
-
-#endif /* __GAIL_MENU_ITEM_H__ */
diff --git a/modules/other/gail/gailmenushell.c b/modules/other/gail/gailmenushell.c
deleted file mode 100644 (file)
index 7d87df5..0000000
+++ /dev/null
@@ -1,258 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailmenushell.h"
-
-static void         gail_menu_shell_class_init          (GailMenuShellClass *klass);
-static void         gail_menu_shell_init                (GailMenuShell      *menu_shell);
-static void         gail_menu_shell_initialize          (AtkObject          *accessible,
-                                                         gpointer            data);
-static void         atk_selection_interface_init        (AtkSelectionIface  *iface);
-static gboolean     gail_menu_shell_add_selection       (AtkSelection   *selection,
-                                                         gint           i);
-static gboolean     gail_menu_shell_clear_selection     (AtkSelection   *selection);
-static AtkObject*   gail_menu_shell_ref_selection       (AtkSelection   *selection,
-                                                         gint           i);
-static gint         gail_menu_shell_get_selection_count (AtkSelection   *selection);
-static gboolean     gail_menu_shell_is_child_selected   (AtkSelection   *selection,
-                                                         gint           i);
-static gboolean     gail_menu_shell_remove_selection    (AtkSelection   *selection,
-                                                         gint           i);
-
-G_DEFINE_TYPE_WITH_CODE (GailMenuShell, gail_menu_shell, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
-
-static void
-gail_menu_shell_class_init (GailMenuShellClass *klass)
-{
-  AtkObjectClass *atk_object_class = ATK_OBJECT_CLASS (klass);
-
-  atk_object_class->initialize = gail_menu_shell_initialize;
-}
-
-static void
-gail_menu_shell_init (GailMenuShell *menu_shell)
-{
-}
-
-static void
-gail_menu_shell_initialize (AtkObject *accessible,
-                            gpointer  data)
-{
-  ATK_OBJECT_CLASS (gail_menu_shell_parent_class)->initialize (accessible, data);
-
-  if (GTK_IS_MENU_BAR (data))
-    accessible->role = ATK_ROLE_MENU_BAR;
-  else
-    /*
-     * Accessible object for Menu is created in gailmenu.c
-     */
-    accessible->role = ATK_ROLE_UNKNOWN;
-}
-
-static void
-atk_selection_interface_init (AtkSelectionIface *iface)
-{
-  iface->add_selection = gail_menu_shell_add_selection;
-  iface->clear_selection = gail_menu_shell_clear_selection;
-  iface->ref_selection = gail_menu_shell_ref_selection;
-  iface->get_selection_count = gail_menu_shell_get_selection_count;
-  iface->is_child_selected = gail_menu_shell_is_child_selected;
-  iface->remove_selection = gail_menu_shell_remove_selection;
-  /*
-   * select_all_selection does not make sense for a menu_shell
-   * so no implementation is provided.
-   */
-}
-
-static gboolean
-gail_menu_shell_add_selection (AtkSelection *selection,
-                               gint          i)
-{
-  GList *kids;
-  GtkWidget *item;
-  guint length;
-  GtkWidget *widget;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-  {
-    /* State is defunct */
-    return FALSE;
-  }
-
-  kids = gtk_container_get_children (GTK_CONTAINER (widget));
-  length = g_list_length (kids);
-  if (i < 0 || i > length)
-    {
-      g_list_free (kids);
-      return FALSE;
-    }
-
-  item = g_list_nth_data (kids, i);
-  g_list_free (kids);
-  g_return_val_if_fail (GTK_IS_MENU_ITEM(item), FALSE);
-  gtk_menu_shell_select_item (GTK_MENU_SHELL (widget), item);
-  return TRUE;
-}
-
-static gboolean
-gail_menu_shell_clear_selection (AtkSelection   *selection)
-{
-  GtkMenuShell *shell;
-  GtkWidget *widget;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-  {
-    /* State is defunct */
-    return FALSE;
-  }
-
-  shell = GTK_MENU_SHELL (widget);
-
-  gtk_menu_shell_deselect (shell);
-  return TRUE;
-}
-
-static AtkObject*
-gail_menu_shell_ref_selection (AtkSelection   *selection,
-                               gint           i)
-{
-  GtkMenuShell *shell;
-  AtkObject *obj;
-  GtkWidget *widget;
-  GtkWidget *item;
-
-  if (i != 0)
-    return NULL;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-  {
-    /* State is defunct */
-    return NULL;
-  }
-
-  shell = GTK_MENU_SHELL (widget);
-
-  item = gtk_menu_shell_get_selected_item (shell);
-  if (item != NULL)
-  {
-    obj = gtk_widget_get_accessible (item);
-    g_object_ref (obj);
-    return obj;
-  }
-  else
-  {
-    return NULL;
-  }
-}
-
-static gint
-gail_menu_shell_get_selection_count (AtkSelection   *selection)
-{
-  GtkMenuShell *shell;
-  GtkWidget *widget;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-  {
-    /* State is defunct */
-    return 0;
-  }
-
-  shell = GTK_MENU_SHELL (widget);
-
-  /*
-   * Identifies the currently selected menu item
-   */
-  if (gtk_menu_shell_get_selected_item (shell) == NULL)
-  {
-    return 0;
-  }
-  else
-  {
-    return 1;
-  }
-}
-
-static gboolean
-gail_menu_shell_is_child_selected (AtkSelection   *selection,
-                                   gint           i)
-{
-  GtkMenuShell *shell;
-  GList *kids;
-  gint j;
-  GtkWidget *widget;
-  GtkWidget *item;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-  {
-    /* State is defunct */
-    return FALSE;
-  }
-
-  shell = GTK_MENU_SHELL (widget);
-  item = gtk_menu_shell_get_selected_item (shell);
-  if (item == NULL)
-    return FALSE;
-
-  kids = gtk_container_get_children (GTK_CONTAINER (shell));
-  j = g_list_index (kids, item);
-  g_list_free (kids);
-
-  return (j==i);
-}
-
-static gboolean
-gail_menu_shell_remove_selection (AtkSelection   *selection,
-                                  gint           i)
-{
-  GtkMenuShell *shell;
-  GtkWidget *widget;
-  GtkWidget *item;
-
-  if (i != 0)
-    return FALSE;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-  {
-    /* State is defunct */
-    return FALSE;
-  }
-
-  shell = GTK_MENU_SHELL (widget);
-
-  item = gtk_menu_shell_get_selected_item (shell);
-  if (item && gtk_menu_item_get_submenu (GTK_MENU_ITEM (item)))
-  {
-    /*
-     * Menu item contains a menu and it is the selected menu item
-     * so deselect it.
-     */
-    gtk_menu_shell_deselect (shell);
-  }
-  return TRUE;
-}
diff --git a/modules/other/gail/gailmenushell.h b/modules/other/gail/gailmenushell.h
deleted file mode 100644 (file)
index 53e39f6..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_MENU_SHELL_H__
-#define __GAIL_MENU_SHELL_H__
-
-#include <gail/gailcontainer.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_MENU_SHELL                    (gail_menu_shell_get_type ())
-#define GAIL_MENU_SHELL(obj)                    (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_MENU_SHELL, GailMenuShell))
-#define GAIL_MENU_SHELL_CLASS(klass)            (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_MENU_SHELL, GailMenuShellClass))
-#define GAIL_IS_MENU_SHELL(obj)                 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_MENU_SHELL))
-#define GAIL_IS_MENU_SHELL_CLASS(klass)         (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_MENU_SHELL))
-#define GAIL_MENU_SHELL_GET_CLASS(obj)          (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_MENU_SHELL, GailMenuShellClass))
-
-typedef struct _GailMenuShell                   GailMenuShell;
-typedef struct _GailMenuShellClass              GailMenuShellClass;
-
-struct _GailMenuShell
-{
-  GailContainer parent;
-};
-
-GType gail_menu_shell_get_type (void);
-
-struct _GailMenuShellClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_MENU_SHELL_H__ */
diff --git a/modules/other/gail/gailnotebook.c b/modules/other/gail/gailnotebook.c
deleted file mode 100644 (file)
index 228641a..0000000
+++ /dev/null
@@ -1,598 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include "gailnotebook.h"
-#include "gailnotebookpage.h"
-#include "gail-private-macros.h"
-
-static void         gail_notebook_class_init          (GailNotebookClass *klass);
-static void         gail_notebook_init                (GailNotebook      *notebook);
-static void         gail_notebook_finalize            (GObject           *object);
-static void         gail_notebook_real_initialize     (AtkObject         *obj,
-                                                       gpointer          data);
-
-static void         gail_notebook_real_notify_gtk     (GObject           *obj,
-                                                       GParamSpec        *pspec);
-
-static AtkObject*   gail_notebook_ref_child           (AtkObject      *obj,
-                                                       gint           i);
-static gint         gail_notebook_real_remove_gtk     (GtkContainer   *container,
-                                                       GtkWidget      *widget,
-                                                       gpointer       data);    
-static void         atk_selection_interface_init      (AtkSelectionIface *iface);
-static gboolean     gail_notebook_add_selection       (AtkSelection   *selection,
-                                                       gint           i);
-static AtkObject*   gail_notebook_ref_selection       (AtkSelection   *selection,
-                                                       gint           i);
-static gint         gail_notebook_get_selection_count (AtkSelection   *selection);
-static gboolean     gail_notebook_is_child_selected   (AtkSelection   *selection,
-                                                       gint           i);
-static AtkObject*   find_child_in_list                (GList          *list,
-                                                       gint           index);
-static void         check_cache                       (GailNotebook   *gail_notebook,
-                                                       GtkNotebook    *notebook);
-static void         reset_cache                       (GailNotebook   *gail_notebook,
-                                                       gint           index);
-static void         create_notebook_page_accessible   (GailNotebook   *gail_notebook,
-                                                       GtkNotebook    *notebook,
-                                                       gint           index,
-                                                       gboolean       insert_before,
-                                                       GList          *list);
-static void         gail_notebook_child_parent_set    (GtkWidget      *widget,
-                                                       GtkWidget      *old_parent,
-                                                       gpointer       data);
-static gboolean     gail_notebook_focus_cb            (GtkWidget      *widget,
-                                                       GtkDirectionType type);
-static gboolean     gail_notebook_check_focus_tab     (gpointer       data);
-static void         gail_notebook_destroyed           (gpointer       data);
-
-
-G_DEFINE_TYPE_WITH_CODE (GailNotebook, gail_notebook, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
-
-static void
-gail_notebook_class_init (GailNotebookClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-  GailWidgetClass *widget_class;
-  GailContainerClass *container_class;
-
-  widget_class = (GailWidgetClass*)klass;
-  container_class = (GailContainerClass*)klass;
-
-  gobject_class->finalize = gail_notebook_finalize;
-
-  widget_class->notify_gtk = gail_notebook_real_notify_gtk;
-
-  class->ref_child = gail_notebook_ref_child;
-  class->initialize = gail_notebook_real_initialize;
-  /*
-   * We do not provide an implementation of get_n_children
-   * as the implementation in GailContainer returns the correct
-   * number of children.
-   */
-  container_class->remove_gtk = gail_notebook_real_remove_gtk;
-}
-
-static void
-gail_notebook_init (GailNotebook      *notebook)
-{
-  notebook->page_cache = NULL;
-  notebook->selected_page = -1;
-  notebook->focus_tab_page = -1;
-  notebook->remove_index = -1;
-  notebook->idle_focus_id = 0;
-}
-
-static AtkObject*
-gail_notebook_ref_child (AtkObject      *obj,
-                         gint           i)
-{
-  AtkObject *accessible = NULL;
-  GailNotebook *gail_notebook;
-  GtkNotebook *gtk_notebook;
-  GtkWidget *widget;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return NULL;
-
-  gail_notebook = GAIL_NOTEBOOK (obj);
-  
-  gtk_notebook = GTK_NOTEBOOK (widget);
-
-  if (gail_notebook->page_count < gtk_notebook_get_n_pages (gtk_notebook))
-    check_cache (gail_notebook, gtk_notebook);
-
-  accessible = find_child_in_list (gail_notebook->page_cache, i);
-
-  if (accessible != NULL)
-    g_object_ref (accessible);
-
-  return accessible;
-}
-
-static void
-gail_notebook_page_added (GtkNotebook *gtk_notebook,
-                          GtkWidget   *child,
-                          guint        page_num,
-                          gpointer     data)
-{
-  AtkObject *atk_obj;
-  GailNotebook *notebook;
-
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (gtk_notebook));
-  notebook = GAIL_NOTEBOOK (atk_obj);
-  create_notebook_page_accessible (notebook, gtk_notebook, page_num, FALSE, NULL);
-  notebook->page_count++;
-}
-
-static void
-gail_notebook_real_initialize (AtkObject *obj,
-                               gpointer  data)
-{
-  GailNotebook *notebook;
-  GtkNotebook *gtk_notebook;
-  gint i;
-
-  ATK_OBJECT_CLASS (gail_notebook_parent_class)->initialize (obj, data);
-
-  notebook = GAIL_NOTEBOOK (obj);
-  gtk_notebook = GTK_NOTEBOOK (data);
-  for (i = 0; i < gtk_notebook_get_n_pages (gtk_notebook); i++)
-    {
-      create_notebook_page_accessible (notebook, gtk_notebook, i, FALSE, NULL);
-    }
-  notebook->page_count = i;
-  notebook->selected_page = gtk_notebook_get_current_page (gtk_notebook);
-
-  g_signal_connect (gtk_notebook,
-                    "focus",
-                    G_CALLBACK (gail_notebook_focus_cb),
-                    NULL);
-  g_signal_connect (gtk_notebook,
-                    "page-added",
-                    G_CALLBACK (gail_notebook_page_added),
-                    NULL);
-  g_object_weak_ref (G_OBJECT(gtk_notebook),
-                     (GWeakNotify) gail_notebook_destroyed,
-                     obj);                     
-
-  obj->role = ATK_ROLE_PAGE_TAB_LIST;
-}
-
-static void
-gail_notebook_real_notify_gtk (GObject           *obj,
-                               GParamSpec        *pspec)
-{
-  GtkWidget *widget;
-  AtkObject* atk_obj;
-
-  widget = GTK_WIDGET (obj);
-  atk_obj = gtk_widget_get_accessible (widget);
-
-  if (strcmp (pspec->name, "page") == 0)
-    {
-      gint page_num, old_page_num;
-      gint focus_page_num = 0;
-      gint old_focus_page_num;
-      GailNotebook *gail_notebook;
-      GtkNotebook *gtk_notebook;
-     
-      gail_notebook = GAIL_NOTEBOOK (atk_obj);
-      gtk_notebook = GTK_NOTEBOOK (widget);
-     
-      if (gail_notebook->page_count < gtk_notebook_get_n_pages (gtk_notebook))
-       check_cache (gail_notebook, gtk_notebook);
-      /*
-       * Notify SELECTED state change for old and new page
-       */
-      old_page_num = gail_notebook->selected_page;
-      page_num = gtk_notebook_get_current_page (gtk_notebook);
-      gail_notebook->selected_page = page_num;
-      gail_notebook->focus_tab_page = page_num;
-      old_focus_page_num = gail_notebook->focus_tab_page;
-
-      if (page_num != old_page_num)
-        {
-          AtkObject *obj;
-
-          if (old_page_num != -1)
-            {
-              obj = gail_notebook_ref_child (atk_obj, old_page_num);
-              if (obj)
-                {
-                  atk_object_notify_state_change (obj,
-                                                  ATK_STATE_SELECTED,
-                                                  FALSE);
-                  g_object_unref (obj);
-                }
-            }
-          obj = gail_notebook_ref_child (atk_obj, page_num);
-          if (obj)
-            {
-              atk_object_notify_state_change (obj,
-                                              ATK_STATE_SELECTED,
-                                              TRUE);
-              g_object_unref (obj);
-              /*
-               * The page which is being displayed has changed but there is
-               * no need to tell the focus tracker as the focus page will also 
-               * change or a widget in the page will receive focus if the
-               * Notebook does not have tabs.
-               */
-            }
-          g_signal_emit_by_name (atk_obj, "selection_changed");
-          g_signal_emit_by_name (atk_obj, "visible_data_changed");
-        }
-      if (gtk_notebook_get_show_tabs (gtk_notebook) &&
-         (focus_page_num != old_focus_page_num))
-        {
-          if (gail_notebook->idle_focus_id)
-            g_source_remove (gail_notebook->idle_focus_id);
-          gail_notebook->idle_focus_id = gdk_threads_add_idle (gail_notebook_check_focus_tab, atk_obj);
-        }
-    }
-  else
-    GAIL_WIDGET_CLASS (gail_notebook_parent_class)->notify_gtk (obj, pspec);
-}
-
-static void
-gail_notebook_finalize (GObject            *object)
-{
-  GailNotebook *notebook = GAIL_NOTEBOOK (object);
-  GList *list;
-
-  /*
-   * Get rid of the GailNotebookPage objects which we have cached.
-   */
-  list = notebook->page_cache;
-  if (list != NULL)
-    {
-      while (list)
-        {
-          g_object_unref (list->data);
-          list = list->next;
-        }
-    }
-
-  g_list_free (notebook->page_cache);
-
-  if (notebook->idle_focus_id)
-    g_source_remove (notebook->idle_focus_id);
-
-  G_OBJECT_CLASS (gail_notebook_parent_class)->finalize (object);
-}
-
-static void
-atk_selection_interface_init (AtkSelectionIface *iface)
-{
-  iface->add_selection = gail_notebook_add_selection;
-  iface->ref_selection = gail_notebook_ref_selection;
-  iface->get_selection_count = gail_notebook_get_selection_count;
-  iface->is_child_selected = gail_notebook_is_child_selected;
-  /*
-   * The following don't make any sense for GtkNotebook widgets.
-   * Unsupported AtkSelection interfaces:
-   * clear_selection();
-   * remove_selection();
-   * select_all_selection();
-   */
-}
-
-/*
- * GtkNotebook only supports the selection of one page at a time. 
- * Selecting a page unselects any previous selection, so this 
- * changes the current selection instead of adding to it.
- */
-static gboolean
-gail_notebook_add_selection (AtkSelection *selection,
-                             gint         i)
-{
-  GtkNotebook *notebook;
-  GtkWidget *widget;
-  
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-  
-  notebook = GTK_NOTEBOOK (widget);
-  gtk_notebook_set_current_page (notebook, i);
-  return TRUE;
-}
-
-static AtkObject*
-gail_notebook_ref_selection (AtkSelection *selection,
-                             gint i)
-{
-  AtkObject *accessible;
-  GtkWidget *widget;
-  GtkNotebook *notebook;
-  gint pagenum;
-  
-  /*
-   * A note book can have only one selection.
-   */
-  gail_return_val_if_fail (i == 0, NULL);
-  g_return_val_if_fail (GAIL_IS_NOTEBOOK (selection), NULL);
-  
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /* State is defunct */
-       return NULL;
-  
-  notebook = GTK_NOTEBOOK (widget);
-  pagenum = gtk_notebook_get_current_page (notebook);
-  gail_return_val_if_fail (pagenum != -1, NULL);
-  accessible = gail_notebook_ref_child (ATK_OBJECT (selection), pagenum);
-
-  return accessible;
-}
-
-/*
- * Always return 1 because there can only be one page
- * selected at any time
- */
-static gint
-gail_notebook_get_selection_count (AtkSelection *selection)
-{
-  GtkWidget *widget;
-  GtkNotebook *notebook;
-  
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return 0;
-
-  notebook = GTK_NOTEBOOK (widget);
-  if (notebook == NULL || gtk_notebook_get_current_page (notebook) == -1)
-    return 0;
-  else
-    return 1;
-}
-
-static gboolean
-gail_notebook_is_child_selected (AtkSelection *selection,
-                                 gint i)
-{
-  GtkWidget *widget;
-  GtkNotebook *notebook;
-  gint pagenumber;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /* 
-     * State is defunct
-     */
-    return FALSE;
-
-  
-  notebook = GTK_NOTEBOOK (widget);
-  pagenumber = gtk_notebook_get_current_page(notebook);
-
-  if (pagenumber == i)
-    return TRUE;
-  else
-    return FALSE; 
-}
-
-static AtkObject*
-find_child_in_list (GList *list,
-                    gint  index)
-{
-  AtkObject *obj = NULL;
-
-  while (list)
-    {
-      if (GAIL_NOTEBOOK_PAGE (list->data)->index == index)
-        {
-          obj = ATK_OBJECT (list->data);
-          break;
-        }
-      list = list->next;
-    }
-  return obj;
-}
-
-static void
-check_cache (GailNotebook *gail_notebook,
-             GtkNotebook  *notebook)
-{
-  GList *gtk_list;
-  GList *gail_list;
-  gint i;
-
-  gtk_list = gtk_container_get_children (GTK_CONTAINER (notebook));
-  gail_list = gail_notebook->page_cache;
-
-  i = 0;
-  while (gtk_list)
-    {
-      if (!gail_list)
-        {
-          create_notebook_page_accessible (gail_notebook, notebook, i, FALSE, NULL);
-        }
-      else if (GAIL_NOTEBOOK_PAGE (gail_list->data)->page != gtk_list->data)
-        {
-          create_notebook_page_accessible (gail_notebook, notebook, i, TRUE, gail_list);
-        }
-      else
-        {
-          gail_list = gail_list->next;
-        }
-      i++;
-      gtk_list = gtk_list->next;
-    }
-  g_list_free (gtk_list);
-
-  gail_notebook->page_count = i;
-}
-
-static void
-reset_cache (GailNotebook *gail_notebook,
-             gint         index)
-{
-  GList *l;
-
-  for (l = gail_notebook->page_cache; l; l = l->next)
-    {
-      if (GAIL_NOTEBOOK_PAGE (l->data)->index > index)
-        GAIL_NOTEBOOK_PAGE (l->data)->index -= 1;
-    }
-}
-
-static void
-create_notebook_page_accessible (GailNotebook *gail_notebook,
-                                 GtkNotebook  *notebook,
-                                 gint         index,
-                                 gboolean     insert_before,
-                                 GList        *list)
-{
-  AtkObject *obj;
-
-  obj = gail_notebook_page_new (notebook, index);
-  g_object_ref (obj);
-  if (insert_before)
-    gail_notebook->page_cache = g_list_insert_before (gail_notebook->page_cache, list, obj);
-  else
-    gail_notebook->page_cache = g_list_append (gail_notebook->page_cache, obj);
-  g_signal_connect (gtk_notebook_get_nth_page (notebook, index), 
-                    "parent_set",
-                    G_CALLBACK (gail_notebook_child_parent_set),
-                    obj);
-}
-
-static void
-gail_notebook_child_parent_set (GtkWidget *widget,
-                                GtkWidget *old_parent,
-                                gpointer   data)
-{
-  GailNotebook *gail_notebook;
-
-  gail_return_if_fail (old_parent != NULL);
-  gail_notebook = GAIL_NOTEBOOK (gtk_widget_get_accessible (old_parent));
-  gail_notebook->remove_index = GAIL_NOTEBOOK_PAGE (data)->index;
-}
-
-static gint
-gail_notebook_real_remove_gtk (GtkContainer *container,
-                               GtkWidget    *widget,
-                               gpointer      data)    
-{
-  GailNotebook *gail_notebook;
-  AtkObject *obj;
-  gint index;
-
-  g_return_val_if_fail (container != NULL, 1);
-  gail_notebook = GAIL_NOTEBOOK (gtk_widget_get_accessible (GTK_WIDGET (container)));
-  index = gail_notebook->remove_index;
-  gail_notebook->remove_index = -1;
-
-  obj = find_child_in_list (gail_notebook->page_cache, index);
-  g_return_val_if_fail (obj, 1);
-  gail_notebook->page_cache = g_list_remove (gail_notebook->page_cache, obj);
-  gail_notebook->page_count -= 1;
-  reset_cache (gail_notebook, index);
-  g_signal_emit_by_name (gail_notebook,
-                         "children_changed::remove",
-                          GAIL_NOTEBOOK_PAGE (obj)->index, 
-                          obj, NULL);
-  g_object_unref (obj);
-  return 1;
-}
-
-static gboolean
-gail_notebook_focus_cb (GtkWidget      *widget,
-                        GtkDirectionType type)
-{
-  AtkObject *atk_obj = gtk_widget_get_accessible (widget);
-  GailNotebook *gail_notebook = GAIL_NOTEBOOK (atk_obj);
-
-  switch (type)
-    {
-    case GTK_DIR_LEFT:
-    case GTK_DIR_RIGHT:
-      if (gail_notebook->idle_focus_id == 0)
-        gail_notebook->idle_focus_id = gdk_threads_add_idle (gail_notebook_check_focus_tab, atk_obj);
-      break;
-    default:
-      break;
-    }
-  return FALSE;
-}
-
-static gboolean
-gail_notebook_check_focus_tab (gpointer data)
-{
-  GtkWidget *widget;
-  AtkObject *atk_obj;
-  gint focus_page_num, old_focus_page_num;
-  GailNotebook *gail_notebook;
-  GtkNotebook *gtk_notebook;
-
-  atk_obj = ATK_OBJECT (data);
-  gail_notebook = GAIL_NOTEBOOK (atk_obj);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_obj));
-
-  gtk_notebook = GTK_NOTEBOOK (widget);
-
-  gail_notebook->idle_focus_id = 0;
-
-  focus_page_num = gtk_notebook_get_current_page (gtk_notebook);
-  if (focus_page_num == -1)
-    return FALSE;
-
-  old_focus_page_num = gail_notebook->focus_tab_page;
-  gail_notebook->focus_tab_page = focus_page_num;
-  if (old_focus_page_num != focus_page_num)
-    {
-      AtkObject *obj;
-
-      obj = atk_object_ref_accessible_child (atk_obj, focus_page_num);
-      atk_focus_tracker_notify (obj);
-      g_object_unref (obj);
-    }
-
-  return FALSE;
-}
-
-static void
-gail_notebook_destroyed (gpointer data)
-{
-  GailNotebook *gail_notebook = GAIL_NOTEBOOK (data);
-
-  if (gail_notebook->idle_focus_id)
-    {
-      g_source_remove (gail_notebook->idle_focus_id);
-      gail_notebook->idle_focus_id = 0;
-    }
-}
diff --git a/modules/other/gail/gailnotebook.h b/modules/other/gail/gailnotebook.h
deleted file mode 100644 (file)
index 36cd4c6..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_NOTEBOOK_H__
-#define __GAIL_NOTEBOOK_H__
-
-#include <gail/gailcontainer.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_NOTEBOOK                   (gail_notebook_get_type ())
-#define GAIL_NOTEBOOK(obj)                   (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_NOTEBOOK, GailNotebook))
-#define GAIL_NOTEBOOK_CLASS(klass)           (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_NOTEBOOK, GailNotebookClass))
-#define GAIL_IS_NOTEBOOK(obj)                (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_NOTEBOOK))
-#define GAIL_IS_NOTEBOOK_CLASS(klass)        (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_NOTEBOOK))
-#define GAIL_NOTEBOOK_GET_CLASS(obj)         (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_NOTEBOOK, GailNotebookClass))
-
-typedef struct _GailNotebook              GailNotebook;
-typedef struct _GailNotebookClass         GailNotebookClass;
-
-struct _GailNotebook
-{
-  GailContainer parent;
-
-  /*
-   * page_cache maintains a list of pre-ref'd Notebook Pages.
-   * This cache is queried by gail_notebook_ref_child().
-   * If the page is found in the list then a new page does not
-   * need to be created
-   */
-  GList*       page_cache;
-  gint         selected_page;
-  gint         focus_tab_page;
-  gint         page_count;
-  guint        idle_focus_id;
-
-  gint         remove_index;
-};
-
-GType gail_notebook_get_type (void);
-
-struct _GailNotebookClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_NOTEBOOK_H__ */
diff --git a/modules/other/gail/gailnotebookpage.c b/modules/other/gail/gailnotebookpage.c
deleted file mode 100644 (file)
index 7c201a8..0000000
+++ /dev/null
@@ -1,827 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include "gailnotebookpage.h"
-#include <libgail-util/gailmisc.h>
-#include "gail-private-macros.h"
-
-static void      gail_notebook_page_class_init      (GailNotebookPageClass     *klass);
-static void                  gail_notebook_page_init           (GailNotebookPage *page);
-static void                  gail_notebook_page_finalize       (GObject   *object);
-static void                  gail_notebook_page_label_map_gtk  (GtkWidget *widget,
-                                                                gpointer  data);
-
-static const gchar* gail_notebook_page_get_name       (AtkObject *accessible);
-static AtkObject*            gail_notebook_page_get_parent     (AtkObject *accessible);
-static gint                  gail_notebook_page_get_n_children (AtkObject *accessible);
-static AtkObject*            gail_notebook_page_ref_child      (AtkObject *accessible,
-                                                                gint      i); 
-static gint                  gail_notebook_page_get_index_in_parent
-                                                               (AtkObject *accessible);
-static AtkStateSet*          gail_notebook_page_ref_state_set  (AtkObject *accessible);
-
-static gint                  gail_notebook_page_notify          (GObject   *obj,
-                                                                 GParamSpec *pspec,
-                                                                 gpointer   user_data);
-static void                  gail_notebook_page_init_textutil   (GailNotebookPage      *notebook_page,
-                                                                 GtkWidget             *label);
-
-static void                  atk_component_interface_init      (AtkComponentIface *iface);
-
-static AtkObject*            gail_notebook_page_ref_accessible_at_point 
-                                                               (AtkComponent *component,
-                                                                gint         x,
-                                                                gint         y,
-                                                                AtkCoordType coord_type);
-
-static void                  gail_notebook_page_get_extents    (AtkComponent *component,
-                                                                gint         *x,
-                                                                gint         *y,
-                                                                gint         *width,
-                                                                gint         *height,
-                                                                AtkCoordType coord_type);
-
-static AtkObject*            _gail_notebook_page_get_tab_label (GailNotebookPage *page);
-
-/* atktext.h */ 
-static void      atk_text_interface_init          (AtkTextIface        *iface);
-
-static gchar*    gail_notebook_page_get_text      (AtkText           *text,
-                                                    gint             start_pos,
-                                                   gint              end_pos);
-static gunichar          gail_notebook_page_get_character_at_offset
-                                                   (AtkText          *text,
-                                                   gint              offset);
-static gchar*     gail_notebook_page_get_text_before_offset
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*     gail_notebook_page_get_text_at_offset
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*     gail_notebook_page_get_text_after_offset
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gint      gail_notebook_page_get_character_count (AtkText             *text);
-static void       gail_notebook_page_get_character_extents
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   gint              *x,
-                                                   gint              *y,
-                                                   gint              *width,
-                                                   gint              *height,
-                                                   AtkCoordType      coords);
-static gint      gail_notebook_page_get_offset_at_point
-                                                   (AtkText           *text,
-                                                    gint              x,
-                                                    gint              y,
-                                                   AtkCoordType      coords);
-static AtkAttributeSet* gail_notebook_page_get_run_attributes 
-                                                   (AtkText           *text,
-                                                   gint              offset,
-                                                    gint             *start_offset,
-                                                   gint              *end_offset);
-static AtkAttributeSet* gail_notebook_page_get_default_attributes
-                                                   (AtkText           *text);
-static GtkWidget* get_label_from_notebook_page     (GailNotebookPage  *page);
-static GtkWidget* find_label_child (GtkContainer *container);
-
-/* FIXME: not GAIL_TYPE_OBJECT? */
-G_DEFINE_TYPE_WITH_CODE (GailNotebookPage, gail_notebook_page, ATK_TYPE_OBJECT,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init))
-
-static void
-gail_notebook_page_class_init (GailNotebookPageClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-  
-  class->get_name = gail_notebook_page_get_name;
-  class->get_parent = gail_notebook_page_get_parent;
-  class->get_n_children = gail_notebook_page_get_n_children;
-  class->ref_child = gail_notebook_page_ref_child;
-  class->ref_state_set = gail_notebook_page_ref_state_set;
-  class->get_index_in_parent = gail_notebook_page_get_index_in_parent;
-
-  gobject_class->finalize = gail_notebook_page_finalize;
-}
-
-static void
-gail_notebook_page_init (GailNotebookPage *page)
-{
-}
-
-static gint
-notify_child_added (gpointer data)
-{
-  GailNotebookPage *page;
-  AtkObject *atk_object, *atk_parent;
-
-  g_return_val_if_fail (GAIL_IS_NOTEBOOK_PAGE (data), FALSE);
-  page = GAIL_NOTEBOOK_PAGE (data);
-  atk_object = ATK_OBJECT (data);
-
-  page->notify_child_added_id = 0;
-
-  /* The widget page->notebook may be deleted before this handler is called */
-  if (page->notebook != NULL)
-    {
-      atk_parent = gtk_widget_get_accessible (GTK_WIDGET (page->notebook));
-      atk_object_set_parent (atk_object, atk_parent);
-      g_signal_emit_by_name (atk_parent, "children_changed::add", page->index, atk_object, NULL);
-    }
-  
-  return FALSE;
-}
-
-AtkObject*
-gail_notebook_page_new (GtkNotebook *notebook, 
-                        gint        pagenum)
-{
-  GObject *object;
-  AtkObject *atk_object;
-  GailNotebookPage *page;
-  GtkWidget *child;
-  GtkWidget *label;
-  GtkWidget *widget_page;
-
-  g_return_val_if_fail (GTK_IS_NOTEBOOK (notebook), NULL);
-
-  child = gtk_notebook_get_nth_page (notebook, pagenum);
-
-  if (!child)
-    return NULL;
-
-  object = g_object_new (GAIL_TYPE_NOTEBOOK_PAGE, NULL);
-  g_return_val_if_fail (object != NULL, NULL);
-
-  page = GAIL_NOTEBOOK_PAGE (object);
-  page->notebook = notebook;
-  g_object_add_weak_pointer (G_OBJECT (page->notebook), (gpointer *)&page->notebook);
-  page->index = pagenum;
-  widget_page = gtk_notebook_get_nth_page (notebook, pagenum);
-  page->page = widget_page;
-  page->textutil = NULL;
-  
-  atk_object = ATK_OBJECT (page);
-  atk_object->role = ATK_ROLE_PAGE_TAB;
-  atk_object->layer = ATK_LAYER_WIDGET;
-
-  page->notify_child_added_id = gdk_threads_add_idle (notify_child_added, atk_object);
-  /*
-   * We get notified of changes to the label
-   */
-  label = get_label_from_notebook_page (page);
-  if (GTK_IS_LABEL (label))
-    {
-      if (gtk_widget_get_mapped (label))
-        gail_notebook_page_init_textutil (page, label);
-      else
-        g_signal_connect (label,
-                          "map",
-                          G_CALLBACK (gail_notebook_page_label_map_gtk),
-                          page);
-    }
-
-  return atk_object;
-}
-
-static void
-gail_notebook_page_label_map_gtk (GtkWidget *widget,
-                                  gpointer data)
-{
-  GailNotebookPage *page;
-
-  page = GAIL_NOTEBOOK_PAGE (data);
-  gail_notebook_page_init_textutil (page, widget);
-}
-
-static void
-gail_notebook_page_init_textutil (GailNotebookPage *page,
-                                  GtkWidget        *label)
-{
-  const gchar *label_text;
-
-  if (page->textutil == NULL)
-    {
-      page->textutil = gail_text_util_new ();
-      g_signal_connect (label,
-                        "notify",
-                        (GCallback) gail_notebook_page_notify,
-                        page);     
-    }
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  gail_text_util_text_setup (page->textutil, label_text);
-}
-
-static gint
-gail_notebook_page_notify (GObject    *obj, 
-                           GParamSpec *pspec,
-                           gpointer   user_data)
-{
-  AtkObject *atk_obj = ATK_OBJECT (user_data);
-  GtkLabel *label;
-  GailNotebookPage *page;
-
-  if (strcmp (pspec->name, "label") == 0)
-    {
-      const gchar* label_text;
-
-      label = GTK_LABEL (obj);
-
-      label_text = gtk_label_get_text (label);
-
-      page = GAIL_NOTEBOOK_PAGE (atk_obj);
-      gail_text_util_text_setup (page->textutil, label_text);
-
-      if (atk_obj->name == NULL)
-      {
-        /*
-         * The label has changed so notify a change in accessible-name
-         */
-        g_object_notify (G_OBJECT (atk_obj), "accessible-name");
-      }
-      /*
-       * The label is the only property which can be changed
-       */
-      g_signal_emit_by_name (atk_obj, "visible_data_changed");
-    }
-  return 1;
-}
-
-static void
-gail_notebook_page_finalize (GObject *object)
-{
-  GailNotebookPage *page = GAIL_NOTEBOOK_PAGE (object);
-
-  if (page->notebook)
-    g_object_remove_weak_pointer (G_OBJECT (page->notebook), (gpointer *)&page->notebook);
-
-  if (page->textutil)
-    g_object_unref (page->textutil);
-
-  if (page->notify_child_added_id)
-    g_source_remove (page->notify_child_added_id);
-
-  G_OBJECT_CLASS (gail_notebook_page_parent_class)->finalize (object);
-}
-
-static const gchar*
-gail_notebook_page_get_name (AtkObject *accessible)
-{
-  g_return_val_if_fail (GAIL_IS_NOTEBOOK_PAGE (accessible), NULL);
-  
-  if (accessible->name != NULL)
-    return accessible->name;
-  else
-    {
-      GtkWidget *label;
-
-      label = get_label_from_notebook_page (GAIL_NOTEBOOK_PAGE (accessible));
-      if (GTK_IS_LABEL (label))
-        return gtk_label_get_text (GTK_LABEL (label));
-      else
-        return NULL;
-    }
-}
-
-static AtkObject*
-gail_notebook_page_get_parent (AtkObject *accessible)
-{
-  GailNotebookPage *page;
-  
-  g_return_val_if_fail (GAIL_IS_NOTEBOOK_PAGE (accessible), NULL);
-  
-  page = GAIL_NOTEBOOK_PAGE (accessible);
-
-  if (!page->notebook)
-    return NULL;
-
-  return gtk_widget_get_accessible (GTK_WIDGET (page->notebook));
-}
-
-static gint
-gail_notebook_page_get_n_children (AtkObject *accessible)
-{
-  /* Notebook page has only one child */
-  g_return_val_if_fail (GAIL_IS_NOTEBOOK_PAGE (accessible), 0);
-
-  return 1;
-}
-
-static AtkObject*
-gail_notebook_page_ref_child (AtkObject *accessible,
-                              gint i)
-{
-  GtkWidget *child;
-  AtkObject *child_obj;
-  GailNotebookPage *page = NULL;
-   
-  g_return_val_if_fail (GAIL_IS_NOTEBOOK_PAGE (accessible), NULL);
-  if (i != 0)
-    return NULL;
-   
-  page = GAIL_NOTEBOOK_PAGE (accessible);
-  if (!page->notebook)
-    return NULL;
-
-  child = gtk_notebook_get_nth_page (page->notebook, page->index);
-  gail_return_val_if_fail (GTK_IS_WIDGET (child), NULL);
-   
-  child_obj = gtk_widget_get_accessible (child);
-  g_object_ref (child_obj);
-  return child_obj;
-}
-
-static gint
-gail_notebook_page_get_index_in_parent (AtkObject *accessible)
-{
-  GailNotebookPage *page;
-
-  g_return_val_if_fail (GAIL_IS_NOTEBOOK_PAGE (accessible), -1);
-  page = GAIL_NOTEBOOK_PAGE (accessible);
-
-  return page->index;
-}
-
-static AtkStateSet*
-gail_notebook_page_ref_state_set (AtkObject *accessible)
-{
-  AtkStateSet *state_set, *label_state_set, *merged_state_set;
-  AtkObject *atk_label;
-
-  g_return_val_if_fail (GAIL_NOTEBOOK_PAGE (accessible), NULL);
-
-  state_set = ATK_OBJECT_CLASS (gail_notebook_page_parent_class)->ref_state_set (accessible);
-
-  atk_label = _gail_notebook_page_get_tab_label (GAIL_NOTEBOOK_PAGE (accessible));
-  if (atk_label)
-    {
-      label_state_set = atk_object_ref_state_set (atk_label);
-      merged_state_set = atk_state_set_or_sets (state_set, label_state_set);
-      g_object_unref (label_state_set);
-      g_object_unref (state_set);
-    }
-  else
-    {
-      AtkObject *child;
-
-      child = atk_object_ref_accessible_child (accessible, 0);
-      gail_return_val_if_fail (child, state_set);
-
-      merged_state_set = state_set;
-      state_set = atk_object_ref_state_set (child);
-      if (atk_state_set_contains_state (state_set, ATK_STATE_VISIBLE))
-        {
-          atk_state_set_add_state (merged_state_set, ATK_STATE_VISIBLE);
-          if (atk_state_set_contains_state (state_set, ATK_STATE_ENABLED))
-              atk_state_set_add_state (merged_state_set, ATK_STATE_ENABLED);
-          if (atk_state_set_contains_state (state_set, ATK_STATE_SHOWING))
-              atk_state_set_add_state (merged_state_set, ATK_STATE_SHOWING);
-
-        } 
-      g_object_unref (state_set);
-      g_object_unref (child);
-    }
-  return merged_state_set;
-}
-
-
-static void
-atk_component_interface_init (AtkComponentIface *iface)
-{
-  /*
-   * We use the default implementations for contains, get_position, get_size
-   */
-  iface->ref_accessible_at_point = gail_notebook_page_ref_accessible_at_point;
-  iface->get_extents = gail_notebook_page_get_extents;
-}
-
-static AtkObject*
-gail_notebook_page_ref_accessible_at_point (AtkComponent *component,
-                                            gint         x,
-                                            gint         y,
-                                            AtkCoordType coord_type)
-{
-  /*
-   * There is only one child so we return it.
-   */
-  AtkObject* child;
-
-  g_return_val_if_fail (ATK_IS_OBJECT (component), NULL);
-
-  child = atk_object_ref_accessible_child (ATK_OBJECT (component), 0);
-  return child;
-}
-
-static void
-gail_notebook_page_get_extents (AtkComponent *component,
-                                gint         *x,
-                                gint         *y,
-                                gint         *width,
-                                gint         *height,
-                                AtkCoordType coord_type)
-{
-  AtkObject *atk_label;
-
-  g_return_if_fail (GAIL_IS_NOTEBOOK_PAGE (component));
-
-  atk_label = _gail_notebook_page_get_tab_label (GAIL_NOTEBOOK_PAGE (component));
-
-  if (!atk_label)
-    {
-      AtkObject *child;
-
-      *width = 0;
-      *height = 0;
-
-      child = atk_object_ref_accessible_child (ATK_OBJECT (component), 0);
-      gail_return_if_fail (child);
-
-      atk_component_get_position (ATK_COMPONENT (child), x, y, coord_type);
-      g_object_unref (child);
-    }
-  else
-    {
-      atk_component_get_extents (ATK_COMPONENT (atk_label), 
-                                 x, y, width, height, coord_type);
-    }
-  return; 
-}
-
-static AtkObject*
-_gail_notebook_page_get_tab_label (GailNotebookPage *page)
-{
-  GtkWidget *label;
-
-  label = get_label_from_notebook_page (page);
-  if (label)
-    return gtk_widget_get_accessible (label);
-  else
-    return NULL;
-}
-
-/* atktext.h */
-
-static void
-atk_text_interface_init (AtkTextIface *iface)
-{
-  iface->get_text = gail_notebook_page_get_text;
-  iface->get_character_at_offset = gail_notebook_page_get_character_at_offset;
-  iface->get_text_before_offset = gail_notebook_page_get_text_before_offset;
-  iface->get_text_at_offset = gail_notebook_page_get_text_at_offset;
-  iface->get_text_after_offset = gail_notebook_page_get_text_after_offset;
-  iface->get_character_count = gail_notebook_page_get_character_count;
-  iface->get_character_extents = gail_notebook_page_get_character_extents;
-  iface->get_offset_at_point = gail_notebook_page_get_offset_at_point;
-  iface->get_run_attributes = gail_notebook_page_get_run_attributes;
-  iface->get_default_attributes = gail_notebook_page_get_default_attributes;
-}
-
-static gchar*
-gail_notebook_page_get_text (AtkText *text,
-                             gint    start_pos,
-                             gint    end_pos)
-{
-  GtkWidget *label;
-  GailNotebookPage *notebook_page;
-  const gchar *label_text;
-
-  notebook_page = GAIL_NOTEBOOK_PAGE (text);
-  label = get_label_from_notebook_page (notebook_page);
-
-  if (!GTK_IS_LABEL (label))
-    return NULL;
-
-  if (!notebook_page->textutil) 
-    gail_notebook_page_init_textutil (notebook_page, label);
-
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-
-  if (label_text == NULL)
-    return NULL;
-  else
-  {
-    return gail_text_util_get_substring (notebook_page->textutil, 
-                                         start_pos, end_pos);
-  }
-}
-
-static gchar*
-gail_notebook_page_get_text_before_offset (AtkText         *text,
-                                          gint            offset,
-                                          AtkTextBoundary boundary_type,
-                                          gint            *start_offset,
-                                          gint            *end_offset)
-{
-  GtkWidget *label;
-  GailNotebookPage *notebook_page;
-  
-  notebook_page = GAIL_NOTEBOOK_PAGE (text);
-  label = get_label_from_notebook_page (notebook_page);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  if (!notebook_page->textutil)
-    gail_notebook_page_init_textutil (notebook_page, label);
-
-  return gail_text_util_get_text (notebook_page->textutil,
-                           gtk_label_get_layout (GTK_LABEL (label)), GAIL_BEFORE_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset); 
-}
-
-static gchar*
-gail_notebook_page_get_text_at_offset (AtkText         *text,
-                                      gint            offset,
-                                      AtkTextBoundary boundary_type,
-                                      gint            *start_offset,
-                                      gint            *end_offset)
-{
-  GtkWidget *label;
-  GailNotebookPage *notebook_page;
-  notebook_page = GAIL_NOTEBOOK_PAGE (text);
-  label = get_label_from_notebook_page (notebook_page);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  if (!notebook_page->textutil)
-    gail_notebook_page_init_textutil (notebook_page, label);
-
-  return gail_text_util_get_text (notebook_page->textutil,
-                              gtk_label_get_layout (GTK_LABEL (label)), GAIL_AT_OFFSET, 
-                              boundary_type, offset, start_offset, end_offset);
-}
-
-static gchar*
-gail_notebook_page_get_text_after_offset (AtkText         *text,
-                                         gint            offset,
-                                         AtkTextBoundary boundary_type,
-                                         gint            *start_offset,
-                                         gint            *end_offset)
-{
-  GtkWidget *label;
-  GailNotebookPage *notebook_page;
-
-  notebook_page = GAIL_NOTEBOOK_PAGE (text);
-  label = get_label_from_notebook_page (notebook_page);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  if (!notebook_page->textutil)
-    gail_notebook_page_init_textutil (notebook_page, label);
-
-  return gail_text_util_get_text (notebook_page->textutil,
-                           gtk_label_get_layout (GTK_LABEL (label)), GAIL_AFTER_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset);
-}
-
-static gint
-gail_notebook_page_get_character_count (AtkText *text)
-{
-  GtkWidget *label;
-  GailNotebookPage *notebook_page;
-
-  notebook_page = GAIL_NOTEBOOK_PAGE (text);
-  label = get_label_from_notebook_page (notebook_page);
-
-  if (!GTK_IS_LABEL(label))
-    return 0;
-
-  return g_utf8_strlen (gtk_label_get_text (GTK_LABEL (label)), -1);
-}
-
-static void
-gail_notebook_page_get_character_extents (AtkText      *text,
-                                         gint         offset,
-                                         gint         *x,
-                                         gint         *y,
-                                          gint                *width,
-                                          gint                *height,
-                                         AtkCoordType coords)
-{
-  GtkWidget *label;
-  GailNotebookPage *notebook_page;
-  PangoRectangle char_rect;
-  gint index, x_layout, y_layout;
-  const gchar *label_text;
-  notebook_page = GAIL_NOTEBOOK_PAGE (text);
-  label = get_label_from_notebook_page (notebook_page);
-
-  if (!GTK_IS_LABEL(label))
-    return;
-  
-  gtk_label_get_layout_offsets (GTK_LABEL (label), &x_layout, &y_layout);
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  index = g_utf8_offset_to_pointer (label_text, offset) - label_text;
-  pango_layout_index_to_pos (gtk_label_get_layout (GTK_LABEL (label)), index, &char_rect);
-  
-  gail_misc_get_extents_from_pango_rectangle (label, &char_rect, 
-                    x_layout, y_layout, x, y, width, height, coords);
-} 
-
-static gint 
-gail_notebook_page_get_offset_at_point (AtkText      *text,
-                                        gint         x,
-                                        gint         y,
-                                       AtkCoordType coords)
-{ 
-  GtkWidget *label;
-  GailNotebookPage *notebook_page;
-  gint index, x_layout, y_layout;
-  const gchar *label_text;
-
-  notebook_page = GAIL_NOTEBOOK_PAGE (text);
-  label = get_label_from_notebook_page (notebook_page);
-
-  if (!GTK_IS_LABEL(label))
-    return -1;
-  
-  gtk_label_get_layout_offsets (GTK_LABEL (label), &x_layout, &y_layout);
-  
-  index = gail_misc_get_index_at_point_in_layout (label, 
-                                              gtk_label_get_layout (GTK_LABEL (label)), 
-                                              x_layout, y_layout, x, y, coords);
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  if (index == -1)
-    {
-      if (coords == ATK_XY_WINDOW || coords == ATK_XY_SCREEN)
-        return g_utf8_strlen (label_text, -1);
-
-      return index;  
-    }
-  else
-    return g_utf8_pointer_to_offset (label_text, label_text + index);  
-}
-
-static AtkAttributeSet*
-gail_notebook_page_get_run_attributes (AtkText *text,
-                                       gint    offset,
-                                       gint    *start_offset,
-                                      gint    *end_offset)
-{
-  GtkWidget *label;
-  GailNotebookPage *notebook_page;
-  AtkAttributeSet *at_set = NULL;
-  GtkJustification justify;
-  GtkTextDirection dir;
-
-  notebook_page = GAIL_NOTEBOOK_PAGE (text);
-  label = get_label_from_notebook_page (notebook_page);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-  
-  /* Get values set for entire label, if any */
-  justify = gtk_label_get_justify (GTK_LABEL (label));
-  if (justify != GTK_JUSTIFY_CENTER)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_JUSTIFICATION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_JUSTIFICATION, justify)));
-    }
-  dir = gtk_widget_get_direction (label);
-  if (dir == GTK_TEXT_DIR_RTL)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_DIRECTION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION, dir)));
-    }
-
-  at_set = gail_misc_layout_get_run_attributes (at_set,
-                                                gtk_label_get_layout (GTK_LABEL (label)),
-                                                (gchar *) gtk_label_get_text (GTK_LABEL (label)),
-                                                offset,
-                                                start_offset,
-                                                end_offset);
-  return at_set;
-}
-
-static AtkAttributeSet*
-gail_notebook_page_get_default_attributes (AtkText *text)
-{
-  GtkWidget *label;
-  GailNotebookPage *notebook_page;
-  AtkAttributeSet *at_set = NULL;
-
-  notebook_page = GAIL_NOTEBOOK_PAGE (text);
-  label = get_label_from_notebook_page (notebook_page);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  at_set = gail_misc_get_default_attributes (at_set,
-                                             gtk_label_get_layout (GTK_LABEL (label)),
-                                             label);
-  return at_set;
-}
-
-static gunichar 
-gail_notebook_page_get_character_at_offset (AtkText *text,
-                                            gint    offset)
-{
-  GtkWidget *label;
-  GailNotebookPage *notebook_page;
-  const gchar *string;
-  gchar *index;
-
-  notebook_page = GAIL_NOTEBOOK_PAGE (text);
-  label = get_label_from_notebook_page (notebook_page);
-
-  if (!GTK_IS_LABEL(label))
-    return '\0';
-  string = gtk_label_get_text (GTK_LABEL (label));
-  if (offset >= g_utf8_strlen (string, -1))
-    return '\0';
-  index = g_utf8_offset_to_pointer (string, offset);
-
-  return g_utf8_get_char (index);
-}
-
-static GtkWidget*
-get_label_from_notebook_page (GailNotebookPage *page)
-{
-  GtkWidget *child;
-  GtkNotebook *notebook;
-
-  notebook = page->notebook;
-  if (!notebook)
-    return NULL;
-
-  if (!gtk_notebook_get_show_tabs (notebook))
-    return NULL;
-
-  child = gtk_notebook_get_nth_page (notebook, page->index);
-  if (child == NULL) return NULL;
-  g_return_val_if_fail (GTK_IS_WIDGET (child), NULL);
-
-  child = gtk_notebook_get_tab_label (notebook, child);
-
-  if (GTK_IS_LABEL (child))
-    return child;
-
-  if (GTK_IS_CONTAINER (child))
-    child = find_label_child (GTK_CONTAINER (child));
-
-  return child;
-}
-
-static GtkWidget*
-find_label_child (GtkContainer *container)
-{
-  GList *children, *tmp_list;
-  GtkWidget *child;
-
-  children = gtk_container_get_children (container);
-
-  child = NULL;
-  for (tmp_list = children; tmp_list != NULL; tmp_list = tmp_list->next)
-    {
-      if (GTK_IS_LABEL (tmp_list->data))
-        {
-          child = GTK_WIDGET (tmp_list->data);
-          break;
-        }
-      else if (GTK_IS_CONTAINER (tmp_list->data))
-        {
-          child = find_label_child (GTK_CONTAINER (tmp_list->data));
-          if (child)
-            break;
-        }
-    }
-  g_list_free (children);
-  return child;
-}
diff --git a/modules/other/gail/gailnotebookpage.h b/modules/other/gail/gailnotebookpage.h
deleted file mode 100644 (file)
index 27778ce..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_NOTEBOOK_PAGE_H__
-#define __GAIL_NOTEBOOK_PAGE_H__
-
-#include <gail/gailnotebook.h>
-#include <libgail-util/gailtextutil.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_NOTEBOOK_PAGE            (gail_notebook_page_get_type ())
-#define GAIL_NOTEBOOK_PAGE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj),GAIL_TYPE_NOTEBOOK_PAGE, GailNotebookPage))
-#define GAIL_NOTEBOOK_PAGE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_NOTEBOOK_PAGE, GailNotebookPageClass))
-#define GAIL_IS_NOTEBOOK_PAGE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_NOTEBOOK_PAGE))
-#define GAIL_IS_NOTEBOOK_PAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_NOTEBOOK_PAGE))
-#define GAIL_NOTEBOOK_PAGE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_NOTEBOOK_PAGE, GailNotebookPageClass))
-
-typedef struct _GailNotebookPage                      GailNotebookPage;
-typedef struct _GailNotebookPageClass                 GailNotebookPageClass;
-
-struct _GailNotebookPage
-{
-  AtkObject parent;
-
-  GtkNotebook *notebook;
-#ifndef GTK_DISABLE_DEPRECATED
-  GtkNotebookPage *page;
-#else
-  gpointer page;
-#endif
-  
-  gint index;
-  guint notify_child_added_id;
-
-  GailTextUtil *textutil;
-};
-
-GType gail_notebook_page_get_type (void);
-
-struct _GailNotebookPageClass
-{
-  AtkObjectClass parent_class;
-};
-
-AtkObject *gail_notebook_page_new(GtkNotebook *notebook, gint pagenum);
-
-G_END_DECLS
-
-#endif /* __GAIL_NOTEBOOK_PAGE_H__ */
diff --git a/modules/other/gail/gailpaned.h b/modules/other/gail/gailpaned.h
deleted file mode 100644 (file)
index bb4412f..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_PANED_H__
-#define __GAIL_PANED_H__
-
-#include <gail/gailcontainer.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_PANED                      (gail_paned_get_type ())
-#define GAIL_PANED(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_PANED, GailPaned))
-#define GAIL_PANED_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_PANED, GailPanedClass))
-#define GAIL_IS_PANED(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_PANED))
-#define GAIL_IS_PANED_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_PANED))
-#define GAIL_PANED_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_PANED, GailPanedClass))
-
-typedef struct _GailPaned              GailPaned;
-typedef struct _GailPanedClass         GailPanedClass;
-
-struct _GailPaned
-{
-  GailContainer parent;
-};
-
-GType gail_paned_get_type (void);
-
-struct _GailPanedClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_PANED_H__ */
diff --git a/modules/other/gail/gailprogressbar.c b/modules/other/gail/gailprogressbar.c
deleted file mode 100644 (file)
index cfa6315..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-
-#include <gtk/gtk.h>
-
-#include "gailprogressbar.h"
-#include "gailadjustment.h"
-
-static void     gail_progress_bar_class_init        (GailProgressBarClass *klass);
-static void     gail_progress_bar_init              (GailProgressBar *bar);
-static void      gail_progress_bar_real_initialize   (AtkObject      *obj,
-                                                      gpointer       data);
-
-static void     atk_value_interface_init            (AtkValueIface  *iface);
-
-
-static void      gail_progress_bar_real_notify_gtk   (GObject        *obj,
-                                                      GParamSpec     *pspec);
-
-static void     gail_progress_bar_get_current_value (AtkValue       *obj,
-                                                     GValue         *value);
-static void     gail_progress_bar_get_maximum_value (AtkValue       *obj,
-                                                     GValue         *value);
-static void     gail_progress_bar_get_minimum_value (AtkValue       *obj,
-                                                     GValue         *value);
-
-G_DEFINE_TYPE_WITH_CODE (GailProgressBar, gail_progress_bar, GAIL_TYPE_WIDGET,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init))
-
-static void
-gail_progress_bar_class_init           (GailProgressBarClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-  GailWidgetClass *widget_class;
-
-  widget_class = (GailWidgetClass*)klass;
-
-  widget_class->notify_gtk = gail_progress_bar_real_notify_gtk;
-
-  class->initialize = gail_progress_bar_real_initialize;
-}
-
-static void
-gail_progress_bar_init (GailProgressBar *bar)
-{
-}
-
-static void
-gail_progress_bar_real_initialize (AtkObject *obj,
-                                   gpointer  data)
-{
-  ATK_OBJECT_CLASS (gail_progress_bar_parent_class)->initialize (obj, data);
-
-  obj->role = ATK_ROLE_PROGRESS_BAR;
-}
-
-static void
-atk_value_interface_init (AtkValueIface *iface)
-{
-  iface->get_current_value = gail_progress_bar_get_current_value;
-  iface->get_maximum_value = gail_progress_bar_get_maximum_value;
-  iface->get_minimum_value = gail_progress_bar_get_minimum_value;
-}
-
-static void
-gail_progress_bar_get_current_value (AtkValue   *obj,
-                                     GValue     *value)
-{
-  GtkWidget *widget;
-
-  g_return_if_fail (GAIL_IS_PROGRESS_BAR (obj));
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-
-  memset (value, 0, sizeof (GValue));
-  g_value_init (value, G_TYPE_DOUBLE);
-  g_value_set_double (value, gtk_progress_bar_get_fraction (GTK_PROGRESS_BAR (widget)));
-}
-
-static void
-gail_progress_bar_get_maximum_value (AtkValue   *obj,
-                                     GValue     *value)
-{
-  g_return_if_fail (GAIL_IS_PROGRESS_BAR (obj));
-
-  memset (value, 0, sizeof (GValue));
-  g_value_init (value, G_TYPE_DOUBLE);
-  g_value_set_double (value, 1.0);
-}
-
-static void     
-gail_progress_bar_get_minimum_value (AtkValue    *obj,
-                                    GValue      *value)
-{
-  g_return_if_fail (GAIL_IS_PROGRESS_BAR (obj));
-
-  memset (value, 0, sizeof (GValue));
-  g_value_init (value, G_TYPE_DOUBLE);
-  g_value_set_double (value, 0.0);
-}
-
-static void
-gail_progress_bar_real_notify_gtk (GObject           *obj,
-                                   GParamSpec        *pspec)
-{
-  GtkWidget *widget = GTK_WIDGET (obj);
-  GailProgressBar *progress_bar = GAIL_PROGRESS_BAR (gtk_widget_get_accessible (widget));
-
-  if (strcmp (pspec->name, "fraction") == 0)
-    g_object_notify (G_OBJECT (progress_bar), "accessible-value");
-  else
-    GAIL_WIDGET_CLASS (gail_progress_bar_parent_class)->notify_gtk (obj, pspec);
-}
diff --git a/modules/other/gail/gailprogressbar.h b/modules/other/gail/gailprogressbar.h
deleted file mode 100644 (file)
index 3640448..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_PROGRESS_BAR_H__
-#define __GAIL_PROGRESS_BAR_H__
-
-#include <gail/gailwidget.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_PROGRESS_BAR                      (gail_progress_bar_get_type ())
-#define GAIL_PROGRESS_BAR(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_PROGRESS_BAR, GailProgressBar))
-#define GAIL_PROGRESS_BAR_CLASS(klass)                 (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_PROGRESS_BAR, GailProgressBarClass))
-#define GAIL_IS_PROGRESS_BAR(obj)                      (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_PROGRESS_BAR))
-#define GAIL_IS_PROGRESS_BAR_CLASS(klass)              (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_PROGRESS_BAR))
-#define GAIL_PROGRESS_BAR_GET_CLASS(obj)               (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_PROGRESS_BAR, GailProgressBarClass))
-
-typedef struct _GailProgressBar         GailProgressBar;
-typedef struct _GailProgressBarClass   GailProgressBarClass;
-
-struct _GailProgressBar
-{
-  GailWidget parent;
-};
-
-GType gail_progress_bar_get_type (void);
-
-struct _GailProgressBarClass
-{
-  GailWidgetClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_PROGRESS_BAR_H__ */
diff --git a/modules/other/gail/gailradiobutton.c b/modules/other/gail/gailradiobutton.c
deleted file mode 100644 (file)
index 46b85a0..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailradiobutton.h"
-
-static void      gail_radio_button_class_init        (GailRadioButtonClass *klass);
-static void      gail_radio_button_init              (GailRadioButton      *radio_button);
-static void      gail_radio_button_initialize        (AtkObject            *accessible,
-                                                      gpointer              data);
-
-static AtkRelationSet* gail_radio_button_ref_relation_set (AtkObject       *obj);
-
-G_DEFINE_TYPE (GailRadioButton, gail_radio_button, GAIL_TYPE_TOGGLE_BUTTON)
-
-static void
-gail_radio_button_class_init (GailRadioButtonClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->initialize = gail_radio_button_initialize;
-  class->ref_relation_set = gail_radio_button_ref_relation_set;
-}
-
-static void
-gail_radio_button_init (GailRadioButton *radio_button)
-{
-  radio_button->old_group = NULL;
-}
-
-static void
-gail_radio_button_initialize (AtkObject *accessible,
-                              gpointer  data)
-{
-  ATK_OBJECT_CLASS (gail_radio_button_parent_class)->initialize (accessible, data);
-
-  accessible->role = ATK_ROLE_RADIO_BUTTON;
-}
-
-AtkRelationSet*
-gail_radio_button_ref_relation_set (AtkObject *obj)
-{
-  GtkWidget *widget;
-  AtkRelationSet *relation_set;
-  GSList *list;
-  GailRadioButton *radio_button;
-
-  g_return_val_if_fail (GAIL_IS_RADIO_BUTTON (obj), NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-  {
-    /*
-     * State is defunct
-     */
-    return NULL;
-  }
-  radio_button = GAIL_RADIO_BUTTON (obj);
-
-  relation_set = ATK_OBJECT_CLASS (gail_radio_button_parent_class)->ref_relation_set (obj);
-
-  /*
-   * If the radio button'group has changed remove the relation
-   */
-  list = gtk_radio_button_get_group (GTK_RADIO_BUTTON (widget));
-  
-  if (radio_button->old_group != list)
-    {
-      AtkRelation *relation;
-
-      relation = atk_relation_set_get_relation_by_type (relation_set, ATK_RELATION_MEMBER_OF);
-      atk_relation_set_remove (relation_set, relation);
-    }
-
-  if (!atk_relation_set_contains (relation_set, ATK_RELATION_MEMBER_OF))
-  {
-    /*
-     * Get the members of the button group
-     */
-
-    radio_button->old_group = list;
-    if (list)
-    {
-      AtkObject **accessible_array;
-      guint list_length;
-      AtkRelation* relation;
-      gint i = 0;
-
-      list_length = g_slist_length (list);
-      accessible_array = (AtkObject**) g_malloc (sizeof (AtkObject *) * 
-                          list_length);
-      while (list != NULL)
-      {
-        GtkWidget* list_item = list->data;
-
-        accessible_array[i++] = gtk_widget_get_accessible (list_item);
-
-        list = list->next;
-      }
-      relation = atk_relation_new (accessible_array, list_length,
-                                   ATK_RELATION_MEMBER_OF);
-      g_free (accessible_array);
-
-      atk_relation_set_add (relation_set, relation);
-      /*
-       * Unref the relation so that it is not leaked.
-       */
-      g_object_unref (relation);
-    }
-  }
-  return relation_set;
-}
diff --git a/modules/other/gail/gailradiobutton.h b/modules/other/gail/gailradiobutton.h
deleted file mode 100644 (file)
index 0a4fe21..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_RADIO_BUTTON_H__
-#define __GAIL_RADIO_BUTTON_H__
-
-#include <gail/gailtogglebutton.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_RADIO_BUTTON               (gail_radio_button_get_type ())
-#define GAIL_RADIO_BUTTON(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_RADIO_BUTTON, GailRadioButton))
-#define GAIL_RADIO_BUTTON_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_RADIO_BUTTON, GailRadioButtonClass))
-#define GAIL_IS_RADIO_BUTTON(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_RADIO_BUTTON))
-#define GAIL_IS_RADIO_BUTTON_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_RADIO_BUTTON))
-#define GAIL_RADIO_BUTTON_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_RADIO_BUTTON, GailRadioButtonClass))
-
-typedef struct _GailRadioButton              GailRadioButton;
-typedef struct _GailRadioButtonClass         GailRadioButtonClass;
-
-struct _GailRadioButton
-{
-  GailToggleButton parent;
-
-  GSList *old_group;
-};
-
-GType gail_radio_button_get_type (void);
-
-struct _GailRadioButtonClass
-{
-  GailToggleButtonClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_RADIO_BUTTON_H__ */
diff --git a/modules/other/gail/gailradiomenuitem.c b/modules/other/gail/gailradiomenuitem.c
deleted file mode 100644 (file)
index e791346..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2002 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailradiomenuitem.h"
-#include "gailradiosubmenuitem.h"
-
-static void      gail_radio_menu_item_class_init        (GailRadioMenuItemClass *klass);
-static void      gail_radio_menu_item_init              (GailRadioMenuItem      *radio_menu_item);
-
-static AtkRelationSet* gail_radio_menu_item_ref_relation_set (AtkObject       *obj);
-
-G_DEFINE_TYPE (GailRadioMenuItem, gail_radio_menu_item, GAIL_TYPE_CHECK_MENU_ITEM)
-
-static void
-gail_radio_menu_item_class_init (GailRadioMenuItemClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->ref_relation_set = gail_radio_menu_item_ref_relation_set;
-}
-
-AtkObject* 
-gail_radio_menu_item_new (GtkWidget *widget)
-{
-  GObject *object;
-  AtkObject *accessible;
-
-  g_return_val_if_fail (GTK_IS_RADIO_MENU_ITEM (widget), NULL);
-
-  if (gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget)))
-    return gail_radio_sub_menu_item_new (widget);
-
-  object = g_object_new (GAIL_TYPE_RADIO_MENU_ITEM, NULL);
-
-  accessible = ATK_OBJECT (object);
-  atk_object_initialize (accessible, widget);
-
-  accessible->role = ATK_ROLE_RADIO_MENU_ITEM;
-  return accessible;
-}
-
-static void
-gail_radio_menu_item_init (GailRadioMenuItem *radio_menu_item)
-{
-  radio_menu_item->old_group = NULL;
-}
-
-AtkRelationSet*
-gail_radio_menu_item_ref_relation_set (AtkObject *obj)
-{
-  GtkWidget *widget;
-  AtkRelationSet *relation_set;
-  GSList *list;
-  GailRadioMenuItem *radio_menu_item;
-
-  g_return_val_if_fail (GAIL_IS_RADIO_MENU_ITEM (obj), NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-  {
-    /*
-     * State is defunct
-     */
-    return NULL;
-  }
-  radio_menu_item = GAIL_RADIO_MENU_ITEM (obj);
-
-  relation_set = ATK_OBJECT_CLASS (gail_radio_menu_item_parent_class)->ref_relation_set (obj);
-
-  /*
-   * If the radio menu_item'group has changed remove the relation
-   */
-  list = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (widget));
-  
-  if (radio_menu_item->old_group != list)
-    {
-      AtkRelation *relation;
-
-      relation = atk_relation_set_get_relation_by_type (relation_set, ATK_RELATION_MEMBER_OF);
-      atk_relation_set_remove (relation_set, relation);
-    }
-
-  if (!atk_relation_set_contains (relation_set, ATK_RELATION_MEMBER_OF))
-  {
-    /*
-     * Get the members of the menu_item group
-     */
-
-    radio_menu_item->old_group = list;
-    if (list)
-    {
-      AtkObject **accessible_array;
-      guint list_length;
-      AtkRelation* relation;
-      gint i = 0;
-
-      list_length = g_slist_length (list);
-      accessible_array = (AtkObject**) g_malloc (sizeof (AtkObject *) * 
-                          list_length);
-      while (list != NULL)
-      {
-        GtkWidget* list_item = list->data;
-
-        accessible_array[i++] = gtk_widget_get_accessible (list_item);
-
-        list = list->next;
-      }
-      relation = atk_relation_new (accessible_array, list_length,
-                                   ATK_RELATION_MEMBER_OF);
-      g_free (accessible_array);
-
-      atk_relation_set_add (relation_set, relation);
-      /*
-       * Unref the relation so that it is not leaked.
-       */
-      g_object_unref (relation);
-    }
-  }
-  return relation_set;
-}
diff --git a/modules/other/gail/gailradiomenuitem.h b/modules/other/gail/gailradiomenuitem.h
deleted file mode 100644 (file)
index 8dfa688..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2002 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_RADIO_MENU_ITEM_H__
-#define __GAIL_RADIO_MENU_ITEM_H__
-
-#include <gail/gailcheckmenuitem.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_RADIO_MENU_ITEM               (gail_radio_menu_item_get_type ())
-#define GAIL_RADIO_MENU_ITEM(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_RADIO_MENU_ITEM, GailRadioMenuItem))
-#define GAIL_RADIO_MENU_ITEM_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_RADIO_MENU_ITEM, GailRadioMenuItemClass))
-#define GAIL_IS_RADIO_MENU_ITEM(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_RADIO_MENU_ITEM))
-#define GAIL_IS_RADIO_MENU_ITEM_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_RADIO_MENU_ITEM))
-#define GAIL_RADIO_MENU_ITEM_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_RADIO_MENU_ITEM, GailRadioMenuItemClass))
-
-typedef struct _GailRadioMenuItem              GailRadioMenuItem;
-typedef struct _GailRadioMenuItemClass         GailRadioMenuItemClass;
-
-struct _GailRadioMenuItem
-{
-  GailCheckMenuItem parent;
-
-  GSList *old_group;
-};
-
-GType gail_radio_menu_item_get_type (void);
-
-struct _GailRadioMenuItemClass
-{
-  GailCheckMenuItemClass parent_class;
-};
-
-AtkObject* gail_radio_menu_item_new (GtkWidget *widget);
-
-G_END_DECLS
-
-#endif /* __GAIL_RADIO_MENU_ITEM_H__ */
diff --git a/modules/other/gail/gailradiosubmenuitem.c b/modules/other/gail/gailradiosubmenuitem.c
deleted file mode 100644 (file)
index 9360f8f..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2002 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailradiosubmenuitem.h"
-
-static void      gail_radio_sub_menu_item_class_init        (GailRadioSubMenuItemClass *klass);
-static void      gail_radio_sub_menu_item_init              (GailRadioSubMenuItem      *radio_menu_item);
-
-static AtkRelationSet* gail_radio_sub_menu_item_ref_relation_set (AtkObject       *obj);
-
-G_DEFINE_TYPE (GailRadioSubMenuItem, gail_radio_sub_menu_item, GAIL_TYPE_CHECK_SUB_MENU_ITEM)
-
-static void
-gail_radio_sub_menu_item_class_init (GailRadioSubMenuItemClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->ref_relation_set = gail_radio_sub_menu_item_ref_relation_set;
-}
-
-AtkObject* 
-gail_radio_sub_menu_item_new (GtkWidget *widget)
-{
-  GObject *object;
-  AtkObject *accessible;
-
-  g_return_val_if_fail (GTK_IS_RADIO_MENU_ITEM (widget), NULL);
-
-  object = g_object_new (GAIL_TYPE_RADIO_SUB_MENU_ITEM, NULL);
-
-  accessible = ATK_OBJECT (object);
-  atk_object_initialize (accessible, widget);
-
-  accessible->role = ATK_ROLE_RADIO_MENU_ITEM;
-  return accessible;
-}
-
-static void
-gail_radio_sub_menu_item_init (GailRadioSubMenuItem *radio_menu_item)
-{
-  radio_menu_item->old_group = NULL;
-}
-
-AtkRelationSet*
-gail_radio_sub_menu_item_ref_relation_set (AtkObject *obj)
-{
-  GtkWidget *widget;
-  AtkRelationSet *relation_set;
-  GSList *list;
-  GailRadioSubMenuItem *radio_menu_item;
-
-  g_return_val_if_fail (GAIL_IS_RADIO_SUB_MENU_ITEM (obj), NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-  {
-    /*
-     * State is defunct
-     */
-    return NULL;
-  }
-  radio_menu_item = GAIL_RADIO_SUB_MENU_ITEM (obj);
-
-  relation_set = ATK_OBJECT_CLASS (gail_radio_sub_menu_item_parent_class)->ref_relation_set (obj);
-
-  /*
-   * If the radio menu_item'group has changed remove the relation
-   */
-  list = gtk_radio_menu_item_get_group (GTK_RADIO_MENU_ITEM (widget));
-  
-  if (radio_menu_item->old_group != list)
-    {
-      AtkRelation *relation;
-
-      relation = atk_relation_set_get_relation_by_type (relation_set, ATK_RELATION_MEMBER_OF);
-      atk_relation_set_remove (relation_set, relation);
-    }
-
-  if (!atk_relation_set_contains (relation_set, ATK_RELATION_MEMBER_OF))
-  {
-    /*
-     * Get the members of the menu_item group
-     */
-
-    radio_menu_item->old_group = list;
-    if (list)
-    {
-      AtkObject **accessible_array;
-      guint list_length;
-      AtkRelation* relation;
-      gint i = 0;
-
-      list_length = g_slist_length (list);
-      accessible_array = (AtkObject**) g_malloc (sizeof (AtkObject *) * 
-                          list_length);
-      while (list != NULL)
-      {
-        GtkWidget* list_item = list->data;
-
-        accessible_array[i++] = gtk_widget_get_accessible (list_item);
-
-        list = list->next;
-      }
-      relation = atk_relation_new (accessible_array, list_length,
-                                   ATK_RELATION_MEMBER_OF);
-      g_free (accessible_array);
-
-      atk_relation_set_add (relation_set, relation);
-      /*
-       * Unref the relation so that it is not leaked.
-       */
-      g_object_unref (relation);
-    }
-  }
-  return relation_set;
-}
diff --git a/modules/other/gail/gailradiosubmenuitem.h b/modules/other/gail/gailradiosubmenuitem.h
deleted file mode 100644 (file)
index 2433a3b..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2002 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_RADIO_SUB_MENU_ITEM_H__
-#define __GAIL_RADIO_SUB_MENU_ITEM_H__
-
-#include <gail/gailchecksubmenuitem.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_RADIO_SUB_MENU_ITEM               (gail_radio_sub_menu_item_get_type ())
-#define GAIL_RADIO_SUB_MENU_ITEM(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_RADIO_SUB_MENU_ITEM, GailRadioSubMenuItem))
-#define GAIL_RADIO_SUB_MENU_ITEM_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_RADIO_SUB_MENU_ITEM, GailRadioSubMenuItemClass))
-#define GAIL_IS_RADIO_SUB_MENU_ITEM(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_RADIO_SUB_MENU_ITEM))
-#define GAIL_IS_RADIO_SUB_MENU_ITEM_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_RADIO_SUB_MENU_ITEM))
-#define GAIL_RADIO_SUB_MENU_ITEM_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_RADIO_SUB_MENU_ITEM, GailRadioSubMenuItemClass))
-
-typedef struct _GailRadioSubMenuItem              GailRadioSubMenuItem;
-typedef struct _GailRadioSubMenuItemClass         GailRadioSubMenuItemClass;
-
-struct _GailRadioSubMenuItem
-{
-  GailCheckSubMenuItem parent;
-
-  GSList *old_group;
-};
-
-GType gail_radio_sub_menu_item_get_type (void);
-
-struct _GailRadioSubMenuItemClass
-{
-  GailCheckSubMenuItemClass parent_class;
-};
-
-AtkObject* gail_radio_sub_menu_item_new (GtkWidget *widget);
-
-G_END_DECLS
-
-#endif /* __GAIL_RADIO_SUB_MENU_ITEM_H__ */
diff --git a/modules/other/gail/gailrange.c b/modules/other/gail/gailrange.c
deleted file mode 100644 (file)
index fbdec38..0000000
+++ /dev/null
@@ -1,495 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-#include "gailrange.h"
-#include "gailadjustment.h"
-#include "gail-private-macros.h"
-
-static void        gail_range_class_init        (GailRangeClass *klass);
-
-static void         gail_range_init              (GailRange      *range);
-
-static void         gail_range_real_initialize   (AtkObject      *obj,
-                                                  gpointer      data);
-
-static void         gail_range_finalize          (GObject        *object);
-
-static void         gail_range_real_notify_gtk   (GObject        *obj,
-                                                  GParamSpec     *pspec);
-
-static void        atk_value_interface_init     (AtkValueIface  *iface);
-static void        gail_range_get_current_value (AtkValue       *obj,
-                                                  GValue         *value);
-static void        gail_range_get_maximum_value (AtkValue       *obj,
-                                                  GValue         *value);
-static void        gail_range_get_minimum_value (AtkValue       *obj,
-                                                  GValue         *value);
-static void         gail_range_get_minimum_increment (AtkValue       *obj,
-                                                      GValue         *value);
-static gboolean            gail_range_set_current_value (AtkValue       *obj,
-                                                  const GValue   *value);
-static void         gail_range_value_changed     (GtkAdjustment  *adjustment,
-                                                  gpointer       data);
-
-static void         atk_action_interface_init    (AtkActionIface *iface);
-static gboolean     gail_range_do_action        (AtkAction       *action,
-                                                gint            i);
-static gboolean     idle_do_action              (gpointer        data);
-static gint         gail_range_get_n_actions    (AtkAction       *action);
-static const gchar* gail_range_get_description  (AtkAction    *action,
-                                                 gint          i);
-static const gchar* gail_range_get_keybinding   (AtkAction     *action,
-                                                 gint           i);
-static const gchar* gail_range_action_get_name  (AtkAction    *action,
-                                                 gint          i);
-static gboolean   gail_range_set_description  (AtkAction       *action,
-                                              gint            i,
-                                              const gchar     *desc);
-
-G_DEFINE_TYPE_WITH_CODE (GailRange, gail_range, GAIL_TYPE_WIDGET,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init))
-
-static void     
-gail_range_class_init          (GailRangeClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-  GailWidgetClass *widget_class;
-
-  widget_class = (GailWidgetClass*)klass;
-
-  widget_class->notify_gtk = gail_range_real_notify_gtk;
-
-  class->initialize = gail_range_real_initialize;
-
-  gobject_class->finalize = gail_range_finalize;
-}
-
-static void
-gail_range_init (GailRange      *range)
-{
-}
-
-static void
-gail_range_real_initialize (AtkObject *obj,
-                            gpointer  data)
-{
-  GailRange *range = GAIL_RANGE (obj);
-  GtkAdjustment *adj;
-  GtkRange *gtk_range;
-
-  ATK_OBJECT_CLASS (gail_range_parent_class)->initialize (obj, data);
-
-  gtk_range = GTK_RANGE (data);
-  /*
-   * If a GtkAdjustment already exists for the GtkRange,
-   * create the GailAdjustment
-   */
-  adj = gtk_range_get_adjustment (gtk_range);
-  if (adj)
-    {
-      range->adjustment = gail_adjustment_new (adj);
-      g_signal_connect (adj,
-                        "value-changed",
-                        G_CALLBACK (gail_range_value_changed),
-                        range);
-    }
-  else
-    range->adjustment = NULL;
-  range->activate_keybinding=NULL;
-  range->activate_description=NULL;
-  /*
-   * Assumed to GtkScale (either GtkHScale or GtkVScale)
-   */
-  obj->role = ATK_ROLE_SLIDER;
-}
-
-static void
-atk_value_interface_init (AtkValueIface *iface)
-{
-  iface->get_current_value = gail_range_get_current_value;
-  iface->get_maximum_value = gail_range_get_maximum_value;
-  iface->get_minimum_value = gail_range_get_minimum_value;
-  iface->get_minimum_increment = gail_range_get_minimum_increment;
-  iface->set_current_value = gail_range_set_current_value;
-}
-
-static void
-gail_range_get_current_value (AtkValue         *obj,
-                              GValue           *value)
-{
-  GailRange *range;
-
-  g_return_if_fail (GAIL_IS_RANGE (obj));
-
-  range = GAIL_RANGE (obj);
-  if (range->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-
-  atk_value_get_current_value (ATK_VALUE (range->adjustment), value);
-}
-
-static void     
-gail_range_get_maximum_value (AtkValue         *obj,
-                              GValue           *value)
-{
-  GailRange *range;
-  GtkRange *gtk_range;
-  GtkAdjustment *gtk_adjustment;
-  gdouble max = 0;
-
-  g_return_if_fail (GAIL_IS_RANGE (obj));
-
-  range = GAIL_RANGE (obj);
-  if (range->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-  atk_value_get_maximum_value (ATK_VALUE (range->adjustment), value);
-
-  gtk_range = GTK_RANGE (gtk_accessible_get_widget (GTK_ACCESSIBLE (range)));
-  g_return_if_fail (gtk_range);
-
-  gtk_adjustment = gtk_range_get_adjustment (gtk_range);
-  max = g_value_get_double (value);
-  max -=  gtk_adjustment_get_page_size (gtk_adjustment);
-
-  if (gtk_range_get_restrict_to_fill_level (gtk_range))
-    max = MIN (max, gtk_range_get_fill_level (gtk_range));
-
-  g_value_set_double (value, max);
-}
-
-static void     
-gail_range_get_minimum_value (AtkValue         *obj,
-                              GValue           *value)
-{
-  GailRange *range;
-
-  g_return_if_fail (GAIL_IS_RANGE (obj));
-
-  range = GAIL_RANGE (obj);
-  if (range->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-
-  atk_value_get_minimum_value (ATK_VALUE (range->adjustment), value);
-}
-
-static void
-gail_range_get_minimum_increment (AtkValue *obj, GValue *value)
-{
- GailRange *range;
-
-  g_return_if_fail (GAIL_IS_RANGE (obj));
-
-  range = GAIL_RANGE (obj);
-  if (range->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-
-  atk_value_get_minimum_increment (ATK_VALUE (range->adjustment), value);
-}
-
-static gboolean         gail_range_set_current_value (AtkValue         *obj,
-                                               const GValue    *value)
-{
-  GtkWidget *widget;
-
-  g_return_val_if_fail (GAIL_IS_RANGE (obj), FALSE);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    return FALSE;
-
-  if (G_VALUE_HOLDS_DOUBLE (value))
-    {
-      GtkRange *range = GTK_RANGE (widget);
-      gdouble new_value;
-
-      new_value = g_value_get_double (value);
-      gtk_range_set_value (range, new_value);
-      return TRUE;
-    }
-  else
-    {
-      return FALSE;
-    }
-}
-
-static void
-gail_range_finalize (GObject            *object)
-{
-  GailRange *range = GAIL_RANGE (object);
-
-  if (range->adjustment)
-    {
-      /*
-       * The GtkAdjustment may live on so we need to dicsonnect the
-       * signal handler
-       */
-      if (GAIL_ADJUSTMENT (range->adjustment)->adjustment)
-        {
-          g_signal_handlers_disconnect_by_func (GAIL_ADJUSTMENT (range->adjustment)->adjustment,
-                                                (void *)gail_range_value_changed,
-                                                range);
-        }
-      g_object_unref (range->adjustment);
-      range->adjustment = NULL;
-    }
-  range->activate_keybinding=NULL;
-  range->activate_description=NULL;
-  if (range->action_idle_handler)
-   {
-    g_source_remove (range->action_idle_handler);
-    range->action_idle_handler = 0;
-   }
-
-  G_OBJECT_CLASS (gail_range_parent_class)->finalize (object);
-}
-
-
-static void
-gail_range_real_notify_gtk (GObject           *obj,
-                            GParamSpec        *pspec)
-{
-  GtkAdjustment *adj;
-  GtkWidget *widget = GTK_WIDGET (obj);
-  GailRange *range = GAIL_RANGE (gtk_widget_get_accessible (widget));
-
-  if (strcmp (pspec->name, "adjustment") == 0)
-    {
-      /*
-       * Get rid of the GailAdjustment for the GtkAdjustment
-       * which was associated with the range.
-       */
-      if (range->adjustment)
-        {
-          g_object_unref (range->adjustment);
-          range->adjustment = NULL;
-        }
-      /*
-       * Create the GailAdjustment when notify for "adjustment" property
-       * is received
-       */
-      adj = gtk_range_get_adjustment (GTK_RANGE (widget));
-      range->adjustment = gail_adjustment_new (adj);
-      g_signal_connect (adj,
-                        "value-changed",
-                        G_CALLBACK (gail_range_value_changed),
-                        range);
-    }
-  else
-    GAIL_WIDGET_CLASS (gail_range_parent_class)->notify_gtk (obj, pspec);
-}
-
-static void
-gail_range_value_changed (GtkAdjustment    *adjustment,
-                          gpointer         data)
-{
-  GailRange *range;
-
-  g_return_if_fail (adjustment != NULL);
-  gail_return_if_fail (data != NULL);
-
-  range = GAIL_RANGE (data);
-
-  g_object_notify (G_OBJECT (range), "accessible-value");
-}
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
-  iface->do_action = gail_range_do_action;
-  iface->get_n_actions = gail_range_get_n_actions;
-  iface->get_description = gail_range_get_description;
-  iface->get_keybinding = gail_range_get_keybinding;
-  iface->get_name = gail_range_action_get_name;
-  iface->set_description = gail_range_set_description;
-}
-
-static gboolean
-gail_range_do_action (AtkAction *action,
-                     gint      i)
-{
-  GailRange *range;
-  GtkWidget *widget;
-  gboolean return_value = TRUE;
-
-  range = GAIL_RANGE (action);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return FALSE;
-  if (!gtk_widget_get_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-  if(i==0)
-   {
-    if (range->action_idle_handler)
-      return_value = FALSE;
-    else
-      range->action_idle_handler = gdk_threads_add_idle (idle_do_action, range);
-   }
-  else
-     return_value = FALSE;
-  return return_value;
-}
-
-static gboolean
-idle_do_action (gpointer data)
-{
-  GailRange *range;
-  GtkWidget *widget;
-
-  range = GAIL_RANGE (data);
-  range->action_idle_handler = 0;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (range));
-  if (widget == NULL /* State is defunct */ ||
-     !gtk_widget_get_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-   gtk_widget_activate (widget);
-
-   return FALSE;
-}
-
-static gint
-gail_range_get_n_actions (AtkAction *action)
-{
-    return 1;
-}
-
-static const gchar*
-gail_range_get_description (AtkAction *action,
-                              gint      i)
-{
-  GailRange *range;
-  const gchar *return_value;
-
-  range = GAIL_RANGE (action);
-  if (i==0)
-   return_value = range->activate_description;
-  else
-   return_value = NULL;
-  return return_value;
-}
-
-static const gchar*
-gail_range_get_keybinding (AtkAction *action,
-                              gint      i)
-{
-  GailRange *range;
-  gchar *return_value = NULL;
-  range = GAIL_RANGE (action);
-  if(i==0)
-   {
-    GtkWidget *widget;
-    GtkWidget *label;
-    AtkRelationSet *set;
-    AtkRelation *relation;
-    GPtrArray *target;
-    gpointer target_object;
-    guint key_val;
-
-    range = GAIL_RANGE (action);
-    widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (range));
-    if (widget == NULL)
-       return NULL;
-    set = atk_object_ref_relation_set (ATK_OBJECT (action));
-
-    if (!set)
-      return NULL;
-    label = NULL;
-    relation = atk_relation_set_get_relation_by_type (set, ATK_RELATION_LABELLED_BY);    
-    if (relation)
-     {
-      target = atk_relation_get_target (relation);
-      target_object = g_ptr_array_index (target, 0);
-      label = gtk_accessible_get_widget (GTK_ACCESSIBLE (target_object));
-     }
-    g_object_unref (set);
-    if (GTK_IS_LABEL (label))
-     {
-      key_val = gtk_label_get_mnemonic_keyval (GTK_LABEL (label));
-      if (key_val != GDK_KEY_VoidSymbol)
-         return_value = gtk_accelerator_name (key_val, GDK_MOD1_MASK);
-      }
-    g_free (range->activate_keybinding);
-    range->activate_keybinding = return_value;
-   }
-  return return_value;
-}
-
-static const gchar*
-gail_range_action_get_name (AtkAction *action,
-                           gint      i)
-{
-  const gchar *return_value;
-  
-  if (i==0)
-   return_value = "activate";
-  else
-   return_value = NULL;
-
-  return return_value;
-}
-
-static gboolean
-gail_range_set_description (AtkAction      *action,
-                           gint           i,
-                           const gchar    *desc)
-{
-  GailRange *range;
-  gchar **value;
-
-  range = GAIL_RANGE (action);
-  
-  if (i==0)
-   value = &range->activate_description;
-  else
-   value = NULL;
-
-  if (value)
-   {
-    g_free (*value);
-    *value = g_strdup (desc);
-    return TRUE;
-   }
-  else
-   return FALSE;
-}
-
-
diff --git a/modules/other/gail/gailrange.h b/modules/other/gail/gailrange.h
deleted file mode 100644 (file)
index 7761265..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_RANGE_H__
-#define __GAIL_RANGE_H__
-
-#include <gail/gailwidget.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_RANGE                          (gail_range_get_type ())
-#define GAIL_RANGE(obj)                          (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_RANGE, GailRange))
-#define GAIL_RANGE_CLASS(klass)                        (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_RANGE, GailRangeClass))
-#define GAIL_IS_RANGE(obj)                     (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_RANGE))
-#define GAIL_IS_RANGE_CLASS(klass)             (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_RANGE))
-#define GAIL_RANGE_GET_CLASS(obj)              (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_RANGE, GailRangeClass))
-
-typedef struct _GailRange              GailRange;
-typedef struct _GailRangeClass         GailRangeClass;
-
-struct _GailRange
-{
-  GailWidget parent;
-
-  AtkObject *adjustment;
-  gchar     *activate_description;
-  gchar     *activate_keybinding;
-  guint     action_idle_handler;
-
-};
-
-GType gail_range_get_type (void);
-
-struct _GailRangeClass
-{
-  GailWidgetClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_RANGE_H__ */
diff --git a/modules/other/gail/gailrenderercell.h b/modules/other/gail/gailrenderercell.h
deleted file mode 100644 (file)
index 6146418..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_RENDERER_CELL_H__
-#define __GAIL_RENDERER_CELL_H__
-
-#include <atk/atk.h>
-#include <gail/gailcell.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_RENDERER_CELL            (gail_renderer_cell_get_type ())
-#define GAIL_RENDERER_CELL(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_RENDERER_CELL, GailRendererCell))
-#define GAIL_RENDERER_CELL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_RENDERER_CELL, GailRendererCellClass))
-#define GAIL_IS_RENDERER_CELL(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_RENDERER_CELL))
-#define GAIL_IS_RENDERER_CELL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_RENDERER_CELL))
-#define GAIL_RENDERER_CELL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_RENDERER_CELL, GailRendererCellClass))
-
-typedef struct _GailRendererCell                  GailRendererCell;
-typedef struct _GailRendererCellClass             GailRendererCellClass;
-
-struct _GailRendererCell
-{
-  GailCell parent;
-  GtkCellRenderer *renderer;
-};
-
-GType gail_renderer_cell_get_type (void);
-
-struct _GailRendererCellClass
-{
-  GailCellClass parent_class;
-  gchar **property_list;
-  gboolean (*update_cache)(GailRendererCell *cell, gboolean emit_change_signal);
-};
-
-gboolean
-gail_renderer_cell_update_cache (GailRendererCell *cell, gboolean emit_change_signal);
-
-AtkObject *gail_renderer_cell_new (void);
-
-G_END_DECLS
-
-#endif /* __GAIL_TREE_VIEW_TEXT_CELL_H__ */
diff --git a/modules/other/gail/gailscale.c b/modules/other/gail/gailscale.c
deleted file mode 100644 (file)
index 5291d8a..0000000
+++ /dev/null
@@ -1,498 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2004 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include "gailscale.h"
-#include <libgail-util/gailmisc.h>
-
-static void        gail_scale_class_init        (GailScaleClass *klass);
-
-static void         gail_scale_init              (GailScale      *scale);
-
-static void         gail_scale_real_initialize   (AtkObject      *obj,
-                                                  gpointer      data);
-static void         gail_scale_notify            (GObject       *obj,
-                                                  GParamSpec    *pspec);
-static void         gail_scale_finalize          (GObject        *object);
-
-/* atktext.h */ 
-static void        atk_text_interface_init        (AtkTextIface      *iface);
-
-static gchar*      gail_scale_get_text            (AtkText           *text,
-                                                    gint             start_pos,
-                                                   gint              end_pos);
-static gunichar            gail_scale_get_character_at_offset
-                                                   (AtkText          *text,
-                                                   gint              offset);
-static gchar*       gail_scale_get_text_before_offset
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*       gail_scale_get_text_at_offset  (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*      gail_scale_get_text_after_offset
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gint       gail_scale_get_character_count  (AtkText           *text);
-static void        gail_scale_get_character_extents
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   gint              *x,
-                                                   gint              *y,
-                                                   gint              *width,
-                                                   gint              *height,
-                                                   AtkCoordType      coords);
-static gint        gail_scale_get_offset_at_point  (AtkText           *text,
-                                                    gint              x,
-                                                    gint              y,
-                                                   AtkCoordType      coords);
-static AtkAttributeSet* gail_scale_get_run_attributes 
-                                                   (AtkText           *text,
-                                                   gint              offset,
-                                                    gint             *start_offset,
-                                                   gint              *end_offset);
-static AtkAttributeSet* gail_scale_get_default_attributes
-                                                   (AtkText           *text);
-
-G_DEFINE_TYPE_WITH_CODE (GailScale, gail_scale, GAIL_TYPE_RANGE,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init))
-
-static void     
-gail_scale_class_init (GailScaleClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->initialize = gail_scale_real_initialize;
-
-  gobject_class->finalize = gail_scale_finalize;
-  gobject_class->notify = gail_scale_notify;
-}
-
-static void
-gail_scale_init (GailScale      *scale)
-{
-}
-
-static void
-gail_scale_real_initialize (AtkObject *obj,
-                            gpointer  data)
-{
-  GailScale *gail_scale;
-  const gchar *txt;
-  PangoLayout *layout;
-
-  ATK_OBJECT_CLASS (gail_scale_parent_class)->initialize (obj, data);
-
-  gail_scale = GAIL_SCALE (obj);
-  gail_scale->textutil = gail_text_util_new ();
-
-  layout = gtk_scale_get_layout (GTK_SCALE (data));
-  if (layout)
-    {
-      txt = pango_layout_get_text (layout);
-      if (txt)
-        {
-          gail_text_util_text_setup (gail_scale->textutil, txt);
-        }
-    }
-}
-
-static void
-gail_scale_finalize (GObject *object)
-{
-  GailScale *scale = GAIL_SCALE (object);
-
-  g_object_unref (scale->textutil);
-  G_OBJECT_CLASS (gail_scale_parent_class)->finalize (object);
-
-}
-
-static void
-gail_scale_notify (GObject    *obj,
-                   GParamSpec *pspec)
-{
-  GailScale *scale = GAIL_SCALE (obj);
-
-  if (strcmp (pspec->name, "accessible-value") == 0)
-    {
-      GtkWidget *widget;
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-      if (widget)
-        {
-          GtkScale *gtk_scale;
-          PangoLayout *layout;
-          const gchar *txt;
-
-          gtk_scale = GTK_SCALE (widget);
-          layout = gtk_scale_get_layout (gtk_scale);
-          if (layout)
-            {
-              txt = pango_layout_get_text (layout);
-              if (txt)
-                {
-                 g_signal_emit_by_name (obj, "text_changed::delete", 0,
-                                         gtk_text_buffer_get_char_count (scale->textutil->buffer));
-                  gail_text_util_text_setup (scale->textutil, txt);
-                 g_signal_emit_by_name (obj, "text_changed::insert", 0,
-                                         g_utf8_strlen (txt, -1));
-                }
-            }
-        }
-    }
-  G_OBJECT_CLASS (gail_scale_parent_class)->notify (obj, pspec);
-}
-
-/* atktext.h */
-
-static void
-atk_text_interface_init (AtkTextIface *iface)
-{
-  iface->get_text = gail_scale_get_text;
-  iface->get_character_at_offset = gail_scale_get_character_at_offset;
-  iface->get_text_before_offset = gail_scale_get_text_before_offset;
-  iface->get_text_at_offset = gail_scale_get_text_at_offset;
-  iface->get_text_after_offset = gail_scale_get_text_after_offset;
-  iface->get_character_count = gail_scale_get_character_count;
-  iface->get_character_extents = gail_scale_get_character_extents;
-  iface->get_offset_at_point = gail_scale_get_offset_at_point;
-  iface->get_run_attributes = gail_scale_get_run_attributes;
-  iface->get_default_attributes = gail_scale_get_default_attributes;
-}
-
-static gchar*
-gail_scale_get_text (AtkText *text,
-                     gint    start_pos,
-                     gint    end_pos)
-{
-  GtkWidget *widget;
-  GailScale *scale;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  scale = GAIL_SCALE (text);
-  return gail_text_util_get_substring (scale->textutil, 
-                                       start_pos, end_pos);
-}
-
-static gchar*
-gail_scale_get_text_before_offset (AtkText         *text,
-                                  gint            offset,
-                                  AtkTextBoundary boundary_type,
-                                  gint            *start_offset,
-                                  gint            *end_offset)
-{
-  GtkWidget *widget;
-  GailScale *scale;
-  PangoLayout *layout;
-  gchar *txt;
-  
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-  
-  scale = GAIL_SCALE (text);
-  layout = gtk_scale_get_layout (GTK_SCALE (widget));
-  if (layout)
-    {
-      txt =  gail_text_util_get_text (scale->textutil,
-                           layout, GAIL_BEFORE_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset); 
-    }
-  else
-    txt = NULL;
-
-  return txt;
-}
-
-static gchar*
-gail_scale_get_text_at_offset (AtkText         *text,
-                              gint            offset,
-                              AtkTextBoundary boundary_type,
-                              gint            *start_offset,
-                              gint            *end_offset)
-{
-  GtkWidget *widget;
-  GailScale *scale;
-  PangoLayout *layout;
-  gchar *txt;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-  
-  scale = GAIL_SCALE (text);
-  layout = gtk_scale_get_layout (GTK_SCALE (widget));
-  if (layout)
-    {
-      txt =  gail_text_util_get_text (scale->textutil,
-                              layout, GAIL_AT_OFFSET, 
-                              boundary_type, offset, start_offset, end_offset);
-    }
-  else
-    txt = NULL;
-
-  return txt;
-}
-
-static gchar*
-gail_scale_get_text_after_offset (AtkText         *text,
-                                 gint            offset,
-                                 AtkTextBoundary boundary_type,
-                                 gint            *start_offset,
-                                 gint            *end_offset)
-{
-  GtkWidget *widget;
-  GailScale *scale;
-  PangoLayout *layout;
-  gchar *txt;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-  
-  scale = GAIL_SCALE (text);
-  layout = gtk_scale_get_layout (GTK_SCALE (widget));
-  if (layout)
-    {
-      txt =  gail_text_util_get_text (scale->textutil,
-                              layout, GAIL_AFTER_OFFSET, 
-                              boundary_type, offset, start_offset, end_offset);
-    }
-  else
-    txt = NULL;
-
-  return txt;
-}
-
-static gint
-gail_scale_get_character_count (AtkText *text)
-{
-  GtkWidget *widget;
-  GailScale *scale;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  scale = GAIL_SCALE (text);
-  if (scale->textutil->buffer)
-    return gtk_text_buffer_get_char_count (scale->textutil->buffer);
-  else
-    return 0;
-
-}
-
-static void
-gail_scale_get_character_extents (AtkText      *text,
-                                 gint         offset,
-                                 gint         *x,
-                                 gint         *y,
-                                  gint                *width,
-                                  gint                *height,
-                                 AtkCoordType coords)
-{
-  GtkWidget *widget;
-  GtkScale *scale;
-  PangoRectangle char_rect;
-  PangoLayout *layout;
-  gint index, x_layout, y_layout;
-  const gchar *scale_text;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  scale = GTK_SCALE (widget);
-  layout = gtk_scale_get_layout (scale);
-  if (!layout)
-    return;
-  scale_text = pango_layout_get_text (layout);
-  if (!scale_text)
-    return;
-  index = g_utf8_offset_to_pointer (scale_text, offset) - scale_text;
-  gtk_scale_get_layout_offsets (scale, &x_layout, &y_layout);
-  pango_layout_index_to_pos (layout, index, &char_rect);
-  gail_misc_get_extents_from_pango_rectangle (widget, &char_rect, 
-                    x_layout, y_layout, x, y, width, height, coords);
-} 
-
-static gint 
-gail_scale_get_offset_at_point (AtkText      *text,
-                                gint         x,
-                                gint         y,
-                               AtkCoordType coords)
-{ 
-  GtkWidget *widget;
-  GtkScale *scale;
-  PangoLayout *layout;
-  gint index, x_layout, y_layout;
-  const gchar *scale_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-
-  scale = GTK_SCALE (widget);
-  layout = gtk_scale_get_layout (scale);
-  if (!layout)
-    return -1;
-  scale_text = pango_layout_get_text (layout);
-  if (!scale_text)
-    return -1;
-  
-  gtk_scale_get_layout_offsets (scale, &x_layout, &y_layout);
-  index = gail_misc_get_index_at_point_in_layout (widget, 
-                                              layout, 
-                                              x_layout, y_layout, x, y, coords);
-  if (index == -1)
-    {
-      if (coords == ATK_XY_WINDOW || coords == ATK_XY_SCREEN)
-        index = g_utf8_strlen (scale_text, -1);
-    }
-  else
-    index = g_utf8_pointer_to_offset (scale_text, scale_text + index);  
-
-  return index;
-}
-
-static AtkAttributeSet*
-gail_scale_get_run_attributes (AtkText *text,
-                               gint    offset,
-                               gint    *start_offset,
-                              gint    *end_offset)
-{
-  GtkWidget *widget;
-  GtkScale *scale;
-  AtkAttributeSet *at_set = NULL;
-  GtkTextDirection dir;
-  PangoLayout *layout;
-  const gchar *scale_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  scale = GTK_SCALE (widget);
-
-  layout = gtk_scale_get_layout (scale);
-  if (!layout)
-    return at_set;
-  scale_text = pango_layout_get_text (layout);
-  if (!scale_text)
-    return at_set;
-
-  dir = gtk_widget_get_direction (widget);
-  if (dir == GTK_TEXT_DIR_RTL)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_DIRECTION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION, dir)));
-    }
-
-  at_set = gail_misc_layout_get_run_attributes (at_set,
-                                                layout,
-                                                (gchar *)scale_text,
-                                                offset,
-                                                start_offset,
-                                                end_offset);
-  return at_set;
-}
-
-static AtkAttributeSet*
-gail_scale_get_default_attributes (AtkText *text)
-{
-  GtkWidget *widget;
-  AtkAttributeSet *at_set = NULL;
-  PangoLayout *layout;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  layout = gtk_scale_get_layout (GTK_SCALE (widget));
-  if (layout)
-    {
-      at_set = gail_misc_get_default_attributes (at_set,
-                                                 layout,
-                                                 widget);
-    }
-  return at_set;
-}
-
-static gunichar 
-gail_scale_get_character_at_offset (AtkText *text,
-                                    gint    offset)
-{
-  GtkWidget *widget;
-  GtkScale *scale;
-  PangoLayout *layout;
-  const gchar *string;
-  gchar *index;
-  gunichar c;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return '\0';
-
-  scale = GTK_SCALE (widget);
-
-  layout = gtk_scale_get_layout (scale);
-  if (!layout)
-    return '\0';
-  string = pango_layout_get_text (layout);
-  if (offset >= g_utf8_strlen (string, -1))
-    c = '\0';
-  else
-    {
-      index = g_utf8_offset_to_pointer (string, offset);
-
-      c = g_utf8_get_char (index);
-    }
-
-  return c;
-}
diff --git a/modules/other/gail/gailscale.h b/modules/other/gail/gailscale.h
deleted file mode 100644 (file)
index fd0252f..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2004 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_SCALE_H__
-#define __GAIL_SCALE_H__
-
-#include <gail/gailrange.h>
-#include <libgail-util/gailtextutil.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_SCALE                         (gail_scale_get_type ())
-#define GAIL_SCALE(obj)                         (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_SCALE, GailScale))
-#define GAIL_SCALE_CLASS(klass)                        (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_SCALE, GailScaleClass))
-#define GAIL_IS_SCALE(obj)                     (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_SCALE))
-#define GAIL_IS_SCALE_CLASS(klass)             (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_SCALE))
-#define GAIL_SCALE_GET_CLASS(obj)              (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_SCALE, GailScaleClass))
-
-typedef struct _GailScale              GailScale;
-typedef struct _GailScaleClass         GailScaleClass;
-
-struct _GailScale
-{
-  GailRange parent;
-
-  GailTextUtil *textutil;
-};
-
-GType gail_scale_get_type (void);
-
-struct _GailScaleClass
-{
-  GailRangeClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_SCALE_H__ */
diff --git a/modules/other/gail/gailscalebutton.c b/modules/other/gail/gailscalebutton.c
deleted file mode 100644 (file)
index 38f9af8..0000000
+++ /dev/null
@@ -1,354 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2008 Jan Arne Petersen
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include <config.h>
-
-#include <gtk/gtk.h>
-#include "gailscalebutton.h"
-#include "gailadjustment.h"
-#include "gail-private-macros.h"
-
-#include <string.h>
-
-static void gail_scale_button_class_init (GailScaleButtonClass *klass);
-static void gail_scale_button_init       (GailScaleButton      *button);
-
-/* GailWidget */
-static void gail_scale_button_real_notify_gtk (GObject    *obj,
-                                               GParamSpec *pspec);
-
-/* AtkObject */
-static void gail_scale_button_real_initialize (AtkObject *obj,
-                                               gpointer   data);
-
-/* AtkAction */
-static void                  atk_action_interface_init        (AtkActionIface *iface);
-static gboolean              gail_scale_button_do_action      (AtkAction      *action,
-                                                               gint           i);
-static gint                  gail_scale_button_get_n_actions  (AtkAction      *action);
-static const gchar* gail_scale_button_get_description(AtkAction      *action,
-                                                               gint           i);
-static const gchar* gail_scale_button_action_get_name(AtkAction      *action,
-                                                               gint           i);
-static const gchar* gail_scale_button_get_keybinding (AtkAction      *action,
-                                                               gint           i);
-static gboolean              gail_scale_button_set_description(AtkAction      *action,
-                                                               gint           i,
-                                                               const gchar    *desc);
-
-/* AtkValue */
-static void    atk_value_interface_init                (AtkValueIface  *iface);
-static void    gail_scale_button_get_current_value     (AtkValue       *obj,
-                                                         GValue         *value);
-static void    gail_scale_button_get_maximum_value     (AtkValue       *obj,
-                                                         GValue         *value);
-static void    gail_scale_button_get_minimum_value     (AtkValue       *obj,
-                                                         GValue         *value);
-static void    gail_scale_button_get_minimum_increment (AtkValue       *obj,
-                                                         GValue         *value);
-static gboolean        gail_scale_button_set_current_value     (AtkValue       *obj,
-                                                         const GValue   *value);
-static void     gail_scale_button_value_changed         (GtkAdjustment  *adjustment,
-                                                         gpointer       data);
-
-G_DEFINE_TYPE_WITH_CODE (GailScaleButton, gail_scale_button, GAIL_TYPE_BUTTON,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_ACTION, atk_action_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init));
-
-static void
-gail_scale_button_class_init (GailScaleButtonClass *klass)
-{
-  AtkObjectClass *atk_object_class = ATK_OBJECT_CLASS (klass);
-  GailWidgetClass *widget_class = GAIL_WIDGET_CLASS (klass);
-
-  atk_object_class->initialize = gail_scale_button_real_initialize;
-
-  widget_class->notify_gtk = gail_scale_button_real_notify_gtk;
-}
-
-static void
-gail_scale_button_init (GailScaleButton *button)
-{
-}
-
-static void
-gail_scale_button_real_initialize (AtkObject *obj,
-                                   gpointer  data)
-{
-  GailScaleButton *scale_button = GAIL_SCALE_BUTTON (obj);
-  GtkScaleButton *gtk_scale_button;
-  GtkAdjustment *gtk_adjustment;
-
-  ATK_OBJECT_CLASS (gail_scale_button_parent_class)->initialize (obj, data);
-
-  gtk_scale_button = GTK_SCALE_BUTTON (data);
-  gtk_adjustment = gtk_scale_button_get_adjustment (gtk_scale_button);
-  /*
-   * If a GtkAdjustment already exists for the scale_button,
-   * create the GailAdjustment
-   */
-  if (gtk_adjustment)
-    {
-      scale_button->adjustment = gail_adjustment_new (gtk_adjustment);
-      g_signal_connect (gtk_adjustment,
-                        "value-changed",
-                        G_CALLBACK (gail_scale_button_value_changed),
-                        obj);
-    }
-  else
-    scale_button->adjustment = NULL;
-
-  obj->role = ATK_ROLE_SLIDER;
-}
-
-static void
-atk_action_interface_init (AtkActionIface *iface)
-{
-  iface->do_action = gail_scale_button_do_action;
-  iface->get_n_actions = gail_scale_button_get_n_actions;
-  iface->get_description = gail_scale_button_get_description;
-  iface->get_keybinding = gail_scale_button_get_keybinding;
-  iface->get_name = gail_scale_button_action_get_name;
-  iface->set_description = gail_scale_button_set_description;
-}
-
-static gboolean
-gail_scale_button_do_action(AtkAction *action,
-                            gint       i)
-{
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (action));
-  if (widget == NULL)
-    return FALSE;
-
-  if (!gtk_widget_is_sensitive (widget) || !gtk_widget_get_visible (widget))
-    return FALSE;
-
-  switch (i) {
-    case 0:
-      g_signal_emit_by_name (widget, "popup");
-      return TRUE;
-    case 1:
-      g_signal_emit_by_name (widget, "podown");
-      return TRUE;
-    default:
-      return FALSE;
-  }
-}
-
-static gint
-gail_scale_button_get_n_actions (AtkAction *action)
-{
-  return 2;
-}
-
-static const gchar*
-gail_scale_button_get_description (AtkAction *action,
-                                   gint       i)
-{
-  return NULL;
-}
-
-static const gchar*
-gail_scale_button_action_get_name (AtkAction *action,
-                                   gint       i)
-{
-  switch (i) {
-    case 0:
-      return "popup";
-    case 1:
-      return "popdown";
-    default:
-      return NULL;
-  }
-}
-
-static const gchar*
-gail_scale_button_get_keybinding (AtkAction *action,
-                                  gint       i)
-{
-  return NULL;
-}
-
-static gboolean
-gail_scale_button_set_description (AtkAction   *action,
-                                   gint         i,
-                                   const gchar *desc)
-{
-  return FALSE;
-}
-
-
-static void
-atk_value_interface_init (AtkValueIface *iface)
-{
-  iface->get_current_value = gail_scale_button_get_current_value;
-  iface->get_maximum_value = gail_scale_button_get_maximum_value;
-  iface->get_minimum_value = gail_scale_button_get_minimum_value;
-  iface->get_minimum_increment = gail_scale_button_get_minimum_increment;
-  iface->set_current_value = gail_scale_button_set_current_value;
-}
-
-static void
-gail_scale_button_get_current_value (AtkValue *obj,
-                                     GValue   *value)
-{
-  GailScaleButton *scale_button;
-
-  g_return_if_fail (GAIL_IS_SCALE_BUTTON (obj));
-
-  scale_button = GAIL_SCALE_BUTTON (obj);
-  if (scale_button->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-
-  atk_value_get_current_value (ATK_VALUE (scale_button->adjustment), value);
-}
-
-static void
-gail_scale_button_get_maximum_value (AtkValue *obj,
-                                     GValue   *value)
-{
-  GailScaleButton *scale_button;
-
-  g_return_if_fail (GAIL_IS_SCALE_BUTTON (obj));
-
-  scale_button = GAIL_SCALE_BUTTON (obj);
-  if (scale_button->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-
-  atk_value_get_maximum_value (ATK_VALUE (scale_button->adjustment), value);
-}
-
-static void
-gail_scale_button_get_minimum_value (AtkValue *obj,
-                                     GValue   *value)
-{
-  GailScaleButton *scale_button;
-
-  g_return_if_fail (GAIL_IS_SCALE_BUTTON (obj));
-
-  scale_button = GAIL_SCALE_BUTTON (obj);
-  if (scale_button->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-
-  atk_value_get_minimum_value (ATK_VALUE (scale_button->adjustment), value);
-}
-
-static void
-gail_scale_button_get_minimum_increment (AtkValue *obj,
-                                         GValue   *value)
-{
-  GailScaleButton *scale_button;
-
-  g_return_if_fail (GAIL_IS_SCALE_BUTTON (obj));
-
-  scale_button = GAIL_SCALE_BUTTON (obj);
-  if (scale_button->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-
-  atk_value_get_minimum_increment (ATK_VALUE (scale_button->adjustment), value);
-}
-
-static gboolean
-gail_scale_button_set_current_value (AtkValue     *obj,
-                                     const GValue *value)
-{
-  GailScaleButton *scale_button;
-
-  g_return_val_if_fail (GAIL_IS_SCALE_BUTTON (obj), FALSE);
-
-  scale_button = GAIL_SCALE_BUTTON (obj);
-  if (scale_button->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return FALSE;
-
-  return atk_value_set_current_value (ATK_VALUE (scale_button->adjustment), value);
-}
-
-static void
-gail_scale_button_real_notify_gtk (GObject    *obj,
-                                   GParamSpec *pspec)
-{
-  GtkScaleButton *gtk_scale_button;
-  GailScaleButton *scale_button;
-
-  g_return_if_fail (GTK_IS_SCALE_BUTTON (obj));
-
-  gtk_scale_button = GTK_SCALE_BUTTON (obj);
-  scale_button = GAIL_SCALE_BUTTON (gtk_widget_get_accessible (GTK_WIDGET (gtk_scale_button)));
-
-  if (strcmp (pspec->name, "adjustment") == 0)
-    {
-      /*
-       * Get rid of the GailAdjustment for the GtkAdjustment
-       * which was associated with the scale_button.
-       */
-      GtkAdjustment* gtk_adjustment;
-
-      if (scale_button->adjustment)
-        {
-          g_object_unref (scale_button->adjustment);
-          scale_button->adjustment = NULL;
-        }
-      /*
-       * Create the GailAdjustment when notify for "adjustment" property
-       * is received
-       */
-      gtk_adjustment = gtk_scale_button_get_adjustment (gtk_scale_button);
-      scale_button->adjustment = gail_adjustment_new (gtk_adjustment);
-      g_signal_connect (gtk_adjustment,
-                        "value-changed",
-                        G_CALLBACK (gail_scale_button_value_changed),
-                        scale_button);
-    }
-  else
-    {
-      GAIL_WIDGET_CLASS (gail_scale_button_parent_class)->notify_gtk (obj, pspec);
-    }
-}
-
-static void
-gail_scale_button_value_changed (GtkAdjustment    *adjustment,
-                                 gpointer         data)
-{
-  GailScaleButton *scale_button;
-
-  gail_return_if_fail (adjustment != NULL);
-  gail_return_if_fail (data != NULL);
-
-  scale_button = GAIL_SCALE_BUTTON (data);
-
-  g_object_notify (G_OBJECT (scale_button), "accessible-value");
-}
-
diff --git a/modules/other/gail/gailscalebutton.h b/modules/other/gail/gailscalebutton.h
deleted file mode 100644 (file)
index ce79b47..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2008 Jan Arne Petersen <jap@gnome.org>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_SCALE_BUTTON_H__
-#define __GAIL_SCALE_BUTTON_H__
-
-#include <gtk/gtk.h>
-#include <gail/gailbutton.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_SCALE_BUTTON                     (gail_scale_button_get_type ())
-#define GAIL_SCALE_BUTTON(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_SCALE_BUTTON, GailScaleButton))
-#define GAIL_SCALE_BUTTON_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_SCALE_BUTTON, GailScaleButtonClass))
-#define GAIL_IS_SCALE_BUTTON(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_SCALE_BUTTON))
-#define GAIL_IS_SCALE_BUTTON_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_SCALE_BUTTON))
-#define GAIL_SCALE_BUTTON_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_SCALE_BUTTON, GailScaleButtonClass))
-
-typedef struct _GailScaleButton                   GailScaleButton;
-typedef struct _GailScaleButtonClass              GailScaleButtonClass;
-
-struct _GailScaleButton
-{
-  GailButton parent;
-
-  AtkObject *adjustment;
-};
-
-struct _GailScaleButtonClass
-{
-  GailButtonClass parent_class;
-};
-
-GType gail_scale_button_get_type (void);
-
-G_END_DECLS
-
-#endif /* __GAIL_SCALE_BUTTON_H__ */
diff --git a/modules/other/gail/gailscrollbar.h b/modules/other/gail/gailscrollbar.h
deleted file mode 100644 (file)
index bfcf175..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_SCROLLBAR_H__
-#define __GAIL_SCROLLBAR_H__
-
-#include <gail/gailrange.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_SCROLLBAR                     (gail_scrollbar_get_type ())
-#define GAIL_SCROLLBAR(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_SCROLLBAR, GailScrollbar))
-#define GAIL_SCROLLBAR_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_SCROLLBAR, GailScrollbarClass))
-#define GAIL_IS_SCROLLBAR(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_SCROLLBAR))
-#define GAIL_IS_SCROLLBAR_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_SCROLLBAR))
-#define GAIL_SCROLLBAR_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_SCROLLBAR, GailScrollbarClass))
-
-typedef struct _GailScrollbar          GailScrollbar;
-typedef struct _GailScrollbarClass     GailScrollbarClass;
-
-struct _GailScrollbar
-{
-  GailRange parent;
-};
-
-GType gail_scrollbar_get_type (void);
-
-struct _GailScrollbarClass
-{
-  GailRangeClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_SCROLLBAR_H__ */
diff --git a/modules/other/gail/gailscrolledwindow.c b/modules/other/gail/gailscrolledwindow.c
deleted file mode 100644 (file)
index e176de5..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include "gailscrolledwindow.h"
-
-
-static void         gail_scrolled_window_class_init     (GailScrolledWindowClass  *klass); 
-static void         gail_scrolled_window_init           (GailScrolledWindow       *window);
-static void         gail_scrolled_window_real_initialize
-                                                        (AtkObject     *obj,
-                                                         gpointer      data);
-
-static gint         gail_scrolled_window_get_n_children (AtkObject     *object);
-static AtkObject*   gail_scrolled_window_ref_child      (AtkObject     *obj,
-                                                         gint          child);
-static void         gail_scrolled_window_scrollbar_visibility_changed 
-                                                        (GObject       *object,
-                                                         GParamSpec    *pspec,
-                                                         gpointer      user_data);
-
-G_DEFINE_TYPE (GailScrolledWindow, gail_scrolled_window, GAIL_TYPE_CONTAINER)
-
-static void
-gail_scrolled_window_class_init (GailScrolledWindowClass *klass)
-{
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-
-  class->get_n_children = gail_scrolled_window_get_n_children;
-  class->ref_child = gail_scrolled_window_ref_child;
-  class->initialize = gail_scrolled_window_real_initialize;
-}
-
-static void
-gail_scrolled_window_init (GailScrolledWindow *window)
-{
-}
-
-static void
-gail_scrolled_window_real_initialize (AtkObject *obj,
-                                      gpointer  data)
-{
-  GtkScrolledWindow *window;
-
-  ATK_OBJECT_CLASS (gail_scrolled_window_parent_class)->initialize (obj, data);
-
-  window = GTK_SCROLLED_WINDOW (data);
-
-  g_signal_connect_data (gtk_scrolled_window_get_hscrollbar (window), "notify::visible",
-                         G_CALLBACK (gail_scrolled_window_scrollbar_visibility_changed),
-                         obj, NULL, FALSE);
-  g_signal_connect_data (gtk_scrolled_window_get_vscrollbar (window), "notify::visible",
-                         G_CALLBACK (gail_scrolled_window_scrollbar_visibility_changed),
-                         obj, NULL, FALSE);
-
-  obj->role = ATK_ROLE_SCROLL_PANE;
-}
-
-static gint
-gail_scrolled_window_get_n_children (AtkObject *object)
-{
-  GtkWidget *widget;
-  GtkScrolledWindow *gtk_window;
-  GList *children;
-  gint n_children;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (object));
-  if (widget == NULL)
-    /* Object is defunct */
-    return 0;
-
-  gtk_window = GTK_SCROLLED_WINDOW (widget);
-   
-  /* Get the number of children returned by the backing GtkScrolledWindow */
-
-  children = gtk_container_get_children (GTK_CONTAINER(gtk_window));
-  n_children = g_list_length (children);
-  g_list_free (children);
-  
-  /* Add one to the count for each visible scrollbar */
-
-  if (gtk_scrolled_window_get_hscrollbar (gtk_window))
-    n_children++;
-  if (gtk_scrolled_window_get_vscrollbar (gtk_window))
-    n_children++;
-  return n_children;
-}
-
-static AtkObject *
-gail_scrolled_window_ref_child (AtkObject *obj, 
-                                gint      child)
-{
-  GtkWidget *widget;
-  GtkScrolledWindow *gtk_window;
-  GtkWidget *hscrollbar, *vscrollbar;
-  GList *children, *tmp_list;
-  gint n_children;
-  AtkObject  *accessible = NULL;
-
-  g_return_val_if_fail (child >= 0, NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    /* Object is defunct */
-    return NULL;
-
-  gtk_window = GTK_SCROLLED_WINDOW (widget);
-  hscrollbar = gtk_scrolled_window_get_hscrollbar (gtk_window);
-  vscrollbar = gtk_scrolled_window_get_vscrollbar (gtk_window);
-
-  children = gtk_container_get_children (GTK_CONTAINER (gtk_window));
-  n_children = g_list_length (children);
-
-  if (child == n_children)
-    {
-      if (gtk_scrolled_window_get_hscrollbar (gtk_window))
-        accessible = gtk_widget_get_accessible (hscrollbar);
-      else if (gtk_scrolled_window_get_vscrollbar (gtk_window))
-        accessible = gtk_widget_get_accessible (vscrollbar);
-    }
-  else if (child == n_children+1 && 
-           gtk_scrolled_window_get_hscrollbar (gtk_window) &&
-           gtk_scrolled_window_get_vscrollbar (gtk_window))
-    accessible = gtk_widget_get_accessible (vscrollbar);
-  else if (child < n_children)
-    {
-      tmp_list = g_list_nth (children, child);
-      if (tmp_list)
-       accessible = gtk_widget_get_accessible (
-               GTK_WIDGET (tmp_list->data));
-    }
-
-  g_list_free (children);
-  if (accessible)
-    g_object_ref (accessible);
-  return accessible; 
-}
-
-static void
-gail_scrolled_window_scrollbar_visibility_changed (GObject    *object,
-                                                   GParamSpec *pspec,
-                                                   gpointer   user_data)
-{
-  if (!strcmp (pspec->name, "visible"))
-    {
-      gint index;
-      gint n_children;
-      gboolean child_added = FALSE;
-      GList *children;
-      AtkObject *child;
-      GtkScrolledWindow *gtk_window;
-      GtkWidget *hscrollbar, *vscrollbar;
-      GailScrolledWindow *gail_window = GAIL_SCROLLED_WINDOW (user_data);
-      gchar *signal_name;
-
-      gtk_window = GTK_SCROLLED_WINDOW (gtk_accessible_get_widget (GTK_ACCESSIBLE (user_data)));
-      if (gtk_window == NULL)
-        return;
-      children = gtk_container_get_children (GTK_CONTAINER (gtk_window));
-      index = n_children = g_list_length (children);
-      g_list_free (children);
-
-      hscrollbar = gtk_scrolled_window_get_hscrollbar (gtk_window);
-      vscrollbar = gtk_scrolled_window_get_vscrollbar (gtk_window);
-
-      if ((gpointer) object == (gpointer) (hscrollbar))
-        {
-          if (gtk_scrolled_window_get_hscrollbar (gtk_window))
-            child_added = TRUE;
-
-          child = gtk_widget_get_accessible (hscrollbar);
-        }
-      else if ((gpointer) object == (gpointer) (vscrollbar))
-        {
-          if (gtk_scrolled_window_get_vscrollbar (gtk_window))
-            child_added = TRUE;
-
-          child = gtk_widget_get_accessible (vscrollbar);
-          if (gtk_scrolled_window_get_hscrollbar (gtk_window))
-            index = n_children+1;
-        }
-      else 
-        {
-          g_assert_not_reached ();
-          return;
-        }
-
-      if (child_added)
-        signal_name = "children_changed::add";
-      else
-        signal_name = "children_changed::delete";
-
-      g_signal_emit_by_name (gail_window, signal_name, index, child, NULL);
-    }
-}
diff --git a/modules/other/gail/gailscrolledwindow.h b/modules/other/gail/gailscrolledwindow.h
deleted file mode 100644 (file)
index f7c456d..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_SCROLLED_WINDOW_H__
-#define __GAIL_SCROLLED_WINDOW_H__
-
-#include <gail/gailcontainer.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_SCROLLED_WINDOW            (gail_scrolled_window_get_type ())
-#define GAIL_SCROLLED_WINDOW(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_SCROLLED_WINDOW, GailScrolledWindow))
-#define GAIL_SCROLLED_WINDOW_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_SCROLLED_WINDOW, GailScrolledWindowClass))
-#define GAIL_IS_SCROLLED_WINDOW(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_SCROLLED_WINDOW))
-#define GAIL_IS_SCROLLED_WINDOW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_SCROLLED_WINDOW))
-#define GAIL_SCROLLED_WINDOW_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_SCROLLED_WINDOW, GailScrolledWindowClass))
-
-typedef struct _GailScrolledWindow              GailScrolledWindow;
-typedef struct _GailScrolledWindowClass         GailScrolledWindowClass;
-
-struct _GailScrolledWindow
-{
-  GailContainer parent;
-};
-
-GType gail_scrolled_window_get_type (void);
-
-struct _GailScrolledWindowClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_SCROLLED_WINDOW_H__ */
diff --git a/modules/other/gail/gailseparator.c b/modules/other/gail/gailseparator.c
deleted file mode 100644 (file)
index 22e9146..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailseparator.h"
-
-static void         gail_separator_class_init            (GailSeparatorClass  *klass);
-static void         gail_separator_init                  (GailSeparator       *accessible);
-static void         gail_separator_initialize            (AtkObject           *accessible,
-                                                          gpointer             data);
-
-G_DEFINE_TYPE (GailSeparator, gail_separator, GAIL_TYPE_WIDGET)
-
-static void
-gail_separator_class_init (GailSeparatorClass *klass)
-{
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-
-  class->initialize = gail_separator_initialize;
-}
-
-static void
-gail_separator_init (GailSeparator *accessible)
-{
-}
-
-static void
-gail_separator_initialize (AtkObject *accessible,
-                           gpointer  data)
-{
-  ATK_OBJECT_CLASS (gail_separator_parent_class)->initialize (accessible, data);
-
-  accessible->role = ATK_ROLE_SEPARATOR;
-}
diff --git a/modules/other/gail/gailseparator.h b/modules/other/gail/gailseparator.h
deleted file mode 100644 (file)
index 67db371..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_SEPARATOR_H__
-#define __GAIL_SEPARATOR_H__
-
-#include <gail/gailwidget.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_SEPARATOR                  (gail_separator_get_type ())
-#define GAIL_SEPARATOR(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_SEPARATOR, GailSeparator))
-#define GAIL_SEPARATOR_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_SEPARATOR, GailSeparatorClass))
-#define GAIL_IS_SEPARATOR(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_SEPARATOR))
-#define GAIL_IS_SEPARATOR_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_SEPARATOR))
-#define GAIL_SEPARATOR_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_SEPARATOR, GailSeparatorClass))
-
-typedef struct _GailSeparator              GailSeparator;
-typedef struct _GailSeparatorClass         GailSeparatorClass;
-
-struct _GailSeparator
-{
-  GailWidget parent;
-};
-
-GType gail_separator_get_type (void);
-
-struct _GailSeparatorClass
-{
-  GailWidgetClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_SEPARATOR_H__ */
diff --git a/modules/other/gail/gailspinbutton.c b/modules/other/gail/gailspinbutton.c
deleted file mode 100644 (file)
index 767099d..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include "gailspinbutton.h"
-#include "gailadjustment.h"
-#include "gail-private-macros.h"
-
-static void      gail_spin_button_class_init        (GailSpinButtonClass *klass);
-static void      gail_spin_button_init              (GailSpinButton *button);
-static void      gail_spin_button_real_initialize   (AtkObject      *obj,
-                                                     gpointer       data);
-static void      gail_spin_button_finalize          (GObject        *object);
-
-static void      atk_value_interface_init           (AtkValueIface  *iface);
-
-static void      gail_spin_button_real_notify_gtk   (GObject        *obj,
-                                                     GParamSpec     *pspec);
-
-static void      gail_spin_button_get_current_value (AtkValue       *obj,
-                                                     GValue         *value);
-static void      gail_spin_button_get_maximum_value (AtkValue       *obj,
-                                                     GValue         *value);
-static void      gail_spin_button_get_minimum_value (AtkValue       *obj,
-                                                     GValue         *value);
-static void      gail_spin_button_get_minimum_increment (AtkValue       *obj,
-                                                         GValue         *value);
-static gboolean  gail_spin_button_set_current_value (AtkValue       *obj,
-                                                     const GValue   *value);
-static void      gail_spin_button_value_changed     (GtkAdjustment  *adjustment,
-                                                     gpointer       data);
-        
-G_DEFINE_TYPE_WITH_CODE (GailSpinButton, gail_spin_button, GAIL_TYPE_ENTRY,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_VALUE, atk_value_interface_init))
-
-static void
-gail_spin_button_class_init (GailSpinButtonClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-  GailWidgetClass *widget_class;
-
-  widget_class = (GailWidgetClass*)klass;
-
-  widget_class->notify_gtk = gail_spin_button_real_notify_gtk;
-
-  class->initialize = gail_spin_button_real_initialize;
-
-  gobject_class->finalize = gail_spin_button_finalize;
-}
-
-static void
-gail_spin_button_init (GailSpinButton *button)
-{
-}
-
-static void
-gail_spin_button_real_initialize (AtkObject *obj,
-                                  gpointer  data)
-{
-  GtkAdjustment *adjustment;
-  GailSpinButton *spin_button = GAIL_SPIN_BUTTON (obj);
-  GtkSpinButton *gtk_spin_button;
-
-  ATK_OBJECT_CLASS (gail_spin_button_parent_class)->initialize (obj, data);
-
-  gtk_spin_button = GTK_SPIN_BUTTON (data); 
-  /*
-   * If a GtkAdjustment already exists for the spin_button, 
-   * create the GailAdjustment
-   */
-  adjustment = gtk_spin_button_get_adjustment (gtk_spin_button);
-  if (adjustment)
-    {
-      spin_button->adjustment = gail_adjustment_new (adjustment);
-      g_signal_connect (adjustment,
-                        "value-changed",
-                        G_CALLBACK (gail_spin_button_value_changed),
-                        obj);
-    }
-  else
-    spin_button->adjustment = NULL;
-
-  obj->role = ATK_ROLE_SPIN_BUTTON;
-
-}
-
-static void
-atk_value_interface_init (AtkValueIface *iface)
-{
-  iface->get_current_value = gail_spin_button_get_current_value;
-  iface->get_maximum_value = gail_spin_button_get_maximum_value;
-  iface->get_minimum_value = gail_spin_button_get_minimum_value;
-  iface->get_minimum_increment = gail_spin_button_get_minimum_increment;
-  iface->set_current_value = gail_spin_button_set_current_value;
-}
-
-static void
-gail_spin_button_get_current_value (AtkValue       *obj,
-                                    GValue         *value)
-{
-  GailSpinButton *spin_button;
-
-  g_return_if_fail (GAIL_IS_SPIN_BUTTON (obj));
-
-  spin_button = GAIL_SPIN_BUTTON (obj);
-  if (spin_button->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-
-  atk_value_get_current_value (ATK_VALUE (spin_button->adjustment), value);
-}
-
-static void      
-gail_spin_button_get_maximum_value (AtkValue       *obj,
-                                    GValue         *value)
-{
-  GailSpinButton *spin_button;
-
-  g_return_if_fail (GAIL_IS_SPIN_BUTTON (obj));
-
-  spin_button = GAIL_SPIN_BUTTON (obj);
-  if (spin_button->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-
-  atk_value_get_maximum_value (ATK_VALUE (spin_button->adjustment), value);
-}
-
-static void 
-gail_spin_button_get_minimum_value (AtkValue       *obj,
-                                    GValue         *value)
-{
- GailSpinButton *spin_button;
-
-  g_return_if_fail (GAIL_IS_SPIN_BUTTON (obj));
-
-  spin_button = GAIL_SPIN_BUTTON (obj);
-  if (spin_button->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-
-  atk_value_get_minimum_value (ATK_VALUE (spin_button->adjustment), value);
-}
-
-static void
-gail_spin_button_get_minimum_increment (AtkValue *obj, GValue *value)
-{
- GailSpinButton *spin_button;
-
-  g_return_if_fail (GAIL_IS_SPIN_BUTTON (obj));
-
-  spin_button = GAIL_SPIN_BUTTON (obj);
-  if (spin_button->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return;
-
-  atk_value_get_minimum_increment (ATK_VALUE (spin_button->adjustment), value);
-}
-
-static gboolean  
-gail_spin_button_set_current_value (AtkValue       *obj,
-                                    const GValue   *value)
-{
- GailSpinButton *spin_button;
-
-  g_return_val_if_fail (GAIL_IS_SPIN_BUTTON (obj), FALSE);
-
-  spin_button = GAIL_SPIN_BUTTON (obj);
-  if (spin_button->adjustment == NULL)
-    /*
-     * Adjustment has not been specified
-     */
-    return FALSE;
-
-  return atk_value_set_current_value (ATK_VALUE (spin_button->adjustment), value);
-}
-
-static void
-gail_spin_button_finalize (GObject            *object)
-{
-  GailSpinButton *spin_button = GAIL_SPIN_BUTTON (object);
-
-  if (spin_button->adjustment)
-    {
-      g_object_unref (spin_button->adjustment);
-      spin_button->adjustment = NULL;
-    }
-  G_OBJECT_CLASS (gail_spin_button_parent_class)->finalize (object);
-}
-
-
-static void
-gail_spin_button_real_notify_gtk (GObject    *obj,
-                                  GParamSpec *pspec)
-{
-  GtkWidget *widget = GTK_WIDGET (obj);
-  GailSpinButton *spin_button = GAIL_SPIN_BUTTON (gtk_widget_get_accessible (widget));
-
-  if (strcmp (pspec->name, "adjustment") == 0)
-    {
-      /*
-       * Get rid of the GailAdjustment for the GtkAdjustment
-       * which was associated with the spin_button.
-       */
-      GtkAdjustment* adjustment;
-      GtkSpinButton* gtk_spin_button;
-
-      if (spin_button->adjustment)
-        {
-          g_object_unref (spin_button->adjustment);
-          spin_button->adjustment = NULL;
-        }
-      /*
-       * Create the GailAdjustment when notify for "adjustment" property
-       * is received
-       */
-      gtk_spin_button = GTK_SPIN_BUTTON (widget);
-      adjustment = gtk_spin_button_get_adjustment (gtk_spin_button);
-      spin_button->adjustment = gail_adjustment_new (adjustment);
-      g_signal_connect (adjustment,
-                        "value-changed",
-                        G_CALLBACK (gail_spin_button_value_changed),
-                        spin_button);
-    }
-  else
-    GAIL_WIDGET_CLASS (gail_spin_button_parent_class)->notify_gtk (obj, pspec);
-}
-
-
-static void
-gail_spin_button_value_changed (GtkAdjustment    *adjustment,
-                                gpointer         data)
-{
-  GailSpinButton *spin_button;
-
-  gail_return_if_fail (adjustment != NULL);
-  gail_return_if_fail (data != NULL);
-
-  spin_button = GAIL_SPIN_BUTTON (data);
-
-  g_object_notify (G_OBJECT (spin_button), "accessible-value");
-}
-
diff --git a/modules/other/gail/gailspinbutton.h b/modules/other/gail/gailspinbutton.h
deleted file mode 100644 (file)
index fecda12..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_SPIN_BUTTON_H__
-#define __GAIL_SPIN_BUTTON_H__
-
-#include <gail/gailentry.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_SPIN_BUTTON                      (gail_spin_button_get_type ())
-#define GAIL_SPIN_BUTTON(obj)                      (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_SPIN_BUTTON, GailSpinButton))
-#define GAIL_SPIN_BUTTON_CLASS(klass)              (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_SPIN_BUTTON, GailSpinButtonClass))
-#define GAIL_IS_SPIN_BUTTON(obj)                   (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_SPIN_BUTTON))
-#define GAIL_IS_SPIN_BUTTON_CLASS(klass)           (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_SPIN_BUTTON))
-#define GAIL_SPIN_BUTTON_GET_CLASS(obj)            (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_SPIN_BUTTON, GailSpinButtonClass))
-
-typedef struct _GailSpinButton              GailSpinButton;
-typedef struct _GailSpinButtonClass         GailSpinButtonClass;
-
-struct _GailSpinButton
-{
-  GailEntry parent;
-
-  AtkObject *adjustment;
-};
-
-GType gail_spin_button_get_type (void);
-
-struct _GailSpinButtonClass
-{
-  GailEntryClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_SPIN_BUTTON_H__ */
diff --git a/modules/other/gail/gailstatusbar.c b/modules/other/gail/gailstatusbar.c
deleted file mode 100644 (file)
index c1dd235..0000000
+++ /dev/null
@@ -1,650 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#include "gailstatusbar.h"
-#include <libgail-util/gailmisc.h>
-
-static void         gail_statusbar_class_init          (GailStatusbarClass *klass);
-static void         gail_statusbar_init                (GailStatusbar      *bar);
-static const gchar* gail_statusbar_get_name   (AtkObject          *obj);
-static gint         gail_statusbar_get_n_children      (AtkObject          *obj);
-static AtkObject*   gail_statusbar_ref_child           (AtkObject          *obj,
-                                                        gint               i);
-static void         gail_statusbar_real_initialize     (AtkObject          *obj,
-                                                        gpointer           data);
-
-static gint         gail_statusbar_notify              (GObject            *obj,
-                                                        GParamSpec         *pspec,
-                                                        gpointer           user_data);
-static void         gail_statusbar_finalize            (GObject            *object);
-static void         gail_statusbar_init_textutil       (GailStatusbar      *statusbar,
-                                                        GtkWidget          *label);
-
-/* atktext.h */ 
-static void      atk_text_interface_init          (AtkTextIface        *iface);
-
-static gchar*    gail_statusbar_get_text          (AtkText           *text,
-                                                    gint             start_pos,
-                                                   gint              end_pos);
-static gunichar          gail_statusbar_get_character_at_offset
-                                                   (AtkText          *text,
-                                                   gint              offset);
-static gchar*     gail_statusbar_get_text_before_offset
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*     gail_statusbar_get_text_at_offset(AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gchar*     gail_statusbar_get_text_after_offset
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   AtkTextBoundary   boundary_type,
-                                                   gint              *start_offset,
-                                                   gint              *end_offset);
-static gint      gail_statusbar_get_character_count (AtkText         *text);
-static void       gail_statusbar_get_character_extents
-                                                   (AtkText          *text,
-                                                   gint              offset,
-                                                   gint              *x,
-                                                   gint              *y,
-                                                   gint              *width,
-                                                   gint              *height,
-                                                   AtkCoordType      coords);
-static gint      gail_statusbar_get_offset_at_point(AtkText           *text,
-                                                    gint              x,
-                                                    gint              y,
-                                                   AtkCoordType      coords);
-static AtkAttributeSet* gail_statusbar_get_run_attributes 
-                                                   (AtkText           *text,
-                                                   gint              offset,
-                                                    gint             *start_offset,
-                                                   gint              *end_offset);
-static AtkAttributeSet* gail_statusbar_get_default_attributes
-                                                   (AtkText           *text);
-static GtkWidget* get_label_from_statusbar         (GtkWidget         *statusbar);
-
-G_DEFINE_TYPE_WITH_CODE (GailStatusbar, gail_statusbar, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init))
-
-static void
-gail_statusbar_class_init (GailStatusbarClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-  GailContainerClass *container_class;
-
-  container_class = (GailContainerClass*)klass;
-
-  gobject_class->finalize = gail_statusbar_finalize;
-
-  class->get_name = gail_statusbar_get_name;
-  class->get_n_children = gail_statusbar_get_n_children;
-  class->ref_child = gail_statusbar_ref_child;
-  class->initialize = gail_statusbar_real_initialize;
-  /*
-   * As we report the statusbar as having no children we are not interested
-   * in add and remove signals
-   */
-  container_class->add_gtk = NULL;
-  container_class->remove_gtk = NULL;
-}
-
-static void
-gail_statusbar_init (GailStatusbar *bar)
-{
-}
-
-static const gchar*
-gail_statusbar_get_name (AtkObject *obj)
-{
-  const gchar* name;
-
-  g_return_val_if_fail (GAIL_IS_STATUSBAR (obj), NULL);
-
-  name = ATK_OBJECT_CLASS (gail_statusbar_parent_class)->get_name (obj);
-  if (name != NULL)
-    return name;
-  else
-    {
-      /*
-       * Get the text on the label
-       */
-      GtkWidget *widget;
-      GtkWidget *label;
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-      if (widget == NULL)
-        /*
-         * State is defunct
-         */
-        return NULL;
-
-     g_return_val_if_fail (GTK_IS_STATUSBAR (widget), NULL);
-     label = get_label_from_statusbar (widget);
-     if (GTK_IS_LABEL (label))
-       return gtk_label_get_label (GTK_LABEL (label));
-     else 
-       return NULL;
-   }
-}
-
-static gint
-gail_statusbar_get_n_children (AtkObject *obj)
-{
-  GtkWidget *widget;
-  GList *children;
-  gint count = 0;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    return 0;
-
-  children = gtk_container_get_children (GTK_CONTAINER (widget));
-  if (children != NULL)
-    {
-      count = g_list_length (children);
-      g_list_free (children);
-    }
-
-  return count;
-}
-
-static AtkObject*
-gail_statusbar_ref_child (AtkObject *obj,
-                          gint      i)
-{
-  GList *children, *tmp_list;
-  AtkObject  *accessible;
-  GtkWidget *widget;
-
-  g_return_val_if_fail ((i >= 0), NULL);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    return NULL;
-
-  children = gtk_container_get_children (GTK_CONTAINER (widget));
-  if (children == NULL)
-    return NULL;
-
-  tmp_list = g_list_nth (children, i);
-  if (!tmp_list)
-    {
-      g_list_free (children);
-      return NULL;
-    }
-  accessible = gtk_widget_get_accessible (GTK_WIDGET (tmp_list->data));
-
-  g_list_free (children);
-  g_object_ref (accessible);
-  return accessible;
-}
-
-static void
-gail_statusbar_real_initialize (AtkObject *obj,
-                                gpointer  data)
-{
-  GailStatusbar *statusbar = GAIL_STATUSBAR (obj);
-  GtkWidget *label;
-
-  ATK_OBJECT_CLASS (gail_statusbar_parent_class)->initialize (obj, data);
-
-  /*
-   * We get notified of changes to the label
-   */
-  label = get_label_from_statusbar (GTK_WIDGET (data));
-  if (GTK_IS_LABEL (label))
-    {
-      gail_statusbar_init_textutil (statusbar, label);
-    }
-
-  obj->role = ATK_ROLE_STATUSBAR;
-
-}
-
-static gint
-gail_statusbar_notify (GObject    *obj, 
-                       GParamSpec *pspec,
-                       gpointer   user_data)
-{
-  AtkObject *atk_obj = ATK_OBJECT (user_data);
-  GtkLabel *label;
-  GailStatusbar *statusbar;
-
-  if (strcmp (pspec->name, "label") == 0)
-    {
-      const gchar* label_text;
-
-      label = GTK_LABEL (obj);
-
-      label_text = gtk_label_get_text (label);
-
-      statusbar = GAIL_STATUSBAR (atk_obj);
-      gail_text_util_text_setup (statusbar->textutil, label_text);
-
-      if (atk_obj->name == NULL)
-      {
-        /*
-         * The label has changed so notify a change in accessible-name
-         */
-        g_object_notify (G_OBJECT (atk_obj), "accessible-name");
-      }
-      /*
-       * The label is the only property which can be changed
-       */
-      g_signal_emit_by_name (atk_obj, "visible_data_changed");
-    }
-  return 1;
-}
-
-static void
-gail_statusbar_init_textutil (GailStatusbar *statusbar,
-                              GtkWidget     *label)
-{
-  const gchar *label_text;
-
-  statusbar->textutil = gail_text_util_new ();
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  gail_text_util_text_setup (statusbar->textutil, label_text);
-  g_signal_connect (label,
-                    "notify",
-                    (GCallback) gail_statusbar_notify,
-                    statusbar);     
-}
-
-static void
-gail_statusbar_finalize (GObject *object)
-{
-  GailStatusbar *statusbar = GAIL_STATUSBAR (object);
-
-  if (statusbar->textutil)
-    {
-      g_object_unref (statusbar->textutil);
-    }
-  G_OBJECT_CLASS (gail_statusbar_parent_class)->finalize (object);
-}
-
-/* atktext.h */
-
-static void
-atk_text_interface_init (AtkTextIface *iface)
-{
-  iface->get_text = gail_statusbar_get_text;
-  iface->get_character_at_offset = gail_statusbar_get_character_at_offset;
-  iface->get_text_before_offset = gail_statusbar_get_text_before_offset;
-  iface->get_text_at_offset = gail_statusbar_get_text_at_offset;
-  iface->get_text_after_offset = gail_statusbar_get_text_after_offset;
-  iface->get_character_count = gail_statusbar_get_character_count;
-  iface->get_character_extents = gail_statusbar_get_character_extents;
-  iface->get_offset_at_point = gail_statusbar_get_offset_at_point;
-  iface->get_run_attributes = gail_statusbar_get_run_attributes;
-  iface->get_default_attributes = gail_statusbar_get_default_attributes;
-}
-
-static gchar*
-gail_statusbar_get_text (AtkText *text,
-                         gint    start_pos,
-                         gint    end_pos)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  GailStatusbar *statusbar;
-  const gchar *label_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = get_label_from_statusbar (widget);
-
-  if (!GTK_IS_LABEL (label))
-    return NULL;
-
-  statusbar = GAIL_STATUSBAR (text);
-  if (!statusbar->textutil) 
-    gail_statusbar_init_textutil (statusbar, label);
-
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-
-  if (label_text == NULL)
-    return NULL;
-  else
-  {
-    return gail_text_util_get_substring (statusbar->textutil, 
-                                         start_pos, end_pos);
-  }
-}
-
-static gchar*
-gail_statusbar_get_text_before_offset (AtkText         *text,
-                                      gint            offset,
-                                      AtkTextBoundary boundary_type,
-                                      gint            *start_offset,
-                                      gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  GailStatusbar *statusbar;
-  
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-  
-  /* Get label */
-  label = get_label_from_statusbar (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  statusbar = GAIL_STATUSBAR (text);
-  if (!statusbar->textutil)
-    gail_statusbar_init_textutil (statusbar, label);
-
-  return gail_text_util_get_text (statusbar->textutil,
-                           gtk_label_get_layout (GTK_LABEL (label)), GAIL_BEFORE_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset); 
-}
-
-static gchar*
-gail_statusbar_get_text_at_offset (AtkText         *text,
-                                  gint            offset,
-                                  AtkTextBoundary boundary_type,
-                                  gint            *start_offset,
-                                  gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  GailStatusbar *statusbar;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-  
-  /* Get label */
-  label = get_label_from_statusbar (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  statusbar = GAIL_STATUSBAR (text);
-  if (!statusbar->textutil)
-    gail_statusbar_init_textutil (statusbar, label);
-
-  return gail_text_util_get_text (statusbar->textutil,
-                              gtk_label_get_layout (GTK_LABEL (label)), GAIL_AT_OFFSET, 
-                              boundary_type, offset, start_offset, end_offset);
-}
-
-static gchar*
-gail_statusbar_get_text_after_offset (AtkText         *text,
-                                     gint            offset,
-                                     AtkTextBoundary boundary_type,
-                                     gint            *start_offset,
-                                     gint            *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  GailStatusbar *statusbar;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  
-  if (widget == NULL)
-  {
-    /* State is defunct */
-    return NULL;
-  }
-  
-  /* Get label */
-  label = get_label_from_statusbar (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  statusbar = GAIL_STATUSBAR (text);
-  if (!statusbar->textutil)
-    gail_statusbar_init_textutil (statusbar, label);
-
-  return gail_text_util_get_text (statusbar->textutil,
-                           gtk_label_get_layout (GTK_LABEL (label)), GAIL_AFTER_OFFSET, 
-                           boundary_type, offset, start_offset, end_offset);
-}
-
-static gint
-gail_statusbar_get_character_count (AtkText *text)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  label = get_label_from_statusbar (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return 0;
-
-  return g_utf8_strlen (gtk_label_get_text (GTK_LABEL (label)), -1);
-}
-
-static void
-gail_statusbar_get_character_extents (AtkText      *text,
-                                     gint         offset,
-                                     gint         *x,
-                                     gint         *y,
-                                      gint        *width,
-                                      gint        *height,
-                                     AtkCoordType coords)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  PangoRectangle char_rect;
-  gint index, x_layout, y_layout;
-  const gchar *label_text;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  label = get_label_from_statusbar (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return;
-  
-  gtk_label_get_layout_offsets (GTK_LABEL (label), &x_layout, &y_layout);
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  index = g_utf8_offset_to_pointer (label_text, offset) - label_text;
-  pango_layout_index_to_pos (gtk_label_get_layout (GTK_LABEL (label)), index, &char_rect);
-  
-  gail_misc_get_extents_from_pango_rectangle (label, &char_rect, 
-                    x_layout, y_layout, x, y, width, height, coords);
-} 
-
-static gint 
-gail_statusbar_get_offset_at_point (AtkText      *text,
-                                    gint         x,
-                                    gint         y,
-                                   AtkCoordType coords)
-{ 
-  GtkWidget *widget;
-  GtkWidget *label;
-  gint index, x_layout, y_layout;
-  const gchar *label_text;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-
-  label = get_label_from_statusbar (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return -1;
-  
-  gtk_label_get_layout_offsets (GTK_LABEL (label), &x_layout, &y_layout);
-  
-  index = gail_misc_get_index_at_point_in_layout (label, 
-                                              gtk_label_get_layout (GTK_LABEL (label)), 
-                                              x_layout, y_layout, x, y, coords);
-  label_text = gtk_label_get_text (GTK_LABEL (label));
-  if (index == -1)
-    {
-      if (coords == ATK_XY_WINDOW || coords == ATK_XY_SCREEN)
-        return g_utf8_strlen (label_text, -1);
-
-      return index;  
-    }
-  else
-    return g_utf8_pointer_to_offset (label_text, label_text + index);  
-}
-
-static AtkAttributeSet*
-gail_statusbar_get_run_attributes (AtkText *text,
-                                   gint    offset,
-                                   gint    *start_offset,
-                                  gint    *end_offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  AtkAttributeSet *at_set = NULL;
-  GtkJustification justify;
-  GtkTextDirection dir;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = get_label_from_statusbar (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-  
-  /* Get values set for entire label, if any */
-  justify = gtk_label_get_justify (GTK_LABEL (label));
-  if (justify != GTK_JUSTIFY_CENTER)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_JUSTIFICATION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_JUSTIFICATION, justify)));
-    }
-  dir = gtk_widget_get_direction (label);
-  if (dir == GTK_TEXT_DIR_RTL)
-    {
-      at_set = gail_misc_add_attribute (at_set, 
-                                        ATK_TEXT_ATTR_DIRECTION,
-     g_strdup (atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION, dir)));
-    }
-
-  at_set = gail_misc_layout_get_run_attributes (at_set,
-                                                gtk_label_get_layout (GTK_LABEL (label)),
-                                                (gchar *) gtk_label_get_text (GTK_LABEL (label)),
-                                                offset,
-                                                start_offset,
-                                                end_offset);
-  return at_set;
-}
-
-static AtkAttributeSet*
-gail_statusbar_get_default_attributes (AtkText *text)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  AtkAttributeSet *at_set = NULL;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  label = get_label_from_statusbar (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return NULL;
-
-  at_set = gail_misc_get_default_attributes (at_set,
-                                             gtk_label_get_layout (GTK_LABEL (label)),
-                                             widget);
-  return at_set;
-}
-
-static gunichar 
-gail_statusbar_get_character_at_offset (AtkText *text,
-                                        gint   offset)
-{
-  GtkWidget *widget;
-  GtkWidget *label;
-  const gchar *string;
-  gchar *index;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return '\0';
-
-  label = get_label_from_statusbar (widget);
-
-  if (!GTK_IS_LABEL(label))
-    return '\0';
-  string = gtk_label_get_text (GTK_LABEL (label));
-  if (offset >= g_utf8_strlen (string, -1))
-    return '\0';
-  index = g_utf8_offset_to_pointer (string, offset);
-
-  return g_utf8_get_char (index);
-}
-
-static GtkWidget*
-get_label_from_statusbar (GtkWidget *statusbar)
-{
-  GtkWidget *message_area;
-  GList *children, *l;
-  GtkWidget *child;
-
-  message_area = gtk_statusbar_get_message_area (GTK_STATUSBAR (statusbar));
-
-  children = gtk_container_get_children (GTK_CONTAINER (message_area));
-  for (l = children; l; l = l->next)
-    {
-      child = l->data;
-      if (GTK_IS_LABEL (child))
-        break;
-      child = NULL;
-    }
-
-  g_list_free (children);
-
-  return child;
-}
diff --git a/modules/other/gail/gailstatusbar.h b/modules/other/gail/gailstatusbar.h
deleted file mode 100644 (file)
index c8f2d9c..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_STATUSBAR_H__
-#define __GAIL_STATUSBAR_H__
-
-#include <gail/gailcontainer.h>
-#include <libgail-util/gailtextutil.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_STATUSBAR                  (gail_statusbar_get_type ())
-#define GAIL_STATUSBAR(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_STATUSBAR, GailStatusbar))
-#define GAIL_STATUSBAR_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_STATUSBAR, GailStatusbarClass))
-#define GAIL_IS_STATUSBAR(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_STATUSBAR))
-#define GAIL_IS_STATUSBAR_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_STATUSBAR))
-#define GAIL_STATUSBAR_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_STATUSBAR, GailStatusbarClass))
-
-typedef struct _GailStatusbar              GailStatusbar;
-typedef struct _GailStatusbarClass         GailStatusbarClass;
-
-struct _GailStatusbar
-{
-  GailContainer parent;
-
-  GailTextUtil *textutil;
-};
-
-GType gail_statusbar_get_type (void);
-
-struct _GailStatusbarClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_STATUSBAR_H__ */
diff --git a/modules/other/gail/gailsubmenuitem.c b/modules/other/gail/gailsubmenuitem.c
deleted file mode 100644 (file)
index a571f98..0000000
+++ /dev/null
@@ -1,362 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <gtk/gtk.h>
-#include "gailsubmenuitem.h"
-
-static void         gail_sub_menu_item_class_init       (GailSubMenuItemClass *klass);
-static void         gail_sub_menu_item_init             (GailSubMenuItem *item);
-static void         gail_sub_menu_item_real_initialize  (AtkObject      *obj,
-                                                         gpointer       data);
-
-static void         atk_selection_interface_init        (AtkSelectionIface  *iface);
-static gboolean     gail_sub_menu_item_add_selection    (AtkSelection   *selection,
-                                                         gint           i);
-static gboolean     gail_sub_menu_item_clear_selection  (AtkSelection   *selection);
-static AtkObject*   gail_sub_menu_item_ref_selection    (AtkSelection   *selection,
-                                                         gint           i);
-static gint         gail_sub_menu_item_get_selection_count
-                                                        (AtkSelection   *selection);
-static gboolean     gail_sub_menu_item_is_child_selected
-                                                        (AtkSelection   *selection,
-                                                         gint           i);
-static gboolean     gail_sub_menu_item_remove_selection (AtkSelection   *selection,
-                                                         gint           i);
-static gint         menu_item_add_gtk                   (GtkContainer   *container,
-                                                         GtkWidget      *widget);
-static gint         menu_item_remove_gtk                (GtkContainer   *container,
-                                                         GtkWidget      *widget);
-
-G_DEFINE_TYPE_WITH_CODE (GailSubMenuItem, gail_sub_menu_item, GAIL_TYPE_MENU_ITEM,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init))
-
-static void
-gail_sub_menu_item_class_init (GailSubMenuItemClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-
-  class->initialize = gail_sub_menu_item_real_initialize;
-}
-
-static void
-gail_sub_menu_item_init (GailSubMenuItem *item)
-{
-}
-
-static void
-gail_sub_menu_item_real_initialize (AtkObject *obj,
-                                   gpointer   data)
-{
-  GtkWidget *submenu;
-
-  ATK_OBJECT_CLASS (gail_sub_menu_item_parent_class)->initialize (obj, data);
-
-  submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (data));
-  g_return_if_fail (submenu);
-
-  g_signal_connect (submenu,
-                    "add",
-                    G_CALLBACK (menu_item_add_gtk),
-                    NULL);
-  g_signal_connect (submenu,
-                    "remove",
-                    G_CALLBACK (menu_item_remove_gtk),
-                    NULL);
-
-  obj->role = ATK_ROLE_MENU;
-}
-
-AtkObject*
-gail_sub_menu_item_new (GtkWidget *widget)
-{
-  GObject *object;
-  AtkObject *accessible;
-
-  g_return_val_if_fail (GTK_IS_MENU_ITEM (widget), NULL);
-
-  object = g_object_new (GAIL_TYPE_SUB_MENU_ITEM, NULL);
-
-  accessible = ATK_OBJECT (object);
-  atk_object_initialize (accessible, widget);
-
-  return accessible;
-}
-
-static void
-atk_selection_interface_init (AtkSelectionIface *iface)
-{
-  iface->add_selection = gail_sub_menu_item_add_selection;
-  iface->clear_selection = gail_sub_menu_item_clear_selection;
-  iface->ref_selection = gail_sub_menu_item_ref_selection;
-  iface->get_selection_count = gail_sub_menu_item_get_selection_count;
-  iface->is_child_selected = gail_sub_menu_item_is_child_selected;
-  iface->remove_selection = gail_sub_menu_item_remove_selection;
-  /*
-   * select_all_selection does not make sense for a submenu of a menu item
-   * so no implementation is provided.
-   */
-}
-
-static gboolean
-gail_sub_menu_item_add_selection (AtkSelection *selection,
-                                  gint          i)
-{
-  GtkMenuShell *shell;
-  GList *kids;
-  guint length;
-  GtkWidget *widget;
-  GtkWidget *submenu;
-  GtkWidget *child;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
-  g_return_val_if_fail (GTK_IS_MENU_SHELL (submenu), FALSE);
-  shell = GTK_MENU_SHELL (submenu);
-  kids = gtk_container_get_children (GTK_CONTAINER (shell));
-  length = g_list_length (kids);
-  if (i < 0 || i > length)
-    {
-      g_list_free (kids);
-      return FALSE;
-    }
-
-  child = g_list_nth_data (kids, i);
-  g_list_free (kids);
-  g_return_val_if_fail (GTK_IS_MENU_ITEM(child), FALSE);
-  gtk_menu_shell_select_item (shell, GTK_WIDGET (child));
-  return TRUE;
-}
-
-static gboolean
-gail_sub_menu_item_clear_selection (AtkSelection   *selection)
-{
-  GtkMenuShell *shell;
-  GtkWidget *widget;
-  GtkWidget *submenu;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
-  g_return_val_if_fail (GTK_IS_MENU_SHELL (submenu), FALSE);
-  shell = GTK_MENU_SHELL (submenu);
-
-  gtk_menu_shell_deselect (shell);
-  return TRUE;
-}
-
-static AtkObject*
-gail_sub_menu_item_ref_selection (AtkSelection   *selection,
-                                  gint           i)
-{
-  GtkMenuShell *shell;
-  AtkObject *obj;
-  GtkWidget *widget;
-  GtkWidget *submenu;
-  GtkWidget *item;
-
-  if (i != 0)
-    return NULL;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
-  g_return_val_if_fail (GTK_IS_MENU_SHELL (submenu), NULL);
-  shell = GTK_MENU_SHELL (submenu);
-
-  item = gtk_menu_shell_get_selected_item (shell);
-  if (item != NULL)
-    {
-      obj = gtk_widget_get_accessible (item);
-      g_object_ref (obj);
-      return obj;
-    }
-  else
-    {
-      return NULL;
-    }
-}
-
-static gint
-gail_sub_menu_item_get_selection_count (AtkSelection   *selection)
-{
-  GtkMenuShell *shell;
-  GtkWidget *widget;
-  GtkWidget *submenu;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
-  g_return_val_if_fail (GTK_IS_MENU_SHELL (submenu), FALSE);
-  shell = GTK_MENU_SHELL (submenu);
-
-  /*
-   * Identifies the currently selected menu item
-   */
-  if (gtk_menu_shell_get_selected_item (shell) == NULL)
-    return 0;
-  else
-    return 1;
-}
-
-static gboolean
-gail_sub_menu_item_is_child_selected (AtkSelection   *selection,
-                                       gint           i)
-{
-  GtkMenuShell *shell;
-  gint j;
-  GtkWidget *widget;
-  GtkWidget *submenu;
-  GtkWidget *item;
-  GList *kids;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
-  g_return_val_if_fail (GTK_IS_MENU_SHELL (submenu), FALSE);
-  shell = GTK_MENU_SHELL (submenu);
-
-  item = gtk_menu_shell_get_selected_item (shell);
-  if (item == NULL)
-    return FALSE;
-
-  kids = gtk_container_get_children (GTK_CONTAINER (shell));
-  j = g_list_index (kids, item);
-  g_list_free (kids);
-
-  return (j==i);
-}
-
-static gboolean
-gail_sub_menu_item_remove_selection (AtkSelection   *selection,
-                                  gint           i)
-{
-  GtkMenuShell *shell;
-  GtkWidget *widget;
-  GtkWidget *submenu;
-  GtkWidget *item;
-
-  if (i != 0)
-    return FALSE;
-
-  widget =  gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  submenu = gtk_menu_item_get_submenu (GTK_MENU_ITEM (widget));
-  g_return_val_if_fail (GTK_IS_MENU_SHELL (submenu), FALSE);
-  shell = GTK_MENU_SHELL (submenu);
-
-  item = gtk_menu_shell_get_selected_item (shell);
-  if (item && gtk_menu_item_get_submenu (GTK_MENU_ITEM (item)))
-    {
-    /*
-     * Menu item contains a menu and it is the selected menu item
-     * so deselect it.
-     */
-      gtk_menu_shell_deselect (shell);
-    }
-  return TRUE;
-}
-
-static gint
-menu_item_add_gtk (GtkContainer *container,
-                   GtkWidget   *widget)
-{
-  GtkWidget *parent_widget;
-  AtkObject *atk_parent;
-  AtkObject *atk_child;
-  GailContainer *gail_container;
-  gint index;
-
-  g_return_val_if_fail (GTK_IS_MENU (container), 1);
-
-  parent_widget = gtk_menu_get_attach_widget (GTK_MENU (container));
-  if (GTK_IS_MENU_ITEM (parent_widget))
-    {
-      atk_parent = gtk_widget_get_accessible (parent_widget);
-      atk_child = gtk_widget_get_accessible (widget);
-
-      gail_container = GAIL_CONTAINER (atk_parent);
-      g_object_notify (G_OBJECT (atk_child), "accessible_parent");
-
-      g_list_free (gail_container->children);
-      gail_container->children = gtk_container_get_children (container);
-      index = g_list_index (gail_container->children, widget);
-      g_signal_emit_by_name (atk_parent, "children_changed::add",
-                             index, atk_child, NULL);
-    }
-  return 1;
-}
-
-static gint
-menu_item_remove_gtk (GtkContainer *container,
-                      GtkWidget           *widget)
-{
-  GtkWidget *parent_widget;
-  AtkObject *atk_parent;
-  AtkObject *atk_child;
-  GailContainer *gail_container;
-  AtkPropertyValues values = { NULL };
-  gint index;
-  gint list_length;
-
-  g_return_val_if_fail (GTK_IS_MENU (container), 1);
-
-  parent_widget = gtk_menu_get_attach_widget (GTK_MENU (container));
-  if (GTK_IS_MENU_ITEM (parent_widget))
-    {
-      atk_parent = gtk_widget_get_accessible (parent_widget);
-      atk_child = gtk_widget_get_accessible (widget);
-
-      gail_container = GAIL_CONTAINER (atk_parent);
-      g_value_init (&values.old_value, G_TYPE_POINTER);
-      g_value_set_pointer (&values.old_value, atk_parent);
-      values.property_name = "accessible-parent";
-      g_signal_emit_by_name (atk_child,
-                             "property_change::accessible-parent", &values, NULL);
-
-      index = g_list_index (gail_container->children, widget);
-      list_length = g_list_length (gail_container->children);
-      g_list_free (gail_container->children);
-      gail_container->children = gtk_container_get_children (container);
-      if (index >= 0 && index <= list_length)
-        g_signal_emit_by_name (atk_parent, "children_changed::remove",
-                               index, atk_child, NULL);
-    }
-  return 1;
-}
diff --git a/modules/other/gail/gailsubmenuitem.h b/modules/other/gail/gailsubmenuitem.h
deleted file mode 100644 (file)
index 64cd66c..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2002 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_SUB_MENU_ITEM_H__
-#define __GAIL_SUB_MENU_ITEM_H__
-
-#include <gail/gailmenuitem.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_SUB_MENU_ITEM                     (gail_sub_menu_item_get_type ())
-#define GAIL_SUB_MENU_ITEM(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_SUB_MENU_ITEM, GailSubMenuItem))
-#define GAIL_SUB_MENU_ITEM_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_SUB_MENU_ITEM, GailSubMenuItemClass))
-#define GAIL_IS_SUB_MENU_ITEM(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_SUB_MENU_ITEM))
-#define GAIL_IS_SUB_MENU_ITEM_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_SUB_MENU_ITEM))
-#define GAIL_SUB_MENU_ITEM_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_SUB_MENU_ITEM, GailSubMenuItemClass))
-
-typedef struct _GailSubMenuItem                   GailSubMenuItem;
-typedef struct _GailSubMenuItemClass              GailSubMenuItemClass;
-
-struct _GailSubMenuItem
-{
-  GailMenuItem parent;
-
-};
-
-GType gail_sub_menu_item_get_type (void);
-
-struct _GailSubMenuItemClass
-{
-  GailMenuItemClass parent_class;
-};
-
-AtkObject* gail_sub_menu_item_new (GtkWidget *widget);
-
-G_END_DECLS
-
-#endif /* __GAIL_SUB_MENU_ITEM_H__ */
diff --git a/modules/other/gail/gailtextcell.c b/modules/other/gail/gailtextcell.c
deleted file mode 100644 (file)
index a4e5528..0000000
+++ /dev/null
@@ -1,742 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-#include <string.h>
-#include <gtk/gtk.h>
-#include "gailtextcell.h"
-#include "gailcontainercell.h"
-#include "gailcellparent.h"
-#include <libgail-util/gailmisc.h>
-#include "gail-private-macros.h"
-
-static void      gail_text_cell_class_init             (GailTextCellClass *klass);
-static void      gail_text_cell_init                   (GailTextCell   *text_cell);
-static void      gail_text_cell_finalize               (GObject        *object);
-
-static const gchar* gail_text_cell_get_name    (AtkObject      *atk_obj);
-
-static void      atk_text_interface_init               (AtkTextIface   *iface);
-
-/* atktext.h */
-
-static gchar*    gail_text_cell_get_text               (AtkText        *text,
-                                                       gint            start_pos,
-                                                       gint            end_pos);
-static gunichar gail_text_cell_get_character_at_offset (AtkText        *text,
-                                                        gint           offset);
-static gchar*  gail_text_cell_get_text_before_offset   (AtkText        *text,
-                                                        gint           offset,
-                                                        AtkTextBoundary boundary_type,
-                                                        gint           *start_offset,
-                                                        gint           *end_offset);
-static gchar*  gail_text_cell_get_text_at_offset       (AtkText        *text,
-                                                        gint           offset,
-                                                        AtkTextBoundary boundary_type,
-                                                        gint           *start_offset,
-                                                        gint           *end_offset);
-static gchar*  gail_text_cell_get_text_after_offset    (AtkText        *text,
-                                                        gint           offset,
-                                                        AtkTextBoundary boundary_type,
-                                                        gint           *start_offset,
-                                                        gint           *end_offset);
-static gint      gail_text_cell_get_character_count    (AtkText        *text);
-static gint      gail_text_cell_get_caret_offset       (AtkText        *text);
-static gboolean  gail_text_cell_set_caret_offset       (AtkText        *text,
-                                                        gint           offset);
-static void      gail_text_cell_get_character_extents  (AtkText        *text,
-                                                        gint           offset,
-                                                        gint           *x,
-                                                        gint           *y,
-                                                        gint           *width,
-                                                        gint           *height,
-                                                        AtkCoordType   coords);
-static gint      gail_text_cell_get_offset_at_point    (AtkText        *text,
-                                                        gint           x,
-                                                        gint           y,
-                                                        AtkCoordType   coords);
-static AtkAttributeSet* gail_text_cell_get_run_attributes 
-                                                        (AtkText       *text,
-                                                        gint           offset,
-                                                        gint           *start_offset,      
-                                                        gint           *end_offset); 
-static AtkAttributeSet* gail_text_cell_get_default_attributes 
-                                                        (AtkText        *text);
-
-static PangoLayout*     create_pango_layout             (GtkCellRendererText *gtk_renderer,
-                                                         GtkWidget           *widget);
-static void             add_attr                        (PangoAttrList  *attr_list,
-                                                         PangoAttribute *attr);
-
-/* Misc */
-
-static gboolean gail_text_cell_update_cache            (GailRendererCell *cell,
-                                                        gboolean       emit_change_signal);
-
-gchar *gail_text_cell_property_list[] = {
-  /* Set font_desc first since it resets other values if it is NULL */
-  "font_desc",
-
-  "attributes",
-  "background-gdk",
-  "editable",
-  "family",
-  "foreground-gdk",
-  "rise",
-  "scale",
-  "size",
-  "size-points",
-  "stretch",
-  "strikethrough",
-  "style",
-  "text",
-  "underline",
-  "variant",
-  "weight",
-
-  /* Also need the sets */
-  "background-set",
-  "editable-set",
-  "family-set",
-  "foreground-set",
-  "rise-set",
-  "scale-set",
-  "size-set",
-  "stretch-set",
-  "strikethrough-set",
-  "style-set",
-  "underline-set",
-  "variant-set",
-  "weight-set",
-  NULL
-};
-
-G_DEFINE_TYPE_WITH_CODE (GailTextCell, gail_text_cell, GAIL_TYPE_RENDERER_CELL,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init))
-
-static void 
-gail_text_cell_class_init (GailTextCellClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass *atk_object_class = ATK_OBJECT_CLASS (klass);
-  GailRendererCellClass *renderer_cell_class = GAIL_RENDERER_CELL_CLASS (klass);
-
-  renderer_cell_class->update_cache = gail_text_cell_update_cache;
-  renderer_cell_class->property_list = gail_text_cell_property_list;
-
-  atk_object_class->get_name = gail_text_cell_get_name;
-
-  gobject_class->finalize = gail_text_cell_finalize;
-}
-
-/* atktext.h */
-
-static void
-gail_text_cell_init (GailTextCell *text_cell)
-{
-  text_cell->cell_text = NULL;
-  text_cell->caret_pos = 0;
-  text_cell->cell_length = 0;
-  text_cell->textutil = gail_text_util_new ();
-  atk_state_set_add_state (GAIL_CELL (text_cell)->state_set,
-                           ATK_STATE_SINGLE_LINE);
-}
-
-AtkObject* 
-gail_text_cell_new (void)
-{
-  GObject *object;
-  AtkObject *atk_object;
-  GailRendererCell *cell;
-
-  object = g_object_new (GAIL_TYPE_TEXT_CELL, NULL);
-
-  g_return_val_if_fail (object != NULL, NULL);
-
-  atk_object = ATK_OBJECT (object);
-  atk_object->role = ATK_ROLE_TABLE_CELL;
-
-  cell = GAIL_RENDERER_CELL(object);
-
-  cell->renderer = gtk_cell_renderer_text_new ();
-  g_object_ref_sink (cell->renderer);
-  return atk_object;
-}
-
-static void
-gail_text_cell_finalize (GObject            *object)
-{
-  GailTextCell *text_cell = GAIL_TEXT_CELL (object);
-
-  g_object_unref (text_cell->textutil);
-  g_free (text_cell->cell_text);
-
-  G_OBJECT_CLASS (gail_text_cell_parent_class)->finalize (object);
-}
-
-static const gchar*
-gail_text_cell_get_name (AtkObject *atk_obj)
-{
-  if (atk_obj->name)
-    return atk_obj->name;
-  else
-    {
-      GailTextCell *text_cell = GAIL_TEXT_CELL (atk_obj);
-
-      return text_cell->cell_text;
-    }
-}
-
-static gboolean
-gail_text_cell_update_cache (GailRendererCell *cell,
-                             gboolean         emit_change_signal)
-{
-  GailTextCell *text_cell = GAIL_TEXT_CELL (cell);
-  AtkObject *obj = ATK_OBJECT (cell);
-  gboolean rv = FALSE;
-  gint temp_length;
-  gchar *new_cache;
-
-  g_object_get (G_OBJECT (cell->renderer), "text", &new_cache, NULL);
-
-  if (text_cell->cell_text)
-    {
-     /*
-      * If the new value is NULL and the old value isn't NULL, then the
-      * value has changed.
-      */
-      if (new_cache == NULL ||
-          strcmp (text_cell->cell_text, new_cache))
-        {
-          g_free (text_cell->cell_text);
-          temp_length = text_cell->cell_length;
-          text_cell->cell_text = NULL;
-          text_cell->cell_length = 0;
-          if (emit_change_signal)
-            {
-              g_signal_emit_by_name (cell, "text_changed::delete", 0, temp_length);
-              if (obj->name == NULL)
-                g_object_notify (G_OBJECT (obj), "accessible-name");
-            }
-          if (new_cache)
-            rv = TRUE;
-        }
-    }
-  else
-    rv = TRUE;
-
-  if (rv)
-    {
-      if (new_cache == NULL)
-        {
-          text_cell->cell_text = g_strdup ("");
-          text_cell->cell_length = 0;
-        }
-      else
-        {
-          text_cell->cell_text = g_strdup (new_cache);
-          text_cell->cell_length = g_utf8_strlen (new_cache, -1);
-        }
-    }
-
-  g_free (new_cache);
-  gail_text_util_text_setup (text_cell->textutil, text_cell->cell_text);
-  
-  if (rv)
-    {
-      if (emit_change_signal)
-        {
-          g_signal_emit_by_name (cell, "text_changed::insert",
-                                0, text_cell->cell_length);
-
-          if (obj->name == NULL)
-            g_object_notify (G_OBJECT (obj), "accessible-name");
-        }
-    }
-  return rv;
-}
-
-static void
-atk_text_interface_init (AtkTextIface *iface)
-{
-  iface->get_text = gail_text_cell_get_text;
-  iface->get_character_at_offset = gail_text_cell_get_character_at_offset;
-  iface->get_text_before_offset = gail_text_cell_get_text_before_offset;
-  iface->get_text_at_offset = gail_text_cell_get_text_at_offset;
-  iface->get_text_after_offset = gail_text_cell_get_text_after_offset;
-  iface->get_character_count = gail_text_cell_get_character_count;
-  iface->get_caret_offset = gail_text_cell_get_caret_offset;
-  iface->set_caret_offset = gail_text_cell_set_caret_offset;
-  iface->get_run_attributes = gail_text_cell_get_run_attributes;
-  iface->get_default_attributes = gail_text_cell_get_default_attributes;
-  iface->get_character_extents = gail_text_cell_get_character_extents;
-  iface->get_offset_at_point = gail_text_cell_get_offset_at_point;
-}
-
-static gchar* 
-gail_text_cell_get_text (AtkText *text, 
-                         gint    start_pos,
-                         gint    end_pos)
-{
-  if (GAIL_TEXT_CELL (text)->cell_text)
-    return gail_text_util_get_substring (GAIL_TEXT_CELL (text)->textutil,
-              start_pos, end_pos);
-  else
-    return g_strdup ("");
-}
-
-static gchar* 
-gail_text_cell_get_text_before_offset (AtkText         *text,
-                                       gint            offset,
-                                       AtkTextBoundary boundary_type,
-                                       gint            *start_offset,
-                                       gint            *end_offset)
-{
-  return gail_text_util_get_text (GAIL_TEXT_CELL (text)->textutil,
-        NULL, GAIL_BEFORE_OFFSET, boundary_type, offset, start_offset,
-        end_offset);
-}
-
-static gchar* 
-gail_text_cell_get_text_at_offset (AtkText         *text,
-                                   gint            offset,
-                                   AtkTextBoundary boundary_type,
-                                   gint            *start_offset,
-                                   gint            *end_offset)
-{
-  return gail_text_util_get_text (GAIL_TEXT_CELL (text)->textutil,
-        NULL, GAIL_AT_OFFSET, boundary_type, offset, start_offset, end_offset);
-}
-
-static gchar* 
-gail_text_cell_get_text_after_offset (AtkText         *text,
-                                      gint            offset,
-                                      AtkTextBoundary boundary_type,
-                                      gint            *start_offset,
-                                      gint            *end_offset)
-{
-  return gail_text_util_get_text (GAIL_TEXT_CELL (text)->textutil,
-        NULL, GAIL_AFTER_OFFSET, boundary_type, offset, start_offset,
-        end_offset);
-}
-
-static gint 
-gail_text_cell_get_character_count (AtkText *text)
-{
-  if (GAIL_TEXT_CELL (text)->cell_text != NULL)
-    return GAIL_TEXT_CELL (text)->cell_length;
-  else
-    return 0;
-}
-
-static gint 
-gail_text_cell_get_caret_offset (AtkText *text)
-{
-  return GAIL_TEXT_CELL (text)->caret_pos;
-}
-
-static gboolean 
-gail_text_cell_set_caret_offset (AtkText *text,
-                                 gint    offset)
-{
-  GailTextCell *text_cell = GAIL_TEXT_CELL (text);
-
-  if (text_cell->cell_text == NULL)
-    return FALSE;
-  else
-    {
-
-      /* Only set the caret within the bounds and if it is to a new position. */
-      if (offset >= 0 && 
-          offset <= text_cell->cell_length &&
-          offset != text_cell->caret_pos)
-        {
-          text_cell->caret_pos = offset;
-
-          /* emit the signal */
-          g_signal_emit_by_name (text, "text_caret_moved", offset);
-          return TRUE;
-        }
-      else
-        return FALSE;
-    }
-}
-
-static AtkAttributeSet*
-gail_text_cell_get_run_attributes (AtkText *text,
-                                  gint     offset,
-                                  gint     *start_offset,
-                                  gint     *end_offset) 
-{
-  GailRendererCell *gail_renderer; 
-  GtkCellRendererText *gtk_renderer;
-  AtkAttributeSet *attrib_set = NULL;
-  PangoLayout *layout;
-  AtkObject *parent;
-  GtkWidget *widget;
-  gchar *renderer_text;
-
-  gail_renderer = GAIL_RENDERER_CELL (text);
-  gtk_renderer = GTK_CELL_RENDERER_TEXT (gail_renderer->renderer);
-
-  parent = atk_object_get_parent (ATK_OBJECT (text));
-  if (GAIL_IS_CONTAINER_CELL (parent))
-    parent = atk_object_get_parent (parent);
-  g_return_val_if_fail (GAIL_IS_CELL_PARENT (parent), NULL);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
-  layout = create_pango_layout (gtk_renderer, widget),
-  g_object_get (gtk_renderer, "text", &renderer_text, NULL);
-  attrib_set = gail_misc_layout_get_run_attributes (attrib_set, 
-                                                    layout,
-                                                    renderer_text,
-                                                    offset,
-                                                    start_offset,
-                                                    end_offset);
-  g_free (renderer_text);
-  g_object_unref (G_OBJECT (layout));
-  
-  return attrib_set;
-}
-
-static AtkAttributeSet*
-gail_text_cell_get_default_attributes (AtkText *text)
-{
-  GailRendererCell *gail_renderer; 
-  GtkCellRendererText *gtk_renderer;
-  AtkAttributeSet *attrib_set = NULL;
-  PangoLayout *layout;
-  AtkObject *parent;
-  GtkWidget *widget;
-
-  gail_renderer = GAIL_RENDERER_CELL (text);
-  gtk_renderer = GTK_CELL_RENDERER_TEXT (gail_renderer->renderer);
-
-  parent = atk_object_get_parent (ATK_OBJECT (text));
-  if (GAIL_IS_CONTAINER_CELL (parent))
-    parent = atk_object_get_parent (parent);
-  g_return_val_if_fail (GAIL_IS_CELL_PARENT (parent), NULL);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
-  layout = create_pango_layout (gtk_renderer, widget),
-
-  attrib_set = gail_misc_get_default_attributes (attrib_set, 
-                                                 layout,
-                                                 widget);
-  g_object_unref (G_OBJECT (layout));
-  return attrib_set;
-}
-
-/* 
- * This function is used by gail_text_cell_get_offset_at_point()
- * and gail_text_cell_get_character_extents(). There is no 
- * cached PangoLayout for gailtextcell so we must create a temporary
- * one using this function.
- */ 
-static PangoLayout*
-create_pango_layout(GtkCellRendererText *gtk_renderer,
-                    GtkWidget           *widget)
-{
-  GdkRGBA *foreground_rgba;
-  PangoAttrList *attr_list, *attributes;
-  PangoLayout *layout;
-  PangoUnderline uline, underline;
-  PangoFontMask mask;
-  PangoFontDescription *font_desc;
-  gboolean foreground_set, strikethrough_set, strikethrough;
-  gboolean scale_set, underline_set, rise_set;
-  gchar *renderer_text;
-  gdouble scale;
-  gint rise;
-
-  g_object_get (gtk_renderer,
-                "text", &renderer_text,
-                "attributes", &attributes,
-                "foreground-set", &foreground_set,
-                "foreground-rgba", &foreground_rgba,
-                "strikethrough-set", &strikethrough_set,
-                "strikethrough", &strikethrough,
-                "font-desc", &font_desc,
-                "scale-set", &scale_set,
-                "scale", &scale,
-                "underline-set", &underline_set,
-                "underline", &underline,
-                "rise-set", &rise_set,
-                "rise", &rise,
-                NULL);
-
-  layout = gtk_widget_create_pango_layout (widget, renderer_text);
-
-  if (attributes)
-    attr_list = pango_attr_list_copy (attributes);
-  else
-    attr_list = pango_attr_list_new ();
-
-  if (foreground_set)
-    {
-      add_attr (attr_list, pango_attr_foreground_new (foreground_rgba->red * 65535,
-                                                      foreground_rgba->green * 65535,
-                                                      foreground_rgba->blue * 65535));
-    }
-
-  if (strikethrough_set)
-    add_attr (attr_list,
-              pango_attr_strikethrough_new (strikethrough));
-
-  mask = pango_font_description_get_set_fields (font_desc);
-
-  if (mask & PANGO_FONT_MASK_FAMILY)
-    add_attr (attr_list,
-      pango_attr_family_new (pango_font_description_get_family (font_desc)));
-
-  if (mask & PANGO_FONT_MASK_STYLE)
-    add_attr (attr_list, pango_attr_style_new (pango_font_description_get_style (font_desc)));
-
-  if (mask & PANGO_FONT_MASK_VARIANT)
-    add_attr (attr_list, pango_attr_variant_new (pango_font_description_get_variant (font_desc)));
-
-  if (mask & PANGO_FONT_MASK_WEIGHT)
-    add_attr (attr_list, pango_attr_weight_new (pango_font_description_get_weight (font_desc)));
-
-  if (mask & PANGO_FONT_MASK_STRETCH)
-    add_attr (attr_list, pango_attr_stretch_new (pango_font_description_get_stretch (font_desc)));
-
-  if (mask & PANGO_FONT_MASK_SIZE)
-    add_attr (attr_list, pango_attr_size_new (pango_font_description_get_size (font_desc)));
-
-  if (scale_set && scale != 1.0)
-    add_attr (attr_list, pango_attr_scale_new (scale));
-
-  if (underline_set)
-    uline = underline;
-  else
-    uline = PANGO_UNDERLINE_NONE;
-
-  if (uline != PANGO_UNDERLINE_NONE)
-    add_attr (attr_list,
-              pango_attr_underline_new (underline));
-
-  if (rise_set)
-    add_attr (attr_list, pango_attr_rise_new (rise));
-
-  pango_layout_set_attributes (layout, attr_list);
-  pango_layout_set_width (layout, -1);
-  pango_attr_list_unref (attr_list);
-
-  pango_font_description_free (font_desc);
-  pango_attr_list_unref (attributes);
-  g_free (renderer_text);
-  gdk_rgba_free (foreground_rgba);
-
-  return layout;
-}
-
-static void 
-add_attr (PangoAttrList  *attr_list,
-         PangoAttribute *attr)
-{
-  attr->start_index = 0;
-  attr->end_index = G_MAXINT;
-  pango_attr_list_insert (attr_list, attr);
-}
-
-static void      
-gail_text_cell_get_character_extents (AtkText          *text,
-                                      gint             offset,
-                                      gint             *x,
-                                      gint             *y,
-                                      gint             *width,
-                                      gint             *height,
-                                      AtkCoordType     coords)
-{
-  GailRendererCell *gail_renderer; 
-  GtkRequisition min_size;
-  GtkCellRendererText *gtk_renderer;
-  GdkRectangle rendered_rect;
-  GtkWidget *widget;
-  AtkObject *parent;
-  PangoRectangle char_rect;
-  PangoLayout *layout;
-  gchar *renderer_text;
-  gfloat xalign, yalign;
-  gint x_offset, y_offset, index;
-  gint xpad, ypad;
-
-  if (!GAIL_TEXT_CELL (text)->cell_text)
-    {
-      *x = *y = *height = *width = 0;
-      return;
-    }
-  if (offset < 0 || offset >= GAIL_TEXT_CELL (text)->cell_length)
-    {
-      *x = *y = *height = *width = 0;
-      return;
-    }
-  gail_renderer = GAIL_RENDERER_CELL (text);
-  gtk_renderer = GTK_CELL_RENDERER_TEXT (gail_renderer->renderer);
-  /*
-   * Thus would be inconsistent with the cache
-   */
-  g_object_get (gtk_renderer, "text", &renderer_text, NULL);
-  if (text == NULL)
-    {
-      g_free (renderer_text);
-      return;
-    }
-
-  parent = atk_object_get_parent (ATK_OBJECT (text));
-  if (GAIL_IS_CONTAINER_CELL (parent))
-    parent = atk_object_get_parent (parent);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
-  g_return_if_fail (GAIL_IS_CELL_PARENT (parent));
-  gail_cell_parent_get_cell_area (GAIL_CELL_PARENT (parent), GAIL_CELL (text),
-                                  &rendered_rect);
-
-  gtk_cell_renderer_get_preferred_size (GTK_CELL_RENDERER (gtk_renderer),
-                                        widget,
-                                        &min_size, NULL);
-
-  gtk_cell_renderer_get_alignment (GTK_CELL_RENDERER (gtk_renderer), &xalign, &yalign);
-  if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
-    xalign = 1.0 - xalign;
-  x_offset = MAX (0, xalign * (rendered_rect.width - min_size.width));
-  y_offset = MAX (0, yalign * (rendered_rect.height - min_size.height));
-
-  layout = create_pango_layout (gtk_renderer, widget);
-
-  index = g_utf8_offset_to_pointer (renderer_text, offset) - renderer_text;
-  pango_layout_index_to_pos (layout, index, &char_rect);
-
-  gtk_cell_renderer_get_padding (gail_renderer->renderer, &xpad, &ypad);
-  gail_misc_get_extents_from_pango_rectangle (widget,
-      &char_rect,
-      x_offset + rendered_rect.x + xpad,
-      y_offset + rendered_rect.y + ypad,
-      x, y, width, height, coords);
-
-  g_free (renderer_text);
-  g_object_unref (layout);
-
-  return;
-} 
-
-static gint      
-gail_text_cell_get_offset_at_point (AtkText          *text,
-                                    gint             x,
-                                    gint             y,
-                                    AtkCoordType     coords)
-{
-  AtkObject *parent;
-  GailRendererCell *gail_renderer; 
-  GtkCellRendererText *gtk_renderer;
-  GtkRequisition min_size;
-  GtkWidget *widget;
-  GdkRectangle rendered_rect;
-  PangoLayout *layout;
-  gchar *renderer_text;
-  gfloat xalign, yalign;
-  gint x_offset, y_offset, index;
-  gint xpad, ypad;
-  if (!GAIL_TEXT_CELL (text)->cell_text)
-    return -1;
-
-  gail_renderer = GAIL_RENDERER_CELL (text);
-  gtk_renderer = GTK_CELL_RENDERER_TEXT (gail_renderer->renderer);
-  parent = atk_object_get_parent (ATK_OBJECT (text));
-
-  g_object_get (gtk_renderer, "text", &renderer_text, NULL);
-  if (text == NULL)
-    {
-      g_free (renderer_text);
-      return -1;
-    }
-
-  if (GAIL_IS_CONTAINER_CELL (parent))
-    parent = atk_object_get_parent (parent);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
-
-  g_return_val_if_fail (GAIL_IS_CELL_PARENT (parent), -1);
-  gail_cell_parent_get_cell_area (GAIL_CELL_PARENT (parent), GAIL_CELL (text),
-                                  &rendered_rect);
-
-  gtk_cell_renderer_get_preferred_size (GTK_CELL_RENDERER (gtk_renderer),
-                                        widget,
-                                        &min_size, NULL);
-  gtk_cell_renderer_get_alignment (GTK_CELL_RENDERER (gtk_renderer), &xalign, &yalign);
-  if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_RTL)
-    xalign = 1.0 - xalign;
-  x_offset = MAX (0, xalign * (rendered_rect.width - min_size.width));
-  y_offset = MAX (0, yalign * (rendered_rect.height - min_size.height));
-
-  layout = create_pango_layout (gtk_renderer, widget);
-
-  gtk_cell_renderer_get_padding (gail_renderer->renderer, &xpad, &ypad);
-  index = gail_misc_get_index_at_point_in_layout (widget, layout,
-        x_offset + rendered_rect.x + xpad,
-        y_offset + rendered_rect.y + ypad,
-        x, y, coords);
-  g_object_unref (layout);
-  if (index == -1)
-    {
-      if (coords == ATK_XY_WINDOW || coords == ATK_XY_SCREEN)
-        {
-          glong length;
-
-          length = g_utf8_strlen (renderer_text, -1);
-          g_free (renderer_text);
-
-          return length;
-        }
-
-      g_free (renderer_text);
-
-      return index;  
-    }
-  else
-    {
-      glong offset;
-
-      offset = g_utf8_pointer_to_offset (renderer_text,
-                                         renderer_text + index);
-      g_free (renderer_text);
-
-      return offset;
-    }
-}
-
-static gunichar 
-gail_text_cell_get_character_at_offset (AtkText       *text,
-                                        gint          offset)
-{
-  gchar *index;
-  gchar *string;
-
-  string = GAIL_TEXT_CELL(text)->cell_text;
-
-  if (!string)
-    return '\0';
-
-  if (offset >= g_utf8_strlen (string, -1))
-    return '\0';
-
-  index = g_utf8_offset_to_pointer (string, offset);
-
-  return g_utf8_get_char (index);
-}
-
diff --git a/modules/other/gail/gailtextcell.h b/modules/other/gail/gailtextcell.h
deleted file mode 100644 (file)
index c158882..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/* GAIL - The GNOME Accessibility Enabling Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_TEXT_CELL_H__
-#define __GAIL_TEXT_CELL_H__
-
-#include <atk/atk.h>
-#include <gail/gailrenderercell.h>
-#include <libgail-util/gailtextutil.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_TEXT_CELL            (gail_text_cell_get_type ())
-#define GAIL_TEXT_CELL(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_TEXT_CELL, GailTextCell))
-#define GAIL_TEXT_CELL_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TEXT_CELL, GailTextCellClass))
-#define GAIL_IS_TEXT_CELL(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_TEXT_CELL))
-#define GAIL_IS_TEXT_CELL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_TEXT_CELL))
-#define GAIL_TEXT_CELL_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_TEXT_CELL, GailTextCellClass))
-
-typedef struct _GailTextCell                  GailTextCell;
-typedef struct _GailTextCellClass             GailTextCellClass;
-
-struct _GailTextCell
-{
-  GailRendererCell parent;
-  GailTextUtil *textutil;
-  gchar *cell_text;
-  gint caret_pos;
-  gint cell_length;
-};
-
-GType gail_text_cell_get_type (void);
-
-struct _GailTextCellClass
-{
-  GailRendererCellClass parent_class;
-};
-
-AtkObject *gail_text_cell_new (void);
-
-G_END_DECLS
-
-#endif /* __GAIL_TREE_VIEW_TEXT_CELL_H__ */
diff --git a/modules/other/gail/gailtextview.c b/modules/other/gail/gailtextview.c
deleted file mode 100644 (file)
index fb05b0f..0000000
+++ /dev/null
@@ -1,1742 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <sys/types.h>
-#include <unistd.h>
-#include <string.h>
-#include <stdlib.h>
-#include <glib-object.h>
-#include <glib/gstdio.h>
-#include <gtk/gtk.h>
-#include "gailtextview.h"
-#include <libgail-util/gailmisc.h>
-
-static void       gail_text_view_class_init            (GailTextViewClass *klass);
-static void       gail_text_view_init                  (GailTextView      *text_view);
-
-static void       gail_text_view_real_initialize       (AtkObject         *obj,
-                                                        gpointer          data);
-static void       gail_text_view_real_notify_gtk       (GObject           *obj,
-                                                        GParamSpec        *pspec);
-
-static void       gail_text_view_finalize              (GObject           *object);
-
-static void       atk_text_interface_init              (AtkTextIface     *iface);
-
-/* atkobject.h */
-
-static AtkStateSet* gail_text_view_ref_state_set       (AtkObject        *accessible);
-
-/* atktext.h */
-
-static gchar*     gail_text_view_get_text_after_offset (AtkText          *text,
-                                                        gint             offset,
-                                                        AtkTextBoundary  boundary_type,
-                                                        gint             *start_offset,
-                                                        gint             *end_offset);
-static gchar*     gail_text_view_get_text_at_offset    (AtkText          *text,
-                                                        gint             offset,
-                                                        AtkTextBoundary  boundary_type,
-                                                        gint             *start_offset,
-                                                        gint             *end_offset);
-static gchar*     gail_text_view_get_text_before_offset (AtkText         *text,
-                                                        gint             offset,
-                                                        AtkTextBoundary  boundary_type,
-                                                        gint             *start_offset,
-                                                        gint             *end_offset);
-static gchar*     gail_text_view_get_text              (AtkText*text,
-                                                        gint             start_offset,
-                                                        gint             end_offset);
-static gunichar   gail_text_view_get_character_at_offset (AtkText        *text,
-                                                        gint             offset);
-static gint       gail_text_view_get_character_count   (AtkText          *text);
-static gint       gail_text_view_get_caret_offset      (AtkText          *text);
-static gboolean   gail_text_view_set_caret_offset      (AtkText          *text,
-                                                        gint             offset);
-static gint       gail_text_view_get_offset_at_point   (AtkText          *text,
-                                                        gint             x,
-                                                        gint             y,
-                                                        AtkCoordType     coords);
-static gint       gail_text_view_get_n_selections      (AtkText          *text);
-static gchar*     gail_text_view_get_selection         (AtkText          *text,
-                                                        gint             selection_num,
-                                                        gint             *start_offset,
-                                                        gint             *end_offset);
-static gboolean   gail_text_view_add_selection         (AtkText          *text,
-                                                        gint             start_offset,
-                                                        gint             end_offset);
-static gboolean   gail_text_view_remove_selection      (AtkText          *text,
-                                                        gint             selection_num);
-static gboolean   gail_text_view_set_selection         (AtkText          *text,
-                                                        gint             selection_num,
-                                                        gint             start_offset,
-                                                        gint             end_offset);
-static void       gail_text_view_get_character_extents (AtkText          *text,
-                                                        gint             offset,
-                                                        gint             *x,
-                                                        gint             *y,
-                                                        gint             *width,
-                                                        gint             *height,
-                                                        AtkCoordType     coords);
-static AtkAttributeSet *  gail_text_view_get_run_attributes 
-                                                       (AtkText          *text,
-                                                        gint             offset,
-                                                        gint             *start_offset,
-                                                        gint             *end_offset);
-static AtkAttributeSet *  gail_text_view_get_default_attributes 
-                                                       (AtkText          *text);
-/* atkeditabletext.h */
-
-static void       atk_editable_text_interface_init     (AtkEditableTextIface *iface);
-static gboolean   gail_text_view_set_run_attributes    (AtkEditableText  *text,
-                                                        AtkAttributeSet  *attrib_set,
-                                                        gint             start_offset,
-                                                        gint             end_offset);
-static void       gail_text_view_set_text_contents     (AtkEditableText  *text,
-                                                        const gchar      *string);
-static void       gail_text_view_insert_text           (AtkEditableText  *text,
-                                                        const gchar      *string,
-                                                        gint             length,
-                                                        gint             *position);
-static void       gail_text_view_copy_text             (AtkEditableText  *text,
-                                                        gint             start_pos,
-                                                        gint             end_pos);
-static void       gail_text_view_cut_text              (AtkEditableText  *text,
-                                                        gint             start_pos,
-                                                        gint             end_pos);
-static void       gail_text_view_delete_text           (AtkEditableText  *text,
-                                                        gint             start_pos,
-                                                        gint             end_pos);
-static void       gail_text_view_paste_text            (AtkEditableText  *text,
-                                                        gint             position);
-static void       gail_text_view_paste_received        (GtkClipboard     *clipboard,
-                                                        const gchar      *text,
-                                                        gpointer         data);
-/* AtkStreamableContent */
-static void       atk_streamable_content_interface_init    (AtkStreamableContentIface *iface);
-static gint       gail_streamable_content_get_n_mime_types (AtkStreamableContent *streamable);
-static const gchar* gail_streamable_content_get_mime_type (AtkStreamableContent *streamable,
-                                                                   gint i);
-static GIOChannel* gail_streamable_content_get_stream       (AtkStreamableContent *streamable,
-                                                            const gchar *mime_type);
-/* getURI requires atk-1.12.0 or later
-static void       gail_streamable_content_get_uri          (AtkStreamableContent *streamable);
-*/
-
-/* Callbacks */
-
-static void       _gail_text_view_insert_text_cb       (GtkTextBuffer    *buffer,
-                                                        GtkTextIter      *arg1,
-                                                        gchar            *arg2,
-                                                        gint             arg3,
-                                                        gpointer         user_data);
-static void       _gail_text_view_delete_range_cb      (GtkTextBuffer    *buffer,
-                                                        GtkTextIter      *arg1,
-                                                        GtkTextIter      *arg2,
-                                                        gpointer         user_data);
-static void       _gail_text_view_changed_cb           (GtkTextBuffer    *buffer,
-                                                        gpointer         user_data);
-static void       _gail_text_view_mark_set_cb          (GtkTextBuffer    *buffer,
-                                                        GtkTextIter      *arg1,
-                                                        GtkTextMark      *arg2,
-                                                        gpointer         user_data);
-static gchar*            get_text_near_offset          (AtkText          *text,
-                                                        GailOffsetType   function,
-                                                        AtkTextBoundary  boundary_type,
-                                                        gint             offset,
-                                                        gint             *start_offset,
-                                                        gint             *end_offset);
-static gint             get_insert_offset              (GtkTextBuffer    *buffer);
-static gint             get_selection_bound            (GtkTextBuffer    *buffer);
-static void             emit_text_caret_moved          (GailTextView     *gail_text_view,
-                                                        gint             insert_offset);
-static gint             insert_idle_handler            (gpointer         data);
-
-typedef struct _GailTextViewPaste                       GailTextViewPaste;
-
-struct _GailTextViewPaste
-{
-  GtkTextBuffer* buffer;
-  gint position;
-};
-
-G_DEFINE_TYPE_WITH_CODE (GailTextView, gail_text_view, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_EDITABLE_TEXT, atk_editable_text_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TEXT, atk_text_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_STREAMABLE_CONTENT, atk_streamable_content_interface_init))
-
-static void
-gail_text_view_class_init (GailTextViewClass *klass)
-{
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-  GailWidgetClass *widget_class;
-
-  widget_class = (GailWidgetClass*)klass;
-
-  gobject_class->finalize = gail_text_view_finalize;
-
-  class->ref_state_set = gail_text_view_ref_state_set;
-  class->initialize = gail_text_view_real_initialize;
-
-  widget_class->notify_gtk = gail_text_view_real_notify_gtk;
-}
-
-static void
-gail_text_view_init (GailTextView      *text_view)
-{
-  text_view->textutil = NULL;
-  text_view->signal_name = NULL;
-  text_view->previous_insert_offset = -1;
-  text_view->previous_selection_bound = -1;
-  text_view->insert_notify_handler = 0;
-}
-
-static void
-setup_buffer (GtkTextView  *view, 
-              GailTextView *gail_view)
-{
-  GtkTextBuffer *buffer;
-
-  buffer = gtk_text_view_get_buffer (view);
-
-  if (gail_view->textutil)
-    g_object_unref (gail_view->textutil);
-
-  gail_view->textutil = gail_text_util_new ();
-  gail_text_util_buffer_setup (gail_view->textutil, buffer);
-
-  /* Set up signal callbacks */
-  g_signal_connect_data (buffer, "insert-text",
-     (GCallback) _gail_text_view_insert_text_cb, view, NULL, 0);
-  g_signal_connect_data (buffer, "delete-range",
-     (GCallback) _gail_text_view_delete_range_cb, view, NULL, 0);
-  g_signal_connect_data (buffer, "mark-set",
-     (GCallback) _gail_text_view_mark_set_cb, view, NULL, 0);
-  g_signal_connect_data (buffer, "changed",
-     (GCallback) _gail_text_view_changed_cb, view, NULL, 0);
-
-}
-
-static void
-gail_text_view_real_initialize (AtkObject *obj,
-                                gpointer  data)
-{
-  GtkTextView *view;
-  GailTextView *gail_view;
-
-  ATK_OBJECT_CLASS (gail_text_view_parent_class)->initialize (obj, data);
-
-  view = GTK_TEXT_VIEW (data);
-
-  gail_view = GAIL_TEXT_VIEW (obj);
-  setup_buffer (view, gail_view);
-
-  obj->role = ATK_ROLE_TEXT;
-
-}
-
-static void
-gail_text_view_finalize (GObject            *object)
-{
-  GailTextView *text_view = GAIL_TEXT_VIEW (object);
-
-  g_object_unref (text_view->textutil);
-  if (text_view->insert_notify_handler)
-    g_source_remove (text_view->insert_notify_handler);
-
-  G_OBJECT_CLASS (gail_text_view_parent_class)->finalize (object);
-}
-
-static void
-gail_text_view_real_notify_gtk (GObject             *obj,
-                                GParamSpec          *pspec)
-{
-  if (!strcmp (pspec->name, "editable"))
-    {
-      AtkObject *atk_obj;
-      gboolean editable;
-
-      atk_obj = gtk_widget_get_accessible (GTK_WIDGET (obj));
-      editable = gtk_text_view_get_editable (GTK_TEXT_VIEW (obj));
-      atk_object_notify_state_change (atk_obj, ATK_STATE_EDITABLE,
-                                      editable);
-    }
-  else if (!strcmp (pspec->name, "buffer"))
-    {
-      AtkObject *atk_obj;
-
-      atk_obj = gtk_widget_get_accessible (GTK_WIDGET (obj));
-      setup_buffer (GTK_TEXT_VIEW (obj), GAIL_TEXT_VIEW (atk_obj));
-    }
-  else
-    GAIL_WIDGET_CLASS (gail_text_view_parent_class)->notify_gtk (obj, pspec);
-}
-
-/* atkobject.h */
-
-static AtkStateSet*
-gail_text_view_ref_state_set (AtkObject *accessible)
-{
-  AtkStateSet *state_set;
-  GtkTextView *text_view;
-  GtkWidget *widget;
-
-  state_set = ATK_OBJECT_CLASS (gail_text_view_parent_class)->ref_state_set (accessible);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-
-  if (widget == NULL)
-    return state_set;
-
-  text_view = GTK_TEXT_VIEW (widget);
-
-  if (gtk_text_view_get_editable (text_view))
-    atk_state_set_add_state (state_set, ATK_STATE_EDITABLE);
-  atk_state_set_add_state (state_set, ATK_STATE_MULTI_LINE);
-
-  return state_set;
-}
-
-/* atktext.h */
-
-static void
-atk_text_interface_init (AtkTextIface *iface)
-{
-  iface->get_text = gail_text_view_get_text;
-  iface->get_text_after_offset = gail_text_view_get_text_after_offset;
-  iface->get_text_at_offset = gail_text_view_get_text_at_offset;
-  iface->get_text_before_offset = gail_text_view_get_text_before_offset;
-  iface->get_character_at_offset = gail_text_view_get_character_at_offset;
-  iface->get_character_count = gail_text_view_get_character_count;
-  iface->get_caret_offset = gail_text_view_get_caret_offset;
-  iface->set_caret_offset = gail_text_view_set_caret_offset;
-  iface->get_offset_at_point = gail_text_view_get_offset_at_point;
-  iface->get_character_extents = gail_text_view_get_character_extents;
-  iface->get_n_selections = gail_text_view_get_n_selections;
-  iface->get_selection = gail_text_view_get_selection;
-  iface->add_selection = gail_text_view_add_selection;
-  iface->remove_selection = gail_text_view_remove_selection;
-  iface->set_selection = gail_text_view_set_selection;
-  iface->get_run_attributes = gail_text_view_get_run_attributes;
-  iface->get_default_attributes = gail_text_view_get_default_attributes;
-}
-
-static gchar*
-gail_text_view_get_text (AtkText *text,
-                         gint    start_offset,
-                         gint    end_offset)
-{
-  GtkTextView *view;
-  GtkTextBuffer *buffer;
-  GtkTextIter start, end;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  view = GTK_TEXT_VIEW (widget);
-  buffer = gtk_text_view_get_buffer (view);
-  gtk_text_buffer_get_iter_at_offset (buffer, &start, start_offset);
-  gtk_text_buffer_get_iter_at_offset (buffer, &end, end_offset);
-
-  return gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
-}
-
-static gchar*
-gail_text_view_get_text_after_offset (AtkText         *text,
-                                      gint            offset,
-                                      AtkTextBoundary boundary_type,
-                                      gint            *start_offset,
-                                      gint            *end_offset)
-{
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  return get_text_near_offset (text, GAIL_AFTER_OFFSET,
-                               boundary_type, offset, 
-                               start_offset, end_offset);
-}
-
-static gchar*
-gail_text_view_get_text_at_offset (AtkText         *text,
-                                   gint            offset,
-                                   AtkTextBoundary boundary_type,
-                                   gint            *start_offset,
-                                   gint            *end_offset)
-{
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  return get_text_near_offset (text, GAIL_AT_OFFSET,
-                               boundary_type, offset, 
-                               start_offset, end_offset);
-}
-
-static gchar*
-gail_text_view_get_text_before_offset (AtkText         *text,
-                                       gint            offset,
-                                       AtkTextBoundary boundary_type,
-                                       gint            *start_offset,
-                                       gint            *end_offset)
-{
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  return get_text_near_offset (text, GAIL_BEFORE_OFFSET,
-                               boundary_type, offset, 
-                               start_offset, end_offset);
-}
-
-static gunichar
-gail_text_view_get_character_at_offset (AtkText *text,
-                                        gint    offset)
-{
-  GtkWidget *widget;
-  GtkTextIter start, end;
-  GtkTextBuffer *buffer;
-  gchar *string;
-  gunichar unichar;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    return '\0';
-
-  buffer = GAIL_TEXT_VIEW (text)->textutil->buffer;
-  if (offset >= gtk_text_buffer_get_char_count (buffer))
-    return '\0';
-
-  gtk_text_buffer_get_iter_at_offset (buffer, &start, offset);
-  end = start;
-  gtk_text_iter_forward_char (&end);
-  string = gtk_text_buffer_get_slice (buffer, &start, &end, FALSE);
-  unichar = g_utf8_get_char (string);
-  g_free(string);
-  return unichar;
-}
-
-static gint
-gail_text_view_get_character_count (AtkText *text)
-{
-  GtkTextView *view;
-  GtkTextBuffer *buffer;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  view = GTK_TEXT_VIEW (widget);
-  buffer = gtk_text_view_get_buffer (view);
-  return gtk_text_buffer_get_char_count (buffer);
-}
-
-static gint
-gail_text_view_get_caret_offset (AtkText *text)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  view = GTK_TEXT_VIEW (widget);
-  return get_insert_offset (gtk_text_view_get_buffer (view));
-}
-
-static gboolean
-gail_text_view_set_caret_offset (AtkText *text,
-                                 gint    offset)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-  GtkTextIter pos_itr;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  view = GTK_TEXT_VIEW (widget);
-  buffer = gtk_text_view_get_buffer (view);
-
-  gtk_text_buffer_get_iter_at_offset (buffer,  &pos_itr, offset);
-  gtk_text_buffer_place_cursor (buffer, &pos_itr);
-  gtk_text_view_scroll_to_iter (view, &pos_itr, 0, FALSE, 0, 0);
-  return TRUE;
-}
-
-static gint
-gail_text_view_get_offset_at_point (AtkText      *text,
-                                    gint         x,
-                                    gint         y,
-                                    AtkCoordType coords)
-{
-  GtkTextView *view;
-  GtkTextIter loc_itr;
-  gint x_widget, y_widget, x_window, y_window, buff_x, buff_y;
-  GtkWidget *widget;
-  GdkWindow *window;
-  GdkRectangle rect;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-
-  view = GTK_TEXT_VIEW (widget);
-
-  window = gtk_text_view_get_window (view, GTK_TEXT_WINDOW_WIDGET);
-  gdk_window_get_origin (window, &x_widget, &y_widget);
-
-  if (coords == ATK_XY_SCREEN)
-    {
-      x = x - x_widget;
-      y = y - y_widget;
-    }
-  else if (coords == ATK_XY_WINDOW)
-    {
-      window = gdk_window_get_toplevel (window);
-      gdk_window_get_origin (window, &x_window, &y_window);
-
-      x = x - x_widget + x_window;
-      y = y - y_widget + y_window;
-    }
-  else
-    return -1;
-
-  gtk_text_view_window_to_buffer_coords (view, GTK_TEXT_WINDOW_WIDGET,
-                                         x, y, &buff_x, &buff_y);
-  gtk_text_view_get_visible_rect (view, &rect);
-  /*
-   * Clamp point to visible rectangle
-   */
-  buff_x = CLAMP (buff_x, rect.x, rect.x + rect.width - 1);
-  buff_y = CLAMP (buff_y, rect.y, rect.y + rect.height - 1);
-
-  gtk_text_view_get_iter_at_location (view, &loc_itr, buff_x, buff_y);
-  /*
-   * The iter at a location sometimes points to the next character.
-   * See bug 111031. We work around that
-   */
-  gtk_text_view_get_iter_location (view, &loc_itr, &rect);
-  if (buff_x < rect.x)
-    gtk_text_iter_backward_char (&loc_itr);
-  return gtk_text_iter_get_offset (&loc_itr);
-}
-
-static void
-gail_text_view_get_character_extents (AtkText      *text,
-                                      gint         offset,
-                                      gint         *x,
-                                      gint         *y,
-                                      gint         *width,
-                                      gint         *height,
-                                      AtkCoordType coords)
-{
-  GtkTextView *view;
-  GtkTextBuffer *buffer;
-  GtkTextIter iter;
-  GtkWidget *widget;
-  GdkRectangle rectangle;
-  GdkWindow *window;
-  gint x_widget, y_widget, x_window, y_window;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  view = GTK_TEXT_VIEW (widget);
-  buffer = gtk_text_view_get_buffer (view);
-  gtk_text_buffer_get_iter_at_offset (buffer, &iter, offset);
-  gtk_text_view_get_iter_location (view, &iter, &rectangle);
-
-  window = gtk_text_view_get_window (view, GTK_TEXT_WINDOW_WIDGET);
-  gdk_window_get_origin (window, &x_widget, &y_widget);
-
-  *height = rectangle.height;
-  *width = rectangle.width;
-
-  gtk_text_view_buffer_to_window_coords (view, GTK_TEXT_WINDOW_WIDGET,
-    rectangle.x, rectangle.y, x, y);
-  if (coords == ATK_XY_WINDOW)
-    {
-      window = gdk_window_get_toplevel (window);
-      gdk_window_get_origin (window, &x_window, &y_window);
-      *x += x_widget - x_window;
-        *y += y_widget - y_window;
-    }
-  else if (coords == ATK_XY_SCREEN)
-    {
-      *x += x_widget;
-      *y += y_widget;
-    }
-  else
-    {
-      *x = 0;
-      *y = 0;
-      *height = 0;
-      *width = 0;
-    }
-}
-
-static AtkAttributeSet*
-gail_text_view_get_run_attributes (AtkText *text,
-                                   gint    offset,
-                                   gint    *start_offset,
-                                   gint    *end_offset)
-{
-  GtkTextView *view;
-  GtkTextBuffer *buffer;
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  view = GTK_TEXT_VIEW (widget);
-  buffer = gtk_text_view_get_buffer (view);
-
-  return gail_misc_buffer_get_run_attributes (buffer, offset, 
-                                              start_offset, end_offset);
-}
-
-static AtkAttributeSet*
-add_text_attribute (AtkAttributeSet *attrib_set, AtkTextAttribute attr, gint i)
-{
-  const gchar *value;
-
-  value = atk_text_attribute_get_value (attr, i);
-
-  return gail_misc_add_attribute (attrib_set, i, g_strdup (value));
-}
-
-static AtkAttributeSet*
-gail_text_view_get_default_attributes (AtkText *text)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextAttributes *text_attrs;
-  AtkAttributeSet *attrib_set = NULL;
-  PangoFontDescription *font;
-  gchar *value;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  view = GTK_TEXT_VIEW (widget);
-  text_attrs = gtk_text_view_get_default_attributes (view);
-
-  font = text_attrs->font;
-
-  if (font)
-    {
-      attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_STYLE,
-                                       pango_font_description_get_style (font));
-
-      attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_VARIANT,
-                                       pango_font_description_get_variant (font));
-
-      attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_STRETCH,
-                                       pango_font_description_get_stretch (font));
-
-      value = g_strdup (pango_font_description_get_family (font));
-      attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_FAMILY_NAME, value);
-
-      value = g_strdup_printf ("%d", pango_font_description_get_weight (font));
-      attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_WEIGHT, value);
-
-      value = g_strdup_printf ("%i", pango_font_description_get_size (font) / PANGO_SCALE);
-      attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_SIZE, value);
-    }
-
-  attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_JUSTIFICATION, text_attrs->justification);
-  attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_DIRECTION, text_attrs->direction);
-  attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_WRAP_MODE, text_attrs->wrap_mode);
-  attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_EDITABLE, text_attrs->editable);
-  attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_INVISIBLE, text_attrs->invisible);
-  attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_BG_FULL_HEIGHT, text_attrs->bg_full_height);
-
-  attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_STRIKETHROUGH,
-                                   text_attrs->appearance.strikethrough);
-  attrib_set = add_text_attribute (attrib_set, ATK_TEXT_ATTR_UNDERLINE,
-                                   text_attrs->appearance.underline);
-
-  value = g_strdup_printf ("%u,%u,%u",
-                           text_attrs->appearance.bg_color.red,
-                           text_attrs->appearance.bg_color.green,
-                           text_attrs->appearance.bg_color.blue);
-  attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_BG_COLOR, value);
-
-  value = g_strdup_printf ("%u,%u,%u",
-                           text_attrs->appearance.fg_color.red,
-                           text_attrs->appearance.fg_color.green,
-                           text_attrs->appearance.fg_color.blue);
-  attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_FG_COLOR, value);
-
-  value = g_strdup_printf ("%g", text_attrs->font_scale);
-  attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_SCALE, value);
-
-  value = g_strdup ((gchar *)(text_attrs->language));
-  attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_LANGUAGE, value);
-
-  value = g_strdup_printf ("%i", text_attrs->appearance.rise);
-  attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_RISE, value);
-
-  value = g_strdup_printf ("%i", text_attrs->pixels_inside_wrap);
-  attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP, value);
-
-  value = g_strdup_printf ("%i", text_attrs->pixels_below_lines);
-  attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_PIXELS_BELOW_LINES, value);
-
-  value = g_strdup_printf ("%i", text_attrs->pixels_above_lines);
-  attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_PIXELS_ABOVE_LINES, value);
-
-  value = g_strdup_printf ("%i", text_attrs->indent);
-  attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_INDENT, value);
-
-  value = g_strdup_printf ("%i", text_attrs->left_margin);
-  attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_LEFT_MARGIN, value);
-
-  value = g_strdup_printf ("%i", text_attrs->right_margin);
-  attrib_set = gail_misc_add_attribute (attrib_set, ATK_TEXT_ATTR_RIGHT_MARGIN, value);
-
-  gtk_text_attributes_unref (text_attrs);
-  return attrib_set;
-}
-
-static gint
-gail_text_view_get_n_selections (AtkText *text)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-  GtkTextIter start, end;
-  gint select_start, select_end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-
-  view = GTK_TEXT_VIEW (widget);
-  buffer = gtk_text_view_get_buffer (view);
-
-  gtk_text_buffer_get_selection_bounds (buffer, &start, &end);
-  select_start = gtk_text_iter_get_offset (&start);
-  select_end = gtk_text_iter_get_offset (&end);
-
-  if (select_start != select_end)
-     return 1;
-  else
-     return 0;
-}
-
-static gchar*
-gail_text_view_get_selection (AtkText *text,
-                              gint    selection_num,
-                              gint    *start_pos,
-                              gint    *end_pos)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-  GtkTextIter start, end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
- /* Only let the user get the selection if one is set, and if the
-  * selection_num is 0.
-  */
-  if (selection_num != 0)
-     return NULL;
-
-  view = GTK_TEXT_VIEW (widget);
-  buffer = gtk_text_view_get_buffer (view);
-
-  gtk_text_buffer_get_selection_bounds (buffer, &start, &end);
-  *start_pos = gtk_text_iter_get_offset (&start);
-  *end_pos = gtk_text_iter_get_offset (&end);
-
-  if (*start_pos != *end_pos)
-    return gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
-  else
-    return NULL;
-}
-
-static gboolean
-gail_text_view_add_selection (AtkText *text,
-                              gint    start_pos,
-                              gint    end_pos)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-  GtkTextIter pos_itr;
-  GtkTextIter start, end;
-  gint select_start, select_end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  view = GTK_TEXT_VIEW (widget);
-  buffer = gtk_text_view_get_buffer (view);
-
-  gtk_text_buffer_get_selection_bounds (buffer, &start, &end);
-  select_start = gtk_text_iter_get_offset (&start);
-  select_end = gtk_text_iter_get_offset (&end);
-
- /* If there is already a selection, then don't allow another to be added,
-  * since GtkTextView only supports one selected region.
-  */
-  if (select_start == select_end)
-    {
-      gtk_text_buffer_get_iter_at_offset (buffer,  &pos_itr, start_pos);
-      gtk_text_buffer_move_mark_by_name (buffer, "selection_bound", &pos_itr);
-      gtk_text_buffer_get_iter_at_offset (buffer,  &pos_itr, end_pos);
-      gtk_text_buffer_move_mark_by_name (buffer, "insert", &pos_itr);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static gboolean
-gail_text_view_remove_selection (AtkText *text,
-                                 gint    selection_num)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-  GtkTextMark *cursor_mark;
-  GtkTextIter cursor_itr;
-  GtkTextIter start, end;
-  gint select_start, select_end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  if (selection_num != 0)
-     return FALSE;
-
-  view = GTK_TEXT_VIEW (widget);
-  buffer = gtk_text_view_get_buffer (view);
-
-  gtk_text_buffer_get_selection_bounds(buffer, &start, &end);
-  select_start = gtk_text_iter_get_offset(&start);
-  select_end = gtk_text_iter_get_offset(&end);
-
-  if (select_start != select_end)
-    {
-     /* Setting the start & end of the selected region to the caret position
-      * turns off the selection.
-      */
-      cursor_mark = gtk_text_buffer_get_insert (buffer);
-      gtk_text_buffer_get_iter_at_mark (buffer, &cursor_itr, cursor_mark);
-      gtk_text_buffer_move_mark_by_name (buffer, "selection_bound", &cursor_itr);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static gboolean
-gail_text_view_set_selection (AtkText *text,
-                              gint    selection_num,
-                              gint    start_pos,
-                              gint    end_pos)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-  GtkTextIter pos_itr;
-  GtkTextIter start, end;
-  gint select_start, select_end;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-  {
-    /* State is defunct */
-    return FALSE;
-  }
-
- /* Only let the user move the selection if one is set, and if the
-  * selection_num is 0
-  */
-  if (selection_num != 0)
-     return FALSE;
-
-  view = GTK_TEXT_VIEW (widget);
-  buffer = gtk_text_view_get_buffer (view);
-
-  gtk_text_buffer_get_selection_bounds(buffer, &start, &end);
-  select_start = gtk_text_iter_get_offset(&start);
-  select_end = gtk_text_iter_get_offset(&end);
-
-  if (select_start != select_end)
-    {
-      gtk_text_buffer_get_iter_at_offset (buffer,  &pos_itr, start_pos);
-      gtk_text_buffer_move_mark_by_name (buffer, "selection_bound", &pos_itr);
-      gtk_text_buffer_get_iter_at_offset (buffer,  &pos_itr, end_pos);
-      gtk_text_buffer_move_mark_by_name (buffer, "insert", &pos_itr);
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-/* atkeditabletext.h */
-
-static void
-atk_editable_text_interface_init (AtkEditableTextIface *iface)
-{
-  iface->set_text_contents = gail_text_view_set_text_contents;
-  iface->insert_text = gail_text_view_insert_text;
-  iface->copy_text = gail_text_view_copy_text;
-  iface->cut_text = gail_text_view_cut_text;
-  iface->delete_text = gail_text_view_delete_text;
-  iface->paste_text = gail_text_view_paste_text;
-  iface->set_run_attributes = gail_text_view_set_run_attributes;
-}
-
-static gboolean
-gail_text_view_set_run_attributes (AtkEditableText *text,
-                                   AtkAttributeSet *attrib_set,
-                                   gint            start_offset,
-                                   gint            end_offset)
-{
-  GtkTextView *view;
-  GtkTextBuffer *buffer;
-  GtkWidget *widget;
-  GtkTextTag *tag;
-  GtkTextIter start;
-  GtkTextIter end;
-  gint j;
-  GdkColor *color;
-  gchar** RGB_vals;
-  GSList *l;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  view = GTK_TEXT_VIEW (widget);
-  if (!gtk_text_view_get_editable (view))
-    return FALSE;
-
-  buffer = gtk_text_view_get_buffer (view);
-
-  if (attrib_set == NULL)
-    return FALSE;
-
-  gtk_text_buffer_get_iter_at_offset (buffer, &start, start_offset);
-  gtk_text_buffer_get_iter_at_offset (buffer, &end, end_offset);
-
-  tag = gtk_text_buffer_create_tag (buffer, NULL, NULL);
-
-  for (l = attrib_set; l; l = l->next)
-    {
-      gchar *name;
-      gchar *value;
-      AtkAttribute *at;
-
-      at = l->data;
-
-      name = at->name;
-      value = at->value;
-
-      if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_LEFT_MARGIN)))
-        g_object_set (G_OBJECT (tag), "left_margin", atoi (value), NULL);
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_RIGHT_MARGIN)))
-        g_object_set (G_OBJECT (tag), "right_margin", atoi (value), NULL);
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_INDENT)))
-        g_object_set (G_OBJECT (tag), "indent", atoi (value), NULL);
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_PIXELS_ABOVE_LINES)))
-        g_object_set (G_OBJECT (tag), "pixels_above_lines", atoi (value), NULL);
-
-      else if (!strcmp(name, atk_text_attribute_get_name (ATK_TEXT_ATTR_PIXELS_BELOW_LINES)))
-        g_object_set (G_OBJECT (tag), "pixels_below_lines", atoi (value), NULL);
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_PIXELS_INSIDE_WRAP)))
-        g_object_set (G_OBJECT (tag), "pixels_inside_wrap", atoi (value), NULL);
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_SIZE)))
-        g_object_set (G_OBJECT (tag), "size", atoi (value), NULL);
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_RISE)))
-        g_object_set (G_OBJECT (tag), "rise", atoi (value), NULL);
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_WEIGHT)))
-        g_object_set (G_OBJECT (tag), "weight", atoi (value), NULL);
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_BG_FULL_HEIGHT)))
-        {
-          g_object_set (G_OBJECT (tag), "bg_full_height", 
-                   (strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_BG_FULL_HEIGHT, 0))),
-                   NULL);
-        }
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_LANGUAGE)))
-        g_object_set (G_OBJECT (tag), "language", value, NULL);
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_FAMILY_NAME)))
-        g_object_set (G_OBJECT (tag), "family", value, NULL);
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_EDITABLE)))
-        {
-          g_object_set (G_OBJECT (tag), "editable", 
-                   (strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_EDITABLE, 0))),
-                   NULL);
-        }
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_INVISIBLE)))
-        {
-          g_object_set (G_OBJECT (tag), "invisible", 
-                   (strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_EDITABLE, 0))),
-                   NULL);
-        }
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_UNDERLINE)))
-        {
-          for (j = 0; j < 3; j++)
-            {
-              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_UNDERLINE, j)))
-                {
-                  g_object_set (G_OBJECT (tag), "underline", j, NULL);
-                  break;
-                }
-            } 
-        }
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_STRIKETHROUGH)))
-        {
-          g_object_set (G_OBJECT (tag), "strikethrough", 
-                   (strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_STRIKETHROUGH, 0))),
-                   NULL);
-        }
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_BG_COLOR)))
-        {
-          RGB_vals = g_strsplit (value, ",", 3);
-          color = g_malloc (sizeof (GdkColor));
-          color->red = atoi (RGB_vals[0]);
-          color->green = atoi (RGB_vals[1]);
-          color->blue = atoi (RGB_vals[2]);
-          g_object_set (G_OBJECT (tag), "background_gdk", color, NULL);
-        }
-  
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_FG_COLOR)))
-        {
-          RGB_vals = g_strsplit (value, ",", 3);
-          color = g_malloc (sizeof (GdkColor));
-          color->red = atoi (RGB_vals[0]);
-          color->green = atoi (RGB_vals[1]);
-          color->blue = atoi (RGB_vals[2]);
-          g_object_set (G_OBJECT (tag), "foreground_gdk", color, NULL);
-        }
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_STRETCH)))
-        {
-          for (j = 0; j < 9; j++)
-            {
-              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_STRETCH, j)))
-                {
-                  g_object_set (G_OBJECT (tag), "stretch", j, NULL);
-                  break;
-                }
-            }
-        }
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_JUSTIFICATION)))
-        {
-          for (j = 0; j < 4; j++)
-            {
-              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_JUSTIFICATION, j)))
-                {
-                  g_object_set (G_OBJECT (tag), "justification", j, NULL);
-                  break;
-                }
-            }
-        }
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_DIRECTION)))
-        {
-          for (j = 0; j < 3; j++)
-            {
-              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_DIRECTION, j)))
-                {
-                  g_object_set (G_OBJECT (tag), "direction", j, NULL);
-                  break;
-                }
-            }
-        }
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_VARIANT)))
-        {
-          for (j = 0; j < 2; j++)
-            {
-              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_VARIANT, j)))
-                {
-                  g_object_set (G_OBJECT (tag), "variant", j, NULL);
-                  break;
-                }
-            }
-        }
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_WRAP_MODE)))
-        {
-          for (j = 0; j < 3; j++)
-            {
-              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_WRAP_MODE, j)))
-                {
-                  g_object_set (G_OBJECT (tag), "wrap_mode", j, NULL);
-                  break;
-                }
-            }
-        }
-
-      else if (!strcmp (name, atk_text_attribute_get_name (ATK_TEXT_ATTR_STYLE)))
-        {
-          for (j = 0; j < 3; j++)
-            {
-              if (!strcmp (value, atk_text_attribute_get_value (ATK_TEXT_ATTR_STYLE, j)))
-                {
-                  g_object_set (G_OBJECT (tag), "style", j, NULL);
-                  break;
-              }
-            }
-        }
-
-      else
-        return FALSE;
-    }
-
-  gtk_text_buffer_apply_tag (buffer, tag, &start, &end);
-
-  return TRUE;
-}
-
-static void
-gail_text_view_set_text_contents (AtkEditableText *text,
-                                  const gchar     *string)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  view = GTK_TEXT_VIEW (widget);
-  if (!gtk_text_view_get_editable (view))
-    return;
-  buffer = gtk_text_view_get_buffer (view);
-
-  /* The -1 indicates that the input string must be null-terminated */
-  gtk_text_buffer_set_text (buffer, string, -1);
-}
-
-static void
-gail_text_view_insert_text (AtkEditableText *text,
-                            const gchar     *string,
-                            gint            length,
-                            gint            *position)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-  GtkTextIter pos_itr;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  view = GTK_TEXT_VIEW (widget);
-  if (!gtk_text_view_get_editable (view))
-    return;
-  buffer = gtk_text_view_get_buffer (view);
-
-  gtk_text_buffer_get_iter_at_offset (buffer, &pos_itr, *position);
-  gtk_text_buffer_insert (buffer, &pos_itr, string, length);
-}
-
-static void
-gail_text_view_copy_text   (AtkEditableText *text,
-                            gint            start_pos,
-                            gint            end_pos)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-  GtkTextIter start, end;
-  gchar *str;
-  GtkClipboard *clipboard;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  view = GTK_TEXT_VIEW (widget);
-  buffer = gtk_text_view_get_buffer (view);
-
-  gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos);
-  gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos);
-  str = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
-  clipboard = gtk_clipboard_get_for_display (gtk_widget_get_display (widget),
-                                             GDK_SELECTION_CLIPBOARD);
-  gtk_clipboard_set_text (clipboard, str, -1);
-}
-
-static void
-gail_text_view_cut_text (AtkEditableText *text,
-                         gint            start_pos,
-                         gint            end_pos)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-  GtkTextIter start, end;
-  gchar *str;
-  GtkClipboard *clipboard;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  view = GTK_TEXT_VIEW (widget);
-  if (!gtk_text_view_get_editable (view))
-    return;
-  buffer = gtk_text_view_get_buffer (view);
-
-  gtk_text_buffer_get_iter_at_offset (buffer, &start, start_pos);
-  gtk_text_buffer_get_iter_at_offset (buffer, &end, end_pos);
-  str = gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
-  clipboard = gtk_clipboard_get_for_display (gtk_widget_get_display (widget),
-                                             GDK_SELECTION_CLIPBOARD);
-  gtk_clipboard_set_text (clipboard, str, -1);
-  gtk_text_buffer_delete (buffer, &start, &end);
-}
-
-static void
-gail_text_view_delete_text (AtkEditableText *text,
-                            gint            start_pos,
-                            gint            end_pos)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-  GtkTextIter start_itr;
-  GtkTextIter end_itr;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  view = GTK_TEXT_VIEW (widget);
-  if (!gtk_text_view_get_editable (view))
-    return;
-  buffer = gtk_text_view_get_buffer (view);
-
-  gtk_text_buffer_get_iter_at_offset (buffer, &start_itr, start_pos);
-  gtk_text_buffer_get_iter_at_offset (buffer, &end_itr, end_pos);
-  gtk_text_buffer_delete (buffer, &start_itr, &end_itr);
-}
-
-static void
-gail_text_view_paste_text (AtkEditableText *text,
-                           gint            position)
-{
-  GtkTextView *view;
-  GtkWidget *widget;
-  GtkTextBuffer *buffer;
-  GailTextViewPaste paste_struct;
-  GtkClipboard *clipboard;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (text));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  view = GTK_TEXT_VIEW (widget);
-  if (!gtk_text_view_get_editable (view))
-    return;
-  buffer = gtk_text_view_get_buffer (view);
-
-  paste_struct.buffer = buffer;
-  paste_struct.position = position;
-
-  g_object_ref (paste_struct.buffer);
-  clipboard = gtk_clipboard_get_for_display (gtk_widget_get_display (widget),
-                                             GDK_SELECTION_CLIPBOARD);
-  gtk_clipboard_request_text (clipboard,
-    gail_text_view_paste_received, &paste_struct);
-}
-
-static void
-gail_text_view_paste_received (GtkClipboard *clipboard,
-                               const gchar  *text,
-                               gpointer     data)
-{
-  GailTextViewPaste* paste_struct = (GailTextViewPaste *)data;
-  GtkTextIter pos_itr;
-
-  if (text)
-    {
-      gtk_text_buffer_get_iter_at_offset (paste_struct->buffer, &pos_itr,
-         paste_struct->position);
-      gtk_text_buffer_insert (paste_struct->buffer, &pos_itr, text, -1);
-    }
-
-  g_object_unref (paste_struct->buffer);
-}
-
-/* Callbacks */
-
-/* Note arg1 returns the start of the insert range, arg3 returns the
- * end of the insert range if multiple characters are inserted.  If one
- * character is inserted they have the same value, which is the caret
- * location.  arg2 returns the begin location of the insert.
- */
-static void 
-_gail_text_view_insert_text_cb (GtkTextBuffer *buffer,
-                                GtkTextIter   *arg1, 
-                                gchar         *arg2, 
-                                gint          arg3,
-                                gpointer      user_data)
-{
-  GtkTextView *text = (GtkTextView *) user_data;
-  AtkObject *accessible;
-  GailTextView *gail_text_view;
-  gint position;
-  gint length;
-
-  g_return_if_fail (arg3 > 0);
-
-  accessible = gtk_widget_get_accessible(GTK_WIDGET(text));
-  gail_text_view = GAIL_TEXT_VIEW (accessible);
-
-  gail_text_view->signal_name = "text_changed::insert";
-  position = gtk_text_iter_get_offset (arg1);
-  length = g_utf8_strlen(arg2, arg3);
-  
-  if (gail_text_view->length == 0)
-    {
-      gail_text_view->position = position;
-      gail_text_view->length = length;
-    }
-  else if (gail_text_view->position + gail_text_view->length == position)
-    {
-      gail_text_view->length += length;
-    }
-  else
-    {
-      /*
-       * We have a non-contiguous insert so report what we have
-       */
-      if (gail_text_view->insert_notify_handler)
-        {
-          g_source_remove (gail_text_view->insert_notify_handler);
-        }
-      gail_text_view->insert_notify_handler = 0;
-      insert_idle_handler (gail_text_view);
-      gail_text_view->position = position;
-      gail_text_view->length = length;
-    }
-    
-  /*
-   * The signal will be emitted when the changed signal is received
-   */
-}
-
-/* Note arg1 returns the start of the delete range, arg2 returns the
- * end of the delete range if multiple characters are deleted.  If one
- * character is deleted they have the same value, which is the caret
- * location.
- */
-static void 
-_gail_text_view_delete_range_cb (GtkTextBuffer *buffer,
-                                 GtkTextIter   *arg1, 
-                                 GtkTextIter   *arg2,
-                                 gpointer      user_data)
-{
-  GtkTextView *text = (GtkTextView *) user_data;
-  AtkObject *accessible;
-  GailTextView *gail_text_view;
-  gint offset = gtk_text_iter_get_offset (arg1);
-  gint length = gtk_text_iter_get_offset (arg2) - offset;
-
-  accessible = gtk_widget_get_accessible(GTK_WIDGET(text));
-  gail_text_view = GAIL_TEXT_VIEW (accessible);
-  if (gail_text_view->insert_notify_handler)
-    {
-      g_source_remove (gail_text_view->insert_notify_handler);
-      gail_text_view->insert_notify_handler = 0;
-      if (gail_text_view->position == offset && 
-          gail_text_view->length == length)
-        {
-        /*
-         * Do not bother with insert and delete notifications
-         */
-          gail_text_view->signal_name = NULL;
-          gail_text_view->position = 0;
-          gail_text_view->length = 0;
-          return;
-        }
-
-      insert_idle_handler (gail_text_view);
-    }
-  g_signal_emit_by_name (accessible, "text_changed::delete",
-                         offset, length);
-}
-
-/* Note arg1 and arg2 point to the same offset, which is the caret
- * position after the move
- */
-static void 
-_gail_text_view_mark_set_cb (GtkTextBuffer *buffer,
-                             GtkTextIter   *arg1, 
-                             GtkTextMark   *arg2,
-                             gpointer      user_data)
-{
-  GtkTextView *text = (GtkTextView *) user_data;
-  AtkObject *accessible;
-  GailTextView *gail_text_view;
-  const char *mark_name = gtk_text_mark_get_name(arg2);
-
-  accessible = gtk_widget_get_accessible(GTK_WIDGET(text));
-  gail_text_view = GAIL_TEXT_VIEW (accessible);
-
-  /*
-   * Only generate the signal for the "insert" mark, which
-   * represents the cursor.
-   */
-  if (mark_name && !strcmp(mark_name, "insert"))
-    {
-      int insert_offset, selection_bound;
-      gboolean selection_changed;
-
-      insert_offset = gtk_text_iter_get_offset (arg1);
-
-      selection_bound = get_selection_bound (buffer);
-      if (selection_bound != insert_offset)
-        {
-          if (selection_bound != gail_text_view->previous_selection_bound ||
-              insert_offset != gail_text_view->previous_insert_offset)
-            {
-              selection_changed = TRUE;
-            }
-          else
-            {
-              selection_changed = FALSE;
-            }
-        }
-      else if (gail_text_view->previous_selection_bound != gail_text_view->previous_insert_offset)
-        {
-          selection_changed = TRUE;
-        }
-      else
-        {
-          selection_changed = FALSE;
-        }
-
-      emit_text_caret_moved (gail_text_view, insert_offset);
-      /*
-       * insert and selection_bound marks are different to a selection
-       * has changed
-       */
-      if (selection_changed)
-        g_signal_emit_by_name (accessible, "text_selection_changed");
-      gail_text_view->previous_selection_bound = selection_bound;
-    }
-}
-
-static void 
-_gail_text_view_changed_cb (GtkTextBuffer *buffer,
-                            gpointer      user_data)
-{
-  GtkTextView *text = (GtkTextView *) user_data;
-  AtkObject *accessible;
-  GailTextView *gail_text_view;
-
-  accessible = gtk_widget_get_accessible (GTK_WIDGET (text));
-  gail_text_view = GAIL_TEXT_VIEW (accessible);
-  if (gail_text_view->signal_name)
-    {
-      if (!gail_text_view->insert_notify_handler)
-        {
-          gail_text_view->insert_notify_handler = gdk_threads_add_idle (insert_idle_handler, accessible);
-        }
-      return;
-    }
-  emit_text_caret_moved (gail_text_view, get_insert_offset (buffer));
-  gail_text_view->previous_selection_bound = get_selection_bound (buffer);
-}
-
-static gchar*
-get_text_near_offset (AtkText          *text,
-                      GailOffsetType   function,
-                      AtkTextBoundary  boundary_type,
-                      gint             offset,
-                      gint             *start_offset,
-                      gint             *end_offset)
-{
-  GtkTextView *view;
-  gpointer layout = NULL;
-
-  view = GTK_TEXT_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (text)));
-
-  /*
-   * Pass the GtkTextView to the function gail_text_util_get_text() 
-   * so it can find the start and end of the current line on the display.
-   */
-  if (boundary_type == ATK_TEXT_BOUNDARY_LINE_START ||
-      boundary_type == ATK_TEXT_BOUNDARY_LINE_END)
-    layout = view;
-
-  return gail_text_util_get_text (GAIL_TEXT_VIEW (text)->textutil, layout,
-                                  function, boundary_type, offset, 
-                                    start_offset, end_offset);
-}
-
-static gint
-get_insert_offset (GtkTextBuffer *buffer)
-{
-  GtkTextMark *cursor_mark;
-  GtkTextIter cursor_itr;
-
-  cursor_mark = gtk_text_buffer_get_insert (buffer);
-  gtk_text_buffer_get_iter_at_mark (buffer, &cursor_itr, cursor_mark);
-  return gtk_text_iter_get_offset (&cursor_itr);
-}
-
-static gint
-get_selection_bound (GtkTextBuffer *buffer)
-{
-  GtkTextMark *selection_mark;
-  GtkTextIter selection_itr;
-
-  selection_mark = gtk_text_buffer_get_selection_bound (buffer);
-  gtk_text_buffer_get_iter_at_mark (buffer, &selection_itr, selection_mark);
-  return gtk_text_iter_get_offset (&selection_itr);
-}
-
-static void
-emit_text_caret_moved (GailTextView *gail_text_view,
-                       gint          insert_offset)
-{
-  /*
-   * If we have text which has been inserted notify the user
-   */
-  if (gail_text_view->insert_notify_handler)
-    {
-      g_source_remove (gail_text_view->insert_notify_handler);
-      gail_text_view->insert_notify_handler = 0;
-      insert_idle_handler (gail_text_view);
-    }
-
-  if (insert_offset != gail_text_view->previous_insert_offset)
-    {
-      /*
-       * If the caret position has not changed then don't bother notifying
-       *
-       * When mouse click is used to change caret position, notification
-       * is received on button down and button up.
-       */
-      g_signal_emit_by_name (gail_text_view, "text_caret_moved", insert_offset);
-      gail_text_view->previous_insert_offset = insert_offset;
-    }
-}
-
-static gint
-insert_idle_handler (gpointer data)
-{
-  GailTextView *gail_text_view;
-  GtkTextBuffer *buffer;
-
-  gail_text_view = GAIL_TEXT_VIEW (data);
-
-  g_signal_emit_by_name (data,
-                         gail_text_view->signal_name,
-                         gail_text_view->position,
-                         gail_text_view->length);
-  gail_text_view->signal_name = NULL;
-  gail_text_view->position = 0;
-  gail_text_view->length = 0;
-
-  buffer = gail_text_view->textutil->buffer;
-  if (gail_text_view->insert_notify_handler)
-    {
-    /*
-     * If called from idle handler notify caret moved
-     */
-      gail_text_view->insert_notify_handler = 0;
-      emit_text_caret_moved (gail_text_view, get_insert_offset (buffer));
-      gail_text_view->previous_selection_bound = get_selection_bound (buffer);
-    }
-
-  return FALSE;
-}
-
-static void       
-atk_streamable_content_interface_init    (AtkStreamableContentIface *iface)
-{
-  iface->get_n_mime_types = gail_streamable_content_get_n_mime_types;
-  iface->get_mime_type = gail_streamable_content_get_mime_type;
-  iface->get_stream = gail_streamable_content_get_stream;
-}
-
-static gint       gail_streamable_content_get_n_mime_types (AtkStreamableContent *streamable)
-{
-    gint n_mime_types = 0;
-
-    if (GAIL_IS_TEXT_VIEW (streamable) && GAIL_TEXT_VIEW (streamable)->textutil)
-    {
-       int i;
-       gboolean advertises_plaintext = FALSE;
-       GdkAtom *atoms =
-            gtk_text_buffer_get_serialize_formats (
-               GAIL_TEXT_VIEW (streamable)->textutil->buffer, 
-               &n_mime_types);
-       for (i = 0; i < n_mime_types-1; ++i)
-           if (!strcmp ("text/plain", gdk_atom_name (atoms[i])))
-               advertises_plaintext = TRUE;
-       if (!advertises_plaintext) ++n_mime_types; 
-        /* we support text/plain even if the GtkTextBuffer doesn't */
-    }
-    return n_mime_types;
-}
-
-static const gchar*
-gail_streamable_content_get_mime_type (AtkStreamableContent *streamable, gint i)
-{
-    if (GAIL_IS_TEXT_VIEW (streamable) && GAIL_TEXT_VIEW (streamable)->textutil)
-    {
-       gint n_mime_types = 0;
-       GdkAtom *atoms;
-       atoms = gtk_text_buffer_get_serialize_formats (
-           GAIL_TEXT_VIEW (streamable)->textutil->buffer, 
-           &n_mime_types);
-       if (i < n_mime_types)
-       {
-           return gdk_atom_name (atoms [i]);
-       }
-       else if (i == n_mime_types)
-           return "text/plain";
-    }
-    return NULL;
-}
-
-static GIOChannel*       gail_streamable_content_get_stream       (AtkStreamableContent *streamable,
-                                                                  const gchar *mime_type)
-{
-    gint i, n_mime_types = 0;
-    GdkAtom *atoms;
-    if (!GAIL_IS_TEXT_VIEW (streamable) || !GAIL_TEXT_VIEW (streamable)->textutil)
-       return NULL;
-    atoms = gtk_text_buffer_get_serialize_formats (
-       GAIL_TEXT_VIEW (streamable)->textutil->buffer, 
-       &n_mime_types);
-    for (i = 0; i < n_mime_types; ++i) 
-    {
-       if (!strcmp ("text/plain", mime_type) ||
-           !strcmp (gdk_atom_name (atoms[i]), mime_type)) {
-           GtkTextBuffer *buffer;
-           guint8 *cbuf;
-           GError *err = NULL;
-           gsize len, written;
-           gchar tname[80];
-           GtkTextIter start, end;
-           GIOChannel *gio = NULL;
-           int fd;
-           buffer = GAIL_TEXT_VIEW (streamable)->textutil->buffer;
-           gtk_text_buffer_get_iter_at_offset (buffer, &start, 0);
-           gtk_text_buffer_get_iter_at_offset (buffer, &end, -1);
-           if (!strcmp ("text/plain", mime_type)) 
-           {
-               cbuf = (guint8*) gtk_text_buffer_get_text (buffer, &start, &end, FALSE);
-               len = strlen ((const char *) cbuf); 
-           }
-           else
-           {
-               cbuf = gtk_text_buffer_serialize (buffer, buffer, atoms[i], &start, &end, &len);
-           }
-           g_snprintf (tname, 20, "streamXXXXXX");
-           fd = g_mkstemp (tname);
-           gio = g_io_channel_unix_new (fd);
-           g_io_channel_set_encoding (gio, NULL, &err);
-           if (!err) g_io_channel_write_chars (gio, (const char *) cbuf, (gssize) len, &written, &err);
-           else g_message ("%s", err->message);
-           if (!err) g_io_channel_seek_position (gio, 0, G_SEEK_SET, &err);
-           else g_message ("%s", err->message);
-           if (!err) g_io_channel_flush (gio, &err);
-           else g_message ("%s", err->message);
-           if (err) {
-               g_message ("<error writing to stream [%s]>", tname);
-               g_error_free (err);
-           }
-           /* make sure the file is removed on unref of the giochannel */
-           else {
-               g_unlink (tname);
-               return gio; 
-           }
-       }
-    }
-    return NULL;
-}
-
diff --git a/modules/other/gail/gailtextview.h b/modules/other/gail/gailtextview.h
deleted file mode 100644 (file)
index 5a88aba..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_TEXT_VIEW_H__
-#define __GAIL_TEXT_VIEW_H__
-
-#include <gail/gailcontainer.h>
-#include <libgail-util/gailtextutil.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_TEXT_VIEW                  (gail_text_view_get_type ())
-#define GAIL_TEXT_VIEW(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_TEXT_VIEW, GailTextView))
-#define GAIL_TEXT_VIEW_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_TEXT_VIEW, GailTextViewClass))
-#define GAIL_IS_TEXT_VIEW(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_TEXT_VIEW))
-#define GAIL_IS_TEXT_VIEW_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_TEXT_VIEW))
-#define GAIL_TEXT_VIEW_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_TEXT_VIEW, GailTextViewClass))
-
-typedef struct _GailTextView              GailTextView;
-typedef struct _GailTextViewClass         GailTextViewClass;
-
-struct _GailTextView
-{
-  GailContainer  parent;
-
-  GailTextUtil   *textutil;
-  gint           previous_insert_offset;
-  gint           previous_selection_bound;
-  /*
-   * These fields store information about text changed
-   */
-  gchar          *signal_name;
-  gint           position;
-  gint           length;
-
-  guint          insert_notify_handler;
-};
-
-GType gail_text_view_get_type (void);
-
-struct _GailTextViewClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_TEXT_VIEW_H__ */
diff --git a/modules/other/gail/gailtogglebutton.h b/modules/other/gail/gailtogglebutton.h
deleted file mode 100644 (file)
index 6c16382..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_TOGGLE_BUTTON_H__
-#define __GAIL_TOGGLE_BUTTON_H__
-
-#include <gail/gailbutton.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_TOGGLE_BUTTON              (gail_toggle_button_get_type ())
-#define GAIL_TOGGLE_BUTTON(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_TOGGLE_BUTTON, GailToggleButton))
-#define GAIL_TOGGLE_BUTTON_CLASS(klass)      (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_TOGGLE_BUTTON, GailToggleButtonClass))
-#define GAIL_IS_TOGGLE_BUTTON(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_TOGGLE_BUTTON))
-#define GAIL_IS_TOGGLE_BUTTON_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_TOGGLE_BUTTON))
-#define GAIL_TOGGLE_BUTTON_GET_CLASS(obj)    (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_TOGGLE_BUTTON, GailToggleButtonClass))
-
-typedef struct _GailToggleButton              GailToggleButton;
-typedef struct _GailToggleButtonClass         GailToggleButtonClass;
-
-struct _GailToggleButton
-{
-  GailButton parent;
-};
-
-GType gail_toggle_button_get_type (void);
-
-struct _GailToggleButtonClass
-{
-  GailButtonClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_TOGGLE_BUTTON_H__ */
diff --git a/modules/other/gail/gailtoplevel.c b/modules/other/gail/gailtoplevel.c
deleted file mode 100644 (file)
index 55c69af..0000000
+++ /dev/null
@@ -1,368 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <stdlib.h>
-#include <string.h>
-
-#include <gtk/gtkx.h>
-
-#include "gailtoplevel.h"
-
-static void             gail_toplevel_class_init        (GailToplevelClass      *klass);
-static void             gail_toplevel_init              (GailToplevel           *toplevel);
-static void             gail_toplevel_initialize        (AtkObject              *accessible,
-                                                         gpointer                data);
-static void             gail_toplevel_object_finalize   (GObject                *obj);
-
-/* atkobject.h */
-
-static gint             gail_toplevel_get_n_children    (AtkObject              *obj);
-static AtkObject*       gail_toplevel_ref_child         (AtkObject              *obj,
-                                                        gint                    i);
-static AtkObject*       gail_toplevel_get_parent        (AtkObject              *obj);
-
-/* Callbacks */
-
-
-static void             gail_toplevel_window_destroyed  (GtkWindow              *window,
-                                                        GailToplevel            *text);
-static gboolean         gail_toplevel_hide_event_watcher (GSignalInvocationHint *ihint,
-                                                        guint                   n_param_values,
-                                                        const GValue            *param_values,
-                                                        gpointer                data);
-static gboolean         gail_toplevel_show_event_watcher (GSignalInvocationHint *ihint,
-                                                        guint                   n_param_values,
-                                                        const GValue            *param_values,
-                                                        gpointer                data);
-
-/* Misc */
-
-static void      _gail_toplevel_remove_child            (GailToplevel           *toplevel,
-                                                        GtkWindow               *window);
-static gboolean  is_attached_menu_window                (GtkWidget              *widget);
-static gboolean  is_combo_window                        (GtkWidget              *widget);
-
-
-G_DEFINE_TYPE (GailToplevel, gail_toplevel, ATK_TYPE_OBJECT)
-
-static void
-gail_toplevel_class_init (GailToplevelClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS(klass);
-  GObjectClass *g_object_class = G_OBJECT_CLASS(klass);
-
-  class->initialize = gail_toplevel_initialize;
-  class->get_n_children = gail_toplevel_get_n_children;
-  class->ref_child = gail_toplevel_ref_child;
-  class->get_parent = gail_toplevel_get_parent;
-
-  g_object_class->finalize = gail_toplevel_object_finalize;
-}
-
-static void
-gail_toplevel_init (GailToplevel *toplevel)
-{
-  GtkWindow *window;
-  GtkWidget *widget;
-  GList *l;
-  guint signal_id;
-  
-  l = toplevel->window_list = gtk_window_list_toplevels ();
-
-  while (l)
-    {
-      window = GTK_WINDOW (l->data);
-      widget = GTK_WIDGET (window);
-      if (!window || 
-          !gtk_widget_get_visible (widget) ||
-          is_attached_menu_window (widget) ||
-#ifdef GDK_WINDOWING_X11
-          GTK_IS_PLUG (window) ||
-#endif
-          gtk_widget_get_parent (GTK_WIDGET (window)))
-        {
-          GList *temp_l  = l->next;
-
-          toplevel->window_list = g_list_delete_link (toplevel->window_list, l);
-          l = temp_l;
-        }
-      else
-        {
-          g_signal_connect (G_OBJECT (window), 
-                            "destroy",
-                            G_CALLBACK (gail_toplevel_window_destroyed),
-                            toplevel);
-          l = l->next;
-        }
-    }
-
-  g_type_class_ref (GTK_TYPE_WINDOW);
-
-  signal_id  = g_signal_lookup ("show", GTK_TYPE_WINDOW);
-  g_signal_add_emission_hook (signal_id, 0,
-    gail_toplevel_show_event_watcher, toplevel, (GDestroyNotify) NULL);
-
-  signal_id  = g_signal_lookup ("hide", GTK_TYPE_WINDOW);
-  g_signal_add_emission_hook (signal_id, 0,
-    gail_toplevel_hide_event_watcher, toplevel, (GDestroyNotify) NULL);
-}
-
-static void
-gail_toplevel_initialize (AtkObject *accessible,
-                          gpointer  data)
-{
-  ATK_OBJECT_CLASS (gail_toplevel_parent_class)->initialize (accessible, data);
-
-  accessible->role = ATK_ROLE_APPLICATION;
-  accessible->name = g_get_prgname();
-  accessible->accessible_parent = NULL;
-}
-
-static void
-gail_toplevel_object_finalize (GObject *obj)
-{
-  GailToplevel *toplevel = GAIL_TOPLEVEL (obj);
-
-  if (toplevel->window_list)
-    g_list_free (toplevel->window_list);
-
-  G_OBJECT_CLASS (gail_toplevel_parent_class)->finalize (obj);
-}
-
-static AtkObject*
-gail_toplevel_get_parent (AtkObject *obj)
-{
-    return NULL;
-}
-
-static gint
-gail_toplevel_get_n_children (AtkObject *obj)
-{
-  GailToplevel *toplevel = GAIL_TOPLEVEL (obj);
-
-  gint rc = g_list_length (toplevel->window_list);
-  return rc;
-}
-
-static AtkObject*
-gail_toplevel_ref_child (AtkObject *obj,
-                         gint      i)
-{
-  GailToplevel *toplevel;
-  gpointer ptr;
-  GtkWidget *widget;
-  AtkObject *atk_obj;
-
-  toplevel = GAIL_TOPLEVEL (obj);
-  ptr = g_list_nth_data (toplevel->window_list, i);
-  if (!ptr)
-    return NULL;
-  widget = GTK_WIDGET (ptr);
-  atk_obj = gtk_widget_get_accessible (widget);
-
-  g_object_ref (atk_obj);
-  return atk_obj;
-}
-
-/*
- * Window destroy events on GtkWindow cause a child to be removed
- * from the toplevel
- */
-static void
-gail_toplevel_window_destroyed (GtkWindow    *window,
-                                GailToplevel *toplevel)
-{
-  _gail_toplevel_remove_child (toplevel, window);
-}
-
-/*
- * Show events cause a child to be added to the toplevel
- */
-static gboolean
-gail_toplevel_show_event_watcher (GSignalInvocationHint *ihint,
-                                  guint                  n_param_values,
-                                  const GValue          *param_values,
-                                  gpointer               data)
-{
-  GailToplevel *toplevel = GAIL_TOPLEVEL (data);
-  AtkObject *atk_obj = ATK_OBJECT (toplevel);
-  GObject *object;
-  GtkWidget *widget;
-  gint n_children;
-  AtkObject *child;
-
-  object = g_value_get_object (param_values + 0);
-
-  if (!GTK_IS_WINDOW (object))
-    return TRUE;
-
-  widget = GTK_WIDGET (object);
-  if (gtk_widget_get_parent (widget) ||
-      is_attached_menu_window (widget) ||
-#ifdef GDK_WINDOWING_X11
-      GTK_IS_PLUG (widget) ||
-#endif
-      is_combo_window (widget))
-    return TRUE;
-
-  child = gtk_widget_get_accessible (widget);
-  if (atk_object_get_role (child) == ATK_ROLE_REDUNDANT_OBJECT)
-    {
-      return TRUE;
-    }
-
-  /* 
-   * Add the window to the list & emit the signal.
-   * Don't do this for tooltips (Bug #150649).
-   */
-  if (atk_object_get_role (child) == ATK_ROLE_TOOL_TIP)
-    {
-      return TRUE;
-    }
-
-  toplevel->window_list = g_list_append (toplevel->window_list, widget);
-
-  n_children = g_list_length (toplevel->window_list);
-
-  /*
-   * Must subtract 1 from the n_children since the index is 0-based
-   * but g_list_length is 1-based.
-   */
-  atk_object_set_parent (child, atk_obj);
-  g_signal_emit_by_name (atk_obj, "children-changed::add",
-                         n_children - 1, 
-                         child, NULL);
-
-  /* Connect destroy signal callback */
-  g_signal_connect (G_OBJECT(object), 
-                    "destroy",
-                    G_CALLBACK (gail_toplevel_window_destroyed),
-                    toplevel);
-
-  return TRUE;
-}
-
-/*
- * Hide events on GtkWindow cause a child to be removed from the toplevel
- */
-static gboolean
-gail_toplevel_hide_event_watcher (GSignalInvocationHint *ihint,
-                                  guint                  n_param_values,
-                                  const GValue          *param_values,
-                                  gpointer               data)
-{
-  GailToplevel *toplevel = GAIL_TOPLEVEL (data);
-  GObject *object;
-
-  object = g_value_get_object (param_values + 0);
-
-  if (!GTK_IS_WINDOW (object))
-    return TRUE;
-
-  _gail_toplevel_remove_child (toplevel, GTK_WINDOW (object));
-  return TRUE;
-}
-
-/*
- * Common code used by destroy and hide events on GtkWindow
- */
-static void
-_gail_toplevel_remove_child (GailToplevel *toplevel, 
-                             GtkWindow    *window)
-{
-  AtkObject *atk_obj = ATK_OBJECT (toplevel);
-  GList *l;
-  guint window_count = 0;
-  AtkObject *child;
-
-  if (toplevel->window_list)
-    {
-        GtkWindow *tmp_window;
-
-        /* Must loop through them all */
-        for (l = toplevel->window_list; l; l = l->next)
-        {
-          tmp_window = GTK_WINDOW (l->data);
-
-          if (window == tmp_window)
-            {
-              /* Remove the window from the window_list & emit the signal */
-              toplevel->window_list = g_list_remove (toplevel->window_list,
-                                                     l->data);
-              child = gtk_widget_get_accessible (GTK_WIDGET (window));
-              g_signal_emit_by_name (atk_obj, "children-changed::remove",
-                                     window_count, 
-                                     child, NULL);
-              atk_object_set_parent (child, NULL);
-              break;
-            }
-
-          window_count++;
-        }
-    }
-}
-
-static gboolean
-is_attached_menu_window (GtkWidget *widget)
-{
-  GtkWidget *child;
-  gboolean ret = FALSE;
-
-  child = gtk_bin_get_child (GTK_BIN (widget));
-  if (GTK_IS_MENU (child))
-    {
-      GtkWidget *attach;
-
-      attach = gtk_menu_get_attach_widget (GTK_MENU (child));
-      /* Allow for menu belonging to the Panel Menu, which is a GtkButton */
-      if (GTK_IS_MENU_ITEM (attach) ||
-          GTK_IS_BUTTON (attach))
-        ret = TRUE;
-    }
-  return ret;
-}
-
-static gboolean
-is_combo_window (GtkWidget *widget)
-{
-  GtkWidget *child;
-  AtkObject *obj;
-
-  child = gtk_bin_get_child (GTK_BIN (widget));
-
-  if (!GTK_IS_EVENT_BOX (child))
-    return FALSE;
-
-  child = gtk_bin_get_child (GTK_BIN (child));
-
-  if (!GTK_IS_FRAME (child))
-    return FALSE;
-
-  child = gtk_bin_get_child (GTK_BIN (child));
-
-  if (!GTK_IS_SCROLLED_WINDOW (child))
-    return FALSE;
-
-  obj = gtk_widget_get_accessible (child);
-  obj = atk_object_get_parent (obj);
-
-  return  FALSE;
-}
diff --git a/modules/other/gail/gailtoplevel.h b/modules/other/gail/gailtoplevel.h
deleted file mode 100644 (file)
index d5ca8d5..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.         See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_TOPLEVEL_H__
-#define __GAIL_TOPLEVEL_H__
-
-#include <atk/atk.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_TOPLEVEL               (gail_toplevel_get_type ())
-#define GAIL_TOPLEVEL(obj)               (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_TOPLEVEL, GailToplevel))
-#define GAIL_TOPLEVEL_CLASS(klass)       (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_TOPLEVEL, GailToplevelClass))
-#define GAIL_IS_TOPLEVEL(obj)            (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_TOPLEVEL))
-#define GAIL_IS_TOPLEVEL_CLASS(klass)    (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_TOPLEVEL))
-#define GAIL_TOPLEVEL_GET_CLASS(obj)     (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_TOPLEVEL, GailToplevelClass))
-
-typedef struct _GailToplevel             GailToplevel;
-typedef struct _GailToplevelClass        GailToplevelClass;
-  
-struct _GailToplevel
-{
-  AtkObject parent;
-  GList *window_list;
-};
-
-GType gail_toplevel_get_type (void);
-
-struct _GailToplevelClass
-{
-  AtkObjectClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_TOPLEVEL_H__ */
diff --git a/modules/other/gail/gailtreeview.c b/modules/other/gail/gailtreeview.c
deleted file mode 100644 (file)
index 77ef9c9..0000000
+++ /dev/null
@@ -1,4651 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-#include <gtk/gtk.h>
-#ifdef GDK_WINDOWING_X11
-#include <gdk/x11/gdkx.h>
-#endif
-#include "gailtreeview.h"
-#include "gailrenderercell.h"
-#include "gailbooleancell.h"
-#include "gailcontainercell.h"
-#include "gailtextcell.h"
-#include "gailcellparent.h"
-#include "gail-private-macros.h"
-
-typedef struct _GailTreeViewRowInfo    GailTreeViewRowInfo;
-typedef struct _GailTreeViewCellInfo   GailTreeViewCellInfo;
-
-static void             gail_tree_view_class_init       (GailTreeViewClass      *klass);
-static void             gail_tree_view_init             (GailTreeView           *view);
-static void             gail_tree_view_real_initialize  (AtkObject              *obj,
-                                                         gpointer               data);
-static void             gail_tree_view_real_notify_gtk  (GObject               *obj,
-                                                         GParamSpec            *pspec);
-static void             gail_tree_view_finalize         (GObject                *object);
-
-static void             gail_tree_view_connect_widget_destroyed 
-                                                        (GtkAccessible          *accessible);
-static void             gail_tree_view_destroyed        (GtkWidget              *widget,
-                                                         GtkAccessible          *accessible); 
-/* atkobject.h */
-
-static gint             gail_tree_view_get_n_children   (AtkObject              *obj);
-static AtkObject*       gail_tree_view_ref_child        (AtkObject              *obj,
-                                                         gint                   i);
-static AtkStateSet*     gail_tree_view_ref_state_set    (AtkObject              *obj);
-
-/* atkcomponent.h */
-
-static void             atk_component_interface_init    (AtkComponentIface      *iface);
-
-static AtkObject*       gail_tree_view_ref_accessible_at_point
-                                                        (AtkComponent           *component,
-                                                         gint                   x,
-                                                         gint                   y,
-                                                         AtkCoordType           coord_type);
-           
-/* atktable.h */
-
-static void             atk_table_interface_init        (AtkTableIface          *iface);
-
-static gint             gail_tree_view_get_index_at     (AtkTable               *table,
-                                                         gint                   row,
-                                                         gint                   column);
-static gint             gail_tree_view_get_column_at_index
-                                                        (AtkTable               *table,
-                                                         gint                   index);
-static gint             gail_tree_view_get_row_at_index (AtkTable               *table,
-                                                         gint                   index);
-
-static AtkObject*       gail_tree_view_table_ref_at     (AtkTable               *table,
-                                                         gint                   row,
-                                                         gint                   column);
-static gint             gail_tree_view_get_n_rows       (AtkTable               *table);
-static gint             gail_tree_view_get_n_columns    (AtkTable               *table);
-static gint             get_n_actual_columns            (GtkTreeView            *tree_view);
-static gboolean         gail_tree_view_is_row_selected  (AtkTable               *table,
-                                                         gint                   row);
-static gboolean         gail_tree_view_is_selected      (AtkTable               *table,
-                                                         gint                   row,
-                                                         gint                   column);
-static gint             gail_tree_view_get_selected_rows 
-                                                        (AtkTable               *table, 
-                                                         gint                   **selected);
-static gboolean         gail_tree_view_add_row_selection 
-                                                        (AtkTable               *table, 
-                                                         gint                   row);
-static gboolean         gail_tree_view_remove_row_selection 
-                                                        (AtkTable               *table, 
-                                                         gint                   row);
-static AtkObject*       gail_tree_view_get_row_header   (AtkTable               *table,
-                                                         gint                   row);
-static AtkObject*       gail_tree_view_get_column_header 
-                                                        (AtkTable               *table,
-                                                         gint                   column);
-static void             gail_tree_view_set_row_header   (AtkTable               *table,
-                                                         gint                   row,
-                                                         AtkObject              *header);
-static void             gail_tree_view_set_column_header 
-                                                        (AtkTable               *table,
-                                                         gint                   column,
-                                                         AtkObject              *header);
-static AtkObject*
-                        gail_tree_view_get_caption      (AtkTable               *table);
-static void             gail_tree_view_set_caption      (AtkTable               *table,
-                                                         AtkObject              *caption);
-static AtkObject*       gail_tree_view_get_summary      (AtkTable               *table);
-static void             gail_tree_view_set_summary      (AtkTable               *table,
-                                                         AtkObject              *accessible);
-static const gchar*
-                        gail_tree_view_get_row_description 
-                                                        (AtkTable               *table,
-                                                         gint                   row);
-static void             gail_tree_view_set_row_description 
-                                                        (AtkTable               *table,
-                                                         gint                   row,
-                                                         const gchar            *description);
-static const gchar*
-                        gail_tree_view_get_column_description
-                                                        (AtkTable               *table,
-                                                         gint                   column);
-static void             gail_tree_view_set_column_description
-                                                        (AtkTable               *table,
-                                                         gint                   column,
-                                                         const gchar            *description);
-
-static void             set_row_data                    (AtkTable               *table,
-                                                         gint                   row,
-                                                         AtkObject              *header,
-                                                         const gchar            *description,
-                                                         gboolean               is_header);
-static GailTreeViewRowInfo* 
-                        get_row_info                    (AtkTable               *table,
-                                                         gint                   row);
-
-/* atkselection.h */
-
-static void             atk_selection_interface_init    (AtkSelectionIface      *iface);
-static gboolean         gail_tree_view_add_selection    (AtkSelection           *selection,
-                                                         gint                   i);
-static gboolean         gail_tree_view_clear_selection  (AtkSelection           *selection);
-static AtkObject*       gail_tree_view_ref_selection    (AtkSelection           *selection,
-                                                         gint                   i);
-static gint             gail_tree_view_get_selection_count 
-                                                        (AtkSelection           *selection);
-static gboolean         gail_tree_view_is_child_selected 
-                                                        (AtkSelection           *selection,
-                                                         gint                   i);
-
-/* gailcellparent.h */
-
-static void             gail_cell_parent_interface_init (GailCellParentIface    *iface);
-static void             gail_tree_view_get_cell_extents (GailCellParent         *parent,
-                                                         GailCell               *cell,
-                                                         gint                   *x,
-                                                         gint                   *y,
-                                                         gint                   *width,
-                                                         gint                   *height,
-                                                         AtkCoordType           coord_type);
-static void             gail_tree_view_get_cell_area    (GailCellParent         *parent,
-                                                         GailCell               *cell,
-                                                         GdkRectangle           *cell_rect);
-static gboolean         gail_tree_view_grab_cell_focus  (GailCellParent         *parent,
-                                                         GailCell               *cell);
-
-/* signal handling */
-
-static gboolean         gail_tree_view_expand_row_gtk   (GtkTreeView            *tree_view,
-                                                         GtkTreeIter            *iter,
-                                                         GtkTreePath            *path);
-static gint             idle_expand_row                 (gpointer               data);
-static gboolean         gail_tree_view_collapse_row_gtk (GtkTreeView            *tree_view,
-                                                         GtkTreeIter            *iter,
-                                                         GtkTreePath            *path);
-static void             gail_tree_view_size_allocate_gtk (GtkWidget             *widget,
-                                                         GtkAllocation          *allocation);
-static void             gail_tree_view_changed_gtk      (GtkTreeSelection       *selection,
-                                                         gpointer               data);
-
-static void             columns_changed                 (GtkTreeView            *tree_view);
-static void             cursor_changed                  (GtkTreeView            *tree_view);
-static gint             idle_cursor_changed             (gpointer               data);
-static gboolean         focus_in                        (GtkWidget             *widget);
-static gboolean         focus_out                       (GtkWidget              *widget);
-
-static void             model_row_changed               (GtkTreeModel           *tree_model,
-                                                         GtkTreePath            *path,
-                                                         GtkTreeIter            *iter,
-                                                         gpointer               user_data);
-static void             column_visibility_changed       (GObject                *object,
-                                                         GParamSpec             *param,
-                                                         gpointer               user_data);
-static void             model_row_inserted              (GtkTreeModel           *tree_model,
-                                                         GtkTreePath            *path,
-                                                         GtkTreeIter            *iter,
-                                                         gpointer               user_data);
-static void             model_row_deleted               (GtkTreeModel           *tree_model,
-                                                         GtkTreePath            *path,
-                                                         gpointer               user_data);
-static void             destroy_count_func              (GtkTreeView            *tree_view,
-                                                         GtkTreePath            *path,
-                                                         gint                   count,
-                                                         gpointer               user_data);
-static void             model_rows_reordered            (GtkTreeModel           *tree_model,
-                                                         GtkTreePath            *path,
-                                                         GtkTreeIter            *iter,
-                                                         gint                   *new_order,
-                                                         gpointer               user_data);
-static void             adjustment_changed              (GtkAdjustment          *adjustment,
-                                                         GtkTreeView            *tree_view);
-
-/* Misc */
-
-static void             set_iter_nth_row                (GtkTreeView            *tree_view,
-                                                         GtkTreeIter            *iter,
-                                                         gint                   row);
-static gint             get_row_from_tree_path          (GtkTreeView            *tree_view,
-                                                         GtkTreePath            *path);
-static GtkTreeViewColumn* get_column                    (GtkTreeView            *tree_view,
-                                                         gint                   in_col);
-static gint             get_actual_column_number        (GtkTreeView            *tree_view,
-                                                         gint                   visible_column);
-static gint             get_visible_column_number       (GtkTreeView            *tree_view,
-                                                         gint                   actual_column);
-static void            iterate_thru_children           (GtkTreeView            *tree_view,
-                                                         GtkTreeModel           *tree_model,
-                                                         GtkTreePath            *tree_path,
-                                                         GtkTreePath            *orig,
-                                                         gint                   *count,
-                                                         gint                   depth);
-static GtkTreeIter*     return_iter_nth_row             (GtkTreeView            *tree_view,
-                                                         GtkTreeModel           *tree_model,
-                                                         GtkTreeIter            *iter,
-                                                         gint                   increment,
-                                                         gint                   row);
-static void             free_row_info                   (GArray                 *array,
-                                                         gint                   array_idx,
-                                                         gboolean               shift);
-static void             clean_cell_info                 (GailTreeView           *tree_view,
-                                                         GList                  *list); 
-static void             clean_rows                      (GailTreeView           *tree_view);
-static void             clean_cols                      (GailTreeView           *tree_view,
-                                                         GtkTreeViewColumn      *tv_col);
-static void             traverse_cells                  (GailTreeView           *tree_view,
-                                                         GtkTreePath            *tree_path,
-                                                         gboolean               set_stale,
-                                                         gboolean               inc_row);
-static gboolean         update_cell_value               (GailRendererCell       *renderer_cell,
-                                                         GailTreeView           *gailview,
-                                                         gboolean               emit_change_signal);
-static void             set_cell_visibility             (GtkTreeView            *tree_view,
-                                                         GailCell               *cell,
-                                                         GtkTreeViewColumn      *tv_col,
-                                                         GtkTreePath            *tree_path,
-                                                         gboolean               emit_signal);
-static gboolean         is_cell_showing                 (GtkTreeView            *tree_view,
-                                                         GdkRectangle           *cell_rect);
-static void             set_expand_state                (GtkTreeView            *tree_view,
-                                                         GtkTreeModel           *tree_model,
-                                                         GailTreeView           *gailview,
-                                                         GtkTreePath            *tree_path,
-                                                         gboolean               set_on_ancestor);
-static void             add_cell_actions                (GailCell               *cell,
-                                                         gboolean               editable);
-
-static void             toggle_cell_expanded            (GailCell               *cell);
-static void             toggle_cell_toggled             (GailCell               *cell);
-static void             edit_cell                       (GailCell               *cell);
-static void             activate_cell                   (GailCell               *cell);
-static void             cell_destroyed                  (gpointer               data);
-#if 0
-static void             cell_info_remove                (GailTreeView           *tree_view, 
-                                                         GailCell               *cell);
-#endif
-static void             cell_info_get_index             (GtkTreeView            *tree_view, 
-                                                         GailTreeViewCellInfo   *info,
-                                                         gint                   *index);
-static void             cell_info_new                   (GailTreeView           *gailview, 
-                                                         GtkTreeModel           *tree_model,
-                                                         GtkTreePath            *path,
-                                                         GtkTreeViewColumn      *tv_col,
-                                                         GailCell               *cell);
-static GailCell*        find_cell                       (GailTreeView           *gailview, 
-                                                         gint                   index);
-static void             refresh_cell_index              (GailCell               *cell);
-static void             get_selected_rows               (GtkTreeModel           *model,
-                                                         GtkTreePath            *path,
-                                                         GtkTreeIter            *iter,
-                                                         gpointer               data);
-static void             connect_model_signals           (GtkTreeView            *view,
-                                                         GailTreeView           *gailview); 
-static void             disconnect_model_signals        (GailTreeView           *gailview); 
-static void             clear_cached_data               (GailTreeView           *view);
-static gint             get_column_number               (GtkTreeView            *tree_view,
-                                                         GtkTreeViewColumn      *column,
-                                                         gboolean               visible); 
-static gint             get_focus_index                 (GtkTreeView            *tree_view);
-static gint             get_index                       (GtkTreeView            *tree_view,
-                                                         GtkTreePath            *path,
-                                                         gint                   actual_column);
-static void             count_rows                      (GtkTreeModel           *model,
-                                                         GtkTreeIter            *iter,
-                                                         GtkTreePath            *end_path,
-                                                         gint                   *count,
-                                                         gint                   level,
-                                                         gint                   depth);
-
-static gboolean         get_next_node_with_child_at_depth 
-                                                        (GtkTreeModel           *model,
-                                                         GtkTreeIter            *iter,
-                                                         GtkTreePath            **path,
-                                                         gint                   level,
-                                                         gint                   depth);
-static gboolean         get_next_node_with_child        (GtkTreeModel           *model,
-                                                         GtkTreePath            *path,
-                                                         GtkTreePath            **return_path);
-static gboolean         get_tree_path_from_row_index    (GtkTreeModel           *model,
-                                                         gint                   row_index,
-                                                         GtkTreePath            **tree_path);
-static gint             get_row_count                   (GtkTreeModel           *model);
-static gboolean         get_path_column_from_index      (GtkTreeView            *tree_view,
-                                                         gint                   index,
-                                                         GtkTreePath            **path,
-                                                         GtkTreeViewColumn      **column);
-static void             set_cell_expandable             (GailCell               *cell);
-
-static GailTreeViewCellInfo* find_cell_info             (GailTreeView           *view,
-                                                         GailCell               *cell,
-                                                          GList**                list,
-                                                        gboolean                live_only);
-static AtkObject *       get_header_from_column         (GtkTreeViewColumn      *tv_col);
-static gboolean          idle_garbage_collect_cell_data (gpointer data);
-static gboolean          garbage_collect_cell_data      (gpointer data);
-
-static GQuark quark_column_desc_object = 0;
-static GQuark quark_column_header_object = 0;
-static gboolean editing = FALSE;
-
-struct _GailTreeViewRowInfo
-{
-  GtkTreeRowReference *row_ref;
-  gchar *description;
-  AtkObject *header;
-};
-
-struct _GailTreeViewCellInfo
-{
-  GailCell *cell;
-  GtkTreeRowReference *cell_row_ref;
-  GtkTreeViewColumn *cell_col_ref;
-  GailTreeView *view;
-  gboolean in_use;
-};
-
-G_DEFINE_TYPE_WITH_CODE (GailTreeView, gail_tree_view, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_TABLE, atk_table_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_SELECTION, atk_selection_interface_init)
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init)
-                         G_IMPLEMENT_INTERFACE (GAIL_TYPE_CELL_PARENT, gail_cell_parent_interface_init))
-
-static void
-gail_tree_view_class_init (GailTreeViewClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  GtkAccessibleClass *accessible_class;
-  GailWidgetClass *widget_class;
-  GailContainerClass *container_class;
-
-  accessible_class = (GtkAccessibleClass*)klass;
-  widget_class = (GailWidgetClass*)klass;
-  container_class = (GailContainerClass*)klass;
-
-  class->get_n_children = gail_tree_view_get_n_children;
-  class->ref_child = gail_tree_view_ref_child;
-  class->ref_state_set = gail_tree_view_ref_state_set;
-  class->initialize = gail_tree_view_real_initialize;
-
-  widget_class->notify_gtk = gail_tree_view_real_notify_gtk;
-
-  accessible_class->connect_widget_destroyed = gail_tree_view_connect_widget_destroyed;
-
-  /*
-   * The children of a GtkTreeView are the buttons at the top of the columns
-   * we do not represent these as children so we do not want to report
-   * children added or deleted when these changed.
-   */
-  container_class->add_gtk = NULL;
-  container_class->remove_gtk = NULL;
-
-  gobject_class->finalize = gail_tree_view_finalize;
-
-  quark_column_desc_object = g_quark_from_static_string ("gtk-column-object");
-  quark_column_header_object = g_quark_from_static_string ("gtk-header-object");
-}
-
-static void
-gail_tree_view_init (GailTreeView *view)
-{
-}
-
-static void
-gail_tree_view_hadjustment_set (GObject    *widget,
-                                GParamSpec *pspec,
-                                gpointer    data)
-{
-  GtkAdjustment *adj;
-  GailTreeView *view = data;
-
-  g_object_get (widget, "hadjustment", &adj, NULL);
-  view->old_hadj = adj;
-  g_object_add_weak_pointer (G_OBJECT (view->old_hadj), (gpointer *)&view->old_hadj);
-  g_signal_connect (adj,
-                    "value-changed",
-                    G_CALLBACK (adjustment_changed),
-                    widget);
-}
-
-static void
-gail_tree_view_vadjustment_set (GObject    *widget,
-                                GParamSpec *pspec,
-                                gpointer    data)
-{
-  GtkAdjustment *adj;
-  GailTreeView *view = data;
-
-  g_object_get (widget, "vadjustment", &adj, NULL);
-  view->old_vadj = adj;
-  g_object_add_weak_pointer (G_OBJECT (view->old_vadj), (gpointer *)&view->old_vadj);
-  g_signal_connect (adj,
-                    "value-changed",
-                    G_CALLBACK (adjustment_changed),
-                    widget);
-}
-
-static void
-gail_tree_view_real_initialize (AtkObject *obj,
-                                gpointer  data)
-{
-  GailTreeView *view;
-  GtkTreeView *tree_view;
-  GtkTreeModel *tree_model;
-  GList *tv_cols, *tmp_list;
-  GtkWidget *widget;
-
-  ATK_OBJECT_CLASS (gail_tree_view_parent_class)->initialize (obj, data);
-
-  view = GAIL_TREE_VIEW (obj);
-  view->caption = NULL;
-  view->summary = NULL;
-  view->row_data = NULL;
-  view->col_data = NULL;
-  view->cell_data = NULL;
-  view->focus_cell = NULL;
-  view->old_hadj = NULL;
-  view->old_vadj = NULL;
-  view->idle_expand_id = 0;
-  view->idle_expand_path = NULL;
-
-  view->n_children_deleted = 0;
-
-  widget = GTK_WIDGET (data);
-  g_signal_connect_after (widget,
-                          "row-collapsed",
-                          G_CALLBACK (gail_tree_view_collapse_row_gtk),
-                          NULL);
-  g_signal_connect (widget,
-                    "row-expanded",
-                    G_CALLBACK (gail_tree_view_expand_row_gtk),
-                    NULL);
-  g_signal_connect (widget,
-                    "size-allocate",
-                    G_CALLBACK (gail_tree_view_size_allocate_gtk),
-                    NULL);
-
-  tree_view = GTK_TREE_VIEW (widget);
-  tree_model = gtk_tree_view_get_model (tree_view);
-
-  /* Set up signal handling */
-
-  g_signal_connect_data (gtk_tree_view_get_selection (tree_view),
-                         "changed",
-                         (GCallback) gail_tree_view_changed_gtk,
-                        obj, NULL, 0);
-
-  g_signal_connect_data (tree_view, "columns-changed",
-    (GCallback) columns_changed, NULL, NULL, 0);
-  g_signal_connect_data (tree_view, "cursor-changed",
-    (GCallback) cursor_changed, NULL, NULL, 0);
-  g_signal_connect_data (GTK_WIDGET (tree_view), "focus-in-event",
-    (GCallback) focus_in, NULL, NULL, 0);
-  g_signal_connect_data (GTK_WIDGET (tree_view), "focus-out-event",
-    (GCallback) focus_out, NULL, NULL, 0);
-
-  view->tree_model = tree_model;
-  if (tree_model)
-    {
-      g_object_add_weak_pointer (G_OBJECT (view->tree_model), (gpointer *)&view->tree_model);
-      connect_model_signals (tree_view, view);
-
-      if (gtk_tree_model_get_flags (tree_model) & GTK_TREE_MODEL_LIST_ONLY)
-        obj->role = ATK_ROLE_TABLE;
-      else
-        obj->role = ATK_ROLE_TREE_TABLE;
-    }
-  else
-    {
-      obj->role = ATK_ROLE_UNKNOWN;
-    }
-
-  /* adjustment callbacks */
-
-  gail_tree_view_hadjustment_set (G_OBJECT (widget), NULL, view);
-  gail_tree_view_vadjustment_set (G_OBJECT (widget), NULL, view);
-  g_signal_connect (widget,
-                    "notify::hadjustment",
-                    G_CALLBACK (gail_tree_view_hadjustment_set),
-                    view);
-  g_signal_connect (widget,
-                    "notify::vadjustment",
-                    G_CALLBACK (gail_tree_view_vadjustment_set),
-                    view);
-
-  view->col_data = g_array_sized_new (FALSE, TRUE, 
-                                      sizeof(GtkTreeViewColumn *), 0);
-
-  tv_cols = gtk_tree_view_get_columns (tree_view);
-
-  for (tmp_list = tv_cols; tmp_list; tmp_list = tmp_list->next)
-    {
-      g_signal_connect_data (tmp_list->data, "notify::visible",
-       (GCallback)column_visibility_changed, 
-        tree_view, NULL, FALSE);
-      g_array_append_val (view->col_data, tmp_list->data);
-    }
-
-  gtk_tree_view_set_destroy_count_func (tree_view, 
-                                        destroy_count_func,
-                                        NULL, NULL);
-  g_list_free (tv_cols);
-}
-
-static void
-gail_tree_view_real_notify_gtk (GObject             *obj,
-                                GParamSpec          *pspec)
-{
-  GtkWidget *widget;
-  AtkObject* atk_obj;
-  GtkTreeView *tree_view;
-  GailTreeView *gailview;
-  GtkAdjustment *adj;
-
-  widget = GTK_WIDGET (obj);
-  atk_obj = gtk_widget_get_accessible (widget);
-  tree_view = GTK_TREE_VIEW (widget);
-  gailview = GAIL_TREE_VIEW (atk_obj);
-
-  if (strcmp (pspec->name, "model") == 0)
-    {
-      GtkTreeModel *tree_model;
-      AtkRole role;
-
-      tree_model = gtk_tree_view_get_model (tree_view);
-      if (gailview->tree_model)
-        disconnect_model_signals (gailview);
-      clear_cached_data (gailview);
-      gailview->tree_model = tree_model;
-      /*
-       * if there is no model the GtkTreeView is probably being destroyed
-       */
-      if (tree_model)
-        {
-          g_object_add_weak_pointer (G_OBJECT (gailview->tree_model), (gpointer *)&gailview->tree_model);
-          connect_model_signals (tree_view, gailview);
-
-          if (gtk_tree_model_get_flags (tree_model) & GTK_TREE_MODEL_LIST_ONLY)
-            role = ATK_ROLE_TABLE;
-          else
-            role = ATK_ROLE_TREE_TABLE;
-        }
-      else
-        {
-          role = ATK_ROLE_UNKNOWN;
-        }
-      atk_object_set_role (atk_obj, role);
-      g_object_freeze_notify (G_OBJECT (atk_obj));
-      g_signal_emit_by_name (atk_obj, "model_changed");
-      g_signal_emit_by_name (atk_obj, "visible_data_changed");
-      g_object_thaw_notify (G_OBJECT (atk_obj));
-    }
-  else if (strcmp (pspec->name, "hadjustment") == 0)
-    {
-      g_object_get (tree_view, "hadjustment", &adj, NULL);
-      g_signal_handlers_disconnect_by_func (gailview->old_hadj, 
-                                           (gpointer) adjustment_changed,
-                                           widget);
-      gailview->old_hadj = adj;
-      g_object_add_weak_pointer (G_OBJECT (gailview->old_hadj), (gpointer *)&gailview->old_hadj);
-      g_signal_connect (adj,
-                        "value-changed",
-                        G_CALLBACK (adjustment_changed),
-                        tree_view);
-    }
-  else if (strcmp (pspec->name, "vadjustment") == 0)
-    {
-      g_object_get (tree_view, "vadjustment", &adj, NULL);
-      g_signal_handlers_disconnect_by_func (gailview->old_vadj,
-                                           (gpointer) adjustment_changed,
-                                           widget);
-      gailview->old_vadj = adj;
-      g_object_add_weak_pointer (G_OBJECT (gailview->old_hadj), (gpointer *)&gailview->old_vadj);
-      g_signal_connect (adj,
-                        "value-changed",
-                        G_CALLBACK (adjustment_changed),
-                        tree_view);
-    }
-  else
-    GAIL_WIDGET_CLASS (gail_tree_view_parent_class)->notify_gtk (obj, pspec);
-}
-
-static void
-gail_tree_view_finalize (GObject           *object)
-{
-  GailTreeView *view = GAIL_TREE_VIEW (object);
-
-  clear_cached_data (view);
-
-  /* remove any idle handlers still pending */
-  if (view->idle_garbage_collect_id)
-    g_source_remove (view->idle_garbage_collect_id);
-  if (view->idle_cursor_changed_id)
-    g_source_remove (view->idle_cursor_changed_id);
-  if (view->idle_expand_id)
-    g_source_remove (view->idle_expand_id);
-
-  if (view->caption)
-    g_object_unref (view->caption);
-  if (view->summary)
-    g_object_unref (view->summary);
-
-  if (view->tree_model)
-    disconnect_model_signals (view);
-
-  if (view->col_data)
-    {
-      GArray *array = view->col_data;
-
-     /*
-      * No need to free the contents of the array since it
-      * just contains pointers to the GtkTreeViewColumn
-      * objects that are in the GtkTreeView.
-      */
-      g_array_free (array, TRUE);
-    }
-
-  G_OBJECT_CLASS (gail_tree_view_parent_class)->finalize (object);
-}
-
-static void
-gail_tree_view_connect_widget_destroyed (GtkAccessible *accessible)
-{
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  if (widget)
-    {
-      g_signal_connect_after (widget,
-                              "destroy",
-                              G_CALLBACK (gail_tree_view_destroyed),
-                              accessible);
-    }
-  GTK_ACCESSIBLE_CLASS (gail_tree_view_parent_class)->connect_widget_destroyed (accessible);
-}
-
-static void
-gail_tree_view_destroyed (GtkWidget *widget,
-                          GtkAccessible *accessible)
-{
-  GtkAdjustment *adj;
-  GailTreeView *gailview;
-
-  gail_return_if_fail (GTK_IS_TREE_VIEW (widget));
-
-  gailview = GAIL_TREE_VIEW (accessible);
-  adj = gailview->old_hadj;
-  if (adj)
-    g_signal_handlers_disconnect_by_func (adj, 
-                                          (gpointer) adjustment_changed,
-                                          widget);
-  adj = gailview->old_vadj;
-  if (adj)
-    g_signal_handlers_disconnect_by_func (adj, 
-                                          (gpointer) adjustment_changed,
-                                          widget);
-  if (gailview->tree_model)
-    {
-      disconnect_model_signals (gailview);
-      gailview->tree_model = NULL;
-    }
-  if (gailview->focus_cell)
-    {
-      g_object_unref (gailview->focus_cell);
-      gailview->focus_cell = NULL;
-    }
-  if (gailview->idle_expand_id) 
-    {
-      g_source_remove (gailview->idle_expand_id);
-      gailview->idle_expand_id = 0;
-    }
-}
-
-gint 
-get_focus_index (GtkTreeView *tree_view)
-{
-  GtkTreePath *focus_path;
-  GtkTreeViewColumn *focus_column;
-  gint index;
-
-  gtk_tree_view_get_cursor (tree_view, &focus_path, &focus_column);
-  if (focus_path && focus_column)
-    {
-
-      index = get_index (tree_view, focus_path,
-                         get_column_number (tree_view, focus_column, FALSE));
-    }
-  else
-    index = -1;
-
-  if (focus_path)
-    gtk_tree_path_free (focus_path);
-
-  return index;
-}
-
-AtkObject *
-gail_tree_view_ref_focus_cell (GtkTreeView *tree_view)
-{
-  /*
-   * This function returns a reference to the accessible object for the cell
-   * in the treeview which has focus, if a cell has focus.
-   */
-  AtkObject *focus_cell = NULL;
-  AtkObject *atk_obj;
-  gint focus_index;
-
-  focus_index = get_focus_index (tree_view);
-  if (focus_index >= 0)
-    {
-      atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
-      focus_cell = atk_object_ref_accessible_child (atk_obj, focus_index);
-    }
-
-  return focus_cell;
-}
-
-/* atkobject.h */
-
-static gint
-gail_tree_view_get_n_children (AtkObject *obj)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeModel *tree_model;
-  gint n_rows, n_cols;
-
-  gail_return_val_if_fail (GAIL_IS_TREE_VIEW (obj), 0);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return 0;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  tree_model = gtk_tree_view_get_model (tree_view);
-
-  /*
-   * We get the total number of rows including those which are collapsed
-   */
-  n_rows = get_row_count (tree_model);
-  /*
-   * We get the total number of columns including those which are not visible
-   */
-  n_cols = get_n_actual_columns (tree_view);
-  return (n_rows * n_cols);
-}
-
-static AtkObject*
-gail_tree_view_ref_child (AtkObject *obj, 
-                          gint      i)
-{
-  GtkWidget *widget;
-  GailTreeView *gailview;
-  GailCell *cell;
-  GtkTreeView *tree_view;
-  GtkTreeModel *tree_model; 
-  GtkCellRenderer *renderer;
-  GtkTreeIter iter;
-  GtkTreeViewColumn *tv_col;
-  GtkTreeSelection *selection;
-  GtkTreePath *path;
-  AtkRegistry *default_registry;
-  AtkObjectFactory *factory;
-  AtkObject *child;
-  AtkObject *parent;
-  GtkTreeViewColumn *expander_tv;
-  GList *renderer_list;
-  GList *l;
-  GailContainerCell *container = NULL;
-  GailRendererCell *renderer_cell;
-  gboolean is_expander, is_expanded, retval;
-  gboolean editable = FALSE;
-  gint focus_index;
-
-  g_return_val_if_fail (GAIL_IS_TREE_VIEW (obj), NULL);
-  g_return_val_if_fail (i >= 0, NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return NULL;
-
-  if (i >= gail_tree_view_get_n_children (obj))
-    return NULL;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  if (i < get_n_actual_columns (tree_view))
-    {
-      tv_col = gtk_tree_view_get_column (tree_view, i);
-      child = get_header_from_column (tv_col);
-      if (child)
-        g_object_ref (child);
-      return child;
-    }
-
-  gailview = GAIL_TREE_VIEW (obj);
-  /*
-   * Check whether the child is cached
-   */
-  cell = find_cell (gailview, i);
-  if (cell)
-    {
-      g_object_ref (cell);
-      return ATK_OBJECT (cell);
-    }
-
-  if (gailview->focus_cell == NULL)
-      focus_index = get_focus_index (tree_view);
-  else
-      focus_index = -1;
-  /*
-   * Find the TreePath and GtkTreeViewColumn for the index
-   */
-  if (!get_path_column_from_index (tree_view, i, &path, &tv_col))
-    return NULL;
-  tree_model = gtk_tree_view_get_model (tree_view);
-  retval = gtk_tree_model_get_iter (tree_model, &iter, path);
-  gail_return_val_if_fail (retval, NULL);
-
-  expander_tv = gtk_tree_view_get_expander_column (tree_view);
-  is_expander = FALSE;
-  is_expanded = FALSE;
-  if (gtk_tree_model_iter_has_child (tree_model, &iter))
-    {
-      if (expander_tv == tv_col)
-        {
-          is_expander = TRUE;
-          is_expanded = gtk_tree_view_row_expanded (tree_view, path);
-        }
-    } 
-  gtk_tree_view_column_cell_set_cell_data (tv_col, tree_model, &iter, 
-                                           is_expander, is_expanded);
-
-  renderer_list = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (tv_col));
-
-  /* If there are more than one renderer in the list, make a container */
-
-  if (renderer_list && renderer_list->next)
-    {
-      GailCell *container_cell;
-
-      container = gail_container_cell_new ();
-      gail_return_val_if_fail (container, NULL);
-
-      container_cell = GAIL_CELL (container);
-      gail_cell_initialise (container_cell,
-                            widget, ATK_OBJECT (gailview), 
-                            i);
-      /*
-       * The GailTreeViewCellInfo structure for the container will be before
-       * the ones for the cells so that the first one we find for a position
-       * will be for the container
-       */
-      cell_info_new (gailview, tree_model, path, tv_col, container_cell);
-      container_cell->refresh_index = refresh_cell_index;
-      parent = ATK_OBJECT (container);
-    }
-  else
-    parent = ATK_OBJECT (gailview);
-
-  child = NULL;
-
-  /*
-   * Now we make a fake cell_renderer if there is no cell in renderer_list
-   */
-
-  if (renderer_list == NULL)
-  {
-    GtkCellRenderer *fake_renderer;
-    fake_renderer = g_object_new (GTK_TYPE_CELL_RENDERER_TEXT, NULL);
-    default_registry = atk_get_default_registry ();
-    factory = atk_registry_get_factory (default_registry,
-                                        G_OBJECT_TYPE (fake_renderer));
-    child = atk_object_factory_create_accessible (factory,
-                                                  G_OBJECT (fake_renderer));
-    gail_return_val_if_fail (GAIL_IS_RENDERER_CELL (child), NULL);
-    cell = GAIL_CELL (child);
-    renderer_cell = GAIL_RENDERER_CELL (child);
-    renderer_cell->renderer = fake_renderer;
-
-    /* Create the GailTreeViewCellInfo structure for this cell */
-    cell_info_new (gailview, tree_model, path, tv_col, cell);
-
-    gail_cell_initialise (cell,
-                          widget, parent, 
-                          i);
-
-    cell->refresh_index = refresh_cell_index;
-
-    /* set state if it is expandable */
-    if (is_expander)
-    {
-      set_cell_expandable (cell);
-      if (is_expanded)
-        gail_cell_add_state (cell, 
-                             ATK_STATE_EXPANDED,
-                             FALSE);
-    }
-  } else {
-    for (l = renderer_list; l; l = l->next)
-      {
-        renderer = GTK_CELL_RENDERER (l->data);
-
-        if (GTK_IS_CELL_RENDERER_TEXT (renderer))
-          g_object_get (G_OBJECT (renderer), "editable", &editable, NULL);
-
-        default_registry = atk_get_default_registry ();
-        factory = atk_registry_get_factory (default_registry,
-                                            G_OBJECT_TYPE (renderer));
-        child = atk_object_factory_create_accessible (factory,
-                                                      G_OBJECT (renderer));
-        gail_return_val_if_fail (GAIL_IS_RENDERER_CELL (child), NULL);
-        cell = GAIL_CELL (child);
-        renderer_cell = GAIL_RENDERER_CELL (child);
-
-        /* Create the GailTreeViewCellInfo structure for this cell */
-        cell_info_new (gailview, tree_model, path, tv_col, cell);
-
-        gail_cell_initialise (cell,
-                              widget, parent, 
-                              i);
-
-        if (container)
-          gail_container_cell_add_child (container, cell);
-        else
-          cell->refresh_index = refresh_cell_index;
-
-        update_cell_value (renderer_cell, gailview, FALSE);
-        /* Add the actions appropriate for this cell */
-        add_cell_actions (cell, editable);
-
-        /* set state if it is expandable */
-        if (is_expander)
-          {
-            set_cell_expandable (cell);
-            if (is_expanded)
-              gail_cell_add_state (cell, 
-                                   ATK_STATE_EXPANDED,
-                                   FALSE);
-          }
-        /*
-         * If the column is visible, sets the cell's state
-         */
-        if (gtk_tree_view_column_get_visible (tv_col))
-          set_cell_visibility (tree_view, cell, tv_col, path, FALSE);
-        /*
-         * If the row is selected, all cells on the row are selected
-         */
-        selection = gtk_tree_view_get_selection (tree_view);
-
-        if (gtk_tree_selection_path_is_selected (selection, path))
-          gail_cell_add_state (cell, ATK_STATE_SELECTED, FALSE);
-
-        gail_cell_add_state (cell, ATK_STATE_FOCUSABLE, FALSE);
-        if (focus_index == i)
-          {
-            gailview->focus_cell = g_object_ref (cell);
-            gail_cell_add_state (cell, ATK_STATE_FOCUSED, FALSE);
-            g_signal_emit_by_name (gailview,
-                                   "active-descendant-changed",
-                                   cell);
-          }
-      }
-    g_list_free (renderer_list); 
-    if (container)
-      child =  ATK_OBJECT (container);
-  } 
-
-  if (expander_tv == tv_col)
-    {
-      AtkRelationSet *relation_set;
-      AtkObject *accessible_array[1];
-      AtkRelation* relation;
-      AtkObject *parent_node;
-
-      relation_set = atk_object_ref_relation_set (ATK_OBJECT (child));
-
-      gtk_tree_path_up (path);
-      if (gtk_tree_path_get_depth (path) == 0)
-        parent_node = obj;
-      else
-        {
-          gint parent_index;
-          gint n_columns;
-
-          n_columns = get_n_actual_columns (tree_view);
-          parent_index = get_index (tree_view, path, i % n_columns);
-          parent_node = atk_object_ref_accessible_child (obj, parent_index);
-        }
-      accessible_array[0] = parent_node;
-      relation = atk_relation_new (accessible_array, 1,
-                                   ATK_RELATION_NODE_CHILD_OF);
-      atk_relation_set_add (relation_set, relation);
-      atk_object_add_relationship (parent_node, ATK_RELATION_NODE_PARENT_OF,
-                                   child);
-      g_object_unref (relation);
-      g_object_unref (relation_set);
-    }
-  gtk_tree_path_free (path);
-
-  /*
-   * We do not increase the reference count here; when g_object_unref() is 
-   * called for the cell then cell_destroyed() is called and
-   * this removes the cell from the cache.
-   */
-  return child;
-}
-
-static AtkStateSet*
-gail_tree_view_ref_state_set (AtkObject *obj)
-{
-  AtkStateSet *state_set;
-  GtkWidget *widget;
-
-  state_set = ATK_OBJECT_CLASS (gail_tree_view_parent_class)->ref_state_set (obj);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-
-  if (widget != NULL)
-    atk_state_set_add_state (state_set, ATK_STATE_MANAGES_DESCENDANTS);
-
-  return state_set;
-}
-
-/* atkcomponent.h */
-
-static void
-atk_component_interface_init (AtkComponentIface *iface)
-{
-  iface->ref_accessible_at_point = gail_tree_view_ref_accessible_at_point;
-}
-
-static AtkObject*
-gail_tree_view_ref_accessible_at_point (AtkComponent           *component,
-                                        gint                   x,
-                                        gint                   y,
-                                        AtkCoordType           coord_type)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreePath *path;
-  GtkTreeViewColumn *tv_column;
-  gint x_pos, y_pos;
-  gint bx, by;
-  gboolean ret_val;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  tree_view = GTK_TREE_VIEW (widget);
-
-  atk_component_get_extents (component, &x_pos, &y_pos, NULL, NULL, coord_type);
-  gtk_tree_view_convert_widget_to_bin_window_coords (tree_view, x, y, &bx, &by);
-  ret_val = gtk_tree_view_get_path_at_pos (tree_view, 
-                                           bx - x_pos, by - y_pos, 
-                                           &path, &tv_column, NULL, NULL);
-  if (ret_val)
-    {
-      gint index, column;
-
-      column = get_column_number (tree_view, tv_column, FALSE);
-      index = get_index (tree_view, path, column);
-      gtk_tree_path_free (path);
-
-      return gail_tree_view_ref_child (ATK_OBJECT (component), index);
-    } 
-  else
-    {
-      g_warning ("gail_tree_view_ref_accessible_at_point: gtk_tree_view_get_path_at_pos () failed\n");
-    }
-  return NULL;
-}
-           
-/* atktable.h */
-
-static void 
-atk_table_interface_init (AtkTableIface *iface)
-{
-  iface->ref_at = gail_tree_view_table_ref_at;
-  iface->get_n_rows = gail_tree_view_get_n_rows;       
-  iface->get_n_columns = gail_tree_view_get_n_columns; 
-  iface->get_index_at = gail_tree_view_get_index_at;   
-  iface->get_column_at_index = gail_tree_view_get_column_at_index;     
-  iface->get_row_at_index = gail_tree_view_get_row_at_index;   
-  iface->is_row_selected = gail_tree_view_is_row_selected;
-  iface->is_selected = gail_tree_view_is_selected;
-  iface->get_selected_rows = gail_tree_view_get_selected_rows;
-  iface->add_row_selection = gail_tree_view_add_row_selection;
-  iface->remove_row_selection = gail_tree_view_remove_row_selection;
-  iface->get_column_extent_at = NULL;
-  iface->get_row_extent_at = NULL;
-  iface->get_row_header = gail_tree_view_get_row_header;
-  iface->set_row_header = gail_tree_view_set_row_header;
-  iface->get_column_header = gail_tree_view_get_column_header;
-  iface->set_column_header = gail_tree_view_set_column_header;
-  iface->get_caption = gail_tree_view_get_caption;
-  iface->set_caption = gail_tree_view_set_caption;
-  iface->get_summary = gail_tree_view_get_summary;
-  iface->set_summary = gail_tree_view_set_summary;
-  iface->get_row_description = gail_tree_view_get_row_description;
-  iface->set_row_description = gail_tree_view_set_row_description;
-  iface->get_column_description = gail_tree_view_get_column_description;
-  iface->set_column_description = gail_tree_view_set_column_description;
-}
-
-static gint
-gail_tree_view_get_index_at (AtkTable *table,
-                             gint     row,
-                             gint     column)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  gint actual_column;
-  gint n_cols, n_rows;
-  GtkTreeIter iter;
-  GtkTreePath *path;
-  gint index;
-
-  n_cols = atk_table_get_n_columns (table);
-  n_rows = atk_table_get_n_rows (table);
-
-  if (row >= n_rows ||
-      column >= n_cols)
-    return -1;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  actual_column = get_actual_column_number (tree_view, column);
-
-  set_iter_nth_row (tree_view, &iter, row);
-  path = gtk_tree_model_get_path (gtk_tree_view_get_model (tree_view), &iter);
-
-  index = get_index (tree_view, path, actual_column);
-  gtk_tree_path_free (path);
-
-  return index;
-}
-
-static gint
-gail_tree_view_get_column_at_index (AtkTable *table,
-                                    gint     index)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  gint n_columns;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  n_columns = get_n_actual_columns (tree_view);
-
-  if (n_columns == 0)
-    return 0;
-  index = index % n_columns;
-
-  return get_visible_column_number (tree_view, index);
-}
-
-static gint
-gail_tree_view_get_row_at_index (AtkTable *table,
-                                 gint     index)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreePath *path;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return -1;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  if (get_path_column_from_index (tree_view, index, &path, NULL))
-    {
-      gint row = get_row_from_tree_path (tree_view, path);
-      gtk_tree_path_free (path);
-      return row;
-    }
-  else
-    return -1;
-}
-
-static AtkObject* 
-gail_tree_view_table_ref_at (AtkTable *table,
-                             gint     row, 
-                             gint     column)
-{
-  gint index;
-
-  index = gail_tree_view_get_index_at (table, row, column);
-  if (index == -1)
-    return NULL;
-  
-  return gail_tree_view_ref_child (ATK_OBJECT (table), index);
-}
-
-static gint 
-gail_tree_view_get_n_rows (AtkTable *table)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeModel *tree_model;
-  gint n_rows;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  tree_model = gtk_tree_view_get_model (tree_view);
-
-  if (gtk_tree_model_get_flags (tree_model) & GTK_TREE_MODEL_LIST_ONLY)
-   /* 
-    * If working with a LIST store, then this is a faster way
-    * to get the number of rows.
-    */
-    n_rows = gtk_tree_model_iter_n_children (tree_model, NULL);
-  else
-    {
-      GtkTreePath *root_tree;
-
-      n_rows = 0;
-      root_tree = gtk_tree_path_new_first ();
-      iterate_thru_children (tree_view, tree_model,
-                             root_tree, NULL, &n_rows, 0);
-      gtk_tree_path_free (root_tree);
-    }
-
-  return n_rows;
-}
-
-/*
- * The function get_n_actual_columns returns the number of columns in the 
- * GtkTreeView. i.e. it include both visible and non-visible columns.
- */
-static gint 
-get_n_actual_columns (GtkTreeView *tree_view)
-{
-  GList *columns;
-  gint n_cols;
-
-  columns = gtk_tree_view_get_columns (tree_view);
-  n_cols = g_list_length (columns);
-  g_list_free (columns);
-  return n_cols;
-}
-
-static gint 
-gail_tree_view_get_n_columns (AtkTable *table)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeViewColumn *tv_col;
-  gint n_cols = 0;
-  gint i = 0;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  tv_col = gtk_tree_view_get_column (tree_view, i);
-
-  while (tv_col != NULL) 
-    {
-      if (gtk_tree_view_column_get_visible (tv_col)) 
-        n_cols++;
-
-      i++;
-      tv_col = gtk_tree_view_get_column (tree_view, i);
-    }
-
-  return n_cols;
-}
-
-static gboolean 
-gail_tree_view_is_row_selected (AtkTable *table,
-                                gint     row)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeSelection *selection;
-  GtkTreeIter iter;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  if (row < 0)
-    return FALSE;
-
-  tree_view = GTK_TREE_VIEW (widget);
-
-  selection = gtk_tree_view_get_selection (tree_view);
-
-  set_iter_nth_row (tree_view, &iter, row);
-
-  return gtk_tree_selection_iter_is_selected (selection, &iter);
-}
-
-static gboolean 
-gail_tree_view_is_selected (AtkTable *table, 
-                            gint     row, 
-                            gint     column)
-{
-  return gail_tree_view_is_row_selected (table, row);
-}
-
-static gint 
-gail_tree_view_get_selected_rows (AtkTable *table,
-                                  gint     **rows_selected)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeModel *tree_model;
-  GtkTreeIter iter;
-  GtkTreeSelection *selection;
-  GtkTreePath *tree_path;
-  gint ret_val = 0;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return 0;
-
-  tree_view = GTK_TREE_VIEW (widget);
-
-  selection = gtk_tree_view_get_selection (tree_view);
-
-  switch (gtk_tree_selection_get_mode (selection))
-    {
-    case GTK_SELECTION_SINGLE:
-    case GTK_SELECTION_BROWSE:
-      if (gtk_tree_selection_get_selected (selection, &tree_model, &iter))
-        {
-          gint row;
-
-          if (rows_selected)
-            {
-              *rows_selected = (gint *)g_malloc (sizeof(gint));
-              tree_path = gtk_tree_model_get_path (tree_model, &iter);
-              row = get_row_from_tree_path (tree_view, tree_path);
-              gtk_tree_path_free (tree_path);
-
-              /* shouldn't ever happen */
-              g_return_val_if_fail (row != -1, 0);
-
-              *rows_selected[0] = row;
-            }
-          ret_val = 1;
-        }
-      break;
-    case GTK_SELECTION_MULTIPLE:
-      {
-        GPtrArray *array = g_ptr_array_new();
-
-        gtk_tree_selection_selected_foreach (selection,
-                                             get_selected_rows,
-                                             array);
-        ret_val = array->len;
-
-        if (rows_selected && ret_val)
-          {
-            gint i;
-            *rows_selected = (gint *) g_malloc (ret_val * sizeof (gint));
-
-            for (i = 0; i < ret_val; i++)
-              {
-                gint row;
-
-                tree_path = (GtkTreePath *) g_ptr_array_index (array, i);
-                row = get_row_from_tree_path (tree_view, tree_path);
-                gtk_tree_path_free (tree_path);
-                (*rows_selected)[i] = row;
-              }
-          }
-        g_ptr_array_free (array, FALSE);
-      }
-      break;
-    case GTK_SELECTION_NONE:
-      break; 
-    }
-  return ret_val;
-}
-
-static gboolean 
-gail_tree_view_add_row_selection (AtkTable *table, 
-                                  gint     row)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeModel *tree_model;
-  GtkTreeSelection *selection;
-  GtkTreePath *tree_path;
-  GtkTreeIter iter_to_row;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-  
-  if (!gail_tree_view_is_row_selected (table, row))
-    {
-      tree_view = GTK_TREE_VIEW (widget);
-      tree_model = gtk_tree_view_get_model (tree_view);
-      selection = gtk_tree_view_get_selection (tree_view);
-
-      if (gtk_tree_model_get_flags (tree_model) & GTK_TREE_MODEL_LIST_ONLY)
-        {
-          tree_path = gtk_tree_path_new ();
-          gtk_tree_path_append_index (tree_path, row);
-          gtk_tree_selection_select_path (selection,tree_path);
-          gtk_tree_path_free (tree_path);
-        }
-      else
-        { 
-          set_iter_nth_row (tree_view, &iter_to_row, row);
-          gtk_tree_selection_select_iter (selection, &iter_to_row);
-        }
-    }
-
-  return gail_tree_view_is_row_selected (table, row);
-}
-
-static gboolean 
-gail_tree_view_remove_row_selection (AtkTable *table, 
-                                     gint     row)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeSelection *selection;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  tree_view = GTK_TREE_VIEW (widget);
-
-  selection = gtk_tree_view_get_selection (tree_view);
-
-  if (gail_tree_view_is_row_selected (table, row)) 
-    {
-      gtk_tree_selection_unselect_all (selection);
-      return TRUE;
-    }
-  else return FALSE;
-}
-
-static AtkObject* 
-gail_tree_view_get_row_header (AtkTable *table, 
-                               gint     row)
-{
-  GailTreeViewRowInfo *row_info;
-
-  row_info = get_row_info (table, row);
-  if (row_info)
-    return row_info->header;
-  else
-    return NULL;
-}
-
-static void
-gail_tree_view_set_row_header (AtkTable  *table, 
-                               gint      row, 
-                               AtkObject *header)
-{
-  set_row_data (table, row, header, NULL, TRUE);
-}
-
-static AtkObject* 
-gail_tree_view_get_column_header (AtkTable *table, 
-                                  gint     in_col)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeViewColumn *tv_col;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  tv_col = get_column (tree_view, in_col);
-  return get_header_from_column (tv_col);
-}
-
-static void
-gail_tree_view_set_column_header (AtkTable  *table, 
-                                  gint      in_col,
-                                  AtkObject *header)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeViewColumn *tv_col;
-  AtkPropertyValues values = { NULL };
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  tv_col = get_column (tree_view, in_col);
-  if (tv_col == NULL)
-     return;
-
-  g_object_set_qdata_full (G_OBJECT (tv_col),
-                           quark_column_header_object,
-                           header,
-                           g_object_unref);
-  if (header)
-    g_object_ref (header);
-  g_value_init (&values.new_value, G_TYPE_INT);
-  g_value_set_int (&values.new_value, in_col);
-
-  values.property_name = "accessible-table-column-header";
-  g_signal_emit_by_name (table, 
-                         "property_change::accessible-table-column-header",
-                         &values, NULL);
-}
-
-static AtkObject*
-gail_tree_view_get_caption (AtkTable   *table)
-{
-  GailTreeView* obj = GAIL_TREE_VIEW (table);
-
-  return obj->caption;
-}
-
-static void
-gail_tree_view_set_caption (AtkTable   *table,
-                            AtkObject   *caption)
-{
-  GailTreeView* obj = GAIL_TREE_VIEW (table);
-  AtkPropertyValues values = { NULL };
-  AtkObject *old_caption;
-
-  old_caption = obj->caption;
-  obj->caption = caption;
-  if (obj->caption)
-    g_object_ref (obj->caption);
-  g_value_init (&values.old_value, G_TYPE_POINTER);
-  g_value_set_pointer (&values.old_value, old_caption);
-  g_value_init (&values.new_value, G_TYPE_POINTER);
-  g_value_set_pointer (&values.new_value, obj->caption);
-
-  values.property_name = "accessible-table-caption-object";
-  g_signal_emit_by_name (table, 
-                         "property_change::accessible-table-caption-object", 
-                         &values, NULL);
-  if (old_caption)
-    g_object_unref (old_caption);
-}
-
-static const gchar*
-gail_tree_view_get_column_description (AtkTable          *table,
-                                       gint       in_col)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeViewColumn *tv_col;
-  gchar *rc;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  tv_col = get_column (tree_view, in_col);
-  if (tv_col == NULL)
-     return NULL;
-
-  rc = g_object_get_qdata (G_OBJECT (tv_col),
-                           quark_column_desc_object);
-
-  if (rc != NULL)
-    return rc;
-  else
-    {
-      gchar *title_text;
-
-      g_object_get (tv_col, "title", &title_text, NULL);
-      return title_text;
-    }
-}
-
-static void
-gail_tree_view_set_column_description (AtkTable           *table,
-                                       gint        in_col,
-                                       const gchar *description)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeViewColumn *tv_col;
-  AtkPropertyValues values = { NULL };
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  tv_col = get_column (tree_view, in_col);
-  if (tv_col == NULL)
-     return;
-
-  g_object_set_qdata_full (G_OBJECT (tv_col),
-                           quark_column_desc_object,
-                           g_strdup (description),
-                           g_free);
-  g_value_init (&values.new_value, G_TYPE_INT);
-  g_value_set_int (&values.new_value, in_col);
-
-  values.property_name = "accessible-table-column-description";
-  g_signal_emit_by_name (table, 
-                         "property_change::accessible-table-column-description",
-                         &values, NULL);
-}
-
-static const gchar*
-gail_tree_view_get_row_description (AtkTable    *table,
-                                    gint        row)
-{
-  GailTreeViewRowInfo *row_info;
-
-  row_info = get_row_info (table, row);
-  if (row_info)
-    return row_info->description;
-  else
-    return NULL;
-}
-
-static void
-gail_tree_view_set_row_description (AtkTable    *table,
-                                    gint        row,
-                                    const gchar *description)
-{
-  set_row_data (table, row, NULL, description, FALSE);
-}
-
-static AtkObject*
-gail_tree_view_get_summary (AtkTable   *table)
-{
-  GailTreeView* obj = GAIL_TREE_VIEW (table);
-
-  return obj->summary;
-}
-
-static void
-gail_tree_view_set_summary (AtkTable    *table,
-                            AtkObject   *accessible)
-{
-  GailTreeView* obj = GAIL_TREE_VIEW (table);
-  AtkPropertyValues values = { NULL };
-  AtkObject *old_summary;
-
-  old_summary = obj->summary;
-  obj->summary = accessible;
-  if (obj->summary)
-    g_object_ref (obj->summary);
-  g_value_init (&values.old_value, G_TYPE_POINTER);
-  g_value_set_pointer (&values.old_value, old_summary);
-  g_value_init (&values.new_value, G_TYPE_POINTER);
-  g_value_set_pointer (&values.new_value, obj->summary);
-
-  values.property_name = "accessible-table-summary";
-  g_signal_emit_by_name (table, 
-                         "property_change::accessible-table-ummary",
-                         &values, NULL);
-  if (old_summary)
-    g_object_unref (old_summary);
-}
-
-static void
-set_row_data (AtkTable    *table, 
-              gint        row, 
-              AtkObject   *header,
-              const gchar *description,
-              gboolean    is_header)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeModel *tree_model;
-  GailTreeView* obj = GAIL_TREE_VIEW (table);
-  GailTreeViewRowInfo* row_info;
-  GtkTreePath *path;
-  GtkTreeIter iter;
-  GArray *array;
-  gboolean found = FALSE;
-  gint i;
-  AtkPropertyValues values = { NULL };
-  gchar *signal_name;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  tree_model = gtk_tree_view_get_model (tree_view);
-
-  set_iter_nth_row (tree_view, &iter, row);
-  path = gtk_tree_model_get_path (tree_model, &iter);
-
-  if (obj->row_data == NULL)
-    obj->row_data = g_array_sized_new (FALSE, TRUE,
-                                       sizeof(GailTreeViewRowInfo *), 0);
-
-  array = obj->row_data;
-
-  for (i = 0; i < array->len; i++)
-    {
-      GtkTreePath *row_path;
-
-      row_info = g_array_index (array, GailTreeViewRowInfo*, i);
-      row_path = gtk_tree_row_reference_get_path (row_info->row_ref);
-
-      if (row_path != NULL)
-        {
-          if (path && gtk_tree_path_compare (row_path, path) == 0)
-            found = TRUE;
-
-          gtk_tree_path_free (row_path);
-
-          if (found)
-            {
-              if (is_header)
-                {
-                  if (row_info->header)
-                    g_object_unref (row_info->header);
-                  row_info->header = header;
-                  if (row_info->header)
-                    g_object_ref (row_info->header);
-                }
-              else
-                {
-                  g_free (row_info->description);
-                  row_info->description = g_strdup (description);
-                }
-              break;
-            }
-        }
-    }
-
-  if (!found)
-    {
-      /* if not found */
-      row_info = g_malloc (sizeof(GailTreeViewRowInfo));
-      row_info->row_ref = gtk_tree_row_reference_new (tree_model, path);
-      if (is_header)
-        {
-          row_info->header = header;
-          if (row_info->header)
-            g_object_ref (row_info->header);
-          row_info->description = NULL;
-        }
-      else
-        {
-          row_info->header = NULL;
-          row_info->description = g_strdup (description);
-        }
-      g_array_append_val (array, row_info);
-    }
-  g_value_init (&values.new_value, G_TYPE_INT);
-  g_value_set_int (&values.new_value, row);
-
-  if (is_header)
-    {
-      values.property_name = "accessible-table-row-header";
-      signal_name = "property_change::accessible-table-row-header";
-    }
-  else
-    {
-      values.property_name = "accessible-table-row-description";
-      signal_name = "property-change::accessible-table-row-description";
-    }
-  g_signal_emit_by_name (table, 
-                         signal_name,
-                         &values, NULL);
-
-  gtk_tree_path_free (path);
-}
-
-
-static GailTreeViewRowInfo*
-get_row_info (AtkTable    *table,
-              gint        row)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeModel *tree_model;
-  GailTreeView* obj = GAIL_TREE_VIEW (table);
-  GtkTreePath *path;
-  GtkTreeIter iter;
-  GArray *array;
-  GailTreeViewRowInfo *rc = NULL;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (table));
-  if (widget == NULL)
-    /* State is defunct */
-    return NULL;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  tree_model = gtk_tree_view_get_model (tree_view);
-
-  set_iter_nth_row (tree_view, &iter, row);
-  path = gtk_tree_model_get_path (tree_model, &iter);
-  array = obj->row_data;
-
-  if (array != NULL)
-    {
-      GailTreeViewRowInfo *row_info;
-      GtkTreePath *row_path;
-      gint i;
-
-      for (i = 0; i < array->len; i++)
-        {
-          row_info = g_array_index (array, GailTreeViewRowInfo*, i);
-          row_path = gtk_tree_row_reference_get_path (row_info->row_ref);
-          if (row_path != NULL)
-            {
-              if (path && gtk_tree_path_compare (row_path, path) == 0)
-                rc = row_info;
-
-              gtk_tree_path_free (row_path);
-
-              if (rc != NULL)
-                break;
-            }
-        }
-    }
-
-  gtk_tree_path_free (path);
-  return rc;
-}
-/* atkselection.h */
-
-static void atk_selection_interface_init (AtkSelectionIface *iface)
-{
-  iface->add_selection = gail_tree_view_add_selection;
-  iface->clear_selection = gail_tree_view_clear_selection;
-  iface->ref_selection = gail_tree_view_ref_selection;
-  iface->get_selection_count = gail_tree_view_get_selection_count;
-  iface->is_child_selected = gail_tree_view_is_child_selected;
-}
-
-static gboolean
-gail_tree_view_add_selection (AtkSelection *selection,
-                              gint         i)
-{
-  AtkTable *table;
-  gint n_columns;
-  gint row;
-
-  table = ATK_TABLE (selection);
-  n_columns = gail_tree_view_get_n_columns (table);
-  if (n_columns != 1)
-    return FALSE;
-
-  row = gail_tree_view_get_row_at_index (table, i);
-  return gail_tree_view_add_row_selection (table, row);
-}
-
-static gboolean
-gail_tree_view_clear_selection (AtkSelection *selection)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeSelection *tree_selection;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-  tree_view = GTK_TREE_VIEW (widget);
-
-  tree_selection = gtk_tree_view_get_selection (tree_view);
-  gtk_tree_selection_unselect_all (tree_selection);  
-
-  return TRUE;
-}
-
-static AtkObject*  
-gail_tree_view_ref_selection (AtkSelection *selection, 
-                              gint         i)
-{
-  AtkTable *table;
-  gint row;
-  gint n_selected;
-  gint n_columns;
-  gint *selected;
-
-  table = ATK_TABLE (selection);
-  n_columns = gail_tree_view_get_n_columns (table);
-  n_selected = gail_tree_view_get_selected_rows (table, &selected);
-  if (i >= n_columns * n_selected)
-    return NULL;
-
-  row = selected[i / n_columns];
-  g_free (selected);
-
-  return gail_tree_view_table_ref_at (table, row, i % n_columns);
-}
-
-static gint
-gail_tree_view_get_selection_count (AtkSelection *selection)
-{
-  AtkTable *table;
-  gint n_selected;
-
-  table = ATK_TABLE (selection);
-  n_selected = gail_tree_view_get_selected_rows (table, NULL);
-  if (n_selected > 0)
-    n_selected *= gail_tree_view_get_n_columns (table);
-  return n_selected;
-}
-
-static gboolean
-gail_tree_view_is_child_selected (AtkSelection *selection, 
-                                  gint         i)
-{
-  GtkWidget *widget;
-  gint row;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (selection));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  row = atk_table_get_row_at_index (ATK_TABLE (selection), i);
-
-  return gail_tree_view_is_row_selected (ATK_TABLE (selection), row);
-}
-
-
-static void gail_cell_parent_interface_init (GailCellParentIface *iface)
-{
-  iface->get_cell_extents = gail_tree_view_get_cell_extents;
-  iface->get_cell_area = gail_tree_view_get_cell_area;
-  iface->grab_focus = gail_tree_view_grab_cell_focus;
-}
-
-static void
-gail_tree_view_get_cell_extents (GailCellParent *parent,
-                                 GailCell       *cell,
-                                 gint           *x,
-                                 gint           *y,
-                                 gint           *width,
-                                 gint           *height,
-                                 AtkCoordType   coord_type)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GdkWindow *bin_window;
-  GdkRectangle cell_rect;
-  gint w_x, w_y;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  gail_tree_view_get_cell_area (parent, cell, &cell_rect);
-  bin_window = gtk_tree_view_get_bin_window (tree_view);
-  gdk_window_get_origin (bin_window, &w_x, &w_y);
-
-  if (coord_type == ATK_XY_WINDOW)
-    {
-      GdkWindow *window;
-      gint x_toplevel, y_toplevel;
-
-      window = gdk_window_get_toplevel (bin_window);
-      gdk_window_get_origin (window, &x_toplevel, &y_toplevel);
-
-      w_x -= x_toplevel;
-      w_y -= y_toplevel;
-    }
-
-  *width = cell_rect.width;
-  *height = cell_rect.height;
-  if (is_cell_showing (tree_view, &cell_rect))
-    {
-      *x = cell_rect.x + w_x;
-      *y = cell_rect.y + w_y;
-    }
-  else
-    {
-      *x = G_MININT;
-      *y = G_MININT;
-    }
-}
-
-#define EXTRA_EXPANDER_PADDING 4
-
-static void
-gail_tree_view_get_cell_area (GailCellParent *parent,
-                              GailCell       *cell,
-                              GdkRectangle   *cell_rect)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeViewColumn *tv_col;
-  GtkTreePath *path;
-  AtkObject *parent_cell;
-  GailTreeViewCellInfo *cell_info;
-  GailCell *top_cell;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
-  if (widget == NULL)
-    /* State is defunct */
-    return;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  parent_cell = atk_object_get_parent (ATK_OBJECT (cell));
-  if (parent_cell != ATK_OBJECT (parent))
-    {
-      /*
-       * GailCell is in a GailContainerCell
-       */
-      top_cell = GAIL_CELL (parent_cell);
-    }
-  else
-    {
-      top_cell = cell;
-    }
-  cell_info = find_cell_info (GAIL_TREE_VIEW (parent), top_cell, NULL, TRUE);
-  gail_return_if_fail (cell_info);
-  gail_return_if_fail (cell_info->cell_col_ref);
-  gail_return_if_fail (cell_info->cell_row_ref);
-  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-  tv_col = cell_info->cell_col_ref;
-  if (path && cell_info->in_use)
-    {
-      GtkTreeViewColumn *expander_column;
-      gint focus_line_width;
-
-      gtk_tree_view_get_cell_area (tree_view, path, tv_col, cell_rect);
-      expander_column = gtk_tree_view_get_expander_column (tree_view);
-      if (expander_column == tv_col)
-        {
-          gint expander_size;
-
-          gtk_widget_style_get (widget,
-                                "expander_size", &expander_size,
-                                NULL);
-
-          cell_rect->x += expander_size + EXTRA_EXPANDER_PADDING;
-          cell_rect->width -= expander_size + EXTRA_EXPANDER_PADDING;
-        }
-      gtk_widget_style_get (widget,
-                            "focus-line-width", &focus_line_width,
-                            NULL);
-
-      cell_rect->x += focus_line_width;
-      cell_rect->width -= 2 * focus_line_width; 
-
-      gtk_tree_path_free (path);
-
-      /*
-       * A column has more than one renderer so we find the position and width
-       * of each.
-       */
-      if (top_cell != cell)
-        {
-          gint cell_index;
-          gboolean found;
-          gint cell_start;
-          gint cell_width;
-          GList *renderers;
-          GtkCellRenderer *renderer;
-
-         cell_index = atk_object_get_index_in_parent (ATK_OBJECT (cell));
-         renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (tv_col));
-         renderer = g_list_nth_data (renderers, cell_index);
-
-         found = gtk_tree_view_column_cell_get_position (tv_col, renderer, &cell_start, &cell_width);
-          if (found)
-            {
-              cell_rect->x += cell_start;
-              cell_rect->width = cell_width;
-            }
-         g_list_free (renderers);
-       }
-
-    }
-}
-
-static gboolean
-gail_tree_view_grab_cell_focus  (GailCellParent *parent,
-                                 GailCell       *cell)
-{
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeViewColumn *tv_col;
-  GtkTreePath *path;
-  AtkObject *parent_cell;
-  AtkObject *cell_object;
-  GailTreeViewCellInfo *cell_info;
-  GtkCellRenderer *renderer = NULL;
-  GtkWidget *toplevel;
-  gint index;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent));
-  if (widget == NULL)
-    /* State is defunct */
-    return FALSE;
-
-  tree_view = GTK_TREE_VIEW (widget);
-
-  cell_info = find_cell_info (GAIL_TREE_VIEW (parent), cell, NULL, TRUE);
-  gail_return_val_if_fail (cell_info, FALSE);
-  gail_return_val_if_fail (cell_info->cell_col_ref, FALSE);
-  gail_return_val_if_fail (cell_info->cell_row_ref, FALSE);
-  cell_object = ATK_OBJECT (cell);
-  parent_cell = atk_object_get_parent (cell_object);
-  tv_col = cell_info->cell_col_ref;
-  if (parent_cell != ATK_OBJECT (parent))
-    {
-      /*
-       * GailCell is in a GailContainerCell.
-       * The GtkTreeViewColumn has multiple renderers; 
-       * find the corresponding one.
-       */
-      GList *renderers;
-
-      renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (tv_col));
-      if (cell_info->in_use) {
-         index = atk_object_get_index_in_parent (cell_object);
-         renderer = g_list_nth_data (renderers, index);
-      }
-      g_list_free (renderers);
-    }
-  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-  if (path && cell_info->in_use)
-    {
-      if (renderer)
-        gtk_tree_view_set_cursor_on_cell (tree_view, path, tv_col, renderer, FALSE);
-      else
-        gtk_tree_view_set_cursor (tree_view, path, tv_col, FALSE);
-
-      gtk_tree_path_free (path);
-      gtk_widget_grab_focus (widget);
-      toplevel = gtk_widget_get_toplevel (widget);
-      if (gtk_widget_is_toplevel (toplevel))
-       {
-#ifdef GDK_WINDOWING_X11
-         gtk_window_present_with_time (GTK_WINDOW (toplevel),
-                                        gdk_x11_get_server_time (gtk_widget_get_window (widget)));
-#else
-         gtk_window_present (GTK_WINDOW (toplevel));
-#endif
-       }
-
-      return TRUE;
-    }
-  else
-      return FALSE; 
-}
-
-/* signal handling */
-
-static gboolean
-gail_tree_view_expand_row_gtk (GtkTreeView       *tree_view,
-                               GtkTreeIter        *iter,
-                               GtkTreePath        *path)
-{
-  AtkObject *atk_obj;
-  GailTreeView *gailview;
-
-  g_assert (GTK_IS_TREE_VIEW (tree_view));
-
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
-
-  g_assert (GAIL_IS_TREE_VIEW (atk_obj));
-
-  gailview = GAIL_TREE_VIEW (atk_obj);
-
-  /*
-   * The visible rectangle has not been updated when this signal is emitted
-   * so we process the signal when the GTK processing is completed
-   */
-  /* this seems wrong since it overwrites any other pending expand handlers... */
-  gailview->idle_expand_path = gtk_tree_path_copy (path);
-  if (gailview->idle_expand_id)
-    g_source_remove (gailview->idle_expand_id);
-  gailview->idle_expand_id = gdk_threads_add_idle (idle_expand_row, gailview);
-  return FALSE;
-}
-
-static gint
-idle_expand_row (gpointer data)
-{
-  GailTreeView *gailview = data;
-  GtkTreePath *path;
-  GtkTreeView *tree_view;
-  GtkTreeIter iter;
-  GtkTreeModel *tree_model;
-  gint n_inserted, row;
-
-  gailview->idle_expand_id = 0;
-
-  path = gailview->idle_expand_path;
-  tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (gailview)));
-
-  g_assert (GTK_IS_TREE_VIEW (tree_view));
-
-  tree_model = gtk_tree_view_get_model(tree_view);
-  if (!tree_model)
-    return FALSE;
-
-  if (!path || !gtk_tree_model_get_iter (tree_model, &iter, path))
-    return FALSE;
-
-  /*
-   * Update visibility of cells below expansion row
-   */
-  traverse_cells (gailview, path, FALSE, FALSE);
-  /*
-   * Figure out number of visible children, the following test
-   * should not fail
-   */
-  if (gtk_tree_model_iter_has_child (tree_model, &iter))
-    {
-      GtkTreePath *path_copy;
-
-     /*
-      * By passing path into this function, we find the number of
-      * visible children of path.
-      */
-      path_copy = gtk_tree_path_copy (path);
-      gtk_tree_path_append_index(path_copy, 0);
-
-      n_inserted = 0;
-      iterate_thru_children (tree_view, tree_model,
-                             path_copy, NULL, &n_inserted, 0);
-      gtk_tree_path_free (path_copy);
-    }
-  else
-    {
-      /* We can get here if the row expanded callback deleted the row */
-      return FALSE;
-    }
-
-  /* Set expand state */
-  set_expand_state (tree_view, tree_model, gailview, path, TRUE);
-
-  row = get_row_from_tree_path (tree_view, path);
-
-  /* shouldn't ever happen */
-  if (row == -1)
-    g_assert_not_reached ();
-
-  /* Must add 1 because the "added rows" are below the row being expanded */
-  row += 1;
-  
-  g_signal_emit_by_name (gailview, "row_inserted", row, n_inserted);
-
-  gailview->idle_expand_path = NULL;
-
-  gtk_tree_path_free (path);
-
-  return FALSE;
-}
-
-static gboolean
-gail_tree_view_collapse_row_gtk (GtkTreeView       *tree_view,
-                                 GtkTreeIter        *iter,
-                                 GtkTreePath        *path)
-{
-  GtkTreeModel *tree_model;
-  AtkObject *atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
-  GailTreeView *gailview = GAIL_TREE_VIEW (atk_obj);
-  gint row;
-
-  tree_model = gtk_tree_view_get_model (tree_view);
-
-  clean_rows (gailview);
-
-  /*
-   * Update visibility of cells below collapsed row
-   */
-  traverse_cells (gailview, path, FALSE, FALSE);
-  /* Set collapse state */
-  set_expand_state (tree_view, tree_model, gailview, path, FALSE);
-
-  gail_return_val_if_fail (gailview->n_children_deleted, FALSE);
-  row = get_row_from_tree_path (tree_view, path);
-  gail_return_val_if_fail (row != -1, FALSE);
-  g_signal_emit_by_name (atk_obj, "row_deleted", row, 
-                         gailview->n_children_deleted);
-  gailview->n_children_deleted = 0;
-  return FALSE;
-}
-
-static void
-gail_tree_view_size_allocate_gtk (GtkWidget     *widget,
-                                  GtkAllocation *allocation)
-{
-  AtkObject *atk_obj = gtk_widget_get_accessible (widget);
-  GailTreeView *gailview = GAIL_TREE_VIEW (atk_obj);
-
-  /*
-   * If the size allocation changes, the visibility of cells may change so
-   * update the cells visibility.
-   */
-  traverse_cells (gailview, NULL, FALSE, FALSE);
-}
-
-static void
-gail_tree_view_changed_gtk (GtkTreeSelection *selection,
-                            gpointer         data)
-{
-  GailTreeView *gailview;
-  GtkTreeView *tree_view;
-  GtkWidget *widget;
-  GList *cell_list;
-  GList *l;
-  GailTreeViewCellInfo *info;
-  GtkTreeSelection *tree_selection;
-  GtkTreePath *path;
-
-  gailview = GAIL_TREE_VIEW (data);
-  cell_list = gailview->cell_data;
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (gailview));
-  if (widget == NULL)
-    /*
-     * destroy signal emitted for widget
-     */
-    return;
-  tree_view = GTK_TREE_VIEW (widget);
-
-  tree_selection = gtk_tree_view_get_selection (tree_view);
-
-  clean_rows (gailview);
-
-  for (l = cell_list; l; l = l->next)
-    {
-      info = (GailTreeViewCellInfo *) (l->data);
-
-      if (info->in_use)
-      {
-         gail_cell_remove_state (info->cell, ATK_STATE_SELECTED, TRUE); 
-         
-         path = gtk_tree_row_reference_get_path (info->cell_row_ref);
-         if (path && gtk_tree_selection_path_is_selected (tree_selection, path))
-             gail_cell_add_state (info->cell, ATK_STATE_SELECTED, TRUE); 
-         gtk_tree_path_free (path);
-      }
-    }
-  if (gtk_widget_get_realized (widget))
-    g_signal_emit_by_name (gailview, "selection_changed");
-}
-
-static void
-columns_changed (GtkTreeView *tree_view)
-{
-  AtkObject *atk_obj = gtk_widget_get_accessible (GTK_WIDGET(tree_view));
-  GailTreeView *gailview = GAIL_TREE_VIEW (atk_obj);
-  GList *tv_cols, *tmp_list;
-  gboolean column_found;
-  gboolean move_found = FALSE;
-  gboolean stale_set = FALSE;
-  gint column_count = 0;
-  gint i;
-
- /*
-  * This function must determine if the change is an add, delete or
-  * a move based upon its cache of TreeViewColumns in
-  * gailview->col_data
-  */
-  tv_cols = gtk_tree_view_get_columns (tree_view);
-
-  /* check for adds or moves */
-  for (tmp_list = tv_cols; tmp_list; tmp_list = tmp_list->next)
-    {
-      column_found = FALSE;
-
-      for (i = 0; i < gailview->col_data->len; i++)
-        {
-
-          if ((GtkTreeViewColumn *)tmp_list->data ==
-              (GtkTreeViewColumn *)g_array_index (gailview->col_data,
-               GtkTreeViewColumn *, i))
-            {
-              column_found = TRUE;
-
-              /* If the column isn't in the same position, a move happened */
-              if (!move_found && i != column_count)
-                {
-                  if (!stale_set)
-                    {
-                      /* Set all rows to ATK_STATE_STALE */
-                      traverse_cells (gailview, NULL, TRUE, FALSE);
-                      stale_set = TRUE;
-                    }
-  
-                  /* Just emit one column reordered signal when a move happens */
-                  g_signal_emit_by_name (atk_obj, "column_reordered");
-                  move_found = TRUE;
-                }
-
-              break;
-            }
-        }
-
-     /*
-      * If column_found is FALSE, then an insert happened for column
-      * number column_count
-      */
-      if (!column_found)
-        {
-          gint n_cols, n_rows, row;
-
-          if (!stale_set)
-            {
-              /* Set all rows to ATK_STATE_STALE */
-              traverse_cells (gailview, NULL, TRUE, FALSE);
-              stale_set = TRUE;
-            }
-
-          /* Generate column-inserted signal */
-          g_signal_emit_by_name (atk_obj, "column_inserted", column_count, 1);
-
-          /* Generate children-changed signals */
-          n_rows = get_row_count (gtk_tree_view_get_model (tree_view));
-          n_cols = get_n_actual_columns (tree_view);
-          for (row = 0; row < n_rows; row++)
-            {
-             /*
-              * Pass NULL as the child object, i.e. 4th argument.
-              */
-              g_signal_emit_by_name (atk_obj, "children_changed::add",
-                                    ((row * n_cols) + column_count), NULL, NULL);
-            }
-        }
-
-      column_count++;
-    }
-
-  /* check for deletes */
-  for (i = 0; i < gailview->col_data->len; i++)
-    {
-      column_found = FALSE;
-
-      for (tmp_list = tv_cols; tmp_list; tmp_list = tmp_list->next)
-        {
-            if ((GtkTreeViewColumn *)tmp_list->data ==
-                (GtkTreeViewColumn *)g_array_index (gailview->col_data,
-                 GtkTreeViewColumn *, i))
-              {
-                column_found = TRUE;
-                break;
-              }
-        }
-
-       /*
-        * If column_found is FALSE, then a delete happened for column
-        * number i
-        */
-      if (!column_found)
-        {
-          gint n_rows, n_cols, row;
-
-          clean_cols (gailview,
-                      (GtkTreeViewColumn *)g_array_index (gailview->col_data,
-                     GtkTreeViewColumn *, i));
-
-          if (!stale_set)
-            {
-              /* Set all rows to ATK_STATE_STALE */
-              traverse_cells (gailview, NULL, TRUE, FALSE);
-              stale_set = TRUE;
-            }
-
-          /* Generate column-deleted signal */
-          g_signal_emit_by_name (atk_obj, "column_deleted", i, 1);
-
-          /* Generate children-changed signals */
-          n_rows = get_row_count (gtk_tree_view_get_model (tree_view));
-          n_cols = get_n_actual_columns (tree_view);
-          for (row = 0; row < n_rows; row++)
-            {
-             /*
-              * Pass NULL as the child object, 4th argument.
-              */
-              g_signal_emit_by_name (atk_obj, "children_changed::remove",
-                                    ((row * n_cols) + column_count), NULL, NULL);
-            }
-        }
-    }
-   
-  /* rebuild the array */
-
-  g_array_free (gailview->col_data, TRUE);
-  gailview->col_data = g_array_sized_new (FALSE, TRUE,
-    sizeof(GtkTreeViewColumn *), 0);
-
-  for (tmp_list = tv_cols; tmp_list; tmp_list = tmp_list->next)
-     g_array_append_val (gailview->col_data, tmp_list->data);
-  g_list_free (tv_cols);
-}
-
-static void
-cursor_changed (GtkTreeView *tree_view)
-{
-  GailTreeView *gailview;
-
-  gailview = GAIL_TREE_VIEW (gtk_widget_get_accessible (GTK_WIDGET (tree_view)));
-  if (gailview->idle_cursor_changed_id != 0)
-    return;
-
-  /*
-   * We notify the focus change in a idle handler so that the processing
-   * of the cursor change is completed when the focus handler is called.
-   * This will allow actions to be called in the focus handler
-   */ 
-  gailview->idle_cursor_changed_id = gdk_threads_add_idle (idle_cursor_changed, gailview);
-}
-
-static gint
-idle_cursor_changed (gpointer data)
-{
-  GailTreeView *gail_tree_view = GAIL_TREE_VIEW (data);
-  GtkTreeView *tree_view;
-  GtkWidget *widget;
-  AtkObject *cell;
-
-  gail_tree_view->idle_cursor_changed_id = 0;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (gail_tree_view));
-  /*
-   * Widget has been deleted
-   */
-  if (widget == NULL)
-    return FALSE;
-
-  tree_view = GTK_TREE_VIEW (widget);
-
-  cell = gail_tree_view_ref_focus_cell (tree_view);
-  if (cell)
-    {
-      if (cell != gail_tree_view->focus_cell)
-        {
-          if (gail_tree_view->focus_cell)
-            {
-              gail_cell_remove_state (GAIL_CELL (gail_tree_view->focus_cell), ATK_STATE_ACTIVE, FALSE); 
-              gail_cell_remove_state (GAIL_CELL (gail_tree_view->focus_cell), ATK_STATE_FOCUSED, FALSE);
-              g_object_unref (gail_tree_view->focus_cell);
-            }
-          gail_tree_view->focus_cell = cell;
-
-          if (gtk_widget_has_focus (widget))
-            {
-              gail_cell_add_state (GAIL_CELL (cell), ATK_STATE_ACTIVE, FALSE);
-              gail_cell_add_state (GAIL_CELL (cell), ATK_STATE_FOCUSED, FALSE);
-            }
-          g_signal_emit_by_name (gail_tree_view,
-                                 "active-descendant-changed",
-                                 cell);
-        }
-      else
-        g_object_unref (cell);
-    }
-
-  return FALSE;
-}
-
-static gboolean
-focus_in (GtkWidget *widget)
-{
-  GtkTreeView *tree_view;
-  GailTreeView *gail_tree_view;
-  AtkStateSet *state_set;
-  AtkObject *cell;
-
-  tree_view = GTK_TREE_VIEW (widget);
-  gail_tree_view = GAIL_TREE_VIEW (gtk_widget_get_accessible (widget));
-
-  if (gail_tree_view->focus_cell == NULL)
-    {
-      cell = gail_tree_view_ref_focus_cell (tree_view);
-      if (cell)
-        {
-          state_set = atk_object_ref_state_set (cell);
-          if (state_set)
-            {
-              if (!atk_state_set_contains_state (state_set, ATK_STATE_FOCUSED))
-                {
-                  gail_cell_add_state (GAIL_CELL (cell), ATK_STATE_ACTIVE, FALSE);
-                  gail_tree_view->focus_cell = cell;
-                  gail_cell_add_state (GAIL_CELL (cell), ATK_STATE_FOCUSED, FALSE);
-                  g_signal_emit_by_name (gail_tree_view,
-                                         "active-descendant-changed",
-                                         cell);
-                }
-              g_object_unref (state_set);
-            }
-        }
-    }
-  return FALSE;
-}
-
-static gboolean
-focus_out (GtkWidget *widget)
-{
-  GailTreeView *gail_tree_view;
-
-  gail_tree_view = GAIL_TREE_VIEW (gtk_widget_get_accessible (widget));
-  if (gail_tree_view->focus_cell)
-  {
-    gail_cell_remove_state (GAIL_CELL (gail_tree_view->focus_cell), ATK_STATE_ACTIVE, FALSE);
-    gail_cell_remove_state (GAIL_CELL (gail_tree_view->focus_cell), ATK_STATE_FOCUSED, FALSE);
-    g_object_unref (gail_tree_view->focus_cell);
-    gail_tree_view->focus_cell = NULL;
-  }
-  return FALSE;
-}
-
-static void
-model_row_changed (GtkTreeModel *tree_model,
-                   GtkTreePath  *path, 
-                   GtkTreeIter  *iter,
-                   gpointer     user_data)
-{
-  GtkTreeView *tree_view = GTK_TREE_VIEW(user_data);
-  GailTreeView *gailview;
-  GtkTreePath *cell_path;
-  GList *l;
-  GailTreeViewCellInfo *cell_info;
-  gailview = GAIL_TREE_VIEW (gtk_widget_get_accessible (GTK_WIDGET (tree_view)));
-
-  /* Loop through our cached cells */
-  /* Must loop through them all */
-  for (l = gailview->cell_data; l; l = l->next)
-    {
-      cell_info = (GailTreeViewCellInfo *) l->data;
-      if (cell_info->in_use) 
-      {
-         cell_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-
-         if (cell_path != NULL)
-         {
-             if (path && gtk_tree_path_compare (cell_path, path) == 0)
-             {
-                 if (GAIL_IS_RENDERER_CELL (cell_info->cell))
-                 {
-                     update_cell_value (GAIL_RENDERER_CELL (cell_info->cell),
-                                        gailview, TRUE);
-                 }
-             }
-             gtk_tree_path_free (cell_path);
-         }
-      }
-    }
-  g_signal_emit_by_name (gailview, "visible-data-changed");
-}
-
-static void
-column_visibility_changed (GObject    *object,
-                           GParamSpec *pspec,
-                           gpointer   user_data)
-{
-  if (strcmp (pspec->name, "visible") == 0)
-    {
-      /*
-       * A column has been made visible or invisible
-       *
-       * We update our cache of cells and emit model_changed signal
-       */ 
-      GtkTreeView *tree_view = (GtkTreeView *)user_data;
-      GailTreeView *gailview;
-      GList *l;
-      GailTreeViewCellInfo *cell_info;
-      GtkTreeViewColumn *this_col = GTK_TREE_VIEW_COLUMN (object);
-      GtkTreeViewColumn *tv_col;
-
-      gailview = GAIL_TREE_VIEW (gtk_widget_get_accessible (GTK_WIDGET (tree_view))
-);
-      g_signal_emit_by_name (gailview, "model_changed");
-
-      for (l = gailview->cell_data; l; l = l->next)
-        {
-          cell_info = (GailTreeViewCellInfo *) l->data;
-         if (cell_info->in_use) 
-         {
-             tv_col = cell_info->cell_col_ref;
-             if (tv_col == this_col)
-             {
-                 GtkTreePath *row_path;
-                 row_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-                 if (GAIL_IS_RENDERER_CELL (cell_info->cell))
-                 {
-                     if (gtk_tree_view_column_get_visible (tv_col))
-                         set_cell_visibility (tree_view, 
-                                              cell_info->cell, 
-                                              tv_col, row_path, FALSE);
-                     else
-                     {
-                         gail_cell_remove_state (cell_info->cell, 
-                                                 ATK_STATE_VISIBLE, TRUE);
-                         gail_cell_remove_state (cell_info->cell, 
-                                                 ATK_STATE_SHOWING, TRUE);
-                     }
-                 }
-                 gtk_tree_path_free (row_path);
-             }
-         }
-        }
-    }
-}
-
-static void
-model_row_inserted (GtkTreeModel *tree_model,
-                    GtkTreePath  *path, 
-                    GtkTreeIter  *iter, 
-                    gpointer     user_data)
-{
-  GtkTreeView *tree_view = (GtkTreeView *)user_data;
-  GtkTreePath *path_copy;
-  AtkObject *atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
-  GailTreeView *gailview = GAIL_TREE_VIEW (atk_obj);
-  gint row, n_inserted, child_row;
-
-  if (gailview->idle_expand_id)
-    {
-      g_source_remove (gailview->idle_expand_id);
-      gailview->idle_expand_id = 0;
-
-      /* don't do this if the insertion precedes the idle path, since it will now be invalid */
-      if (path && gailview->idle_expand_path &&
-         (gtk_tree_path_compare (path, gailview->idle_expand_path) > 0))
-         set_expand_state (tree_view, tree_model, gailview, gailview->idle_expand_path, FALSE);
-      if (gailview->idle_expand_path) 
-         gtk_tree_path_free (gailview->idle_expand_path);
-    }
-  /* Check to see if row is visible */
-  row = get_row_from_tree_path (tree_view, path);
-
- /*
-  * A row insert is not necessarily visible.  For example,
-  * a row can be draged & dropped into another row, which
-  * causes an insert on the model that isn't visible in the
-  * view.  Only generate a signal if the inserted row is
-  * visible.
-  */
-  if (row != -1)
-    {
-      GtkTreeIter iter;
-      gint n_cols, col;
-
-      gtk_tree_model_get_iter (tree_model, &iter, path);
-
-      /* Figure out number of visible children. */
-      if (gtk_tree_model_iter_has_child (tree_model, &iter))
-        {
-         /*
-          * By passing path into this function, we find the number of
-          * visible children of path.
-          */
-          n_inserted = 0;
-          iterate_thru_children (tree_view, tree_model,
-                                 path, NULL, &n_inserted, 0);
-
-          /* Must add one to include the row that is being added */
-          n_inserted++;
-        }
-      else
-      n_inserted = 1;
-
-      /* Set rows below the inserted row to ATK_STATE_STALE */
-      traverse_cells (gailview, path, TRUE, TRUE);
-
-      /* Generate row-inserted signal */
-      g_signal_emit_by_name (atk_obj, "row_inserted", row, n_inserted);
-
-      /* Generate children-changed signals */
-      n_cols = gail_tree_view_get_n_columns (ATK_TABLE (atk_obj));
-      for (child_row = row; child_row < (row + n_inserted); child_row++)
-        {
-          for (col = 0; col < n_cols; col++)
-            {
-             /*
-              * Pass NULL as the child object, i.e. 4th argument
-              */
-              g_signal_emit_by_name (atk_obj, "children_changed::add",
-                                    ((row * n_cols) + col), NULL, NULL);
-            }
-        }
-    }
-  else
-    {
-     /*
-      * The row has been inserted inside another row.  This can
-      * cause a row that previously couldn't be expanded to now
-      * be expandable.
-      */
-      path_copy = gtk_tree_path_copy (path);
-      gtk_tree_path_up (path_copy);
-      set_expand_state (tree_view, tree_model, gailview, path_copy, TRUE);
-      gtk_tree_path_free (path_copy);
-    }
-}
-
-static void
-model_row_deleted (GtkTreeModel *tree_model,
-                   GtkTreePath  *path, 
-                   gpointer     user_data)
-{
-  GtkTreeView *tree_view;
-  GtkTreePath *path_copy;
-  AtkObject *atk_obj;
-  GailTreeView *gailview;
-  gint row, col, n_cols;
-
-  tree_view = (GtkTreeView *)user_data;
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
-  gailview = GAIL_TREE_VIEW (atk_obj);
-
-  if (gailview->idle_expand_id)
-    {
-      g_source_remove (gailview->idle_expand_id);
-      gtk_tree_path_free (gailview->idle_expand_path);
-      gailview->idle_expand_id = 0;
-    }
-  /* Check to see if row is visible */
-  clean_rows (gailview);
-
-  /* Set rows at or below the specified row to ATK_STATE_STALE */
-  traverse_cells (gailview, path, TRUE, TRUE);
-
-  /*
-   * If deleting a row with a depth > 1, then this may affect the
-   * expansion/contraction of its parent(s).  Make sure this is
-   * handled.
-   */
-  if (gtk_tree_path_get_depth (path) > 1)
-    {
-      path_copy = gtk_tree_path_copy (path);
-      gtk_tree_path_up (path_copy);
-      set_expand_state (tree_view, tree_model, gailview, path_copy, TRUE);
-      gtk_tree_path_free (path_copy);
-    }
-  row = get_row_from_tree_path (tree_view, path);
-  /*
-   * If the row which is deleted is not visible because it is a child of
-   * a collapsed row then row will be -1
-   */
-  if (row > 0)
-    g_signal_emit_by_name (atk_obj, "row_deleted", row, 
-                           gailview->n_children_deleted + 1);
-  gailview->n_children_deleted = 0;
-
-  /* Generate children-changed signals */
-  n_cols = get_n_actual_columns (tree_view);
-  for (col = 0; col < n_cols; col++)
-  {
-    /*
-     * Pass NULL as the child object, 4th argument.
-     */
-    g_signal_emit_by_name (atk_obj, "children_changed::remove",
-                           ((row * n_cols) + col), NULL, NULL);
-  }
-}
-
-/* 
- * This function gets called when a row is deleted or when rows are
- * removed from the view due to a collapse event.  Note that the
- * count is the number of visible *children* of the deleted row,
- * so it does not include the row being deleted.
- *
- * As this function is called before the rows are removed we just note the
- * number of rows and then deal with it when we get a notification that
- * rows were deleted or collapsed.
- */
-static void
-destroy_count_func (GtkTreeView *tree_view, 
-                    GtkTreePath *path,
-                    gint        count,
-                    gpointer    user_data)
-{
-  AtkObject *atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
-  GailTreeView *gailview = GAIL_TREE_VIEW (atk_obj);
-
-  gail_return_if_fail (gailview->n_children_deleted == 0);
-  gailview->n_children_deleted = count;
-}
-
-static void 
-model_rows_reordered (GtkTreeModel *tree_model,
-                      GtkTreePath  *path, 
-                      GtkTreeIter  *iter,
-                      gint         *new_order, 
-                      gpointer     user_data)
-{
-  GtkTreeView *tree_view = (GtkTreeView *)user_data;
-  AtkObject *atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
-  GailTreeView *gailview = GAIL_TREE_VIEW (atk_obj);
-
-  if (gailview->idle_expand_id)
-    {
-      g_source_remove (gailview->idle_expand_id);
-      gtk_tree_path_free (gailview->idle_expand_path);
-      gailview->idle_expand_id = 0;
-    }
-  traverse_cells (gailview, NULL, TRUE, FALSE);
-
-  g_signal_emit_by_name (atk_obj, "row_reordered");
-}
-
-static void
-adjustment_changed (GtkAdjustment *adjustment, 
-                    GtkTreeView   *tree_view)
-{
-  AtkObject *atk_obj;
-  GailTreeView* obj;
-
-  /*
-   * The scrollbars have changed
-   */
-  atk_obj = gtk_widget_get_accessible (GTK_WIDGET (tree_view));
-  obj = GAIL_TREE_VIEW (atk_obj);
-
-  traverse_cells (obj, NULL, FALSE, FALSE);
-}
-
-static void
-set_cell_visibility (GtkTreeView       *tree_view,
-                     GailCell          *cell,
-                     GtkTreeViewColumn *tv_col,
-                     GtkTreePath       *tree_path,
-                     gboolean          emit_signal)
-{
-  GdkRectangle cell_rect;
-
-  /* Get these three values in tree coords */
-  if (gtk_widget_get_realized (GTK_WIDGET (tree_view)))
-    gtk_tree_view_get_cell_area (tree_view, tree_path, tv_col, &cell_rect);
-  else
-    cell_rect.height = 0;
-
-  if (cell_rect.height > 0)
-    {
-      /*
-       * The height will be zero for a cell for which an antecedent is not 
-       * expanded
-       */
-      gail_cell_add_state (cell, ATK_STATE_VISIBLE, emit_signal);
-      if (is_cell_showing (tree_view, &cell_rect))
-        gail_cell_add_state (cell, ATK_STATE_SHOWING, emit_signal);
-      else
-        gail_cell_remove_state (cell, ATK_STATE_SHOWING, emit_signal);
-    }
-  else
-    {
-      gail_cell_remove_state (cell, ATK_STATE_VISIBLE, emit_signal);
-      gail_cell_remove_state (cell, ATK_STATE_SHOWING, emit_signal);
-    }
-}
-
-static gboolean 
-is_cell_showing (GtkTreeView   *tree_view,
-                 GdkRectangle  *cell_rect)
-{
-  GdkRectangle rect, *visible_rect;
-  GdkRectangle rect1, *tree_cell_rect;
-  gint bx, by;
-  gboolean is_showing;
- /*
-  * A cell is considered "SHOWING" if any part of the cell is in the visible 
-  * area.  Other ways we could do this is by a cell's midpoint or if the cell 
-  * is fully in the visible range.  Since we have the cell_rect x,y,width,height
-  * of the cell, any of these is easy to compute.
-  *
-  * It is assumed that cell's rectangle is in widget coordinates so we
-  * must transform to tree cordinates.
-  */
-  visible_rect = &rect;
-  tree_cell_rect = &rect1;
-  tree_cell_rect->x = cell_rect->x;
-  tree_cell_rect->y = cell_rect->y;
-  tree_cell_rect->width = cell_rect->width;
-  tree_cell_rect->height = cell_rect->height;
-
-  gtk_tree_view_get_visible_rect (tree_view, visible_rect);
-  gtk_tree_view_convert_tree_to_bin_window_coords (tree_view, visible_rect->x, 
-                                                   visible_rect->y, &bx, &by);
-
-  if (((tree_cell_rect->x + tree_cell_rect->width) < bx) ||
-     ((tree_cell_rect->y + tree_cell_rect->height) < by) ||
-     (tree_cell_rect->x > (bx + visible_rect->width)) ||
-     (tree_cell_rect->y > (by + visible_rect->height)))
-    is_showing =  FALSE;
-  else
-    is_showing = TRUE;
-
-  return is_showing;
-}
-
-/* Misc Public */
-
-/*
- * This function is called when a cell's flyweight is created in
- * gail_tree_view_table_ref_at with emit_change_signal set to FALSE
- * and in model_row_changed() on receipt of "row-changed" signal when 
- * emit_change_signal is set to TRUE
- */
-static gboolean
-update_cell_value (GailRendererCell *renderer_cell,
-                   GailTreeView     *gailview,
-                   gboolean         emit_change_signal)
-{
-  GailTreeViewCellInfo *cell_info;
-  GtkTreeView *tree_view;
-  GtkTreeModel *tree_model;
-  GtkTreePath *path;
-  GtkTreeIter iter;
-  GList *renderers, *cur_renderer;
-  GParamSpec *spec;
-  GailRendererCellClass *gail_renderer_cell_class;
-  GtkCellRendererClass *gtk_cell_renderer_class;
-  GailCell *cell;
-  gchar **prop_list;
-  AtkObject *parent;
-  gboolean is_expander, is_expanded;
-  
-  gail_renderer_cell_class = GAIL_RENDERER_CELL_GET_CLASS (renderer_cell);
-  if (renderer_cell->renderer)
-    gtk_cell_renderer_class = GTK_CELL_RENDERER_GET_CLASS (renderer_cell->renderer);
-  else
-    gtk_cell_renderer_class = NULL;
-
-  prop_list = gail_renderer_cell_class->property_list;
-
-  cell = GAIL_CELL (renderer_cell);
-  cell_info = find_cell_info (gailview, cell, NULL, TRUE);
-  gail_return_val_if_fail (cell_info, FALSE);
-  gail_return_val_if_fail (cell_info->cell_col_ref, FALSE);
-  gail_return_val_if_fail (cell_info->cell_row_ref, FALSE);
-
-  if (emit_change_signal && cell_info->in_use)
-    {
-      tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (gailview)));
-      tree_model = gtk_tree_view_get_model (tree_view);
-      path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-      if (path == NULL)
-        return FALSE;
-
-      gtk_tree_model_get_iter (tree_model, &iter, path);
-      is_expander = FALSE;
-      is_expanded = FALSE;
-      if (gtk_tree_model_iter_has_child (tree_model, &iter))
-        {
-          GtkTreeViewColumn *expander_tv;
-
-          expander_tv = gtk_tree_view_get_expander_column (tree_view);
-          if (expander_tv == cell_info->cell_col_ref)
-            {
-              is_expander = TRUE;
-              is_expanded = gtk_tree_view_row_expanded (tree_view, path);
-            }
-        } 
-      gtk_tree_path_free (path);
-      gtk_tree_view_column_cell_set_cell_data (cell_info->cell_col_ref,
-                                  tree_model, &iter, is_expander, is_expanded);
-    }
-  renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (cell_info->cell_col_ref));
-  gail_return_val_if_fail (renderers, FALSE);
-
-  /*
-   * If the cell is in a container, its index is used to find the renderer 
-   * in the list
-   */
-
-  /*
-   * Otherwise, we assume that the cell is represented by the first renderer 
-   * in the list
-   */
-
-  if (cell_info->in_use) {
-      parent = atk_object_get_parent (ATK_OBJECT (cell));
-      if (!ATK_IS_OBJECT (cell)) g_on_error_query (NULL);
-      if (GAIL_IS_CONTAINER_CELL (parent))
-         cur_renderer = g_list_nth (renderers, cell->index);
-      else
-         cur_renderer = renderers;
-  }
-  else {
-      return FALSE;
-  }
-  
-  gail_return_val_if_fail (cur_renderer != NULL, FALSE);
-
-  if (gtk_cell_renderer_class)
-    {
-      while (*prop_list)
-        {
-          spec = g_object_class_find_property
-                           (G_OBJECT_CLASS (gtk_cell_renderer_class), *prop_list);
-
-          if (spec != NULL)
-            {
-              GValue value = { 0, };
-
-              g_value_init (&value, spec->value_type);
-              g_object_get_property (cur_renderer->data, *prop_list, &value);
-              g_object_set_property (G_OBJECT (renderer_cell->renderer),
-                                     *prop_list, &value);
-              g_value_unset(&value);
-            }
-          else
-            g_warning ("Invalid property: %s\n", *prop_list);
-          prop_list++;
-        }
-    }
-  g_list_free (renderers);
-  return gail_renderer_cell_update_cache (renderer_cell, emit_change_signal);
-}
-
-static void 
-set_iter_nth_row (GtkTreeView *tree_view, 
-                  GtkTreeIter *iter, 
-                  gint        row)
-{
-  GtkTreeModel *tree_model;
-  
-  tree_model = gtk_tree_view_get_model (tree_view);
-  gtk_tree_model_get_iter_first (tree_model, iter);
-  iter = return_iter_nth_row (tree_view, tree_model, iter, 0 , row);
-}
-
-static gint 
-get_row_from_tree_path (GtkTreeView *tree_view,
-                        GtkTreePath *path)
-{
-  GtkTreeModel *tree_model;
-  GtkTreePath *root_tree;
-  gint row;
-
-  tree_model = gtk_tree_view_get_model (tree_view);
-
-  if (gtk_tree_model_get_flags (tree_model) & GTK_TREE_MODEL_LIST_ONLY)
-    row = gtk_tree_path_get_indices (path)[0];
-  else
-    {
-      root_tree = gtk_tree_path_new_first ();
-      row = 0;
-      iterate_thru_children (tree_view, tree_model, root_tree, path, &row, 0);
-      gtk_tree_path_free (root_tree);
-    }
-
-  return row;
-}
-
-/* Misc Private */
-
-/*
- * Get the specified GtkTreeViewColumn in the GtkTreeView.
- * Only visible columns are considered.
- */
-static GtkTreeViewColumn* 
-get_column (GtkTreeView *tree_view, 
-            gint        in_col)
-{
-  GtkTreeViewColumn *tv_col;
-  gint n_cols = -1;
-  gint i = 0;
-  if (in_col < 0)
-    {
-       g_warning ("Request for invalid column %d\n", in_col);
-       return NULL;
-    }
-
-  tv_col = gtk_tree_view_get_column (tree_view, i);
-
-  while (tv_col != NULL)
-    {
-      if (gtk_tree_view_column_get_visible (tv_col)) 
-        n_cols++;
-      if (in_col == n_cols)
-        break;
-      tv_col = gtk_tree_view_get_column (tree_view, ++i);
-    }
-
-  if (in_col != n_cols)
-    {
-       g_warning ("Request for invalid column %d\n", in_col);
-       return NULL;
-    }
-  return tv_col;
-}
-
-static gint
-get_actual_column_number (GtkTreeView *tree_view,
-                          gint        visible_column)
-{
-  GtkTreeViewColumn *tv_col;
-  gint actual_column = 0;
-  gint visible_columns = -1;
-  /*
-   * This function calculates the column number which corresponds to the
-   * specified visible column number
-   */
-  tv_col = gtk_tree_view_get_column (tree_view, actual_column);
-
-  while (tv_col != NULL)
-    {
-      if (gtk_tree_view_column_get_visible (tv_col)) 
-        visible_columns++;
-      if (visible_columns == visible_column)
-        return actual_column;
-      tv_col = gtk_tree_view_get_column (tree_view, ++actual_column);
-    }
-  g_warning ("get_actual_column_number failed for %d\n", visible_column);
-  return -1;
-}
-
-static gint
-get_visible_column_number (GtkTreeView *tree_view,
-                           gint        actual_column)
-{
-  GtkTreeViewColumn *tv_col;
-  gint column = 0;
-  gint visible_columns = -1;
-  /*
-   * This function calculates the visible column number which corresponds to the
-   * specified actual column number
-   */
-  tv_col = gtk_tree_view_get_column (tree_view, column);
-
-  while (tv_col != NULL)
-    {
-      if (gtk_tree_view_column_get_visible (tv_col)) 
-        {
-          visible_columns++;
-          if (actual_column == column)
-            return visible_columns;
-        }
-      else
-        if (actual_column == column)
-          return -1;
-      tv_col = gtk_tree_view_get_column (tree_view, ++column);
-    }
-  g_warning ("get_visible_column_number failed for %d\n", actual_column);
-  return -1;
-}
-
-/**
- * Helper recursive function that returns GtkTreeIter pointer to nth row.
- **/
-static GtkTreeIter* 
-return_iter_nth_row(GtkTreeView  *tree_view,
-                    GtkTreeModel *tree_model, 
-                    GtkTreeIter  *iter, 
-                    gint         increment,
-                    gint         row)
-{
-  GtkTreePath *current_path = gtk_tree_model_get_path (tree_model, iter);
-  GtkTreeIter new_iter;
-  gboolean row_expanded;
-
-  if (increment == row) {
-    gtk_tree_path_free (current_path);
-    return iter;
-  }
-
-  row_expanded = gtk_tree_view_row_expanded (tree_view, current_path);
-  gtk_tree_path_free (current_path);
-
-  new_iter = *iter;
-  if ((row_expanded && gtk_tree_model_iter_children (tree_model, iter, &new_iter)) ||
-      (gtk_tree_model_iter_next (tree_model, iter)) ||
-      (gtk_tree_model_iter_parent (tree_model, iter, &new_iter) &&
-          (gtk_tree_model_iter_next (tree_model, iter))))
-    return return_iter_nth_row (tree_view, tree_model, iter,
-      ++increment, row);
-
-  return NULL;         
-}
-
-/**
- * Recursively called until the row specified by orig is found.
- *
- * *count will be set to the visible row number of the child
- * relative to the row that was initially passed in as tree_path.
- *
- * *count will be -1 if orig is not found as a child (a row that is
- * not visible will not be found, e.g. if the row is inside a
- * collapsed row).  If NULL is passed in as orig, *count will
- * be a count of the visible children.
- *
- * NOTE: the value for depth must be 0 when this recursive function
- * is initially called, or it may not function as expected.
- **/
-static void 
-iterate_thru_children(GtkTreeView  *tree_view,
-                      GtkTreeModel *tree_model,
-                      GtkTreePath  *tree_path,
-                      GtkTreePath  *orig,
-                      gint         *count,
-                      gint         depth)
-{
-  GtkTreeIter iter;
-
-  if (!gtk_tree_model_get_iter (tree_model, &iter, tree_path))
-    return;
-
-  if (tree_path && orig && !gtk_tree_path_compare (tree_path, orig)) 
-    /* Found it! */
-    return;
-
-  if (tree_path && orig && gtk_tree_path_compare (tree_path, orig) > 0)
-    {
-      /* Past it, so return -1 */
-      *count = -1;
-      return;
-    }
-  else if (gtk_tree_view_row_expanded (tree_view, tree_path) && 
-    gtk_tree_model_iter_has_child (tree_model, &iter)) 
-    {
-      (*count)++;
-      gtk_tree_path_append_index (tree_path, 0);
-      iterate_thru_children (tree_view, tree_model, tree_path,
-                             orig, count, (depth + 1));
-      return;
-    }
-  else if (gtk_tree_model_iter_next (tree_model, &iter)) 
-    {
-      (*count)++;
-      tree_path = gtk_tree_model_get_path (tree_model, &iter);
-       if (tree_path)
-         {
-           iterate_thru_children (tree_view, tree_model, tree_path,
-                                 orig, count, depth); 
-           gtk_tree_path_free (tree_path);
-         }
-      return;
-  }
-  else if (gtk_tree_path_up (tree_path))
-    {
-      GtkTreeIter temp_iter;
-      gboolean exit_loop = FALSE;
-      gint new_depth = depth - 1;
-
-      (*count)++;
-
-     /*
-      * Make sure that we back up until we find a row
-      * where gtk_tree_path_next does not return NULL.
-      */
-      while (!exit_loop)
-        {
-          if (gtk_tree_path_get_depth (tree_path) == 0)
-              /* depth is now zero so */
-            return;
-          gtk_tree_path_next (tree_path);      
-
-          /* Verify that the next row is a valid row! */
-          exit_loop = gtk_tree_model_get_iter (tree_model, &temp_iter, tree_path);
-
-          if (!exit_loop)
-            {
-              /* Keep going up until we find a row that has a valid next */
-              if (gtk_tree_path_get_depth(tree_path) > 1)
-                {
-                  new_depth--;
-                  gtk_tree_path_up (tree_path);
-                }
-              else
-                {
-                 /*
-                  * If depth is 1 and gtk_tree_model_get_iter returns FALSE,
-                  * then we are at the last row, so just return.
-                  */ 
-                  if (orig != NULL)
-                    *count = -1;
-
-                  return;
-                }
-            }
-        }
-
-     /*
-      * This guarantees that we will stop when we hit the end of the
-      * children.
-      */
-      if (new_depth < 0)
-        return;
-
-      iterate_thru_children (tree_view, tree_model, tree_path,
-                            orig, count, new_depth);
-      return;
-    }
-
- /*
-  * If it gets here, then the path wasn't found.  Situations
-  * that would cause this would be if the path passed in is
-  * invalid or contained within the last row, but not visible
-  * because the last row is not expanded.  If NULL was passed
-  * in then a row count is desired, so only set count to -1
-  * if orig is not NULL.
-  */
-  if (orig != NULL)
-    *count = -1;
-
-  return;
-}
-
-static void
-clean_cell_info (GailTreeView *gailview,
-                 GList        *list) 
-{
-  GailTreeViewCellInfo *cell_info;
-  GObject *obj;
-
-  g_assert (GAIL_IS_TREE_VIEW (gailview));
-
-  cell_info = list->data;
-
-  if (cell_info->in_use) {
-      obj = G_OBJECT (cell_info->cell);
-      
-      gail_cell_add_state (cell_info->cell, ATK_STATE_DEFUNCT, FALSE);
-      g_object_weak_unref (obj, (GWeakNotify) cell_destroyed, cell_info);
-      cell_info->in_use = FALSE; 
-      if (!gailview->garbage_collection_pending) {
-         gailview->garbage_collection_pending = TRUE;
-          g_assert (gailview->idle_garbage_collect_id == 0);
-         gailview->idle_garbage_collect_id = 
-           gdk_threads_add_idle (idle_garbage_collect_cell_data, gailview);
-      }
-  }
-}
-
-static void 
-clean_rows (GailTreeView *gailview)
-{
-  GArray *array;
-
-  /* Clean GailTreeViewRowInfo data */
-
-  array = gailview->row_data;
-  if (array != NULL)
-    {
-      GailTreeViewRowInfo *row_info;
-      GtkTreePath *row_path;
-      gint i;
-
-     /*
-      * Loop backwards so that calls to free_row_info
-      * do not affect the index numbers 
-      */
-      for (i = (array->len - 1); i >= 0; i  --)
-        {
-          row_info = g_array_index (array, GailTreeViewRowInfo*, i);
-          row_path = gtk_tree_row_reference_get_path (row_info->row_ref);
-
-          /* Remove any rows that have become invalid */
-          if (row_path == NULL)
-            free_row_info (array, i, TRUE);
-          else
-            gtk_tree_path_free (row_path);
-        }
-    }
-
-  /* Clean GailTreeViewCellInfo data */
-
-  if (gailview->cell_data != NULL)
-    {
-      GailTreeViewCellInfo *cell_info;
-      GtkTreePath *row_path;
-      GList *cur_list;
-      GList *temp_list;
-
-      temp_list = gailview->cell_data;
-
-      /* Must loop through them all */
-      while (temp_list != NULL)
-        {
-          cur_list = temp_list;
-          cell_info = temp_list->data;
-          temp_list = temp_list->next;
-          row_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-
-         /*
-          * If the cell has become invalid because the row has been removed, 
-          * then set the cell's state to ATK_STATE_DEFUNCT and remove the cell
-          * from gailview->cell_data.  If row_path is NULL then the row has
-          * been removed.
-          */
-          if (row_path == NULL)
-            {
-              clean_cell_info (gailview, cur_list);
-            }
-          else
-            {
-              gtk_tree_path_free (row_path);
-            }
-        }
-    }
-}
-
-static void 
-clean_cols (GailTreeView      *gailview,
-            GtkTreeViewColumn *tv_col)
-{
-  /* Clean GailTreeViewCellInfo data */
-
-  if (gailview->cell_data != NULL)
-    {
-      GailTreeViewCellInfo *cell_info;
-      GList *cur_list, *temp_list;
-
-      temp_list = gailview->cell_data;
-
-      while (temp_list != NULL)
-        {
-          cur_list = temp_list;
-          cell_info = temp_list->data;
-          temp_list = temp_list->next;
-
-         /*
-          * If the cell has become invalid because the column tv_col
-          * has been removed, then set the cell's state to ATK_STATE_DEFUNCT
-          * and remove the cell from gailview->cell_data. 
-          */
-          if (cell_info->cell_col_ref == tv_col)
-            {
-              clean_cell_info (gailview, cur_list);
-            }
-        }
-    }
-}
-
-static gboolean
-idle_garbage_collect_cell_data (gpointer data)
-{
-      GailTreeView *tree_view;
-
-      g_assert (GAIL_IS_TREE_VIEW (data));
-      tree_view = (GailTreeView *)data;
-
-      /* this is the idle handler (only one instance allowed), so
-       * we can safely delete it.
-       */
-      tree_view->garbage_collection_pending = FALSE;
-      tree_view->idle_garbage_collect_id = 0;
-
-      tree_view->garbage_collection_pending = garbage_collect_cell_data (data);
-
-      /* N.B.: if for some reason another handler has re-enterantly been queued
-       * while this handler was being serviced, it has its own gsource, therefore this handler
-       * should always return FALSE.
-       */
-      return FALSE; 
-}
-
-static gboolean
-garbage_collect_cell_data (gpointer data)
-{
-      GailTreeView *tree_view;
-      GList *temp_list, *list;
-      GailTreeViewCellInfo *cell_info;
-
-      g_assert (GAIL_IS_TREE_VIEW (data));
-      tree_view = (GailTreeView *)data;
-      list = g_list_copy (tree_view->cell_data);
-
-      tree_view->garbage_collection_pending = FALSE;
-      if (tree_view->idle_garbage_collect_id != 0) 
-      {
-         g_source_remove (tree_view->idle_garbage_collect_id);
-         tree_view->idle_garbage_collect_id = 0;
-      }
-
-      /* Must loop through them all */
-      temp_list = list;
-      while (temp_list != NULL)
-      {
-          cell_info = temp_list->data;
-         if (!cell_info->in_use)
-         {
-             /* g_object_unref (cell_info->cell); */
-             tree_view->cell_data = g_list_remove (tree_view->cell_data, 
-                                                   cell_info);
-             if (cell_info->cell_row_ref)
-                 gtk_tree_row_reference_free (cell_info->cell_row_ref);
-             g_free (cell_info);
-         }
-          temp_list = temp_list->next;
-      }
-      g_list_free (list);
-
-      return tree_view->garbage_collection_pending;
-}
-
-/**
- * If tree_path is passed in as NULL, then all cells are acted on.
- * Otherwise, just act on those cells that are on a row greater than 
- * the specified tree_path. If inc_row is passed in as TRUE, then rows 
- * greater and equal to the specified tree_path are acted on.
- *
- * if set_stale is set the ATK_STATE_STALE is set on cells which are to be
- * acted on. 
- *
- * The function set_cell_visibility() is called on all cells to be
- * acted on to update the visibility of the cell.
- **/
-static void 
-traverse_cells (GailTreeView *tree_view,
-                GtkTreePath  *tree_path,
-                gboolean     set_stale,
-                gboolean     inc_row)
-{
-  if (tree_view->cell_data != NULL)
-    {
-      GailTreeViewCellInfo *cell_info;
-      GtkTreeView *gtk_tree_view;
-      GList *temp_list;
-      GtkWidget *widget;
-
-      g_assert (GTK_IS_ACCESSIBLE (tree_view));
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (tree_view));
-      if (!widget)
-        /* Widget is being deleted */
-        return;
-
-      gtk_tree_view = GTK_TREE_VIEW (widget);
-      temp_list = tree_view->cell_data;
-
-      /* Must loop through them all */
-      while (temp_list != NULL)
-        {
-          GtkTreePath *row_path;
-          gboolean act_on_cell;
-
-          cell_info = temp_list->data;
-          temp_list = temp_list->next;
-
-         if (cell_info->in_use)
-         {
-             row_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-             g_return_if_fail (row_path != NULL);
-             if (tree_path == NULL)
-                 act_on_cell = TRUE;
-             else 
-             {
-                 gint comparison;
-                 
-                 comparison =  gtk_tree_path_compare (row_path, tree_path);
-                 if ((comparison > 0) ||
-                     (comparison == 0 && inc_row))
-                     act_on_cell = TRUE;
-                 else
-                     act_on_cell = FALSE;
-             }
-             if (!cell_info->in_use) g_warning ("warning: cell info destroyed during traversal");
-             if (act_on_cell && cell_info->in_use)
-             {
-                 if (set_stale)
-                     gail_cell_add_state (cell_info->cell, ATK_STATE_STALE, TRUE);
-                 set_cell_visibility (gtk_tree_view,
-                                      cell_info->cell,
-                                      cell_info->cell_col_ref,
-                                      row_path, TRUE);
-             }
-             gtk_tree_path_free (row_path);
-         }
-       }
-    }
-  g_signal_emit_by_name (tree_view, "visible-data-changed");
-}
-
-static void
-free_row_info (GArray   *array,
-               gint     array_idx,
-               gboolean shift)
-{
-  GailTreeViewRowInfo* obj;
-
-  obj = g_array_index (array, GailTreeViewRowInfo*, array_idx);
-
-  g_free (obj->description);
-  if (obj->row_ref != NULL)
-    gtk_tree_row_reference_free (obj->row_ref);
-  if (obj->header)
-    g_object_unref (obj->header);
-  g_free (obj);
-
-  if (shift)
-    g_array_remove_index (array, array_idx);
-}
-
-/*
- * If the tree_path passed in has children, then
- * ATK_STATE_EXPANDABLE is set.  If the row is expanded
- * ATK_STATE_EXPANDED is turned on.  If the row is 
- * collapsed, then ATK_STATE_EXPANDED is removed.
- * 
- * If the tree_path passed in has no children, then
- * ATK_STATE_EXPANDABLE and ATK_STATE_EXPANDED are removed.
- *
- * If set_on_ancestor is TRUE, then this function will also
- * update all cells that are ancestors of the tree_path.
- */
-static void
-set_expand_state (GtkTreeView  *tree_view,
-                  GtkTreeModel *tree_model,
-                  GailTreeView *gailview,
-                  GtkTreePath  *tree_path,
-                  gboolean     set_on_ancestor)
-{
-  if (gailview->cell_data != NULL)
-    {
-      GtkTreeViewColumn *expander_tv;
-      GailTreeViewCellInfo *cell_info;
-      GList *temp_list;
-      GtkTreePath *cell_path;
-      GtkTreeIter iter;
-      gboolean found;
-
-      temp_list = gailview->cell_data;
-
-      while (temp_list != NULL)
-        {
-          cell_info = temp_list->data;
-          temp_list = temp_list->next;
-         if (cell_info->in_use)
-         {
-             cell_path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-             found = FALSE;
-             
-             if (cell_path != NULL)
-             {
-                 GailCell *cell  = GAIL_CELL (cell_info->cell);
-                 
-                 expander_tv = gtk_tree_view_get_expander_column (tree_view);
-                 
-                 /*
-                  * Only set state for the cell that is in the column with the
-                  * expander toggle
-                  */
-                 if (expander_tv == cell_info->cell_col_ref)
-                 {
-                     if (tree_path && gtk_tree_path_compare (cell_path, tree_path) == 0)
-                         found = TRUE;
-                     else if (set_on_ancestor &&
-                              gtk_tree_path_get_depth (cell_path) <
-                              gtk_tree_path_get_depth (tree_path) && 
-                              gtk_tree_path_is_ancestor (cell_path, tree_path) == 1)
-                         /* Only set if set_on_ancestor was passed in as TRUE */
-                         found = TRUE;
-                 }
-                 
-                 /*
-                  * Set ATK_STATE_EXPANDABLE and ATK_STATE_EXPANDED
-                  * for ancestors and found cells.
-                  */
-                 if (found)
-                 {
-                     /*
-                      * Must check against cell_path since cell_path
-                      * can be equal to or an ancestor of tree_path.
-                      */
-                     gtk_tree_model_get_iter (tree_model, &iter, cell_path);
-                     
-                     /* Set or unset ATK_STATE_EXPANDABLE as appropriate */
-                     if (gtk_tree_model_iter_has_child (tree_model, &iter)) 
-                     {
-                         set_cell_expandable (cell);
-                         
-                         if (gtk_tree_view_row_expanded (tree_view, cell_path))
-                             gail_cell_add_state (cell, ATK_STATE_EXPANDED, TRUE);
-                         else
-                             gail_cell_remove_state (cell, 
-                                                     ATK_STATE_EXPANDED, TRUE);
-                     }
-                     else
-                     {
-                         gail_cell_remove_state (cell, 
-                                                 ATK_STATE_EXPANDED, TRUE);
-                         if (gail_cell_remove_state (cell,
-                                                     ATK_STATE_EXPANDABLE, TRUE))
-                             /* The state may have been propagated to the container cell */
-                             if (!GAIL_IS_CONTAINER_CELL (cell))
-                                 gail_cell_remove_action_by_name (cell,
-                                                                  "expand or contract");
-                     }
-                     
-                     /*
-                      * We assume that each cell in the cache once and
-                      * a container cell is before its child cells so we are 
-                      * finished if set_on_ancestor is not set to TRUE.
-                      */
-                     if (!set_on_ancestor)
-                         break;
-                 }
-             }
-             gtk_tree_path_free (cell_path);
-         }
-       }
-    }
-}
-
-
-static void
-add_cell_actions (GailCell *cell,
-                  gboolean editable)
-{
-  if (GAIL_IS_BOOLEAN_CELL (cell))
-    gail_cell_add_action (cell,
-       "toggle",
-       "toggles the cell", /* action description */
-       NULL,
-       toggle_cell_toggled);
-  if (editable)
-    gail_cell_add_action (cell,
-       "edit",
-       "creates a widget in which the contents of the cell can be edited", 
-       NULL,
-       edit_cell);
-  gail_cell_add_action (cell,
-       "activate",
-       "activate the cell", 
-       NULL,
-       activate_cell);
-}
-
-static void
-toggle_cell_expanded (GailCell *cell)
-{
-  GailTreeViewCellInfo *cell_info;
-  GtkTreeView *tree_view;
-  GtkTreePath *path;
-  AtkObject *parent;
-  AtkStateSet *stateset;
-  
-  parent = atk_object_get_parent (ATK_OBJECT (cell));
-  if (GAIL_IS_CONTAINER_CELL (parent))
-    parent = atk_object_get_parent (parent);
-
-  cell_info = find_cell_info (GAIL_TREE_VIEW (parent), cell, NULL, TRUE);
-  gail_return_if_fail (cell_info);
-  gail_return_if_fail (cell_info->cell_col_ref);
-  gail_return_if_fail (cell_info->cell_row_ref);
-
-  tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (parent)));
-  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-  gail_return_if_fail (path);
-
-  stateset = atk_object_ref_state_set (ATK_OBJECT (cell));
-  if (atk_state_set_contains_state (stateset, ATK_STATE_EXPANDED))
-    gtk_tree_view_collapse_row (tree_view, path);
-  else
-    gtk_tree_view_expand_row (tree_view, path, TRUE);
-  g_object_unref (stateset);
-  gtk_tree_path_free (path);
-  return;
-}
-
-static void
-toggle_cell_toggled (GailCell *cell)
-{
-  GailTreeViewCellInfo *cell_info;
-  GtkTreePath *path;
-  gchar *pathstring;
-  GList *renderers, *cur_renderer;
-  AtkObject *parent;
-  gboolean is_container_cell = FALSE;
-
-  parent = atk_object_get_parent (ATK_OBJECT (cell));
-  if (GAIL_IS_CONTAINER_CELL (parent))
-    {
-      is_container_cell = TRUE;
-      parent = atk_object_get_parent (parent);
-    }
-
-  cell_info = find_cell_info (GAIL_TREE_VIEW (parent), cell, NULL, TRUE);
-  gail_return_if_fail (cell_info);
-  gail_return_if_fail (cell_info->cell_col_ref);
-  gail_return_if_fail (cell_info->cell_row_ref);
-
-  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-  gail_return_if_fail (path);
-  pathstring = gtk_tree_path_to_string (path);
-
-  renderers = gtk_cell_layout_get_cells (GTK_CELL_LAYOUT (cell_info->cell_col_ref));
-  gail_return_if_fail (renderers);
-
-  /* 
-   * if the cell is in a container, its index is used to find the 
-   * renderer in the list
-   */
-
-  if (is_container_cell)
-    cur_renderer = g_list_nth (renderers, cell->index);
-  else
-  /*
-   * Otherwise, we assume that the cell is represented by the first 
-   * renderer in the list 
-   */
-    cur_renderer = renderers;
-
-  gail_return_if_fail (cur_renderer);
-
-  g_signal_emit_by_name (cur_renderer->data, "toggled", pathstring);
-  g_list_free (renderers);
-  g_free (pathstring);
-  gtk_tree_path_free (path);
-  return;
-}
-
-static void
-edit_cell (GailCell *cell)
-{
-  GailTreeViewCellInfo *cell_info;
-  GtkTreeView *tree_view;
-  GtkTreePath *path;
-  AtkObject *parent;
-
-  editing = TRUE;
-  parent = atk_object_get_parent (ATK_OBJECT (cell));
-  if (GAIL_IS_CONTAINER_CELL (parent))
-    parent = atk_object_get_parent (parent);
-
-  cell_info = find_cell_info (GAIL_TREE_VIEW (parent), cell, NULL, TRUE);
-  gail_return_if_fail (cell_info);
-  gail_return_if_fail (cell_info->cell_col_ref);
-  gail_return_if_fail (cell_info->cell_row_ref);
-
-  tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (parent)));
-  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-  gail_return_if_fail (path);
-  gtk_tree_view_set_cursor (tree_view, path, cell_info->cell_col_ref, TRUE);
-  gtk_tree_path_free (path);
-  return;
-}
-
-static void
-activate_cell (GailCell *cell)
-{
-  GailTreeViewCellInfo *cell_info;
-  GtkTreeView *tree_view;
-  GtkTreePath *path;
-  AtkObject *parent;
-
-  editing = TRUE;
-  parent = atk_object_get_parent (ATK_OBJECT (cell));
-  if (GAIL_IS_CONTAINER_CELL (parent))
-    parent = atk_object_get_parent (parent);
-
-  cell_info = find_cell_info (GAIL_TREE_VIEW (parent), cell, NULL, TRUE);
-  gail_return_if_fail (cell_info);
-  gail_return_if_fail (cell_info->cell_col_ref);
-  gail_return_if_fail (cell_info->cell_row_ref);
-
-  tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (parent)));
-  path = gtk_tree_row_reference_get_path (cell_info->cell_row_ref);
-  gail_return_if_fail (path);
-  gtk_tree_view_row_activated (tree_view, path, cell_info->cell_col_ref);
-  gtk_tree_path_free (path);
-  return;
-}
-
-static void
-cell_destroyed (gpointer data)
-{
-  GailTreeViewCellInfo *cell_info = data;
-
-  gail_return_if_fail (cell_info);
-  if (cell_info->in_use) {
-      cell_info->in_use = FALSE;
-
-      g_assert (GAIL_IS_TREE_VIEW (cell_info->view));
-      if (!cell_info->view->garbage_collection_pending) {
-         cell_info->view->garbage_collection_pending = TRUE;
-         cell_info->view->idle_garbage_collect_id =
-           gdk_threads_add_idle (idle_garbage_collect_cell_data, cell_info->view);
-      }
-  }
-}
-
-#if 0
-static void
-cell_info_remove (GailTreeView *tree_view, 
-                  GailCell     *cell)
-{
-  GailTreeViewCellInfo *info;
-  GList *temp_list;
-
-  info = find_cell_info (tree_view, cell, &temp_list, FALSE);
-  if (info)
-    {
-      info->in_use = FALSE;
-      return;
-    }
-  g_warning ("No cell removed in cell_info_remove\n");
-}
-#endif
-
-static void
-cell_info_get_index (GtkTreeView            *tree_view, 
-                     GailTreeViewCellInfo   *info,
-                     gint                   *index)
-{
-  GtkTreePath *path;
-  gint column_number;
-
-  path = gtk_tree_row_reference_get_path (info->cell_row_ref);
-  gail_return_if_fail (path);
-
-  column_number = get_column_number (tree_view, info->cell_col_ref, FALSE);
-  *index = get_index (tree_view, path, column_number);
-  gtk_tree_path_free (path);
-}
-
-static void
-cell_info_new (GailTreeView      *gailview, 
-               GtkTreeModel      *tree_model, 
-               GtkTreePath       *path,
-               GtkTreeViewColumn *tv_col,
-               GailCell          *cell )
-{
-  GailTreeViewCellInfo *cell_info;
-
-  g_assert (GAIL_IS_TREE_VIEW (gailview));
-
-  cell_info = g_new (GailTreeViewCellInfo, 1);
-  cell_info->cell_row_ref = gtk_tree_row_reference_new (tree_model, path);
-
-  cell_info->cell_col_ref = tv_col;
-  cell_info->cell = cell;
-  cell_info->in_use = TRUE; /* if we've created it, assume it's in use */
-  cell_info->view = gailview;
-  gailview->cell_data = g_list_append (gailview->cell_data, cell_info);
-      
-  /* Setup weak reference notification */
-
-  g_object_weak_ref (G_OBJECT (cell),
-                     (GWeakNotify) cell_destroyed,
-                     cell_info);
-}
-
-static GailCell*
-find_cell (GailTreeView *gailview, 
-           gint         index)
-{
-  GailTreeViewCellInfo *info;
-  GtkTreeView *tree_view;
-  GList *cell_list;
-  GList *l;
-  gint real_index;
-  gboolean needs_cleaning = FALSE;
-  GailCell *retval = NULL;
-
-  tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (gailview)));
-  cell_list = gailview->cell_data;
-
-  for (l = cell_list; l; l = l->next)
-    {
-      info = (GailTreeViewCellInfo *) (l->data);
-      if (info->in_use)
-      {
-         cell_info_get_index (tree_view, info, &real_index);
-         if (index == real_index)
-         {
-             retval =  info->cell;
-             break;
-         }
-      }
-      else
-      {
-         needs_cleaning = TRUE;
-      }
-    }
-  if (needs_cleaning)
-     garbage_collect_cell_data (gailview);
-
-  return retval;
-}
-
-static void
-refresh_cell_index (GailCell *cell)
-{
-  GailTreeViewCellInfo *info;
-  AtkObject *parent;
-  GtkTreeView *tree_view;
-  gint index;
-
-  parent = atk_object_get_parent (ATK_OBJECT (cell));
-  gail_return_if_fail (GAIL_IS_TREE_VIEW (parent));
-
-  tree_view = GTK_TREE_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (parent)));
-
-  /* Find this cell in the GailTreeView's cache */
-
-  info = find_cell_info (GAIL_TREE_VIEW (parent), cell, NULL, TRUE);
-  gail_return_if_fail (info);
-  
-  cell_info_get_index (tree_view, info, &index); 
-  cell->index = index;
-}
-
-static void
-get_selected_rows (GtkTreeModel *model,
-                   GtkTreePath  *path,
-                   GtkTreeIter  *iter,
-                   gpointer     data)
-{
-  GPtrArray *array = (GPtrArray *)data;
-
-  g_ptr_array_add (array, gtk_tree_path_copy (path));
-}
-
-static void
-connect_model_signals (GtkTreeView  *view,
-                       GailTreeView *gailview)
-{
-  GObject *obj;
-
-  obj = G_OBJECT (gailview->tree_model);
-  g_signal_connect_data (obj, "row-changed",
-                         (GCallback) model_row_changed, view, NULL, 0);
-  g_signal_connect_data (obj, "row-inserted",
-                         (GCallback) model_row_inserted, view, NULL, 
-                         G_CONNECT_AFTER);
-  g_signal_connect_data (obj, "row-deleted",
-                         (GCallback) model_row_deleted, view, NULL, 
-                         G_CONNECT_AFTER);
-  g_signal_connect_data (obj, "rows-reordered",
-                         (GCallback) model_rows_reordered, view, NULL, 
-                         G_CONNECT_AFTER);
-}
-
-static void
-disconnect_model_signals (GailTreeView *view) 
-{
-  GObject *obj;
-  GtkWidget *widget;
-
-  obj = G_OBJECT (view->tree_model);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (view));
-  g_signal_handlers_disconnect_by_func (obj, (gpointer) model_row_changed, widget);
-  g_signal_handlers_disconnect_by_func (obj, (gpointer) model_row_inserted, widget);
-  g_signal_handlers_disconnect_by_func (obj, (gpointer) model_row_deleted, widget);
-  g_signal_handlers_disconnect_by_func (obj, (gpointer) model_rows_reordered, widget);
-}
-
-static void
-clear_cached_data (GailTreeView  *view)
-{
-  GList *temp_list;
-
-  if (view->row_data)
-    {
-      GArray *array = view->row_data;
-      gint i;
-
-     /*
-      * Since the third argument to free_row_info is FALSE, we don't remove 
-      * the element.  Therefore it is safe to loop forward.
-      */
-      for (i = 0; i < array->len; i++)
-        free_row_info (array, i, FALSE);
-
-      g_array_free (array, TRUE);
-
-      view->row_data = NULL;
-    }
-
-  if (view->cell_data)
-    {
-      /* Must loop through them all */
-      for (temp_list = view->cell_data; temp_list; temp_list = temp_list->next)
-        {
-           clean_cell_info (view, temp_list);
-        }
-    }
-  garbage_collect_cell_data (view);
-  if (view->cell_data)
-      g_list_free (view->cell_data);
-  
-  view->cell_data = NULL;
-}
-
-/*
- * Returns the column number of the specified GtkTreeViewColumn
- *
- * If visible is set, the value returned will be the visible column number, 
- * i.e. suitable for use in AtkTable function. If visible is not set, the
- * value returned is the actual column number, which is suitable for use in 
- * getting an index value.
- */
-static gint
-get_column_number (GtkTreeView       *tree_view,
-                   GtkTreeViewColumn *column,
-                   gboolean          visible)
-{
-  GList *temp_list, *column_list;
-  GtkTreeViewColumn *tv_column;
-  gint ret_val;
-
-  column_list = gtk_tree_view_get_columns (tree_view);
-  ret_val = 0;
-  for (temp_list = column_list; temp_list; temp_list = temp_list->next)
-    {
-      tv_column = GTK_TREE_VIEW_COLUMN (temp_list->data);
-      if (tv_column == column)
-        break;
-      if (!visible || gtk_tree_view_column_get_visible (tv_column))
-        ret_val++;
-    }
-  if (temp_list == NULL)
-    {
-      ret_val = -1;
-    }
-  g_list_free (column_list);
-  return ret_val;
-} 
-
-static gint
-get_index (GtkTreeView       *tree_view,
-           GtkTreePath       *path,
-           gint              actual_column)
-{
-  gint depth = 0;
-  gint index = 1;
-  gint *indices = NULL;
-
-
-  if (path)
-    {
-      depth = gtk_tree_path_get_depth (path);
-      indices = gtk_tree_path_get_indices (path);
-    }
-
-  if (depth > 1)
-    {
-      GtkTreePath *copy_path;
-      GtkTreeModel *model;
-
-      model = gtk_tree_view_get_model (tree_view);
-      copy_path = gtk_tree_path_copy (path);
-      gtk_tree_path_up (copy_path);
-      count_rows (model, NULL, copy_path, &index, 0, depth);
-      gtk_tree_path_free (copy_path);
-    }
-
-  if (path)
-    index += indices[depth-1];
-  index *= get_n_actual_columns (tree_view);
-  index +=  actual_column;
-  return index;
-}
-
-/*
- * The function count_rows counts the number of rows starting at iter and ending
- * at end_path. The value of level is the depth of iter and the value of depth
- * is the depth of end_path. Rows at depth before end_path are counted.
- * This functions counts rows which are not visible because an ancestor is 
- * collapsed.
- */
-static void 
-count_rows (GtkTreeModel *model,
-            GtkTreeIter *iter,
-            GtkTreePath *end_path,
-            gint        *count,
-            gint        level,
-            gint        depth)
-{
-  GtkTreeIter child_iter;
-  
-  if (!model) return;
-
-  level++;
-
-  *count += gtk_tree_model_iter_n_children (model, iter);
-
-#if 0
-  g_print ("count_rows : %d level: %d depth: %d\n", *count, level, depth);
-  if (iter != NULL)
-    g_print ("path: %s\n",
-            gtk_tree_path_to_string (gtk_tree_model_get_path (model, iter)));
-#endif
-
-  if (level >= depth)
-    return;
-
-  if (gtk_tree_model_iter_children (model, &child_iter, iter))
-    {
-      gboolean ret_val = TRUE;
-
-      while (ret_val)
-        {
-          if (level == depth - 1)
-            {
-              GtkTreePath *iter_path; 
-              gboolean finished = FALSE;
-
-              iter_path = gtk_tree_model_get_path (model, &child_iter);
-              if (end_path && gtk_tree_path_compare (iter_path, end_path) >= 0)
-                finished = TRUE;
-              gtk_tree_path_free (iter_path);
-              if (finished)
-                break;
-            }
-          if (gtk_tree_model_iter_has_child (model, &child_iter))
-            count_rows (model, &child_iter, end_path, count, level, depth);
-          ret_val = gtk_tree_model_iter_next (model, &child_iter);
-        }
-    }
-}
-
-/*
- * Find the next node, which has children, at the specified depth below
- * the specified iter. The level is the depth of the current iter.
- * The position of the node is returned in path and the return value of TRUE 
- * means that a node was found.
- */
-
-gboolean get_next_node_with_child_at_depth (GtkTreeModel *model,
-                                            GtkTreeIter  *iter,
-                                            GtkTreePath  **path,
-                                            gint         level,
-                                            gint         depth)
-{
-  GtkTreeIter child_iter;
-
-  *path = NULL;
-
-  if (gtk_tree_model_iter_children (model, &child_iter, iter))
-    {
-      level++;
-
-      while (TRUE)
-        {
-          while (!gtk_tree_model_iter_has_child (model, &child_iter))
-            {
-              if (!gtk_tree_model_iter_next (model, &child_iter))
-                return FALSE;
-            }
-
-          if (level == depth)
-          /* We have found what we were looking for */
-            {
-              *path = gtk_tree_model_get_path (model, &child_iter);
-              return TRUE;
-            }
-
-          if (get_next_node_with_child_at_depth (model, &child_iter, path,
-                                                 level, depth))
-            return TRUE;
-
-          if (!gtk_tree_model_iter_next (model, &child_iter))
-            return FALSE;
-        }
-    }
-  return FALSE;
-}
-
-/*
- * Find the next node, which has children, at the same depth as 
- * the specified GtkTreePath.
- */
-static gboolean 
-get_next_node_with_child (GtkTreeModel *model,
-                          GtkTreePath  *path,
-                          GtkTreePath  **return_path)
-{
-  GtkTreeIter iter;
-  gint depth;
-
-  gtk_tree_model_get_iter (model, &iter, path);
-
-  while (gtk_tree_model_iter_next (model, &iter))
-    {
-      if (gtk_tree_model_iter_has_child (model, &iter))
-        {
-          *return_path = gtk_tree_model_get_path (model, &iter);
-          return TRUE;
-        }
-    }
-  depth = gtk_tree_path_get_depth (path);
-  while (gtk_tree_path_up (path))
-    {
-      if (gtk_tree_path_get_depth (path) == 0)
-        break;
-
-      gtk_tree_model_get_iter (model, &iter, path);
-      while (gtk_tree_model_iter_next (model, &iter))
-        if (get_next_node_with_child_at_depth (model, &iter, return_path,
-                                         gtk_tree_path_get_depth (path), depth))
-          return TRUE;
-    }
-  *return_path = NULL;
-  return FALSE;
-}
-
-static gboolean 
-get_tree_path_from_row_index (GtkTreeModel *model,
-                              gint         row_index,
-                              GtkTreePath  **tree_path)
-{
-  GtkTreeIter iter;
-  gint count;
-  gint depth;
-
-  count = gtk_tree_model_iter_n_children (model, NULL);
-  if (count > row_index)
-    {
-      if (gtk_tree_model_iter_nth_child (model, &iter, NULL, row_index))
-        {
-          *tree_path = gtk_tree_model_get_path (model, &iter);
-          return TRUE;
-        }
-      else
-        return FALSE;
-    }
-  else
-     row_index -= count;
-
-  depth = 0;
-  while (TRUE)
-    {
-      depth++;
-
-      if (get_next_node_with_child_at_depth (model, NULL, tree_path, 0, depth))
-        {
-          GtkTreePath *next_path;
-
-          while (TRUE)
-            {
-              gtk_tree_model_get_iter (model, &iter, *tree_path);
-              count = gtk_tree_model_iter_n_children (model, &iter);
-              if (count > row_index)
-                {
-                  gtk_tree_path_append_index (*tree_path, row_index);
-                  return TRUE;
-                }
-              else
-                row_index -= count;
-
-              if (!get_next_node_with_child (model,  *tree_path, &next_path))
-                break;
-           
-              gtk_tree_path_free (*tree_path);
-              *tree_path = next_path;
-            }
-        }
-      else
-        {
-          g_warning ("Index value is too large\n");
-          gtk_tree_path_free (*tree_path);
-           *tree_path = NULL;
-          return FALSE;
-        }
-    }  
-}
-
-/*
- * This function returns the number of rows, including those which are collapsed
- */
-static gint
-get_row_count (GtkTreeModel *model)
-{
-  gint n_rows = 1;
-
-  count_rows (model, NULL, NULL, &n_rows, 0, G_MAXINT);
-
-  return n_rows;
-}
-
-static gboolean
-get_path_column_from_index (GtkTreeView       *tree_view,
-                            gint              index,
-                            GtkTreePath       **path,
-                            GtkTreeViewColumn **column)
-{
-  GtkTreeModel *tree_model;
-  gint n_columns;
-
-  tree_model = gtk_tree_view_get_model (tree_view);
-  n_columns = get_n_actual_columns (tree_view);
-  if (n_columns == 0)
-    return FALSE;
-  /* First row is the column headers */
-  index -= n_columns;
-  if (index < 0)
-    return FALSE;
-
-  if (path)
-    {
-      gint row_index;
-      gboolean retval;
-
-      row_index = index / n_columns;
-      retval = get_tree_path_from_row_index (tree_model, row_index, path);
-      gail_return_val_if_fail (retval, FALSE);
-      if (*path == NULL)
-        return FALSE;
-    }    
-
-  if (column)
-    {
-      *column = gtk_tree_view_get_column (tree_view, index % n_columns);
-      if (*column == NULL)
-        {
-         if (path)
-            gtk_tree_path_free (*path);
-          return FALSE;
-        }
-  }
-  return TRUE;
-}
-
-static void
-set_cell_expandable (GailCell *cell)
-{
-  if (gail_cell_add_state (cell, 
-                           ATK_STATE_EXPANDABLE,
-                           FALSE))
-    gail_cell_add_action (cell,
-                          "expand or contract", /* action name */
-                          "expands or contracts the row in the tree view "
-                          "containing this cell", /* description */
-                          NULL, /* Keybinding */
-                          toggle_cell_expanded);
-}
-
-static GailTreeViewCellInfo*
-find_cell_info (GailTreeView *view,
-                GailCell     *cell,
-                GList**      list,
-               gboolean     live_only)
-{
-  GList *temp_list;
-  GailTreeViewCellInfo *cell_info;
-
-  for (temp_list = view->cell_data; temp_list; temp_list = temp_list->next)
-    {
-      cell_info = (GailTreeViewCellInfo *) temp_list->data;
-      if (cell_info->cell == cell && (!live_only || cell_info->in_use))
-        {
-          if (list)
-            *list = temp_list;
-          return cell_info;
-        }
-    }
-  return NULL;
-}
-
-static AtkObject *
-get_header_from_column (GtkTreeViewColumn *tv_col)
-{
-  AtkObject *rc;
-  GtkWidget *header_widget;
-
-  if (tv_col == NULL)
-    return NULL;
-
-  /* If the user has set a header object, use that */
-
-  rc = g_object_get_qdata (G_OBJECT (tv_col), quark_column_header_object);
-
-  if (rc == NULL)
-    {
-      /* If the user has not set a header object, grab the column */
-      /* header object defined by the GtkTreeView */
-
-      header_widget = gtk_tree_view_column_get_button (tv_col);
-
-      if (header_widget)
-        {
-          rc = gtk_widget_get_accessible (header_widget);
-        }
-      else
-        rc = NULL;
-    }
-  return rc;
-}
diff --git a/modules/other/gail/gailtreeview.h b/modules/other/gail/gailtreeview.h
deleted file mode 100644 (file)
index aeebfad..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_TREE_VIEW_H__
-#define __GAIL_TREE_VIEW_H__
-
-#include <gtk/gtk.h>
-#include <gail/gailcontainer.h>
-#include <gail/gailcell.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_TREE_VIEW                  (gail_tree_view_get_type ())
-#define GAIL_TREE_VIEW(obj)                  (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_TREE_VIEW, GailTreeView))
-#define GAIL_TREE_VIEW_CLASS(klass)          (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_TREE_VIEW, GailTreeViewClass))
-#define GAIL_IS_TREE_VIEW(obj)               (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_TREE_VIEW))
-#define GAIL_IS_TREE_VIEW_CLASS(klass)       (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_TREE_VIEW))
-#define GAIL_TREE_VIEW_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_TREE_VIEW, GailTreeViewClass))
-
-typedef struct _GailTreeView              GailTreeView;
-typedef struct _GailTreeViewClass         GailTreeViewClass;
-
-struct _GailTreeView
-{
-  GailContainer parent;
-
-  AtkObject*   caption;
-  AtkObject*   summary;
-  gint          n_children_deleted;
-  GArray*       col_data;
-  GArray*      row_data;
-  GList*        cell_data;
-  GtkTreeModel  *tree_model;
-  AtkObject     *focus_cell;
-  GtkAdjustment *old_hadj;
-  GtkAdjustment *old_vadj;
-  guint         idle_expand_id;
-  guint         idle_garbage_collect_id;
-  guint         idle_cursor_changed_id;
-  GtkTreePath   *idle_expand_path;
-  gboolean      garbage_collection_pending;
-};
-
-GType gail_tree_view_get_type (void);
-
-struct _GailTreeViewClass
-{
-  GailContainerClass parent_class;
-};
-
-AtkObject* gail_tree_view_ref_focus_cell (GtkTreeView *treeview);
-G_END_DECLS
-
-#endif /* __GAIL_TREE_VIEW_H__ */
diff --git a/modules/other/gail/gailwidget.c b/modules/other/gail/gailwidget.c
deleted file mode 100644 (file)
index b68c6bb..0000000
+++ /dev/null
@@ -1,1134 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-
-#include <gtk/gtk.h>
-#ifdef GDK_WINDOWING_X11
-#include <gdk/x11/gdkx.h>
-#endif
-#include "gailwidget.h"
-#include "gailnotebookpage.h"
-#include "gail-private-macros.h"
-
-extern GtkWidget *focus_widget;
-
-static void gail_widget_class_init (GailWidgetClass *klass);
-static void gail_widget_init                     (GailWidget       *accessible);
-static void gail_widget_connect_widget_destroyed (GtkAccessible    *accessible);
-static void gail_widget_destroyed                (GtkWidget        *widget,
-                                                  GtkAccessible    *accessible);
-
-static const gchar* gail_widget_get_description (AtkObject *accessible);
-static AtkObject* gail_widget_get_parent (AtkObject *accessible);
-static AtkStateSet* gail_widget_ref_state_set (AtkObject *accessible);
-static AtkRelationSet* gail_widget_ref_relation_set (AtkObject *accessible);
-static gint gail_widget_get_index_in_parent (AtkObject *accessible);
-
-static void atk_component_interface_init (AtkComponentIface *iface);
-
-static guint    gail_widget_add_focus_handler
-                                           (AtkComponent    *component,
-                                            AtkFocusHandler handler);
-
-static void     gail_widget_get_extents    (AtkComponent    *component,
-                                            gint            *x,
-                                            gint            *y,
-                                            gint            *width,
-                                            gint            *height,
-                                            AtkCoordType    coord_type);
-
-static void     gail_widget_get_size       (AtkComponent    *component,
-                                            gint            *width,
-                                            gint            *height);
-
-static AtkLayer gail_widget_get_layer      (AtkComponent *component);
-
-static gboolean gail_widget_grab_focus     (AtkComponent    *component);
-
-
-static void     gail_widget_remove_focus_handler 
-                                           (AtkComponent    *component,
-                                            guint           handler_id);
-
-static gboolean gail_widget_set_extents    (AtkComponent    *component,
-                                            gint            x,
-                                            gint            y,
-                                            gint            width,
-                                            gint            height,
-                                            AtkCoordType    coord_type);
-
-static gboolean gail_widget_set_position   (AtkComponent    *component,
-                                            gint            x,
-                                            gint            y,
-                                            AtkCoordType    coord_type);
-
-static gboolean gail_widget_set_size       (AtkComponent    *component,
-                                            gint            width,
-                                            gint            height);
-
-static gint       gail_widget_map_gtk            (GtkWidget     *widget);
-static void       gail_widget_real_notify_gtk    (GObject       *obj,
-                                                  GParamSpec    *pspec);
-static void       gail_widget_notify_gtk         (GObject       *obj,
-                                                  GParamSpec    *pspec);
-static gboolean   gail_widget_focus_gtk          (GtkWidget     *widget,
-                                                  GdkEventFocus *event);
-static gboolean   gail_widget_real_focus_gtk     (GtkWidget     *widget,
-                                                  GdkEventFocus *event);
-static void       gail_widget_size_allocate_gtk  (GtkWidget     *widget,
-                                                  GtkAllocation *allocation);
-
-static void       gail_widget_focus_event        (AtkObject     *obj,
-                                                  gboolean      focus_in);
-
-static void       gail_widget_real_initialize    (AtkObject     *obj,
-                                                  gpointer      data);
-static AtkAttributeSet *gail_widget_get_attributes(AtkObject *obj);
-static GtkWidget* gail_widget_find_viewport      (GtkWidget     *widget);
-static gboolean   gail_widget_on_screen          (GtkWidget     *widget);
-static gboolean   gail_widget_all_parents_visible(GtkWidget     *widget);
-
-G_DEFINE_TYPE_WITH_CODE (GailWidget, gail_widget, GTK_TYPE_ACCESSIBLE,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init))
-
-static void
-gail_widget_class_init (GailWidgetClass *klass)
-{
-  AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
-  GtkAccessibleClass *accessible_class = GTK_ACCESSIBLE_CLASS (klass);
-
-  klass->notify_gtk = gail_widget_real_notify_gtk;
-  klass->focus_gtk = gail_widget_real_focus_gtk;
-
-  accessible_class->connect_widget_destroyed = gail_widget_connect_widget_destroyed;
-
-  class->get_description = gail_widget_get_description;
-  class->get_parent = gail_widget_get_parent;
-  class->ref_relation_set = gail_widget_ref_relation_set;
-  class->ref_state_set = gail_widget_ref_state_set;
-  class->get_index_in_parent = gail_widget_get_index_in_parent;
-  class->initialize = gail_widget_real_initialize;
-  class->get_attributes = gail_widget_get_attributes;
-}
-
-static void
-gail_widget_init (GailWidget *accessible)
-{
-}
-
-/**
- * This function  specifies the GtkWidget for which the GailWidget was created 
- * and specifies a handler to be called when the GtkWidget is destroyed.
- **/
-static void 
-gail_widget_real_initialize (AtkObject *obj,
-                             gpointer  data)
-{
-  GtkAccessible *accessible;
-  GtkWidget *widget;
-
-  g_return_if_fail (GTK_IS_WIDGET (data));
-
-  widget = GTK_WIDGET (data);
-
-  accessible = GTK_ACCESSIBLE (obj);
-  gtk_accessible_set_widget (accessible, widget);
-  gtk_accessible_connect_widget_destroyed (accessible);
-  g_signal_connect_after (widget,
-                          "focus-in-event",
-                          G_CALLBACK (gail_widget_focus_gtk),
-                          NULL);
-  g_signal_connect_after (widget,
-                          "focus-out-event",
-                          G_CALLBACK (gail_widget_focus_gtk),
-                          NULL);
-  g_signal_connect (widget,
-                    "notify",
-                    G_CALLBACK (gail_widget_notify_gtk),
-                    NULL);
-  g_signal_connect (widget,
-                    "size_allocate",
-                    G_CALLBACK (gail_widget_size_allocate_gtk),
-                    NULL);
-  atk_component_add_focus_handler (ATK_COMPONENT (accessible),
-                                   gail_widget_focus_event);
-  /*
-   * Add signal handlers for GTK signals required to support property changes
-   */
-  g_signal_connect (widget,
-                    "map",
-                    G_CALLBACK (gail_widget_map_gtk),
-                    NULL);
-  g_signal_connect (widget,
-                    "unmap",
-                    G_CALLBACK (gail_widget_map_gtk),
-                    NULL);
-  g_object_set_data (G_OBJECT (obj), "atk-component-layer",
-                    GINT_TO_POINTER (ATK_LAYER_WIDGET));
-
-  obj->role = ATK_ROLE_UNKNOWN;
-}
-
-AtkObject* 
-gail_widget_new (GtkWidget *widget)
-{
-  GObject *object;
-  AtkObject *accessible;
-
-  g_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
-
-  object = g_object_new (GAIL_TYPE_WIDGET, NULL);
-
-  accessible = ATK_OBJECT (object);
-  atk_object_initialize (accessible, widget);
-
-  return accessible;
-}
-
-/*
- * This function specifies the function to be called when the widget
- * is destroyed
- */
-static void
-gail_widget_connect_widget_destroyed (GtkAccessible *accessible)
-{
-  GtkWidget *widget;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  if (widget)
-    {
-      g_signal_connect_after (widget,
-                              "destroy",
-                              G_CALLBACK (gail_widget_destroyed),
-                              accessible);
-    }
-}
-
-/*
- * This function is called when the widget is destroyed.
- * It sets the widget field in the GtkAccessible structure to NULL
- * and emits a state-change signal for the state ATK_STATE_DEFUNCT
- */
-static void 
-gail_widget_destroyed (GtkWidget     *widget,
-                       GtkAccessible *accessible)
-{
-  gtk_accessible_set_widget (accessible, NULL);
-  atk_object_notify_state_change (ATK_OBJECT (accessible), ATK_STATE_DEFUNCT,
-                                  TRUE);
-}
-
-static const gchar*
-gail_widget_get_description (AtkObject *accessible)
-{
-  if (accessible->description)
-    return accessible->description;
-  else
-    {
-      GtkWidget *widget;
-
-      /* Get the tooltip from the widget */
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-      if (widget == NULL)
-        /*
-         * Object is defunct
-         */
-        return NULL;
-      return gtk_widget_get_tooltip_text (widget);
-    }
-}
-
-static AtkObject* 
-gail_widget_get_parent (AtkObject *accessible)
-{
-  AtkObject *parent;
-
-  parent = accessible->accessible_parent;
-
-  if (parent != NULL)
-    g_return_val_if_fail (ATK_IS_OBJECT (parent), NULL);
-  else
-    {
-      GtkWidget *widget, *parent_widget;
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-      if (widget == NULL)
-        /*
-         * State is defunct
-         */
-        return NULL;
-      gail_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
-
-      parent_widget = gtk_widget_get_parent (widget);
-      if (parent_widget == NULL)
-        return NULL;
-
-      /*
-       * For a widget whose parent is a GtkNoteBook, we return the
-       * accessible object corresponding the GtkNotebookPage containing
-       * the widget as the accessible parent.
-       */
-      if (GTK_IS_NOTEBOOK (parent_widget))
-        {
-          gint page_num;
-          GtkWidget *child;
-          GtkNotebook *notebook;
-
-          page_num = 0;
-          notebook = GTK_NOTEBOOK (parent_widget);
-          while (TRUE)
-            {
-              child = gtk_notebook_get_nth_page (notebook, page_num);
-              if (!child)
-                break;
-              if (child == widget)
-                {
-                  parent = gtk_widget_get_accessible (parent_widget);
-                  parent = atk_object_ref_accessible_child (parent, page_num);
-                  g_object_unref (parent);
-                  return parent;
-                }
-              page_num++;
-            }
-        }
-
-      parent = gtk_widget_get_accessible (parent_widget);
-    }
-  return parent;
-}
-
-static GtkWidget*
-find_label (GtkWidget *widget)
-{
-  GList *labels;
-  GtkWidget *label;
-  GtkWidget *temp_widget;
-
-  labels = gtk_widget_list_mnemonic_labels (widget);
-  label = NULL;
-  if (labels)
-    {
-      if (labels->data)
-        {
-          if (labels->next)
-            {
-              g_warning ("Widget (%s) has more than one label", G_OBJECT_TYPE_NAME (widget));
-              
-            }
-          else
-            {
-              label = labels->data;
-            }
-        }
-      g_list_free (labels);
-    }
-
-  /*
-   * Ignore a label within a button; bug #136602
-   */
-  if (label && GTK_IS_BUTTON (widget))
-    {
-      temp_widget = label;
-      while (temp_widget)
-        {
-          if (temp_widget == widget)
-            {
-              label = NULL;
-              break;
-            }
-          temp_widget = gtk_widget_get_parent (temp_widget);
-        }
-    } 
-  return label;
-}
-
-static AtkRelationSet*
-gail_widget_ref_relation_set (AtkObject *obj)
-{
-  GtkWidget *widget;
-  AtkRelationSet *relation_set;
-  GtkWidget *label;
-  AtkObject *array[1];
-  AtkRelation* relation;
-
-  gail_return_val_if_fail (GAIL_IS_WIDGET (obj), NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return NULL;
-
-  relation_set = ATK_OBJECT_CLASS (gail_widget_parent_class)->ref_relation_set (obj);
-
-  if (GTK_IS_BOX (widget))
-      /*
-       * Do not report labelled-by for a GtkBox which could be a 
-       * GnomeFileEntry.
-       */
-    return relation_set;
-
-  if (!atk_relation_set_contains (relation_set, ATK_RELATION_LABELLED_BY))
-    {
-      label = find_label (widget);
-      if (label == NULL)
-        {
-          if (GTK_IS_BUTTON (widget))
-            /*
-             * Handle the case where GnomeIconEntry is the mnemonic widget.
-             * The GtkButton which is a grandchild of the GnomeIconEntry
-             * should really be the mnemonic widget. See bug #133967.
-             */
-            {
-              GtkWidget *temp_widget;
-
-              temp_widget = gtk_widget_get_parent (widget);
-
-              if (GTK_IS_ALIGNMENT (temp_widget))
-                {
-                  temp_widget = gtk_widget_get_parent (temp_widget);
-                  if (GTK_IS_BOX (temp_widget))
-                    {
-                      label = find_label (temp_widget);
-                 
-                      if (!label)
-                        label = find_label (gtk_widget_get_parent (temp_widget));
-                    }
-                }
-            }
-          else if (GTK_IS_COMBO_BOX (widget))
-            /*
-             * Handle the case when GtkFileChooserButton is the mnemonic
-             * widget.  The GtkComboBox which is a child of the
-             * GtkFileChooserButton should be the mnemonic widget.
-             * See bug #359843.
-             */
-            {
-              GtkWidget *temp_widget;
-
-              temp_widget = gtk_widget_get_parent (widget);
-              if (GTK_IS_BOX (temp_widget))
-                {
-                  label = find_label (temp_widget);
-                }
-            }
-        }
-
-      if (label)
-        {
-         array [0] = gtk_widget_get_accessible (label);
-
-         relation = atk_relation_new (array, 1, ATK_RELATION_LABELLED_BY);
-         atk_relation_set_add (relation_set, relation);
-         g_object_unref (relation);
-        }
-    }
-
-  return relation_set;
-}
-
-static AtkStateSet*
-gail_widget_ref_state_set (AtkObject *accessible)
-{
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  AtkStateSet *state_set;
-
-  state_set = ATK_OBJECT_CLASS (gail_widget_parent_class)->ref_state_set (accessible);
-
-  if (widget == NULL)
-    {
-      atk_state_set_add_state (state_set, ATK_STATE_DEFUNCT);
-    }
-  else
-    {
-      if (gtk_widget_is_sensitive (widget))
-        {
-          atk_state_set_add_state (state_set, ATK_STATE_SENSITIVE);
-          atk_state_set_add_state (state_set, ATK_STATE_ENABLED);
-        }
-  
-      if (gtk_widget_get_can_focus (widget))
-        {
-          atk_state_set_add_state (state_set, ATK_STATE_FOCUSABLE);
-        }
-      /*
-       * We do not currently generate notifications when an ATK object 
-       * corresponding to a GtkWidget changes visibility by being scrolled 
-       * on or off the screen.  The testcase for this is the main window 
-       * of the testgtk application in which a set of buttons in a GtkVBox 
-       * is in a scrooled window with a viewport.
-       *
-       * To generate the notifications we would need to do the following: 
-       * 1) Find the GtkViewPort among the antecendents of the objects
-       * 2) Create an accesible for the GtkViewPort
-       * 3) Connect to the value-changed signal on the viewport
-       * 4) When the signal is received we need to traverse the children 
-       * of the viewport and check whether the children are visible or not 
-       * visible; we may want to restrict this to the widgets for which 
-       * accessible objects have been created.
-       * 5) We probably need to store a variable on_screen in the 
-       * GailWidget data structure so we can determine whether the value has 
-       * changed.
-       */
-      if (gtk_widget_get_visible (widget))
-        {
-          atk_state_set_add_state (state_set, ATK_STATE_VISIBLE);
-          if (gail_widget_on_screen (widget) && gtk_widget_get_mapped (widget) &&
-              gail_widget_all_parents_visible (widget))
-            {
-              atk_state_set_add_state (state_set, ATK_STATE_SHOWING);
-            }
-        }
-  
-      if (gtk_widget_has_focus (widget) && (widget == focus_widget))
-        {
-          AtkObject *focus_obj;
-
-          focus_obj = g_object_get_data (G_OBJECT (accessible), "gail-focus-object");
-          if (focus_obj == NULL)
-            atk_state_set_add_state (state_set, ATK_STATE_FOCUSED);
-        }
-      if (gtk_widget_has_default (widget))
-        {
-          atk_state_set_add_state (state_set, ATK_STATE_DEFAULT);
-        }
-
-      if (GTK_IS_ORIENTABLE(widget))
-        switch (gtk_orientable_get_orientation (GTK_ORIENTABLE (widget)))
-          {
-          case GTK_ORIENTATION_HORIZONTAL:
-            atk_state_set_add_state (state_set, ATK_STATE_HORIZONTAL);
-            break;
-
-          case GTK_ORIENTATION_VERTICAL:
-            atk_state_set_add_state (state_set, ATK_STATE_VERTICAL);
-            break;
-          }
-    }
-  return state_set;
-}
-
-static gint
-gail_widget_get_index_in_parent (AtkObject *accessible)
-{
-  GtkWidget *widget;
-  GtkWidget *parent_widget;
-  gint index;
-  GList *children;
-  GType type;
-
-  type = g_type_from_name ("GailCanvasWidget");
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return -1;
-
-  if (accessible->accessible_parent)
-    {
-      AtkObject *parent;
-
-      parent = accessible->accessible_parent;
-
-      if (GAIL_IS_NOTEBOOK_PAGE (parent) ||
-          G_TYPE_CHECK_INSTANCE_TYPE ((parent), type))
-        return 0;
-      else
-        {
-          gint n_children, i;
-          gboolean found = FALSE;
-
-          n_children = atk_object_get_n_accessible_children (parent);
-          for (i = 0; i < n_children; i++)
-            {
-              AtkObject *child;
-
-              child = atk_object_ref_accessible_child (parent, i);
-              if (child == accessible)
-                found = TRUE;
-
-              g_object_unref (child); 
-              if (found)
-                return i;
-            }
-        }
-    }
-
-  gail_return_val_if_fail (GTK_IS_WIDGET (widget), -1);
-  parent_widget = gtk_widget_get_parent (widget);
-  if (parent_widget == NULL)
-    return -1;
-  gail_return_val_if_fail (GTK_IS_CONTAINER (parent_widget), -1);
-
-  children = gtk_container_get_children (GTK_CONTAINER (parent_widget));
-
-  index = g_list_index (children, widget);
-  g_list_free (children);
-  return index;  
-}
-
-static void 
-atk_component_interface_init (AtkComponentIface *iface)
-{
-  /*
-   * Use default implementation for contains and get_position
-   */
-  iface->add_focus_handler = gail_widget_add_focus_handler;
-  iface->get_extents = gail_widget_get_extents;
-  iface->get_size = gail_widget_get_size;
-  iface->get_layer = gail_widget_get_layer;
-  iface->grab_focus = gail_widget_grab_focus;
-  iface->remove_focus_handler = gail_widget_remove_focus_handler;
-  iface->set_extents = gail_widget_set_extents;
-  iface->set_position = gail_widget_set_position;
-  iface->set_size = gail_widget_set_size;
-}
-
-static guint 
-gail_widget_add_focus_handler (AtkComponent    *component,
-                               AtkFocusHandler handler)
-{
-  GSignalMatchType match_type;
-  gulong ret;
-  guint signal_id;
-
-  match_type = G_SIGNAL_MATCH_ID | G_SIGNAL_MATCH_FUNC;
-  signal_id = g_signal_lookup ("focus-event", ATK_TYPE_OBJECT);
-
-  ret = g_signal_handler_find (component, match_type, signal_id, 0, NULL,
-                               (gpointer) handler, NULL);
-  if (!ret)
-    {
-      return g_signal_connect_closure_by_id (component, 
-                                             signal_id, 0,
-                                             g_cclosure_new (
-                                             G_CALLBACK (handler), NULL,
-                                             (GClosureNotify) NULL),
-                                             FALSE);
-    }
-  else
-    {
-      return 0;
-    }
-}
-
-static void 
-gail_widget_get_extents (AtkComponent   *component,
-                         gint           *x,
-                         gint           *y,
-                         gint           *width,
-                         gint           *height,
-                         AtkCoordType   coord_type)
-{
-  GtkAllocation allocation;
-  GdkWindow *window;
-  gint x_window, y_window;
-  gint x_toplevel, y_toplevel;
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
-
-  if (widget == NULL)
-    /*
-     * Object is defunct
-     */
-    return;
-
-  gail_return_if_fail (GTK_IS_WIDGET (widget));
-
-  gtk_widget_get_allocation (widget, &allocation);
-  *width = allocation.width;
-  *height = allocation.height;
-  if (!gail_widget_on_screen (widget) || (!gtk_widget_is_drawable (widget)))
-    {
-      *x = G_MININT;
-      *y = G_MININT;
-      return;
-    }
-
-  if (gtk_widget_get_parent (widget))
-    {
-      *x = allocation.x;
-      *y = allocation.y;
-      window = gtk_widget_get_parent_window (widget);
-    }
-  else
-    {
-      *x = 0;
-      *y = 0;
-      window = gtk_widget_get_window (widget);
-    }
-  gdk_window_get_origin (window, &x_window, &y_window);
-  *x += x_window;
-  *y += y_window;
-
- if (coord_type == ATK_XY_WINDOW) 
-    { 
-      window = gdk_window_get_toplevel (gtk_widget_get_window (widget));
-      gdk_window_get_origin (window, &x_toplevel, &y_toplevel);
-
-      *x -= x_toplevel;
-      *y -= y_toplevel;
-    }
-}
-
-static void 
-gail_widget_get_size (AtkComponent   *component,
-                      gint           *width,
-                      gint           *height)
-{
-  GtkAllocation allocation;
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
-
-  if (widget == NULL)
-    /*
-     * Object is defunct
-     */
-    return;
-
-  gail_return_if_fail (GTK_IS_WIDGET (widget));
-
-  gtk_widget_get_allocation (widget, &allocation);
-  *width = allocation.width;
-  *height = allocation.height;
-}
-
-static AtkLayer
-gail_widget_get_layer (AtkComponent *component)
-{
-  gint layer;
-  layer = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (component), "atk-component-layer"));
-
-  return (AtkLayer) layer;
-}
-
-static gboolean 
-gail_widget_grab_focus (AtkComponent   *component)
-{
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
-  GtkWidget *toplevel;
-
-  gail_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
-  if (gtk_widget_get_can_focus (widget))
-    {
-      gtk_widget_grab_focus (widget);
-      toplevel = gtk_widget_get_toplevel (widget);
-      if (gtk_widget_is_toplevel (toplevel))
-       {
-#ifdef GDK_WINDOWING_X11
-          gtk_window_present_with_time (GTK_WINDOW (toplevel),
-          gdk_x11_get_server_time (gtk_widget_get_window (widget)));
-#else
-         gtk_window_present (GTK_WINDOW (toplevel));
-#endif
-       }
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-static void 
-gail_widget_remove_focus_handler (AtkComponent   *component,
-                                  guint          handler_id)
-{
-  g_signal_handler_disconnect (component, handler_id);
-}
-
-static gboolean 
-gail_widget_set_extents (AtkComponent   *component,
-                         gint           x,
-                         gint           y,
-                         gint           width,
-                         gint           height,
-                         AtkCoordType   coord_type)
-{
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
-
-  if (widget == NULL)
-    /*
-     * Object is defunct
-     */
-    return FALSE;
-  gail_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
-
-  if (gtk_widget_is_toplevel (widget))
-    {
-      if (coord_type == ATK_XY_WINDOW)
-        {
-          gint x_current, y_current;
-          GdkWindow *window = gtk_widget_get_window (widget);
-
-          gdk_window_get_origin (window, &x_current, &y_current);
-          x_current += x;
-          y_current += y;
-          if (x_current < 0 || y_current < 0)
-            return FALSE;
-          else
-            {
-              gtk_window_move (GTK_WINDOW (widget), x_current, y_current);
-              gtk_widget_set_size_request (widget, width, height);
-              return TRUE;
-            }
-        }
-      else if (coord_type == ATK_XY_SCREEN)
-        {
-          gtk_window_move (GTK_WINDOW (widget), x, y);
-          gtk_widget_set_size_request (widget, width, height);
-          return TRUE;
-        }
-    }
-  return FALSE;
-}
-
-static gboolean
-gail_widget_set_position (AtkComponent   *component,
-                          gint           x,
-                          gint           y,
-                          AtkCoordType   coord_type)
-{
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
-
-  if (widget == NULL)
-    /*
-     * Object is defunct
-     */
-    return FALSE;
-  gail_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
-
-  if (gtk_widget_is_toplevel (widget))
-    {
-      if (coord_type == ATK_XY_WINDOW)
-        {
-          gint x_current, y_current;
-          GdkWindow *window = gtk_widget_get_window (widget);
-
-          gdk_window_get_origin (window, &x_current, &y_current);
-          x_current += x;
-          y_current += y;
-          if (x_current < 0 || y_current < 0)
-            return FALSE;
-          else
-            {
-              gtk_window_move (GTK_WINDOW (widget), x_current, y_current);
-              return TRUE;
-            }
-        }
-      else if (coord_type == ATK_XY_SCREEN)
-        {
-          gtk_window_move (GTK_WINDOW (widget), x, y);
-          return TRUE;
-        }
-    }
-  return FALSE;
-}
-
-static gboolean 
-gail_widget_set_size (AtkComponent   *component,
-                      gint           width,
-                      gint           height)
-{
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
-
-  if (widget == NULL)
-    /*
-     * Object is defunct
-     */
-    return FALSE;
-  gail_return_val_if_fail (GTK_IS_WIDGET (widget), FALSE);
-
-  if (gtk_widget_is_toplevel (widget))
-    {
-      gtk_widget_set_size_request (widget, width, height);
-      return TRUE;
-    }
-  else
-   return FALSE;
-}
-
-/*
- * This function is a signal handler for notify_in_event and focus_out_event
- * signal which gets emitted on a GtkWidget.
- */
-static gboolean
-gail_widget_focus_gtk (GtkWidget     *widget,
-                       GdkEventFocus *event)
-{
-  GailWidget *gail_widget;
-  GailWidgetClass *klass;
-
-  gail_widget = GAIL_WIDGET (gtk_widget_get_accessible (widget));
-  klass = GAIL_WIDGET_GET_CLASS (gail_widget);
-  if (klass->focus_gtk)
-    return klass->focus_gtk (widget, event);
-  else
-    return FALSE;
-}
-
-/*
- * This function is the signal handler defined for focus_in_event and
- * focus_out_event got GailWidget.
- *
- * It emits a focus-event signal on the GailWidget.
- */
-static gboolean
-gail_widget_real_focus_gtk (GtkWidget     *widget,
-                            GdkEventFocus *event)
-{
-  AtkObject* accessible;
-  gboolean return_val;
-  return_val = FALSE;
-
-  accessible = gtk_widget_get_accessible (widget);
-  g_signal_emit_by_name (accessible, "focus_event", event->in, &return_val);
-  return FALSE;
-}
-
-static void
-gail_widget_size_allocate_gtk (GtkWidget     *widget,
-                               GtkAllocation *allocation)
-{
-  AtkObject* accessible;
-  AtkRectangle rect;
-
-  accessible = gtk_widget_get_accessible (widget);
-  if (ATK_IS_COMPONENT (accessible))
-    {
-      rect.x = allocation->x;
-      rect.y = allocation->y;
-      rect.width = allocation->width;
-      rect.height = allocation->height;
-      g_signal_emit_by_name (accessible, "bounds_changed", &rect);
-    }
-}
-
-/*
- * This function is the signal handler defined for map and unmap signals.
- */
-static gint
-gail_widget_map_gtk (GtkWidget     *widget)
-{
-  AtkObject* accessible;
-
-  accessible = gtk_widget_get_accessible (widget);
-  atk_object_notify_state_change (accessible, ATK_STATE_SHOWING,
-                                  gtk_widget_get_mapped (widget));
-  return 1;
-}
-
-/*
- * This function is a signal handler for notify signal which gets emitted 
- * when a property changes value on the GtkWidget associated with the object.
- *
- * It calls a function for the GailWidget type
- */
-static void 
-gail_widget_notify_gtk (GObject     *obj,
-                        GParamSpec  *pspec)
-{
-  GailWidget *widget;
-  GailWidgetClass *klass;
-
-  widget = GAIL_WIDGET (gtk_widget_get_accessible (GTK_WIDGET (obj)));
-  klass = GAIL_WIDGET_GET_CLASS (widget);
-  if (klass->notify_gtk)
-    klass->notify_gtk (obj, pspec);
-}
-
-/*
- * This function is a signal handler for notify signal which gets emitted 
- * when a property changes value on the GtkWidget associated with a GailWidget.
- *
- * It constructs an AtkPropertyValues structure and emits a "property_changed"
- * signal which causes the user specified AtkPropertyChangeHandler
- * to be called.
- */
-static void 
-gail_widget_real_notify_gtk (GObject     *obj,
-                             GParamSpec  *pspec)
-{
-  GtkWidget* widget = GTK_WIDGET (obj);
-  AtkObject* atk_obj = gtk_widget_get_accessible (widget);
-  AtkState state;
-  gboolean value;
-
-  if (strcmp (pspec->name, "has-focus") == 0)
-    /*
-     * We use focus-in-event and focus-out-event signals to catch
-     * focus changes so we ignore this.
-     */
-    return;
-  else if (strcmp (pspec->name, "visible") == 0)
-    {
-      state = ATK_STATE_VISIBLE;
-      value = gtk_widget_get_visible (widget);
-    }
-  else if (strcmp (pspec->name, "sensitive") == 0)
-    {
-      state = ATK_STATE_SENSITIVE;
-      value = gtk_widget_get_sensitive (widget);
-    }
-  else if (strcmp (pspec->name, "orientation") == 0)
-    {
-      GtkOrientable *orientable;
-
-      orientable = GTK_ORIENTABLE (widget);
-
-      state = ATK_STATE_HORIZONTAL;
-      value = (gtk_orientable_get_orientation (orientable) == GTK_ORIENTATION_HORIZONTAL);
-    }
-  else
-    return;
-
-  atk_object_notify_state_change (atk_obj, state, value);
-  if (state == ATK_STATE_SENSITIVE)
-    atk_object_notify_state_change (atk_obj, ATK_STATE_ENABLED, value);
-
-  if (state == ATK_STATE_HORIZONTAL)
-    atk_object_notify_state_change (atk_obj, ATK_STATE_VERTICAL, !value);
-}
-
-static void 
-gail_widget_focus_event (AtkObject   *obj,
-                         gboolean    focus_in)
-{
-  AtkObject *focus_obj;
-
-  focus_obj = g_object_get_data (G_OBJECT (obj), "gail-focus-object");
-  if (focus_obj == NULL)
-    focus_obj = obj;
-  atk_object_notify_state_change (focus_obj, ATK_STATE_FOCUSED, focus_in);
-}
-
-static GtkWidget*
-gail_widget_find_viewport (GtkWidget *widget)
-{
-  /*
-   * Find an antecedent which is a GtkViewPort
-   */
-  GtkWidget *parent;
-
-  parent = gtk_widget_get_parent (widget);
-  while (parent != NULL)
-    {
-      if (GTK_IS_VIEWPORT (parent))
-        break;
-      parent = gtk_widget_get_parent (parent);
-    }
-  return parent;
-}
-
-/*
- * This function checks whether the widget has an antecedent which is 
- * a GtkViewport and, if so, whether any part of the widget intersects
- * the visible rectangle of the GtkViewport.
- */ 
-static gboolean gail_widget_on_screen (GtkWidget *widget)
-{
-  GtkAllocation allocation;
-  GtkWidget *viewport;
-  gboolean return_value;
-
-  gtk_widget_get_allocation (widget, &allocation);
-
-  viewport = gail_widget_find_viewport (widget);
-  if (viewport)
-    {
-      GtkAllocation viewport_allocation;
-      GtkAdjustment *adjustment;
-      GdkRectangle visible_rect;
-
-      gtk_widget_get_allocation (viewport, &viewport_allocation);
-
-      adjustment = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (viewport));
-      visible_rect.y = gtk_adjustment_get_value (adjustment);
-      adjustment = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE (viewport));
-      visible_rect.x = gtk_adjustment_get_value (adjustment);
-      visible_rect.width = viewport_allocation.width;
-      visible_rect.height = viewport_allocation.height;
-
-      if (((allocation.x + allocation.width) < visible_rect.x) ||
-         ((allocation.y + allocation.height) < visible_rect.y) ||
-         (allocation.x > (visible_rect.x + visible_rect.width)) ||
-         (allocation.y > (visible_rect.y + visible_rect.height)))
-        return_value = FALSE;
-      else
-        return_value = TRUE;
-    }
-  else
-    {
-      /*
-       * Check whether the widget has been placed of the screen. The
-       * widget may be MAPPED as when toolbar items do not fit on the toolbar.
-       */
-      if (allocation.x + allocation.width <= 0 &&
-          allocation.y + allocation.height <= 0)
-        return_value = FALSE;
-      else 
-        return_value = TRUE;
-    }
-
-  return return_value;
-}
-
-/**
- * gail_widget_all_parents_visible:
- * @widget: a #GtkWidget
- *
- * Checks if all the predecesors (the parent widget, his parent, etc) are visible
- * Used to check properly the SHOWING state.
- *
- * Return value: TRUE if all the parent hierarchy is visible, FALSE otherwise
- **/
-static gboolean gail_widget_all_parents_visible (GtkWidget *widget)
-{
-  GtkWidget *iter_parent = NULL;
-  gboolean result = TRUE;
-
-  for (iter_parent = gtk_widget_get_parent (widget); iter_parent;
-       iter_parent = gtk_widget_get_parent (iter_parent))
-    {
-      if (!gtk_widget_get_visible (iter_parent))
-        {
-          result = FALSE;
-          break;
-        }
-    }
-
-  return result;
-}
-
-static AtkAttributeSet *gail_widget_get_attributes(AtkObject *obj)
-{
-       AtkAttributeSet *attributes;
-       AtkAttribute *toolkit = g_malloc(sizeof(AtkAttribute));
-
-       toolkit->name = g_strdup("toolkit");
-       toolkit->value = g_strdup("gail");
-
-        attributes = g_slist_append(NULL, toolkit);
-
-        return attributes;
-}
diff --git a/modules/other/gail/gailwidget.h b/modules/other/gail/gailwidget.h
deleted file mode 100644 (file)
index ddc8f3a..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_WIDGET_H__
-#define __GAIL_WIDGET_H__
-
-#include <gtk/gtk.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_WIDGET                     (gail_widget_get_type ())
-#define GAIL_WIDGET(obj)                     (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_WIDGET, GailWidget))
-#define GAIL_WIDGET_CLASS(klass)             (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_WIDGET, GailWidgetClass))
-#define GAIL_IS_WIDGET(obj)                  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_WIDGET))
-#define GAIL_IS_WIDGET_CLASS(klass)          (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_WIDGET))
-#define GAIL_WIDGET_GET_CLASS(obj)           (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_WIDGET, GailWidgetClass))
-
-typedef struct _GailWidget                   GailWidget;
-typedef struct _GailWidgetClass              GailWidgetClass;
-
-struct _GailWidget
-{
-  GtkAccessible parent;
-};
-
-GType gail_widget_get_type (void);
-
-struct _GailWidgetClass
-{
-  GtkAccessibleClass parent_class;
-
-  /*
-   * Signal handler for notify signal on GTK widget
-   */
-  void (*notify_gtk)                   (GObject             *object,
-                                        GParamSpec          *pspec);
-  /*
-   * Signal handler for focus_in_event and focus_out_event signal on GTK widget
-   */
-  gboolean (*focus_gtk)                (GtkWidget           *widget,
-                                        GdkEventFocus       *event);
-
-};
-
-AtkObject*     gail_widget_new         (GtkWidget       *widget);
-
-G_END_DECLS
-
-#endif /* __GAIL_WIDGET_H__ */
diff --git a/modules/other/gail/gailwindow.c b/modules/other/gail/gailwindow.c
deleted file mode 100644 (file)
index 6cf1066..0000000
+++ /dev/null
@@ -1,1056 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001, 2002, 2003 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#include "config.h"
-
-#include <string.h>
-
-#include <gtk/gtkx.h>
-
-#include "gailwindow.h"
-#include "gailtoplevel.h"
-#include "gail-private-macros.h"
-
-enum {
-  ACTIVATE,
-  CREATE,
-  DEACTIVATE,
-  DESTROY,
-  MAXIMIZE,
-  MINIMIZE,
-  MOVE,
-  RESIZE,
-  RESTORE,
-  LAST_SIGNAL
-};
-
-static void gail_window_class_init (GailWindowClass *klass);
-
-static void                  gail_window_init            (GailWindow   *accessible);
-
-static void                  gail_window_real_initialize (AtkObject    *obj,
-                                                          gpointer     data);
-static void                  gail_window_finalize        (GObject      *object);
-
-static const gchar* gail_window_get_name       (AtkObject     *accessible);
-
-static AtkObject*            gail_window_get_parent     (AtkObject     *accessible);
-static gint                  gail_window_get_index_in_parent (AtkObject *accessible);
-static gboolean              gail_window_real_focus_gtk (GtkWidget     *widget,
-                                                         GdkEventFocus *event);
-
-static AtkStateSet*          gail_window_ref_state_set  (AtkObject     *accessible);
-static AtkRelationSet*       gail_window_ref_relation_set  (AtkObject     *accessible);
-static void                  gail_window_real_notify_gtk (GObject      *obj,
-                                                          GParamSpec   *pspec);
-static gint                  gail_window_get_mdi_zorder (AtkComponent  *component);
-
-static gboolean              gail_window_state_event_gtk (GtkWidget           *widget,
-                                                          GdkEventWindowState *event);
-
-/* atkcomponent.h */
-static void                  atk_component_interface_init (AtkComponentIface    *iface);
-
-static void                  gail_window_get_extents      (AtkComponent         *component,
-                                                           gint                 *x,
-                                                           gint                 *y,
-                                                           gint                 *width,
-                                                           gint                 *height,
-                                                           AtkCoordType         coord_type);
-static void                  gail_window_get_size         (AtkComponent         *component,
-                                                           gint                 *width,
-                                                           gint                 *height);
-
-static guint gail_window_signals [LAST_SIGNAL] = { 0, };
-
-G_DEFINE_TYPE_WITH_CODE (GailWindow, gail_window, GAIL_TYPE_CONTAINER,
-                         G_IMPLEMENT_INTERFACE (ATK_TYPE_COMPONENT, atk_component_interface_init))
-
-static void
-gail_window_class_init (GailWindowClass *klass)
-{
-  GailWidgetClass *widget_class;
-  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
-  AtkObjectClass  *class = ATK_OBJECT_CLASS (klass);
-
-  gobject_class->finalize = gail_window_finalize;
-
-  widget_class = (GailWidgetClass*)klass;
-  widget_class->focus_gtk = gail_window_real_focus_gtk;
-  widget_class->notify_gtk = gail_window_real_notify_gtk;
-
-  class->get_name = gail_window_get_name;
-  class->get_parent = gail_window_get_parent;
-  class->get_index_in_parent = gail_window_get_index_in_parent;
-  class->ref_relation_set = gail_window_ref_relation_set;
-  class->ref_state_set = gail_window_ref_state_set;
-  class->initialize = gail_window_real_initialize;
-
-  gail_window_signals [ACTIVATE] =
-    g_signal_new ("activate",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0, /* default signal handler */
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-  gail_window_signals [CREATE] =
-    g_signal_new ("create",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0, /* default signal handler */
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-  gail_window_signals [DEACTIVATE] =
-    g_signal_new ("deactivate",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0, /* default signal handler */
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-  gail_window_signals [DESTROY] =
-    g_signal_new ("destroy",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0, /* default signal handler */
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-  gail_window_signals [MAXIMIZE] =
-    g_signal_new ("maximize",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0, /* default signal handler */
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-  gail_window_signals [MINIMIZE] =
-    g_signal_new ("minimize",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0, /* default signal handler */
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-  gail_window_signals [MOVE] =
-    g_signal_new ("move",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0, /* default signal handler */
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-  gail_window_signals [RESIZE] =
-    g_signal_new ("resize",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0, /* default signal handler */
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-  gail_window_signals [RESTORE] =
-    g_signal_new ("restore",
-                  G_TYPE_FROM_CLASS (klass),
-                  G_SIGNAL_RUN_LAST,
-                  0, /* default signal handler */
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-}
-
-static void
-gail_window_init (GailWindow   *accessible)
-{
-}
-
-static void
-gail_window_real_initialize (AtkObject *obj,
-                             gpointer  data)
-{
-  GtkWidget *widget = GTK_WIDGET (data);
-  GailWindow *window;
-
-  /*
-   * A GailWindow can be created for a GtkHandleBox or a GtkWindow
-   */
-  if (!GTK_IS_WINDOW (widget) &&
-      !GTK_IS_HANDLE_BOX (widget))
-    gail_return_if_fail (FALSE);
-
-  ATK_OBJECT_CLASS (gail_window_parent_class)->initialize (obj, data);
-
-  window = GAIL_WINDOW (obj);
-  window->name_change_handler = 0;
-  window->previous_name = g_strdup (gtk_window_get_title (GTK_WINDOW (data)));
-
-  g_signal_connect (data,
-                    "window_state_event",
-                    G_CALLBACK (gail_window_state_event_gtk),
-                    NULL);
-  g_object_set_data (G_OBJECT (obj), "atk-component-layer",
-                     GINT_TO_POINTER (ATK_LAYER_WINDOW));
-
-  if (GTK_IS_FILE_CHOOSER_DIALOG (widget))
-    obj->role = ATK_ROLE_FILE_CHOOSER;
-  else if (GTK_IS_COLOR_SELECTION_DIALOG (widget))
-    obj->role = ATK_ROLE_COLOR_CHOOSER;
-  else if (GTK_IS_FONT_SELECTION_DIALOG (widget))
-    obj->role = ATK_ROLE_FONT_CHOOSER;
-  else if (GTK_IS_MESSAGE_DIALOG (widget))
-    obj->role = ATK_ROLE_ALERT;
-  else if (GTK_IS_DIALOG (widget))
-    obj->role = ATK_ROLE_DIALOG;
-  else
-    {
-      const gchar *name;
-
-      name = gtk_widget_get_name (widget);
-
-      if (!g_strcmp0 (name, "gtk-tooltip"))
-        obj->role = ATK_ROLE_TOOL_TIP;
-#ifdef  GDK_WINDOWING_X11
-      else if (GTK_IS_PLUG (widget))
-        obj->role = ATK_ROLE_PANEL;
-#endif
-      else if (gtk_window_get_window_type (GTK_WINDOW (widget)) == GTK_WINDOW_POPUP)
-        obj->role = ATK_ROLE_WINDOW;
-      else
-        obj->role = ATK_ROLE_FRAME;
-    }
-
-  /*
-   * Notify that tooltip is showing
-   */
-  if (obj->role == ATK_ROLE_TOOL_TIP &&
-      gtk_widget_get_mapped (widget))
-    atk_object_notify_state_change (obj, ATK_STATE_SHOWING, 1);
-}
-
-static void
-gail_window_finalize (GObject *object)
-{
-  GailWindow* window = GAIL_WINDOW (object);
-
-  if (window->name_change_handler)
-    {
-      g_source_remove (window->name_change_handler);
-      window->name_change_handler = 0;
-    }
-  if (window->previous_name)
-    {
-      g_free (window->previous_name);
-      window->previous_name = NULL;
-    }
-
-  G_OBJECT_CLASS (gail_window_parent_class)->finalize (object);
-}
-
-static const gchar*
-gail_window_get_name (AtkObject *accessible)
-{
-  const gchar* name;
-
-  name = ATK_OBJECT_CLASS (gail_window_parent_class)->get_name (accessible);
-  if (name == NULL)
-    {
-      /*
-       * Get the window title if it exists
-       */
-      GtkWidget* widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-
-      if (widget == NULL)
-        /*
-         * State is defunct
-         */
-        return NULL;
-
-      gail_return_val_if_fail (GTK_IS_WIDGET (widget), NULL);
-
-      if (GTK_IS_WINDOW (widget))
-        {
-          GtkWindow *window = GTK_WINDOW (widget);
-          name = gtk_window_get_title (window);
-          if (name == NULL &&
-              accessible->role == ATK_ROLE_TOOL_TIP)
-            {
-              GtkWidget *child;
-
-              child = gtk_bin_get_child (GTK_BIN (window));
-              /* could be some kind of egg notification bubble thingy? */
-
-              /* Handle new GTK+ GNOME 2.20 tooltips */
-              if (GTK_IS_ALIGNMENT(child))
-                {
-                  child = gtk_bin_get_child (GTK_BIN (child));
-                  if (GTK_IS_BOX(child)) 
-                    {
-                      GList *children;
-                      guint count;
-                      children = gtk_container_get_children (GTK_CONTAINER (child));
-                      count = g_list_length (children);
-                      if (count == 2) 
-                        {
-                          child = (GtkWidget *) g_list_nth_data (children, 1);
-                        }
-                      g_list_free (children);                
-                    }
-                }
-
-              if (!GTK_IS_LABEL (child)) 
-              { 
-                  g_message ("ATK_ROLE_TOOLTIP object found, but doesn't look like a tooltip.");
-                  return NULL;
-              }
-              name = gtk_label_get_text (GTK_LABEL (child));
-            }
-        }
-    }
-  return name;
-}
-
-static AtkObject*
-gail_window_get_parent (AtkObject *accessible)
-{
-  AtkObject* parent;
-
-  parent = ATK_OBJECT_CLASS (gail_window_parent_class)->get_parent (accessible);
-
-  return parent;
-}
-
-static gint
-gail_window_get_index_in_parent (AtkObject *accessible)
-{
-  GtkWidget* widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  AtkObject* atk_obj = atk_get_root ();
-  gint index = -1;
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return -1;
-
-  gail_return_val_if_fail (GTK_IS_WIDGET (widget), -1);
-
-  index = ATK_OBJECT_CLASS (gail_window_parent_class)->get_index_in_parent (accessible);
-  if (index != -1)
-    return index;
-
-  if (GTK_IS_WINDOW (widget))
-    {
-      GtkWindow *window = GTK_WINDOW (widget);
-      if (GAIL_IS_TOPLEVEL (atk_obj))
-        {
-         GailToplevel* toplevel = GAIL_TOPLEVEL (atk_obj);
-         index = g_list_index (toplevel->window_list, window);
-       }
-      else
-        {
-         int i, sibling_count = atk_object_get_n_accessible_children (atk_obj);
-         for (i = 0; i < sibling_count && index == -1; ++i)
-           {
-             AtkObject *child = atk_object_ref_accessible_child (atk_obj, i);
-             if (accessible == child) index = i;
-             g_object_unref (G_OBJECT (child));
-           }
-       }
-    }
-  return index;
-}
-
-static gboolean
-gail_window_real_focus_gtk (GtkWidget     *widget,
-                            GdkEventFocus *event)
-{
-  AtkObject* obj;
-
-  obj = gtk_widget_get_accessible (widget);
-  atk_object_notify_state_change (obj, ATK_STATE_ACTIVE, event->in);
-
-  return FALSE;
-}
-
-static AtkRelationSet*
-gail_window_ref_relation_set (AtkObject *obj)
-{
-  GtkWidget *widget;
-  AtkRelationSet *relation_set;
-  AtkObject *array[1];
-  AtkRelation* relation;
-  GtkWidget *current_widget;
-
-  gail_return_val_if_fail (GAIL_IS_WIDGET (obj), NULL);
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return NULL;
-
-  relation_set = ATK_OBJECT_CLASS (gail_window_parent_class)->ref_relation_set (obj);
-
-  if (atk_object_get_role (obj) == ATK_ROLE_TOOL_TIP)
-    {
-      relation = atk_relation_set_get_relation_by_type (relation_set, ATK_RELATION_POPUP_FOR);
-
-      if (relation)
-        {
-          atk_relation_set_remove (relation_set, relation);
-        }
-      if (gtk_widget_get_visible(widget) && FALSE /* FIXME gtk_tooltips_get_info_from_tip_window (GTK_WINDOW (widget), NULL, &current_widget) */)
-        {
-          array [0] = gtk_widget_get_accessible (current_widget);
-
-          relation = atk_relation_new (array, 1, ATK_RELATION_POPUP_FOR);
-          atk_relation_set_add (relation_set, relation);
-          g_object_unref (relation);
-        }
-    }
-  return relation_set;
-}
-
-static AtkStateSet*
-gail_window_ref_state_set (AtkObject *accessible)
-{
-  AtkStateSet *state_set;
-  GtkWidget *widget;
-  GtkWindow *window;
-  GdkWindow *gdk_window;
-  GdkWindowState state;
-
-  state_set = ATK_OBJECT_CLASS (gail_window_parent_class)->ref_state_set (accessible);
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
-  if (widget == NULL)
-    return state_set;
-
-  window = GTK_WINDOW (widget);
-
-  if (gtk_window_has_toplevel_focus (window) && gtk_window_is_active (window))
-    atk_state_set_add_state (state_set, ATK_STATE_ACTIVE);
-
-  gdk_window = gtk_widget_get_window (widget);
-  if (window)
-    {
-      state = gdk_window_get_state (gdk_window);
-      if (state & GDK_WINDOW_STATE_ICONIFIED)
-        atk_state_set_add_state (state_set, ATK_STATE_ICONIFIED);
-    } 
-  if (gtk_window_get_modal (window))
-    atk_state_set_add_state (state_set, ATK_STATE_MODAL);
-
-  if (gtk_window_get_resizable (window))
-    atk_state_set_add_state (state_set, ATK_STATE_RESIZABLE);
-  return state_set;
-}
-
-static gboolean
-idle_notify_name_change (gpointer data)
-{
-  GailWindow *window;
-  AtkObject *obj;
-
-  window = GAIL_WINDOW (data);
-  window->name_change_handler = 0;
-  if (gtk_accessible_get_widget (GTK_ACCESSIBLE (window)) == NULL)
-    return FALSE;
-
-  obj = ATK_OBJECT (window);
-  if (obj->name == NULL)
-    {
-    /*
-     * The title has changed so notify a change in accessible-name
-     */
-      g_object_notify (G_OBJECT (obj), "accessible-name");
-    }
-  g_signal_emit_by_name (obj, "visible_data_changed");
-
-  return FALSE;
-}
-
-static void
-gail_window_real_notify_gtk (GObject           *obj,
-                             GParamSpec                *pspec)
-{
-  GtkWidget *widget = GTK_WIDGET (obj);
-  AtkObject* atk_obj = gtk_widget_get_accessible (widget);
-  GailWindow *window = GAIL_WINDOW (atk_obj);
-  const gchar *name;
-  gboolean name_changed = FALSE;
-
-  if (strcmp (pspec->name, "title") == 0)
-    {
-      name = gtk_window_get_title (GTK_WINDOW (widget));
-      if (name)
-        {
-         if (window->previous_name == NULL ||
-             strcmp (name, window->previous_name) != 0)
-           name_changed = TRUE;
-        }
-      else if (window->previous_name != NULL)
-        name_changed = TRUE;
-
-      if (name_changed)
-        {
-          g_free (window->previous_name);
-          window->previous_name = g_strdup (name);
-       
-          if (window->name_change_handler == 0)
-            window->name_change_handler = gdk_threads_add_idle (idle_notify_name_change, atk_obj);
-        }
-    }
-  else
-    GAIL_WIDGET_CLASS (gail_window_parent_class)->notify_gtk (obj, pspec);
-}
-
-static gboolean
-gail_window_state_event_gtk (GtkWidget           *widget,
-                             GdkEventWindowState *event)
-{
-  AtkObject* obj;
-
-  obj = gtk_widget_get_accessible (widget);
-  atk_object_notify_state_change (obj, ATK_STATE_ICONIFIED,
-                         (event->new_window_state & GDK_WINDOW_STATE_ICONIFIED) != 0);
-  return FALSE;
-}
-
-static void
-atk_component_interface_init (AtkComponentIface *iface)
-{
-  iface->get_extents = gail_window_get_extents;
-  iface->get_size = gail_window_get_size;
-  iface->get_mdi_zorder = gail_window_get_mdi_zorder;
-}
-
-static void
-gail_window_get_extents (AtkComponent  *component,
-                         gint          *x,
-                         gint          *y,
-                         gint          *width,
-                         gint          *height,
-                         AtkCoordType  coord_type)
-{
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component)); 
-  GdkRectangle rect;
-  gint x_toplevel, y_toplevel;
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return;
-
-  gail_return_if_fail (GTK_IS_WINDOW (widget));
-
-  if (!gtk_widget_is_toplevel (widget))
-    {
-      AtkComponentIface *parent_iface;
-
-      parent_iface = (AtkComponentIface *) g_type_interface_peek_parent (ATK_COMPONENT_GET_IFACE (component));
-      parent_iface->get_extents (component, x, y, width, height, coord_type);
-      return;
-    }
-
-  gdk_window_get_frame_extents (gtk_widget_get_window (widget),
-                                &rect);
-
-  *width = rect.width;
-  *height = rect.height;
-  if (!gtk_widget_is_drawable (widget))
-    {
-      *x = G_MININT;
-      *y = G_MININT;
-      return;
-    }
-  *x = rect.x;
-  *y = rect.y;
-  if (coord_type == ATK_XY_WINDOW)
-    {
-      gdk_window_get_origin (gtk_widget_get_window (widget),
-                             &x_toplevel, &y_toplevel);
-      *x -= x_toplevel;
-      *y -= y_toplevel;
-    }
-}
-
-static void
-gail_window_get_size (AtkComponent *component,
-                      gint         *width,
-                      gint         *height)
-{
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
-  GdkRectangle rect;
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return;
-
-  gail_return_if_fail (GTK_IS_WINDOW (widget));
-
-  if (!gtk_widget_is_toplevel (widget))
-    {
-      AtkComponentIface *parent_iface;
-
-      parent_iface = (AtkComponentIface *) g_type_interface_peek_parent (ATK_COMPONENT_GET_IFACE (component));
-      parent_iface->get_size (component, width, height);
-      return;
-    }
-  gdk_window_get_frame_extents (gtk_widget_get_window (widget), &rect);
-
-  *width = rect.width;
-  *height = rect.height;
-}
-
-#if defined (GDK_WINDOWING_X11)
-
-#include <X11/Xlib.h>
-#include <X11/Xatom.h>
-#include <gdk/x11/gdkx.h>
-
-/* _NET_CLIENT_LIST_STACKING monitoring */
-
-typedef struct {
-  Window     *stacked_windows;
-  int         stacked_windows_len;
-  GdkWindow  *root_window;
-  guint       update_handler;
-  int        *desktop;
-  guint       update_desktop_handler;
-  gboolean   *desktop_changed;
-
-  guint       screen_initialized : 1;
-  guint       update_stacked_windows : 1;
-} GailScreenInfo;
-
-static GailScreenInfo *gail_screens = NULL;
-static int             num_screens = 0;
-static Atom            _net_client_list_stacking = None;
-static Atom            _net_wm_desktop = None;
-
-static gint
-get_window_desktop (Window window)
-{
-  Atom            ret_type;
-  int             format;
-  gulong          nitems;
-  gulong          bytes_after;
-  guchar         *cardinals;
-  int             error;
-  int             result;
-  int             desktop;
-
-  if (_net_wm_desktop == None)
-    _net_wm_desktop =
-               XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "_NET_WM_DESKTOP", False);
-
-  gdk_error_trap_push ();
-  result = XGetWindowProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), window, _net_wm_desktop,
-                               0, G_MAXLONG,
-                               False, XA_CARDINAL,
-                               &ret_type, &format, &nitems,
-                               &bytes_after, &cardinals);
-  error = gdk_error_trap_pop();
-  /* nitems < 1 will occur if the property is not set */
-  if (error != Success || result != Success || nitems < 1)
-    return -1;
-
-  desktop = *cardinals;
-
-  XFree (cardinals);
-  if (nitems != 1)
-    return -1;
-  return desktop;
-}
-
-static void
-free_screen_info (GailScreenInfo *info)
-{
-  if (info->stacked_windows)
-    XFree (info->stacked_windows);
-  if (info->desktop)
-    g_free (info->desktop);
-  if (info->desktop_changed)
-    g_free (info->desktop_changed);
-
-  info->stacked_windows = NULL;
-  info->stacked_windows_len = 0;
-  info->desktop = NULL;
-  info->desktop_changed = NULL;
-}
-
-static gboolean
-get_stacked_windows (GailScreenInfo *info)
-{
-  Atom    ret_type;
-  int     format;
-  gulong  nitems;
-  gulong  bytes_after;
-  guchar *data;
-  int     error;
-  int     result;
-  int     i;
-  int     j;
-  int    *desktops;
-  gboolean *desktops_changed;
-
-  if (_net_client_list_stacking == None)
-    _net_client_list_stacking =
-               XInternAtom (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()), "_NET_CLIENT_LIST_STACKING", False);
-
-  gdk_error_trap_push ();
-  ret_type = None;
-  result = XGetWindowProperty (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-                               GDK_WINDOW_XID (info->root_window),
-                               _net_client_list_stacking,
-                               0, G_MAXLONG,
-                               False, XA_WINDOW, &ret_type, &format, &nitems,
-                               &bytes_after, &data);
-  error = gdk_error_trap_pop ();
-  /* nitems < 1 will occur if the property is not set */
-  if (error != Success || result != Success || nitems < 1)
-    {
-      free_screen_info (info);
-      return FALSE;
-    }
-
-  if (ret_type != XA_WINDOW)
-    {
-      XFree (data);
-      free_screen_info (info);
-      return FALSE;
-    }
-
-  desktops = g_malloc0 (nitems * sizeof (int));
-  desktops_changed = g_malloc0 (nitems * sizeof (gboolean));
-  for (i = 0; i < nitems; i++)
-    {
-      gboolean window_found = FALSE;
-
-      for (j = 0; j < info->stacked_windows_len; j++)
-        {
-          if (info->stacked_windows [j] == data [i])
-            {
-              desktops [i] = info->desktop [j];
-              desktops_changed [i] = info->desktop_changed [j];
-              window_found = TRUE;
-              break;
-            }
-        }
-      if (!window_found)
-        {
-          desktops [i] = get_window_desktop (data [i]);
-          desktops_changed [i] = FALSE;
-        }
-    }
-  free_screen_info (info);
-  info->stacked_windows = (Window*) data;
-  info->stacked_windows_len = nitems;
-  info->desktop = desktops;
-  info->desktop_changed = desktops_changed;
-
-  return TRUE;
-}
-
-static gboolean
-update_screen_info (gpointer data)
-{
-  int screen_n = GPOINTER_TO_INT (data);
-
-  gail_screens [screen_n].update_handler = 0;
-  gail_screens [screen_n].update_stacked_windows = FALSE;
-
-  get_stacked_windows (&gail_screens [screen_n]);
-
-  return FALSE;
-}
-
-static gboolean
-update_desktop_info (gpointer data)
-{
-  int screen_n = GPOINTER_TO_INT (data);
-  GailScreenInfo *info;
-  int i;
-
-  info = &gail_screens [screen_n];
-  info->update_desktop_handler = 0;
-
-  for (i = 0; i < info->stacked_windows_len; i++)
-    {
-      if (info->desktop_changed [i])
-        {
-          info->desktop [i] = get_window_desktop (info->stacked_windows [i]);
-          info->desktop_changed [i] = FALSE;
-        }
-    }
-
-  return FALSE;
-}
-
-static GdkFilterReturn
-filter_func (GdkXEvent *gdkxevent,
-            GdkEvent  *event,
-            gpointer   data)
-{
-  XEvent *xevent = gdkxevent;
-
-  if (xevent->type == PropertyNotify)
-    {
-      if (xevent->xproperty.atom == _net_client_list_stacking)
-        {
-          int     screen_n;
-          GdkWindow *window;
-
-          window = event->any.window;
-
-          if (window)
-            {
-              screen_n = gdk_screen_get_number (gdk_window_get_screen (window));
-
-              gail_screens [screen_n].update_stacked_windows = TRUE;
-              if (!gail_screens [screen_n].update_handler)
-                {
-                  gail_screens [screen_n].update_handler = gdk_threads_add_idle (update_screen_info,
-                                                                                GINT_TO_POINTER (screen_n));
-                }
-            }
-        }
-      else if (xevent->xproperty.atom == _net_wm_desktop)
-        {
-          int     i;
-          int     j;
-          GailScreenInfo *info;
-
-          for (i = 0; i < num_screens; i++)
-            {
-              info = &gail_screens [i];
-              for (j = 0; j < info->stacked_windows_len; j++)
-                {
-                  if (xevent->xany.window == info->stacked_windows [j])
-                    {
-                      info->desktop_changed [j] = TRUE;
-                      if (!info->update_desktop_handler)
-                        {
-                          info->update_desktop_handler = gdk_threads_add_idle (update_desktop_info,
-                                                                               GINT_TO_POINTER (i));
-                        }
-                      break;
-                    }
-                }
-            }
-        }
-    }
-  return GDK_FILTER_CONTINUE;
-}
-
-static void
-display_closed (GdkDisplay *display,
-               gboolean    is_error)
-{
-  int i;
-
-  for (i = 0; i < num_screens; i++)
-    {
-      if (gail_screens [i].update_handler)
-       {
-         g_source_remove (gail_screens [i].update_handler);
-         gail_screens [i].update_handler = 0;
-       }
-
-      if (gail_screens [i].update_desktop_handler)
-       {
-         g_source_remove (gail_screens [i].update_desktop_handler);
-         gail_screens [i].update_desktop_handler = 0;
-       }
-
-      free_screen_info (&gail_screens [i]);
-    }
-
-  g_free (gail_screens);
-  gail_screens = NULL;
-  num_screens = 0;
-}
-
-static void
-init_gail_screens (void)
-{
-  GdkDisplay *display;
-
-  display = gdk_display_get_default ();
-
-  num_screens = gdk_display_get_n_screens (display);
-
-  gail_screens = g_new0 (GailScreenInfo, num_screens);
-  gdk_window_add_filter (NULL, filter_func, NULL);
-
-  g_signal_connect (display, "closed", G_CALLBACK (display_closed), NULL);
-}
-
-static void
-init_gail_screen (GdkScreen *screen,
-                  int        screen_n)
-{
-  XWindowAttributes attrs;
-
-  gail_screens [screen_n].root_window = gdk_screen_get_root_window (screen);
-
-  get_stacked_windows (&gail_screens [screen_n]);
-
-  XGetWindowAttributes (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-                       GDK_WINDOW_XID (gail_screens [screen_n].root_window),
-                       &attrs); 
-
-  XSelectInput (GDK_DISPLAY_XDISPLAY (gdk_display_get_default ()),
-               GDK_WINDOW_XID (gail_screens [screen_n].root_window),
-               attrs.your_event_mask | PropertyChangeMask);
-           
-  gail_screens [screen_n].screen_initialized = TRUE;
-}
-
-static GailScreenInfo *
-get_screen_info (GdkScreen *screen)
-{
-  int screen_n;
-
-  gail_return_val_if_fail (GDK_IS_SCREEN (screen), NULL);
-
-  screen_n = gdk_screen_get_number (screen);
-
-  if (gail_screens && gail_screens [screen_n].screen_initialized)
-    return &gail_screens [screen_n];
-
-  if (!gail_screens)
-    init_gail_screens ();
-
-  g_assert (gail_screens != NULL);
-
-  init_gail_screen (screen, screen_n);
-
-  g_assert (gail_screens [screen_n].screen_initialized);
-
-  return &gail_screens [screen_n];
-}
-
-static gint
-get_window_zorder (GdkWindow *window)
-{
-  GailScreenInfo *info;
-  Window          xid;
-  int             i;
-  int             zorder;
-  int             w_desktop;
-
-  gail_return_val_if_fail (GDK_IS_WINDOW (window), -1);
-
-  info = get_screen_info (gdk_window_get_screen (window));
-
-  gail_return_val_if_fail (info->stacked_windows != NULL, -1);
-
-  xid = GDK_WINDOW_XID (window);
-
-  w_desktop = -1;
-  for (i = 0; i < info->stacked_windows_len; i++)
-    {
-      if (info->stacked_windows [i] == xid)
-        {
-          w_desktop = info->desktop[i];
-          break;
-        }
-    }
-  if (w_desktop < 0)
-    return w_desktop;
-
-  zorder = 0;
-  for (i = 0; i < info->stacked_windows_len; i++)
-    {
-      if (info->stacked_windows [i] == xid)
-        {
-          return zorder;
-        }
-      else
-        {
-          if (info->desktop[i] == w_desktop)
-            zorder++;
-        }
-     }
-
-  return -1;
-}
-
-static gint
-gail_window_get_mdi_zorder (AtkComponent *component)
-{
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return -1;
-
-  gail_return_val_if_fail (GTK_IS_WINDOW (widget), -1);
-
-  return get_window_zorder (gtk_widget_get_window (widget));
-}
-
-#elif defined (GDK_WINDOWING_WIN32)
-
-static gint
-gail_window_get_mdi_zorder (AtkComponent *component)
-{
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return -1;
-
-  gail_return_val_if_fail (GTK_IS_WINDOW (widget), -1);
-
-  return 0;                    /* Punt, FIXME */
-}
-
-#else
-
-static gint
-gail_window_get_mdi_zorder (AtkComponent *component)
-{
-  GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (component));
-
-  if (widget == NULL)
-    /*
-     * State is defunct
-     */
-    return -1;
-
-  gail_return_val_if_fail (GTK_IS_WINDOW (widget), -1);
-
-  return 0;                    /* Punt, FIXME */
-}
-
-#endif
diff --git a/modules/other/gail/gailwindow.h b/modules/other/gail/gailwindow.h
deleted file mode 100644 (file)
index b417ae8..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/* GAIL - The GNOME Accessibility Implementation Library
- * Copyright 2001 Sun Microsystems Inc.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Library General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Library General Public License for more details.
- *
- * You should have received a copy of the GNU Library General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-#ifndef __GAIL_WINDOW_H__
-#define __GAIL_WINDOW_H__
-
-#include <gail/gailcontainer.h>
-
-G_BEGIN_DECLS
-
-#define GAIL_TYPE_WINDOW                        (gail_window_get_type ())
-#define GAIL_WINDOW(obj)                        (G_TYPE_CHECK_INSTANCE_CAST ((obj), GAIL_TYPE_WINDOW, GailWindow))
-#define GAIL_WINDOW_CLASS(klass)                (G_TYPE_CHECK_CLASS_CAST ((klass), GAIL_TYPE_WINDOW, GailWindowClass))
-#define GAIL_IS_WINDOW(obj)                     (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GAIL_TYPE_WINDOW))
-#define GAIL_IS_WINDOW_CLASS(klass)             (G_TYPE_CHECK_CLASS_TYPE ((klass), GAIL_TYPE_WINDOW))
-#define GAIL_WINDOW_GET_CLASS(obj)              (G_TYPE_INSTANCE_GET_CLASS ((obj), GAIL_TYPE_WINDOW, GailWindowClass))
-
-typedef struct _GailWindow                   GailWindow;
-typedef struct _GailWindowClass              GailWindowClass;
-
-struct _GailWindow
-{
-  GailContainer parent;
-
-  guint name_change_handler;
-  gchar *previous_name;
-};
-
-GType gail_window_get_type (void);
-
-struct _GailWindowClass
-{
-  GailContainerClass parent_class;
-};
-
-G_END_DECLS
-
-#endif /* __GAIL_WINDOW_H__ */
diff --git a/modules/other/gail/tests/Makefile.am b/modules/other/gail/tests/Makefile.am
deleted file mode 100644 (file)
index c164efc..0000000
+++ /dev/null
@@ -1,260 +0,0 @@
-## Makefile.am for gtk+/tests
-include $(top_srcdir)/Makefile.decl
-
-if PLATFORM_WIN32
-no_undefined = -no-undefined
-endif
-
-moduledir = $(libdir)/gtk-3.0/modules
-
-if !OS_WIN32
-module_LTLIBRARIES = \
-       libferret.la
-endif
-
-noinst_LTLIBRARIES =           \
-       libtestaction.la        \
-       libtestbutton.la        \
-       libtestcombo.la         \
-       libtestcomponent.la     \
-       libtestimage.la         \
-       libtestnotebook.la      \
-       libtestobject.la        \
-       libtestmenuitem.la      \
-       libtestpaned.la         \
-       libtestprops.la         \
-       libtestselection.la     \
-       libteststatusbar.la     \
-       libtesttable.la         \
-       libtesttext.la          \
-       libtesttoplevel.la      \
-       libtesttreetable.la     \
-       libtestvalues.la
-
-AM_CPPFLAGS = \
-       -I$(top_srcdir)         \
-       -I$(top_srcdir)/gdk     \
-       -I$(top_builddir)/gdk   \
-       -I$(top_srcdir)/gtk     \
-       -I$(top_builddir)/gtk   \
-       -DGDK_DISABLE_DEPRECATED\
-       -DGTK_DISABLE_DEPRECATED
-
-AM_CFLAGS = \
-       $(GTK_DEP_CFLAGS)       \
-       $(GTK_DEBUG_FLAGS)
-
-if !OS_WIN32
-libferret_la_SOURCES =                 \
-       testlib.c               \
-       testlib.h               \
-       ferret.c
-
-libferret_la_LDFLAGS =         \
-       -rpath $(moduledir) -module -avoid-version \
-       $(no_undefined) \
-       $(LDFLAGS)
-
-libferret_la_LIBADD =                      \
-       $(top_builddir)/gtk/libgtk-3.la \
-        $(GTK_DEP_LIBS)                    \
-       $(GAIL_INET_LIBS)
-endif
-
-libtestaction_la_SOURCES =     \
-       testaction.c
-
-libtestaction_la_LDFLAGS =     \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtestbutton_la_SOURCES =     \
-       testlib.c               \
-       testlib.h               \
-       testbutton.c
-
-libtestbutton_la_LDFLAGS =     \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtestcombo_la_SOURCES =      \
-       testlib.c               \
-       testlib.h               \
-       testcombo.c
-
-libtestcombo_la_LDFLAGS =              \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtestcomponent_la_SOURCES =  \
-       testcomponent.c
-
-libtestcomponent_la_LDFLAGS =  \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtestimage_la_SOURCES =      \
-       testimage.c
-
-libtestimage_la_LDFLAGS =              \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtestmenuitem_la_SOURCES =   \
-       testlib.c               \
-       testlib.h               \
-       testmenuitem.c
-
-libtestmenuitem_la_LDFLAGS =           \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtestnotebook_la_SOURCES =   \
-       testlib.c               \
-       testlib.h               \
-       testnotebook.c
-
-libtestnotebook_la_LDFLAGS =           \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtestobject_la_SOURCES =     \
-       testlib.c               \
-       testlib.h               \
-       testobject.c
-
-libtestobject_la_LDFLAGS =             \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtestpaned_la_SOURCES =      \
-       testlib.c               \
-       testlib.h               \
-       testpaned.c
-
-libtestpaned_la_LDFLAGS =      \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtestprops_la_SOURCES =      \
-       testlib.c               \
-       testlib.h               \
-       testprops.c
-
-libtestprops_la_LDFLAGS =      \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtestselection_la_SOURCES = \
-       testselection.c
-
-libtestselection_la_LDFLAGS =  \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libteststatusbar_la_SOURCES = \
-       teststatusbar.c
-
-libteststatusbar_la_LDFLAGS =  \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtesttable_la_SOURCES =      \
-       testlib.c               \
-       testlib.h               \
-       testtextlib.c           \
-       testtextlib.h           \
-       testtable.c
-
-libtesttable_la_LDFLAGS =      \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtesttext_la_SOURCES =       \
-       testlib.c               \
-       testlib.h               \
-       testtextlib.c           \
-       testtextlib.h           \
-        testtext.c
-
-libtesttext_la_LDFLAGS =       \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtesttoplevel_la_SOURCES =   \
-       testlib.c               \
-       testlib.h               \
-       testtoplevel.c
-
-libtesttoplevel_la_LDFLAGS =   \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtesttreetable_la_SOURCES =  \
-       testlib.c               \
-       testlib.h               \
-       testtreetable.c
-
-libtesttreetable_la_LDFLAGS =  \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
-libtestvalues_la_SOURCES =     \
-       testvalues.c
-
-libtestvalues_la_LDFLAGS =     \
-       -rpath $(moduledir) -module -avoid-version $(no_undefined) \
-       $(top_builddir)/gtk/libgtk-3.la \
-       $(top_builddir)/gdk/libgdk-3.la \
-       $(GTK_DEP_LIBS) \
-       $(LDFLAGS)
-
--include $(top_srcdir)/git.mk
diff --git a/modules/other/gail/tests/README b/modules/other/gail/tests/README
deleted file mode 100644 (file)
index 3ab350e..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-
-============================
-GAIL README
-Last Updated: August 2, 2001
-============================
-
-
-General Info
-============
-
-This README describes how to use the various test programs
-in the gail/tests directory.
-
-To run the various test programs described in this README,
-the test libraries must be built and installed.  Running
-"make", then "make install" in the gail top-level directory
-will take care of this.  Then do the following:
-
-1. Set the environment variable GTK_MODULES to
-   "libgail:lib<testname>"
-
-   For example, for ferret, it would be "libgail:libferret"
-
-2. Run the GTK+ test program specified.  These test programs
-   are found in the GTK+ build directory in the subdirectory
-   called "tests".
-
-Most test programs will display output directly to the 
-terminal window where the GTK+ test program was launched.
-Some test programs (testtable and testtext) will launch a
-test GUI program which allows more interactive testing.
-
-The test GUI has two windows.  The first window is the
-"Test Control" window and the second window is the
-"Test Output" window.  In the "Test Control" window,
-press the button(s) that corresponds to the tests to run
-and press the "Run Tests" button at the bottom of the
-screen.  Some tests have associated text entry fields
-which become active when the button is toggled on.  These
-text entry fields correspond to arguments that affect how
-the test is executed.  They are pre-filled with default
-values but the user can change them if desired.  The
-output from the tests is displayed in the "Test Output"
-window.
-
-
-testlib
-=======
-
-Contains general purpose functionality that is used by the
-various tests.  These include functions that find a specific
-widget/AtkObject in the test program, and functions used by
-tests that use the Gail Test GUI.
-
-
-ferret
-======
-
-Ferret is a passive in-process test tool for ATK and GAIL.
-
-Run a GTK+-2.0 application such as "testgtk", and ferret will
-display a window on screen.   In this window accessibility
-information about the GTK+ widgets will appear as they
-receive focus.
-
-The ferret window has several tabs, one for each of the
-following ATK interfaces.
-
-  Object
-  Action
-  Component
-  Image
-  Table
-  Text
-  Value
-
-Tabs that do not apply to the current widget in focus will be
-displayed as inactive.  Clicking on an active tab will display
-information about the AtkObject accessed via the ATK API.  In the
-Action tab the various actions are displayed as buttons.  When
-a button is clicked, the action specified on the button's
-label is performed.
-
-If you have installed the "festival" speech synthesis system,
-running festival in server mode (festival --server) and turning
-on Ferret's Festival support will cause the following to happen:
-
-1. AtkObject accessible names, roles, and keybindings will be
-   spoken as they receive focus.
-2. When the caret (cursor) is moved in a text field, the 
-   current line will be spoken, unless the caret is moved
-   just a single character.  In the later case, only the
-   single character after the caret will be spoken.
-
-Festival support can be turned on by checking "Festival" in the
-menu, or by setting the environment variable FERRET_FESTIVAL
-prior to starting the test.  By checking "Festival Terse" or
-by setting the environment variable FERRET_TERSE, only the
-name of the AtkObject will be spoken (and not the roles and
-keybindings).
-
-A magnifier can be turned on to enlarge the widget in focus
-by checking "Magnifier" in the menu, or by setting the
-environment variable FERRET_MAGNIFIER.  This requires that
-the magnifier standalone code is running.
-
-Checking "Track Mouse in the menu or by setting the environment
-variable FERRET_MOUSETRACK causes ferret to display information
-about the widget that is under the mouse rather than the widget
-that has focus.  The mouse is tracked via GtkWidget
-"enter_notify_event" signals, so flyweight objects are not tracked.
-
-Checking "Terminal Output" in the menu or by setting the 
-environment variable FERRET_ASCII will display the information
-that is normally displayed to the ferret GUI window to the
-terminal screen.
-
-Checking "No ATK Signals" in the menu or by setting the
-environment variable FERRET_NOSIGNALS will cause ferret to
-ignore any ATK signals, and it will not update its display
-when such signals occur.
-
-
-testaction
-==========
-
-This is a GTK+ module used to test the implementation of the ATK
-interface AtkAction, except for atk_action_do_action() in the GAIL 
-library. It is normally used with the GTK+ test program testgtk.
-
-
-testbutton
-==========
-
-This is a GTK+ module used to test the accessible implementation 
-for buttons. It is normally used with the GTK+ test program testgtk.
-
-Set the TEST_ACCESSIBLE_NAME environment variable to have the test
-driver attach to a widget by widget name (compared via the 
-gtk_widget_get_name function call).
-
-Set the environment variable TEST_ACCESSIBLE_AUTO and the program
-will execute the action defined for a GailButton once.
-
-
-testcombo
-=========
-
-This is a GTK+ module used to test the implementation of the ATK action
-interfaces on GailCombo. It is normally used with the GTK+ test program 
-testgtk by putting the focus in the GtkCombo in entry window.
-
-
-testcomponent
-=============
-
-This is a GTK+ module used to test the implementation of the ATK
-interface AtkComponent in the GAIL library. It is normally used with the 
-GTK+ test program testgtk.
-
-
-testimage
-=========
-
-This is a GTK+ module used to test the implementation of the ATK
-interface AtkImage in the GAIL library. It is normally used with the GTK+
-test program testgtk, but can also be used with testdnd when you want
-to test GtkPixmap. This modules pops up an extra dialog on startup , containing
-GtkArrows and a GtkImage. This dialog has to be closed before control is returned to main window.
-
-
-testmenuitem
-============
-
-This is a GTK+ module used to test the accessible implementation 
-for menu items. It is normally used with the GTK+ test program testgtk.
-
-Set the TEST_ACCESSIBLE_NAME environment variable to have the test
-driver attach to a widget by widget name (compared via the 
-gtk_widget_get_name function call).
-
-Set the environment variable TEST_ACCESSIBLE_AUTO and the program
-will execute the action defined for a GailButton once.
-
-
-testnotebook
-=============
-
-This is a GTK+ module used to test the implementation of the ATK
-interface AtkSelection for GailNotebook. It is normally used with the 
-GTK+ test program testgtk.
-
-
-testobject
-==========
-
-This is a GTK+ module used to test the implementation of the ATK
-interface in atkobject.h in the GAIL library. It is normally used with the 
-GTK+ test program testgtk.
-
-
-testpaned
-=========
-
-This is a GTK+ module used to test the implementation of the ATK
-interface AtkValue for GailPaned. It is normally used with the 
-GTK+ test program testgtk. It checks the setting of the position 
-programmatically and that notification is received if the position
-is changed interactively.
-
-
-testprops
-==========
-
-This is a GTK+ module used to test the implementation of ATK properties 
-and property change handlers in the GAIL library. It is normally used with 
-the GTK+ test program testgtk. To see the changing of the state
-ATK_STATE_SHOWING use menus in "progress bar". To see the changing of the
-state ATK_STATE_SENSITIVE uses "labels". To see changing of child and parent
-use resize check box in "panes".
-
-Set the TEST_ACCESSIBLE_NAME environment variable to have the test
-driver attach to a widget by widget name (compared via the 
-gtk_widget_get_name function call).
-
-
-testselection
-=============
-
-This is a GTK+ module used to test the implementation of the AtkSelection
-interface works for the GAIL library. It is normally used with the GTK+ 
-test program testgtk and clicking on the menus option. It can also be used
-with the GtkCombo which can be accessed by clicking on the entry option.
-
-
-teststatusbar
-=============
-
-This is a GTK+ module used to test that the text on the statusbar
-can be retrieved using GailStatusbar. It is normally used with the GTK+ 
-test program testgtk and clicking on statusbar button.
-
-
-testtable
-=========
-
-This is GTK+ module used to test the implementation of AtkTable
-interfaces.  It can be used with GailTreeView, for example.  It
-can be used with any of the following GTK+ test programs:
-testtreecolumns, testtreefocus, testtreesort, testtreeview,
-or treestoretest.
-
-Set the TEST_ACCESSIBLE_NO_PROPERTIES environment variable
-to not receive information about property values changing
-(like cell state changes).
-
-Set the TEST_ACCESSIBLE_NO_GUI environment variable to run the
-test without the GUI program.
-
-
-testtext
-========
-
-This is a GTK+ module used to test the implementation of AtkText and 
-AtkEditableText interfaces on GailTextView.  It is normally used with 
-the GTK+ test program testtext started with a text file loaded.
-It can also be used with the GTK+ test program testgtk, and then
-click on the "entry" or "label" button.
-
-Set the TEST_ACCESSIBLE_NAME environment variable to have the test
-driver attach to a widget by widget name (compared via the 
-gtk_widget_get_name function call).
-
-Set the TEST_ACCESSIBLE_DELAY environment variable to an integer
-and the test driver will attach to only a widget on the nth screen
-that is displayed.
-
-
-testtoplevel
-============
-
-This test exercises the AtkUtil functions.  It accesses the
-atk_get_root() toplevel object, sets/removes global listeners,
-and displays the ATK implementation name/version.
-
-Set the TEST_ACCESSIBLE_DEPTH environment variable to control
-how deep the children of the toplevel object are displayed.
-The default is a depth of 2.  Specifying a depth of -1 will
-show the complete hierarchy.
-
-
-testvalues
-==========
-
-This is a GTK+ module used to test the implementation of AtkValue interface
-works for the GAIL library. GailProgressbar, GailSpinbutton and GailRange
-can all be tested using this module.
-
-
-GAIL README Authors
-===================
-
--Brian Cameron (brian.cameron@sun.com)
--Bill Haneman (bill.haneman@sun.com)
--Padraig O'Briain (padraig.obriain@sun.com)
-
diff --git a/modules/other/gail/tests/ferret.c b/modules/other/gail/tests/ferret.c
deleted file mode 100644 (file)
index 98d4ee0..0000000
+++ /dev/null
@@ -1,2697 +0,0 @@
-#define MAX_BUFFER 256
-#define MAX_GROUPS 20
-#define MAX_NAME_VALUE 20
-
-#include "config.h"
-
-#include <sys/types.h>
-#include <netinet/in.h>
-#include <sys/socket.h>
-#include <sys/un.h>
-#include <errno.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <strings.h>
-
-#include "testlib.h"
-
-typedef enum
-{
-  OBJECT,
-  ACTION,
-  COMPONENT,
-  IMAGE,
-  SELECTION,
-  TABLE,
-  TEXT,
-  VALUE,
-  END_TABS
-} TabNumber;
-
-typedef enum
-{
-  OBJECT_INTERFACE,
-  RELATION_INTERFACE,
-  STATE_INTERFACE,
-  ACTION_INTERFACE,
-  COMPONENT_INTERFACE,
-  IMAGE_INTERFACE,
-  SELECTION_INTERFACE,
-  TABLE_INTERFACE,
-  TEXT_INTERFACE,
-  TEXT_ATTRIBUTES,
-  VALUE_INTERFACE
-} GroupId;
-
-typedef enum
-{
-  VALUE_STRING,
-  VALUE_BOOLEAN,
-  VALUE_TEXT,
-  VALUE_BUTTON
-} ValueType;
-
-/* GUI Information for the group */
-
-typedef struct
-{
-  GroupId       group_id;
-  GtkFrame      *scroll_outer_frame;
-  GtkWidget     *frame;
-  GtkBox        *group_vbox;
-  GtkAdjustment *adj;
-  GList         *name_value;
-  gchar         *name;
-  gboolean      is_scrolled;
-  gint          default_height;
-} GroupInfo;
-
-typedef struct
-{
-  GList     *groups;
-  GtkWidget *page;
-  GtkWidget *main_box;
-  gchar     *name;
-} TabInfo;
-
-typedef struct
-{
-  ValueType type;
-  gboolean  active;
-
-  GtkBox *column1, *column2, *hbox;
-  GtkLabel *label;
-
-  GtkButton *button;
-  GValue    button_gval;
-  gulong    signal_id;
-  AtkObject *atkobj;
-  gint      action_num;
-
-  GtkWidget *string;
-  GtkWidget *boolean;
-  GtkWidget *text;
-} NameValue;
-
-typedef enum {
-   FERRET_SIGNAL_OBJECT,
-   FERRET_SIGNAL_TEXT,
-   FERRET_SIGNAL_TABLE
-} FerretSignalType;
-
-/* Function prototypes */
-
-/* GUI functions */
-
-static void _init_data(void);
-static void _create_window(void);
-static void _add_menu(GtkWidget ** menu, GtkWidget ** menuitem,
-  gchar * name, gboolean init_value, GCallback func);
-static void _clear_tab(TabNumber tab_n);
-static void _greyout_tab (GtkWidget *widget, gboolean is_sensitive);
-static void _finished_group(TabNumber tab_n, gint group_num);
-static gboolean _object_is_ours (AtkObject *aobject);
-static void _create_event_watcher (void);
-
-/* Mouse Watcher/Magnifier/Festival functions */
-
-static gboolean _mouse_watcher (GSignalInvocationHint *ihint,
-       guint                  n_param_values,
-       const GValue          *param_values,
-       gpointer               data);
-static gboolean _button_watcher (GSignalInvocationHint *ihint,
-       guint                  n_param_values,
-       const GValue          *param_values,
-       gpointer               data);
-static void _send_to_magnifier (gint x, gint y, gint w, gint h);
-static void _send_to_festival (const gchar * name,
-  const gchar * role_name, const gchar * accel);
-static void _speak_caret_event (AtkObject * aobject);
-static void _festival_say (const gchar * text);
-static void _festival_write (const gchar * text, int fd);
-static gint _festival_init (void);
-
-/* Update functions */
-
-static void _update_current_page(GtkNotebook *notebook, gpointer p,
-  guint current_page);
-static void _update(TabNumber top_tab, AtkObject *aobject);
-
-/* Print functions */
-
-static void _print_accessible (AtkObject *aobject);
-
-static gint _print_object (AtkObject *aobject);
-static gint _print_relation (AtkObject *aobject);
-static gint _print_state (AtkObject *aobject);
-
-static gint _print_action (AtkAction *aobject);
-static gint _print_component (AtkComponent *aobject);
-static gint _print_image (AtkImage *aobject);
-static gint _print_selection (AtkSelection *aobject);
-static gint _print_table (AtkTable *aobject);
-static gint _print_text (AtkText *aobject);
-static gint _print_text_attributes (AtkText *aobject);
-static gint _print_value (AtkValue *aobject);
-static void _print_value_type(gint group_num, gchar *type, GValue *value);
-static gint _print_groupname(TabNumber tab_n, GroupId group_id,
-  const char *groupname);
-static NameValue* _print_key_value(TabNumber tab_n, gint group_number,
-  const char *label, gpointer value, ValueType type);
-static void _print_signal(AtkObject *aobject, FerretSignalType type,
-  const char *name, const char *info);
-
-/* Data Access functions */
-
-static GroupInfo* _get_group(TabInfo *tab, GroupId group_id,
-  const gchar *groupname);
-void _get_group_scrolled(GroupInfo *group);
-static NameValue* _get_name_value(GroupInfo *group, const gchar *label,
-  gpointer value, ValueType type);
-
-/* Signal handlers */
-
-static void _update_handlers(AtkObject *obj);
-static void _notify_text_insert_handler (GObject *obj,
-  int position, int offset);
-static void _notify_text_delete_handler (GObject *obj,
-  int position, int offset);
-static void _notify_caret_handler (GObject *obj, int position);
-static void _notify_table_row_inserted (GObject *obj,
-  gint start_offset, gint length);
-static void _notify_table_column_inserted (GObject *obj,
-  gint start_offset, gint length);
-static void _notify_table_row_deleted (GObject *obj,
-  gint start_offset, gint length);
-static void _notify_table_column_deleted (GObject *obj,
-  gint start_offset, gint length);
-static void _notify_table_row_reordered (GObject *obj);
-static void _notify_table_column_reordered (GObject *obj);
-static void _notify_object_child_added (GObject *obj,
-  gint index, AtkObject *child);
-static void _notify_object_child_removed (GObject *obj,
-  gint index, AtkObject *child);
-static void _notify_object_state_change (GObject *obj,
-  gchar *name, gboolean set);
-
-/* Property handlers */
-
-static void _property_change_handler (AtkObject *obj,
-  AtkPropertyValues *values);
-
-/* Ferret GUI callbacks */
-
-void _action_cb(GtkWidget *widget, gpointer  *userdata);
-void _toggle_terminal(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data);
-void _toggle_no_signals(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data);
-void _toggle_magnifier(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data);
-void _toggle_festival(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data);
-void _toggle_festival_terse(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data);
-void _toggle_trackmouse(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data);
-void _toggle_trackfocus(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data);
-
-/* Global variables */
-static GtkNotebook *notebook;
-static TabInfo  *nbook_tabs[END_TABS];
-static gint mouse_watcher_focus_id = -1;
-static gint mouse_watcher_button_id = -1;
-static gint focus_tracker_id = -1;
-static gboolean use_magnifier = FALSE;
-static gboolean use_festival = FALSE;
-static gboolean track_mouse = FALSE;
-static gboolean track_focus = TRUE;
-static gboolean say_role = TRUE;
-static gboolean say_accel = TRUE;
-static gboolean display_ascii = FALSE;
-static gboolean no_signals = FALSE;
-static gint last_caret_offset = 0;
-
-static AtkObject *last_object = NULL;
-static GtkWidget *mainWindow = NULL;
-static GtkWidget *vbox1 = NULL;
-static GtkWidget *menu = NULL;
-static GtkWidget *menutop = NULL;
-static GtkWidget *menubar = NULL;
-static GtkWidget *menuitem_terminal = NULL;
-static GtkWidget *menuitem_no_signals = NULL;
-static GtkWidget *menuitem_magnifier = NULL;
-static GtkWidget *menuitem_festival = NULL;
-static GtkWidget *menuitem_festival_terse = NULL;
-static GtkWidget *menuitem_trackmouse = NULL;
-static GtkWidget *menuitem_trackfocus = NULL;
-
-#ifdef HAVE_SOCKADDR_UN_SUN_LEN
-static struct sockaddr_un mag_server = { 0, AF_UNIX , "/tmp/magnifier_socket" };
-static struct sockaddr_un client = { 0 , AF_UNIX, "/tmp/mag_client"};
-#else
-static struct sockaddr_un mag_server = { AF_UNIX , "/tmp/magnifier_socket" };
-static struct sockaddr_un client = { AF_UNIX, "/tmp/mag_client"};
-#endif
-
-/* GUI Information for the output window */
-typedef struct
-{
-  GtkWindow     *outputWindow;
-  GtkWidget     *hbox;
-  GtkWidget     *vbox;
-  GtkWidget     *label;
-  GtkWidget     *textInsert;
-  gchar         *testTitle;
-} MainDialog;
-
-static void
-_send_to_magnifier(gint x, gint y, gint w, gint h)
-{
-  int desc;
-  int length_msg G_GNUC_UNUSED;
-  gchar buff[100];
-
-  sprintf (buff, "~5:%d,%d", x+w/2, y+h/2);
-
-#ifdef MAG_DEBUG
-  g_print ("sending magnifier: %s\n", buff);
-#endif
-
-#ifdef HAVE_SOCKADDR_UN_SUN_LEN
-  mag_server.sun_len = SUN_LEN(&mag_server);
-  client.sun_len = SUN_LEN(&client);
-#endif
-  
-  if((desc=socket(AF_UNIX,SOCK_STREAM,0)) == -1){
-    perror("socket");
-    return;
-  }
-  unlink("/tmp/mag_client");
-
-  if (bind(desc, (struct sockaddr*)&client, sizeof(client)) == -1)
-    {
-      perror("bind");
-      return;
-    }
-
-  if (connect(desc,(struct sockaddr*)&mag_server,sizeof(mag_server)) == -1)
-    {
-      perror("connect");
-      return;
-    }
-
-  length_msg = write(desc,buff,strlen(buff));
-  unlink("/tmp/mag_client");
-  return;
-}
-
-static int _festival_init (void)
-{
-  int fd;
-  struct sockaddr_in name;
-  int tries = 2;
-
-  name.sin_family = AF_INET;
-  name.sin_port = htons (1314);
-  name.sin_addr.s_addr = htonl(INADDR_ANY);
-  fd = socket (PF_INET, SOCK_STREAM, 0);
-
-  while (connect(fd, (struct sockaddr *) &name, sizeof (name)) < 0) {
-    if (!tries--) {
-      perror ("connect");
-      return -1;
-    }
-  }
-
-  _festival_write ("(audio_mode'async)", fd);
-  return fd;
-}
-
-static void _festival_say (const gchar *text)
-{
-  static int fd = 0;
-  gchar *quoted;
-  gchar *p;
-  gchar prefix [100];
-  const gchar *stretch;
-
-  fprintf (stderr, "saying %s\n", text);
-
-  if (!fd)
-    {
-      fd = _festival_init ();
-    }
-
-  quoted = g_malloc(100+strlen(text)*2);
-
-  stretch = g_strdup (g_getenv ("FESTIVAL_STRETCH"));
-  if (!stretch) stretch = "0.75";
-  sprintf (prefix, "(audio_mode'shutup)\n (Parameter.set 'Duration_Stretch %s)\n (SayText \"", stretch);
-  
-  strcpy(quoted, prefix);
-  p = quoted + strlen (prefix);
-  while (*text) {
-    if ( *text == '\\' || *text == '"' )
-      *p = '\\';
-    *p++ = *text++;
-  }
-  *p++ = '"';
-  *p++ = ')';
-  *p = 0;
-
-  _festival_write (quoted, fd);
-
-  g_free(quoted);
-}
-
-
-static void _send_to_festival (const gchar *role_name,
-  const gchar *name, const gchar *accel)
-{
-  gchar *string;
-  int len = (strlen (role_name)+1 + strlen (name)+2 + 4 + strlen (accel)+2);
-  int i, j;
-  gchar ch;
-  gchar *accel_name;
-  
-  string = (gchar *) g_malloc (len * sizeof (gchar));
-
-  i = 0;
-  if (say_role)
-    {
-      j = 0;
-      while (role_name[j])
-        {
-          ch = role_name[j++];
-          if (ch == '_') ch = ' ';
-          string[i++] = ch;
-        };
-      string[i++] = ' ';
-    }
-  j = 0;
-  while (name[j])
-    {
-      ch = name[j++];
-      if (ch == '_') ch = ' ';
-      string[i++] = ch;
-    };
-  if ((say_accel) && (strlen (accel) > 0))
-    {
-      accel_name = (gchar *)accel;
-      if (strncmp (accel, "<C", 2) == 0)
-        {
-          accel_name = strncpy (accel_name, " control ", 9);
-        }
-      else if (strncmp (accel, " control", 5))
-        {
-          string[i++] = ' ';
-          string[i++] = 'a';
-          string[i++] = 'l';
-          string[i++] = 't';
-          string[i++] = ' ';
-        }
-      j = 0;
-      while (accel_name[j])
-        {
-          ch = accel_name[j++];
-          if (ch == '_') ch = ' ';
-          string[i++] = ch;
-        };
-    }
-  string[i] = '\0';
-
-  _festival_say (string);
-  g_free (string);
-}
-
-static void _festival_write (const gchar *command_string, int fd)
-{
-  gssize n_bytes;
-
-  if (fd < 0) {
-    perror("socket");
-    return;
-  }
-  n_bytes = write(fd, command_string, strlen(command_string));
-  g_assert (n_bytes == strlen(command_string));
-}
-
-static void _speak_caret_event (AtkObject *aobject)
-{
-  gint dummy1, dummy2;
-  gint caret_offset = atk_text_get_caret_offset (ATK_TEXT (aobject));
-  gchar * text;
-
-  if (abs(caret_offset - last_caret_offset) > 1)
-    {
-      text = atk_text_get_text_at_offset (ATK_TEXT (aobject),
-                                              caret_offset,
-                                              ATK_TEXT_BOUNDARY_LINE_START,
-                                              &dummy1,
-                                              &dummy2);
-    }
-  else
-    {
-      text = atk_text_get_text_before_offset (ATK_TEXT (aobject),
-                                              caret_offset,
-                                              ATK_TEXT_BOUNDARY_CHAR,
-                                              &dummy1,
-                                              &dummy2);
-    }
-  _festival_say (text);
-  g_free (text);
-  last_caret_offset = caret_offset;
-}
-
-static void
-_greyout_tab (GtkWidget *page_child, gboolean is_sensitive)
-{
-  GtkWidget *tab;
-
-  tab = gtk_notebook_get_tab_label (notebook, page_child);
-  if (tab)
-      gtk_widget_set_sensitive (GTK_WIDGET (tab), is_sensitive);
-}
-
-static void
-_refresh_notebook (AtkObject *aobject)
-{
-  if (ATK_IS_OBJECT (aobject))
-  {
-    _greyout_tab (nbook_tabs[ACTION]->page, ATK_IS_ACTION(aobject));
-    _greyout_tab (nbook_tabs[COMPONENT]->page, ATK_IS_COMPONENT(aobject));
-    _greyout_tab (nbook_tabs[IMAGE]->page, ATK_IS_IMAGE(aobject));
-    _greyout_tab (nbook_tabs[SELECTION]->page, ATK_IS_SELECTION(aobject));
-    _greyout_tab (nbook_tabs[TABLE]->page, ATK_IS_TABLE(aobject));
-    _greyout_tab (nbook_tabs[TEXT]->page, ATK_IS_TEXT(aobject));
-    _greyout_tab (nbook_tabs[VALUE]->page, ATK_IS_VALUE(aobject));
-  }
-}
-
-static void _print_accessible (AtkObject *aobject)
-{
-  TabNumber top_tab;
-
-  if (_object_is_ours(aobject))
-    {
-      if (display_ascii)
-        g_print("\nFocus entered the ferret output window!\n");
-      return;
-    }
-
-  _refresh_notebook(aobject);
-
-  if (display_ascii)
-    g_print("\nFocus change\n");
-
-  /* Do not attach signal handlers if the user has asked not to */
-  if (!no_signals)
-    _update_handlers(aobject);
-  else
-    last_object = aobject; /* _update_handler normally does this */
-
-  top_tab = gtk_notebook_get_current_page (notebook) + OBJECT;
-  _update(top_tab, aobject);
-
-  if (use_magnifier)
-    {
-      gint x, y;
-      gint w=0, h=0;
-      
-      if (ATK_IS_TEXT (aobject))
-        {
-         gint x0, y0, w0, h0;
-         gint xN, yN, wN, hN;
-         gint len;
-         len = atk_text_get_character_count (ATK_TEXT (aobject));
-         atk_text_get_character_extents (ATK_TEXT (aobject), 0,
-                                         &x0, &y0, &w0, &h0,
-                                         ATK_XY_SCREEN);
-          if (len > 0)
-           {
-             atk_text_get_character_extents (ATK_TEXT (aobject), len-1,
-                                             &xN, &yN, &wN, &hN,
-                                             ATK_XY_SCREEN);
-             x = MIN (x0, xN);
-             y = MIN (y0, yN);
-             w = MAX (x0+w0, xN+wN) - x;
-             h = MAX (y0+h0, yN+hN) - y;
-           }
-          else
-           {
-             x = x0;
-             y = y0;
-           }
-        } 
-      else if (ATK_IS_COMPONENT (aobject))
-        {
-         atk_component_get_extents (ATK_COMPONENT(aobject),
-                                    &x, &y, &w, &h,
-                                    ATK_XY_SCREEN);
-        }
-      if (w > -1) _send_to_magnifier (x, y, w, h);
-    }
-}
-
-static gboolean
-_object_is_ours (AtkObject *aobject)
-{
-  /* determine whether this object is parented by our own accessible... */
-
-   AtkObject *toplevel = aobject;
-
-   while (atk_object_get_role(aobject) != ATK_ROLE_FRAME)
-     {
-       aobject = atk_object_get_parent (aobject);
-       if (aobject == NULL) break;
-       toplevel = aobject;
-     };
-
-  /*
-   * Some widgets do not have an ATK_ROLE_FRAME at the top,
-   * so ignore those.
-   */
-   if (aobject != NULL)
-     {
-       GtkWidget *widget;
-
-       widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (toplevel));
-       if (widget == mainWindow)
-           return TRUE;
-     }
-
-  return FALSE;
-}
-
-static gchar *
-ferret_get_name_from_container (AtkObject *aobject)
-{
-  gchar *s = NULL;
-  gint n = atk_object_get_n_accessible_children (aobject);
-  gint i = 0;
-  
-  while (!s && (i < n))
-    {
-      AtkObject *child;            
-      child = atk_object_ref_accessible_child (aobject, i);
-      if (ATK_IS_TEXT (child))
-        {
-               gint count = atk_text_get_character_count (ATK_TEXT (child));
-               s = atk_text_get_text (ATK_TEXT (child),
-                                      0,
-                                      count);
-        }
-      g_object_unref (child);
-      ++i;         
-    }
-  
-  if (!s)
-    {
-      s = g_strdup ("");
-    }
-  return s;    
-}
-
-static gint
-_print_object (AtkObject *aobject)
-{
-    GtkWidget *widget;
-    const gchar * parent_name = NULL;
-    const gchar * name = NULL;
-    const gchar * description = NULL;
-    const gchar * typename = NULL;
-    const gchar * parent_typename = NULL;
-    const gchar * role_name = NULL;
-    const gchar * accel_name = NULL;
-    const gchar * text = NULL;
-    AtkRole role;
-    AtkObject *parent = NULL;
-    static AtkObject *prev_aobject = NULL;
-    gint n_children = 0;
-    gint index_in_parent = -1;
-    gchar *output_str;
-    gint group_num;
-    TabNumber tab_n = OBJECT;
-
-    group_num = _print_groupname(tab_n, OBJECT_INTERFACE, "Object Interface");
-
-    name = atk_object_get_name (aobject);
-    typename = g_type_name (G_OBJECT_TYPE (aobject));
-    description = atk_object_get_description (aobject);
-    parent = atk_object_get_parent(aobject);
-    if (parent)
-      index_in_parent = atk_object_get_index_in_parent(aobject);
-    n_children = atk_object_get_n_accessible_children(aobject);
-    role = atk_object_get_role(aobject);
-    role_name = atk_role_get_name(role);
-
-    if (ATK_IS_ACTION (aobject))
-      {
-        accel_name = atk_action_get_keybinding (ATK_ACTION(aobject), 0);
-        if (!accel_name) accel_name = "";
-      }
-    else
-      {
-        accel_name = "";
-      }
-
-    widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (aobject));
-    if (widget)
-      {
-        _print_key_value(tab_n, group_num, "Widget name",
-          (gpointer)gtk_widget_get_name (widget),
-          VALUE_STRING);
-      }
-    else
-      {
-        _print_key_value(tab_n, group_num, "Widget name", "No Widget",
-          VALUE_STRING);
-      }
-
-    if (typename)
-      {
-        _print_key_value(tab_n, group_num, "Accessible Type",
-          (gpointer)typename, VALUE_STRING);
-      }
-    else
-      {
-        _print_key_value(tab_n, group_num, "Accessible Type", "NULL",
-          VALUE_STRING);
-      }
-
-    if (name)
-      {
-        _print_key_value(tab_n, group_num, "Accessible Name",
-          (gpointer)name, VALUE_STRING);
-      }
-    else
-      {
-        _print_key_value(tab_n, group_num, "Accessible Name", "(unknown)",
-          VALUE_STRING);
-      }
-    if (use_festival)
-      {
-        if (aobject != prev_aobject)
-          {
-           if (ATK_IS_TEXT (aobject) && !name)
-             {
-               text = 
-                 atk_text_get_text_at_offset (ATK_TEXT (aobject),
-                                              (gint) 0,
-                                              ATK_TEXT_BOUNDARY_SENTENCE_END,
-                                              (gint *) NULL,
-                                              (gint *) NULL);
-               fprintf (stderr, "first sentence: %s\n", text);
-               _send_to_festival (role_name, 
-                                  text, "");
-               if (!name) name = "no name";
-             }
-            else 
-             { 
-               text = "";
-               if (!name)
-                 {
-                   if (atk_object_get_role (aobject) == ATK_ROLE_TABLE_CELL)
-                     {
-                       gchar *cname = ferret_get_name_from_container (aobject);
-                       if (cname) name = g_strdup (cname);
-                     }
-                   else if (atk_object_get_role (aobject) == ATK_ROLE_CHECK_BOX)
-                     {
-                       name = g_strdup ("check box");
-                     }
-                   else
-                     {
-                       name = "no name";
-                     }
-                 }
-               _send_to_festival (role_name, name, accel_name);
-             }
-          }
-      }
-
-    if (parent)
-      {
-        parent_name = atk_object_get_name(parent);
-
-        parent_typename = g_type_name (G_OBJECT_TYPE (parent));
-
-        if (parent_typename)
-          {
-            _print_key_value(tab_n, group_num, "Parent Accessible Type",
-              (gpointer)parent_typename, VALUE_STRING);
-          }
-        else
-          {
-            _print_key_value(tab_n, group_num,
-              "Parent Accessible Type", "NULL", VALUE_STRING);
-          }
-
-        if (parent_name)
-          {
-            _print_key_value(tab_n, group_num, "Parent Accessible Name",
-              (gpointer)parent_name, VALUE_STRING);
-          }
-        else
-          {
-            _print_key_value(tab_n, group_num,
-              "Parent Accessible Name", "NULL", VALUE_STRING);
-          }
-
-        output_str = g_strdup_printf("%d", index_in_parent);
-        _print_key_value(tab_n, group_num, "Index in Parent",
-          (gpointer)output_str, VALUE_STRING);
-        g_free(output_str);
-      }
-    else
-      {
-        _print_key_value(tab_n, group_num, "Parent", "NULL", VALUE_STRING);
-      }
-
-    if (description)
-      {
-        _print_key_value(tab_n, group_num, "Accessible Description",
-          (gpointer)description, VALUE_STRING);
-      }
-    else
-      {
-        _print_key_value(tab_n, group_num,
-          "Accessible Description", "NULL", VALUE_STRING);
-      }
-
-    if (role_name)
-      {
-      _print_key_value(tab_n, group_num, "Accessible Role", (gpointer)role_name,
-        VALUE_STRING);
-      }
-    else
-      {
-      _print_key_value(tab_n, group_num, "Accessible Role", "NULL",
-        VALUE_STRING);
-      }
-
-    output_str = g_strdup_printf("%d", n_children);
-    _print_key_value(tab_n, group_num, "Number Children", (gpointer)output_str,
-       VALUE_STRING);
-    g_free(output_str);
-    prev_aobject = aobject;
-
-    return(group_num);
-}
-
-static gint
-_print_relation (AtkObject *aobject)
-{
-    AtkRelationSet* relation_set = atk_object_ref_relation_set (aobject);
-    gint n_relations =  atk_relation_set_get_n_relations (relation_set);
-    gint group_num;
-    TabNumber tab_n = OBJECT;
-
-    group_num = _print_groupname(tab_n, RELATION_INTERFACE,
-      "Relation Interface");
-
-    if (relation_set)
-      {
-        AtkRelation * relation;
-        const gchar * relation_name = NULL;
-        const gchar * relation_obj_name = NULL;
-        AtkRelationType relation_type;
-        AtkObject *relation_obj;
-        GPtrArray * relation_arry;
-        gchar *label_str;
-        gchar *output_str;
-        gint i, j;
-
-        output_str = g_strdup_printf("%d", n_relations);
-        _print_key_value(tab_n, group_num,
-          "Number of Relations", (gpointer)output_str, VALUE_STRING);
-        g_free(output_str);
-
-        for (i = 0; i < n_relations; i++)
-          {
-            relation = atk_relation_set_get_relation (relation_set, i);
-
-            relation_type = atk_relation_get_relation_type (relation);
-            relation_name = atk_relation_type_get_name (relation_type);
-
-            relation_arry = atk_relation_get_target(relation);
-
-            if (relation_name)
-              {
-                label_str = g_strdup_printf("Relation %d Name", i + 1);
-                _print_key_value(tab_n, group_num, label_str,
-                  (gpointer)relation_name, VALUE_STRING);
-                g_free(label_str);
-              }
-            else
-              {
-                label_str = g_strdup_printf("Relation %d Type", i + 1);
-                output_str = g_strdup_printf("%d", relation_type);
-                _print_key_value(tab_n, group_num, label_str,
-                  (gpointer)output_str, VALUE_STRING);
-                g_free(label_str);
-                g_free(output_str);
-              }
-
-            label_str = g_strdup_printf("Relation %d with", i + 1);
-            output_str = g_strdup_printf("%d AtkObjects", relation_arry->len);
-            _print_key_value(tab_n, group_num, label_str, (gpointer)output_str,
-              VALUE_STRING);
-            g_free(label_str);
-            g_free(output_str);
-
-            for (j=0; j < relation_arry->len; j++)
-              {
-                label_str = g_strdup_printf(
-                  "Relation %d,%d with AtkObject Name", i + 1, j + 1);
-                relation_obj = (AtkObject *)
-                   g_ptr_array_index(relation_arry, j);
-                relation_obj_name = atk_object_get_name(relation_obj);
-
-                _print_key_value(tab_n, group_num, label_str,
-                  (gpointer)relation_obj_name, VALUE_STRING);
-                g_free(label_str);
-              }
-          }
-
-        g_object_unref (relation_set);
-      }
-    return(group_num);
-}
-
-static gint
-_print_state (AtkObject *aobject)
-{
-    AtkStateSet *state_set = atk_object_ref_state_set(aobject);
-    gint group_num;
-    TabNumber tab_n = OBJECT;
-    static AtkStateType states_to_track[] =
-      {
-        ATK_STATE_ACTIVE,
-        ATK_STATE_CHECKED,
-        ATK_STATE_EXPANDED,
-        ATK_STATE_EXPANDABLE,
-        ATK_STATE_SELECTED,
-        ATK_STATE_SHOWING,
-        ATK_STATE_VISIBLE
-      };
-
-    group_num = _print_groupname(tab_n, STATE_INTERFACE,
-      "State Interface");
-
-    if (state_set)
-      {
-        gboolean boolean_value;
-        AtkStateType one_state;
-        const gchar *name;
-        gint i;
-
-        for (i=0; i < sizeof(states_to_track)/sizeof(AtkStateType); i++)
-          {
-            one_state = (AtkStateType) states_to_track[i];
-            name = atk_state_type_get_name (one_state);
-
-            if (name)
-              {
-                boolean_value =
-                  atk_state_set_contains_state (state_set, one_state);
-                _print_key_value(tab_n, group_num, name,
-                  (gpointer)(&boolean_value), VALUE_BOOLEAN);
-              }
-          }
-      }
-
-    g_object_unref (state_set);
-    return(group_num);
-}
-
-static gint
-_print_action (AtkAction *aobject)
-{
-    const gchar *action_name;
-    const gchar *action_description;
-    const gchar *action_keybinding;
-    gchar *label_str, *output_str;
-    gint group_num;
-    gint num_actions, j;
-    TabNumber tab_n = ACTION;
-    NameValue *nv;
-
-    group_num = _print_groupname(tab_n, ACTION_INTERFACE,
-      "Action Interface");
-
-    num_actions = atk_action_get_n_actions (aobject);
-    output_str = g_strdup_printf("%d", num_actions);
-    _print_key_value(tab_n, group_num, "Number of Actions",
-      (gpointer) output_str, VALUE_STRING);
-    g_free(output_str);
-
-    for (j = 0; j < num_actions; j++)
-      {
-        label_str = g_strdup_printf("Action %d Name", j + 1);
-        action_name = atk_action_get_name (aobject, j);
-        if (action_name)
-          {
-            nv = _print_key_value(tab_n, group_num, label_str,
-             (gpointer) action_name, VALUE_BUTTON);
-          }
-        else
-          {
-            nv = _print_key_value(tab_n, group_num, label_str, "NULL",
-              VALUE_BUTTON);
-          }
-
-        nv->atkobj = ATK_OBJECT(aobject);
-        nv->action_num = j;
-        nv->signal_id = g_signal_connect (nv->button,
-          "clicked", G_CALLBACK (_action_cb), nv);
-
-        g_free(label_str);
-
-        label_str = g_strdup_printf("Action %d Description", j + 1);
-        action_description = atk_action_get_description (aobject, j);
-        if (action_description)
-          {
-            _print_key_value(tab_n, group_num, label_str,
-              (gpointer)action_description, VALUE_STRING);
-          }
-        else
-          {
-            _print_key_value(tab_n, group_num, label_str, "NULL",
-              VALUE_STRING);
-          }
-        g_free(label_str);
-
-        label_str = g_strdup_printf("Action %d Keybinding", j + 1);
-        action_keybinding = atk_action_get_keybinding (aobject, j);
-        if (action_keybinding)
-          {
-            _print_key_value(tab_n, group_num, label_str,
-              (gpointer)action_keybinding, VALUE_STRING);
-          }
-        else
-          {
-            _print_key_value(tab_n, group_num, label_str, "NULL",
-              VALUE_STRING);
-          }
-        g_free(label_str);
-      }
-    return(group_num);
-}
-
-static gint
-_print_component (AtkComponent *aobject)
-{
-    gchar *output_str;
-    gint x = 0;
-    gint y = 0;
-    gint width = 0;
-    gint height = 0;
-    gint group_num;
-    TabNumber tab_n = COMPONENT;
-
-    group_num = _print_groupname(tab_n, COMPONENT_INTERFACE,
-      "Component Interface");
-
-    atk_component_get_extents (aobject,
-       &x, &y, &width, &height, ATK_XY_SCREEN);
-
-    output_str = g_strdup_printf("x: %d y: %d width: %d height %d",
-      x, y, width, height);
-    _print_key_value(tab_n, group_num, "Geometry", (gpointer)output_str,
-      VALUE_STRING);
-    g_free(output_str);
-    return(group_num);
-}
-
-static gint
-_print_image (AtkImage *aobject)
-{
-    const gchar *image_desc;
-    gchar *output_str;
-    gint x = 0;
-    gint y = 0;
-    gint height = 0;
-    gint width = 0;
-    gint group_num;
-    TabNumber tab_n = IMAGE;
-
-    group_num = _print_groupname(tab_n, IMAGE_INTERFACE,
-      "Image Interface");
-
-    image_desc = atk_image_get_image_description(aobject);
-    if (image_desc)
-      {
-        _print_key_value(tab_n, group_num, "Description", (gpointer)image_desc,
-          VALUE_STRING);
-      }
-    else
-      {
-        _print_key_value(tab_n, group_num, "Description", "NULL",
-          VALUE_STRING);
-      }
-
-    atk_image_get_image_position(aobject, &x, &y, ATK_XY_SCREEN);
-    atk_image_get_image_size(aobject, &height, &width);
-
-    output_str = g_strdup_printf("x: %d y: %d width: %d height %d",
-       x, y, width, height);
-    _print_key_value(tab_n, group_num, "Geometry", (gpointer)output_str,
-      VALUE_STRING);
-    g_free(output_str);
-    return(group_num);
-}
-
-static gint
-_print_selection (AtkSelection *aobject)
-{
-    AtkObject *object;
-    AtkRole role;
-    gchar *label_str, *output_str;
-    gint group_num;
-    gint n_selected, j, n_selectable;
-    TabNumber tab_n = SELECTION;
-
-    group_num = _print_groupname(tab_n, SELECTION_INTERFACE,
-      "Selection Interface");
-
-    n_selected = atk_selection_get_selection_count (aobject);
-    output_str = g_strdup_printf ("%d", n_selected);
-    _print_key_value (tab_n, group_num, "Number of Selected Children",
-                      (gpointer) output_str, VALUE_STRING);
-    g_free (output_str);
-    /*
-     * The number of selected items is the number of children except for
-     * a ComboBox where it is the number of items in the list.
-     */
-    object = ATK_OBJECT (aobject);
-    role = atk_object_get_role (object);
-    if (role == ATK_ROLE_COMBO_BOX)
-    {
-      object = atk_object_ref_accessible_child (object, 0);
-      g_return_val_if_fail (atk_object_get_role (object) == ATK_ROLE_LIST,
-                            group_num);
-      n_selectable = atk_object_get_n_accessible_children (object);
-      g_object_unref (G_OBJECT (object)); 
-    }
-    else
-    {
-      n_selectable = atk_object_get_n_accessible_children (object);
-    }
-    output_str = g_strdup_printf ("%d", n_selectable);
-    _print_key_value (tab_n, group_num, "Number of Selectable Children",
-                      (gpointer) output_str, VALUE_STRING);
-    g_free (output_str);
-
-    for (j = 0; j < n_selected; j++)
-    {
-      const gchar *selected_name;
-      AtkObject *selected_object;
-
-      selected_object = atk_selection_ref_selection (aobject, j);
-      selected_name = atk_object_get_name (selected_object);
-      if (selected_name == NULL)
-      {
-        selected_name = "No name";
-      }
-      label_str = g_strdup_printf ("Selected item: %d Name", j+1);
-      _print_key_value (tab_n, group_num, label_str,
-                        (gpointer) selected_name, VALUE_STRING);
-      g_free (label_str);
-      g_object_unref (G_OBJECT (selected_object));
-    }
-    return group_num;
-}
-
-static gint
-_print_table (AtkTable *aobject)
-{
-    gchar *label_str, *output_str;
-    const gchar *col_desc;
-    AtkObject *caption;
-    gint n_cols, n_rows;
-    gint i;
-    gint group_num;
-    TabNumber tab_n = TABLE;
-
-    group_num = _print_groupname(tab_n, TABLE_INTERFACE,
-      "Table Interface");
-
-    n_cols = atk_table_get_n_columns(aobject);
-    output_str = g_strdup_printf("%d", n_cols);
-    _print_key_value(tab_n, group_num, "Number Columns", (gpointer)output_str,
-      VALUE_STRING);
-    g_free(output_str);
-
-    n_rows = atk_table_get_n_rows(aobject);
-    output_str = g_strdup_printf("%d", n_rows);
-    _print_key_value(tab_n, group_num, "Number Rows", (gpointer)output_str,
-      VALUE_STRING);
-    g_free(output_str);
-
-    caption = atk_table_get_caption(aobject);
-    if (caption)
-      {
-        const gchar* caption_name;
-
-        caption_name = atk_object_get_name (caption);
-        if (caption_name)
-          {
-            _print_key_value(tab_n, group_num, "Caption Name", 
-                             (gpointer)caption_name, VALUE_STRING);
-          }
-      }
-
-    for (i=0; i < n_cols; i++)
-      {
-        label_str = g_strdup_printf("Column %d Description", i + 1);
-
-        col_desc = atk_table_get_column_description(aobject, i);
-        if (col_desc)
-          {
-            _print_key_value(tab_n, group_num, label_str, (gpointer)col_desc,
-              VALUE_STRING);
-          }
-        else
-          {
-            _print_key_value(tab_n, group_num, label_str, "NULL",
-              VALUE_STRING);
-          }
-
-        g_free(label_str);
-      }
-
-    return(group_num);
-}
-
-static gint
-_print_text (AtkText *aobject)
-{
-    gchar *output_str, *text_val, *text_val_escaped;
-    gint n_chars, caret_offset;
-    gint start_offset, end_offset;
-    gint group_num;
-    gint x, y, w, h;
-    TabNumber tab_n = TEXT;
-
-    group_num = _print_groupname(tab_n, TEXT_INTERFACE,
-      "Text Content");
-
-    n_chars = atk_text_get_character_count(aobject);
-
-    output_str = g_strdup_printf("%d", n_chars);
-    _print_key_value(tab_n, group_num, "Total Character Count",
-      (gpointer)output_str, VALUE_STRING);
-    g_free(output_str);
-
-   /*
-    * Pass through g_strescape so that non-ASCII chars are made
-    * print-able.
-    */
-    text_val = atk_text_get_text (aobject, 0, n_chars);
-    if (text_val)
-      {
-        text_val_escaped = g_strescape(text_val, NULL);
-        _print_key_value (tab_n, group_num, "Text", (gpointer)text_val_escaped,
-          VALUE_TEXT);
-        g_free (text_val);
-        g_free (text_val_escaped);
-      }
-    else
-      {
-        _print_key_value (tab_n, group_num, "Text", "NULL", VALUE_TEXT);
-      }
-
-    caret_offset = atk_text_get_caret_offset(aobject);
-    output_str = g_strdup_printf("%d", caret_offset);
-    _print_key_value(tab_n, group_num, "Caret Offset", (gpointer)output_str,
-      VALUE_STRING);
-    g_free(output_str);
-
-    if (caret_offset < 0)
-      return(group_num);
-
-    text_val = atk_text_get_text_at_offset (aobject, caret_offset,
-                                            ATK_TEXT_BOUNDARY_CHAR,
-                                            &start_offset, &end_offset);
-    if (text_val)
-      {
-        text_val_escaped = g_strescape(text_val, NULL);
-        _print_key_value(tab_n, group_num, "Current Character",
-          (gpointer)text_val_escaped, VALUE_STRING);
-        g_free (text_val);
-        g_free (text_val_escaped);
-      }
-    else
-      {
-        _print_key_value(tab_n, group_num, "Current Character", "none",
-          VALUE_STRING);
-      }
-
-    atk_text_get_character_extents (aobject, caret_offset,
-                                    &x, &y, &w, &h, ATK_XY_SCREEN);
-    output_str = g_strdup_printf ("(%d, %d) (%d, %d)", x, y, w, h);
-    if (output_str)
-      {
-        _print_key_value(tab_n, group_num, "Character Bounds (screen)",
-          (gpointer)output_str, VALUE_STRING);
-        g_free(output_str);
-      }
-
-    atk_text_get_character_extents (aobject, caret_offset,
-                                    &x, &y, &w, &h, ATK_XY_WINDOW);
-    output_str = g_strdup_printf ("(%d, %d) (%d, %d)", x, y, w, h);
-    if (output_str)
-      {
-        _print_key_value(tab_n, group_num, "Character Bounds (window)",
-          (gpointer)output_str, VALUE_STRING);
-        g_free(output_str);
-      }
-
-    text_val = atk_text_get_text_at_offset (aobject, caret_offset,
-                                            ATK_TEXT_BOUNDARY_WORD_START,
-                                            &start_offset, &end_offset);
-    if (text_val)
-      {
-        text_val_escaped = g_strescape(text_val, NULL);
-        _print_key_value(tab_n, group_num, "Current Word",
-          (gpointer)text_val_escaped, VALUE_STRING);
-        g_free (text_val);
-        g_free (text_val_escaped);
-      }
-    else
-      {
-        _print_key_value(tab_n, group_num, "Current Word", "none",
-          VALUE_STRING);
-      }
-
-    text_val = atk_text_get_text_at_offset (aobject, caret_offset,
-                                            ATK_TEXT_BOUNDARY_LINE_START,
-                                            &start_offset, &end_offset);
-    if (text_val)
-      {
-        text_val_escaped = g_strescape(text_val, NULL);
-        _print_key_value(tab_n, group_num, "Current Line",
-          (gpointer)text_val_escaped, VALUE_STRING);
-        g_free (text_val);
-        g_free (text_val_escaped);
-      }
-    else
-      {
-        _print_key_value(tab_n, group_num, "Current Line", "none",
-          VALUE_STRING);
-      }
-
-    text_val = atk_text_get_text_at_offset (aobject, caret_offset,
-                                              ATK_TEXT_BOUNDARY_SENTENCE_START,
-                                              &start_offset, &end_offset);
-    if (text_val)
-      {
-        text_val_escaped = g_strescape(text_val, NULL);
-        _print_key_value(tab_n, group_num, "Current Sentence",
-          (gpointer)text_val_escaped, VALUE_STRING);
-        g_free (text_val);
-        g_free (text_val_escaped);
-      }
-    else
-      {
-        _print_key_value(tab_n, group_num, "Current Line", "none",
-          VALUE_STRING);
-      }
-    return(group_num);
-}
-
-static gint
-_print_text_attributes (AtkText *aobject)
-{
-    AtkAttributeSet *attribute_set;
-    AtkAttribute *attribute;
-    gchar *output_str, *label_str;
-    gint start_offset, end_offset, caret_offset;
-    gint attribute_set_len, attribute_offset, i;
-    gint group_num;
-    TabNumber tab_n = TEXT;
-
-    group_num = _print_groupname (tab_n, TEXT_ATTRIBUTES,
-      "Text Attributes at Caret");
-
-    caret_offset = atk_text_get_caret_offset(aobject);
-    attribute_offset = caret_offset;
-
-    start_offset = 0;
-    end_offset = 0;
-
-    attribute_set = atk_text_get_run_attributes(aobject, attribute_offset,
-          &start_offset, &end_offset);
-
-    label_str = g_strdup_printf("Attribute run start");
-
-    output_str = g_strdup_printf("%d", start_offset);
-    _print_key_value(tab_n, group_num, label_str, (gpointer)output_str,
-                     VALUE_STRING);
-    g_free(label_str);
-    g_free(output_str);
-
-    label_str = g_strdup_printf("Attribute run end");
-    output_str = g_strdup_printf("%d", end_offset);
-    _print_key_value(tab_n, group_num, label_str, (gpointer)output_str,
-                     VALUE_STRING);
-    g_free(label_str);
-    g_free(output_str);
-
-    if (attribute_set == NULL)
-      attribute_set_len = 0;
-    else
-      attribute_set_len = g_slist_length(attribute_set);
-
-    label_str = g_strdup_printf("Number of Attributes");
-    output_str = g_strdup_printf("%d", attribute_set_len);
-    _print_key_value(tab_n, group_num, label_str, (gpointer)output_str,
-                     VALUE_STRING);
-    g_free(label_str);
-    g_free(output_str);
-
-    for (i=0; i < attribute_set_len; i++)
-      {
-        attribute = ((AtkAttribute *) g_slist_nth(attribute_set, i)->data);
-
-        _print_key_value(tab_n, group_num, attribute->name,
-                         (gpointer)attribute->value, VALUE_STRING);
-      }
-    if (attribute_set != NULL)
-      atk_attribute_set_free(attribute_set);
-
-
-    return(group_num);
-}
-
-static gint
-_print_value (AtkValue *aobject)
-{
-    GValue *value_back, val;
-    gint group_num;
-    TabNumber tab_n = VALUE;
-
-    value_back = &val;
-
-    group_num = _print_groupname(tab_n, VALUE_INTERFACE,
-      "Value Interface");
-
-    atk_value_get_current_value(aobject, value_back);
-    _print_value_type(group_num, "Value", value_back);
-    atk_value_get_minimum_value(aobject, value_back);
-    _print_value_type(group_num, "Minimum Value", value_back);
-    atk_value_get_maximum_value(aobject, value_back);
-    _print_value_type(group_num, "Maximum Value", value_back);
-    return(group_num);
-}
-
-static void
-_print_value_type(gint group_num, gchar *type, GValue *value)
-{
-    gchar *label_str = NULL;
-    gchar *output_str = NULL;
-    TabNumber tab_n = VALUE;
-
-    if (G_VALUE_HOLDS_DOUBLE (value))
-      {
-        label_str = g_strdup_printf("%s - Double", type);
-        output_str = g_strdup_printf("%f",
-          g_value_get_double (value));
-        _print_key_value(tab_n, group_num, label_str, (gpointer)output_str,
-          VALUE_STRING);
-      }
-    else if (G_VALUE_HOLDS_INT (value))
-      {
-        label_str = g_strdup_printf("%s - Integer", type);
-        output_str = g_strdup_printf("%d",
-          g_value_get_int (value));
-        _print_key_value(tab_n, group_num, label_str, (gpointer)output_str,
-          VALUE_STRING);
-      }
-    else
-      {
-        _print_key_value(tab_n, group_num, "Value", "Unknown Type",
-          VALUE_STRING);
-      }
-
-    if (label_str)
-        g_free(label_str);
-    if (output_str)
-        g_free(output_str);
-}
-
-static void
-_create_event_watcher (void)
-{
-    focus_tracker_id = atk_add_focus_tracker (_print_accessible);
-
-    if (track_mouse)
-      {
-        mouse_watcher_focus_id =
-          atk_add_global_event_listener(_mouse_watcher,
-          "Gtk:GtkWidget:enter_notify_event");
-        mouse_watcher_button_id =
-          atk_add_global_event_listener(_button_watcher,
-          "Gtk:GtkWidget:button_press_event");
-      }
-}
-
-static gboolean
-_mouse_watcher (GSignalInvocationHint *ihint,
-               guint                  n_param_values,
-               const GValue          *param_values,
-               gpointer               data)
-{
-    GObject *object;
-    GtkWidget *widget;
-
-    object = g_value_get_object (param_values + 0);
-
-    if (GTK_IS_MENU(object)) return TRUE;
-
-    g_assert (GTK_IS_WIDGET(object));
-
-    widget = GTK_WIDGET (object);
-    if (GTK_IS_WINDOW (widget))
-    {
-        GtkWidget *focus_widget = gtk_window_get_focus (GTK_WINDOW (widget));
-        if (focus_widget != NULL)
-            widget = focus_widget;
-    }
-
-    _print_accessible (gtk_widget_get_accessible (widget));
-    return TRUE;
-}
-
-static gboolean
-_button_watcher (GSignalInvocationHint *ihint,
-                 guint                  n_param_values,
-                 const GValue          *param_values,
-                 gpointer               data)
-{
-    GObject *object;
-    GtkWidget *widget;
-
-    object = g_value_get_object (param_values + 0);
-
-    widget = GTK_WIDGET (object);
-    if (GTK_IS_CONTAINER (widget))
-    {
-      if (G_VALUE_HOLDS_BOXED (param_values + 1))
-        {
-          GdkEventButton *event;
-          gpointer gp;
-          AtkObject *aobject;
-          AtkObject *child;
-          gint  aobject_x, aobject_y;
-          gint x, y;
-
-          gp = g_value_get_boxed (param_values + 1);
-          event = (GdkEventButton *) gp;
-          aobject = gtk_widget_get_accessible (widget);
-          aobject_x = aobject_y = 0;
-          atk_component_get_position (ATK_COMPONENT (aobject), 
-                                      &aobject_x, &aobject_y, 
-                                      ATK_XY_WINDOW);
-          x = aobject_x + (gint) event->x; 
-          y = aobject_y + (gint) event->y; 
-          child = atk_component_ref_accessible_at_point (ATK_COMPONENT (aobject),
-                                                         x,
-                                                         y,
-                                                         ATK_XY_WINDOW);
-          if (child)
-            {
-              _print_accessible (child);
-              g_object_unref (child);
-            }
-          else
-            {
-              if (!GTK_IS_MENU_ITEM (widget))
-                {
-                  g_print ("No child at position %d %d for %s\n", 
-                           x,
-                           y,
-                           g_type_name (G_OBJECT_TYPE (widget)));
-                }
-            }
-        }
-    }
-
-    return TRUE;
-}
-
-static void _add_notebook_page (GtkNotebook *nbook,
-                                GtkWidget *content_widget,
-                                GtkWidget **new_page,
-                                const gchar *label_text)
-{
-  GtkWidget *label;
-
-  if (content_widget != NULL)
-    {
-      *new_page = content_widget;
-    }
-  else
-    {
-      *new_page = gtk_paned_new (GTK_ORIENTATION_VERTICAL);
-    }
-
-  label = gtk_label_new ("");
-  gtk_label_set_markup_with_mnemonic (GTK_LABEL (label), label_text);
-  gtk_notebook_append_page (notebook, *new_page, label);
-  gtk_widget_show(*new_page);
-}
-
-static void
-_create_notebook (void)
-{
-  TabInfo *tab;
-  notebook = GTK_NOTEBOOK (gtk_notebook_new());
-
-  tab = nbook_tabs[OBJECT];
-  _add_notebook_page (notebook, tab->main_box, &tab->page, "<b>_Object</b>");
-
-  tab = nbook_tabs[ACTION];
-  _add_notebook_page (notebook, tab->main_box, &tab->page, "<b>_Action</b>");
-
-  tab = nbook_tabs[COMPONENT];
-  _add_notebook_page (notebook, tab->main_box, &tab->page, "<b>_Component</b>");
-
-  tab = nbook_tabs[IMAGE];
-  _add_notebook_page (notebook, tab->main_box, &tab->page, "<b>_Image</b>");
-
-  tab = nbook_tabs[SELECTION];
-  _add_notebook_page (notebook, tab->main_box, &tab->page, "<b>_Selection</b>");
-
-  tab = nbook_tabs[TABLE];
-  _add_notebook_page (notebook, tab->main_box, &tab->page, "<b>_Table</b>");
-
-  tab = nbook_tabs[TEXT];
-  _add_notebook_page (notebook, tab->main_box, &tab->page, "<b>Te_xt</b>");
-
-  tab = nbook_tabs[VALUE];
-  _add_notebook_page (notebook, tab->main_box, &tab->page, "<b>_Value</b>");
-
-  g_signal_connect (notebook,
-                    "switch-page",
-                    G_CALLBACK (_update_current_page),
-                    NULL);
-}
-
-static void
-_init_data(void)
-{
-  TabInfo *the_tab;
-
-  the_tab = g_new0(TabInfo, 1);
-  the_tab->page = NULL;
-  the_tab->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20);
-  the_tab->name = "Object";
-  nbook_tabs[OBJECT] = the_tab;
-
-  the_tab = g_new0(TabInfo, 1);
-  the_tab->page = NULL;
-  the_tab->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20);
-  the_tab->name = "Action";
-  nbook_tabs[ACTION] = the_tab;
-
-  the_tab = g_new0(TabInfo, 1);
-  the_tab->page = NULL;
-  the_tab->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20);
-  the_tab->name = "Component";
-  nbook_tabs[COMPONENT] = the_tab;
-
-  the_tab = g_new0(TabInfo, 1);
-  the_tab->page = NULL;
-  the_tab->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20);
-  the_tab->name = "Image";
-  nbook_tabs[IMAGE] = the_tab;
-
-  the_tab = g_new0(TabInfo, 1);
-  the_tab->page = NULL;
-  the_tab->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20);
-  the_tab->name = "Selection";
-  nbook_tabs[SELECTION] = the_tab;
-
-  the_tab = g_new0(TabInfo, 1);
-  the_tab->page = NULL;
-  the_tab->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20);
-  the_tab->name = "Table";
-  nbook_tabs[TABLE] = the_tab;
-
-  the_tab = g_new0(TabInfo, 1);
-  the_tab->page = NULL;
-  the_tab->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20);
-  the_tab->name = "Text";
-  nbook_tabs[TEXT] = the_tab;
-
-  the_tab = g_new0(TabInfo, 1);
-  the_tab->page = NULL;
-  the_tab->main_box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 20);
-  the_tab->name = "Value";
-  nbook_tabs[VALUE] = the_tab;
-}
-
-static void
-_create_window (void)
-{
-    static GtkWidget *window = NULL;
-
-    if (!window)
-    {
-        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-        gtk_widget_set_name (window, "Ferret Window");
-
-        g_signal_connect (window, "destroy",
-                          G_CALLBACK (gtk_widget_destroyed),
-                          &window);
-
-        gtk_window_set_title (GTK_WINDOW (window), "GTK+ Ferret Output");
-        gtk_window_set_default_size (GTK_WINDOW (window), 333, 550);
-        gtk_container_set_border_width (GTK_CONTAINER (window), 0);
-
-        vbox1 = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-        gtk_container_add (GTK_CONTAINER (window), vbox1);
-        gtk_widget_show (vbox1);
-
-        menubar = gtk_menu_bar_new ();
-        gtk_box_pack_start (GTK_BOX (vbox1), menubar, FALSE, TRUE, 0);
-        gtk_widget_show (menubar);
-        menutop = gtk_menu_item_new_with_label("Menu");
-        gtk_menu_shell_append (GTK_MENU_SHELL (menubar), menutop);
-        gtk_widget_show (menutop);
-        menu = gtk_menu_new();
-        gtk_menu_item_set_submenu (GTK_MENU_ITEM (menutop), menu);
-        gtk_widget_show (menu);
-
-        _add_menu(&menu, &menuitem_trackmouse, "Track Mouse", track_mouse,
-           G_CALLBACK(_toggle_trackmouse));
-        _add_menu(&menu, &menuitem_trackfocus, "Track Focus", track_focus,
-           G_CALLBACK(_toggle_trackfocus));
-        _add_menu(&menu, &menuitem_magnifier, "Magnifier", use_magnifier,
-           G_CALLBACK(_toggle_magnifier));
-        _add_menu(&menu, &menuitem_festival, "Festival", use_festival,
-           G_CALLBACK(_toggle_festival));
-        _add_menu(&menu, &menuitem_festival_terse, "Festival Terse",
-          (!say_role && !say_accel),
-          G_CALLBACK(_toggle_festival_terse));
-        _add_menu(&menu, &menuitem_terminal, "Terminal Output", display_ascii,
-           G_CALLBACK(_toggle_terminal));
-        _add_menu(&menu, &menuitem_no_signals, "No ATK Signals", no_signals,
-           G_CALLBACK(_toggle_no_signals));
-
-        _create_notebook ();
-        gtk_container_add (GTK_CONTAINER (vbox1), GTK_WIDGET (notebook));
-        gtk_widget_show (GTK_WIDGET (notebook));
-    }
-    if (!gtk_widget_get_visible (window))
-        gtk_widget_show (window);
-
-    mainWindow = GTK_WIDGET (window);
-}
-
-static void
-_add_menu(GtkWidget ** menu, GtkWidget ** menuitem, gchar * name,
-  gboolean init_value, GCallback func)
-{
-    *menuitem = gtk_check_menu_item_new_with_label(name);
-    gtk_check_menu_item_set_active(
-      GTK_CHECK_MENU_ITEM(*menuitem), init_value);
-    gtk_menu_shell_append (GTK_MENU_SHELL (*menu), *menuitem);
-    gtk_widget_show(*menuitem);
-    g_signal_connect(*menuitem, "toggled", func, NULL);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-    if (g_getenv ("FERRET_ASCII"))
-       display_ascii = TRUE;
-
-    if (g_getenv ("FERRET_NOSIGNALS"))
-       no_signals = TRUE;
-
-    if (display_ascii)
-       g_print("GTK ferret Module loaded\n");
-
-    if (g_getenv("FERRET_MAGNIFIER"))
-        use_magnifier = TRUE;
-
-    if (g_getenv ("FERRET_FESTIVAL"))
-        use_festival = TRUE;
-
-    if (g_getenv ("FERRET_MOUSETRACK"))
-        track_mouse = TRUE;
-
-    if (g_getenv ("FERRET_TERSE"))
-      {
-        say_role = FALSE;
-        say_accel = FALSE;
-      }
-
-    _init_data();
-
-    _create_window();
-
-    _create_event_watcher();
-
-    return 0;
-}
-
-static void
-_clear_tab(TabNumber tab_n)
-{
-    GList *group_list, *nv_list;
-    TabInfo *tab;
-    GroupInfo *group;
-    NameValue *nv;
-
-    tab = nbook_tabs[tab_n];
-
-    for (group_list = tab->groups; group_list; group_list = group_list->next)
-      {
-        group = (GroupInfo *) group_list->data;
-
-        if (group->is_scrolled)
-          gtk_widget_hide(GTK_WIDGET(group->scroll_outer_frame));
-
-        gtk_widget_hide(GTK_WIDGET(group->frame));
-        gtk_widget_hide(GTK_WIDGET(group->group_vbox));
-
-        for (nv_list = group->name_value; nv_list; nv_list = nv_list->next)
-          {
-            nv = (NameValue *) nv_list->data;
-            nv->active = FALSE;
-            gtk_widget_hide(GTK_WIDGET(nv->column1));
-            gtk_widget_hide(GTK_WIDGET(nv->column2));
-            gtk_widget_hide(GTK_WIDGET(nv->label));
-
-            switch (nv->type)
-              {
-              case VALUE_STRING:
-                gtk_widget_hide(GTK_WIDGET(nv->string));
-                break;
-              case VALUE_BOOLEAN:
-                gtk_widget_hide(GTK_WIDGET(nv->boolean));
-                break;
-              case VALUE_TEXT:
-                gtk_widget_hide(GTK_WIDGET(nv->text));
-                break;
-              case VALUE_BUTTON:
-                gtk_widget_hide(GTK_WIDGET(nv->button));
-                break;
-              }
-            gtk_widget_hide(GTK_WIDGET(nv->hbox));
-
-            /* Disconnect signal handler if any */
-            if (nv->signal_id != -1)
-              g_signal_handler_disconnect(nv->button, nv->signal_id);
-
-            nv->signal_id = -1;
-          }
-      }
-}
-
-static gint
-_print_groupname(TabNumber tab_n, GroupId group_id,
-  const char *groupname)
-{
-  TabInfo *tab;
-  GroupInfo *the_group;
-  gint rc = -1;
-
-  if (display_ascii)
-      g_print("\n<%s>\n", groupname);
-
-  tab = nbook_tabs[tab_n];
-  the_group = _get_group(tab, group_id, groupname);
-  rc = g_list_index(tab->groups, the_group);
-  return rc;
-}
-
-static GroupInfo*
-_get_group(TabInfo *tab, GroupId group_id, const gchar *groupname)
-{
-    GroupInfo *group = NULL;
-    gboolean found = FALSE;
-    GList *group_list;
-
-    for (group_list = tab->groups; group_list; group_list = group_list->next)
-      {
-        group = (GroupInfo *) group_list->data;
-        if (group_id == group->group_id)
-          {
-            found = TRUE;
-            break;
-          }
-      }
-
-   if (!found)
-     {
-       /* build a new one */
-       group = (GroupInfo *)g_new0(GroupInfo, 1);
-       group->group_id = group_id;
-       _get_group_scrolled(group);
-
-       if (group->is_scrolled)
-         {
-           group->frame = gtk_scrolled_window_new (NULL, NULL);
-           gtk_widget_set_size_request (GTK_WIDGET (group->frame), -2,
-             group->default_height);
-           group->scroll_outer_frame = GTK_FRAME(gtk_frame_new(groupname));
-           gtk_container_add(GTK_CONTAINER(group->scroll_outer_frame),
-             group->frame);
-         }
-       else
-         {
-           group->frame = gtk_frame_new(groupname);
-         }
-
-       gtk_container_set_border_width(GTK_CONTAINER(group->frame), 10);
-
-       group->name = g_strdup(groupname);
-       group->group_vbox = GTK_BOX(gtk_box_new (GTK_ORIENTATION_VERTICAL, 10));
-
-       if (group->is_scrolled)
-         {
-           gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (group->frame),
-              GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-           gtk_scrolled_window_add_with_viewport(
-             GTK_SCROLLED_WINDOW(group->frame),
-             GTK_WIDGET(group->group_vbox));
-         }
-       else
-         {
-           gtk_container_add(GTK_CONTAINER(group->frame),
-             GTK_WIDGET(group->group_vbox));
-         }
-
-       tab->groups = g_list_append (tab->groups, group);
-
-       if (group->is_scrolled)
-         {
-           gtk_box_pack_start (GTK_BOX (tab->main_box),
-                               GTK_WIDGET (group->scroll_outer_frame),
-                               TRUE, TRUE, 0);
-         }
-       else
-         {
-           gtk_box_pack_start (GTK_BOX (tab->main_box),
-                               GTK_WIDGET (group->frame),
-                               TRUE, TRUE, 0);
-         }
-     }
-
-   return group;
-}
-
-void
-_get_group_scrolled(GroupInfo *group)
-{
-   if (group->group_id == OBJECT_INTERFACE)
-     {
-       group->is_scrolled = FALSE;
-     }
-   else if (group->group_id == RELATION_INTERFACE)
-     {
-       group->is_scrolled = TRUE;
-       group->default_height = 50;
-     }
-   else if (group->group_id == STATE_INTERFACE)
-     {
-       group->is_scrolled = TRUE;
-       group->default_height = 100;
-     }
-   else if (group->group_id == ACTION_INTERFACE)
-     {
-       group->is_scrolled = TRUE;
-       group->default_height = 200;
-     }
-   else if (group->group_id == TEXT_ATTRIBUTES)
-     {
-       group->is_scrolled = TRUE;
-       group->default_height = 70;
-     }
-   else
-     {
-       group->is_scrolled = FALSE;
-     }
-}
-
-NameValue *
-_get_name_value(GroupInfo *group, const gchar *label,
-  gpointer value_ptr, ValueType type)
-{
-    NameValue *name_value = NULL;
-    GList *nv_list;
-    GValue *value;
-    gboolean found = FALSE;
-    static char *empty_string = "";
-
-    if (!label)
-      {
-        label = empty_string;
-      }
-
-    for (nv_list = group->name_value; nv_list; nv_list = nv_list->next)
-      {
-        name_value = (NameValue *) nv_list->data;
-        if (!name_value->active)
-          {
-            found = TRUE;
-            break;
-          }
-      }
-
-    if (!found)
-      {
-        name_value = (NameValue *)g_new0(NameValue, 1);
-        name_value->column1 = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10));
-        name_value->column2 = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 10));
-        name_value->hbox = GTK_BOX(gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5));
-        name_value->label = GTK_LABEL(gtk_label_new(label));
-        name_value->string = gtk_label_new (NULL);
-        name_value->boolean = gtk_check_button_new ();
-        gtk_entry_buffer_set_max_length (gtk_entry_get_buffer (GTK_ENTRY (name_value->text)), 1000);
-        name_value->button = GTK_BUTTON(gtk_button_new ());
-
-        gtk_box_pack_end(GTK_BOX(name_value->column1),
-          GTK_WIDGET(name_value->label), FALSE, FALSE, 10);
-
-        switch (type)
-          {
-          case VALUE_STRING:
-            gtk_label_set_text(GTK_LABEL(name_value->string),
-              (gchar *) value_ptr);
-            gtk_box_pack_start(GTK_BOX(name_value->column2),
-              GTK_WIDGET(name_value->string), FALSE, FALSE, 10);
-            break;
-          case VALUE_BOOLEAN:
-            gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(name_value->boolean),
-               *((gboolean *)value_ptr));
-            gtk_widget_set_sensitive(name_value->boolean, FALSE);
-            gtk_box_pack_start(GTK_BOX(name_value->column2),
-              GTK_WIDGET(name_value->boolean), FALSE, FALSE, 10);
-            break;
-          case VALUE_TEXT:
-            gtk_entry_set_text (GTK_ENTRY (name_value->text),
-              (gchar *)value_ptr);
-            gtk_box_pack_start(GTK_BOX(name_value->column2),
-              GTK_WIDGET(name_value->text), FALSE, FALSE, 10);
-          case VALUE_BUTTON:
-            value = &(name_value->button_gval);
-            memset (value, 0, sizeof (GValue));
-            g_value_init (value, G_TYPE_STRING);
-            g_value_set_string (value, (gchar *)value_ptr);
-            g_object_set_property(G_OBJECT(name_value->button),
-              "label", value);
-            gtk_box_pack_start(GTK_BOX(name_value->column2),
-              GTK_WIDGET(name_value->button), FALSE, FALSE, 10);
-            break;
-          }
-
-        gtk_box_pack_start (GTK_BOX (name_value->hbox),
-                            GTK_WIDGET (name_value->column1),
-                            TRUE, TRUE, 0);
-        gtk_box_pack_start (GTK_BOX (name_value->hbox),
-                            GTK_WIDGET (name_value->column2),
-                            TRUE, TRUE, 0);
-        gtk_container_add(GTK_CONTAINER(group->group_vbox),
-          GTK_WIDGET(name_value->hbox));
-        group->name_value = g_list_append (group->name_value, name_value);
-      }
-    else
-      {
-        gtk_label_set_text(GTK_LABEL(name_value->label), label);
-        switch (type)
-          {
-          case VALUE_STRING:
-            gtk_label_set_text(GTK_LABEL(name_value->string),
-              (gchar *) value_ptr);
-            break;
-          case VALUE_BOOLEAN:
-            gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(name_value->boolean),
-               *((gboolean *)value_ptr));
-            gtk_widget_set_sensitive(name_value->boolean, FALSE);
-            break;
-          case VALUE_TEXT:
-            gtk_entry_set_text (GTK_ENTRY (name_value->text),
-              (gchar *) value_ptr);
-            break;
-          case VALUE_BUTTON:
-            value = &(name_value->button_gval);
-            memset (value, 0, sizeof (GValue));
-            g_value_init (value, G_TYPE_STRING);
-            g_value_set_string (value, (gchar *)value_ptr);
-            g_object_set_property(G_OBJECT(name_value->button),
-              "label", value);
-            break;
-          }
-      }
-
-    name_value->active = TRUE;
-    name_value->type = type;
-    name_value->signal_id = -1;
-
-    gtk_widget_show(GTK_WIDGET(name_value->label));
-
-    switch (type)
-      {
-      case VALUE_STRING:
-        gtk_widget_show(GTK_WIDGET(name_value->string));
-        break;
-      case VALUE_BOOLEAN:
-        gtk_widget_show(GTK_WIDGET(name_value->boolean));
-        break;
-      case VALUE_TEXT:
-        gtk_widget_show(GTK_WIDGET(name_value->text));
-        break;
-      case VALUE_BUTTON:
-        gtk_widget_show(GTK_WIDGET(name_value->button));
-        break;
-      }
-
-    gtk_widget_show(GTK_WIDGET(name_value->column1));
-    gtk_widget_show(GTK_WIDGET(name_value->column2));
-    gtk_widget_show(GTK_WIDGET(name_value->hbox));
-    gtk_widget_show(GTK_WIDGET(group->group_vbox));
-
-    return name_value;
-}
-
-static NameValue *
-_print_key_value(TabNumber tab_n, gint group_number,
-   const char *label, gpointer value, ValueType type)
-{
-  TabInfo *tab;
-  GroupInfo *the_group;
-
-  if (display_ascii)
-    {
-      if (type == VALUE_BOOLEAN)
-        {
-          if (*((gboolean *)value))
-              g_print("\t%-30s\tTRUE\n", label);
-          else
-              g_print("\t%-30s\tFALSE\n", label);
-        }
-      else
-        {
-          g_print("\t%-30s\t%s\n", label, 
-                  value ? (gchar *)value : "NULL");
-        }
-    }
-
-  tab = nbook_tabs[tab_n];
-  the_group = (GroupInfo *)g_list_nth_data(tab->groups, group_number);
-  return _get_name_value(the_group, label, (gpointer)value, type);
-}
-
-static void
-_finished_group(TabNumber tab_no, gint group_number)
-{
-    TabInfo *tab;
-    GroupInfo *the_group;
-
-    tab = nbook_tabs[tab_no];
-
-    the_group = (GroupInfo *)g_list_nth_data(tab->groups, group_number);
-
-    if (the_group->is_scrolled)
-      gtk_widget_show(GTK_WIDGET(the_group->scroll_outer_frame));
-
-    gtk_widget_show(GTK_WIDGET(the_group->frame));
-    gtk_widget_show(GTK_WIDGET(the_group->group_vbox));
-    gtk_widget_show(GTK_WIDGET(tab->main_box));
-}
-
-/* Signal handlers */
-
-static gulong child_added_id = 0;
-static gulong child_removed_id = 0;
-static gulong state_change_id = 0;
-
-static gulong text_caret_handler_id = 0;
-static gulong text_inserted_id = 0;
-static gulong text_deleted_id = 0;
-
-static gulong table_row_inserted_id = 0;
-static gulong table_column_inserted_id = 0;
-static gulong table_row_deleted_id = 0;
-static gulong table_column_deleted_id = 0;
-static gulong table_row_reordered_id = 0;
-static gulong table_column_reordered_id = 0;
-
-static gulong property_id = 0;
-
-static void
-_update_handlers(AtkObject *obj)
-{
-    /* Remove signal handlers from object that had focus before */
-
-    if (last_object != NULL && G_TYPE_CHECK_INSTANCE(last_object))
-      {
-        if (child_added_id != 0)
-           g_signal_handler_disconnect(last_object, child_added_id);
-        if (child_removed_id != 0)
-           g_signal_handler_disconnect(last_object, child_removed_id);
-        if (state_change_id != 0)
-           g_signal_handler_disconnect(last_object, state_change_id);
-
-        if (text_caret_handler_id != 0)
-           g_signal_handler_disconnect(last_object, text_caret_handler_id);
-        if (text_inserted_id != 0)
-           g_signal_handler_disconnect(last_object, text_inserted_id);
-        if (text_deleted_id != 0)
-           g_signal_handler_disconnect(last_object, text_deleted_id);
-
-        if (table_row_inserted_id != 0)
-           g_signal_handler_disconnect(last_object, table_row_inserted_id);
-        if (table_column_inserted_id != 0)
-           g_signal_handler_disconnect(last_object, table_column_inserted_id);
-        if (table_row_deleted_id != 0)
-           g_signal_handler_disconnect(last_object, table_row_deleted_id);
-        if (table_column_deleted_id != 0)
-           g_signal_handler_disconnect(last_object, table_column_deleted_id);
-        if (table_row_reordered_id != 0)
-           g_signal_handler_disconnect(last_object, table_row_reordered_id);
-        if (table_column_reordered_id != 0)
-           g_signal_handler_disconnect(last_object, table_column_reordered_id);
-        if (property_id != 0)
-           g_signal_handler_disconnect(last_object, property_id);
-
-        g_object_unref(last_object);
-      }
-
-    last_object = NULL;
-
-    child_added_id = 0;
-    child_removed_id = 0;
-    text_caret_handler_id = 0;
-    text_inserted_id = 0;
-    text_deleted_id = 0;
-    table_row_inserted_id = 0;
-    table_column_inserted_id = 0;
-    table_row_deleted_id = 0;
-    table_column_deleted_id = 0;
-    table_row_reordered_id = 0;
-    table_column_reordered_id = 0;
-    property_id = 0;
-
-    if (!G_TYPE_CHECK_INSTANCE(obj))
-        return;
-
-    g_object_ref(obj);
-    last_object = obj;
-
-    /* Add signal handlers to object that now has focus. */
-
-    if (ATK_IS_OBJECT(obj))
-      {
-         child_added_id = g_signal_connect_closure (obj,
-                "children_changed::add",
-                g_cclosure_new (G_CALLBACK (_notify_object_child_added),
-                NULL, NULL), FALSE);
-
-         child_removed_id = g_signal_connect_closure (obj,
-                "children_changed::remove",
-                g_cclosure_new (G_CALLBACK (_notify_object_child_removed),
-                NULL, NULL), FALSE);
-
-         state_change_id = g_signal_connect_closure (obj,
-                "state_change",
-                g_cclosure_new (G_CALLBACK (_notify_object_state_change),
-                NULL, NULL), FALSE);
-      }
-
-    if (ATK_IS_TEXT(obj))
-      {
-        text_caret_handler_id = g_signal_connect_closure_by_id (obj,
-                g_signal_lookup ("text_caret_moved", G_OBJECT_TYPE (obj)),
-                0, g_cclosure_new (G_CALLBACK (_notify_caret_handler),
-                NULL, NULL), FALSE);
-        text_inserted_id = g_signal_connect_closure (obj,
-                "text_changed::insert",
-                g_cclosure_new (G_CALLBACK (_notify_text_insert_handler),
-                NULL, NULL), FALSE);
-        text_deleted_id = g_signal_connect_closure (obj,
-                "text_changed::delete",
-                g_cclosure_new (G_CALLBACK (_notify_text_delete_handler),
-                NULL, NULL), FALSE);
-      }
-
-    if (ATK_IS_TABLE(obj))
-      {
-        table_row_inserted_id = g_signal_connect_closure_by_id (obj,
-                g_signal_lookup ("row_inserted", G_OBJECT_TYPE (obj)),
-                0, g_cclosure_new (G_CALLBACK (_notify_table_row_inserted),
-                NULL, NULL), FALSE);
-        table_column_inserted_id = g_signal_connect_closure_by_id (obj,
-                g_signal_lookup ("column_inserted", G_OBJECT_TYPE (obj)),
-                0, g_cclosure_new (G_CALLBACK (_notify_table_column_inserted),
-                NULL, NULL), FALSE);
-        table_row_deleted_id = g_signal_connect_closure_by_id (obj,
-                g_signal_lookup ("row_deleted", G_OBJECT_TYPE (obj)),
-                0, g_cclosure_new (G_CALLBACK (_notify_table_row_deleted),
-                NULL, NULL), FALSE);
-        table_column_deleted_id = g_signal_connect_closure_by_id (obj,
-                g_signal_lookup ("column_deleted", G_OBJECT_TYPE (obj)),
-                0, g_cclosure_new (G_CALLBACK (_notify_table_column_deleted),
-                NULL, NULL), FALSE);
-        table_row_reordered_id = g_signal_connect_closure_by_id (obj,
-                g_signal_lookup ("row_reordered", G_OBJECT_TYPE (obj)),
-                0, g_cclosure_new (G_CALLBACK (_notify_table_row_reordered),
-                NULL, NULL), FALSE);
-        table_column_reordered_id = g_signal_connect_closure_by_id (obj,
-                g_signal_lookup ("column_reordered", G_OBJECT_TYPE (obj)),
-                0, g_cclosure_new (G_CALLBACK (_notify_table_column_reordered),
-                NULL, NULL), FALSE);
-      }
-
-    property_id = g_signal_connect_closure_by_id (obj,
-      g_signal_lookup ("property_change", G_OBJECT_TYPE (obj)),
-      0, g_cclosure_new (G_CALLBACK (_property_change_handler),
-      NULL, NULL),
-          FALSE);
-}
-
-/* Text signals */
-
-static void
-_notify_text_insert_handler (GObject *obj, int position, int offset)
-{
-    gchar *text = atk_text_get_text (ATK_TEXT (obj), position, position + offset);
-    gchar *output_str = g_strdup_printf("position %d, length %d text: %s",
-      position, offset,  text ? text: "<NULL>");
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_TEXT,
-      "Text Insert", output_str);
-    g_free(output_str);
-}
-
-static void
-_notify_text_delete_handler (GObject *obj, int position, int offset)
-{
-    gchar *text = atk_text_get_text (ATK_TEXT (obj), position, position + offset);
-    gchar *output_str = g_strdup_printf("position %d, length %d text: %s",
-      position, offset,  text ? text: "<NULL>");
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_TEXT,
-      "Text Delete", output_str);
-    g_free(output_str);
-}
-
-static void
-_notify_caret_handler (GObject *obj, int position)
-{
-    gchar *output_str = g_strdup_printf("position %d", position);
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_TEXT,
-      "Text Caret Moved", output_str);
-    g_free(output_str);
-}
-
-/* Table signals */
-
-static void
-_notify_table_row_inserted (GObject *obj, gint start_offset,
-  gint length)
-{
-    gchar *output_str =
-      g_strdup_printf("position %d, num of rows inserted %d!\n",
-      start_offset, length);
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_TABLE,
-      "Table Row Inserted", output_str);
-    g_free(output_str);
-}
-
-static void
-_notify_table_column_inserted (GObject *obj, gint start_offset,
-  gint length)
-{
-    gchar *output_str =
-      g_strdup_printf("position %d, num of rows inserted %d!\n",
-      start_offset, length);
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_TABLE,
-      "Table Column Inserted", output_str);
-    g_free(output_str);
-}
-
-static void
-_notify_table_row_deleted (GObject *obj, gint start_offset,
-  gint length)
-{
-    gchar *output_str = g_strdup_printf("position %d, num of rows inserted %d!\n",
-      start_offset, length);
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_TABLE,
-      "Table Row Deleted", output_str);
-    g_free(output_str);
-}
-
-static void
-_notify_table_column_deleted (GObject *obj, gint start_offset,
-  gint length)
-{
-    gchar *output_str = g_strdup_printf("position %d, num of rows inserted %d!\n",
-      start_offset, length);
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_TABLE,
-      "Table Column Deleted", output_str);
-    g_free(output_str);
-}
-
-static void
-_notify_table_row_reordered (GObject *obj)
-{
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_TABLE,
-      "Table Row Reordered", NULL);
-}
-
-static void
-_notify_table_column_reordered (GObject *obj)
-{
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_TABLE,
-      "Table Column Reordered", NULL);
-}
-
-/* Object signals */
-
-static void
-_notify_object_child_added (GObject *obj, gint index,
-  AtkObject *child)
-{
-    gchar *output_str = g_strdup_printf("index %d", index);
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_OBJECT,
-      "Child Added", output_str);
-    g_free(output_str);
-}
-
-static void
-_notify_object_child_removed (GObject *obj, gint index,
-  AtkObject *child)
-{
-    gchar *output_str = g_strdup_printf("index %d", index);
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_OBJECT,
-      "Child Removed", output_str);
-    g_free(output_str);
-}
-
-static void 
-_notify_object_state_change (GObject *obj, gchar *name, gboolean set)
-{
-    gchar *output_str = g_strdup_printf("name %s %s set", 
-                        name, set ? "is" : "was");
-    _print_signal(ATK_OBJECT(obj), FERRET_SIGNAL_OBJECT,
-      "State Change", output_str);
-    g_free(output_str);
-}
-
-
-/* Function to print signals */
-
-static void
-_print_signal(AtkObject *aobject, FerretSignalType type,
-  const char *name, const char *info)
-{
-    TabNumber top_tab = gtk_notebook_get_current_page (notebook) + OBJECT;
-
-    if (no_signals)
-      return;
-
-    if (display_ascii)
-      {
-        if (info != NULL)
-            g_print("SIGNAL:\t%-34s\t%s\n", name, info);
-        else
-            g_print("SIGNAL:\t%-34s\n", name);
-      }
-
-    if (use_festival)
-      {
-        if ((type == FERRET_SIGNAL_TEXT) && (!strncmp(name, "Text Caret", 10)))
-          {
-            _speak_caret_event (aobject);
-         }
-        else if (type == FERRET_SIGNAL_TEXT)
-          {
-            last_caret_offset = atk_text_get_caret_offset (ATK_TEXT (aobject));
-          }
-      }
-
-    if (use_magnifier && ATK_IS_TEXT (aobject) &&
-        (type == FERRET_SIGNAL_TEXT) && (!strncmp(name, "Text Caret", 10)))
-      {
-        gint x, y, w, h;
-        gint caret_offset = atk_text_get_caret_offset (ATK_TEXT (aobject));
-        atk_text_get_character_extents ( ATK_TEXT (aobject), caret_offset, &x, &y, &w, &h, ATK_XY_SCREEN);
-        _send_to_magnifier (x, y, w, h);
-      }
-
-    if ((type == FERRET_SIGNAL_TEXT && top_tab == TEXT) ||
-        (type == FERRET_SIGNAL_TABLE && top_tab == TABLE) ||
-        (type == FERRET_SIGNAL_OBJECT && top_tab == OBJECT))
-      {
-        if (display_ascii)
-            g_print("Updating tab\n");
-
-        _update(top_tab, aobject);
-      }
-}
-
-/* Update functions */
-
-static void
-_update (TabNumber top_tab, AtkObject *aobject)
-{
-    gint group_num;
-
-    if (top_tab >= OBJECT && top_tab < END_TABS)
-    {
-       _clear_tab(top_tab);
-    }
-
-    if (top_tab == OBJECT && ATK_IS_OBJECT(aobject))
-      {
-        group_num = _print_object(aobject);
-        _finished_group(OBJECT, group_num);
-        group_num = _print_relation(aobject);
-        _finished_group(OBJECT, group_num);
-        group_num = _print_state(aobject);
-        _finished_group(OBJECT, group_num);
-      }
-    if (top_tab == TEXT && ATK_IS_TEXT(aobject))
-      {
-        group_num = _print_text(ATK_TEXT (aobject));
-        _finished_group(TEXT, group_num);
-        group_num = _print_text_attributes(ATK_TEXT (aobject));
-        _finished_group(TEXT, group_num);
-      }
-    if (top_tab == SELECTION && ATK_IS_SELECTION(aobject))
-      {
-        group_num = _print_selection(ATK_SELECTION (aobject));
-        _finished_group(SELECTION, group_num);
-      }
-    if (top_tab == TABLE && ATK_IS_TABLE(aobject))
-      {
-        group_num = _print_table(ATK_TABLE (aobject));
-        _finished_group(TABLE, group_num);
-      }
-    if (top_tab == ACTION && ATK_IS_ACTION(aobject))
-      {
-        group_num = _print_action(ATK_ACTION (aobject));
-        _finished_group(ACTION, group_num);
-      }
-    if (top_tab == COMPONENT && ATK_IS_COMPONENT(aobject))
-      {
-        group_num = _print_component(ATK_COMPONENT(aobject));
-        _finished_group(COMPONENT, group_num);
-      }
-    if (top_tab == IMAGE && ATK_IS_IMAGE(aobject))
-      {
-        group_num = _print_image(ATK_IMAGE (aobject));
-        _finished_group(IMAGE, group_num);
-      }
-    if (top_tab == VALUE && ATK_IS_VALUE(aobject))
-      {
-        group_num = _print_value(ATK_VALUE(aobject));
-        _finished_group(VALUE, group_num);
-      }
-}
-
-static void
-_update_current_page(GtkNotebook *notebook, gpointer p, guint current_page)
-{
-  _update(current_page+OBJECT, last_object);
-}
-
-/* Property listeners */
-
-static void _property_change_handler (AtkObject *obj,
-  AtkPropertyValues *values)
-{
-    TabNumber top_tab = gtk_notebook_get_current_page (notebook) + OBJECT;
-
-    if (no_signals)
-      return;
-
-   /*
-    * Only process if the property change corrisponds to the current
-    * object
-    */
-    if (obj != last_object)
-      {
-        if (display_ascii)
-          {
-            g_print("\nProperty change event <%s> for object not in focus\n",
-                values->property_name);
-          }
-
-        return;
-      }
-
-    if (display_ascii)
-      {
-        g_print("\nProperty change event <%s> occurred.\n",
-          values->property_name);
-      }
-
-   /*
-    * Update the top tab if a property changes.
-    *
-    * We may be able to ignore some property changes if they do not
-    * change anything in ferret.
-    */
-
-    if (top_tab == OBJECT &&
-       ((strcmp (values->property_name, "accessible-name") == 0) ||
-        (strcmp (values->property_name, "accessible-description") == 0) ||
-        (strcmp (values->property_name, "accessible-parent") == 0) ||
-        (strcmp (values->property_name, "accessible-value") == 0) ||
-        (strcmp (values->property_name, "accessible-role") == 0) ||
-        (strcmp (values->property_name, "accessible-component-layout") == 0) ||
-        (strcmp (values->property_name, "accessible-component-mdi-zorder") == 0) ||
-        (strcmp (values->property_name, "accessible-table-caption") == 0) ||
-        (strcmp (values->property_name,
-                 "accessible-table-column-description") == 0) ||
-        (strcmp (values->property_name,
-                 "accessible-table-column-header") == 0) ||
-        (strcmp (values->property_name,
-                 "accessible-table-row-description") == 0) ||
-        (strcmp (values->property_name,
-                 "accessible-table-row-header") == 0) ||
-        (strcmp (values->property_name, "accessible-table-summary") == 0)))
-      {
-        if (display_ascii)
-            g_print("Updating tab\n");
-
-        _update(top_tab, last_object);
-      }
-    else if (top_tab == VALUE &&
-        (strcmp (values->property_name, "accessible-value") == 0))
-      {
-        if (display_ascii)
-            g_print("Updating tab\n");
-
-        _update(top_tab, last_object);
-      }
-}
-
-/* Action button callback function */
-
-void _action_cb(GtkWidget *widget, gpointer  *userdata)
-{
-   NameValue *nv = (NameValue *)userdata;
-   atk_action_do_action(ATK_ACTION(nv->atkobj), nv->action_num);
-}
-
-/* Menu-bar callback functions */
-
-void _toggle_terminal(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data)
-{
-   if (gtk_check_menu_item_get_active (checkmenuitem))
-       display_ascii = TRUE;
-   else
-       display_ascii = FALSE;
-}
-
-void _toggle_no_signals(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data)
-{
-   if (gtk_check_menu_item_get_active (checkmenuitem))
-       no_signals = TRUE;
-   else
-       no_signals = FALSE;
-}
-
-void _toggle_magnifier(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data)
-{
-   if (gtk_check_menu_item_get_active (checkmenuitem))
-       use_magnifier = TRUE;
-   else
-       use_magnifier = FALSE;
-}
-
-void _toggle_festival(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data)
-{
-   if (gtk_check_menu_item_get_active (checkmenuitem))
-       use_festival = TRUE;
-   else
-       use_festival = FALSE;
-}
-
-void _toggle_festival_terse(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data)
-{
-   if (gtk_check_menu_item_get_active (checkmenuitem))
-     {
-        say_role = FALSE;
-        say_accel = FALSE;
-     }
-   else
-     {
-        say_role = TRUE;
-        say_accel = TRUE;
-     }
-}
-
-void _toggle_trackmouse(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data)
-{
-   if (gtk_check_menu_item_get_active (checkmenuitem))
-     {
-        mouse_watcher_focus_id =
-          atk_add_global_event_listener(_mouse_watcher,
-          "Gtk:GtkWidget:enter_notify_event");
-        mouse_watcher_button_id =
-          atk_add_global_event_listener(_button_watcher,
-          "Gtk:GtkWidget:button_press_event");
-       track_mouse = TRUE;
-     }
-   else
-     {
-       if (mouse_watcher_focus_id != -1)
-         {
-           atk_remove_global_event_listener(mouse_watcher_focus_id);
-           atk_remove_global_event_listener(mouse_watcher_button_id);
-           track_mouse = FALSE;
-         }
-     }
-}
-
-void _toggle_trackfocus(GtkCheckMenuItem *checkmenuitem,
-  gpointer user_data)
-{
-   if (gtk_check_menu_item_get_active (checkmenuitem))
-     {
-       track_focus = TRUE;
-       focus_tracker_id = atk_add_focus_tracker (_print_accessible);
-     }
-   else
-     { 
-       g_print ("No longer tracking focus.\n");
-       track_focus = FALSE;
-       atk_remove_focus_tracker (focus_tracker_id);
-     }
-}
diff --git a/modules/other/gail/tests/testaction.c b/modules/other/gail/tests/testaction.c
deleted file mode 100644 (file)
index 5147605..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-#include <string.h>
-#include <stdlib.h>
-#include <gtk/gtk.h>
-#include "testlib.h"
-
-/*
- * This module is used to test the implementation of AtkAction,
- * i.e. the getting of the name and the getting and setting of description
- */
-
-static void _create_event_watcher (void);
-static void _check_object (AtkObject *obj);
-
-static void 
-_check_object (AtkObject *obj)
-{
-  const char *accessible_name;
-  const gchar * typename = NULL;
-
-  if (GTK_IS_ACCESSIBLE (obj))
-  {
-    GtkWidget* widget = NULL;
-
-    widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-    typename = g_type_name (G_OBJECT_TYPE (widget));
-    g_print ("Widget type name: %s\n", typename ? typename : "NULL");
-  }
-  typename = g_type_name (G_OBJECT_TYPE (obj));
-  g_print ("Accessible type name: %s\n", typename ? typename : "NULL");
-  accessible_name = atk_object_get_name (obj);
-  if (accessible_name)
-    g_print ("Name: %s\n", accessible_name);
-
-  if (ATK_IS_ACTION (obj))
-  {
-    AtkAction *action = ATK_ACTION (obj);
-    gint n_actions, i;
-    const gchar *action_name;
-    const gchar *action_desc;
-    const gchar *action_binding;
-    const gchar *desc = "Test description";
-    n_actions = atk_action_get_n_actions (action);
-    g_print ("AtkAction supported number of actions: %d\n", n_actions);
-    for (i = 0; i < n_actions; i++)
-    {
-      action_name = atk_action_get_name (action, i);
-      g_print ("Name of Action %d: %s\n", i, action_name);
-      action_binding = atk_action_get_keybinding (action, i);
-      if (action_binding)
-        g_print ("Name of Action Keybinding %d: %s\n", i, action_binding);
-     
-      if (!atk_action_set_description (action, i, desc))
-      {
-        g_print ("atk_action_set_description failed\n");
-      }
-      else
-      {
-        action_desc = atk_action_get_description (action, i);
-        if (strcmp (desc, action_desc) != 0)
-        {
-          g_print ("Problem with setting and getting action description\n");
-        }
-      }
-    } 
-    if (atk_action_set_description (action, n_actions, desc))
-    {
-      g_print ("atk_action_set_description succeeded but should not have\n");
-    }
-  }
-}
-
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_check_object);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testaction Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/testbutton.c b/modules/other/gail/tests/testbutton.c
deleted file mode 100644 (file)
index d7de808..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-#include <gtk/gtk.h>
-#include "testlib.h"
-
-/*
- * This module is used to test the accessible implementation for buttons
- *
- * 1) It verifies that ATK_STATE_ARMED is set when a button is pressed
- * To check this click on the button whose name is specified in the
- * environment variable TEST_ACCESSIBLE_NAME or "button box" if the
- * environment variable is not set.
- *
- * 2) If the environment variable TEST_ACCESSIBLE_AUTO is set the program
- * will execute the action defined for a GailButton once.
- *
- * 3) Change an inconsistent toggle button to be consistent and vice versa.
- *
- * Note that currently this code needs to be changed manually to test
- * different actions.
- */
-
-static void _create_event_watcher (void);
-static void _check_object (AtkObject *obj);
-static void button_pressed_handler (GtkButton *button);
-static void _print_states (AtkObject *obj);
-static void _print_button_image_info(AtkObject *obj);
-static gint _do_button_action (gpointer data);
-static gint _toggle_inconsistent (gpointer data);
-static gint _finish_button_action (gpointer data);
-
-#define NUM_VALID_ROLES 4
-
-static void 
-_check_object (AtkObject *obj)
-{
-  AtkRole role;
-  static gboolean first_time = TRUE;
-
-  role = atk_object_get_role (obj);
-  if (role == ATK_ROLE_FRAME)
-  /*
-   * Find the specified button in the window
-   */
-  {
-    AtkRole valid_roles[NUM_VALID_ROLES];
-    const char *name;
-    AtkObject *atk_button;
-    GtkWidget *widget;
-
-    valid_roles[0] = ATK_ROLE_PUSH_BUTTON;
-    valid_roles[1] = ATK_ROLE_TOGGLE_BUTTON;
-    valid_roles[2] = ATK_ROLE_CHECK_BOX;
-    valid_roles[3] = ATK_ROLE_RADIO_BUTTON;
-
-    name = g_getenv ("TEST_ACCESSIBLE_NAME");
-    if (name == NULL)
-      name = "button box";
-    atk_button = find_object_by_accessible_name_and_role (obj, name,
-                     valid_roles, NUM_VALID_ROLES);
-
-    if (atk_button == NULL)
-    {
-      g_print ("Object not found for %s\n", name);
-      return;
-    }
-    g_assert (GTK_IS_ACCESSIBLE (atk_button));
-    widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_button));
-    g_assert (GTK_IS_BUTTON (widget));
-    g_signal_connect (widget,
-                      "pressed",
-                      G_CALLBACK (button_pressed_handler),
-                      NULL);
-    if (GTK_IS_TOGGLE_BUTTON (widget))
-    {
-      _toggle_inconsistent (GTK_TOGGLE_BUTTON (widget));
-    }
-    if (first_time)
-      first_time = FALSE;
-    else
-      return;
-
-    if (g_getenv ("TEST_ACCESSIBLE_AUTO"))
-      {
-        g_idle_add (_do_button_action, atk_button);
-      }
-  }
-}
-
-static gint _toggle_inconsistent (gpointer data)
-{
-  GtkToggleButton *toggle_button = GTK_TOGGLE_BUTTON (data);
-
-  if (gtk_toggle_button_get_inconsistent (toggle_button))
-  {
-    gtk_toggle_button_set_inconsistent (toggle_button, FALSE);
-  }
-  else
-  {
-    gtk_toggle_button_set_inconsistent (toggle_button, TRUE);
-  }
-  return FALSE;
-} 
-
-static gint _do_button_action (gpointer data)
-{
-  AtkObject *obj = ATK_OBJECT (data);
-
-  atk_action_do_action (ATK_ACTION (obj), 2);
-
-  g_timeout_add (5000, _finish_button_action, obj);
-  return FALSE;
-}
-
-static gint _finish_button_action (gpointer data)
-{
-#if 0
-  AtkObject *obj = ATK_OBJECT (data);
-
-  atk_action_do_action (ATK_ACTION (obj), 0);
-#endif
-
-  return FALSE;
-}
-
-static void
-button_pressed_handler (GtkButton *button)
-{
-  AtkObject *obj;
-
-  obj = gtk_widget_get_accessible (GTK_WIDGET (button));
-  _print_states (obj);
-  _print_button_image_info (obj);
-
-  if (GTK_IS_TOGGLE_BUTTON (button))
-    {
-      g_idle_add (_toggle_inconsistent, GTK_TOGGLE_BUTTON (button));
-    }
-}
-
-static void 
-_print_states (AtkObject *obj)
-{
-  AtkStateSet *state_set;
-  gint i;
-
-  state_set = atk_object_ref_state_set (obj);
-
-  g_print ("*** Start states ***\n");
-  for (i = 0; i < 64; i++)
-  {
-     AtkStateType one_state;
-     const gchar *name;
-
-     if (atk_state_set_contains_state (state_set, i))
-     {
-       one_state = i;
-
-       name = atk_state_type_get_name (one_state);
-
-       if (name)
-         g_print("%s\n", name);
-     }
-  }
-  g_object_unref (state_set);
-  g_print ("*** End states ***\n");
-}
-
-static void 
-_print_button_image_info(AtkObject *obj) {
-
-  gint height, width;
-  const gchar *desc;
-
-  height = width = 0;
-
-  if(!ATK_IS_IMAGE(obj)) 
-       return;
-
-  g_print("*** Start Button Image Info ***\n");
-  desc = atk_image_get_image_description(ATK_IMAGE(obj));
-  g_print ("atk_image_get_image_desc returns : %s\n", desc ? desc : "<NULL>");
-  atk_image_get_image_size(ATK_IMAGE(obj), &height ,&width);
-  g_print("atk_image_get_image_size returns: height %d width %d\n",height,width);
-  if(atk_image_set_image_description(ATK_IMAGE(obj), "New image Description")){
-       desc = atk_image_get_image_description(ATK_IMAGE(obj));
-       g_print ("atk_image_get_image_desc now returns : %s\n",desc ?desc:"<NULL>");
-  }
-  g_print("*** End Button Image Info ***\n");
-
-
-}
-
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_check_object);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testbutton Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/testcombo.c b/modules/other/gail/tests/testcombo.c
deleted file mode 100644 (file)
index abaff3e..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-#include <gtk/gtk.h>
-#include "testlib.h"
-
-static void _test_selection (AtkObject *obj);
-static void _check_combo_box (AtkObject *obj);
-static void _check_children (AtkObject *obj);
-static gint _open_combo_list (gpointer data);
-static gint _close_combo_list (gpointer data);
-
-#define NUM_VALID_ROLES 1
-
-static void _check_children (AtkObject *obj)
-{
-  gint n_children, i, j;
-  AtkObject *child;
-  AtkObject *grand_child;
-
-  n_children = atk_object_get_n_accessible_children (obj);
-
-  if (n_children > 1)
-  {
-    g_print ("*** Unexpected number of children for combo box: %d\n", 
-             n_children);
-    return;
-  }
-  if (n_children == 2)
-  {
-    child = atk_object_ref_accessible_child (obj, 1);
-    g_return_if_fail (atk_object_get_role (child) == ATK_ROLE_TEXT);
-    j = atk_object_get_index_in_parent (child);
-    if (j != 1)
-     g_print ("*** inconsistency between parent and children %d %d ***\n",
-              1, j);       
-    g_object_unref (G_OBJECT (child));
-  }
-
-  child = atk_object_ref_accessible_child (obj, 0);
-  g_return_if_fail (atk_object_get_role (child) == ATK_ROLE_LIST);
-  j = atk_object_get_index_in_parent (child);
-  if (j != 0)
-     g_print ("*** inconsistency between parent and children %d %d ***\n",
-              0, j);       
-
-  n_children = atk_object_get_n_accessible_children (child);
-  for (i = 0; i < n_children; i++)
-  {
-    const gchar *name;
-
-    grand_child = atk_object_ref_accessible_child (child, i);
-    name = atk_object_get_name (grand_child);
-    g_print ("Index: %d Name: %s\n", i, name ? name : "<NULL>");
-    g_object_unref (G_OBJECT (grand_child));
-  }
-  g_object_unref (G_OBJECT (child));
-}
-  
-static void _test_selection (AtkObject *obj)
-{
-  gint count;
-  gint n_children;
-  AtkObject *list;
-
-  count = atk_selection_get_selection_count (ATK_SELECTION (obj));
-  g_return_if_fail (count == 0);
-
-  list = atk_object_ref_accessible_child (obj, 0);
-  n_children = atk_object_get_n_accessible_children (list); 
-  g_object_unref (G_OBJECT (list));
-
-  atk_selection_add_selection (ATK_SELECTION (obj), n_children - 1);
-  count = atk_selection_get_selection_count (ATK_SELECTION (obj));
-  g_return_if_fail (count == 1);
-  g_return_if_fail (atk_selection_is_child_selected (ATK_SELECTION (obj),
-                     n_children - 1)); 
-  atk_selection_add_selection (ATK_SELECTION (obj), 0);
-  count = atk_selection_get_selection_count (ATK_SELECTION (obj));
-  g_return_if_fail (count == 1);
-  g_return_if_fail (atk_selection_is_child_selected (ATK_SELECTION (obj), 0));
-  atk_selection_clear_selection (ATK_SELECTION (obj));
-  count = atk_selection_get_selection_count (ATK_SELECTION (obj));
-  g_return_if_fail (count == 0);
-}
-
-static void _check_combo_box (AtkObject *obj)
-{
-  static gboolean done = FALSE;
-  static gboolean done_selection = FALSE;
-  AtkRole role;
-
-  role = atk_object_get_role (obj);
-
-  if (role == ATK_ROLE_FRAME)
-  {
-    AtkRole roles[NUM_VALID_ROLES];
-    AtkObject *combo_obj;
-
-    if (done_selection)
-      return;
-
-    roles[0] = ATK_ROLE_COMBO_BOX;
-
-    combo_obj = find_object_by_role (obj, roles, NUM_VALID_ROLES);
-
-    if (combo_obj)
-    {
-      if (!done_selection)
-      {
-        done_selection = TRUE;
-      }
-      if (g_getenv ("TEST_ACCESSIBLE_COMBO_NOEDIT") != NULL)
-      {
-        GtkWidget *combo;
-        GtkEntry *entry;
-
-        combo = gtk_accessible_get_widget (GTK_ACCESSIBLE (combo_obj));
-        entry = GTK_ENTRY (gtk_bin_get_child (GTK_BIN (combo)));
-        gtk_editable_set_editable (GTK_EDITABLE (entry), FALSE);
-      }
-      _check_children (combo_obj);
-      _test_selection (combo_obj);
-    }
-
-    return;
-  }
-  if (role != ATK_ROLE_COMBO_BOX)
-    return;
-
-  g_print ("*** Start ComboBox ***\n");
-  _check_children (obj);
-  if (!done)
-  {
-    g_idle_add ((GSourceFunc)_open_combo_list, obj);
-    done = TRUE;
-  }
-  else
-      return;
-  g_print ("*** End ComboBox ***\n");
-}
-
-static gint _open_combo_list (gpointer data)
-{
-  AtkObject *obj = ATK_OBJECT (data);
-
-  g_print ("_open_combo_list\n");
-  atk_action_do_action (ATK_ACTION (obj), 0);
-
-  g_timeout_add (5000, _close_combo_list, obj);
-  return FALSE;
-}
-
-static gint _close_combo_list (gpointer data)
-{
-  AtkObject *obj = ATK_OBJECT (data);
-
-  gint count;
-  gint n_children;
-  AtkObject *list;
-
-  count = atk_selection_get_selection_count (ATK_SELECTION (obj));
-  g_return_val_if_fail (count == 0, FALSE);
-
-  list = atk_object_ref_accessible_child (obj, 0);
-  n_children = atk_object_get_n_accessible_children (list); 
-  g_object_unref (G_OBJECT (list));
-
-  atk_selection_add_selection (ATK_SELECTION (obj), n_children - 1);
-
-  atk_action_do_action (ATK_ACTION (obj), 0);
-
-  return FALSE;
-}
-
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_check_combo_box);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testcombo Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/testcomponent.c b/modules/other/gail/tests/testcomponent.c
deleted file mode 100644 (file)
index 7600c10..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-#include <atk/atk.h>
-
-static void _check_position (AtkObject *obj);
-
-static void _check_position (AtkObject *obj)
-{
-  AtkObject *parent, *ret_object;
-
-  gint x, y, width, height;
-  gint x1, y1, width1, height1;
-
-  x = y = width = height = 0;
-  x1 = y1 = width1 = height1 = 0;
-
-  if (!ATK_IS_COMPONENT (obj))
-    return;
-
-  atk_component_get_extents (ATK_COMPONENT(obj), &x, &y, &width, &height, ATK_XY_SCREEN);
-  atk_component_get_position (ATK_COMPONENT(obj), &x1, &y1, ATK_XY_SCREEN );
-  atk_component_get_size (ATK_COMPONENT(obj), &width1, &height1);
-  if ((x1 !=  x) || (y1 != y))
-  {
-    g_print ("atk_component_get_extents and atk_get_position give different"
-             "  values: %d,%d %d,%d\n", x, y, x1, y1);
-  }
-  if ((width1 !=  width) || (height1 != height))
-  {
-    g_print ("atk_component_get_extents and atk_get_size give different"
-             "  values: %d,%d %d,%d\n", width, height, width1, height1);
-  }
-
-  atk_component_get_position (ATK_COMPONENT(obj), &x1, &y1, ATK_XY_SCREEN);
-  g_print ("Object Type: %s\n", g_type_name (G_OBJECT_TYPE (obj)));
-  g_print ("Object at %d, %d on screen\n", x1, y1);
-  g_print ("Object at %d, %d, size: %d, %d\n", x, y, width, height);
-
-  parent = atk_object_get_parent (obj);
-
-  if (ATK_IS_COMPONENT (parent))
-  {
-    gint px, py, pwidth, pheight;
-    
-    atk_component_get_extents (ATK_COMPONENT(parent),
-                               &px, &py, &pwidth, &pheight, ATK_XY_SCREEN);
-    g_print ("Parent Type: %s\n", g_type_name (G_OBJECT_TYPE (parent)));
-    g_print ("Parent at %d, %d, size: %d, %d\n", px, py, pwidth, pheight);
-    ret_object = atk_component_ref_accessible_at_point (ATK_COMPONENT (parent), 
-                                                        x, y, ATK_XY_SCREEN);
-
-    if (!ret_object)
-    {
-      g_print ("1:atk_component_ref_accessible_at_point returns NULL\n");
-    }
-    else if (ret_object != obj)
-    {
-      g_print ("1:atk_component_ref_accessible_at_point returns wrong value for %d %d\n",
-                x, y);
-      atk_component_get_extents (ATK_COMPONENT(ret_object),
-                                 &px, &py, &pwidth, &pheight, ATK_XY_SCREEN);
-      g_print ("ret_object at %d, %d, size: %d, %d\n", px, py, pwidth, pheight);
-    }
-    if (ret_object)
-      g_object_unref (G_OBJECT (ret_object));
-    ret_object = atk_component_ref_accessible_at_point (ATK_COMPONENT (parent), 
-                                                        x+width-1, y+height-1, ATK_XY_SCREEN);
-    if (!ret_object)
-    {
-      g_print ("2:atk_component_ref_accessible_at_point returns NULL\n");
-    }
-    else if (ret_object != obj)
-    {
-      g_print ("2:atk_component_ref_accessible_at_point returns wrong value for %d %d\n",
-                x+width-1, y+height-1);
-    } 
-    if (ret_object)
-      g_object_unref (G_OBJECT (ret_object));
-    ret_object = atk_component_ref_accessible_at_point (ATK_COMPONENT (parent), 
-                                                        x-1, y-1, ATK_XY_SCREEN);
-    if ((ret_object) && (ret_object == obj))
-    {
-      g_print ("3:atk_component_ref_accessible_at_point returns wrong value for %d %d\n",
-                x-1, y-1);
-    } 
-    if (ret_object)
-      g_object_unref (G_OBJECT (ret_object));
-    ret_object = atk_component_ref_accessible_at_point (ATK_COMPONENT (parent), 
-                                                        x+width, y+height, ATK_XY_SCREEN);
-    if ((ret_object) && (ret_object == obj))
-    {
-      g_print ("4:atk_component_ref_accessible_at_point returns wrong value for %d %d\n",
-                x+width, y+height);
-    }
-    if (ret_object)
-      g_object_unref (G_OBJECT (ret_object));
-  }
-  if (!atk_component_contains (ATK_COMPONENT(obj), x, y, ATK_XY_SCREEN))
-    g_print ("Component does not contain position, %d %d\n", x, y);
-  if (atk_component_contains (ATK_COMPONENT(obj), x-1, y-1, ATK_XY_SCREEN))
-    g_print ("Component does contain position, %d %d\n", x-1, y-1);
-  if (!atk_component_contains (ATK_COMPONENT(obj), x+width-1, y+height-1, ATK_XY_SCREEN))
-    g_print ("Component does not contain position, %d %d\n", 
-             x+width-1, y+height-1);
-  if (atk_component_contains (ATK_COMPONENT(obj), x+width, y+height, ATK_XY_SCREEN))
-    g_print ("Component does contain position, %d %d\n", x+width, y+height);
-}
-
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_check_position);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testcomponent Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/testimage.c b/modules/other/gail/tests/testimage.c
deleted file mode 100644 (file)
index b954a84..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-#include <gtk/gtk.h>
-#include "testlib.h"
-#include <stdlib.h>
-
-/*
- * This test modules tests the AtkImage interface. When the module is loaded
- * with testgtk , it also creates a dialog that contains GtkArrows and a 
- * GtkImage. 
- *
- */
-
-typedef struct
-{
-  GtkWidget *dialog;
-  GtkWidget *arrow1;
-  GtkWidget *arrow2;
-  GtkWidget *arrow3;
-  GtkWidget *arrow4;
-  GtkWidget *close_button;
-  GtkImage  *image;
-}MainDialog;
-
-static void destroy (GtkWidget *widget, gpointer data)
-{
-  gtk_widget_destroy(GTK_WIDGET(data));
-}
-
-static void _check_arrows (AtkObject *obj)
-{
-  GtkWidget *content_area, *action_area;
-  AtkRole role;
-  MainDialog *md;
-  static gint visibleDialog = 0;
-
-
-  role = atk_object_get_role(obj);
-  if(role == ATK_ROLE_FRAME) {
-
-       md = (MainDialog *) malloc (sizeof(MainDialog));
-       if (visibleDialog == 0)
-    {
-               md->arrow1 = gtk_arrow_new(GTK_ARROW_UP,GTK_SHADOW_IN);
-               md->arrow2 = gtk_arrow_new(GTK_ARROW_DOWN,GTK_SHADOW_IN);
-               md->arrow3 = gtk_arrow_new(GTK_ARROW_LEFT,GTK_SHADOW_OUT);
-               md->arrow4 = gtk_arrow_new(GTK_ARROW_RIGHT,GTK_SHADOW_OUT);
-               md->dialog = gtk_dialog_new();
-               gtk_window_set_modal(GTK_WINDOW(md->dialog), TRUE);
-
-                content_area = gtk_dialog_get_content_area (GTK_DIALOG (md->dialog));
-                action_area = gtk_dialog_get_action_area (GTK_DIALOG (md->dialog));
-
-                gtk_box_pack_start(GTK_BOX (content_area), md->arrow1, TRUE,TRUE, 0);
-               gtk_box_pack_start(GTK_BOX (content_area), md->arrow2, TRUE,TRUE, 0);
-               gtk_box_pack_start(GTK_BOX (content_area), md->arrow3, TRUE,TRUE, 0);
-               gtk_box_pack_start(GTK_BOX (content_area), md->arrow4, TRUE,TRUE, 0);
-               g_signal_connect(md->dialog, "destroy",
-                                 G_CALLBACK (destroy), md->dialog);
-
-               md->image = GTK_IMAGE(gtk_image_new_from_file("circles.xbm"));
-               gtk_box_pack_start(GTK_BOX (content_area), GTK_WIDGET(md->image), TRUE,TRUE, 0);
-               md->close_button = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
-               g_signal_connect(md->close_button, "clicked",
-                                 G_CALLBACK (destroy), md->dialog);
-
-               gtk_box_pack_start(GTK_BOX (action_area), md->close_button, TRUE,TRUE, 0);
-
-               gtk_widget_show_all(md->dialog);
-               visibleDialog = 1;
-    }
- }
-}
-
-
-static void 
-_print_image_info(AtkObject *obj) {
-
-  gint height, width;
-  const gchar *desc;
-  const gchar *name = atk_object_get_name (obj);
-  const gchar *type_name = g_type_name(G_TYPE_FROM_INSTANCE (obj));
-
-  height = width = 0;
-
-
-  if(!ATK_IS_IMAGE(obj)) 
-       return;
-
-  g_print("atk_object_get_name : %s\n", name ? name : "<NULL>");
-  g_print("atk_object_get_type_name : %s\n",type_name ?type_name :"<NULL>");
-  g_print("*** Start Image Info ***\n");
-  desc = atk_image_get_image_description(ATK_IMAGE(obj));
-  g_print ("atk_image_get_image_desc returns : %s\n",desc ? desc:"<NULL>");
-  atk_image_get_image_size(ATK_IMAGE(obj), &height ,&width);
-  g_print("atk_image_get_image_size returns: height %d width %d\n",
-                                                                                       height,width);
-  if(atk_image_set_image_description(ATK_IMAGE(obj),"New image Description")){
-       desc = atk_image_get_image_description(ATK_IMAGE(obj));
-       g_print ("atk_image_get_image_desc now returns : %s\n",desc?desc:"<NULL>");
-  }
-  g_print("*** End Image Info ***\n");
-
-
-}
-static void _traverse_children (AtkObject *obj)
-{
-  gint n_children, i;
-
-  n_children = atk_object_get_n_accessible_children (obj);
-  for (i = 0; i < n_children; i++)
-  {
-    AtkObject *child;
-
-    child = atk_object_ref_accessible_child (obj, i);
-       _print_image_info(child);
-    _traverse_children (child);
-    g_object_unref (G_OBJECT (child));
-  }
-}
-
-
-static void _check_objects (AtkObject *obj)
-{
-  AtkRole role;
-
-  g_print ("Start of _check_values\n");
-
-  _check_arrows(obj);
-  role = atk_object_get_role (obj);
-
-  if (role == ATK_ROLE_FRAME || role == ATK_ROLE_DIALOG)
-  {
-    /*
-     * Add handlers to all children.
-     */
-    _traverse_children (obj);
-  }
-  g_print ("End of _check_values\n");
-}
-
-
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_check_objects);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testimages Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/testlib.c b/modules/other/gail/tests/testlib.c
deleted file mode 100644 (file)
index 1263ea4..0000000
+++ /dev/null
@@ -1,953 +0,0 @@
-#include <string.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include "testlib.h" 
-
-static gint    _get_position_in_array          (gint           window,
-                                               gchar           *the_test_name);
-static gint    _get_position_in_parameters     (gint           window,
-                                               gchar           *label,
-                                               gint            position);
-static void    _create_output_window           (OutputWindow   **outwin);
-static gboolean        _create_select_tests_window     (AtkObject      *obj,
-                                                TLruntest      runtest,
-                                                OutputWindow   **outwin);
-static void    _toggle_selectedcb              (GtkWidget      *widget,
-                                               gpointer        test);
-static void    _testselectioncb                (GtkWidget      *widget,
-                                               gpointer        data);
-static void    _destroy                        (GtkWidget      *widget,
-                                               gpointer        data);
-
-/* General functions */
-
-/**
- * find_object_by_role:
- * @obj: An #AtkObject
- * @roles: An array of roles to search for
- * @num_roles: The number of entries in @roles
- *
- * Find the #AtkObject which is a decendant of the specified @obj
- * which is of an #AtkRole type specified in the @roles array.
- *
- * Returns: the #AtkObject that meets the specified criteria or NULL
- * if no object is found. 
- **/
-AtkObject*
-find_object_by_role (AtkObject *obj,
-                     AtkRole   *roles,
-                     gint      num_roles)
-{
-  /*
-   * Find the first object which is a descendant of the specified object
-   * which matches the specified role.
-   *
-   * This function returns a reference to the AtkObject which should be
-   * removed when finished with the object.
-   */
-  gint i, j;
-  gint n_children;
-  AtkObject *child;
-
-  if (obj == NULL)
-    return NULL;
-
-  for (j=0; j < num_roles; j++)
-    {
-      if (atk_object_get_role (obj) == roles[j])
-        return obj;
-    }
-
-  n_children = atk_object_get_n_accessible_children (obj);
-  for (i = 0; i < n_children; i++)
-    {
-      AtkObject* found_obj;
-
-      child = atk_object_ref_accessible_child (obj, i);
-
-      if (child == NULL)
-        continue;
-
-      for (j=0; j < num_roles; j++)
-        {
-          if (atk_object_get_role (child) == roles[j])
-            return child;
-        }
-
-      found_obj = find_object_by_role (child, roles, num_roles);
-      g_object_unref (child);
-      if (found_obj)
-        return found_obj;
-    }
-  return NULL;
-}
-
-/**
- * find_object_by_name_and_role:
- * @obj: An #AtkObject
- * @name: The GTK widget name
- * @roles: An array of roles to search for
- * @num_roles: The number of entries in @roles
- *
- * Find the #AtkObject which is a decendant of the specified @obj
- * which is of an #AtkRole type specified in the @roles array which
- * also has the GTK widget name specified in @name.
- *
- * Returns: the #AtkObject that meets the specified criteria or NULL
- * if no object is found. 
- **/
-AtkObject*
-find_object_by_name_and_role(AtkObject   *obj,
-                             const gchar *name,
-                             AtkRole    *roles,
-                             gint        num_roles)
-{
-  AtkObject *child;
-  GtkWidget* widget;
-  gint i, j;
-  gint n_children;
-
-  if (obj == NULL)
-    return NULL;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-  if (GTK_IS_WIDGET (widget))
-    {
-      if (strcmp (name, gtk_widget_get_name(GTK_WIDGET (widget))) == 0)
-        {
-          for (j=0; j < num_roles; j++)
-            {
-              if (atk_object_get_role (obj) == roles[j])
-                return obj;
-            }
-        }
-    }
-
-  n_children = atk_object_get_n_accessible_children (obj);
-  for (i = 0; i < n_children; i++)
-    {
-      AtkObject* found_obj;
-      child = atk_object_ref_accessible_child (obj, i);
-
-      if (child == NULL)
-        continue;
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (child));
-      if (GTK_IS_WIDGET (widget))
-        {
-          if (strcmp(name, gtk_widget_get_name(GTK_WIDGET (widget))) == 0)
-            {
-              for (j=0; j < num_roles; j++)
-                {
-                  if (atk_object_get_role (child) == roles[j])
-                    return child;
-                }
-            }
-        }
-      found_obj = find_object_by_name_and_role (child, name, roles, num_roles);
-      g_object_unref (child);
-      if (found_obj)
-        return found_obj;
-    }
-  return NULL;
-}
-
-/**
- * find_object_by_accessible_name_and_role:
- * @obj: An #AtkObject
- * @name: The accessible name
- * @roles: An array of roles to search for
- * @num_roles: The number of entries in @roles
- *
- * Find the #AtkObject which is a decendant of the specified @obj
- * which has the specified @name and matches one of the 
- * specified @roles.
- * 
- * Returns: the #AtkObject that meets the specified criteria or NULL
- * if no object is found. 
- */
-AtkObject*
-find_object_by_accessible_name_and_role (AtkObject   *obj,
-                                         const gchar *name,
-                                         AtkRole     *roles,
-                                        gint        num_roles)
-{
-  AtkObject *child;
-  gint i, j;
-  gint n_children;
-  const gchar *accessible_name;
-
-  if (obj == NULL)
-    return NULL;
-
-  accessible_name = atk_object_get_name (obj);
-  if (accessible_name && (strcmp(name, accessible_name) == 0))
-    {
-      for (j=0; j < num_roles; j++)
-        {
-          if (atk_object_get_role (obj) == roles[j])
-            return obj;
-        }
-    }
-
-  n_children = atk_object_get_n_accessible_children (obj);
-  for (i = 0; i < n_children; i++)
-    {
-      AtkObject* found_obj;
-
-      child = atk_object_ref_accessible_child (obj, i);
-
-      if (child == NULL)
-        continue;
-
-      accessible_name = atk_object_get_name (child);
-      if (accessible_name && (strcmp(name, accessible_name) == 0))
-        {
-          for (j=0; j < num_roles; j++)
-            {
-              if (atk_object_get_role (child) == roles[j])
-                return child;
-            }
-        }
-      found_obj = find_object_by_accessible_name_and_role (child, name, 
-                                                           roles, num_roles);
-      g_object_unref (child);
-      if (found_obj)
-        return found_obj;
-    }
-  return NULL;
-}
-
-/**
- * find_object_by_name_and_role:
- * @obj: An #AtkObject
- * @type: The type 
- *
- * Find the #AtkObject which is a decendant of the specified @obj
- * which has the specified @type.
- * 
- * Returns: the #AtkObject that meets the specified criteria or NULL
- * if no object is found. 
- */
-AtkObject*
-find_object_by_type (AtkObject *obj, 
-                     gchar     *type)
-{
-  /*
-   * Find the first object which is a descendant of the specified object
-   * which matches the specified type.
-   *
-   * This function returns a reference to the AtkObject which should be
-   * removed when finished with the object.
-   */
-  gint i;
-  gint n_children;
-  AtkObject *child;
-  const gchar * typename = NULL;
-
-  if (obj == NULL)
-    return NULL;
-
-  typename = g_type_name (G_OBJECT_TYPE (obj));
-  if (strcmp (typename, type) == 0)
-     return obj;
-
-  n_children = atk_object_get_n_accessible_children (obj);
-  for (i = 0; i < n_children; i++)
-    {
-      AtkObject* found_obj;
-
-      child = atk_object_ref_accessible_child (obj, i);
-
-      if (child == NULL)
-        continue;
-
-      typename = g_type_name (G_OBJECT_TYPE (child));
-
-      if (strcmp (typename, type) == 0)
-        return child;
-
-      found_obj = find_object_by_type (child, type);
-      g_object_unref (child);
-      if (found_obj)
-        return found_obj;
-    }
-  return NULL;
-}
-
-/**
- * already_accessed_atk_object
- * @obj: An #AtkObject
- *
- * Keeps a static GPtrArray of objects that have been passed into this
- * function. 
- *
- * Returns: TRUE if @obj has been passed into this function before
- * and FALSE otherwise.
- */
-gboolean
-already_accessed_atk_object (AtkObject *obj)
-{
-  static GPtrArray *obj_array = NULL;
-  gboolean found = FALSE;
-  gint i;
-
-  /*
-   * We create a property handler for each object if one was not associated
-   * with it already.
-   *
-   * We add it to our array of objects which have property handlers; if an
-   * object is destroyed it remains in the array.
-   */
-  if (obj_array == NULL)
-    obj_array = g_ptr_array_new ();
-
-  for (i = 0; i < obj_array->len; i++)
-    {
-      if (obj == g_ptr_array_index (obj_array, i))
-        {
-          found = TRUE;
-          break;
-        }
-    }
-  if (!found)
-    g_ptr_array_add (obj_array, obj);
-
-  return found;
-}
-
-/**
- * display_children
- * @obj: An #AtkObject
- * @depth: Number of spaces to indent output.
- * @child_number: The child number of this object.
- *
- * Displays the hierarchy of widgets starting from @obj.
- **/
-void
-display_children (AtkObject *obj, 
-                  gint      depth, 
-                  gint      child_number)
-{
-  display_children_to_depth(obj, -1, depth, child_number);
-}
-
-/**
- * display_children_to_depth
- * @obj: An #AtkObject
- * @to_depth: Display to this depth.
- * @depth: Number of spaces to indent output.
- * @child_number: The child number of this object.
- *
- * Displays the hierarchy of widgets starting from @obj only
- * to the specified depth.
- **/
-void
-display_children_to_depth (AtkObject *obj,
-                           gint      to_depth,
-                           gint      depth,
-                           gint      child_number)
-{
-  AtkRole role;
-  const gchar *rolename;
-  const gchar *typename;
-  gint n_children, parent_index, i;
-
-  if (to_depth >= 0 && depth > to_depth)
-     return;
-
-  if (obj == NULL)
-     return;
-
-  for (i=0; i < depth; i++)
-    g_print(" ");
-
-  role = atk_object_get_role (obj);
-  rolename = atk_role_get_name (role);
-
- /*
-  * Note that child_number and parent_index should be the same
-  * unless there is an error.
-  */
-  parent_index = atk_object_get_index_in_parent(obj);
-  g_print("child <%d == %d> ", child_number, parent_index);
-
-  n_children = atk_object_get_n_accessible_children (obj);
-  g_print ("children <%d> ", n_children);
-
-  if (rolename)
-    g_print("role <%s>, ", rolename);
-  else
-    g_print("role <error>");
-
-  if (GTK_IS_ACCESSIBLE(obj))
-    {
-      GtkWidget *widget;
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-      g_print("name <%s>, ", gtk_widget_get_name(GTK_WIDGET (widget)));
-    }
-  else
-    g_print("name <NULL>, ");
-
-  typename = g_type_name (G_OBJECT_TYPE (obj));
-  g_print ("typename <%s>\n", typename);
-
-  for (i = 0; i < n_children; i++)
-    {
-      AtkObject *child;
-
-      child = atk_object_ref_accessible_child (obj, i);
-      if (child != NULL)
-        {
-          display_children_to_depth (child, to_depth, depth + 1, i);
-          g_object_unref (G_OBJECT (child));
-        }
-    }
-}
-
-/* Test GUI logic */
-
-/* GUI Information for the Select Tests Window */
-typedef struct
-{
-  GtkWidget     *selecttestsWindow;
-  GtkWidget     *hbox;
-  GtkWidget     *vbox;
-  GtkWidget     *label;
-  GtkWidget     *textInsert;
-  GtkWidget     *button;
-  gchar         *selecttestsTitle;
-}MainDialog;
-
-/* Functionality information about each added test */
-typedef struct
-{
-  GtkWidget     *toggleButton;
-  GtkWidget     *hbox;
-  GtkWidget     *parameterLabel[MAX_PARAMS];
-  GtkWidget     *parameterInput[MAX_PARAMS];
-  gchar         *testName;
-  gint          numParameters;
-}TestList;
-
-typedef struct
-{
-   TLruntest   runtest;
-   AtkObject*  obj;
-   gint               win_num;
-}TestCB;
-
-static MainDialog      *md[MAX_WINDOWS];
-static OutputWindow    *ow;
-
-/* An array containing function information on all of the tests */
-static TestList        listoftests[MAX_WINDOWS][MAX_TESTS];
-
-/* A counter for the actual number of added tests */
-gint                   counter;
-
-/* A global for keeping track of the window numbers */
-static gint           window_no = 0;
-/* An array containing the names of the tests that are "on" */
-static gchar           *onTests[MAX_WINDOWS][MAX_TESTS]; 
-static gint            g_visibleDialog = 0;
-static gint           testcount[MAX_WINDOWS];
-static TestCB          testcb[MAX_WINDOWS];
-
-/**
- * create_windows:
- * @obj: An #AtkObject
- * @runtest: The callback function to run when the "Run Tests" button
- *   is clicked.
- * @outwin: The output window to use.  If NULL is passed in, then 
- *   create a new one.
- *
- * Creates the test window and the output window (if @outwin is NULL)
- * Runs _create_output_window() and _create_select_tests_window() 
- * and sets g_visibleDialog to 1
- *
- * Returns: The window number of the created window if successful, -1 otherwise.
- **/
-gint
-create_windows (AtkObject    *obj,
-                TLruntest    runtest,
-                OutputWindow **outwin)
-{
-  gboolean valid;  
-  gint tmp;
-
-  g_visibleDialog = 1;
-  _create_output_window(outwin); 
-  valid = _create_select_tests_window(obj, runtest, outwin);
-  if (valid)
-    {
-      tmp = window_no;
-      window_no++;
-      return tmp;
-    }
-  else
-    return -1;
-}
-
-/** 
- * _create_output_window
- * @outwin: If outwin is passed in as NULL, a new output window is created
- *   otherwise, the outwin passed in is shared.
- *
- * Creates the Test Result Output Window .
- **/
-static void
-_create_output_window (OutputWindow **outwin)
-{
-  GtkWidget *view;
-  GtkWidget *scrolled_window;
-  OutputWindow *localow;
-
-  if (*outwin == NULL)
-    {
-      localow = (OutputWindow *) malloc (sizeof(OutputWindow));
-   
-      localow->outputBuffer = gtk_text_buffer_new(NULL);
-      view = gtk_text_view_new_with_buffer(GTK_TEXT_BUFFER(localow->outputBuffer));
-      gtk_widget_set_size_request (view, 700, 500);
-      gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD);
-      gtk_text_view_set_editable(GTK_TEXT_VIEW(view), FALSE);  
-
-      localow->outputWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-      gtk_window_set_title(GTK_WINDOW(localow->outputWindow), "Test Output");
-      scrolled_window = gtk_scrolled_window_new(NULL, NULL);
-
-      gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_window),
-                                     GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
-      gtk_container_add(GTK_CONTAINER(localow->outputWindow), scrolled_window);
-      gtk_container_add(GTK_CONTAINER(scrolled_window), view);
-      gtk_text_buffer_get_iter_at_offset(localow->outputBuffer, &localow->outputIter, 0);
-      gtk_widget_show(view);
-      gtk_widget_show(scrolled_window);
-      gtk_widget_show(localow->outputWindow);
-
-      gtk_text_buffer_set_text(GTK_TEXT_BUFFER(localow->outputBuffer),
-        "\n\nWelcome to the test GUI:\nTest results are printed here\n\n", 58);
-      gtk_text_buffer_get_iter_at_offset(GTK_TEXT_BUFFER(localow->outputBuffer),
-                                          &localow->outputIter, 0);
-      *outwin = localow;
-      ow = *outwin;
-    }
-}
-
-/** 
- * _create_select_tests_window:
- * @obj: An #AtkObject
- * @runtest: The callback function that is run when the "Run Tests"
- *   button is clicked.
- * @outwin: The output window to use.
- *
- * Creates the Test Select Window 
- *
- * Returns: TRUE if successful, FALSE otherwise
- **/
-static gboolean
-_create_select_tests_window (AtkObject    *obj,
-                             TLruntest    runtest,
-                             OutputWindow **outwin)
-{
-  GtkWidget *hbuttonbox;
-  GtkWidget *scrolledWindow;
-
-  if (window_no >= 0 && window_no < MAX_WINDOWS)
-    {
-      md[window_no] = (MainDialog *) malloc (sizeof(MainDialog));
-     
-      /* Setup Window */
-      md[window_no]->selecttestsTitle = "Test Setting";
-      md[window_no]->selecttestsWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-      gtk_window_set_title (GTK_WINDOW( ow->outputWindow),
-                            md[window_no]->selecttestsTitle);
-      gtk_window_set_resizable (GTK_WINDOW(md[window_no]->selecttestsWindow),
-                                FALSE);
-      gtk_window_set_position (GTK_WINDOW(md[window_no]->selecttestsWindow),
-                               GTK_WIN_POS_CENTER); 
-      g_signal_connect (md[window_no]->selecttestsWindow, 
-                        "destroy",
-                        G_CALLBACK (_destroy),
-                        &md[window_no]->selecttestsWindow);
-     
-      /* Setup Scrolling */
-      scrolledWindow = gtk_scrolled_window_new(NULL, NULL);
-      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledWindow),
-                                      GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); 
-      gtk_widget_set_size_request (scrolledWindow, 500, 600);
-      gtk_container_add (GTK_CONTAINER (md[window_no]->selecttestsWindow), 
-                         scrolledWindow);
-      
-      /* Setup Layout */
-      md[window_no]->vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-      gtk_box_set_homogeneous (GTK_BOX (md[window_no]->vbox), TRUE);
-      md[window_no]->button = gtk_button_new_with_mnemonic ("_Run Tests");
-      hbuttonbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
-      gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox),
-                                 GTK_BUTTONBOX_SPREAD);
-      gtk_box_pack_end (GTK_BOX (hbuttonbox),
-                        GTK_WIDGET (md[window_no]->button), TRUE, TRUE, 0);
-      gtk_box_pack_end (GTK_BOX (md[window_no]->vbox), hbuttonbox,
-                        TRUE, TRUE, 0);
-      gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (scrolledWindow),
-                                             md[window_no]->vbox);
-
-      testcb[window_no].runtest = runtest;
-      testcb[window_no].obj = obj;
-      testcb[window_no].win_num = window_no; 
-      g_signal_connect (md[window_no]->button, 
-                        "clicked",
-                        G_CALLBACK (_testselectioncb),
-                        (gpointer)&testcb[window_no]);
-     
-      /* Show all */
-      gtk_widget_grab_focus (md[window_no]->button);
-      gtk_widget_show (md[window_no]->button);
-      gtk_widget_show (hbuttonbox); 
-      gtk_widget_show (scrolledWindow); 
-      gtk_widget_show_all (GTK_WIDGET (md[window_no]->selecttestsWindow));
-      return TRUE;
-    }
-  else
-    return FALSE;
-}
-
-/** 
- * add_test
- * @window: The window number
- * @name: The test name
- * @num_params: The number of arguments the test uses.
- * @parameter_names: The names of each argument.
- * @default_names: The default values of each argument.
- *
- * Adds a Test with the passed-in details to the Tests Select Window.  
- *
- * Returns: FALSE if the num_params passed in is greater than
- * MAX_PARAMS, otherwise returns TRUE 
- *
- **/
-gboolean
-add_test (gint   window, 
-          gchar  *name,
-          gint   num_params,
-          gchar* parameter_names[],
-          gchar* default_names[])
-{
-  gint i;
-
-  if (num_params > MAX_PARAMS)
-    return FALSE;
-  else
-    {
-      md[window]->hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-      gtk_box_set_spacing (GTK_BOX (md[window]->hbox), 10);
-      gtk_container_set_border_width (GTK_CONTAINER (md[window]->hbox), 10);
-      gtk_container_add (GTK_CONTAINER (md[window]->vbox), md[window]->hbox);
-      listoftests[window][testcount[window]].toggleButton =
-         gtk_toggle_button_new_with_label (name);
-      gtk_box_pack_start (GTK_BOX (md[window]->hbox),
-          listoftests[window][testcount[window]].toggleButton, FALSE, FALSE, 0);
-      listoftests[window][testcount[window]].testName = name;
-      listoftests[window][testcount[window]].numParameters = num_params;
-      for (i=0; i<num_params; i++) 
-        {
-         listoftests[window][testcount[window]].parameterLabel[i] =
-            gtk_label_new (parameter_names[i]);
-          gtk_box_pack_start (GTK_BOX (md[window]->hbox),
-          listoftests[window][testcount[window]].parameterLabel[i], FALSE, FALSE, 0);
-         listoftests[window][testcount[window]].parameterInput[i] = gtk_entry_new();
-          gtk_entry_set_text (GTK_ENTRY (listoftests[window][testcount[window]].parameterInput[i]),
-            default_names[i]);
-          gtk_widget_set_size_request (listoftests[window][testcount[window]].parameterInput[i], 50, 22);
-         gtk_box_pack_start (GTK_BOX (md[window]->hbox),
-            listoftests[window][testcount[window]].parameterInput[i], FALSE, FALSE, 0);
-          gtk_widget_set_sensitive (
-            GTK_WIDGET (listoftests[window][testcount[window]].parameterLabel[i]), FALSE);
-          gtk_widget_set_sensitive (
-            GTK_WIDGET (listoftests[window][testcount[window]].parameterInput[i]), FALSE);
-         gtk_widget_show (listoftests[window][testcount[window]].parameterLabel[i]);
-         gtk_widget_show (listoftests[window][testcount[window]].parameterInput[i]);
-        }
-      g_signal_connect (listoftests[window][testcount[window]].toggleButton,
-                        "toggled",
-                        G_CALLBACK (_toggle_selectedcb),
-                        (gpointer)&(listoftests[window][testcount[window]]));
-      gtk_widget_show (listoftests[window][testcount[window]].toggleButton);
-      gtk_widget_show (md[window]->hbox);
-      gtk_widget_show (md[window]->vbox);
-
-      testcount[window]++;
-      counter++;
-      return TRUE;
-    }  
-}
-
-/** 
- * tests_set:
- * @window: The window number
- * @count: Passes back the number of tests on.
- *
- * Gets an array of strings corresponding to the tests that are "on".
- * A test is assumed on if the toggle button is on and if all its
- * parameters have values.
- *
- * Returns: an array of strings corresponding to the tests that
- * are "on".
- **/
-gchar **tests_set(gint window, int *count)
-{
-  gint        i =0, j = 0, num;
-  gboolean    nullparam;
-  gchar*      input;
-
-  *count = 0;
-  for (i = 0; i < MAX_TESTS; i++)
-      onTests[window][i] = NULL;
-
-  for (i = 0; i < testcount[window]; i++)
-    {
-      nullparam = FALSE;
-      if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (listoftests[window][i].toggleButton)))
-        {
-          num = listoftests[window][i].numParameters;
-          for (j = 0; j < num; j++)
-            {
-              input = gtk_editable_get_chars (
-                    GTK_EDITABLE (listoftests[window][i].parameterInput[j]), 0, -1);
-
-              if (input != NULL && (! strcmp(input, "")))
-                nullparam = TRUE;
-            } 
-          if (!nullparam)
-            {
-              onTests[window][*count] = listoftests[window][i].testName;
-              *count = *count + 1; 
-            }
-        }
-    } 
-  return onTests[window];
-}
-
-/**
- * _get_position_in_array:
- * @window: The window number
- * @the_test_name: The name of the test
- *
- * Gets the index of the passed-in @the_test_name.
- *
- * Returns: the position in listoftests[] of @the_test_name
- **/
-static gint
-_get_position_in_array(gint  window,
-                       gchar *the_test_name)
-{
-  gint        i;
-  
-  for (i = 0; i < testcount[window]; i++)
-    {
-      if (strcmp(listoftests[window][i].testName, the_test_name) == 0)
-        return i;
-    }
-  return -1;
-}
-
-/**
- * _get_position_in_parameters:
- * @window: The window number
- * @label: The label name
- * @position: The parameter position
- *
- * Gets the index of the passed-in parameter @label.
- *
- * Returns: the position in parameterLabel[] (a member of
- * listoftests[]) of @label 
- **/
-static gint
-_get_position_in_parameters(gint  window,
-                            gchar *label,
-                            gint  position)
-{
-  gint                    i;
-  const gchar    *label_string;
-  
-  for (i = 0; i < MAX_PARAMS; i++)
-    {
-      label_string = gtk_label_get_text( 
-               GTK_LABEL (listoftests[window][position].parameterLabel[i]));
-
-      if (strcmp(label_string, label) == 0)
-        return i;
-    }
-  return -1;
-}
-
-/** 
- * set_output_buffer:
- * @output: The string to add to the output buffer
- * 
- * Tidies up the output Window 
- **/
-void
-set_output_buffer(gchar *output)
-{
-  gtk_text_buffer_insert (GTK_TEXT_BUFFER (ow->outputBuffer),
-                          &ow->outputIter, output, strlen(output));
-  gtk_text_buffer_get_iter_at_offset (GTK_TEXT_BUFFER (ow->outputBuffer),
-                                      &ow->outputIter, 0);
-}
-
-/**
- * isVisibleDialog:
- *
- * Informs user if a visible test window running.
- *
- * Returns: TRUE if g_visibleDialog is set to 1, otherwise FALSE
- **/
-gboolean
-isVisibleDialog(void)
-{
- if (g_visibleDialog >= 1)
-   return TRUE;
- else
-   return FALSE;
-}
-
-/**
- * get_arg_of_func:
- * @window: The window number
- * @function_name: The name of the function
- * @arg_label: The label of the argument.
- *
- * Gets the user input associated with the @function_name and @arg_label.
- *
- * Returns: the user input associated with the @function_name and @arg_label.
- **/
-gchar*
-get_arg_of_func (gint  window,
-                 gchar *function_name,
-                 gchar *arg_label)
-{
-  const gchar       *argString;
-  gchar                      *retString;
-  gint                       position, paramPosition;
-
-  position =  _get_position_in_array(window, function_name);
-
-  if (position == -1)
-    {
-      g_print("No such function\n");
-      return NULL;
-    }
-
-  paramPosition = _get_position_in_parameters(window, arg_label, position);
-
-  if (paramPosition == -1)
-    {
-      g_print("No such parameter Label\n");
-      return NULL;
-    }
-
-  if (position != -1 && paramPosition != -1)
-    {
-      argString = gtk_editable_get_chars (
-        GTK_EDITABLE (listoftests[window][position].parameterInput[paramPosition]),
-      0, -1);
-      retString = g_strdup(argString);
-    }
-  else
-    retString = NULL;
-
-  return retString;
-}
-
-/**
- * string_to_int:
- * @the_string: The string to convert
- *
- * Converts the passed-in string to an integer 
- *
- * Returns: An integer corresponding to @the_string.
- **/
-int
-string_to_int (const char *the_string)
-{
-  char *end_ptr;
-  double ret_val;
-  int int_ret_val; 
-
-  while (1)
-    {
-      ret_val = strtod( the_string, &end_ptr);
-      if (*end_ptr == '\0')
-        break;
-      else
-        printf("\nError: input must be a number\n");
-    }
-   
-  int_ret_val = (int) ret_val;
-  return (int_ret_val);
-}
-
-/** 
- * _toggle_selectedcb:
- * @widget: The ToggleButton widget
- * @test: user data containing the TestList structure.
- *
- * Toggle Button Callback, activating the text entry fields 
- **/
-static void
-_toggle_selectedcb (GtkWidget *widget,
-                    gpointer  test)
-{
-  int i;
-  TestList *testlist = (TestList *) test;
-  gboolean toggled;
-  gboolean sensitive;
-  toggled = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget));
-  if (toggled)
-    sensitive = TRUE;
-  else
-    sensitive = FALSE;
-
-  for (i=0; i < testlist->numParameters; i++)
-    {
-      gtk_widget_set_sensitive (GTK_WIDGET (testlist->parameterLabel[i]),
-                                sensitive);
-      gtk_widget_set_sensitive (GTK_WIDGET (testlist->parameterInput[i]),
-                                sensitive);
-    }
-}
-
-/* 
- * _testselectioncb:
- * widget: The Button widget
- * data: The user data containing a TestCB structure
- *
- * Callback for when the "Run Tests" button is pressed 
- **/
-static void
-_testselectioncb (GtkWidget *widget,
-                  gpointer data)
-{
-  TestCB* local_testcb = (TestCB *)data;
-  local_testcb->runtest(local_testcb->obj, local_testcb->win_num);
-}
-
-/**
- * _destroy:
- * @widget: The GUI widget
- * @data: User data, not used.
- *
- * Destroy Callback.
- **/
-static void
-_destroy (GtkWidget *widget,
-          gpointer  data)
-{
-  gtk_main_quit();
-}
-
diff --git a/modules/other/gail/tests/testlib.h b/modules/other/gail/tests/testlib.h
deleted file mode 100644 (file)
index 621a9e5..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-#include <stdio.h>
-#include <gtk/gtk.h>
-
-/* Maximum characters in the output buffer */
-#define MAX_LINE_SIZE   1000
-
-/* Maximum number of tests */
-#define MAX_TESTS       30 
-
-/* Maximum number of test windows */
-#define MAX_WINDOWS    5
-
-/* Maximum number of parameters any test can have */
-#define MAX_PARAMS      3
-
-/* Information on the Output Window */
-
-typedef struct
-{
-  GtkWidget     *outputWindow;
-  GtkTextBuffer *outputBuffer; 
-  GtkTextIter   outputIter;
-}OutputWindow;
-
-typedef void (*TLruntest) (AtkObject * obj, gint win_num);
-
-/* General purpose functions */
-
-gboolean               already_accessed_atk_object     (AtkObject      *obj);
-AtkObject*             find_object_by_role             (AtkObject      *obj,
-                                                       AtkRole         *role,
-                                                       gint            num_roles);
-AtkObject*             find_object_by_type             (AtkObject      *obj,
-                                                       gchar           *type);
-AtkObject*             find_object_by_name_and_role    (AtkObject      *obj,
-                                                       const gchar     *name,
-                                                       AtkRole         *roles,
-                                                       gint            num_roles);
-AtkObject*             find_object_by_accessible_name_and_role (AtkObject *obj,
-                                                       const gchar     *name,
-                                                       AtkRole         *roles,
-                                                       gint            num_roles);
-void                   display_children                (AtkObject      *obj,
-                                                        gint           depth,
-                                                        gint           child_number);
-void                   display_children_to_depth       (AtkObject      *obj,
-                                                        gint           to_depth,
-                                                        gint           depth,
-                                                        gint           child_number);
-
-
-/* Test GUI functions */
-
-gint                   create_windows                  (AtkObject      *obj,
-                                                       TLruntest       runtest,
-                                                       OutputWindow    **outwin);
-gboolean               add_test                        (gint           window,
-                                                       gchar           *name,
-                                                       gint            num_params,
-                                                       gchar           *parameter_names[],
-                                                       gchar           *default_names[]);
-void                   set_output_buffer               (gchar          *output);
-gchar                  **tests_set                     (gint           window,
-                                                       int             *count);
-gchar                  *get_arg_of_func                (gint           window,
-                                                       gchar           *function_name,
-                                                       gchar           *arg_label);
-int                    string_to_int                   (const char     *the_string);
-gboolean               isVisibleDialog                 (void);
-
diff --git a/modules/other/gail/tests/testmenuitem.c b/modules/other/gail/tests/testmenuitem.c
deleted file mode 100644 (file)
index a890c0b..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-#include <string.h>
-#include <gtk/gtk.h>
-#include "testlib.h"
-
-/*
- * This module is used to test the accessible implementation for menu items
- *
- * 1) When a menu item is clicked in testgtk, the action for the
- * item is performed.
- * 2) The name of the keybinding for the 'activate" action for a menu item
- * is output, if it exists.
- * 3) Execute the action for a menu item programatically
- */
-#define NUM_VALID_ROLES 1
-
-static void _create_event_watcher (void);
-static void _check_object (AtkObject *obj);
-static gint _do_menu_item_action (gpointer data);
-
-static void 
-_check_object (AtkObject *obj)
-{
-  AtkRole role;
-  static const char *name = NULL;
-  static gboolean first_time = TRUE;
-
-  role = atk_object_get_role (obj);
-  if (role == ATK_ROLE_FRAME)
-  /*
-   * Find the specified menu item
-   */
-  {
-    AtkRole valid_roles[NUM_VALID_ROLES];
-    AtkObject *atk_menu_item;
-    GtkWidget *widget;
-
-    if (name == NULL)
-    {
-      valid_roles[0] = ATK_ROLE_MENU_ITEM;
-
-      name = g_getenv ("TEST_ACCESSIBLE_NAME");
-      if (name == NULL)
-        name = "foo";
-    }
-    atk_menu_item = find_object_by_accessible_name_and_role (obj, name,
-                     valid_roles, NUM_VALID_ROLES);
-
-    if (atk_menu_item == NULL)
-    {
-      g_print ("Object not found for %s\n", name);
-      return;
-    }
-
-    g_assert (GTK_IS_ACCESSIBLE (atk_menu_item));
-    widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (atk_menu_item));
-    g_assert (GTK_IS_MENU_ITEM (widget));
-
-    if (first_time)
-      first_time = FALSE;
-    else
-      return;
-
-    /*
-     * This action opens the menu whose name is "foo" or whatever
-     * was specified in the environment variable TEST_ACCESSIBLE_NAME
-     */
-    atk_action_do_action (ATK_ACTION (atk_menu_item), 0);
-  }
-  else if ((role == ATK_ROLE_MENU_ITEM) ||
-           (role == ATK_ROLE_CHECK_MENU_ITEM) ||
-           (role == ATK_ROLE_RADIO_MENU_ITEM) ||
-           (role == ATK_ROLE_TEAR_OFF_MENU_ITEM))
-  {
-    const char *keybinding;
-    const char *accessible_name;
-
-    accessible_name = atk_object_get_name (obj);
-    if (accessible_name)
-      g_print ("Name: %s\n", accessible_name);
-    g_print ("Action: %s\n", atk_action_get_name (ATK_ACTION (obj), 0));
-    keybinding = atk_action_get_keybinding (ATK_ACTION (obj), 0);
-    if (keybinding)
-      g_print ("KeyBinding: %s\n", keybinding);
-    /*
-     * Do the action associated with the menu item once, otherwise
-     * we get into a loop
-     */
-    if (strcmp (name, accessible_name) == 0)
-    {
-      if (first_time)
-        first_time = FALSE;
-      else
-        return;
-      if (g_getenv ("TEST_ACCESSIBLE_AUTO"))
-        {
-          g_idle_add (_do_menu_item_action, obj);
-        }
-    }
-  }
-  else
-  {
-    const char *accessible_name;
-
-    accessible_name = atk_object_get_name (obj);
-    if (accessible_name)
-      g_print ("Name: %s\n", accessible_name);
-    else if (GTK_IS_ACCESSIBLE (obj))
-    {
-      GtkWidget *widget;
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-      g_print ("Type: %s\n", g_type_name (G_OBJECT_TYPE (widget)));
-    } 
-  }
-}
-
-static gint _do_menu_item_action (gpointer data)
-{
-  AtkObject *obj = ATK_OBJECT (data);
-
-  atk_action_do_action (ATK_ACTION (obj), 0);
-
-  return FALSE;
-}
-
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_check_object);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testmenuitem Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/testnotebook.c b/modules/other/gail/tests/testnotebook.c
deleted file mode 100644 (file)
index 9b8f9e3..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-#include <stdio.h>
-
-#include <glib.h>
-#include <atk/atk.h>
-#include <gtk/gtk.h>
-#include "testlib.h"
-
-#define NUM_VALID_ROLES 1
-
-static void _print_type (AtkObject *obj);
-static void _do_selection (AtkObject *obj);
-static gint _finish_selection (gpointer data);
-static gint _remove_page (gpointer data);
-
-static void _print_type (AtkObject *obj)
-{
-  const gchar *typename = NULL;
-  const gchar *name = NULL;
-  const gchar *description = NULL;
-  AtkRole role;
-
-  if (GTK_IS_ACCESSIBLE (obj))
-  {
-    GtkWidget* widget = NULL;
-
-    widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-    typename = g_type_name (G_OBJECT_TYPE (widget));
-    g_print ("\tWidget type name: %s\n", typename ? typename : "NULL");
-  }
-
-  typename = g_type_name (G_OBJECT_TYPE (obj));
-  g_print ("\tAccessible type name: %s\n", typename ? typename : "NULL");
-  
-  name = atk_object_get_name (obj);
-  g_print("\tAccessible Name: %s\n", (name) ? name : "NULL");
-  
-  role = atk_object_get_role(obj);
-  g_print ("\tAccessible Role: %d\n", role);
-  
-  description = atk_object_get_description (obj);
-  g_print ("\tAccessible Description: %s\n", (description) ? description : "NULL");
-  if (role ==  ATK_ROLE_PAGE_TAB)
-  {
-    AtkObject *parent, *child;
-    gint x, y, width, height;
-
-    x = y = width = height = 0;
-    atk_component_get_extents (ATK_COMPONENT (obj), &x, &y, &width, &height,
-                               ATK_XY_SCREEN);
-    g_print ("obj: x: %d y: %d width: %d height: %d\n", x, y, width, height);
-    x = y = width = height = 0;
-    atk_component_get_extents (ATK_COMPONENT (obj), &x, &y, &width, &height,
-                               ATK_XY_WINDOW);
-    g_print ("obj: x: %d y: %d width: %d height: %d\n", x, y, width, height);
-    parent = atk_object_get_parent (obj);
-    x = y = width = height = 0;
-    atk_component_get_extents (ATK_COMPONENT (parent), &x, &y, &width, &height,
-                               ATK_XY_SCREEN);
-    g_print ("parent: x: %d y: %d width: %d height: %d\n", x, y, width, height);
-    x = y = width = height = 0;
-    atk_component_get_extents (ATK_COMPONENT (parent), &x, &y, &width, &height,
-                               ATK_XY_WINDOW);
-    g_print ("parent: x: %d y: %d width: %d height: %d\n", x, y, width, height);
-
-    child = atk_object_ref_accessible_child (obj, 0);
-    x = y = width = height = 0;
-    atk_component_get_extents (ATK_COMPONENT (child), &x, &y, &width, &height,
-                               ATK_XY_SCREEN);
-    g_print ("child: x: %d y: %d width: %d height: %d\n", x, y, width, height);
-    x = y = width = height = 0;
-    atk_component_get_extents (ATK_COMPONENT (child), &x, &y, &width, &height,
-                               ATK_XY_WINDOW);
-    g_print ("child: x: %d y: %d width: %d height: %d\n", x, y, width, height);
-
-    g_object_unref (child);
-  }
-}
-
-
-static void
-_do_selection (AtkObject *obj)
-{
-  gint i;
-  gint n_children;
-  AtkRole role;
-  AtkObject *selection_obj;
-  static gboolean done_selection = FALSE;
-  
-  if (done_selection)
-    return;
-
-  role = atk_object_get_role (obj);
-
-  if (role == ATK_ROLE_FRAME)
-  {
-    AtkRole roles[NUM_VALID_ROLES];
-
-    roles[0] = ATK_ROLE_PAGE_TAB_LIST;
-
-    selection_obj = find_object_by_role (obj, roles, NUM_VALID_ROLES);
-
-    if (selection_obj)
-    {
-      done_selection = TRUE;
-    }
-    else
-      return;
-  }
-  else
-  {
-    return;
-  }
-
-  g_print ("*** Start do_selection ***\n");
-  
-  n_children = atk_object_get_n_accessible_children (selection_obj);
-  g_print ("*** Number of notebook pages: %d\n", n_children); 
-
-  for (i = 0; i < n_children; i++)
-  {
-    if (atk_selection_is_child_selected (ATK_SELECTION (selection_obj), i))
-    {
-      g_print ("%d page selected\n", i);
-    }
-    else
-    {
-      g_print ("%d page not selected\n", i);
-    }
-  }
-  /*
-   * Should not be able to select all items in a notebook.
-   */
-  atk_selection_select_all_selection (ATK_SELECTION (selection_obj));
-  i = atk_selection_get_selection_count (ATK_SELECTION (selection_obj));
-  if ( i != 1)
-  {
-    g_print ("Unexpected selection count: %d, expected 1\n", i);
-    g_print ("\t value of i is: %d\n", i);
-    return;
-  }
-
-  for (i = 0; i < n_children; i++)
-  {
-    atk_selection_add_selection (ATK_SELECTION (selection_obj), i);
-       
-    if (atk_selection_is_child_selected (ATK_SELECTION (selection_obj), i))
-    {
-      g_print ("Page %d: successfully selected\n", i);
-      _finish_selection (selection_obj);
-    }
-    else
-    {
-      g_print ("ERROR: child %d: selection failed\n", i);
-    }
-  }
-  g_print ("*** End _do_selection ***\n");
-  g_timeout_add (5000, _remove_page, selection_obj);
-} 
-
-static gint _remove_page (gpointer data)
-{
-  AtkObject *obj = ATK_OBJECT (data);
-  GtkWidget *widget = NULL;
-
-  widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-
-  g_return_val_if_fail (GTK_IS_NOTEBOOK (widget), FALSE);
-  gtk_notebook_remove_page (GTK_NOTEBOOK (widget), 4);
-  return FALSE;
-}
-
-static gint _finish_selection (gpointer data)
-{
-  AtkObject *obj = ATK_OBJECT (data);
-  AtkObject *selected;
-  AtkObject *parent_object;
-  GtkWidget *parent_widget;
-  gint      i, index;
-
-  g_print ("\t*** Start Finish selection ***\n");
-  
-  i = atk_selection_get_selection_count (ATK_SELECTION (obj));
-  if (i != 1)
-  {
-    g_print ("\tUnexpected selection count: %d, expected 1\n", i);
-    return FALSE;
-  }
-  selected = atk_selection_ref_selection (ATK_SELECTION (obj), 0);
-  g_return_val_if_fail (selected != NULL, FALSE);
-  
-  g_print ("\t*** Selected Item ***\n");
-  index = atk_object_get_index_in_parent (selected);
-  g_print ("\tIndex in parent is: %d\n", index);
-  
-  parent_object = atk_object_get_parent (selected);
-  g_return_val_if_fail (ATK_IS_OBJECT (parent_object), FALSE);
-  g_return_val_if_fail (parent_object == obj, FALSE);
-  parent_widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (parent_object));
-  g_return_val_if_fail (GTK_IS_NOTEBOOK (parent_widget), FALSE);
-  
-  _print_type (selected);
-  i = atk_selection_get_selection_count (ATK_SELECTION (obj));
-  g_return_val_if_fail (i == 1, FALSE);
-  g_object_unref (selected);
-  g_print ("\t*** End Finish selection ***\n");
-  return FALSE;
-}
-  
-  
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_do_selection);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testnotebook Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/testobject.c b/modules/other/gail/tests/testobject.c
deleted file mode 100644 (file)
index d245460..0000000
+++ /dev/null
@@ -1,339 +0,0 @@
-#include <gtk/gtk.h>
-#include "testlib.h"
-
-static void _print_accessible (AtkObject *obj);
-static void _print_type (AtkObject *obj);
-static void _print_states (AtkObject *obj);
-static void _check_children (AtkObject *obj);
-static void _check_relation (AtkObject *obj);
-static void _create_event_watcher (void);
-static void _focus_handler (AtkObject *obj, gboolean focus_in);
-static gboolean _children_changed (GSignalInvocationHint *ihint,
-                                   guint                  n_param_values,
-                                   const GValue          *param_values,
-                                   gpointer               data);
-
-static guint id;
-
-static void _print_states (AtkObject *obj)
-{
-  AtkStateSet *state_set;
-  gint i;
-
-  state_set = atk_object_ref_state_set (obj);
-
-  g_print ("*** Start states ***\n");
-  for (i = 0; i < 64; i++)
-    {
-       AtkStateType one_state;
-       const gchar *name;
-
-       if (atk_state_set_contains_state (state_set, i))
-         {
-           one_state = i;
-
-           name = atk_state_type_get_name (one_state);
-
-           if (name)
-             g_print("%s\n", name);
-         }
-    }
-  g_object_unref (state_set);
-  g_print ("*** End states ***\n");
-}
-
-static void _print_type (AtkObject *obj)
-{
-  const gchar * typename = NULL;
-  const gchar * name = NULL;
-  AtkRole role;
-  static gboolean in_print_type = FALSE;
-   
-  if (GTK_IS_ACCESSIBLE (obj))
-    {
-      GtkWidget* widget = NULL;
-
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-      typename = g_type_name (G_OBJECT_TYPE (widget));
-      g_print ("Widget type name: %s\n", typename ? typename : "NULL");
-    }
-  typename = g_type_name (G_OBJECT_TYPE (obj));
-  g_print ("Accessible type name: %s\n", typename ? typename : "NULL");
-  name = atk_object_get_name (obj);
-  g_print("Accessible Name: %s\n", (name) ? name : "NULL");
-  role = atk_object_get_role (obj);
-  g_print ("Accessible Role: %s\n", atk_role_get_name (role));
-
-  if (ATK_IS_COMPONENT (obj))
-    {
-      gint x, y, width, height;
-      AtkStateSet *states;
-
-      _print_states (obj);
-      states = atk_object_ref_state_set (obj);
-      if (atk_state_set_contains_state (states, ATK_STATE_VISIBLE))
-        {
-          AtkObject *parent;
-
-          atk_component_get_extents (ATK_COMPONENT (obj), 
-                                     &x, &y, &width, &height, 
-                                     ATK_XY_SCREEN);
-          g_print ("ATK_XY_SCREEN: x: %d y: %d width: %d height: %d\n",
-                   x, y, width, height);
-
-          atk_component_get_extents (ATK_COMPONENT (obj), 
-                                     &x, &y, &width, &height, 
-                                     ATK_XY_WINDOW);
-          g_print ("ATK_XY_WINDOW: x: %d y: %d width: %d height: %d\n", 
-                   x, y, width, height);
-          if (atk_state_set_contains_state (states, ATK_STATE_SHOWING) &&
-              ATK_IS_TEXT (obj))
-            {
-              gint offset;
-
-              atk_text_get_character_extents (ATK_TEXT (obj), 1, 
-                                              &x, &y, &width, &height, 
-                                              ATK_XY_WINDOW);
-              g_print ("Character extents : %d %d %d %d\n", 
-                       x, y, width, height);
-              if (width != 0 && height != 0)
-                {
-                  offset = atk_text_get_offset_at_point (ATK_TEXT (obj), 
-                                                         x, y, 
-                                                         ATK_XY_WINDOW);
-                  if (offset != 1)
-                    {
-                      g_print ("Wrong offset returned (%d) %d\n", 1, offset);
-                    }
-                }
-            }
-          if (in_print_type)
-            return;
-
-          parent = atk_object_get_parent (obj);
-          if (!ATK_IS_COMPONENT (parent))
-            {
-              /* Assume toplevel */
-              g_object_unref (G_OBJECT (states));
-              return;
-            }
-#if 0
-          obj1 = atk_component_ref_accessible_at_point (ATK_COMPONENT (parent),
-                                                        x, y, ATK_XY_WINDOW);
-          if (obj != obj1)
-            {
-              g_print ("Inconsistency between object and ref_accessible_at_point\n");
-              in_print_type = TRUE;
-              _print_type (obj1);
-              in_print_type = FALSE;
-            }
-#endif
-        }
-      g_object_unref (G_OBJECT (states));
-    }
-}
-
-static void _print_accessible (AtkObject *obj)
-{
-  GtkWidget* widget = NULL;
-  AtkObject* parent_atk;
-  AtkObject* ref_obj;
-  AtkRole    role;
-  static gboolean first_time = TRUE;
-
-  if (first_time)
-    {
-      first_time = FALSE;
-      atk_add_global_event_listener (_children_changed, 
-                                     "Atk:AtkObject:children_changed");
-    }
-
-  /*
-   * Check that the object returned by the atk_implementor_ref_accessible()
-   * for a widget is the same as the accessible object
-   */
-  if (GTK_IS_ACCESSIBLE (obj))
-    {
-      widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-      ref_obj = atk_implementor_ref_accessible (ATK_IMPLEMENTOR (widget));
-      g_assert (ref_obj == obj);
-      g_object_unref (G_OBJECT (ref_obj));
-    }
-  /*
-   * Add a focus handler so we see focus out events as well
-   */
-  if (ATK_IS_COMPONENT (obj))
-    atk_component_add_focus_handler (ATK_COMPONENT (obj), _focus_handler);
-  g_print ("Object:\n");
-  _print_type (obj);
-  _print_states (obj);
-
-  /*
-   * Get the parent object
-   */
-  parent_atk = atk_object_get_parent (obj);
-  if (parent_atk)
-    {
-      g_print ("Parent Object:\n");
-      _print_type (parent_atk);
-      parent_atk = atk_object_get_parent (parent_atk);
-      if (parent_atk)
-        {
-          g_print ("Grandparent Object:\n");
-          _print_type (parent_atk);
-        }
-    } 
-  else 
-    {
-      g_print ("No parent\n");
-    }
-
-  role = atk_object_get_role (obj);
-
-  if ((role == ATK_ROLE_FRAME) || (role == ATK_ROLE_DIALOG))
-    {
-      _check_children (obj);
-    }
-}
-
-static void _check_relation (AtkObject *obj)
-{
-  AtkRelationSet* relation_set = atk_object_ref_relation_set (obj);
-  gint n_relations, i;
-
-  g_return_if_fail (relation_set);
-
-  n_relations = atk_relation_set_get_n_relations (relation_set);
-  for (i = 0; i < n_relations; i++)
-    {
-      AtkRelation* relation = atk_relation_set_get_relation (relation_set, i);
-
-      g_print ("Index: %d Relation type: %d Number: %d\n", i,
-                atk_relation_get_relation_type (relation),
-                atk_relation_get_target (relation)->len);
-    }
-  g_object_unref (relation_set);
-}
-
-static void _check_children (AtkObject *obj)
-{
-  gint n_children, i;
-  AtkLayer layer;
-  AtkRole role;
-
-  g_print ("Start Check Children\n");
-  n_children = atk_object_get_n_accessible_children (obj);
-  g_print ("Number of children: %d\n", n_children);
-
-  role = atk_object_get_role (obj);
-
-  if (ATK_IS_COMPONENT (obj))
-    {
-      atk_component_add_focus_handler (ATK_COMPONENT (obj), _focus_handler);
-      layer = atk_component_get_layer (ATK_COMPONENT (obj));
-      if (role == ATK_ROLE_MENU)
-             g_assert (layer == ATK_LAYER_POPUP);
-      else
-             g_print ("Layer: %d\n", layer);
-    }
-
-  for (i = 0; i < n_children; i++)
-    {
-      AtkObject *child;
-      AtkObject *parent;
-      int j;
-
-      child = atk_object_ref_accessible_child (obj, i);
-      parent = atk_object_get_parent (child);
-      j = atk_object_get_index_in_parent (child);
-      _print_type (child);
-      _check_relation (child);
-      _check_children (child);
-      if (obj != parent)
-        {
-          g_print ("*** Inconsistency between atk_object_get_parent() and "
-                   "atk_object_ref_accessible_child() ***\n");
-          _print_type (child);
-          _print_type (obj);
-          if (parent)
-            _print_type (parent);
-        }
-      g_object_unref (G_OBJECT (child));
-                 
-      if (j != i)
-        g_print ("*** Inconsistency between parent and children %d %d ***\n",
-                 i, j);
-    }
-  g_print ("End Check Children\n");
-}
-
-static gboolean
-_children_changed (GSignalInvocationHint *ihint,
-                   guint                  n_param_values,
-                   const GValue          *param_values,
-                   gpointer               data)
-{
-  GObject *object;
-  guint index;
-  gpointer target;
-  const gchar *target_name = "NotAtkObject";
-
-  object = g_value_get_object (param_values + 0);
-  index = g_value_get_uint (param_values + 1);
-  target = g_value_get_pointer (param_values + 2);
-  if (G_IS_OBJECT (target))
-    {
-      if (ATK_IS_OBJECT (target))
-        {
-          target_name = atk_object_get_name (target);
-        }
-      if (!target_name) 
-        target_name = g_type_name (G_OBJECT_TYPE (G_OBJECT (target)));
-    }
-  else
-    {
-      if (!target)
-        {
-          AtkObject *child;
-
-          child = atk_object_ref_accessible_child (ATK_OBJECT (object), index);
-          if (child)
-            {
-              target_name = g_type_name (G_OBJECT_TYPE (G_OBJECT (child)));
-              g_object_unref (child);
-            }
-        }
-    }
-  g_print ("_children_watched: %s %s %s index: %d\n", 
-           g_type_name (G_OBJECT_TYPE (object)),
-           g_quark_to_string (ihint->detail),
-           target_name, index);
-  return TRUE;
-}
-
-static void
-_create_event_watcher (void)
-{
-  /*
-   * _print_accessible() will be called for an accessible object when its
-   * widget receives focus.
-   */
-  id = atk_add_focus_tracker (_print_accessible);
-}
-
-static void 
-_focus_handler (AtkObject *obj, gboolean focus_in)
-{
-  g_print ("In _focus_handler focus_in: %s\n", focus_in ? "true" : "false"); 
-  _print_type (obj);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testobject Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/testpaned.c b/modules/other/gail/tests/testpaned.c
deleted file mode 100644 (file)
index 3888162..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-#include <string.h>
-#include <stdlib.h>
-#include <gtk/gtk.h>
-#include <testlib.h>
-
-static gint _test_paned (gpointer data);
-static void _check_paned (AtkObject *obj);
-
-static void _property_change_handler (AtkObject   *obj,
-                                      AtkPropertyValues *values);
-
-#define NUM_VALID_ROLES 1
-static gint last_position;
-
-static void _property_change_handler (AtkObject   *obj,
-                                      AtkPropertyValues   *values)
-{
-  const gchar *type_name = g_type_name (G_TYPE_FROM_INSTANCE (obj));
-  const gchar *name = atk_object_get_name (obj);
-
-  g_print ("_property_change_handler: Accessible Type: %s\n",
-           type_name ? type_name : "NULL");
-  g_print ("_property_change_handler: Accessible name: %s\n",
-           name ? name : "NULL");
-  g_print ("_property_change_handler: PropertyName: %s\n",
-           values->property_name ? values->property_name: "NULL");
-  if (strcmp (values->property_name, "accessible-value") == 0)
-  {
-    GValue *value, val;
-    int position;
-    value = &val;
-
-    memset (value, 0, sizeof (GValue));
-    atk_value_get_current_value (ATK_VALUE (obj), value);
-    g_return_if_fail (G_VALUE_HOLDS_INT (value));
-    position = g_value_get_int (value); 
-    g_print ("Position is  %d previous position was %d\n", 
-             position, last_position);
-    last_position = position;
-    atk_value_get_minimum_value (ATK_VALUE (obj), value);
-    g_return_if_fail (G_VALUE_HOLDS_INT (value));
-    position = g_value_get_int (value); 
-    g_print ("Minimum Value is  %d\n", position); 
-    atk_value_get_maximum_value (ATK_VALUE (obj), value);
-    g_return_if_fail (G_VALUE_HOLDS_INT (value));
-    position = g_value_get_int (value); 
-    g_print ("Maximum Value is  %d\n", position); 
-  }
-}
-static gint _test_paned (gpointer data)
-{
-  AtkObject *obj = ATK_OBJECT (data);
-  AtkRole role = atk_object_get_role (obj);
-  static gint times = 0;
-
-  if (role == ATK_ROLE_SPLIT_PANE)
-  {
-    GValue *value, val;
-    int position;
-    value = &val;
-
-    memset (value, 0, sizeof (GValue));
-    atk_value_get_current_value (ATK_VALUE (obj), value);
-    g_return_val_if_fail (G_VALUE_HOLDS_INT (value), FALSE);
-    position = g_value_get_int (value); 
-    g_print ("Position is : %d\n", position);
-    last_position = position;
-    position *= 2;
-    g_value_set_int (value, position);
-    atk_value_set_current_value (ATK_VALUE (obj), value);
-    times++;
-  }
-  if (times < 4)
-    return TRUE;
-  else
-    return FALSE;
-}
-
-static void _check_paned (AtkObject *obj)
-{
-  static gboolean done_paned = FALSE;
-  AtkRole role;
-
-  role = atk_object_get_role (obj);
-
-  if (role == ATK_ROLE_FRAME)
-  {
-    AtkRole roles[NUM_VALID_ROLES];
-    AtkObject *paned_obj;
-
-    if (done_paned)
-      return;
-
-    roles[0] = ATK_ROLE_SPLIT_PANE;
-
-    paned_obj = find_object_by_role (obj, roles, NUM_VALID_ROLES);
-
-    if (paned_obj)
-    {
-      if (!done_paned)
-      {
-        done_paned = TRUE;
-      }
-      atk_object_connect_property_change_handler (paned_obj,
-                   (AtkPropertyChangeHandler*) _property_change_handler);
-      g_timeout_add (2000, _test_paned, paned_obj);
-    }
-
-    return;
-  }
-  if (role != ATK_ROLE_COMBO_BOX)
-    return;
-}
-
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_check_paned);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testpaned Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/testprops.c b/modules/other/gail/tests/testprops.c
deleted file mode 100644 (file)
index bae01cc..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-#include <string.h>
-#include <stdlib.h>
-#include <atk/atk.h>
-#include <gtk/gtk.h>
-#include <testlib.h>
-
-static void _traverse_children (AtkObject *obj);
-static void _add_handler (AtkObject *obj);
-static void _check_properties (AtkObject *obj);
-static void _property_change_handler (AtkObject   *obj,
-                                      AtkPropertyValues *values);
-static void _state_changed (AtkObject   *obj,
-                            const gchar *name,
-                            gboolean    set);
-static void _selection_changed (AtkObject   *obj);
-static void _visible_data_changed (AtkObject   *obj);
-static void _model_changed (AtkObject   *obj);
-static void _create_event_watcher (void);
-
-static guint id;
-
-static void 
-_state_changed (AtkObject   *obj,
-                const gchar *name,
-                gboolean    set)
-{
-  g_print ("_state_changed: %s: state %s %s\n", 
-           g_type_name (G_OBJECT_TYPE (obj)),
-           set ? "is" : "was", name);
-}
-
-static void 
-_selection_changed (AtkObject   *obj)
-{
-  gchar *type;
-
-  if (ATK_IS_TEXT (obj))
-    type = "text";
-  else if (ATK_IS_SELECTION (obj))
-    type = "child selection";
-  else
-    {
-      g_assert_not_reached();
-      return;
-    }
-
-  g_print ("In selection_changed signal handler for %s, object type: %s\n",
-           type, g_type_name (G_OBJECT_TYPE (obj)));
-}
-
-static void 
-_visible_data_changed (AtkObject   *obj)
-{
-  g_print ("In visible_data_changed signal handler, object type: %s\n",
-           g_type_name (G_OBJECT_TYPE (obj)));
-}
-
-static void 
-_model_changed (AtkObject   *obj)
-{
-  g_print ("In model_changed signal handler, object type: %s\n",
-           g_type_name (G_OBJECT_TYPE (obj)));
-}
-
-static void 
-_property_change_handler (AtkObject   *obj,
-                          AtkPropertyValues   *values)
-{
-  const gchar *type_name = g_type_name (G_TYPE_FROM_INSTANCE (obj));
-  const gchar *name = atk_object_get_name (obj);
-
-  g_print ("_property_change_handler: Accessible Type: %s\n",
-           type_name ? type_name : "NULL");
-  g_print ("_property_change_handler: Accessible name: %s\n",
-           name ? name : "NULL");
-  g_print ("_property_change_handler: PropertyName: %s\n",
-           values->property_name ? values->property_name: "NULL");
-  if (G_VALUE_HOLDS_STRING (&values->new_value))
-    g_print ("_property_change_handler: PropertyValue: %s\n",
-             g_value_get_string (&values->new_value));
-  else if (strcmp (values->property_name, "accessible-child") == 0)
-    {
-      if (G_IS_VALUE (&values->old_value))
-        {
-          g_print ("Child is removed: %s\n", 
-               g_type_name (G_TYPE_FROM_INSTANCE (g_value_get_pointer (&values->old_value))));
-        }
-      if (G_IS_VALUE (&values->new_value))
-        {
-          g_print ("Child is added: %s\n", 
-               g_type_name (G_TYPE_FROM_INSTANCE (g_value_get_pointer (&values->new_value))));
-        }
-    }
-  else if (strcmp (values->property_name, "accessible-parent") == 0)
-    {
-      if (G_IS_VALUE (&values->old_value))
-        {
-          g_print ("Parent is removed: %s\n", 
-               g_type_name (G_TYPE_FROM_INSTANCE (g_value_get_pointer (&values->old_value))));
-        }
-      if (G_IS_VALUE (&values->new_value))
-        {
-          g_print ("Parent is added: %s\n", 
-               g_type_name (G_TYPE_FROM_INSTANCE (g_value_get_pointer (&values->new_value))));
-        }
-    }
-  else if (strcmp (values->property_name, "accessible-value") == 0)
-    {
-      if (G_VALUE_HOLDS_DOUBLE (&values->new_value))
-        {
-          g_print ("Value now is (double) %f\n", 
-                   g_value_get_double (&values->new_value));
-        }
-    }
-}
-
-static void 
-_traverse_children (AtkObject *obj)
-{
-  gint n_children, i;
-  AtkRole role;
-  role = atk_object_get_role (obj);
-
-  if ((role == ATK_ROLE_TABLE) ||
-      (role == ATK_ROLE_TREE_TABLE))
-    return;
-
-  n_children = atk_object_get_n_accessible_children (obj);
-  for (i = 0; i < n_children; i++)
-    {
-      AtkObject *child;
-
-      child = atk_object_ref_accessible_child (obj, i);
-      _add_handler (child);
-      _traverse_children (child);
-      g_object_unref (G_OBJECT (child));
-    }
-}
-
-static void 
-_add_handler (AtkObject *obj)
-{
-  static GPtrArray *obj_array = NULL;
-  gboolean found = FALSE;
-  gint i;
-
-  /*
-   * We create a property handler for each object if one was not associated 
-   * with it already.
-   *
-   * We add it to our array of objects which have property handlers; if an
-   * object is destroyed it remains in the array.
-   */
-  if (obj_array == NULL)
-    obj_array = g_ptr_array_new ();
-  for (i = 0; i < obj_array->len; i++)
-    {
-      if (obj == g_ptr_array_index (obj_array, i))
-        {
-          found = TRUE;
-          break;
-        }
-    }
-  if (!found)
-    {
-      atk_object_connect_property_change_handler (obj,
-                   (AtkPropertyChangeHandler*) _property_change_handler);
-      g_signal_connect (obj, "state-change", 
-                        (GCallback) _state_changed, NULL);
-      if (ATK_IS_SELECTION (obj))
-        g_signal_connect (obj, "selection_changed", 
-                          (GCallback) _selection_changed, NULL);
-      g_signal_connect (obj, "visible_data_changed", 
-                        (GCallback) _visible_data_changed, NULL);
-      if (ATK_IS_TABLE (obj))
-        g_signal_connect (obj, "model_changed", 
-                        (GCallback) _model_changed, NULL);
-      g_ptr_array_add (obj_array, obj);
-    }
-}
-static void 
-_check_properties (AtkObject *obj)
-{
-  AtkRole role;
-
-  g_print ("Start of _check_properties: %s\n", 
-           g_type_name (G_OBJECT_TYPE (obj)));
-
-  _add_handler (obj);
-
-  role = atk_object_get_role (obj);
-  if (role == ATK_ROLE_FRAME ||
-      role == ATK_ROLE_DIALOG)
-    {
-      /*
-       * Add handlers to all children.
-       */
-      _traverse_children (obj);
-    }
-  g_print ("End of _check_properties\n");
-}
-
-static void
-_create_event_watcher (void)
-{
-  id = atk_add_focus_tracker (_check_properties);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testprops Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/testselection.c b/modules/other/gail/tests/testselection.c
deleted file mode 100644 (file)
index 488f2a8..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-#include <string.h>
-#include <atk/atk.h>
-#include <gtk/gtk.h>
-
-/*
- * This module tests the selection interface on menu items.
- * To use this module run the test program testgtk and use the menus 
- * option.
- */
-static void _do_selection (AtkObject *obj);
-static gint _finish_selection (gpointer data);
-static AtkObject* _find_object (AtkObject* obj, AtkRole role);
-static void _print_type (AtkObject *obj);
-
-static AtkObject* 
-_find_object (AtkObject *obj, 
-              AtkRole   role)
-{
-  /*
-   * Find the first object which is a descendant of the specified object
-   * which matches the specified role.
-   *
-   * This function returns a reference to the AtkObject which should be
-   * removed when finished with the object.
-   */
-  gint i;
-  gint n_children;
-  AtkObject *child;
-
-  n_children = atk_object_get_n_accessible_children (obj);
-  for (i = 0; i < n_children; i++) 
-  {
-    AtkObject* found_obj;
-
-    child = atk_object_ref_accessible_child (obj, i);
-    if (atk_object_get_role (child) == role)
-    {
-      return child;
-    }
-    found_obj = _find_object (child, role);
-    g_object_unref (child);
-    if (found_obj)
-    {
-      return found_obj;
-    }
-  }
-  return NULL;
-}
-
-static void _print_type (AtkObject *obj)
-{
-  const gchar * typename = NULL;
-  const gchar * name = NULL;
-  AtkRole role;
-
-  if (GTK_IS_ACCESSIBLE (obj))
-  {
-    GtkWidget* widget = NULL;
-
-    widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
-    typename = g_type_name (G_OBJECT_TYPE (widget));
-    g_print ("Widget type name: %s\n", typename ? typename : "NULL");
-  }
-  typename = g_type_name (G_OBJECT_TYPE (obj));
-  g_print ("Accessible type name: %s\n", typename ? typename : "NULL");
-  name = atk_object_get_name (obj);
-  g_print("Accessible Name: %s\n", (name) ? name : "NULL");
-  role = atk_object_get_role(obj);
-  g_print ("Accessible Role: %d\n", role);
-}
-
-static void 
-_do_selection (AtkObject *obj)
-{
-  gint i;
-  AtkObject *selected;
-  AtkRole role;
-  AtkObject *selection_obj;
-
-  role = atk_object_get_role (obj);
-
-  if ((role == ATK_ROLE_FRAME) &&
-      (strcmp (atk_object_get_name (obj), "menus") == 0))
-  {
-    selection_obj = _find_object (obj, ATK_ROLE_MENU_BAR);
-    if (selection_obj)
-    {
-      g_object_unref (selection_obj);
-    }
-  }
-  else if (role == ATK_ROLE_COMBO_BOX)
-  {
-    selection_obj = obj;
-  }
-  else
-    return;
-
-  g_print ("*** Start do_selection ***\n");
-
-  
-  if (!selection_obj)
-  {
-    g_print ("no selection_obj\n");
-    return;
-  }
-
-  i = atk_selection_get_selection_count (ATK_SELECTION (selection_obj));
-  if (i != 0)
-  {
-    for (i = 0; i < atk_object_get_n_accessible_children (selection_obj); i++)
-    {
-      if (atk_selection_is_child_selected (ATK_SELECTION (selection_obj), i))
-      {
-        g_print ("%d child selected\n", i);
-      }
-      else
-      {
-        g_print ("%d child not selected\n", i);
-      }
-    } 
-  } 
-  /*
-   * Should not be able to select all items on a menu bar
-   */
-  atk_selection_select_all_selection (ATK_SELECTION (selection_obj));
-  i = atk_selection_get_selection_count (ATK_SELECTION (selection_obj));
-  if ( i != 0)
-  {
-    g_print ("Unexpected selection count: %d, expected 0\n", i);
-    return;
-  }
-  /*
-   * There should not be any items selected
-   */
-  selected = atk_selection_ref_selection (ATK_SELECTION (selection_obj), 0);
-  if ( selected != NULL)
-  {
-    g_print ("Unexpected selection: %d, expected 0\n", i);
-  }
-  atk_selection_add_selection (ATK_SELECTION (selection_obj), 1);
-  g_timeout_add (2000, _finish_selection, selection_obj);
-  g_print ("*** End _do_selection ***\n");
-} 
-
-static gint _finish_selection (gpointer data)
-{
-  AtkObject *obj = ATK_OBJECT (data);
-  AtkObject *selected;
-  gint      i;
-  gboolean is_selected;
-
-  g_print ("*** Start Finish selection ***\n");
-
-  /*
-   * If being run for for menus, at this point menu item foo should be 
-   * selected which means that its submenu should be visible.
-   */
-  i = atk_selection_get_selection_count (ATK_SELECTION (obj));
-  if (i != 1)
-  {
-    g_print ("Unexpected selection count: %d, expected 1\n", i);
-    return FALSE;
-  }
-  selected = atk_selection_ref_selection (ATK_SELECTION (obj), 0);
-  g_return_val_if_fail (selected != NULL, FALSE);
-  g_print ("*** Selected Item ***\n");
-  _print_type (selected);
-  g_object_unref (selected);
-  is_selected = atk_selection_is_child_selected (ATK_SELECTION (obj), 1);
-  g_return_val_if_fail (is_selected, FALSE);
-  is_selected = atk_selection_is_child_selected (ATK_SELECTION (obj), 0);
-  g_return_val_if_fail (!is_selected, FALSE);
-  selected = atk_selection_ref_selection (ATK_SELECTION (obj), 1);
-  g_return_val_if_fail (selected == NULL, FALSE);
-  atk_selection_remove_selection (ATK_SELECTION (obj), 0);
-  i = atk_selection_get_selection_count (ATK_SELECTION (obj));
-  g_return_val_if_fail (i == 0, FALSE);
-  selected = atk_selection_ref_selection (ATK_SELECTION (obj), 0);
-  g_return_val_if_fail (selected == NULL, FALSE);
-  g_print ("*** End Finish selection ***\n");
-  return FALSE;
-}
-
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_do_selection);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testselection Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/teststatusbar.c b/modules/other/gail/tests/teststatusbar.c
deleted file mode 100644 (file)
index c039966..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-#include <string.h>
-#include <glib-object.h>
-#include <atk/atk.h>
-
-/*
- * To use this test module, run the test program testgtk and click on 
- * statusbar
- */
-
-static void _check_statusbar (AtkObject *obj);
-static AtkObject* _find_object (AtkObject* obj, AtkRole role);
-static void _notify_handler (GObject *obj, GParamSpec *pspec);
-static void _property_change_handler (AtkObject   *obj,
-                                      AtkPropertyValues *values);
-
-static AtkObject*
-_find_object (AtkObject *obj,
-              AtkRole   role)
-{
-  /*
-   * Find the first object which is a descendant of the specified object
-   * which matches the specified role.
-   *
-   * This function returns a reference to the AtkObject which should be
-   * removed when finished with the object.
-   */
-  gint i;
-  gint n_children;
-  AtkObject *child;
-
-  n_children = atk_object_get_n_accessible_children (obj);
-  for (i = 0; i < n_children; i++)
-  {
-    AtkObject* found_obj;
-
-    child = atk_object_ref_accessible_child (obj, i);
-    if (atk_object_get_role (child) == role)
-    {
-      return child;
-    }
-    found_obj = _find_object (child, role);
-    g_object_unref (child);
-    if (found_obj)
-    {
-      return found_obj;
-    }
-  }
-  return NULL;
-}
-
-static void _property_change_handler (AtkObject   *obj,
-                                      AtkPropertyValues   *values)
-{
-  const gchar *type_name = g_type_name (G_TYPE_FROM_INSTANCE (obj));
-  const gchar *name = atk_object_get_name (obj);
-
-  g_print ("_property_change_handler: Accessible Type: %s\n",
-           type_name ? type_name : "NULL");
-  g_print ("_property_change_handler: Accessible name: %s\n",
-           name ? name : "NULL");
-  g_print ("_property_change_handler: PropertyName: %s\n",
-           values->property_name ? values->property_name: "NULL");
-  if (G_VALUE_HOLDS_STRING (&values->new_value))
-    g_print ("_property_change_handler: PropertyValue: %s\n",
-             g_value_get_string (&values->new_value));
-}
-
-static void _check_statusbar (AtkObject *obj)
-{
-  AtkRole role;
-  AtkObject *statusbar, *label;
-
-  role = atk_object_get_role (obj);
-  if (role != ATK_ROLE_FRAME)
-    return;
-
-  statusbar = _find_object (obj, ATK_ROLE_STATUSBAR); 
-  if (!statusbar)
-    return;
-  g_print ("_check_statusbar\n");
-  label = atk_object_ref_accessible_child (statusbar, 0);
-  g_return_if_fail (label == NULL);
-
-  /*
-   * We get notified of changes to the label
-   */
-  g_signal_connect_closure_by_id (statusbar,
-                                  g_signal_lookup ("notify", 
-                                                   G_OBJECT_TYPE (statusbar)),
-                                  0,
-                                  g_cclosure_new (G_CALLBACK (_notify_handler),
-                                                 NULL, NULL),
-                                  FALSE);
-  atk_object_connect_property_change_handler (statusbar,
-                   (AtkPropertyChangeHandler*) _property_change_handler);
-
-}
-
-static void 
-_notify_handler (GObject *obj, GParamSpec *pspec)
-{
-  AtkObject *atk_obj = ATK_OBJECT (obj);
-  const gchar *name;
-
-  g_print ("_notify_handler: property: %s\n", pspec->name);
-  if (strcmp (pspec->name, "accessible-name") == 0)
-  {
-    name = atk_object_get_name (atk_obj);
-    g_print ("_notify_handler: value: |%s|\n", name ? name : "<NULL>");
-  }
-}
-
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_check_statusbar);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("teststatusbar Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
diff --git a/modules/other/gail/tests/testtable.c b/modules/other/gail/tests/testtable.c
deleted file mode 100644 (file)
index 4d90381..0000000
+++ /dev/null
@@ -1,940 +0,0 @@
-#include <string.h>
-#include "testtextlib.h"
-
-#define NUM_ROWS_TO_LOOP 30
-
-typedef struct
-{
-  GtkWidget *tb_others;
-  GtkWidget *tb_ref_selection;
-  GtkWidget *tb_ref_at;
-  GtkWidget *tb_ref_accessible_child;
-  GtkWidget *child_entry;
-  GtkWidget *row_entry;
-  GtkWidget *col_entry;
-  GtkWidget *index_entry;
-}TestChoice;
-
-static void _check_table (AtkObject *in_obj);
-void table_runtest(AtkObject *);
-static void other_runtest(AtkObject *obj);
-static void ref_at_runtest(AtkObject *obj, gint row, gint col);
-static void ref_accessible_child_runtest(AtkObject *obj, gint childno);
-static void ref_selection_runtest (AtkObject *obj, gint index);
-static void _selection_tests(AtkObject *obj);
-static void _display_header_info(gchar *type,
-  AtkObject *header_obj, gint header_num);
-static void _process_child(AtkObject *child_obj);
-
-static void _notify_table_row_inserted (GObject *obj,
-  gint start_offset, gint length);
-static void _notify_table_column_inserted (GObject *obj,
-  gint start_offset, gint length);
-static void _notify_table_row_deleted (GObject *obj,
-  gint start_offset, gint length);
-static void _notify_table_column_deleted (GObject *obj,
-  gint start_offset, gint length);
-static void _notify_table_row_reordered (GObject *obj);
-static void _notify_table_column_reordered (GObject *obj);
-static void _notify_table_child_added (GObject *obj,
-  gint index, AtkObject *child);
-static void _notify_table_child_removed (GObject *obj,
-  gint index, AtkObject *child);
-static void _property_signal_connect (AtkObject        *obj);
-static void _property_change_handler (AtkObject        *obj,
-  AtkPropertyValues *values);
-
-static gboolean tested_set_headers = FALSE;
-static void test_choice_gui (AtkObject **obj);
-static void nogui_runtest (AtkObject *obj);
-static void nogui_ref_at_runtest (AtkObject *obj);
-static void nogui_process_child (AtkObject *obj);
-
-static TestChoice *tc;
-static gint g_visibleGUI = 0;
-static AtkTable *g_table = NULL;
-static AtkObject *current_obj = NULL;
-gboolean g_done = FALSE;
-gboolean g_properties = TRUE;
-
-/* 
- * destroy
- *
- * Destroy Callback 
- *
- */
-static void destroy (GtkWidget *widget, gpointer data)
-{
-  gtk_main_quit();
-}
-
-static void choicecb (GtkWidget *widget, gpointer data)
-{
-  AtkObject **ptr_to_obj = (AtkObject **)data;
-  AtkObject *obj = *ptr_to_obj;
-
-  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tc->tb_others)))
-  {
-    other_runtest(obj);
-  }
-  else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tc->tb_ref_selection)))
-  {
-    const gchar *indexstr;
-    gint index;
-
-    indexstr = gtk_entry_get_text(GTK_ENTRY(tc->index_entry));
-    index = string_to_int((gchar *)indexstr);
-
-    ref_selection_runtest(obj, index); 
-  }
-  else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tc->tb_ref_at)))
-  {
-    const gchar *rowstr, *colstr;
-    gint row, col;
-    rowstr = gtk_entry_get_text(GTK_ENTRY(tc->row_entry));
-    colstr = gtk_entry_get_text(GTK_ENTRY(tc->col_entry));
-    row = string_to_int((gchar *)rowstr);
-    col = string_to_int((gchar *)colstr);
-    ref_at_runtest(obj, row, col);
-  }
-  else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (tc->tb_ref_accessible_child)))
-  {
-    const gchar *childstr;
-    gint childno;
-    childstr = gtk_entry_get_text(GTK_ENTRY(tc->child_entry));
-    childno = string_to_int((gchar *)childstr);
-
-    ref_accessible_child_runtest(obj, childno);
-  }
-}
-
-static void _check_table (AtkObject *in_obj)
-{
-  AtkObject *obj = NULL;
-  const char *no_properties;
-  const char *no_gui;
-
-  no_properties = g_getenv ("TEST_ACCESSIBLE_NO_PROPERTIES");
-  no_gui = g_getenv ("TEST_ACCESSIBLE_NO_GUI");
-
-  if (no_properties != NULL)
-    g_properties = FALSE;
-  if (no_gui != NULL)
-    g_visibleGUI = 1;
-  
-  obj = find_object_by_type(in_obj, "GailTreeView");
-  if (obj != NULL)
-    g_print("Found GailTreeView table in child!\n");
-  else
-  {
-    obj = find_object_by_type(in_obj, "GailCList");
-    if (obj != NULL)
-      g_print("Found GailCList in child!\n");
-    else
-    {
-      g_print("No object found %s\n", g_type_name (G_OBJECT_TYPE (in_obj)));
-      return;
-    }
-  }
-
-  g_print ("In _check_table\n");
-
-  if (!already_accessed_atk_object(obj))
-  {
-    /* Set up signal handlers */
-
-    g_print ("Adding signal handler\n");
-    g_signal_connect_closure_by_id (obj,
-               g_signal_lookup ("column_inserted", G_OBJECT_TYPE (obj)),
-               0,
-               g_cclosure_new (G_CALLBACK (_notify_table_column_inserted),
-               NULL, NULL),
-               FALSE);
-    g_signal_connect_closure_by_id (obj,
-               g_signal_lookup ("row_inserted", G_OBJECT_TYPE (obj)),
-               0,
-                g_cclosure_new (G_CALLBACK (_notify_table_row_inserted),
-                       NULL, NULL),
-               FALSE);
-    g_signal_connect_closure_by_id (obj,
-               g_signal_lookup ("column_deleted", G_OBJECT_TYPE (obj)),
-               0,
-                g_cclosure_new (G_CALLBACK (_notify_table_column_deleted),
-                       NULL, NULL),
-               FALSE);
-    g_signal_connect_closure_by_id (obj,
-               g_signal_lookup ("row_deleted", G_OBJECT_TYPE (obj)),
-               0,
-                g_cclosure_new (G_CALLBACK (_notify_table_row_deleted),
-                       NULL, NULL),
-               FALSE);
-    g_signal_connect_closure_by_id (obj,
-               g_signal_lookup ("column_reordered", G_OBJECT_TYPE (obj)),
-               0,
-                g_cclosure_new (G_CALLBACK (_notify_table_column_reordered),
-                       NULL, NULL),
-               FALSE);
-    g_signal_connect_closure_by_id (obj,
-               g_signal_lookup ("row_reordered", G_OBJECT_TYPE (obj)),
-               0,
-                g_cclosure_new (G_CALLBACK (_notify_table_row_reordered),
-                       NULL, NULL),
-               FALSE);
-    g_signal_connect_closure (obj, "children_changed::add",
-               g_cclosure_new (G_CALLBACK (_notify_table_child_added),
-                        NULL, NULL),
-               FALSE);
-
-    g_signal_connect_closure (obj, "children_changed::remove",
-               g_cclosure_new (G_CALLBACK (_notify_table_child_removed),
-                        NULL, NULL),
-               FALSE);
-
-  }
-  g_table = ATK_TABLE(obj);
-
-  atk_object_connect_property_change_handler (obj,
-                   (AtkPropertyChangeHandler*) _property_change_handler);
-
-  current_obj = obj;
-  /*
-   * The use of &current_obj allows us to change the object being processed
-   * in the GUI.
-   */
-  if (g_visibleGUI != 1)
-    test_choice_gui(&current_obj);
-  else if (no_gui != NULL)
-    nogui_runtest(obj);
-}
-
-static 
-void other_runtest(AtkObject *obj)
-{
-  AtkObject *header_obj;
-  AtkObject *out_obj;
-  const gchar *out_string;
-  GString *out_desc;
-  gint n_cols, n_rows;
-  gint rows_to_loop = NUM_ROWS_TO_LOOP;
-  gint i, j;
-  out_desc = g_string_sized_new(256);
-
-  n_cols = atk_table_get_n_columns(ATK_TABLE(obj));
-  n_rows = atk_table_get_n_rows(ATK_TABLE(obj));
-
-  g_print ("Number of columns is %d\n", n_cols);
-  g_print ("Number of rows is %d\n", n_rows);
-
-  /* Loop NUM_ROWS_TO_LOOP rows if possible */
-  if (n_rows < NUM_ROWS_TO_LOOP)
-     rows_to_loop = n_rows;
-
-  g_print ("\n");
-
-  /* Caption */
-
-  out_obj = atk_table_get_caption(ATK_TABLE(obj));
-  if (out_obj != NULL)
-  {
-    out_string = atk_object_get_name (out_obj);
-    if (out_string)
-      g_print("Caption Name is <%s>\n", out_string);
-    else
-      g_print("Caption has no name\n");
-  }
-  else
-    g_print("No caption\n");
-
-  /* Column descriptions and headers */
-
-  g_print ("\n");
-  for (i=0; i < n_cols; i++)
-  {
-    /* check default */
-    out_string = atk_table_get_column_description(ATK_TABLE(obj), i);
-    if (out_string != NULL)
-      g_print("%d: Column description is <%s>\n", i, out_string);
-    else
-      g_print("%d: Column description is <NULL>\n", i);
-
-    /* check setting a new value */
-    
-    g_string_printf(out_desc, "new column description %d", i);
-
-    if (out_string == NULL || strcmp (out_string, out_desc->str) != 0)
-    {
-      g_print("%d, Setting the column description to <%s>\n",
-        i, out_desc->str);
-      atk_table_set_column_description(ATK_TABLE(obj), i, out_desc->str);
-      out_string = atk_table_get_column_description(ATK_TABLE(obj), i);
-      if (out_string != NULL)
-        g_print("%d: Column description is <%s>\n", i, out_string);
-      else
-        g_print("%d: Column description is <NULL>\n", i);
-    }
-
-    /* Column header */
-    header_obj = atk_table_get_column_header(ATK_TABLE(obj), i);
-    _display_header_info("Column", header_obj, i);
-  }
-
-  /* Row description */
-
-  g_print ("\n");
-
-  for (i=0; i < rows_to_loop; i++)
-  {
-    out_string = atk_table_get_row_description(ATK_TABLE(obj), i);
-    if (out_string != NULL)
-      g_print("%d: Row description is <%s>\n", i, out_string);
-    else
-      g_print("%d: Row description is <NULL>\n", i);
-
-    g_string_printf(out_desc, "new row description %d", i);
-
-    if (out_string == NULL || strcmp (out_string, out_desc->str) != 0)
-    {
-      g_print("%d: Setting the row description to <%s>\n",
-        i, out_desc->str);
-      atk_table_set_row_description(ATK_TABLE(obj), i, out_desc->str);
-
-      out_string = atk_table_get_row_description(ATK_TABLE(obj), i);
-      if (out_string != NULL)
-        g_print("%d: Row description is <%s>\n", i, out_string);
-      else
-        g_print("%d: Row description is <NULL>\n", i);
-    }
-
-    header_obj = atk_table_get_row_header(ATK_TABLE(obj), i);
-    _display_header_info("Row", header_obj, i);
-    
-    for (j=0; j <n_cols; j++)
-    {
-      gint index = atk_table_get_index_at(ATK_TABLE(obj), i, j);
-      gint row, column;
-
-      column = atk_table_get_column_at_index (ATK_TABLE (obj), index);
-      g_return_if_fail (column == j);
-
-      row = atk_table_get_row_at_index (ATK_TABLE (obj), index);
-      g_return_if_fail (row == i);
-
-      if(atk_selection_is_child_selected(ATK_SELECTION(obj), index))
-        g_print("atk_selection_is_child_selected,index = %d returns TRUE\n", index);
-      /* Generic cell tests */
-      /* Just test setting column headers once. */
-
-      if (!tested_set_headers)
-      {
-        tested_set_headers = TRUE;
-   
-        /* Hardcode to 1,1 for now */
-        g_print(
-          "Testing set_column_header for column %d, to table\n",
-          (n_cols - 1));
-        atk_table_set_column_header(ATK_TABLE(obj), (n_cols - 1), obj);
-
-        g_print("Testing set_row_header for row %d, to table\n", n_rows);
-        atk_table_set_row_header(ATK_TABLE(obj), n_rows, obj);
-      }
-    }
-  }
-
-  /* row/column extents */
-
-  g_print("\n");
-  g_print("Row extents at 1,1 is %d\n",
-    atk_table_get_row_extent_at(ATK_TABLE(obj), 1, 1));
-  g_print("Column extents at 1,1 is %d\n",
-    atk_table_get_column_extent_at(ATK_TABLE(obj), 1, 1));
-}
-
-static
-void ref_accessible_child_runtest(AtkObject *obj, gint child)
-{
-  AtkObject *child_obj;
-  /* ref_child */
-  g_print ("Accessing child %d\n", child);
-  child_obj = atk_object_ref_accessible_child (obj, child);
-  _property_signal_connect(child_obj);
-  if (child_obj != NULL)
-     _process_child(child_obj);
-}
-
-static 
-void ref_selection_runtest (AtkObject *obj, gint index)
-{
-  AtkObject *child_obj;
-
-  /* use atk_selection_ref_selection just once to check it works */
-  child_obj = atk_selection_ref_selection(ATK_SELECTION(obj), index);
-  if (child_obj)
-  {
-    g_print("child_obj gotten from atk_selection_ref_selection\n");
-    g_object_unref (child_obj);
-  }
-  else 
-    g_print("NULL returned by atk_selection_ref_selection\n");
-
-  _selection_tests(obj);
-}
-
-static
-void ref_at_runtest(AtkObject *obj, gint row, gint col)
-{
-  AtkObject *child_obj;
-  /* ref_at */
-
-  g_print("Testing ref_at row %d column %d\n", row, col);
-
-  child_obj = atk_table_ref_at(ATK_TABLE(obj), row, col);
-  _property_signal_connect(child_obj);
-
-  g_print("Row is %d, col is %d\n", row, col);
-
-  _process_child(child_obj);
-  if (child_obj)
-    g_object_unref (child_obj);
-}
-
-/**
- * process_child
- **/
-static void
-_process_child(AtkObject *child_obj)
-{
-  if (child_obj != NULL)
-  {
-    if (ATK_IS_TEXT(child_obj))
-    {
-      add_handlers(child_obj);
-      setup_gui(child_obj, runtest);
-    }
-    else
-    {
-      g_print("Interface is not text!\n");
-    }
-/*
-    if (ATK_IS_ACTION(child_obj))
-      {
-       gint i, j;
-       gchar *action_name;
-       gchar *action_description;
-       gchar *action_keybinding;
-       AtkAction *action = ATK_ACTION(child_obj);
-
-       i = atk_action_get_n_actions (action);
-       g_print ("Supports AtkAction with %d actions.\n", i);
-       for (j = 0; j < i; j++)
-         {
-           g_print ("Action %d:\n", j);
-           action_name = atk_action_get_name (action, j);
-           if (action_name)
-             g_print (" Name = %s\n", action_name);
-           action_description = atk_action_get_description (action, j);
-           if (action_description)
-             g_print (" Description = %s\n", action_description);
-           action_keybinding = atk_action_get_keybinding (action, j);
-           if (action_keybinding)
-             g_print (" Keybinding = %s\n", action_keybinding);
-           action_description = "new description";
-           g_print (" Setting description to %s\n", action_description);
-           atk_action_set_description (action, j, action_description);
-           action_description = atk_action_get_description (action, j);
-           if (action_description)
-             g_print (" New description is now %s\n", action_description);
-         }
-      }
-*/
-  }
-  else
-  {
-    g_print("Child is NULL!\n");
-  }
-}
-       
-/**
- * Combined tests on AtkTable and AtkSelection on individual rows rather than 
- * all of them 
- **/
-static void
-_selection_tests(AtkObject *obj)
-{
-  gint n_rows = 0;
-  gint n_cols = 0;
-  gint selection_count = 0;
-  gint i = 0;
-  gint *selected = NULL;
-  AtkTable *table;
-
-  table = ATK_TABLE (obj);
-
-  n_rows = atk_table_get_selected_rows(table, &selected);
-  for (i = 0; i < n_rows; i++)
-  {
-    g_print("atk_table_get_selected_row returns : %d\n", 
-              selected[i]);
-    if (!atk_table_is_row_selected (table, selected[i]))
-      g_print("atk_table_is_row_selected returns false for selected row %d\n", 
-              selected[i]);
-  }
-  g_free (selected);
-
-  selected = NULL;
-  n_cols = atk_table_get_selected_columns(table, &selected);
-  for (i = 0; i < n_cols; i++)
-    g_print("atk_table_get_selected_columns returns : %d\n", selected[i]);
-  g_free (selected);
-       
-  selection_count = atk_selection_get_selection_count(ATK_SELECTION(obj));
-  g_print("atk_selection_get_selection_count returns %d\n", selection_count);
-
-  if (atk_table_is_row_selected(table, 2))
-  {
-    g_print("atk_table_is_row_selected (table, 2) returns TRUE\n");
-    atk_selection_clear_selection (ATK_SELECTION (obj));
-    if (atk_table_add_row_selection(table, 4))
-      g_print("atk_table_add_row_selection: selected row 4\n");
-    if (!atk_table_is_row_selected (table, 4))
-      g_print("atk_table_is_row_selected returns false for row 2\n");
-    if (atk_table_is_row_selected (table, 2))
-      g_print("atk_table_is_row_selected gives false positive for row 2\n");
-  }
-
-  if (atk_table_is_row_selected(table, 3))
-  {
-    if (atk_table_remove_row_selection(table, 3))
-      g_print("atk_table_remove_row_selection unselected row 3\n");
-  }
-
-  if (atk_table_is_selected(table, 5, 4))
-  {
-    atk_selection_clear_selection(ATK_SELECTION(obj));
-    g_print("atk_selection_clear_selection: just cleared all selected\n");
-  }
-
-  if (atk_table_is_column_selected(table, 2))
-  {
-    g_print("atk_table_is_column_selected(obj, 2) returns TRUE\n");
-    if (atk_table_add_column_selection(table, 4))
-      g_print("atk_table_add_column_selection: selected column 4\n");
-    g_print("atk_table_is_column_selected(obj, 2) returns TRUE\n");
-  }
-
-  if (atk_table_is_column_selected(table, 3))
-  {
-    if (atk_table_remove_column_selection(table, 3))
-      g_print("atk_table_remove_column_selection: unselected column 3\n");
-  }
-}
-
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_check_table);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-    g_print("TestTable Module loaded\n");
-
-    _create_event_watcher();
-
-    return 0;
-}
-
-static void
-_notify_table_row_inserted (GObject *obj, gint start_offset, gint length)
-{
-  g_print ("SIGNAL - Row inserted at position %d, num of rows inserted %d!\n",
-    start_offset, length);
-}
-
-static void
-_notify_table_column_inserted (GObject *obj, gint start_offset, gint length)
-{
-  g_print ("SIGNAL - Column inserted at position %d, num of columns inserted %d!\n",
-    start_offset, length);
-}
-
-static void
-_notify_table_row_deleted (GObject *obj, gint start_offset, gint length)
-{
-  g_print ("SIGNAL - Row deleted at position %d, num of rows deleted %d!\n",
-    start_offset, length);
-}
-
-static void
-_notify_table_column_deleted (GObject *obj, gint start_offset, gint length)
-{
-  g_print ("SIGNAL - Column deleted at position %d, num of columns deleted %d!\n",
-    start_offset, length);
-}
-
-static void
-_notify_table_row_reordered (GObject *obj)
-{
-  g_print ("SIGNAL - Row reordered!\n");
-}
-
-static void
-_notify_table_column_reordered (GObject *obj)
-{
-  g_print ("SIGNAL - Column reordered!\n");
-}
-
-static void _notify_table_child_added (GObject *obj,
-  gint index, AtkObject *child)
-{
-   g_print ("SIGNAL - Child added - index %d\n", index);
-}
-
-static void _notify_table_child_removed (GObject *obj,
-  gint index, AtkObject *child)
-{
-   g_print ("SIGNAL - Child removed - index %d\n", index);
-}
-
-static void
-_display_header_info(gchar *type, AtkObject *header_obj, gint header_num)
-{
-  if (header_obj != NULL)
-  {
-    AtkRole role;
-    role = atk_object_get_role(header_obj);
-
-    if (role == ATK_ROLE_PUSH_BUTTON)
-    {
-      g_print ("%d: %s header is a push button!\n", header_num, type);
-    }
-    else if (role == ATK_ROLE_LABEL)
-    {
-      g_print ("%d: %s header is a label!\n", header_num, type);
-    }
-    else if (ATK_IS_TEXT(header_obj))
-    {
-      gchar *header_text;
-
-      header_text = atk_text_get_text (ATK_TEXT (header_obj), 0, 3);
-      if (header_text != NULL)
-      {
-        g_print("%d: %s header is a text value <%s>\n", header_num,
-          type, header_text);
-      }
-      else
-      {
-        g_print("%d: %s header is a text value <NULL>\n", header_num,
-          type);
-      }
-    }
-    else 
-    {
-      g_print ("%d: %s header is of type %s!\n", header_num,
-        type, atk_role_get_name (role));
-    }
-  }
-  else
-  {
-    g_print ("%d: %s header object is NULL!\n", header_num, type);
-  }
-}
-
-static void _property_signal_connect (AtkObject *obj)
-{
-  if (g_properties && obj != NULL)
-  {
-    g_signal_connect_closure_by_id (obj,
-    g_signal_lookup ("property_change", G_OBJECT_TYPE (obj)),
-      0,
-      g_cclosure_new (G_CALLBACK (_property_change_handler),
-      NULL, NULL),
-      FALSE);
-  }
-}
-
-static void 
-_property_change_handler (AtkObject         *obj,
-                          AtkPropertyValues *values)
-{
-  gchar *obj_text;
-  const gchar *name;
-
-  if (g_table != NULL)
-  {
-    gint index = atk_object_get_index_in_parent(obj);
-    
-    if (index >= 0)
-      g_print("Index is %d, row is %d, col is %d\n", index,
-              atk_table_get_row_at_index(g_table, index),
-              atk_table_get_column_at_index(g_table, index));
-    else
-      g_print ("index: %d for %s\n", index, g_type_name (G_OBJECT_TYPE (obj)));
-  }
-
-  if (ATK_IS_TEXT(obj))
-  {
-     obj_text = atk_text_get_text (ATK_TEXT (obj), 0, 15);
-     if (obj_text == NULL)
-       g_print("  Cell text is <NULL>\n");
-     else
-       g_print("  Cell text is <%s>\n", obj_text);
-  }
-
-  g_print("  PropertyName <%s>\n",
-          values->property_name ? values->property_name: "NULL");
-  g_print("    - ");
-
-  if (&values->old_value != NULL && G_IS_VALUE (&values->old_value))
-  {
-    GType old_type = G_VALUE_TYPE (&values->old_value);
-
-    switch (old_type)
-    {
-    case G_TYPE_INT:
-      g_print("value was <%d>\n", g_value_get_int (&values->old_value));
-      break;
-    case G_TYPE_STRING:
-      name = g_value_get_string (&values->old_value);
-      if (name != NULL)
-        g_print ("value was <%s>\n", name);
-      else
-        g_print ("value was <NULL>\n");
-      break;
-    default: 
-      g_print("value was <unknown type>\n");
-      break;
-    }
-  }
-  else
-  {
-    g_print("value was <not a value>\n");
-  }
-  g_print("    - ");
-  if (&values->new_value != NULL && G_IS_VALUE (&values->new_value))
-  {
-    GType new_type = G_VALUE_TYPE (&values->new_value);
-
-    switch (new_type)
-    {
-    case G_TYPE_INT:
-      g_print("value is <%d>\n", g_value_get_int (&values->new_value));
-      break;
-    case G_TYPE_STRING:
-      name = g_value_get_string (&values->new_value);
-      if (name != NULL)
-        g_print ("value is <%s>\n", name);
-      else
-        g_print ("value is <NULL>\n");
-      break;
-    default: 
-      g_print("value is <unknown type>\n");
-      break;
-    }
-  }
-  else
-  {
-    g_print("value is <not a value>\n");
-  }
-}
-
-static
-void test_choice_gui(AtkObject **obj)
-{
-  GtkWidget *window;
-  GtkWidget *vbox;
-  GtkWidget *hbox;
-  GtkWidget *child_label;
-  GtkWidget *row_label;
-  GtkWidget *col_label;
-  GtkWidget *index_label;
-  GtkWidget *hseparator;
-  GtkWidget *hbuttonbox;
-  GtkWidget *button;
-
-
-  tc = (TestChoice *) g_malloc (sizeof(TestChoice));
-  
-  window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-  gtk_window_set_title(GTK_WINDOW(window), "Test to run");
-
-  g_signal_connect(window, "destroy",
-                   G_CALLBACK (destroy), &window);
-
-  vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
-  gtk_box_set_homogeneous (GTK_BOX (vbox), TRUE);
-  gtk_box_set_spacing(GTK_BOX(vbox), 10);
-
-
-  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-  gtk_box_set_spacing(GTK_BOX(hbox), 10);
-  tc->tb_ref_selection = gtk_toggle_button_new_with_label("ref_selection");
-  gtk_box_pack_start (GTK_BOX (hbox), tc->tb_ref_selection, TRUE, TRUE, 0);
-  index_label = gtk_label_new("index: ");
-  gtk_box_pack_start (GTK_BOX (hbox), index_label, TRUE, TRUE, 0);
-  tc->index_entry = gtk_entry_new();
-  gtk_entry_set_text(GTK_ENTRY(tc->index_entry), "1");
-  gtk_box_pack_start (GTK_BOX (hbox), tc->index_entry, TRUE, TRUE, 0);
-  gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); 
-
-  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-  gtk_box_set_spacing(GTK_BOX(hbox), 10);
-  tc->tb_ref_at = gtk_toggle_button_new_with_label("ref_at");
-  gtk_box_pack_start (GTK_BOX (hbox), tc->tb_ref_at, TRUE, TRUE, 0);
-  row_label = gtk_label_new("row:");
-  gtk_box_pack_start (GTK_BOX (hbox), row_label, TRUE, TRUE, 0);
-  tc->row_entry = gtk_entry_new();
-  gtk_entry_set_text(GTK_ENTRY(tc->row_entry), "1");
-  gtk_box_pack_start (GTK_BOX (hbox), tc->row_entry, TRUE, TRUE, 0);
-  col_label = gtk_label_new("column:");
-  gtk_box_pack_start (GTK_BOX (hbox), col_label, TRUE, TRUE, 0);
-  tc->col_entry = gtk_entry_new();
-  gtk_entry_set_text(GTK_ENTRY(tc->col_entry), "1");
-  gtk_box_pack_start (GTK_BOX (hbox), tc->col_entry, TRUE, TRUE, 0);
-  gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); 
-
-  hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0);
-  gtk_box_set_spacing(GTK_BOX(hbox), 10);
-  tc->tb_ref_accessible_child = gtk_toggle_button_new_with_label("ref_accessible_child");
-  gtk_box_pack_start (GTK_BOX (hbox), tc->tb_ref_accessible_child, TRUE, TRUE, 0);
-  child_label = gtk_label_new("Child no:");
-  gtk_box_pack_start (GTK_BOX (hbox), child_label, TRUE, TRUE, 0); 
-  tc->child_entry = gtk_entry_new();
-  gtk_entry_set_text(GTK_ENTRY(tc->child_entry), "1");
-  gtk_box_pack_start (GTK_BOX (hbox), tc->child_entry, TRUE, TRUE, 0);
-  gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
-
-  tc->tb_others = gtk_toggle_button_new_with_label("others");
-  gtk_box_pack_start (GTK_BOX (vbox), tc->tb_others, TRUE, TRUE, 0);
-  
-  hseparator = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
-  gtk_box_pack_start (GTK_BOX (vbox), hseparator, TRUE, TRUE, 0);
-
-  button = gtk_button_new_with_mnemonic("_Run Test");
-
-  hbuttonbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
-  gtk_button_box_set_layout(GTK_BUTTON_BOX(hbuttonbox),
-    GTK_BUTTONBOX_SPREAD);
-  gtk_box_pack_end (GTK_BOX (hbuttonbox), GTK_WIDGET (button), TRUE, TRUE, 0);
-  gtk_box_pack_end (GTK_BOX (vbox), hbuttonbox, TRUE, TRUE, 0);
-  g_signal_connect(button, "clicked", G_CALLBACK (choicecb), obj);
-
-  gtk_container_add(GTK_CONTAINER(window), vbox);
-  gtk_widget_show(vbox);
-  gtk_widget_show(window);
-  gtk_widget_show_all(GTK_WIDGET(window));
-
-  g_visibleGUI = 1;
-}
-
-void static
-nogui_runtest (AtkObject *obj)
-{
-  g_print ("Running non-GUI tests...\n");
-  other_runtest (obj);
-  nogui_ref_at_runtest (obj);
-}
-
-static void
-nogui_ref_at_runtest (AtkObject *obj)
-{
-  AtkObject *child_obj;
-  gint i, j;
-  gint n_cols;
-  gint rows_to_loop = 5;
-
-  n_cols = atk_table_get_n_columns (ATK_TABLE(obj));
-  
-  if (atk_table_get_n_rows(ATK_TABLE(obj)) < rows_to_loop)
-    rows_to_loop = atk_table_get_n_rows (ATK_TABLE(obj));
-
-  for (i=0; i < rows_to_loop; i++)
-  {
-    /* Just the first rows_to_loop rows */
-    for (j=0; j < n_cols; j++)
-    {
-      gint index = atk_table_get_index_at(ATK_TABLE(obj), i, j);
-         if(atk_selection_is_child_selected(ATK_SELECTION(obj), index))
-                g_print("atk_selection_is_child_selected,index = %d returns TRUE\n", index);
-
-      g_print("Testing ref_at row %d column %d\n", i, j);
-
-      if (i == 3 && j == 0)
-      {
-        g_print("child_obj gotten from atk_selection_ref_selection\n");
-
-        /* use atk_selection_ref_selection just once to check it works */
-        child_obj = atk_selection_ref_selection(ATK_SELECTION(obj), index );
-      }
-      else     
-      {
-        child_obj = atk_table_ref_at(ATK_TABLE(obj), i, j);
-      }
-
-      _property_signal_connect(child_obj);
-
-      g_print("Index is %d, row is %d, col is %d\n", index,
-        atk_table_get_row_at_index(ATK_TABLE(obj), index),
-        atk_table_get_column_at_index(ATK_TABLE(obj), index));
-
-      nogui_process_child (child_obj);
-
-      /* Generic cell tests */
-      /* Just test setting column headers once. */
-
-      if (!tested_set_headers)
-      {
-        tested_set_headers = TRUE;
-
-        g_print("Testing set_column_header for column %d, to cell value %d,%d\n",
-          j, i, j);
-        atk_table_set_column_header(ATK_TABLE(obj), j, child_obj);
-
-        g_print("Testing set_row_header for row %d, to cell value %d,%d\n",
-          i, i, j);
-        atk_table_set_row_header(ATK_TABLE(obj), i, child_obj);
-      }
-      if (child_obj)
-        g_object_unref (child_obj);
-    }
-  }
-}
-
-static void
-nogui_process_child (AtkObject *obj)
-{
-  gchar default_val[5] = "NULL";
-
-  if (ATK_IS_TEXT(obj))
-    {
-      gchar *current_text;
-      current_text = atk_text_get_text (ATK_TEXT(obj), 0, -1);
-      g_print ("Child supports text interface.\nCurrent text is %s\n", current_text);
-    }
-
-  if (ATK_IS_ACTION(obj))
-    {
-      AtkAction *action = ATK_ACTION(obj);
-      gint n_actions, i;
-      const gchar *name, *description;
-      
-      n_actions = atk_action_get_n_actions (action);
-      g_print ("Child supports %d actions.\n", n_actions);
-      for (i = 0; i < n_actions; i++)
-       {
-         name = atk_action_get_name (action, i);
-         description = atk_action_get_description (action, i);
-
-          if (name == NULL)
-             name = default_val;
-          if (description == NULL)
-             description = default_val;
-          
-         g_print (" %d: name = <%s>\n", i, name);
-          g_print ("    description = <%s>\n", description);
-       }
-    }
-}
-
diff --git a/modules/other/gail/tests/testtext.c b/modules/other/gail/tests/testtext.c
deleted file mode 100644 (file)
index 34a0fa3..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-#include <atk/atk.h>
-#include "testtextlib.h"
-
-#define NUM_VALID_ROLES 6  
-
-static void _create_event_watcher (void);
-static void _check_text (AtkObject *obj);
-void runtest(AtkObject *, gint);
-
-static guint id1 = 0;
-static guint win_count = 0;
-
-static void _check_text (AtkObject *in_obj)
-{
-  AtkObject *obj = NULL;
-  AtkRole role;
-  gchar* title;
-  AtkRole valid_roles[NUM_VALID_ROLES];
-
-  if (g_getenv("TEST_ACCESSIBLE_DELAY") != NULL)
-  {
-    int max_cnt = string_to_int(g_getenv("TEST_ACCESSIBLE_DELAY"));
-    win_count++;
-    if (win_count <= max_cnt)
-      return;
-  }
-
-  /* Set Up */
-
-  valid_roles[0] = ATK_ROLE_TEXT;
-  valid_roles[1] = ATK_ROLE_LABEL;
-  valid_roles[2] = ATK_ROLE_ACCEL_LABEL;
-  valid_roles[3] = ATK_ROLE_PASSWORD_TEXT;
-  valid_roles[4] = ATK_ROLE_TABLE_CELL;
-  valid_roles[5] = ATK_ROLE_PANEL;
-  
-  /* The following if/else grabs the windows name, or sets title to NULL if none. */
-  if (in_obj->name)
-  {
-     title = in_obj->name;
-  }
-  else
-  {
-    GtkWidget *toplevel;
-    GtkWidget* widget;
-
-    widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (in_obj));
-    if (widget == NULL)
-      title = NULL;
-
-    toplevel = gtk_widget_get_toplevel (widget);
-    if (GTK_IS_WINDOW (toplevel))
-      title = (gchar *) gtk_window_get_title (GTK_WINDOW (toplevel));
-    else
-      title = NULL;
-  }
-  /* If no window name, do nothing */
-  if (title == NULL) 
-    return;
-  /* 
-   * If testtext test program, find obj just by role since only one child 
-   * with no name
-   */
-  else if (g_ascii_strncasecmp(title, "testtext", 7) == 0) 
-  {
-    obj = find_object_by_role(in_obj, valid_roles, NUM_VALID_ROLES);
-  }
-  /*
-   * Otherwise, get obj by name and role so you can specify exactly which 
-   * obj to run tests on 
-   */
-  else 
-  {
-    const gchar *test_accessible_name = g_getenv ("TEST_ACCESSIBLE_NAME");
-
-    if (test_accessible_name != NULL)
-    {
-      obj = find_object_by_accessible_name_and_role(in_obj,
-        test_accessible_name, valid_roles, NUM_VALID_ROLES);
-    }
-    if (obj != NULL)
-    {
-      if (atk_object_get_role (obj) == ATK_ROLE_PANEL)
-      {
-        /* Get the child and check whether it is a label */
-
-        obj = atk_object_ref_accessible_child (obj, 0);
-        g_assert (atk_object_get_role (obj) == ATK_ROLE_LABEL);
-        g_object_unref (obj);
-      }
-       g_print("Found valid name and role in child!\n");
-    }
-    else
-    {
-       obj = find_object_by_role(in_obj, valid_roles, NUM_VALID_ROLES - 1);
-       if (obj != NULL)
-          g_print("Found valid role in child\n");
-    }   
-  } 
-  if (obj == NULL)
-  {
-     g_print("Object not found\n");
-     return;
-  }
-  role = atk_object_get_role(obj);
-
-  g_print("_check_text - Found role type %s!\n\n", atk_role_get_name (role));
-
-  add_handlers(obj);
-
-  if (!(isVisibleDialog()))
-    setup_gui(obj, runtest);
-  atk_remove_focus_tracker (id1);
-}
-
-static void
-_create_event_watcher (void)
-{
-  id1 = atk_add_focus_tracker (_check_text);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testtext Module loaded.\n");
-  _create_event_watcher();
-
-  return 0;
-}
-
-
diff --git a/modules/other/gail/tests/testtextlib.c b/modules/other/gail/tests/testtextlib.c
deleted file mode 100644 (file)
index 38b8d0f..0000000
+++ /dev/null
@@ -1,740 +0,0 @@
-#include <string.h>
-#include <stdio.h>
-#include "testtextlib.h"
-
-static AtkAttributeSet *attrib = NULL;
-static char result_string[2][6] = {"FALSE", "TRUE"};
-
-/**
- * setup_gui:
- * @obj: An @AtkObject
- * @test: The callback to be run when the "Run Tests" button
- *   in the GUI is clicked.
- *
- * Sets up the GUI windows.
- *
- * Returns: the window number, or -1 if failure.
- **/
-gint setup_gui(AtkObject *obj, TLruntest test)
-{
-  gchar *paramnames[MAX_PARAMS];
-  gchar *defaults[MAX_PARAMS];
-  static OutputWindow *tow = NULL;
-  gint  window;
-  
-  if (tow)
-    window = create_windows(obj, test, &tow);
-  else
-    window = create_windows(obj, test, &tow);
-
-  if (window == -1)
-    return -1;
-
-  /* Get Text [at|after|before] Offset Tests */
-  paramnames[0] = "offset";
-  defaults[0] = "1"; 
-  add_test(window, "atk_text_get_text_after_offset", 1,  paramnames, defaults);
-  add_test(window, "atk_text_get_text_before_offset", 1, paramnames, defaults);
-  add_test(window, "atk_text_get_text_at_offset",1 , paramnames, defaults);
-  
-  /* Get Character Count Test */
-  add_test(window, "atk_text_get_character_count", 0, NULL, NULL); 
-
-  /* Get Character At Offset Test */
-  paramnames[0] = "offset";
-  defaults[0] = "1";
-  add_test(window, "atk_text_get_character_at_offset", 1, paramnames, defaults);
-   
-  /* Get Text Test */
-  paramnames[0] = "position 1";
-  paramnames[1] = "position 2";
-  defaults[0] = "0";
-  defaults[1] = "5";
-  add_test(window, "atk_text_get_text", 2, paramnames, defaults); 
-
-  /* Caret Tests */
-  add_test(window, "atk_text_get_caret_offset", 0, NULL, NULL); 
-
-  paramnames[0] = "offset";
-  defaults[0] = "1";
-  add_test(window, "atk_text_set_caret_offset", 1, paramnames, defaults);
-
-  /* Selection Tests */
-  add_test(window, "atk_text_get_n_selections", 0, NULL, NULL);
-    
-  paramnames[0] = "selection no";
-  defaults[0] = "0";
-  add_test(window, "atk_text_get_selection", 1, paramnames, defaults);  
-
-  paramnames[0] = "start";
-  paramnames[1] = "end";
-  defaults[0] = "3";
-  defaults[1] = "8";
-  add_test(window, "atk_text_add_selection", 2, paramnames, defaults); 
-
-  paramnames[0] = "selection no";
-  paramnames[1] = "start";
-  paramnames[2] = "end";
-  defaults[0] = "0";
-  defaults[1] = "5";
-  defaults[2] = "7"; 
-  add_test(window, "atk_text_set_selection", 3, paramnames, defaults);
-
-  paramnames[0] = "selection no";
-  defaults[0] = "0";
-  add_test(window, "atk_text_remove_selection", 1, paramnames, defaults);
-
-  paramnames[0] = "offset";
-  defaults[0] = "36";
-  add_test(window, "atk_text_get_run_attributes", 1, paramnames, defaults);
-
-  add_test(window, "atk_text_get_default_attributes", 0, paramnames, defaults);
-
-  paramnames[0] = "offset";
-  paramnames[1] = "coord mode";
-  defaults[0] = "0";
-  defaults[1] = "ATK_XY_SCREEN";
-  add_test(window, "atk_text_get_character_extents", 2, paramnames, defaults);
-
-  paramnames[0] = "x";
-  paramnames[1] = "y";
-  paramnames[2] = "coord mode";
-  defaults[0] = "106";
-  defaults[1] = "208";
-  defaults[2] = "ATK_XY_SCREEN";
-  add_test(window, "atk_text_get_offset_at_point", 3, paramnames, defaults);
-
-  /* Editable Text Tests */
-  if (ATK_IS_EDITABLE_TEXT(obj)) 
-  {
-
-    paramnames[0] = "start";
-    paramnames[1] = "end";
-    defaults[0] = "20";
-    defaults[1] = "27";
-    add_test(window, "atk_editable_text_set_run_attributes", 2, paramnames, defaults);
-      
-    paramnames[0] = "start";
-    paramnames[1] = "end";
-    defaults[0] = "3";
-    defaults[1] = "5";
-    add_test(window, "atk_editable_text_cut_text", 2, paramnames, defaults);
-
-    paramnames[0] = "position";
-    defaults[0] = "8";
-    add_test(window, "atk_editable_text_paste_text", 1, paramnames, defaults);
-
-    paramnames[0] = "start";
-    paramnames[1] = "end";
-    defaults[0] = "15";
-    defaults[1] = "20";
-    add_test(window, "atk_editable_text_delete_text", 2, paramnames, defaults);
-    paramnames[0] = "start";
-    paramnames[1] = "end";
-    defaults[0] = "5";
-    defaults[1] = "20";
-    add_test(window, "atk_editable_text_copy_text", 2, paramnames, defaults); 
-
-    paramnames[0] = "insert text";
-    paramnames[1] = "position";
-    defaults[0] = "this is my insert";
-    defaults[1] = "15";
-    add_test(window, "atk_editable_text_insert_text", 2, paramnames, defaults);
-  }
-  return window;
-}
-
-/**
- * add_handlers:
- * @obj: An #AtkObject
- *
- * Sets up text signal handlers.
- *
- **/
-void add_handlers(AtkObject *obj)
-{
-  if (!already_accessed_atk_object(obj))
-  {
-    /* Set up signal handlers */
-
-    g_print ("Adding signal handler\n");
-    g_signal_connect_closure_by_id (obj,
-               g_signal_lookup ("text_caret_moved", G_OBJECT_TYPE (obj)),
-               0,
-               g_cclosure_new (G_CALLBACK (_notify_caret_handler),
-                       NULL, NULL),
-               FALSE);
-
-    g_signal_connect_closure (obj, "text_changed::insert",
-               g_cclosure_new (G_CALLBACK (_notify_text_insert_handler),
-                       NULL, NULL),
-               FALSE);
-
-    g_signal_connect_closure (obj, "text_changed::delete",
-               g_cclosure_new (G_CALLBACK (_notify_text_delete_handler),
-                       NULL, NULL),
-               FALSE);
-  }
-}
-
-/**
- * notify_text_insert_handler:
- * @obj: A #Gobject
- * @start_offset: Start offset of insert
- * @end_offset: End offset of insert.
- * 
- * Text inserted singal handler
- **/
-void
-_notify_text_insert_handler (GObject *obj, int start_offset, int end_offset)
-{
-  g_print ("SIGNAL - Text inserted at position %d, length %d!\n",
-    start_offset, end_offset);
-}
-
-/**
- * notify_text_delete_handler:
- * @obj: A #Gobject
- * @start_offset: Start offset of delete
- * @end_offset: End offset of delete.
- * 
- * Text deleted singal handler
- **/
-void
-_notify_text_delete_handler (GObject *obj, int start_offset, int end_offset)
-{
-  g_print ("SIGNAL - Text deleted at position %d, length %d!\n",
-    start_offset, end_offset);
-}
-
-/**
- * notify_caret_handler:
- * @obj: A #Gobject
- * @position: Caret position
- * 
- * Caret (cursor) moved signal handler.
- **/
-void
-_notify_caret_handler (GObject *obj, int position)
-{
-  g_print ("SIGNAL - The caret moved to position %d!\n", position);
-}
-
-/**
- * runtest:
- * @obj: An #AtkObject
- * @win_val: The window number
- *
- * The callback to run when the "Run Tests" button on the
- * Test GUI is clicked.
- **/
-void
-runtest(AtkObject *obj, gint win_val)
-{
-  gint        i, size;
-  gunichar    uni_char;
-  gchar       output[MAX_LINE_SIZE];
-  gchar       **testsOn;
-  testsOn = tests_set(win_val, &size);
-
-  for(i = 0; i < size; i++)
-  {
-    gint      param_int1, param_int2, start, end, j, x, y, height, width;
-    gchar     *param_string1, *param_string2, *param_string3, *text;
-    gboolean  result;
-    gint index;
-
-    if (strcmp(testsOn[i], "atk_text_get_text_at_offset") == 0)
-    {
-      param_string1 = get_arg_of_func(win_val, "atk_text_get_text_at_offset", "offset");  
-      param_int1 = string_to_int(param_string1);
-      
-      _run_offset_test(obj, "at", param_int1, ATK_TEXT_BOUNDARY_WORD_END);
-      _run_offset_test(obj, "at", param_int1, ATK_TEXT_BOUNDARY_WORD_START);
-      _run_offset_test(obj, "at", param_int1, ATK_TEXT_BOUNDARY_LINE_END);
-      _run_offset_test(obj, "at", param_int1, ATK_TEXT_BOUNDARY_LINE_START);
-      _run_offset_test(obj, "at", param_int1, ATK_TEXT_BOUNDARY_SENTENCE_END);
-      _run_offset_test(obj, "at", param_int1, ATK_TEXT_BOUNDARY_SENTENCE_START);
-      _run_offset_test(obj, "at", param_int1, ATK_TEXT_BOUNDARY_CHAR);
-    }
-    
-    if (strcmp(testsOn[i], "atk_text_get_text_after_offset") == 0)
-    {
-      param_string1 = get_arg_of_func(win_val, "atk_text_get_text_after_offset", "offset");  
-      param_int1 = string_to_int(param_string1);
-
-      _run_offset_test(obj, "after", param_int1, ATK_TEXT_BOUNDARY_WORD_END);
-      _run_offset_test(obj, "after", param_int1, ATK_TEXT_BOUNDARY_WORD_START);
-      _run_offset_test(obj, "after", param_int1, ATK_TEXT_BOUNDARY_LINE_END);
-      _run_offset_test(obj, "after", param_int1, ATK_TEXT_BOUNDARY_LINE_START);
-      _run_offset_test(obj, "after", param_int1, ATK_TEXT_BOUNDARY_SENTENCE_END);
-      _run_offset_test(obj, "after", param_int1, ATK_TEXT_BOUNDARY_SENTENCE_START);
-      _run_offset_test(obj, "after", param_int1, ATK_TEXT_BOUNDARY_CHAR);
-    }
-
-    if (strcmp(testsOn[i], "atk_text_get_text_before_offset") == 0)
-    {
-      param_string1 = get_arg_of_func(win_val, "atk_text_get_text_before_offset", "offset");  
-      param_int1 = string_to_int(param_string1);
-      
-      _run_offset_test(obj, "before", param_int1, ATK_TEXT_BOUNDARY_WORD_END);
-      _run_offset_test(obj, "before", param_int1, ATK_TEXT_BOUNDARY_WORD_START);
-      _run_offset_test(obj, "before", param_int1, ATK_TEXT_BOUNDARY_LINE_END);
-      _run_offset_test(obj, "before", param_int1, ATK_TEXT_BOUNDARY_LINE_START);
-      _run_offset_test(obj, "before", param_int1, ATK_TEXT_BOUNDARY_SENTENCE_END);
-      _run_offset_test(obj, "before", param_int1, ATK_TEXT_BOUNDARY_SENTENCE_START);
-      _run_offset_test(obj, "before", param_int1, ATK_TEXT_BOUNDARY_CHAR);
-    }
-    
-    if (strcmp(testsOn[i], "atk_text_get_character_count") == 0)
-    {
-      param_int1 = atk_text_get_character_count (ATK_TEXT (obj));
-      sprintf(output, "\nText character count: %d\n", param_int1);  
-      set_output_buffer(output);
-    }
-    
-    if (strcmp(testsOn[i], "atk_text_get_character_at_offset") == 0)
-    {
-      param_string1 = get_arg_of_func(win_val, "atk_text_get_character_at_offset",
-        "offset"); 
-      uni_char = atk_text_get_character_at_offset (ATK_TEXT(obj),
-        string_to_int(param_string1));
-      sprintf(output, "\nCharacter at offset %d: |%x|\n",
-        string_to_int(param_string1), uni_char);
-      set_output_buffer(output);
-    }
-    if (strcmp(testsOn[i], "atk_text_get_text") == 0)
-    {
-      param_string1 =  get_arg_of_func(win_val, "atk_text_get_text", "position 1");
-      param_string2 = get_arg_of_func(win_val, "atk_text_get_text", "position 2");
-      text = atk_text_get_text (ATK_TEXT (obj), string_to_int(param_string1),
-        string_to_int(param_string2));
-      sprintf(output, "\nText %d, %d: %s\n", string_to_int(param_string1),
-        string_to_int(param_string2), text);
-      g_free (text);  
-      set_output_buffer(output);
-    }
-
-    if (strcmp(testsOn[i], "atk_text_get_caret_offset") == 0)
-    {
-      param_int1 = atk_text_get_caret_offset (ATK_TEXT (obj));
-      if (param_int1 == -1)
-        sprintf(output, "\nCaret offset: |Not Supported|\n");  
-      else
-        sprintf(output, "\nCaret offset: %d\n", param_int1);  
-      set_output_buffer(output);
-    }
-
-    if (strcmp(testsOn[i], "atk_text_set_caret_offset") == 0)
-    {
-      param_string1 = get_arg_of_func(win_val, "atk_text_set_caret_offset", "offset");
-      atk_text_set_caret_offset(ATK_TEXT(obj), string_to_int(param_string1));
-      sprintf(output, "\nPutting caret at offset: |%d|\n",
-        string_to_int(param_string1));
-      param_int1 = atk_text_get_caret_offset (ATK_TEXT (obj));
-
-      if (param_int1 == -1)
-        sprintf(output, "\nCaret offset: |Not Supported|\n");
-      else
-        sprintf(output, "\nCaret offset was set at: |%d|\n", param_int1);
-
-      set_output_buffer(output);
-    }
-    
-    if (strcmp(testsOn[i], "atk_text_get_n_selections") == 0)
-    {
-      param_int1 = atk_text_get_n_selections(ATK_TEXT(obj));
-      if (param_int1 == -1)
-      {
-        sprintf(output, "\nNo selected regions\n");
-        set_output_buffer(output);
-      }
-
-      for (j = 0; j < param_int1; j++)
-      {
-        sprintf(output, "\nNumber of selected text regions is: |%d|\n", j);  
-        set_output_buffer(output);
-
-        text = atk_text_get_selection(ATK_TEXT(obj), j, &start, &end);
-        if (text != NULL)
-        {
-          sprintf(output, "\nSelected text for region %d is: |%s|\n", j, text);
-          set_output_buffer(output);
-          sprintf(output,
-            "\nStart selection bounds: %d\tEnd selection bounds: %d\n",
-            start, end);
-        }
-        else
-        {
-          sprintf(output, "\nNo selected region %d\n", j);
-        }
-
-        set_output_buffer(output);
-      }
-    }
-
-    if (strcmp(testsOn[i], "atk_text_add_selection") == 0)
-    {
-      param_string1 = get_arg_of_func(win_val, "atk_text_add_selection", "start");
-      param_string2 = get_arg_of_func(win_val, "atk_text_add_selection", "end");
-      result = atk_text_add_selection(ATK_TEXT(obj),
-        string_to_int(param_string1), string_to_int(param_string2));   
-      sprintf(output, "\nSet selection bounds between %d, and %d: %s",
-        string_to_int(param_string1), string_to_int(param_string2),
-        result_string[result]);
-      set_output_buffer(output);
-      
-      param_int1 = atk_text_get_n_selections(ATK_TEXT(obj));
-      for (j = 0; j < param_int1; j++)
-      {
-        sprintf(output, "\nNumber of selected text region is: %d\n", j);
-        set_output_buffer(output);
-        text = atk_text_get_selection(ATK_TEXT(obj), j, &start, &end);
-
-        if (text != NULL)
-        {
-          sprintf(output, "\nSelected text for region %d is: |%s|\n", j, text);
-          set_output_buffer(output);
-          sprintf(output,
-            "\nStart selection bounds: %d\tEnd selection bounds: %d\n",
-            start, end);
-        }
-        else
-        {
-          sprintf(output, "\nNo selected region %d\n", j);
-        }
-
-        set_output_buffer(output);
-      }
-    }
-      
-    if (strcmp(testsOn[i], "atk_text_get_selection") == 0)
-    {
-      param_string1 = get_arg_of_func(win_val, "atk_text_get_selection", "selection no");
-      text = atk_text_get_selection(ATK_TEXT(obj),
-        string_to_int(param_string1), &start, &end);
-
-      if (text != NULL)
-      {
-        sprintf(output, "\nSelected text for region %d is: |%s|\n",
-          string_to_int(param_string1), text);
-        set_output_buffer(output);
-        sprintf(output,
-          "\nStart selection bounds: %d\t End selection bounds: %d\n",
-          start, end);
-      }
-      else
-      {
-        sprintf(output, "\nNo selected region %d\n", string_to_int(param_string1));
-      }
-
-      set_output_buffer(output);
-    }
-
-    if (strcmp(testsOn[i], "atk_text_set_selection") == 0)
-    {
-      param_string1 = get_arg_of_func(win_val, "atk_text_set_selection", "selection no");
-      param_string2 = get_arg_of_func(win_val, "atk_text_set_selection", "start");
-      param_string3 = get_arg_of_func(win_val, "atk_text_set_selection", "end");
-      result = atk_text_set_selection(ATK_TEXT(obj), string_to_int(param_string1),
-        string_to_int(param_string2), string_to_int(param_string3));
-      sprintf(output, "Set selection %d's bounds between %d and %d: %s\n",
-        string_to_int(param_string1), string_to_int(param_string2),
-        string_to_int(param_string3), result_string[result]);
-      set_output_buffer(output);
-      text = atk_text_get_selection(ATK_TEXT(obj), string_to_int(param_string1),
-        &start, &end);
-
-      if (text != NULL)
-      {
-        sprintf(output, "Selected text for the reset region %d is: |%s|\n",
-          string_to_int(param_string1), text);
-        set_output_buffer(output);
-        sprintf(output,
-          "\nNew start selection bounds: %d\tNew end selection bounds: %d\n",
-          start, end);
-      }
-      else
-      {
-        sprintf(output, "\nNo selected region %d\n", string_to_int(param_string1));
-      }
-
-      set_output_buffer(output);
-    }
-    
-    if (strcmp(testsOn[i], "atk_text_remove_selection") == 0)
-    {
-      param_string1 = get_arg_of_func(win_val, "atk_text_remove_selection", "selection no");
-      result = atk_text_remove_selection(ATK_TEXT(obj), string_to_int(param_string1));
-      sprintf(output, "Remove selection for region %d: %s\n",
-        string_to_int(param_string1), result_string[result]);
-      set_output_buffer(output);
-      text = atk_text_get_selection(ATK_TEXT(obj),
-        string_to_int(param_string1), &start, &end);
-
-      if (text != NULL)
-        sprintf(output, "\nRemoved regions text should be empty instead of: %s", text);
-      else
-        sprintf(output, "\nRemoved regions text should be empty, this is: ||");
-
-      set_output_buffer(output);
-    }
-
-    if (strcmp(testsOn[i], "atk_text_get_run_attributes") == 0)
-    {
-      gint test_int;
-      param_string1 = get_arg_of_func(win_val, "atk_text_get_run_attributes", "offset");
-      test_int = string_to_int(param_string1);
-      attrib = atk_text_get_run_attributes(ATK_TEXT(obj), test_int, &start, &end);
-      sprintf(output, "get_run_attributes at offset %i:\nStart: %i, End: %i\n", test_int,
-        start, end);
-      set_output_buffer(output);
-      if (attrib != NULL) {
-        GSList *node;
-        index = 0;
-        node = attrib;
-        while (node != NULL)
-        {
-          AtkAttribute* att = node->data;
-
-          sprintf(output, "List index: %i, Name: %s, Value: %s\n", index,
-            att->name, att->value);
-          set_output_buffer(output);
-          node = node->next;
-          index++;
-        }
-        atk_attribute_set_free (attrib);
-      }
-    }
-
-    if (strcmp(testsOn[i], "atk_text_get_default_attributes") == 0)
-    {
-      attrib = atk_text_get_default_attributes(ATK_TEXT(obj));
-      sprintf(output, "get_default_attributes\n");
-      set_output_buffer(output);
-      if (attrib != NULL) {
-        GSList *node;
-        index = 0;
-        node = attrib;
-        while (node != NULL)
-        {
-          AtkAttribute* att = node->data;
-
-          sprintf(output, "List index: %i, Name: %s, Value: %s\n", index,
-            att->name, att->value);
-          set_output_buffer(output);
-          node = node->next;
-          index++;
-        }
-        atk_attribute_set_free (attrib);
-      }
-    }
-    if (strcmp(testsOn[i], "atk_text_get_character_extents") == 0)
-    {
-      gint test_int;
-      param_string1 = get_arg_of_func(win_val, "atk_text_get_character_extents",
-        "offset");
-      param_string2 = get_arg_of_func(win_val, "atk_text_get_character_extents",
-        "coord mode");
-      test_int = string_to_int(param_string1);
-      if (strcmp(param_string2, "ATK_XY_SCREEN") == 0)
-      {
-        atk_text_get_character_extents(ATK_TEXT(obj), test_int, &x, &y, &width,
-          &height, ATK_XY_SCREEN);   
-        sprintf(output,
-          "get_character_extents at offset %i, mode: SCREEN\nX: %i, Y: %i, width: %i, height: %i\n",
-          test_int, x, y, width, height);
-      }
-      else if (strcmp(param_string2, "ATK_XY_WINDOW") == 0)
-      {
-        atk_text_get_character_extents(ATK_TEXT(obj), test_int, &x, &y, &width,
-          &height, ATK_XY_WINDOW);
-        sprintf(output,
-          "get_character_extents at offset %i, mode: WIDGET_WINDOW\nX: %i, Y: %i, width: %i, height: %i\n",
-          test_int, x, y, width, height);
-      }
-      else
-        sprintf(output, "get_character_extents_at_offset: Invalid coord mode argument!");
-           
-      set_output_buffer(output);
-    } 
-
-    if (strcmp(testsOn[i], "atk_text_get_offset_at_point") == 0)
-    {
-      gint test_int;
-      param_string1 = get_arg_of_func(win_val, "atk_text_get_offset_at_point", "x");
-      param_string2 = get_arg_of_func(win_val, "atk_text_get_offset_at_point", "y");
-      param_string3 = get_arg_of_func(win_val, "atk_text_get_offset_at_point", "coord mode");
-      param_int1 = string_to_int(param_string1);
-      param_int2 = string_to_int(param_string2);
-      if (strcmp(param_string3, "ATK_XY_SCREEN") == 0)
-      {
-        test_int = atk_text_get_offset_at_point(ATK_TEXT(obj), param_int1, param_int2,
-          ATK_XY_SCREEN);   
-        if (test_int != -1)
-          sprintf(output, "get_offset_at_point %i,%i mode: SCREEN is %i\n", param_int1, param_int2, test_int);
-        else 
-         sprintf(output, "Cannot get_offset_at_point\n");
-      }
-      else if (strcmp(param_string3, "ATK_XY_WINDOW") == 0)
-      {
-        test_int = atk_text_get_offset_at_point(ATK_TEXT(obj), param_int1, param_int2,
-          ATK_XY_WINDOW);   
-        if (test_int != -1)
-          sprintf(output, "get_offset_at_point %i,%i mode: WIDGET_WINDOW is %i\n", param_int1, param_int2, test_int);
-        else
-         sprintf(output, "Cannot get_offset_at_point\n");
-      }
-      else
-        sprintf(output, "get_offset_at_point: Invalid coord mode argument!");
-           
-      set_output_buffer(output);
-    } 
-    if (ATK_IS_EDITABLE_TEXT(obj))
-    {
-      if (strcmp(testsOn[i], "atk_editable_text_set_run_attributes") == 0)
-      {
-        param_string1 = get_arg_of_func(win_val,
-          "atk_editable_text_set_run_attributes", "start");
-        param_string2 = get_arg_of_func(win_val,
-          "atk_editable_text_set_run_attributes", "end");
-        result = atk_editable_text_set_run_attributes(ATK_EDITABLE_TEXT(obj),
-          attrib, string_to_int(param_string1), string_to_int(param_string2));
-        if (result)
-          sprintf(output, "\nSetting attributes in range %d to %d...OK\n",
-            string_to_int(param_string1), string_to_int(param_string2));
-        else
-          sprintf(output, "\nSetting attributes in range %d to %d...Failed\n",
-            string_to_int(param_string1), string_to_int(param_string2));
-        set_output_buffer(output); 
-      }
-      
-      if (strcmp(testsOn[i], "atk_editable_text_cut_text") == 0)
-      {
-        param_string1 = get_arg_of_func(win_val, "atk_editable_text_cut_text", "start");
-        param_string2 = get_arg_of_func(win_val, "atk_editable_text_cut_text", "end");
-        atk_editable_text_cut_text(ATK_EDITABLE_TEXT(obj),
-          string_to_int(param_string1), string_to_int(param_string2));
-        sprintf(output, "\nCutting text %d to %d...\n",
-          string_to_int(param_string1), string_to_int(param_string2));
-        set_output_buffer(output); 
-      }
-      
-      if (strcmp(testsOn[i], "atk_editable_text_paste_text") == 0)
-      {
-        param_string1 = get_arg_of_func(win_val, "atk_editable_text_paste_text",
-          "position");
-        atk_editable_text_paste_text(ATK_EDITABLE_TEXT(obj),
-          string_to_int(param_string1));
-        sprintf(output, "\nPasting text to %d\n", string_to_int(param_string1));
-        set_output_buffer(output); 
-      }
-      
-      if (strcmp(testsOn[i], "atk_editable_text_delete_text") == 0)
-      {
-        param_string1 = get_arg_of_func(win_val, "atk_editable_text_delete_text", "start");
-        param_string2 = get_arg_of_func(win_val, "atk_editable_text_delete_text", "end");
-        atk_editable_text_delete_text(ATK_EDITABLE_TEXT(obj),
-          string_to_int(param_string1), string_to_int(param_string2));
-        sprintf(output, "\nDeleting text %d to %d...\n",
-          string_to_int(param_string1), string_to_int(param_string2));
-        set_output_buffer(output); 
-      }
-      
-      if (strcmp(testsOn[i], "atk_editable_text_copy_text") == 0)
-      {
-        param_string1 = get_arg_of_func(win_val, "atk_editable_text_copy_text", "start");
-        param_string2 = get_arg_of_func(win_val, "atk_editable_text_copy_text", "end");
-        atk_editable_text_copy_text(ATK_EDITABLE_TEXT(obj),
-          string_to_int(param_string1), string_to_int(param_string2));
-        sprintf(output, "\nCopying text %d to %d...\n",
-          string_to_int(param_string1), string_to_int(param_string2));
-        set_output_buffer(output); 
-      }
-      
-      if (strcmp(testsOn[i], "atk_editable_text_insert_text") == 0)
-      {
-        param_string1 = get_arg_of_func(win_val, "atk_editable_text_insert_text",
-          "insert text");
-        param_string2 = get_arg_of_func(win_val, "atk_editable_text_insert_text",
-          "position");
-        param_int2 = string_to_int(param_string2);
-        atk_editable_text_insert_text(ATK_EDITABLE_TEXT(obj),
-          param_string1, strlen(param_string1), &param_int2);
-        sprintf(output, "\nInserting text at %d...\n", param_int2);
-        set_output_buffer(output); 
-      }
-    }
-  }  
-}
-
-/**
- * _run_offset_test:
- * @obj: An #AtkObject
- * @type: The type of test to run.  Can be "at", "before", or "after".
- * @offset: The offset into the text buffer.
- * @boundary: The boundary type.
- *
- * Tests the following ATK_TEXT API functions:
- * atk_text_get_text_at_offset
- * atk_text_get_text_before_offseet
- * atk_text_get_text_after_offset
- **/
-void _run_offset_test(AtkObject * obj, char * type, gint offset,
-  AtkTextBoundary boundary)
-{
-  gchar output[MAX_LINE_SIZE];
-  gchar default_val[5] = "NULL";
-  gchar *text;
-  gint  startOffset, endOffset;
-
-  if (strcmp(type, "at") == 0)
-    text = atk_text_get_text_at_offset (ATK_TEXT (obj),
-       offset, boundary, &startOffset, &endOffset);
-  else if (strcmp(type, "before") == 0)
-    text = atk_text_get_text_before_offset (ATK_TEXT (obj),
-       offset, boundary, &startOffset, &endOffset);
-  else if (strcmp(type, "after") == 0)
-    text = atk_text_get_text_after_offset (ATK_TEXT (obj),
-       offset, boundary, &startOffset, &endOffset);
-  else
-    text = NULL;
-
-  if (text == NULL)
-    text = g_strdup (default_val);
-    
-  if (boundary == ATK_TEXT_BOUNDARY_CHAR)
-    sprintf(output, "\n|%s| Text |%s|  Boundary |BOUNDARY_CHAR|\n",
-      type, text);
-  else if (boundary == ATK_TEXT_BOUNDARY_WORD_START)
-    sprintf(output, "\n|%s| Text |%s| Boundary |BOUNDARY_WORD_START|\n",
-      type, text);
-  else if (boundary == ATK_TEXT_BOUNDARY_WORD_END)
-    sprintf(output, "\n|%s| Text |%s| Boundary |BOUNDARY_WORD_END|\n",
-      type, text);
-  else if (boundary == ATK_TEXT_BOUNDARY_SENTENCE_START)
-    sprintf(output, "\n|%s| Text |%s| Boundary |BOUNDARY_SENTENCE_START|\n",
-      type, text);
-  else if (boundary == ATK_TEXT_BOUNDARY_SENTENCE_END)
-    sprintf(output, "\n|%s| Text |%s| Boundary |BOUNDARY_SENTENCE_END|\n",
-      type, text);
-  else if (boundary == ATK_TEXT_BOUNDARY_LINE_START)
-    sprintf(output, "\n|%s| Text |%s| Boundary |BOUNDARY_LINE_START|\n",
-      type, text);
-  else if (boundary == ATK_TEXT_BOUNDARY_LINE_END)
-    sprintf(output, "\n|%s| Text |%s| Boundary |BOUNDARY_LINE_END|\n",
-      type, text);
-  else
-    sprintf(output, "\n|%s| Text |%s| Boundary |UNKNOWN|\n",
-      type, text);
-
-  g_free (text);  
-  set_output_buffer(output);
-
-  sprintf(output, "Offset %d, startOffset %d, endOffset %d\n",
-    offset, startOffset, endOffset);
-  set_output_buffer(output);
-}
diff --git a/modules/other/gail/tests/testtextlib.h b/modules/other/gail/tests/testtextlib.h
deleted file mode 100644 (file)
index d135c22..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#include <stdio.h>
-#include <gtk/gtk.h>
-#include <atk/atk.h>
-#include "testlib.h"
-
-void add_handlers (AtkObject *obj);
-gint setup_gui (AtkObject *obj, TLruntest test);
-void runtest(AtkObject *obj, gint win_num);
-void _run_offset_test(AtkObject *obj, char * type, gint param_int1, AtkTextBoundary boundary);
-void _notify_caret_handler (GObject *obj, int position);
-void _notify_text_insert_handler (GObject *obj,
-  int start_offset, int end_offset);
-void _notify_text_delete_handler (GObject *obj,
-  int start_offset, int end_offset);                                 
-
diff --git a/modules/other/gail/tests/testtoplevel.c b/modules/other/gail/tests/testtoplevel.c
deleted file mode 100644 (file)
index 63addd0..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-#include <atk/atk.h>
-#include <gtk/gtk.h>
-#include "testlib.h"
-
-static void _notify_toplevel_child_added (GObject *obj,
-  guint index, AtkObject *child, gpointer user_data);
-static void _notify_toplevel_child_removed (GObject *obj,
-  guint index, AtkObject *child, gpointer user_data);
-static gboolean _button_press_event_watcher (GSignalInvocationHint *ihint,
-  guint n_param_values, const GValue *param_values, gpointer data);
-
-static guint id;
-static gboolean g_register_listener = FALSE;
-static guint g_signal_listener = 0;
-static gint g_press_count = 0;
-
-static void
-_check_toplevel (AtkObject *obj)
-{
-  AtkObject *root_obj;
-  const gchar *name_string, *version_string;
-  gint max_depth;
-
-  g_print ("Start of _check_toplevel\n");
-  root_obj = atk_get_root();
-
-  if (!already_accessed_atk_object(root_obj))
-    {
-      g_signal_connect_closure (root_obj, "children_changed::add",
-               g_cclosure_new (G_CALLBACK (_notify_toplevel_child_added),
-               NULL, NULL),
-               FALSE);
-
-      g_signal_connect_closure (root_obj, "children_changed::remove",
-               g_cclosure_new (G_CALLBACK (_notify_toplevel_child_removed),
-               NULL, NULL),
-               FALSE);
-    }
-
-  name_string = atk_get_toolkit_name();
-  version_string = atk_get_toolkit_version();
-  g_print ("Toolkit name <%s> version <%s>\n", name_string,
-    version_string);
-
-  if (g_getenv("TEST_ACCESSIBLE_DEPTH") != NULL)
-    max_depth = string_to_int(g_getenv("TEST_ACCESSIBLE_DEPTH"));
-  else
-    max_depth = 2;
-
-  display_children_to_depth(root_obj, max_depth, 0, 0);
-  g_print ("End of _check_toplevel\n");
-
-  if (!g_register_listener)
-    {
-      g_print("Adding global event listener on buttons\n");
-      g_register_listener = TRUE;
-      g_signal_listener = atk_add_global_event_listener(_button_press_event_watcher,
-        "Gtk:GtkButton:pressed");
-    }
-}
-
-static void
-_create_event_watcher (void)
-{
-  id = atk_add_focus_tracker (_check_toplevel);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testtoplevel Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
-
-static void _notify_toplevel_child_added (GObject *obj,
-  guint child_index, AtkObject *child, gpointer user_data)
-{
-   g_print ("SIGNAL - Child added - index %d\n", child_index);
-}
-
-static void _notify_toplevel_child_removed (GObject *obj,
-  guint child_index, AtkObject *child, gpointer user_data)
-{
-   g_print ("SIGNAL - Child removed - index %d\n", child_index);
-}
-
-static gboolean
-_button_press_event_watcher (GSignalInvocationHint *ihint,
-                    guint                 n_param_values,
-                    const GValue         *param_values,
-                    gpointer              data)
-{
-  GObject *object;
-  gchar * button_name = (gchar *) data;
-
-  object = g_value_get_object (param_values + 0);
-
-  if (ATK_IS_IMPLEMENTOR(object))
-    {
-      AtkObject * atk_obj =
-        atk_implementor_ref_accessible(ATK_IMPLEMENTOR(object));
-
-      g_print("Button <%s> pressed %d times!\n", button_name,
-        (g_press_count + 1));
-      g_print("Displaying children of Button pressed!\n");
-      display_children(atk_obj, 0, 0);
-
-      if (g_press_count >= 5)
-        {
-          g_print("Removing global event listener on buttons\n");
-          atk_remove_global_event_listener(g_signal_listener);
-          g_signal_listener = 0;
-          g_press_count = 0;
-          g_register_listener = FALSE;
-        }
-      else
-        {
-          g_press_count++;
-        }
-    }
-
-  return TRUE;
-}
-
diff --git a/modules/other/gail/tests/testtreetable.c b/modules/other/gail/tests/testtreetable.c
deleted file mode 100644 (file)
index dcf1579..0000000
+++ /dev/null
@@ -1,499 +0,0 @@
-#include <stdlib.h>
-#include <testlib.h>
-
-/*
- * This module is for use with the test program testtreeview
- */
-static gboolean state_change_watch  (GSignalInvocationHint *ihint,
-                                     guint                  n_param_values,
-                                     const GValue          *param_values,
-                                     gpointer               data);
-
-static void _check_table             (AtkObject         *in_obj);
-static void _check_cell_actions      (AtkObject         *in_obj);
-
-static gint _find_expander_column    (AtkTable          *table);
-static void _check_expanders         (AtkTable          *table,
-                                      gint              expander_column);
-static void _runtest                 (AtkObject         *obj);
-static void _create_event_watcher    (void);
-static void row_inserted             (AtkObject         *obj,
-                                      gint              row,
-                                      gint              count);
-static void row_deleted              (AtkObject         *obj,
-                                      gint              row,
-                                      gint              count);
-static AtkObject *table_obj = NULL;
-static gint expander_column = -1;
-static gboolean editing_cell = FALSE;
-
-static gboolean 
-state_change_watch (GSignalInvocationHint *ihint,
-                    guint                  n_param_values,
-                    const GValue          *param_values,
-                    gpointer               data)
-{
-  GObject *object;
-  gboolean state_set;
-  const gchar *state_name;
-  AtkStateType state_type;
-
-  object = g_value_get_object (param_values + 0);
-  g_return_val_if_fail (ATK_IS_OBJECT (object), FALSE);
-
-  state_name = g_value_get_string (param_values + 1);
-  state_set = g_value_get_boolean (param_values + 2);
-
-  g_print ("Object type: %s state: %s set: %d\n", 
-           g_type_name (G_OBJECT_TYPE (object)), state_name, state_set);
-  state_type = atk_state_type_for_name (state_name);
-  if (state_type == ATK_STATE_EXPANDED)
-    {
-      AtkObject *parent = atk_object_get_parent (ATK_OBJECT (object));
-
-      if (ATK_IS_TABLE (parent))
-        _check_expanders (ATK_TABLE (parent), expander_column);
-    }
-  return TRUE;
-}
-
-static void 
-_check_table (AtkObject *in_obj)
-{
-  AtkObject *obj;
-  AtkRole role[2];
-  AtkRole obj_role;
-  static gboolean emission_hook_added = FALSE;
-
-  if (!emission_hook_added)
-    {
-      emission_hook_added = TRUE;
-      g_signal_add_emission_hook (
-                    g_signal_lookup ("state-change", ATK_TYPE_OBJECT),
-      /*
-       * To specify an emission hook for a particular state, e.g. 
-       * ATK_STATE_EXPANDED, instead of 0 use
-       * g_quark_from_string (atk_state_type_get_name (ATK_STATE_EXPANDED))
-       */  
-                    0,
-                    state_change_watch, NULL, (GDestroyNotify) NULL);
-    }
-
-  role[0] = ATK_ROLE_TABLE;
-  role[1] = ATK_ROLE_TREE_TABLE;
-  
-  g_print ("focus event for: %s\n", g_type_name (G_OBJECT_TYPE (in_obj)));
-
-  _check_cell_actions (in_obj);
-
-  obj_role = atk_object_get_role (in_obj);
-  if (obj_role == ATK_ROLE_TABLE_CELL)
-    obj = atk_object_get_parent (in_obj);
-  else
-    obj = find_object_by_role (in_obj, role, 2);
-  if (obj == NULL)
-    return;
-
-  editing_cell = FALSE;
-
-  if (obj != table_obj)
-    {
-      table_obj = obj;
-      g_print("Found %s table\n", g_type_name (G_OBJECT_TYPE (obj)));
-      g_signal_connect (G_OBJECT (obj),
-                        "row_inserted",
-                        G_CALLBACK (row_inserted),
-                        NULL);
-      g_signal_connect (G_OBJECT (obj),
-                        "row_deleted",
-                        G_CALLBACK (row_deleted),
-                        NULL);
-      /*
-       * Find expander column
-       */
-      if (ATK_IS_TABLE (obj))
-        {
-          if (atk_object_get_role (obj) == ATK_ROLE_TREE_TABLE)
-            {
-              expander_column = _find_expander_column (ATK_TABLE (obj));
-              if (expander_column == -1)
-                {
-                  g_warning ("Expander column not found\n");
-                  return;
-                }
-            }
-          _runtest(obj);
-        }
-      else
-        g_warning ("Table does not support AtkTable interface\n");
-    }
-  else 
-    {
-      /*
-       * We do not call these functions at the same time as we set the 
-       * signals as the GtkTreeView may not be displayed yet.
-       */
-      gint x, y, width, height, first_x, last_x, last_y;
-      gint first_row, last_row, first_column, last_column;
-      gint index;
-      AtkObject *first_child, *last_child, *header;
-      AtkComponent *component = ATK_COMPONENT (obj);
-      AtkTable *table = ATK_TABLE (obj);
-
-      atk_component_get_extents (component, 
-                                 &x, &y, &width, &height, ATK_XY_WINDOW);
-      g_print ("WINDOW: x: %d y: %d width: %d height: %d\n",
-               x, y, width, height);
-      atk_component_get_extents (component, 
-                                 &x, &y, &width, &height, ATK_XY_SCREEN);
-      g_print ("SCREEN: x: %d y: %d width: %d height: %d\n",
-               x, y, width, height);
-      last_x = x + width - 1;
-      last_y = y + height - 1;
-      first_x = x; 
-      header = atk_table_get_column_header (table, 0);
-      if (header)
-        {
-          atk_component_get_extents (ATK_COMPONENT (header), 
-                                     &x, &y, &width, &height, ATK_XY_SCREEN);
-          g_print ("Got column header: x: %d y: %d width: %d height: %d\n",
-                   x, y, width, height);
-          y += height;
-        }
-      first_child = atk_component_ref_accessible_at_point (component, 
-                                             first_x, y, ATK_XY_SCREEN);
-      atk_component_get_extents (ATK_COMPONENT (first_child), 
-                                 &x, &y, &width, &height, ATK_XY_SCREEN);
-      g_print ("first_child: x: %d y: %d width: %d height: %d\n",
-               x, y, width, height);
-      index = atk_object_get_index_in_parent (ATK_OBJECT (first_child));
-      first_row = atk_table_get_row_at_index (table, index);
-      first_column = atk_table_get_column_at_index (table, index);
-      g_print ("first_row: %d first_column: %d index: %d\n",
-               first_row, first_column, index);
-      g_assert (index == atk_table_get_index_at (table, first_row, first_column));
-      last_child = atk_component_ref_accessible_at_point (component, 
-                                     last_x, last_y, ATK_XY_SCREEN);
-      if (last_child == NULL)
-        {
-          /* The TreeView may be bigger than the data */
-          gint n_children;
-
-          n_children = atk_object_get_n_accessible_children (obj);
-          last_child = atk_object_ref_accessible_child (obj, n_children - 1);
-        }
-      atk_component_get_extents (ATK_COMPONENT (last_child), 
-                                 &x, &y, &width, &height, ATK_XY_SCREEN);
-      g_print ("last_child: x: %d y: %d width: %d height: %d\n",
-               x, y, width, height);
-      index = atk_object_get_index_in_parent (ATK_OBJECT (last_child));
-      last_row = atk_table_get_row_at_index (table, index);
-      last_column = atk_table_get_column_at_index (table, index);
-      g_print ("last_row: %d last_column: %d index: %d\n",
-               last_row, last_column, index);
-      g_assert (index == atk_table_get_index_at (table, last_row, last_column));
-      g_object_unref (first_child);
-      g_object_unref (last_child);
-
-      if (expander_column >= 0)
-        {
-          gint n_rows, i;
-          gint x, y, width, height;
-
-          n_rows = atk_table_get_n_rows (table);
-          for (i = 0; i < n_rows; i++)
-            {
-              AtkObject *child_obj;
-              AtkStateSet *state_set;
-              gboolean showing;
-
-              child_obj = atk_table_ref_at (table, i, expander_column);
-              state_set = atk_object_ref_state_set (child_obj);
-              showing =  atk_state_set_contains_state (state_set, 
-                                                       ATK_STATE_SHOWING);
-              g_object_unref (state_set);
-              atk_component_get_extents (ATK_COMPONENT (child_obj), 
-                                         &x, &y, &width, &height, 
-                                         ATK_XY_SCREEN);
-              g_object_unref (child_obj);
-              if (showing)
-                g_print ("Row: %d Column: %d x: %d y: %d width: %d height: %d\n", 
-                         i, expander_column, x, y, width, height);
-            }
-        }
-    }
-}
-
-static void 
-_check_cell_actions (AtkObject *in_obj)
-{
-  AtkRole role;
-  AtkAction *action;
-  gint n_actions, i;
-
-  role = atk_object_get_role (in_obj);
-  if (role != ATK_ROLE_TABLE_CELL)
-    return;
-
-  if (!ATK_IS_ACTION (in_obj))
-    return;
-
-  if (editing_cell)
-    return;
-
-  action = ATK_ACTION (in_obj);
-
-  n_actions = atk_action_get_n_actions (action);
-
-  for (i = 0; i < n_actions; i++)
-    {
-      const gchar* name;
-
-      name = atk_action_get_name (action, i);
-      g_print ("Action %d is %s\n", i, name);
-#if 0
-      if (strcmp (name, "edit") == 0)
-        {
-          editing_cell = TRUE;
-          atk_action_do_action (action, i);
-        }
-#endif
-    }
-  return;
-}
-
-static gint 
-_find_expander_column (AtkTable *table)
-{
-  gint n_columns, i;
-  gint retval = -1;
-
-  n_columns = atk_table_get_n_columns (table);
-  for (i = 0; i < n_columns; i++)
-    {
-      AtkObject *cell;
-      AtkRelationSet *relation_set;
-
-      cell = atk_table_ref_at (table, 0, i);
-      relation_set =  atk_object_ref_relation_set (cell);
-      if (atk_relation_set_contains (relation_set, 
-                                     ATK_RELATION_NODE_CHILD_OF))
-        retval = i;
-      g_object_unref (relation_set);
-      g_object_unref (cell);
-      if (retval >= 0)
-        break;
-    }
-  return retval;
-}
-
-static void
-_check_expanders (AtkTable *table,
-                  gint     expander_column)
-{
-  gint n_rows, i;
-
-  n_rows = atk_table_get_n_rows (table);
-
-  for (i = 0; i < n_rows; i++)
-    {
-      AtkObject *cell;
-      AtkRelationSet *relation_set;
-      AtkRelation *relation;
-      GPtrArray *target;
-      gint j;
-
-      cell = atk_table_ref_at (table, i, expander_column);
-
-      relation_set =  atk_object_ref_relation_set (cell);
-      relation = atk_relation_set_get_relation_by_type (relation_set, 
-                                     ATK_RELATION_NODE_CHILD_OF);
-      g_assert (relation);
-      target = atk_relation_get_target (relation);
-      g_assert (target->len == 1);
-      for (j = 0; j < target->len; j++)
-        {
-          AtkObject *target_obj;
-          AtkRole role;
-          gint target_index, target_row;
-
-          target_obj = g_ptr_array_index (target, j);
-          role = atk_object_get_role (target_obj);
-
-          switch (role)
-            {
-            case ATK_ROLE_TREE_TABLE:
-              g_print ("Row %d is top level\n", i);
-              break;
-            case ATK_ROLE_TABLE_CELL:
-              target_index = atk_object_get_index_in_parent (target_obj);
-              target_row = atk_table_get_row_at_index (table, target_index);
-              g_print ("Row %d has parent at %d\n", i, target_row);
-              break;
-            default:
-              g_assert_not_reached ();
-            } 
-        }
-      g_object_unref (relation_set);
-      g_object_unref (cell);
-    }
-}
-
-static void
-_create_event_watcher (void)
-{
-  atk_add_focus_tracker (_check_table);
-}
-
-int
-gtk_module_init (gint argc, 
-                 char *argv[])
-{
-  g_print ("testtreetable Module loaded\n");
-
-  _create_event_watcher ();
-
-  return 0;
-}
-
-static void
-_runtest (AtkObject *obj)
-{
-  AtkObject *child_obj;
-  AtkTable *table;
-  AtkObject *caption;
-  gint i;
-  gint n_cols, n_rows, n_children; 
-
-  table = ATK_TABLE (obj);
-  n_children = atk_object_get_n_accessible_children (ATK_OBJECT (obj));
-  n_cols = atk_table_get_n_columns (table);
-  n_rows = atk_table_get_n_rows (table);
-  g_print ("n_children: %d n_rows: %d n_cols: %d\n", 
-            n_children, n_rows, n_cols);
-  
-  for (i = 0; i < n_rows; i++)
-    {
-      gint index = atk_table_get_index_at (table, i, expander_column);
-      gint index_in_parent;
-
-      child_obj = atk_table_ref_at (table, i, expander_column);
-      index_in_parent = atk_object_get_index_in_parent (child_obj);
-      g_print ("index: %d %d row %d column %d\n", index, index_in_parent, i, expander_column);
-      
-      g_object_unref (child_obj);
-    }
-  caption = atk_table_get_caption (table);
-  if (caption)
-    {
-      const gchar *caption_name = atk_object_get_name (caption);
-
-      g_print ("Caption: %s\n", caption_name ? caption_name : "<null>");
-    }
-  for (i = 0; i < n_cols; i++)
-    {
-      AtkObject *header;
-
-      header = atk_table_get_column_header (table, i);
-      g_print ("Header for column %d is %p\n", i, header);
-      if (header)
-        {
-         const gchar *name;
-         AtkRole role;
-          AtkObject *parent;
-          AtkObject *child;
-          gint index;
-
-          name = atk_object_get_name (header);
-          role = atk_object_get_role (header);
-          parent = atk_object_get_parent (header);
-
-          if (parent)
-            {
-              index = atk_object_get_index_in_parent (header);
-              g_print ("Parent: %s index: %d\n", G_OBJECT_TYPE_NAME (parent), index);
-              child = atk_object_ref_accessible_child (parent, 0);
-              g_print ("Child: %s %p\n", G_OBJECT_TYPE_NAME (child), child);
-              if (index >= 0)
-                {
-                  child = atk_object_ref_accessible_child (parent, index);
-                  g_print ("Index: %d child: %s\n", index, G_OBJECT_TYPE_NAME (child));
-                  g_object_unref (child);
-                }
-            }
-          else
-            g_print ("Parent of header is NULL\n");
-          g_print ("%s %s %s\n", G_OBJECT_TYPE_NAME (header), name ? name: "<null>", atk_role_get_name (role));
-        }
-    }
-}
-
-static void 
-row_inserted (AtkObject *obj,
-              gint      row,
-              gint      count)
-{
-#if 0
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeModel *tree_model;
-#endif
-  gint index;
-
-  g_print ("row_inserted: row: %d count: %d\n", row, count);
-  index = atk_table_get_index_at (ATK_TABLE (obj), row+1, 0);
-  g_print ("index for first column of next row is %d\n", index);
-
-#if 0
-  widget = GTK_ACCESSIBLE (obj)->widget;
-  tree_view = GTK_TREE_VIEW (widget);
-  tree_model = gtk_tree_view_get_model (tree_view);
-  if (GTK_IS_TREE_STORE (tree_model))
-    {
-      GtkTreeStore *tree_store;
-      GtkTreePath *tree_path;
-      GtkTreeIter tree_iter;
-
-      tree_store = GTK_TREE_STORE (tree_model);
-      tree_path = gtk_tree_path_new_from_string ("3:0");
-      gtk_tree_model_get_iter (tree_model, &tree_iter, tree_path);
-      gtk_tree_path_free (tree_path);
-      gtk_tree_store_remove (tree_store, &tree_iter);
-    }
-#endif
-}
-
-static void 
-row_deleted (AtkObject *obj,
-             gint      row,
-             gint      count)
-{
-#if 0
-  GtkWidget *widget;
-  GtkTreeView *tree_view;
-  GtkTreeModel *tree_model;
-#endif
-  gint index;
-
-  g_print ("row_deleted: row: %d count: %d\n", row, count);
-  index = atk_table_get_index_at (ATK_TABLE (obj), row+1, 0);
-  g_print ("index for first column of next row is %d\n", index);
-
-#if 0
-  widget = GTK_ACCESSIBLE (obj)->widget;
-  tree_view = GTK_TREE_VIEW (widget);
-  tree_model = gtk_tree_view_get_model (tree_view);
-  if (GTK_IS_TREE_STORE (tree_model))
-    {
-      GtkTreeStore *tree_store;
-      GtkTreePath *tree_path;
-      GtkTreeIter tree_iter, new_iter;
-
-      tree_store = GTK_TREE_STORE (tree_model);
-      tree_path = gtk_tree_path_new_from_string ("2");
-      gtk_tree_model_get_iter (tree_model, &tree_iter, tree_path);
-      gtk_tree_path_free (tree_path);
-      gtk_tree_store_insert_before (tree_store, &new_iter, NULL, &tree_iter);
-    }
-#endif
-}
diff --git a/modules/other/gail/tests/testvalues.c b/modules/other/gail/tests/testvalues.c
deleted file mode 100644 (file)
index f6ef8d0..0000000
+++ /dev/null
@@ -1,193 +0,0 @@
-#include <string.h>
-#include <atk/atk.h>
-#include <gtk/gtk.h>
-
-static void _traverse_children (AtkObject *obj);
-static void _add_handler (AtkObject *obj);
-static void _check_values (AtkObject *obj);
-static void _value_change_handler (AtkObject   *obj,
-                                      AtkPropertyValues *values);
-
-static guint id;
-
-static void _value_change_handler (AtkObject   *obj,
-                                   AtkPropertyValues   *values)
-{
-  const gchar *type_name = g_type_name (G_TYPE_FROM_INSTANCE (obj));
-   GValue *value_back, val;
-
-  value_back = &val;
-    
-  if (!ATK_IS_VALUE (obj)) { 
-       return;
-  }
-
-  if (strcmp (values->property_name, "accessible-value") == 0) {
-       g_print ("_value_change_handler: Accessible Type: %s\n",
-           type_name ? type_name : "NULL");
-       if(G_VALUE_HOLDS_DOUBLE (&values->new_value))
-    {
-               g_print( "adjustment value changed : new value: %f\n", 
-               g_value_get_double (&values->new_value));
-       }
-
-       g_print("Now calling the AtkValue interface functions\n");
-
-       atk_value_get_current_value (ATK_VALUE(obj), value_back);
-       g_return_if_fail (G_VALUE_HOLDS_DOUBLE (value_back));
-       g_print ("atk_value_get_current_value returns %f\n",
-                       g_value_get_double (value_back) );
-
-       atk_value_get_maximum_value (ATK_VALUE (obj), value_back);
-       g_return_if_fail (G_VALUE_HOLDS_DOUBLE (value_back));
-       g_print ("atk_value_get_maximum returns %f\n",
-                       g_value_get_double (value_back));
-
-       atk_value_get_minimum_value (ATK_VALUE (obj), value_back);
-       g_return_if_fail (G_VALUE_HOLDS_DOUBLE (value_back));
-       g_print ("atk_value_get_minimum returns %f\n", 
-                       g_value_get_double (value_back));
-       
-    }
-  
-}
-
-static void _traverse_children (AtkObject *obj)
-{
-  gint n_children, i;
-
-  n_children = atk_object_get_n_accessible_children (obj);
-  for (i = 0; i < n_children; i++)
-  {
-    AtkObject *child;
-
-    child = atk_object_ref_accessible_child (obj, i);
-    _add_handler (child);
-    _traverse_children (child);
-    g_object_unref (G_OBJECT (child));
-  }
-}
-
-static void _add_handler (AtkObject *obj)
-{
-  static GPtrArray *obj_array = NULL;
-  gboolean found = FALSE;
-  gint i;
-
-  /*
-   * We create a property handler for each object if one was not associated 
-   * with it already.
-   *
-   * We add it to our array of objects which have property handlers; if an
-   * object is destroyed it remains in the array.
-   */
-  if (obj_array == NULL)
-    obj_array = g_ptr_array_new ();
-  for (i = 0; i < obj_array->len; i++)
-  {
-    if (obj == g_ptr_array_index (obj_array, i))
-    {
-      found = TRUE;
-      break;
-    }
-  }
-  if (!found)
-  {
-    atk_object_connect_property_change_handler (obj,
-                   (AtkPropertyChangeHandler*) _value_change_handler);
-    g_ptr_array_add (obj_array, obj);
-  }
-}
-
-static void _set_values (AtkObject *obj) {
-
-  GValue *value_back, val;
-  static gint count = 0;
-  gdouble double_value;
-
-  value_back = &val;
-
-  if(ATK_IS_VALUE(obj)) {
-       /* Spin button also inherits the text interfaces from GailEntry. 
-        * Check when spin button recieves focus.
-     */
-
-       if(ATK_IS_TEXT(obj) && ATK_IS_EDITABLE_TEXT(obj)) {
-               if(count == 0) {        
-                       gint x;
-                       gchar* text;
-                       count++;
-                       x = atk_text_get_character_count (ATK_TEXT (obj));
-                       text = atk_text_get_text (ATK_TEXT (obj), 0, x);
-                       g_print("Text : %s\n", text);
-                       text = "5.7";
-                       atk_editable_text_set_text_contents(ATK_EDITABLE_TEXT(obj),text);
-                       g_print("Set text to %s\n",text);
-                       atk_value_get_current_value(ATK_VALUE(obj), value_back);
-                       g_return_if_fail (G_VALUE_HOLDS_DOUBLE (value_back));
-                       g_print("atk_value_get_current_value returns %f\n", 
-                               g_value_get_double( value_back));
-                       } 
-       } else {
-               memset (value_back, 0, sizeof (GValue));
-               g_value_init (value_back, G_TYPE_DOUBLE);
-               g_value_set_double (value_back, 10.0);  
-               if (atk_value_set_current_value (ATK_VALUE (obj), value_back))
-               {
-                       double_value = g_value_get_double (value_back);
-                       g_print("atk_value_set_current_value returns %f\n", 
-                       double_value);
-               }
-       }
-  }
-}
-
-static void _check_values (AtkObject *obj)
-{
-  static gint calls = 0;
-  AtkRole role;
-
-  g_print ("Start of _check_values\n");
-
-  _set_values(obj);
-
-  _add_handler (obj);
-
-  if (++calls < 2)
-  { 
-    /*
-     * Just do this on this on the first 2 objects visited
-     */
-    atk_object_set_name (obj, "test123");
-    atk_object_set_description (obj, "test123");
-  }
-
-  role = atk_object_get_role (obj);
-
-  if (role == ATK_ROLE_FRAME || role == ATK_ROLE_DIALOG)
-  {
-    /*
-     * Add handlers to all children.
-     */
-    _traverse_children (obj);
-  }
-  g_print ("End of _check_values\n");
-}
-
-static void
-_create_event_watcher (void)
-{
-  id = atk_add_focus_tracker (_check_values);
-}
-
-int
-gtk_module_init(gint argc, char* argv[])
-{
-  g_print("testvalues Module loaded\n");
-
-  _create_event_watcher();
-
-  return 0;
-}
index 665657a4c10bb9c24c8d16a0ad1e8d2ccc374895..f90a28f73b736b24eaf15a730266a2243d4c02da 100644 (file)
@@ -4,7 +4,7 @@ if PLATFORM_WIN32
 no_undefined = -no-undefined
 endif
 
-INCLUDES = \
+AM_CPPFLAGS = \
        -I$(top_srcdir)                                 \
        -I$(top_srcdir)/gtk                             \
        -I$(top_builddir)/gtk                           \
index 38236525b74d8961993bfec5d6b6d12360c62bc8..ff51351d3d9d5c872a6ccf4a37c2b7c9e475d208 100644 (file)
@@ -4,7 +4,7 @@ if PLATFORM_WIN32
 no_undefined = -no-undefined
 endif
 
-INCLUDES = \
+AM_CPPFLAGS = \
        -I$(top_srcdir)                                 \
        -I$(top_srcdir)/gtk                             \
        -I$(top_builddir)/gtk                           \
index 9d7109d0c3a7b4376928d21ae3047a38ad910b38..5388baa3a359389cd14a883c1aa43f814f600f4f 100644 (file)
@@ -2,7 +2,7 @@ if OS_WIN32
 no_undefined = -no-undefined
 endif
 
-INCLUDES = \
+AM_CPPFLAGS = \
        -I$(top_srcdir)                                 \
        -I$(top_srcdir)/gtk                             \
        -I$(top_builddir)/gtk                           \
index 799b748eabbcfcdbf3d09bb58642aa7cdcaa59d7..e76f605bc3880d02a98cd0c0dedc7334c780acb4 100644 (file)
@@ -1,7 +1,7 @@
 ## Makefile.am for gtk+/perf
 include $(top_srcdir)/Makefile.decl
 
-INCLUDES =                             \
+AM_CPPFLAGS =                          \
        -I$(top_srcdir)                 \
        -I$(top_builddir)/gdk           \
        -I$(top_srcdir)/gdk             \
@@ -30,8 +30,6 @@ testperf_SOURCES =            \
        gtkwidgetprofiler.c     \
        gtkwidgetprofiler.h     \
        main.c                  \
-       marshalers.c            \
-       marshalers.h            \
        textview.c              \
        treeview.c              \
        typebuiltins.c          \
@@ -39,13 +37,10 @@ testperf_SOURCES =          \
        widgets.h
 
 BUILT_SOURCES =                        \
-       marshalers.c            \
-       marshalers.h            \
        typebuiltins.c          \
        typebuiltins.h
 
 stamp_files =                  \
-       stamp-marshalers.h      \
        stamp-typebuiltins.h
 
 headers_with_enums =           \
@@ -53,18 +48,6 @@ headers_with_enums =                 \
 
 MAINTAINERCLEANFILES = $(BUILT_SOURCES) $(stamp_files)
 
-marshalers.h: stamp-marshalers.h
-       @true
-
-stamp-marshalers.h: @REBUILD@ marshalers.list
-       $(GLIB_GENMARSHAL) --prefix=_testperf_marshal $(srcdir)/marshalers.list --header >> xgen-gmlh \
-       && (cmp -s xgen-gmlh marshalers.h || cp xgen-gmlh marshalers.h) \
-       && rm -f xgen-gmlh \
-       && echo timestamp > $(@F)
-marshalers.c: @REBUILD@ marshalers.list
-       $(GLIB_GENMARSHAL) --prefix=_testperf_marshal $(srcdir)/marshalers.list --body >> xgen-gmlc \
-       && cp xgen-gmlc marshalers.c \
-       && rm -f xgen-gmlc
 
 typebuiltins.h: stamp-typebuiltins.h
        @true
@@ -83,7 +66,6 @@ typebuiltins.c: @REBUILD@ $(headers_with_enums) typebuiltins.c.template
 
 EXTRA_DIST +=          \
        README          \
-       marshalers.list \
        typebuiltins.c.template \
        typebuiltins.h.template \
        $(BUILT_SOURCES)
index afbc53dd22e6c99d6018accc819b70ec9b3bc080..0a42f1427a70f6d2fca4a2196bb82d03a79a3ddc 100644 (file)
@@ -1,7 +1,6 @@
 #include "config.h"
 #include <string.h>
 #include "gtkwidgetprofiler.h"
-#include "marshalers.h"
 #include "typebuiltins.h"
 
 typedef enum {
@@ -53,7 +52,7 @@ gtk_widget_profiler_class_init (GtkWidgetProfilerClass *class)
                  G_SIGNAL_RUN_LAST,
                  G_STRUCT_OFFSET (GtkWidgetProfilerClass, create_widget),
                  NULL, NULL,
-                 _testperf_marshal_OBJECT__VOID,
+                 NULL,
                  G_TYPE_OBJECT, 0);
 
   signals[REPORT] =
@@ -62,7 +61,7 @@ gtk_widget_profiler_class_init (GtkWidgetProfilerClass *class)
                  G_SIGNAL_RUN_FIRST,
                  G_STRUCT_OFFSET (GtkWidgetProfilerClass, report),
                  NULL, NULL,
-                 _testperf_marshal_VOID__ENUM_OBJECT_DOUBLE,
+                 NULL,
                  G_TYPE_NONE, 3,
                  GTK_TYPE_WIDGET_PROFILER_REPORT,
                  G_TYPE_OBJECT,
diff --git a/perf/marshalers.list b/perf/marshalers.list
deleted file mode 100644 (file)
index 413f248..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-OBJECT:VOID
-VOID:ENUM,OBJECT,DOUBLE
index dfb3b79e87899e475c9e01209bb81924dc1c78a6..85b2a606d5a5944c65684df12b9093eebddb486a 100644 (file)
@@ -1,7 +1,7 @@
 # Files from the Gtk distribution which have already been
 # marked to allow runtime translation of messages
-gdk/gdk.c
 gdk/gdkapplaunchcontext.c
+gdk/gdk.c
 gdk/gdkcursor.c
 gdk/gdkdevice.c
 gdk/gdkdevicemanager.c
@@ -12,11 +12,13 @@ gdk/gdkwindow.c
 gdk/keyname-table.h
 gdk/win32/gdkmain-win32.c
 gdk/x11/gdkapplaunchcontext-x11.c
-gdk/x11/gdkdevice-xi.c
-gdk/x11/gdkdevice-xi2.c
 gdk/x11/gdkdevicemanager-xi2.c
 gdk/x11/gdkdevicemanager-xi.c
+gdk/x11/gdkdevice-xi2.c
+gdk/x11/gdkdevice-xi.c
 gdk/x11/gdkmain-x11.c
+gtk/a11y/gtkspinneraccessible.c
+gtk/a11y/gtkswitchaccessible.c
 gtk/gtkaboutdialog.c
 gtk/gtkaccelgroup.c
 gtk/gtkaccellabel.c
@@ -27,13 +29,13 @@ gtk/gtkactiongroup.c
 gtk/gtkactivatable.c
 gtk/gtkadjustment.c
 gtk/gtkalignment.c
+gtk/gtkanimationdescription.c
 gtk/gtkappchooserbutton.c
 gtk/gtkappchooser.c
 gtk/gtkappchooserdialog.c
 gtk/gtkappchooserwidget.c
 gtk/gtkarrow.c
 gtk/gtkaspectframe.c
-gtk/gtkanimationdescription.c
 gtk/gtkassistant.c
 gtk/gtkbbox.c
 gtk/gtkbin.c
@@ -68,14 +70,15 @@ gtk/gtkcolorsel.c
 gtk/gtkcolorseldialog.c
 gtk/gtkcombobox.c
 gtk/gtkcontainer.c
+gtk/gtkcssprovider.c
 gtk/gtkcustompaperunixdialog.c
 gtk/gtkdialog.c
 gtk/gtkdnd.c
 gtk/gtkdnd-quartz.c
 gtk/gtkdrawingarea.c
 gtk/gtkeditable.c
-gtk/gtkentry.c
 gtk/gtkentrybuffer.c
+gtk/gtkentry.c
 gtk/gtkentrycompletion.c
 gtk/gtkeventbox.c
 gtk/gtkexpander.c
@@ -135,6 +138,7 @@ gtk/gtkmountoperation-x11.c
 gtk/gtknotebook.c
 gtk/gtknumerableicon.c
 gtk/gtkorientable.c
+gtk/gtkoverlay.c
 gtk/gtkpagesetup.c
 gtk/gtkpagesetupunixdialog.c
 gtk/gtkpaned.c
@@ -143,6 +147,7 @@ gtk/gtkpathbar.c
 gtk/gtkplug.c
 gtk/gtkprintbackend.c
 gtk/gtkprinter.c
+gtk/gtkprinteroption.c
 gtk/gtkprinteroptionwidget.c
 gtk/gtkprintjob.c
 gtk/gtkprintoperation.c
@@ -244,6 +249,7 @@ modules/input/imti-et.c
 modules/input/imviqr.c
 modules/input/imxim.c
 modules/printbackends/cups/gtkprintbackendcups.c
+modules/printbackends/cups/gtkprintercups.c
 modules/printbackends/file/gtkprintbackendfile.c
 modules/printbackends/lpr/gtkprintbackendlpr.c
 modules/printbackends/papi/gtkprintbackendpapi.c
index e6b408dd7ed66deb544ba32287c94b4308e19d30..f6ddc68444e86acc0f9f01107099cee3168f1cab 100644 (file)
 # Pablo Gonzalo del Campo <pablodc@bigfoot.com>, 2002-2003.
 # Juan Manuel García Molina <juanma_gm@wanadoo.es>, 2003.
 # Francisco Javier F. Serrador <serrador@cvs.gnome.org>, 2003 - 2006.
-# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011.
 # Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010, 2011.
+# Daniel Mustieles <daniel.mustieles@gmail.com>, 2010, 2011.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gtk+-properties.master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk"
 "%2b&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-06-10 12:14+0000\n"
-"PO-Revision-Date: 2011-06-11 11:31+0200\n"
-"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
-"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
+"POT-Creation-Date: 2011-07-10 12:46+0000\n"
+"PO-Revision-Date: 2011-07-10 21:03+0200\n"
+"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
+"Language-Team: Español <gnome-es-list@gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bits\n"
+"Content-Transfer-Encoding: 8bit\n"
 "Language: \n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 "X-Generator: KBabel 1.11.4\n"
 
 #: ../gdk/gdkapplaunchcontext.c:129 ../gdk/gdkcursor.c:136
@@ -139,15 +139,6 @@ msgstr "La resolución para las tipografías en la pantalla"
 msgid "Cursor"
 msgstr "Cursor"
 
-#: ../gdk/x11/gdkdevice-xi.c:140 ../gdk/x11/gdkdevice-xi.c:141
-#: ../gdk/x11/gdkdevice-xi2.c:130
-msgid "Device ID"
-msgstr "ID del dispositivo"
-
-#: ../gdk/x11/gdkdevice-xi2.c:131
-msgid "Device identifier"
-msgstr "Identificador del dispositivo"
-
 #: ../gdk/x11/gdkdevicemanager-xi2.c:119
 msgid "Opcode"
 msgstr "Código de operación"
@@ -164,6 +155,15 @@ msgstr "Base del dispositivo"
 msgid "Event base for XInput events"
 msgstr "Base de eventos para los eventos XInput"
 
+#: ../gdk/x11/gdkdevice-xi2.c:130 ../gdk/x11/gdkdevice-xi.c:140
+#: ../gdk/x11/gdkdevice-xi.c:141
+msgid "Device ID"
+msgstr "ID del dispositivo"
+
+#: ../gdk/x11/gdkdevice-xi2.c:131
+msgid "Device identifier"
+msgstr "Identificador del dispositivo"
+
 #: ../gtk/gtkaboutdialog.c:275
 msgid "Program name"
 msgstr "Nombre del programa"
@@ -304,7 +304,7 @@ msgid "The widget to be monitored for accelerator changes"
 msgstr "El widget que monitorizar para cambios en el acelerador"
 
 #: ../gtk/gtkaction.c:222 ../gtk/gtkactiongroup.c:228 ../gtk/gtkprinter.c:125
-#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:257
+#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:258
 msgid "Name"
 msgstr "Nombre"
 
@@ -312,9 +312,9 @@ msgstr "Nombre"
 msgid "A unique name for the action."
 msgstr "Un nombre único para la acción."
 
-#: ../gtk/gtkaction.c:241 ../gtk/gtkbutton.c:227 ../gtk/gtkexpander.c:289
-#: ../gtk/gtkframe.c:170 ../gtk/gtklabel.c:742 ../gtk/gtkmenuitem.c:381
-#: ../gtk/gtktoolbutton.c:232 ../gtk/gtktoolitemgroup.c:1591
+#: ../gtk/gtkaction.c:241 ../gtk/gtkbutton.c:228 ../gtk/gtkexpander.c:290
+#: ../gtk/gtkframe.c:171 ../gtk/gtklabel.c:744 ../gtk/gtkmenuitem.c:384
+#: ../gtk/gtktoolbutton.c:232 ../gtk/gtktoolitemgroup.c:1592
 msgid "Label"
 msgstr "Etiqueta"
 
@@ -356,18 +356,18 @@ msgid "GIcon"
 msgstr "GIcon"
 
 #: ../gtk/gtkaction.c:305 ../gtk/gtkcellrendererpixbuf.c:235
-#: ../gtk/gtkimage.c:328 ../gtk/gtkstatusicon.c:276
+#: ../gtk/gtkimage.c:330 ../gtk/gtkstatusicon.c:276
 msgid "The GIcon being displayed"
 msgstr "El icono mostrado"
 
 #: ../gtk/gtkaction.c:325 ../gtk/gtkcellrendererpixbuf.c:200
-#: ../gtk/gtkimage.c:310 ../gtk/gtkprinter.c:174 ../gtk/gtkstatusicon.c:259
+#: ../gtk/gtkimage.c:312 ../gtk/gtkprinter.c:174 ../gtk/gtkstatusicon.c:259
 #: ../gtk/gtkwindow.c:724
 msgid "Icon Name"
 msgstr "Nombre del icono"
 
 #: ../gtk/gtkaction.c:326 ../gtk/gtkcellrendererpixbuf.c:201
-#: ../gtk/gtkimage.c:311 ../gtk/gtkstatusicon.c:260
+#: ../gtk/gtkimage.c:313 ../gtk/gtkstatusicon.c:260
 msgid "The name of the icon from the icon theme"
 msgstr "El nombre del icono del tema de iconos"
 
@@ -431,7 +431,7 @@ msgstr ""
 "acción se ocultan."
 
 #: ../gtk/gtkaction.c:381 ../gtk/gtkactiongroup.c:235
-#: ../gtk/gtkcellrenderer.c:290 ../gtk/gtkwidget.c:972
+#: ../gtk/gtkcellrenderer.c:290 ../gtk/gtkwidget.c:988
 msgid "Sensitive"
 msgstr "Sensible"
 
@@ -441,7 +441,7 @@ msgstr "Indica si la acción está activada."
 
 #: ../gtk/gtkaction.c:388 ../gtk/gtkactiongroup.c:242
 #: ../gtk/gtkstatusicon.c:310 ../gtk/gtktreeviewcolumn.c:248
-#: ../gtk/gtkwidget.c:965
+#: ../gtk/gtkwidget.c:981
 msgid "Visible"
 msgstr "Visible"
 
@@ -501,7 +501,7 @@ msgstr ""
 "relacionadas"
 
 #: ../gtk/gtkadjustment.c:123 ../gtk/gtkcellrendererprogress.c:138
-#: ../gtk/gtkscalebutton.c:217 ../gtk/gtkspinbutton.c:382
+#: ../gtk/gtkscalebutton.c:218 ../gtk/gtkspinbutton.c:384
 msgid "Value"
 msgstr "Valor"
 
@@ -553,7 +553,7 @@ msgstr "El tamaño de página del ajuste"
 msgid "Horizontal alignment"
 msgstr "Alineación horizontal"
 
-#: ../gtk/gtkalignment.c:138 ../gtk/gtkbutton.c:278
+#: ../gtk/gtkalignment.c:138 ../gtk/gtkbutton.c:279
 msgid ""
 "Horizontal position of child in available space. 0.0 is left aligned, 1.0 is "
 "right aligned"
@@ -565,7 +565,7 @@ msgstr ""
 msgid "Vertical alignment"
 msgstr "Alineación vertical"
 
-#: ../gtk/gtkalignment.c:148 ../gtk/gtkbutton.c:297
+#: ../gtk/gtkalignment.c:148 ../gtk/gtkbutton.c:298
 msgid ""
 "Vertical position of child in available space. 0.0 is top aligned, 1.0 is "
 "bottom aligned"
@@ -713,32 +713,32 @@ msgstr "Texto predeterminado del widget"
 msgid "The default text appearing when there are no applications"
 msgstr "El texto predeterminado que aparece cuando no hay aplicaciones"
 
-#: ../gtk/gtkarrow.c:110
+#: ../gtk/gtkarrow.c:112
 msgid "Arrow direction"
 msgstr "Dirección de la flecha"
 
-#: ../gtk/gtkarrow.c:111
+#: ../gtk/gtkarrow.c:113
 msgid "The direction the arrow should point"
 msgstr "La dirección a la que la flecha apunta"
 
-#: ../gtk/gtkarrow.c:119
+#: ../gtk/gtkarrow.c:121
 msgid "Arrow shadow"
 msgstr "Sombra de la flecha"
 
-#: ../gtk/gtkarrow.c:120
+#: ../gtk/gtkarrow.c:122
 msgid "Appearance of the shadow surrounding the arrow"
 msgstr "Apariencia de la sombra que rodea la flecha"
 
-#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:985 ../gtk/gtkmenu.c:797
-#: ../gtk/gtkmenuitem.c:444
+#: ../gtk/gtkarrow.c:129 ../gtk/gtkcombobox.c:986 ../gtk/gtkmenu.c:798
+#: ../gtk/gtkmenuitem.c:447
 msgid "Arrow Scaling"
 msgstr "Escalado de flechas"
 
-#: ../gtk/gtkarrow.c:128
+#: ../gtk/gtkarrow.c:130
 msgid "Amount of space used up by arrow"
 msgstr "Cantidad de espacio ocupado por flecha"
 
-#: ../gtk/gtkaspectframe.c:109 ../gtk/gtkwidget.c:1160
+#: ../gtk/gtkaspectframe.c:109 ../gtk/gtkwidget.c:1176
 msgid "Horizontal Alignment"
 msgstr "Alineación horizontal"
 
@@ -746,7 +746,7 @@ msgstr "Alineación horizontal"
 msgid "X alignment of the child"
 msgstr "Alineación X del hijo"
 
-#: ../gtk/gtkaspectframe.c:116 ../gtk/gtkwidget.c:1176
+#: ../gtk/gtkaspectframe.c:116 ../gtk/gtkwidget.c:1192
 msgid "Vertical Alignment"
 msgstr "Alineación vertical"
 
@@ -770,59 +770,59 @@ msgstr "Obedecer al hijo"
 msgid "Force aspect ratio to match that of the frame's child"
 msgstr "Forzar la proporción para que coincida con el hijo del marco"
 
-#: ../gtk/gtkassistant.c:310
+#: ../gtk/gtkassistant.c:311
 msgid "Header Padding"
 msgstr "Separación de la cabecera"
 
-#: ../gtk/gtkassistant.c:311
+#: ../gtk/gtkassistant.c:312
 msgid "Number of pixels around the header."
 msgstr "Número de píxeles alrededor de la cabecera."
 
-#: ../gtk/gtkassistant.c:318
+#: ../gtk/gtkassistant.c:319
 msgid "Content Padding"
 msgstr "Separación del contenido"
 
-#: ../gtk/gtkassistant.c:319
+#: ../gtk/gtkassistant.c:320
 msgid "Number of pixels around the content pages."
 msgstr "Número de píxeles alrededor de las páginas de contenidos."
 
-#: ../gtk/gtkassistant.c:335
+#: ../gtk/gtkassistant.c:336
 msgid "Page type"
 msgstr "Tipo de página"
 
-#: ../gtk/gtkassistant.c:336
+#: ../gtk/gtkassistant.c:337
 msgid "The type of the assistant page"
 msgstr "El tipo de página del asistente"
 
-#: ../gtk/gtkassistant.c:351
+#: ../gtk/gtkassistant.c:352
 msgid "Page title"
 msgstr "Título de página"
 
-#: ../gtk/gtkassistant.c:352
+#: ../gtk/gtkassistant.c:353
 msgid "The title of the assistant page"
 msgstr "El título de la página del asistente"
 
-#: ../gtk/gtkassistant.c:369
+#: ../gtk/gtkassistant.c:370
 msgid "Header image"
 msgstr "Imagen de la cabecera"
 
-#: ../gtk/gtkassistant.c:370
+#: ../gtk/gtkassistant.c:371
 msgid "Header image for the assistant page"
 msgstr "Imagen de la cabecera para la página del asistente"
 
-#: ../gtk/gtkassistant.c:386
+#: ../gtk/gtkassistant.c:387
 msgid "Sidebar image"
 msgstr "Imagen de barra lateral"
 
-#: ../gtk/gtkassistant.c:387
+#: ../gtk/gtkassistant.c:388
 msgid "Sidebar image for the assistant page"
 msgstr "Imagen de barra lateral para la página del asistente"
 
-#: ../gtk/gtkassistant.c:403
+#: ../gtk/gtkassistant.c:404
 msgid "Page complete"
 msgstr "Página completa"
 
-#: ../gtk/gtkassistant.c:404
+#: ../gtk/gtkassistant.c:405
 msgid "Whether all required fields on the page have been filled out"
 msgstr "Indica si todos los campos requeridos en la página se han rellenado"
 
@@ -891,39 +891,39 @@ msgstr "No homogéneo"
 msgid "If TRUE, the child will not be subject to homogeneous sizing"
 msgstr "Si es TRUE, el hijo no será objeto de tamaño homogéneo"
 
-#: ../gtk/gtkbox.c:243 ../gtk/gtkcellareabox.c:317 ../gtk/gtkexpander.c:313
+#: ../gtk/gtkbox.c:241 ../gtk/gtkcellareabox.c:317 ../gtk/gtkexpander.c:314
 #: ../gtk/gtkiconview.c:644 ../gtk/gtktreeviewcolumn.c:283
 msgid "Spacing"
 msgstr "Espaciado"
 
-#: ../gtk/gtkbox.c:244
+#: ../gtk/gtkbox.c:242
 msgid "The amount of space between children"
 msgstr "La cantidad de espacio entre hijos"
 
-#: ../gtk/gtkbox.c:253 ../gtk/gtktable.c:227 ../gtk/gtktoolbar.c:554
-#: ../gtk/gtktoolitemgroup.c:1644
+#: ../gtk/gtkbox.c:251 ../gtk/gtktable.c:227 ../gtk/gtktoolbar.c:561
+#: ../gtk/gtktoolitemgroup.c:1645
 msgid "Homogeneous"
 msgstr "Homogéneo"
 
-#: ../gtk/gtkbox.c:254
+#: ../gtk/gtkbox.c:252
 msgid "Whether the children should all be the same size"
 msgstr "Indica si todos los hijos deben ser del mismo tamaño"
 
-#: ../gtk/gtkbox.c:274 ../gtk/gtkcellareabox.c:337 ../gtk/gtktoolbar.c:546
-#: ../gtk/gtktoolitemgroup.c:1651 ../gtk/gtktoolpalette.c:1068
+#: ../gtk/gtkbox.c:272 ../gtk/gtkcellareabox.c:337 ../gtk/gtktoolbar.c:553
+#: ../gtk/gtktoolitemgroup.c:1652 ../gtk/gtktoolpalette.c:1070
 #: ../gtk/gtktreeviewcolumn.c:339
 msgid "Expand"
 msgstr "Expandir"
 
-#: ../gtk/gtkbox.c:275
+#: ../gtk/gtkbox.c:273
 msgid "Whether the child should receive extra space when the parent grows"
 msgstr "Indica si el hijo debe recibir espacio extra cuando el padre crece"
 
-#: ../gtk/gtkbox.c:291 ../gtk/gtktoolitemgroup.c:1658
+#: ../gtk/gtkbox.c:289 ../gtk/gtktoolitemgroup.c:1659
 msgid "Fill"
 msgstr "Relleno"
 
-#: ../gtk/gtkbox.c:292
+#: ../gtk/gtkbox.c:290
 msgid ""
 "Whether extra space given to the child should be allocated to the child or "
 "used as padding"
@@ -931,19 +931,19 @@ msgstr ""
 "Indica si el espacio extra dado al hijo debe ser reservado para el en el "
 "hijo o usado como separación"
 
-#: ../gtk/gtkbox.c:299 ../gtk/gtktrayicon-x11.c:169
+#: ../gtk/gtkbox.c:297 ../gtk/gtktrayicon-x11.c:169
 msgid "Padding"
 msgstr "Separación"
 
-#: ../gtk/gtkbox.c:300
+#: ../gtk/gtkbox.c:298
 msgid "Extra space to put between the child and its neighbors, in pixels"
 msgstr "Espacio extra para colocar entre el hijo y sus vecinos, en píxeles"
 
-#: ../gtk/gtkbox.c:306
+#: ../gtk/gtkbox.c:304
 msgid "Pack type"
 msgstr "Tipo de empaquetado"
 
-#: ../gtk/gtkbox.c:307
+#: ../gtk/gtkbox.c:305
 msgid ""
 "A GtkPackType indicating whether the child is packed with reference to the "
 "start or end of the parent"
@@ -951,12 +951,12 @@ msgstr ""
 "Un GtkPackType que indica si el hijo está empaquetado con referencia al "
 "inicio o el final del padre"
 
-#: ../gtk/gtkbox.c:313 ../gtk/gtknotebook.c:770 ../gtk/gtkpaned.c:349
-#: ../gtk/gtktoolitemgroup.c:1672
+#: ../gtk/gtkbox.c:311 ../gtk/gtknotebook.c:771 ../gtk/gtkpaned.c:349
+#: ../gtk/gtktoolitemgroup.c:1673
 msgid "Position"
 msgstr "Posición"
 
-#: ../gtk/gtkbox.c:314 ../gtk/gtknotebook.c:771
+#: ../gtk/gtkbox.c:312 ../gtk/gtknotebook.c:772
 msgid "The index of the child in the parent"
 msgstr "El índice del hijo en el padre"
 
@@ -968,7 +968,7 @@ msgstr "Dominio de traducción"
 msgid "The translation domain used by gettext"
 msgstr "El dominio de traducción que usa gettext"
 
-#: ../gtk/gtkbutton.c:228
+#: ../gtk/gtkbutton.c:229
 msgid ""
 "Text of the label widget inside the button, if the button contains a label "
 "widget"
@@ -976,13 +976,13 @@ msgstr ""
 "Texto del etiqueta del widget dentro del botón, si el botón contiene una "
 "etiqueta del widget"
 
-#: ../gtk/gtkbutton.c:235 ../gtk/gtkexpander.c:297 ../gtk/gtklabel.c:763
-#: ../gtk/gtkmenuitem.c:396 ../gtk/gtktoolbutton.c:239
+#: ../gtk/gtkbutton.c:236 ../gtk/gtkexpander.c:298 ../gtk/gtklabel.c:765
+#: ../gtk/gtkmenuitem.c:399 ../gtk/gtktoolbutton.c:239
 msgid "Use underline"
 msgstr "Utilizar subrayado"
 
-#: ../gtk/gtkbutton.c:236 ../gtk/gtkexpander.c:298 ../gtk/gtklabel.c:764
-#: ../gtk/gtkmenuitem.c:397
+#: ../gtk/gtkbutton.c:237 ../gtk/gtkexpander.c:299 ../gtk/gtklabel.c:766
+#: ../gtk/gtkmenuitem.c:400
 msgid ""
 "If set, an underline in the text indicates the next character should be used "
 "for the mnemonic accelerator key"
@@ -990,71 +990,71 @@ msgstr ""
 "Si se establece, un subrayado en el texto indica que el siguiente carácter "
 "se utiliza como el nemotécnico de la teclas aceleradora"
 
-#: ../gtk/gtkbutton.c:243 ../gtk/gtkimagemenuitem.c:175
+#: ../gtk/gtkbutton.c:244 ../gtk/gtkimagemenuitem.c:175
 msgid "Use stock"
 msgstr "Usar inventario"
 
-#: ../gtk/gtkbutton.c:244
+#: ../gtk/gtkbutton.c:245
 msgid ""
 "If set, the label is used to pick a stock item instead of being displayed"
 msgstr ""
 "Si se selecciona, la etiqueta se utiliza para tomar un elemento del "
 "inventario en vez de para mostrarse"
 
-#: ../gtk/gtkbutton.c:251 ../gtk/gtkcombobox.c:791
+#: ../gtk/gtkbutton.c:252 ../gtk/gtkcombobox.c:792
 #: ../gtk/gtkfilechooserbutton.c:426
 msgid "Focus on click"
 msgstr "Enfocar al pulsar"
 
-#: ../gtk/gtkbutton.c:252 ../gtk/gtkfilechooserbutton.c:427
+#: ../gtk/gtkbutton.c:253 ../gtk/gtkfilechooserbutton.c:427
 msgid "Whether the button grabs focus when it is clicked with the mouse"
 msgstr "Indica si el botón obtiene el foco al ser pulsado con el ratón"
 
-#: ../gtk/gtkbutton.c:259
+#: ../gtk/gtkbutton.c:260
 msgid "Border relief"
 msgstr "Relieve del borde"
 
-#: ../gtk/gtkbutton.c:260
+#: ../gtk/gtkbutton.c:261
 msgid "The border relief style"
 msgstr "Estilo del relieve del borde"
 
-#: ../gtk/gtkbutton.c:277
+#: ../gtk/gtkbutton.c:278
 msgid "Horizontal alignment for child"
 msgstr "Alineación horizontal para el hijo"
 
-#: ../gtk/gtkbutton.c:296
+#: ../gtk/gtkbutton.c:297
 msgid "Vertical alignment for child"
 msgstr "Alineación vertical para el hijo"
 
-#: ../gtk/gtkbutton.c:313 ../gtk/gtkimagemenuitem.c:160
+#: ../gtk/gtkbutton.c:314 ../gtk/gtkimagemenuitem.c:160
 msgid "Image widget"
 msgstr "Widget de imagen"
 
-#: ../gtk/gtkbutton.c:314
+#: ../gtk/gtkbutton.c:315
 msgid "Child widget to appear next to the button text"
 msgstr "Widget hijo que aparece al lado del texto del botón"
 
-#: ../gtk/gtkbutton.c:328
+#: ../gtk/gtkbutton.c:329
 msgid "Image position"
 msgstr "Posición de la imagen"
 
-#: ../gtk/gtkbutton.c:329
+#: ../gtk/gtkbutton.c:330
 msgid "The position of the image relative to the text"
 msgstr "Posición de la imagen relativa al texto"
 
-#: ../gtk/gtkbutton.c:449
+#: ../gtk/gtkbutton.c:450
 msgid "Default Spacing"
 msgstr "Espaciado predeterminado"
 
-#: ../gtk/gtkbutton.c:450
+#: ../gtk/gtkbutton.c:451
 msgid "Extra space to add for GTK_CAN_DEFAULT buttons"
 msgstr "Espacio adicional que añadir para los botones CAN_DEFAULT"
 
-#: ../gtk/gtkbutton.c:464
+#: ../gtk/gtkbutton.c:465
 msgid "Default Outside Spacing"
 msgstr "Espaciado exterior predeterminado"
 
-#: ../gtk/gtkbutton.c:465
+#: ../gtk/gtkbutton.c:466
 msgid ""
 "Extra space to add for GTK_CAN_DEFAULT buttons that is always drawn outside "
 "the border"
@@ -1062,31 +1062,31 @@ msgstr ""
 "Espacio adicional que añadir para los botones CAN_DEFAULT que se dibuja "
 "siempre fuera del borde"
 
-#: ../gtk/gtkbutton.c:470
+#: ../gtk/gtkbutton.c:471
 msgid "Child X Displacement"
 msgstr "Desplazamiento X del hijo"
 
-#: ../gtk/gtkbutton.c:471
+#: ../gtk/gtkbutton.c:472
 msgid ""
 "How far in the x direction to move the child when the button is depressed"
 msgstr ""
 "Cuánta distancia en la dirección x se mueve el hijo cuando se suelta el botón"
 
-#: ../gtk/gtkbutton.c:478
+#: ../gtk/gtkbutton.c:479
 msgid "Child Y Displacement"
 msgstr "Desplazamiento Y del hijo"
 
-#: ../gtk/gtkbutton.c:479
+#: ../gtk/gtkbutton.c:480
 msgid ""
 "How far in the y direction to move the child when the button is depressed"
 msgstr ""
 "Cuánta distancia en la dirección y se mueve el hijo cuando se suelta el botón"
 
-#: ../gtk/gtkbutton.c:495
+#: ../gtk/gtkbutton.c:496
 msgid "Displace focus"
 msgstr "Desplazar el foco"
 
-#: ../gtk/gtkbutton.c:496
+#: ../gtk/gtkbutton.c:497
 msgid ""
 "Whether the child_displacement_x/_y properties should also affect the focus "
 "rectangle"
@@ -1094,43 +1094,43 @@ msgstr ""
 "Indica si las propiedades child_displacement_x/_y deben afectar también al "
 "rectángulo del foco"
 
-#: ../gtk/gtkbutton.c:509 ../gtk/gtkentry.c:791 ../gtk/gtkentry.c:1866
+#: ../gtk/gtkbutton.c:510 ../gtk/gtkentry.c:794 ../gtk/gtkentry.c:1869
 msgid "Inner Border"
 msgstr "Borde interior"
 
-#: ../gtk/gtkbutton.c:510
+#: ../gtk/gtkbutton.c:511
 msgid "Border between button edges and child."
 msgstr "Borde entre los bordes del botón y el hijo."
 
-#: ../gtk/gtkbutton.c:523
+#: ../gtk/gtkbutton.c:524
 msgid "Image spacing"
 msgstr "Espaciado de imagen"
 
-#: ../gtk/gtkbutton.c:524
+#: ../gtk/gtkbutton.c:525
 msgid "Spacing in pixels between the image and label"
 msgstr "Espaciado en píxeles entre la imagen y la etiqueta"
 
-#: ../gtk/gtkcalendar.c:467
+#: ../gtk/gtkcalendar.c:471
 msgid "Year"
 msgstr "Año"
 
-#: ../gtk/gtkcalendar.c:468
+#: ../gtk/gtkcalendar.c:472
 msgid "The selected year"
 msgstr "El año seleccionado"
 
-#: ../gtk/gtkcalendar.c:481
+#: ../gtk/gtkcalendar.c:485
 msgid "Month"
 msgstr "Mes"
 
-#: ../gtk/gtkcalendar.c:482
+#: ../gtk/gtkcalendar.c:486
 msgid "The selected month (as a number between 0 and 11)"
 msgstr "El mes seleccionado (como un número entre 0 y 11)"
 
-#: ../gtk/gtkcalendar.c:496
+#: ../gtk/gtkcalendar.c:500
 msgid "Day"
 msgstr "Día"
 
-#: ../gtk/gtkcalendar.c:497
+#: ../gtk/gtkcalendar.c:501
 msgid ""
 "The selected day (as a number between 1 and 31, or 0 to unselect the "
 "currently selected day)"
@@ -1138,83 +1138,83 @@ msgstr ""
 "El día seleccionado (como un número entre 1 y 31, o 0 para deseleccionar el "
 "día actualmente seleccionado)"
 
-#: ../gtk/gtkcalendar.c:511
+#: ../gtk/gtkcalendar.c:515
 msgid "Show Heading"
 msgstr "Mostrar cabecera"
 
-#: ../gtk/gtkcalendar.c:512
+#: ../gtk/gtkcalendar.c:516
 msgid "If TRUE, a heading is displayed"
 msgstr "Si es TRUE, se muestra una cabecera"
 
-#: ../gtk/gtkcalendar.c:526
+#: ../gtk/gtkcalendar.c:530
 msgid "Show Day Names"
 msgstr "Mostrar nombres de los días"
 
-#: ../gtk/gtkcalendar.c:527
+#: ../gtk/gtkcalendar.c:531
 msgid "If TRUE, day names are displayed"
 msgstr "Si es TRUE, se muestran los nombres de los días"
 
-#: ../gtk/gtkcalendar.c:540
+#: ../gtk/gtkcalendar.c:544
 msgid "No Month Change"
 msgstr "Sin cambio de mes"
 
-#: ../gtk/gtkcalendar.c:541
+#: ../gtk/gtkcalendar.c:545
 msgid "If TRUE, the selected month cannot be changed"
 msgstr "Si es TRUE, el mes seleccionado no puede cambiarse"
 
-#: ../gtk/gtkcalendar.c:555
+#: ../gtk/gtkcalendar.c:559
 msgid "Show Week Numbers"
 msgstr "Mostrar números de las semanas"
 
-#: ../gtk/gtkcalendar.c:556
+#: ../gtk/gtkcalendar.c:560
 msgid "If TRUE, week numbers are displayed"
 msgstr "Si es TRUE, se muestran los números de las semanas"
 
-#: ../gtk/gtkcalendar.c:571
+#: ../gtk/gtkcalendar.c:575
 msgid "Details Width"
 msgstr "Detalles de la anchura"
 
-#: ../gtk/gtkcalendar.c:572
+#: ../gtk/gtkcalendar.c:576
 msgid "Details width in characters"
 msgstr "Detalla la anchura en los caracteres"
 
-#: ../gtk/gtkcalendar.c:587
+#: ../gtk/gtkcalendar.c:591
 msgid "Details Height"
 msgstr "Detalles de la altura"
 
-#: ../gtk/gtkcalendar.c:588
+#: ../gtk/gtkcalendar.c:592
 msgid "Details height in rows"
 msgstr "Detalla la altura en las filas"
 
-#: ../gtk/gtkcalendar.c:604
+#: ../gtk/gtkcalendar.c:608
 msgid "Show Details"
 msgstr "Mostrar detalles"
 
-#: ../gtk/gtkcalendar.c:605
+#: ../gtk/gtkcalendar.c:609
 msgid "If TRUE, details are shown"
 msgstr "Si es TRUE, se muestran los detalles"
 
-#: ../gtk/gtkcalendar.c:617
+#: ../gtk/gtkcalendar.c:621
 msgid "Inner border"
 msgstr "Borde interior"
 
-#: ../gtk/gtkcalendar.c:618
+#: ../gtk/gtkcalendar.c:622
 msgid "Inner border space"
 msgstr "Espacio del borde interior"
 
-#: ../gtk/gtkcalendar.c:629
+#: ../gtk/gtkcalendar.c:633
 msgid "Vertical separation"
 msgstr "Separación vertical"
 
-#: ../gtk/gtkcalendar.c:630
+#: ../gtk/gtkcalendar.c:634
 msgid "Space between day headers and main area"
 msgstr "Espacio entre las cabeceras del día y el área principal"
 
-#: ../gtk/gtkcalendar.c:641
+#: ../gtk/gtkcalendar.c:645
 msgid "Horizontal separation"
 msgstr "Separación horizontal"
 
-#: ../gtk/gtkcalendar.c:642
+#: ../gtk/gtkcalendar.c:646
 msgid "Space between week headers and main area"
 msgstr "Espacio entre las cabeceras de la semana y el área principal"
 
@@ -1278,28 +1278,28 @@ msgstr "Editar widget"
 msgid "The widget currently editing the edited cell"
 msgstr "El widget que actualmente está editando la celda editada"
 
-#: ../gtk/gtkcellareacontext.c:127
+#: ../gtk/gtkcellareacontext.c:119
 msgid "Area"
 msgstr "Área"
 
-#: ../gtk/gtkcellareacontext.c:128
+#: ../gtk/gtkcellareacontext.c:120
 msgid "The Cell Area this context was created for"
 msgstr "La célula de área para la que se creó este contexto"
 
-#: ../gtk/gtkcellareacontext.c:144 ../gtk/gtkcellareacontext.c:163
+#: ../gtk/gtkcellareacontext.c:136 ../gtk/gtkcellareacontext.c:155
 #: ../gtk/gtktreeviewcolumn.c:311
 msgid "Minimum Width"
 msgstr "Anchura mínimo"
 
-#: ../gtk/gtkcellareacontext.c:145 ../gtk/gtkcellareacontext.c:164
+#: ../gtk/gtkcellareacontext.c:137 ../gtk/gtkcellareacontext.c:156
 msgid "Minimum cached width"
 msgstr "Anchura mínima cacheada"
 
-#: ../gtk/gtkcellareacontext.c:182 ../gtk/gtkcellareacontext.c:201
+#: ../gtk/gtkcellareacontext.c:174 ../gtk/gtkcellareacontext.c:193
 msgid "Minimum Height"
 msgstr "Altura mínima"
 
-#: ../gtk/gtkcellareacontext.c:183 ../gtk/gtkcellareacontext.c:202
+#: ../gtk/gtkcellareacontext.c:175 ../gtk/gtkcellareacontext.c:194
 msgid "Minimum cached height"
 msgstr "Altura mínima cacheada"
 
@@ -1484,7 +1484,7 @@ msgid "A column in the data source model to get the strings from"
 msgstr ""
 "Una columna en el modelo de origen de datos del que se obtienen las cadenas"
 
-#: ../gtk/gtkcellrenderercombo.c:171 ../gtk/gtkcombobox.c:858
+#: ../gtk/gtkcellrenderercombo.c:171 ../gtk/gtkcombobox.c:859
 msgid "Has Entry"
 msgstr "Tiene entrada"
 
@@ -1517,7 +1517,7 @@ msgstr "Pixbuf del expansor cerrado"
 msgid "Pixbuf for closed expander"
 msgstr "El pixbuf para el expansor cerrado"
 
-#: ../gtk/gtkcellrendererpixbuf.c:164 ../gtk/gtkimage.c:252
+#: ../gtk/gtkcellrendererpixbuf.c:164 ../gtk/gtkimage.c:254
 #: ../gtk/gtkstatusicon.c:251
 msgid "Stock ID"
 msgstr "ID del inventario"
@@ -1551,7 +1551,7 @@ msgstr "Seguir estado"
 msgid "Whether the rendered pixbuf should be colorized according to the state"
 msgstr "Indica si el pixbuf renderizado debe colorearse de acuerdo al estado"
 
-#: ../gtk/gtkcellrendererpixbuf.c:234 ../gtk/gtkimage.c:327
+#: ../gtk/gtkcellrendererpixbuf.c:234 ../gtk/gtkimage.c:329
 #: ../gtk/gtkwindow.c:701
 msgid "Icon"
 msgstr "Icono"
@@ -1561,8 +1561,8 @@ msgid "Value of the progress bar"
 msgstr "Valor de la barra de progreso"
 
 #: ../gtk/gtkcellrendererprogress.c:156 ../gtk/gtkcellrenderertext.c:254
-#: ../gtk/gtkentry.c:834 ../gtk/gtkentrybuffer.c:352
-#: ../gtk/gtkmessagedialog.c:227 ../gtk/gtkprogressbar.c:174
+#: ../gtk/gtkentrybuffer.c:352 ../gtk/gtkentry.c:837
+#: ../gtk/gtkmessagedialog.c:227 ../gtk/gtkprogressbar.c:176
 #: ../gtk/gtktextbuffer.c:221
 msgid "Text"
 msgstr "Texto"
@@ -1603,21 +1603,21 @@ msgstr "Alineación y del texto"
 msgid "The vertical text alignment, from 0 (top) to 1 (bottom)."
 msgstr "La alineación vertical del texto, desde 0 (superior) a 1 (inferior)."
 
-#: ../gtk/gtkcellrendererprogress.c:226 ../gtk/gtkprogressbar.c:150
-#: ../gtk/gtkrange.c:425
+#: ../gtk/gtkcellrendererprogress.c:226 ../gtk/gtkprogressbar.c:152
+#: ../gtk/gtkrange.c:426
 msgid "Inverted"
 msgstr "Invertido"
 
-#: ../gtk/gtkcellrendererprogress.c:227 ../gtk/gtkprogressbar.c:151
+#: ../gtk/gtkcellrendererprogress.c:227 ../gtk/gtkprogressbar.c:153
 msgid "Invert the direction in which the progress bar grows"
 msgstr "Invertir la dirección en la que aumentan las barras de progreso"
 
-#: ../gtk/gtkcellrendererspin.c:113 ../gtk/gtkrange.c:417
-#: ../gtk/gtkscalebutton.c:236 ../gtk/gtkspinbutton.c:321
+#: ../gtk/gtkcellrendererspin.c:113 ../gtk/gtkrange.c:418
+#: ../gtk/gtkscalebutton.c:237 ../gtk/gtkspinbutton.c:323
 msgid "Adjustment"
 msgstr "Ajuste"
 
-#: ../gtk/gtkcellrendererspin.c:114 ../gtk/gtkspinbutton.c:322
+#: ../gtk/gtkcellrendererspin.c:114 ../gtk/gtkspinbutton.c:324
 msgid "The adjustment that holds the value of the spin button"
 msgstr "El ajuste que mantiene el valor del botón incrementable"
 
@@ -1625,22 +1625,22 @@ msgstr "El ajuste que mantiene el valor del botón incrementable"
 msgid "Climb rate"
 msgstr "Tasa de subida"
 
-#: ../gtk/gtkcellrendererspin.c:130 ../gtk/gtkspinbutton.c:330
+#: ../gtk/gtkcellrendererspin.c:130 ../gtk/gtkspinbutton.c:332
 msgid "The acceleration rate when you hold down a button"
 msgstr "La tasa de aceleración cuando mantiene apretado un botón"
 
-#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:252
-#: ../gtk/gtkspinbutton.c:339
+#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:254
+#: ../gtk/gtkspinbutton.c:341
 msgid "Digits"
 msgstr "Dígitos"
 
-#: ../gtk/gtkcellrendererspin.c:144 ../gtk/gtkspinbutton.c:340
+#: ../gtk/gtkcellrendererspin.c:144 ../gtk/gtkspinbutton.c:342
 msgid "The number of decimal places to display"
 msgstr "El número de lugares decimales que mostrar"
 
-#: ../gtk/gtkcellrendererspinner.c:119 ../gtk/gtkcheckmenuitem.c:122
-#: ../gtk/gtkmenu.c:587 ../gtk/gtkspinner.c:118 ../gtk/gtkswitch.c:801
-#: ../gtk/gtktoggleaction.c:133 ../gtk/gtktogglebutton.c:177
+#: ../gtk/gtkcellrendererspinner.c:119 ../gtk/gtkcheckmenuitem.c:123
+#: ../gtk/gtkmenu.c:588 ../gtk/gtkspinner.c:115 ../gtk/gtkswitch.c:784
+#: ../gtk/gtktoggleaction.c:133 ../gtk/gtktogglebutton.c:178
 #: ../gtk/gtktoggletoolbutton.c:127
 msgid "Active"
 msgstr "Activo"
@@ -1672,7 +1672,7 @@ msgstr "Marcado"
 msgid "Marked up text to render"
 msgstr "Texto resaltado a renderizar"
 
-#: ../gtk/gtkcellrenderertext.c:270 ../gtk/gtklabel.c:749
+#: ../gtk/gtkcellrenderertext.c:270 ../gtk/gtklabel.c:751
 msgid "Attributes"
 msgstr "Atributos"
 
@@ -1743,13 +1743,13 @@ msgstr "Color de primer plano como RGBA"
 msgid "Foreground color as a GdkRGBA"
 msgstr "Color de primer plano como GdkRGBA"
 
-#: ../gtk/gtkcellrenderertext.c:349 ../gtk/gtkentry.c:758
-#: ../gtk/gtktexttag.c:278 ../gtk/gtktextview.c:687
+#: ../gtk/gtkcellrenderertext.c:349 ../gtk/gtkentry.c:761
+#: ../gtk/gtktexttag.c:278 ../gtk/gtktextview.c:686
 msgid "Editable"
 msgstr "Editable"
 
 #: ../gtk/gtkcellrenderertext.c:350 ../gtk/gtktexttag.c:279
-#: ../gtk/gtktextview.c:688
+#: ../gtk/gtktextview.c:687
 msgid "Whether the text can be modified by the user"
 msgstr "Indica si el texto puede modificarse por el usuario"
 
@@ -1858,8 +1858,8 @@ msgstr ""
 "como una ayuda cuando está renderizando el texto. Si no comprende este "
 "parámetro probablemente no lo necesite"
 
-#: ../gtk/gtkcellrenderertext.c:499 ../gtk/gtklabel.c:874
-#: ../gtk/gtkprogressbar.c:214
+#: ../gtk/gtkcellrenderertext.c:499 ../gtk/gtklabel.c:876
+#: ../gtk/gtkprogressbar.c:216
 msgid "Ellipsize"
 msgstr "Elipsis"
 
@@ -1872,15 +1872,15 @@ msgstr ""
 "celda no tiene espacio suficiente para mostrar la cadena completa"
 
 #: ../gtk/gtkcellrenderertext.c:519 ../gtk/gtkfilechooserbutton.c:454
-#: ../gtk/gtklabel.c:895
+#: ../gtk/gtklabel.c:897
 msgid "Width In Characters"
 msgstr "Anchura en caracteres"
 
-#: ../gtk/gtkcellrenderertext.c:520 ../gtk/gtklabel.c:896
+#: ../gtk/gtkcellrenderertext.c:520 ../gtk/gtklabel.c:898
 msgid "The desired width of the label, in characters"
 msgstr "La anchura deseada de la etiqueta, en caracteres"
 
-#: ../gtk/gtkcellrenderertext.c:544 ../gtk/gtklabel.c:956
+#: ../gtk/gtkcellrenderertext.c:544 ../gtk/gtklabel.c:958
 msgid "Maximum Width In Characters"
 msgstr "Anchura máxima en caracteres"
 
@@ -1900,7 +1900,7 @@ msgstr ""
 "Cómo romper la cadena en líneas múltiples, si el renderizador de la celda no "
 "tiene suficiente espacio para mostrar la cadena completa"
 
-#: ../gtk/gtkcellrenderertext.c:583 ../gtk/gtkcombobox.c:680
+#: ../gtk/gtkcellrenderertext.c:583 ../gtk/gtkcombobox.c:681
 msgid "Wrap width"
 msgstr "Ajustar anchura"
 
@@ -2084,7 +2084,7 @@ msgid "Indicator size"
 msgstr "Tamaño del indicador"
 
 #: ../gtk/gtkcellrenderertoggle.c:173 ../gtk/gtkcheckbutton.c:93
-#: ../gtk/gtkcheckmenuitem.c:146
+#: ../gtk/gtkcheckmenuitem.c:147
 msgid "Size of check or radio indicator"
 msgstr "Tamaño del indicador de radio o de la casilla"
 
@@ -2100,13 +2100,13 @@ msgstr "Modelo CellView"
 msgid "The model for cell view"
 msgstr "El modelo para la vista de celda"
 
-#: ../gtk/gtkcellview.c:246 ../gtk/gtkcombobox.c:944
+#: ../gtk/gtkcellview.c:246 ../gtk/gtkcombobox.c:945
 #: ../gtk/gtkentrycompletion.c:448 ../gtk/gtkiconview.c:769
 #: ../gtk/gtktreemenu.c:329 ../gtk/gtktreeviewcolumn.c:427
 msgid "Cell Area"
 msgstr "Área de la celda"
 
-#: ../gtk/gtkcellview.c:247 ../gtk/gtkcombobox.c:945
+#: ../gtk/gtkcellview.c:247 ../gtk/gtkcombobox.c:946
 #: ../gtk/gtkentrycompletion.c:449 ../gtk/gtkiconview.c:770
 #: ../gtk/gtktreemenu.c:330 ../gtk/gtktreeviewcolumn.c:428
 msgid "The GtkCellArea used to layout cells"
@@ -2137,11 +2137,11 @@ msgid "Whether to request enough space for every row in the model"
 msgstr ""
 "Indica si se debe solicitar espacio suficiente para cada fila en el modelo"
 
-#: ../gtk/gtkcheckbutton.c:92 ../gtk/gtkcheckmenuitem.c:145
+#: ../gtk/gtkcheckbutton.c:92 ../gtk/gtkcheckmenuitem.c:146
 msgid "Indicator Size"
 msgstr "Tamaño del indicador"
 
-#: ../gtk/gtkcheckbutton.c:100 ../gtk/gtkexpander.c:363
+#: ../gtk/gtkcheckbutton.c:100 ../gtk/gtkexpander.c:364
 msgid "Indicator Spacing"
 msgstr "Espacio del indicador"
 
@@ -2149,23 +2149,23 @@ msgstr "Espacio del indicador"
 msgid "Spacing around check or radio indicator"
 msgstr "Espacio que rodea el indicador de radio o casilla"
 
-#: ../gtk/gtkcheckmenuitem.c:123
+#: ../gtk/gtkcheckmenuitem.c:124
 msgid "Whether the menu item is checked"
 msgstr "Indica si el elemento de menú está marcado"
 
-#: ../gtk/gtkcheckmenuitem.c:130 ../gtk/gtktogglebutton.c:185
+#: ../gtk/gtkcheckmenuitem.c:131 ../gtk/gtktogglebutton.c:186
 msgid "Inconsistent"
 msgstr "Inconsistente"
 
-#: ../gtk/gtkcheckmenuitem.c:131
+#: ../gtk/gtkcheckmenuitem.c:132
 msgid "Whether to display an \"inconsistent\" state"
 msgstr "Indica si se debe mostrar un estado «inconsistente»"
 
-#: ../gtk/gtkcheckmenuitem.c:138
+#: ../gtk/gtkcheckmenuitem.c:139
 msgid "Draw as radio menu item"
 msgstr "Dibujar como un elemento de menú de radio"
 
-#: ../gtk/gtkcheckmenuitem.c:139
+#: ../gtk/gtkcheckmenuitem.c:140
 msgid "Whether the menu item looks like a radio menu item"
 msgstr ""
 "Indica si la apariencia del elemento de menú es como un elemento de menú de "
@@ -2190,7 +2190,7 @@ msgstr "Título"
 msgid "The title of the color selection dialog"
 msgstr "El título del diálogo de selección del color"
 
-#: ../gtk/gtkcolorbutton.c:200 ../gtk/gtkcolorsel.c:337
+#: ../gtk/gtkcolorbutton.c:200 ../gtk/gtkcolorsel.c:336
 msgid "Current Color"
 msgstr "Color actual"
 
@@ -2198,7 +2198,7 @@ msgstr "Color actual"
 msgid "The selected color"
 msgstr "El color seleccionado"
 
-#: ../gtk/gtkcolorbutton.c:215 ../gtk/gtkcolorsel.c:344
+#: ../gtk/gtkcolorbutton.c:215 ../gtk/gtkcolorsel.c:343
 msgid "Current Alpha"
 msgstr "Alfa actual"
 
@@ -2216,37 +2216,37 @@ msgstr "Color RGBA actual"
 msgid "The selected RGBA color"
 msgstr "El color RGBA seleccionado"
 
-#: ../gtk/gtkcolorsel.c:323
+#: ../gtk/gtkcolorsel.c:322
 msgid "Has Opacity Control"
 msgstr "Tiene control de opacidad"
 
-#: ../gtk/gtkcolorsel.c:324
+#: ../gtk/gtkcolorsel.c:323
 msgid "Whether the color selector should allow setting opacity"
 msgstr "Indica si el selector de color permite seleccionar la opacidad"
 
-#: ../gtk/gtkcolorsel.c:330
+#: ../gtk/gtkcolorsel.c:329
 msgid "Has palette"
 msgstr "Tiene paleta"
 
-#: ../gtk/gtkcolorsel.c:331
+#: ../gtk/gtkcolorsel.c:330
 msgid "Whether a palette should be used"
 msgstr "Indica si se debe usar una paleta"
 
-#: ../gtk/gtkcolorsel.c:338
+#: ../gtk/gtkcolorsel.c:337
 msgid "The current color"
 msgstr "El color actual"
 
-#: ../gtk/gtkcolorsel.c:345
+#: ../gtk/gtkcolorsel.c:344
 msgid "The current opacity value (0 fully transparent, 65535 fully opaque)"
 msgstr ""
 "El valor de opacidad actual (0 es completamente transparente, 65535 es "
 "completamente opaco)"
 
-#: ../gtk/gtkcolorsel.c:359
+#: ../gtk/gtkcolorsel.c:358
 msgid "Current RGBA"
 msgstr "RGBA actual"
 
-#: ../gtk/gtkcolorsel.c:360
+#: ../gtk/gtkcolorsel.c:359
 msgid "The current RGBA color"
 msgstr "El color RGBA actual"
 
@@ -2282,98 +2282,98 @@ msgstr "Botón Ayuda"
 msgid "The help button of the dialog."
 msgstr "El botón Ayuda del diálogo."
 
-#: ../gtk/gtkcombobox.c:663
+#: ../gtk/gtkcombobox.c:664
 msgid "ComboBox model"
 msgstr "Modelo de ComboBox"
 
-#: ../gtk/gtkcombobox.c:664
+#: ../gtk/gtkcombobox.c:665
 msgid "The model for the combo box"
 msgstr "El modelo para el ComboBox"
 
-#: ../gtk/gtkcombobox.c:681
+#: ../gtk/gtkcombobox.c:682
 msgid "Wrap width for laying out the items in a grid"
 msgstr "Ajusta la anchura para distribuir los elementos en una rejilla"
 
-#: ../gtk/gtkcombobox.c:703 ../gtk/gtktreemenu.c:383
+#: ../gtk/gtkcombobox.c:704 ../gtk/gtktreemenu.c:383
 msgid "Row span column"
 msgstr "Fila expande columna"
 
-#: ../gtk/gtkcombobox.c:704 ../gtk/gtktreemenu.c:384
+#: ../gtk/gtkcombobox.c:705 ../gtk/gtktreemenu.c:384
 msgid "TreeModel column containing the row span values"
 msgstr "Columna TreeModel que contiene los valores de expansión de la fila"
 
-#: ../gtk/gtkcombobox.c:725 ../gtk/gtktreemenu.c:404
+#: ../gtk/gtkcombobox.c:726 ../gtk/gtktreemenu.c:404
 msgid "Column span column"
 msgstr "Columna expande columna"
 
-#: ../gtk/gtkcombobox.c:726 ../gtk/gtktreemenu.c:405
+#: ../gtk/gtkcombobox.c:727 ../gtk/gtktreemenu.c:405
 msgid "TreeModel column containing the column span values"
 msgstr "Columna TreeModel que contiene los valores de expansión de columna"
 
-#: ../gtk/gtkcombobox.c:747
+#: ../gtk/gtkcombobox.c:748
 msgid "Active item"
 msgstr "Elemento activo"
 
-#: ../gtk/gtkcombobox.c:748
+#: ../gtk/gtkcombobox.c:749
 msgid "The item which is currently active"
 msgstr "El elemento que está activo actualmente"
 
-#: ../gtk/gtkcombobox.c:767 ../gtk/gtkuimanager.c:479
+#: ../gtk/gtkcombobox.c:768 ../gtk/gtkuimanager.c:479
 msgid "Add tearoffs to menus"
 msgstr "Añadir tiradores a los menús"
 
-#: ../gtk/gtkcombobox.c:768
+#: ../gtk/gtkcombobox.c:769
 msgid "Whether dropdowns should have a tearoff menu item"
 msgstr "Indica si los desplegables deben tener un tirador en el menú"
 
-#: ../gtk/gtkcombobox.c:783 ../gtk/gtkentry.c:783
+#: ../gtk/gtkcombobox.c:784 ../gtk/gtkentry.c:786
 msgid "Has Frame"
 msgstr "Tiene marco"
 
-#: ../gtk/gtkcombobox.c:784
+#: ../gtk/gtkcombobox.c:785
 msgid "Whether the combo box draws a frame around the child"
 msgstr "Indica si el ComboBox dibuja un marco alrededor del hijo"
 
-#: ../gtk/gtkcombobox.c:792
+#: ../gtk/gtkcombobox.c:793
 msgid "Whether the combo box grabs focus when it is clicked with the mouse"
 msgstr "Indica si el ComboBox obtiene el foco cuando se pulsa con el ratón"
 
-#: ../gtk/gtkcombobox.c:807 ../gtk/gtkmenu.c:642
+#: ../gtk/gtkcombobox.c:808 ../gtk/gtkmenu.c:643
 msgid "Tearoff Title"
 msgstr "Título del tirador"
 
-#: ../gtk/gtkcombobox.c:808
+#: ../gtk/gtkcombobox.c:809
 msgid ""
 "A title that may be displayed by the window manager when the popup is torn-"
 "off"
 msgstr ""
 "Un título que podría mostrar el gestor de ventanas al desprender el emergente"
 
-#: ../gtk/gtkcombobox.c:825
+#: ../gtk/gtkcombobox.c:826
 msgid "Popup shown"
 msgstr "Emergente mostrado"
 
-#: ../gtk/gtkcombobox.c:826
+#: ../gtk/gtkcombobox.c:827
 msgid "Whether the combo's dropdown is shown"
 msgstr "Indica si se muestra el desplegable del combo"
 
-#: ../gtk/gtkcombobox.c:842
+#: ../gtk/gtkcombobox.c:843
 msgid "Button Sensitivity"
 msgstr "Sensibilidad del botón"
 
-#: ../gtk/gtkcombobox.c:843
+#: ../gtk/gtkcombobox.c:844
 msgid "Whether the dropdown button is sensitive when the model is empty"
 msgstr "Indica si el botón desplegable es sensible cunado el modelo está vacío"
 
-#: ../gtk/gtkcombobox.c:859
+#: ../gtk/gtkcombobox.c:860
 msgid "Whether combo box has an entry"
 msgstr "Indica si el ComboBox tiene una entrada"
 
-#: ../gtk/gtkcombobox.c:874
+#: ../gtk/gtkcombobox.c:875
 msgid "Entry Text Column"
 msgstr "Columna de entrada de texto"
 
-#: ../gtk/gtkcombobox.c:875
+#: ../gtk/gtkcombobox.c:876
 msgid ""
 "The column in the combo box's model to associate with strings from the entry "
 "if the combo was created with #GtkComboBox:has-entry = %TRUE"
@@ -2381,11 +2381,11 @@ msgstr ""
 "La columna en el modelo ce caja combinada para asociar con cadenas de la "
 "entrada si la caja combinada se creó con #GtkComboBox:has-entry = %TRUE"
 
-#: ../gtk/gtkcombobox.c:892
+#: ../gtk/gtkcombobox.c:893
 msgid "ID Column"
 msgstr "ID de la columna"
 
-#: ../gtk/gtkcombobox.c:893
+#: ../gtk/gtkcombobox.c:894
 msgid ""
 "The column in the combo box's model that provides string IDs for the values "
 "in the model"
@@ -2393,19 +2393,19 @@ msgstr ""
 "La columna en el modelo ce caja combinada que proporciona los ID de cadenas "
 "para los valores en el modelo"
 
-#: ../gtk/gtkcombobox.c:908
+#: ../gtk/gtkcombobox.c:909
 msgid "Active id"
 msgstr "ID activo"
 
-#: ../gtk/gtkcombobox.c:909
+#: ../gtk/gtkcombobox.c:910
 msgid "The value of the id column for the active row"
 msgstr "El valor del ID de la columna para la fila activa"
 
-#: ../gtk/gtkcombobox.c:924
+#: ../gtk/gtkcombobox.c:925
 msgid "Popup Fixed Width"
 msgstr "Anchura fija del emergente"
 
-#: ../gtk/gtkcombobox.c:925
+#: ../gtk/gtkcombobox.c:926
 msgid ""
 "Whether the popup's width should be a fixed width matching the allocated "
 "width of the combo box"
@@ -2413,33 +2413,33 @@ msgstr ""
 "Indica si la anchura del emergente debería ser fija coincidiendo con la "
 "anchura reservada para la caja combinada"
 
-#: ../gtk/gtkcombobox.c:951
+#: ../gtk/gtkcombobox.c:952
 msgid "Appears as list"
 msgstr "Aparece como una lista"
 
-#: ../gtk/gtkcombobox.c:952
+#: ../gtk/gtkcombobox.c:953
 msgid "Whether dropdowns should look like lists rather than menus"
 msgstr "Indica si los desplegables se parecen a listas en lugar de menús"
 
-#: ../gtk/gtkcombobox.c:968
+#: ../gtk/gtkcombobox.c:969
 msgid "Arrow Size"
 msgstr "Tamaño de la flecha"
 
-#: ../gtk/gtkcombobox.c:969
+#: ../gtk/gtkcombobox.c:970
 msgid "The minimum size of the arrow in the combo box"
 msgstr "El tamaño mínimo de la flecha en la caja combo"
 
-#: ../gtk/gtkcombobox.c:986
+#: ../gtk/gtkcombobox.c:987
 msgid "The amount of space used by the arrow"
 msgstr "La cantidad de espacio usado por la flecha"
 
-#: ../gtk/gtkcombobox.c:1001 ../gtk/gtkentry.c:883 ../gtk/gtkhandlebox.c:218
-#: ../gtk/gtkmenubar.c:216 ../gtk/gtkstatusbar.c:181 ../gtk/gtktoolbar.c:604
+#: ../gtk/gtkcombobox.c:1002 ../gtk/gtkentry.c:886 ../gtk/gtkhandlebox.c:218
+#: ../gtk/gtkmenubar.c:217 ../gtk/gtkstatusbar.c:182 ../gtk/gtktoolbar.c:611
 #: ../gtk/gtkviewport.c:153
 msgid "Shadow type"
 msgstr "Tipo de sombra"
 
-#: ../gtk/gtkcombobox.c:1002
+#: ../gtk/gtkcombobox.c:1003
 msgid "Which kind of shadow to draw around the combo box"
 msgstr "Qué clase de sombra dibujar alrededor de la caja combo"
 
@@ -2501,49 +2501,61 @@ msgstr ""
 "Anchura del borde alrededor del área del botón en la parte inferior del "
 "diálogo"
 
-#: ../gtk/gtkentry.c:730
+#: ../gtk/gtkentrybuffer.c:353
+msgid "The contents of the buffer"
+msgstr "El contenido del búfer"
+
+#: ../gtk/gtkentrybuffer.c:367 ../gtk/gtkentry.c:917
+msgid "Text length"
+msgstr "Longitud del texto"
+
+#: ../gtk/gtkentrybuffer.c:368
+msgid "Length of the text currently in the buffer"
+msgstr "Longitud del texto actualmente en el búfer"
+
+#: ../gtk/gtkentrybuffer.c:382 ../gtk/gtkentry.c:769
+msgid "Maximum length"
+msgstr "Longitud máxima"
+
+#: ../gtk/gtkentrybuffer.c:383 ../gtk/gtkentry.c:770
+msgid "Maximum number of characters for this entry. Zero if no maximum"
+msgstr "Número máximo de caracteres para esta entrada. Cero si no hay máximo"
+
+#: ../gtk/gtkentry.c:733
 msgid "Text Buffer"
 msgstr "Búfer de texto"
 
-#: ../gtk/gtkentry.c:731
+#: ../gtk/gtkentry.c:734
 msgid "Text buffer object which actually stores entry text"
 msgstr "Objeto de búfer de texto que realmente almacena la entrada de texto"
 
-#: ../gtk/gtkentry.c:738 ../gtk/gtklabel.c:837
+#: ../gtk/gtkentry.c:741 ../gtk/gtklabel.c:839
 msgid "Cursor Position"
 msgstr "Posición del cursor"
 
-#: ../gtk/gtkentry.c:739 ../gtk/gtklabel.c:838
+#: ../gtk/gtkentry.c:742 ../gtk/gtklabel.c:840
 msgid "The current position of the insertion cursor in chars"
 msgstr "La posición actual del cursor de inserción en caracteres"
 
-#: ../gtk/gtkentry.c:748 ../gtk/gtklabel.c:847
+#: ../gtk/gtkentry.c:751 ../gtk/gtklabel.c:849
 msgid "Selection Bound"
 msgstr "Límite de selección"
 
-#: ../gtk/gtkentry.c:749 ../gtk/gtklabel.c:848
+#: ../gtk/gtkentry.c:752 ../gtk/gtklabel.c:850
 msgid ""
 "The position of the opposite end of the selection from the cursor in chars"
 msgstr ""
 "La posición en caracteres del extremo opuesto de la selección desde el cursor"
 
-#: ../gtk/gtkentry.c:759
+#: ../gtk/gtkentry.c:762
 msgid "Whether the entry contents can be edited"
 msgstr "Indica si los contenidos de la entrada pueden editarse"
 
-#: ../gtk/gtkentry.c:766 ../gtk/gtkentrybuffer.c:382
-msgid "Maximum length"
-msgstr "Longitud máxima"
-
-#: ../gtk/gtkentry.c:767 ../gtk/gtkentrybuffer.c:383
-msgid "Maximum number of characters for this entry. Zero if no maximum"
-msgstr "Número máximo de caracteres para esta entrada. Cero si no hay máximo"
-
-#: ../gtk/gtkentry.c:775
+#: ../gtk/gtkentry.c:778
 msgid "Visibility"
 msgstr "Visibilidad"
 
-#: ../gtk/gtkentry.c:776
+#: ../gtk/gtkentry.c:779
 msgid ""
 "FALSE displays the \"invisible char\" instead of the actual text (password "
 "mode)"
@@ -2551,32 +2563,32 @@ msgstr ""
 "FALSE muestra el «carácter invisible» en lugar del texto actual (modo "
 "contraseña)"
 
-#: ../gtk/gtkentry.c:784
+#: ../gtk/gtkentry.c:787
 msgid "FALSE removes outside bevel from entry"
 msgstr "FALSE quita el bisel exterior de la entrada"
 
-#: ../gtk/gtkentry.c:792
+#: ../gtk/gtkentry.c:795
 msgid ""
 "Border between text and frame. Overrides the inner-border style property"
 msgstr ""
 "Borde entre el texto y el marco. Toma precedencia sobre la propiedad de "
 "estilo del borde interno"
 
-#: ../gtk/gtkentry.c:799 ../gtk/gtkentry.c:1395
+#: ../gtk/gtkentry.c:802 ../gtk/gtkentry.c:1398
 msgid "Invisible character"
 msgstr "Carácter invisible"
 
-#: ../gtk/gtkentry.c:800 ../gtk/gtkentry.c:1396
+#: ../gtk/gtkentry.c:803 ../gtk/gtkentry.c:1399
 msgid "The character to use when masking entry contents (in \"password mode\")"
 msgstr ""
 "El carácter que se usará cuando se enmascaren los contenidos de la entrada "
 "(en «modo contraseña»)"
 
-#: ../gtk/gtkentry.c:807
+#: ../gtk/gtkentry.c:810
 msgid "Activates default"
 msgstr "Activar predeterminado"
 
-#: ../gtk/gtkentry.c:808
+#: ../gtk/gtkentry.c:811
 msgid ""
 "Whether to activate the default widget (such as the default button in a "
 "dialog) when Enter is pressed"
@@ -2584,33 +2596,33 @@ msgstr ""
 "Indica si se debe activar el widget predeterminado (como el botón "
 "predeterminado en un diálogo) cuando se pulse INTRO"
 
-#: ../gtk/gtkentry.c:814
+#: ../gtk/gtkentry.c:817
 msgid "Width in chars"
 msgstr "Anchura en caracteres"
 
-#: ../gtk/gtkentry.c:815
+#: ../gtk/gtkentry.c:818
 msgid "Number of characters to leave space for in the entry"
 msgstr "Número de caracteres para dejar de espacio en la entrada"
 
-#: ../gtk/gtkentry.c:824
+#: ../gtk/gtkentry.c:827
 msgid "Scroll offset"
 msgstr "Desplazamiento del scroll"
 
-#: ../gtk/gtkentry.c:825
+#: ../gtk/gtkentry.c:828
 msgid "Number of pixels of the entry scrolled off the screen to the left"
 msgstr ""
 "Número de píxeles de la entrada desplazados en scroll fuera de la pantalla "
 "hacia la izquierda"
 
-#: ../gtk/gtkentry.c:835
+#: ../gtk/gtkentry.c:838
 msgid "The contents of the entry"
 msgstr "El contenido de la entrada"
 
-#: ../gtk/gtkentry.c:850 ../gtk/gtkmisc.c:105
+#: ../gtk/gtkentry.c:853 ../gtk/gtkmisc.c:105
 msgid "X align"
 msgstr "X alineación"
 
-#: ../gtk/gtkentry.c:851 ../gtk/gtkmisc.c:106
+#: ../gtk/gtkentry.c:854 ../gtk/gtkmisc.c:106
 msgid ""
 "The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL "
 "layouts."
@@ -2618,68 +2630,64 @@ msgstr ""
 "La alineación horizontal, desde 0 (izquierda) hasta 1 (derecha). Al revés "
 "para distribuciones D-->I."
 
-#: ../gtk/gtkentry.c:867
+#: ../gtk/gtkentry.c:870
 msgid "Truncate multiline"
 msgstr "Truncar multilínea"
 
-#: ../gtk/gtkentry.c:868
+#: ../gtk/gtkentry.c:871
 msgid "Whether to truncate multiline pastes to one line."
 msgstr "Indica si se truncan las pegadas multilíneas a una línea."
 
-#: ../gtk/gtkentry.c:884
+#: ../gtk/gtkentry.c:887
 msgid "Which kind of shadow to draw around the entry when has-frame is set"
 msgstr ""
 "Qué clase de sombra dibujar alrededor de la entrada cuando has-frame está "
 "activado"
 
-#: ../gtk/gtkentry.c:899 ../gtk/gtktextview.c:767
+#: ../gtk/gtkentry.c:902 ../gtk/gtktextview.c:766
 msgid "Overwrite mode"
 msgstr "Modo de sobreescritura"
 
-#: ../gtk/gtkentry.c:900
+#: ../gtk/gtkentry.c:903
 msgid "Whether new text overwrites existing text"
 msgstr "Indica si el texto introducido sobreescribe el existente"
 
-#: ../gtk/gtkentry.c:914 ../gtk/gtkentrybuffer.c:367
-msgid "Text length"
-msgstr "Longitud del texto"
-
-#: ../gtk/gtkentry.c:915
+#: ../gtk/gtkentry.c:918
 msgid "Length of the text currently in the entry"
 msgstr "Longitud del texto actualmente en la entrada"
 
-#: ../gtk/gtkentry.c:930
+#: ../gtk/gtkentry.c:933
 msgid "Invisible character set"
 msgstr "Conjunto de caracteres invisibles"
 
-#: ../gtk/gtkentry.c:931
+#: ../gtk/gtkentry.c:934
 msgid "Whether the invisible character has been set"
 msgstr ""
 "Indica si se ha establecido la invisibilidad del conjunto de caracteres"
 
-#: ../gtk/gtkentry.c:949
+#: ../gtk/gtkentry.c:952
 msgid "Caps Lock warning"
 msgstr "Advertencia de bloqueo de mayúsculas"
 
-#: ../gtk/gtkentry.c:950
+#: ../gtk/gtkentry.c:953
 msgid "Whether password entries will show a warning when Caps Lock is on"
 msgstr ""
 "Indica si en las entradas de contraseñas se muestra una advertencia cuando "
 "el bloqueo de mayúsculas está activo"
 
-#: ../gtk/gtkentry.c:964
+#: ../gtk/gtkentry.c:967
 msgid "Progress Fraction"
 msgstr "Fracción de progreso"
 
-#: ../gtk/gtkentry.c:965
+#: ../gtk/gtkentry.c:968
 msgid "The current fraction of the task that's been completed"
 msgstr "La fracción actual completada de la tarea"
 
-#: ../gtk/gtkentry.c:982
+#: ../gtk/gtkentry.c:985
 msgid "Progress Pulse Step"
 msgstr "Progreso del paso del pulso"
 
-#: ../gtk/gtkentry.c:983
+#: ../gtk/gtkentry.c:986
 msgid ""
 "The fraction of total entry width to move the progress bouncing block for "
 "each call to gtk_entry_progress_pulse()"
@@ -2687,196 +2695,188 @@ msgstr ""
 "La fracción del ancho total de la entrada para mover el bloque de rebote de "
 "progreso para cada llamada a gtk_entry_progress_pulse()"
 
-#: ../gtk/gtkentry.c:999
+#: ../gtk/gtkentry.c:1002
 msgid "Placeholder text"
 msgstr "Escribir aquí"
 
-#: ../gtk/gtkentry.c:1000
+#: ../gtk/gtkentry.c:1003
 msgid "Show text in the entry when it's empty and unfocused"
 msgstr "Mostrar texto en la entrada cuando esta vacía y no tiene el foco"
 
-#: ../gtk/gtkentry.c:1014
+#: ../gtk/gtkentry.c:1017
 msgid "Primary pixbuf"
 msgstr "Pixbuf primario"
 
-#: ../gtk/gtkentry.c:1015
+#: ../gtk/gtkentry.c:1018
 msgid "Primary pixbuf for the entry"
 msgstr "El pixbuf primario para la entrada"
 
-#: ../gtk/gtkentry.c:1029
+#: ../gtk/gtkentry.c:1032
 msgid "Secondary pixbuf"
 msgstr "Pixbuf secundario"
 
-#: ../gtk/gtkentry.c:1030
+#: ../gtk/gtkentry.c:1033
 msgid "Secondary pixbuf for the entry"
 msgstr "El pixbuf secundario para la entrada"
 
-#: ../gtk/gtkentry.c:1044
+#: ../gtk/gtkentry.c:1047
 msgid "Primary stock ID"
 msgstr "ID de almacenamiento primario"
 
-#: ../gtk/gtkentry.c:1045
+#: ../gtk/gtkentry.c:1048
 msgid "Stock ID for primary icon"
 msgstr "ID de almacenamiento para el icono primario"
 
-#: ../gtk/gtkentry.c:1059
+#: ../gtk/gtkentry.c:1062
 msgid "Secondary stock ID"
 msgstr "ID de almacenamiento secundario"
 
-#: ../gtk/gtkentry.c:1060
+#: ../gtk/gtkentry.c:1063
 msgid "Stock ID for secondary icon"
 msgstr "ID de almacenamiento para el icono secundario"
 
-#: ../gtk/gtkentry.c:1074
+#: ../gtk/gtkentry.c:1077
 msgid "Primary icon name"
 msgstr "Nombre del icono primario"
 
-#: ../gtk/gtkentry.c:1075
+#: ../gtk/gtkentry.c:1078
 msgid "Icon name for primary icon"
 msgstr "Nombre del icono para el icono primario"
 
-#: ../gtk/gtkentry.c:1089
+#: ../gtk/gtkentry.c:1092
 msgid "Secondary icon name"
 msgstr "Nombre del icono secundario"
 
-#: ../gtk/gtkentry.c:1090
+#: ../gtk/gtkentry.c:1093
 msgid "Icon name for secondary icon"
 msgstr "Nombre del icono para el icono secundario"
 
-#: ../gtk/gtkentry.c:1104
+#: ../gtk/gtkentry.c:1107
 msgid "Primary GIcon"
 msgstr "GIcon primario"
 
-#: ../gtk/gtkentry.c:1105
+#: ../gtk/gtkentry.c:1108
 msgid "GIcon for primary icon"
 msgstr "GIcon para el icono primario"
 
-#: ../gtk/gtkentry.c:1119
+#: ../gtk/gtkentry.c:1122
 msgid "Secondary GIcon"
 msgstr "GIcon secundario"
 
-#: ../gtk/gtkentry.c:1120
+#: ../gtk/gtkentry.c:1123
 msgid "GIcon for secondary icon"
 msgstr "GIcon para el icono secundario"
 
-#: ../gtk/gtkentry.c:1134
+#: ../gtk/gtkentry.c:1137
 msgid "Primary storage type"
 msgstr "Tipo de almacenamiento primario"
 
-#: ../gtk/gtkentry.c:1135
+#: ../gtk/gtkentry.c:1138
 msgid "The representation being used for primary icon"
 msgstr "La representación empleada para el icono primario"
 
-#: ../gtk/gtkentry.c:1150
+#: ../gtk/gtkentry.c:1153
 msgid "Secondary storage type"
 msgstr "Tipo de almacenamiento secundario"
 
-#: ../gtk/gtkentry.c:1151
+#: ../gtk/gtkentry.c:1154
 msgid "The representation being used for secondary icon"
 msgstr "La representación empleada para el icono secundario"
 
-#: ../gtk/gtkentry.c:1172
+#: ../gtk/gtkentry.c:1175
 msgid "Primary icon activatable"
 msgstr "Icono primario activable"
 
-#: ../gtk/gtkentry.c:1173
+#: ../gtk/gtkentry.c:1176
 msgid "Whether the primary icon is activatable"
 msgstr "Indica si el icono primario es activable"
 
-#: ../gtk/gtkentry.c:1193
+#: ../gtk/gtkentry.c:1196
 msgid "Secondary icon activatable"
 msgstr "Icono secundario activable"
 
-#: ../gtk/gtkentry.c:1194
+#: ../gtk/gtkentry.c:1197
 msgid "Whether the secondary icon is activatable"
 msgstr "Indica si el icono secundario es activable"
 
-#: ../gtk/gtkentry.c:1216
+#: ../gtk/gtkentry.c:1219
 msgid "Primary icon sensitive"
 msgstr "Sensibilidad del icono primario"
 
-#: ../gtk/gtkentry.c:1217
+#: ../gtk/gtkentry.c:1220
 msgid "Whether the primary icon is sensitive"
 msgstr "Indica si el icono primario es sensible"
 
-#: ../gtk/gtkentry.c:1238
+#: ../gtk/gtkentry.c:1241
 msgid "Secondary icon sensitive"
 msgstr "Sensibilidad del icono secundario"
 
-#: ../gtk/gtkentry.c:1239
+#: ../gtk/gtkentry.c:1242
 msgid "Whether the secondary icon is sensitive"
 msgstr "Indica si el icono secundario es sensible"
 
-#: ../gtk/gtkentry.c:1255
+#: ../gtk/gtkentry.c:1258
 msgid "Primary icon tooltip text"
 msgstr "Texto de la sugerencia del icono primario"
 
-#: ../gtk/gtkentry.c:1256 ../gtk/gtkentry.c:1292
+#: ../gtk/gtkentry.c:1259 ../gtk/gtkentry.c:1295
 msgid "The contents of the tooltip on the primary icon"
 msgstr "El contenido de la consejo para el icono primario"
 
-#: ../gtk/gtkentry.c:1272
+#: ../gtk/gtkentry.c:1275
 msgid "Secondary icon tooltip text"
 msgstr "Texto de la sugerencia del icono secundario"
 
-#: ../gtk/gtkentry.c:1273 ../gtk/gtkentry.c:1311
+#: ../gtk/gtkentry.c:1276 ../gtk/gtkentry.c:1314
 msgid "The contents of the tooltip on the secondary icon"
 msgstr "El contenido de la sugerencia para el icono secundario"
 
-#: ../gtk/gtkentry.c:1291
+#: ../gtk/gtkentry.c:1294
 msgid "Primary icon tooltip markup"
 msgstr "Marcado de la sugerencia del icono primario"
 
-#: ../gtk/gtkentry.c:1310
+#: ../gtk/gtkentry.c:1313
 msgid "Secondary icon tooltip markup"
 msgstr "Marcado de la sugerencia del icono secundario"
 
-#: ../gtk/gtkentry.c:1330 ../gtk/gtktextview.c:795
+#: ../gtk/gtkentry.c:1333 ../gtk/gtktextview.c:794
 msgid "IM module"
 msgstr "Módulo ME"
 
-#: ../gtk/gtkentry.c:1331 ../gtk/gtktextview.c:796
+#: ../gtk/gtkentry.c:1334 ../gtk/gtktextview.c:795
 msgid "Which IM module should be used"
 msgstr "Qué módulo de ME se debe usar"
 
-#: ../gtk/gtkentry.c:1345
+#: ../gtk/gtkentry.c:1348
 msgid "Completion"
 msgstr "Completado"
 
-#: ../gtk/gtkentry.c:1346
+#: ../gtk/gtkentry.c:1349
 msgid "The auxiliary completion object"
 msgstr "El objeto de completado auxiliar"
 
-#: ../gtk/gtkentry.c:1360
+#: ../gtk/gtkentry.c:1363
 msgid "Icon Prelight"
 msgstr "Iluminación de icono"
 
-#: ../gtk/gtkentry.c:1361
+#: ../gtk/gtkentry.c:1364
 msgid "Whether activatable icons should prelight when hovered"
 msgstr ""
 "Indica si los iconos activables deben iluminarse al pasar el ratón sobre "
 "ellos"
 
-#: ../gtk/gtkentry.c:1374
+#: ../gtk/gtkentry.c:1377
 msgid "Progress Border"
 msgstr "Borde del progreso"
 
-#: ../gtk/gtkentry.c:1375
+#: ../gtk/gtkentry.c:1378
 msgid "Border around the progress bar"
 msgstr "Borde alrededor de la barra de progreso"
 
-#: ../gtk/gtkentry.c:1867
+#: ../gtk/gtkentry.c:1870
 msgid "Border between text and frame."
 msgstr "Borde entre el texto y el marco."
 
-#: ../gtk/gtkentrybuffer.c:353
-msgid "The contents of the buffer"
-msgstr "El contenido del búfer"
-
-#: ../gtk/gtkentrybuffer.c:368
-msgid "Length of the text currently in the buffer"
-msgstr "Longitud del texto actualmente en el búfer"
-
 #: ../gtk/gtkentrycompletion.c:320
 msgid "Completion Model"
 msgstr "Modelo de completado"
@@ -2966,54 +2966,54 @@ msgstr ""
 "Indica si la ventana atrapadora de eventos de la caja de eventos está por "
 "encima del widget hijo como oposición debajo de ésta."
 
-#: ../gtk/gtkexpander.c:281
+#: ../gtk/gtkexpander.c:282
 msgid "Expanded"
 msgstr "Expandido"
 
-#: ../gtk/gtkexpander.c:282
+#: ../gtk/gtkexpander.c:283
 msgid "Whether the expander has been opened to reveal the child widget"
 msgstr "Indica si el expansor ha sido abierto para revelar el widget hijo"
 
-#: ../gtk/gtkexpander.c:290
+#: ../gtk/gtkexpander.c:291
 msgid "Text of the expander's label"
 msgstr "Texto de la etiqueta del expansor"
 
-#: ../gtk/gtkexpander.c:305 ../gtk/gtklabel.c:756
+#: ../gtk/gtkexpander.c:306 ../gtk/gtklabel.c:758
 msgid "Use markup"
 msgstr "Usar marcado"
 
-#: ../gtk/gtkexpander.c:306 ../gtk/gtklabel.c:757
+#: ../gtk/gtkexpander.c:307 ../gtk/gtklabel.c:759
 msgid "The text of the label includes XML markup. See pango_parse_markup()"
 msgstr "El texto de la etiqueta incluye marcado XML. Vea pango_parse_markup()"
 
-#: ../gtk/gtkexpander.c:314
+#: ../gtk/gtkexpander.c:315
 msgid "Space to put between the label and the child"
 msgstr "Espacio para colocar entre la etiqueta y el hijo"
 
-#: ../gtk/gtkexpander.c:323 ../gtk/gtkframe.c:205 ../gtk/gtktoolbutton.c:246
-#: ../gtk/gtktoolitemgroup.c:1598
+#: ../gtk/gtkexpander.c:324 ../gtk/gtkframe.c:206 ../gtk/gtktoolbutton.c:246
+#: ../gtk/gtktoolitemgroup.c:1599
 msgid "Label widget"
 msgstr "Widget etiqueta"
 
-#: ../gtk/gtkexpander.c:324
+#: ../gtk/gtkexpander.c:325
 msgid "A widget to display in place of the usual expander label"
 msgstr "Un widget para mostrar en lugar de la etiqueta usual del expansor"
 
-#: ../gtk/gtkexpander.c:331
+#: ../gtk/gtkexpander.c:332
 msgid "Label fill"
 msgstr "Relleno de etiqueta"
 
-#: ../gtk/gtkexpander.c:332
+#: ../gtk/gtkexpander.c:333
 msgid "Whether the label widget should fill all available horizontal space"
 msgstr ""
 "Indica si el widget de etiqueta debería llenar todo el espacio horizontal "
 "disponible"
 
-#: ../gtk/gtkexpander.c:347
+#: ../gtk/gtkexpander.c:348
 msgid "Resize tolevel"
 msgstr "Redimensionar nivel superior"
 
-#: ../gtk/gtkexpander.c:348
+#: ../gtk/gtkexpander.c:349
 msgid ""
 "Whether the expander will resize the toplevel window upon expanding and "
 "collapsing"
@@ -3021,17 +3021,17 @@ msgstr ""
 "Indica si el expansor redimensionará la ventana de nivel superior al "
 "expandirse y contraerse"
 
-#: ../gtk/gtkexpander.c:354 ../gtk/gtktoolitemgroup.c:1626
-#: ../gtk/gtktreeview.c:1186
+#: ../gtk/gtkexpander.c:355 ../gtk/gtktoolitemgroup.c:1627
+#: ../gtk/gtktreeview.c:1187
 msgid "Expander Size"
 msgstr "Tamaño del expansor"
 
-#: ../gtk/gtkexpander.c:355 ../gtk/gtktoolitemgroup.c:1627
-#: ../gtk/gtktreeview.c:1187
+#: ../gtk/gtkexpander.c:356 ../gtk/gtktoolitemgroup.c:1628
+#: ../gtk/gtktreeview.c:1188
 msgid "Size of the expander arrow"
 msgstr "Tamaño de la flecha del expansor"
 
-#: ../gtk/gtkexpander.c:364
+#: ../gtk/gtkexpander.c:365
 msgid "Spacing around expander arrow"
 msgstr "Espaciado alrededor de la flecha del expansor"
 
@@ -3174,7 +3174,7 @@ msgstr "Posición Y del widget hijo"
 msgid "The title of the font selection dialog"
 msgstr "El título del diálogo de selección de tipografía"
 
-#: ../gtk/gtkfontbutton.c:167 ../gtk/gtkfontsel.c:239
+#: ../gtk/gtkfontbutton.c:167 ../gtk/gtkfontsel.c:238
 msgid "Font name"
 msgstr "Nombre de la tipografía"
 
@@ -3220,47 +3220,47 @@ msgid "Whether selected font size is shown in the label"
 msgstr ""
 "Indica si el tamaño de tipografía seleccionado se muestra en la etiqueta"
 
-#: ../gtk/gtkfontsel.c:240
+#: ../gtk/gtkfontsel.c:239
 msgid "The string that represents this font"
 msgstr "La cadena que representa esta tipografía"
 
-#: ../gtk/gtkfontsel.c:246
+#: ../gtk/gtkfontsel.c:245
 msgid "Preview text"
 msgstr "Vista previa del texto"
 
-#: ../gtk/gtkfontsel.c:247
+#: ../gtk/gtkfontsel.c:246
 msgid "The text to display in order to demonstrate the selected font"
 msgstr "El texto que mostrar como demostración de la tipografía seleccionada"
 
-#: ../gtk/gtkframe.c:171
+#: ../gtk/gtkframe.c:172
 msgid "Text of the frame's label"
 msgstr "Texto de la etiqueta del marco"
 
-#: ../gtk/gtkframe.c:178
+#: ../gtk/gtkframe.c:179
 msgid "Label xalign"
 msgstr "xalign de la etiqueta"
 
-#: ../gtk/gtkframe.c:179
+#: ../gtk/gtkframe.c:180
 msgid "The horizontal alignment of the label"
 msgstr "La alineación horizontal de la etiqueta"
 
-#: ../gtk/gtkframe.c:187
+#: ../gtk/gtkframe.c:188
 msgid "Label yalign"
 msgstr "yalign de la etiqueta"
 
-#: ../gtk/gtkframe.c:188
+#: ../gtk/gtkframe.c:189
 msgid "The vertical alignment of the label"
 msgstr "La alineación vertical de la etiqueta"
 
-#: ../gtk/gtkframe.c:196
+#: ../gtk/gtkframe.c:197
 msgid "Frame shadow"
 msgstr "Sombra del marco"
 
-#: ../gtk/gtkframe.c:197
+#: ../gtk/gtkframe.c:198
 msgid "Appearance of the frame border"
 msgstr "Apariencia del borde del marco"
 
-#: ../gtk/gtkframe.c:206
+#: ../gtk/gtkframe.c:207
 msgid "A widget to display in place of the usual frame label"
 msgstr "Un widget a mostrar en lugar de la usual etiqueta del marco"
 
@@ -3300,7 +3300,7 @@ msgstr "Si es cierto, las columnas tienen todas la misma altura"
 msgid "Left attachment"
 msgstr "Acoplado izquierdo"
 
-#: ../gtk/gtkgrid.c:1327 ../gtk/gtkmenu.c:760 ../gtk/gtktable.c:236
+#: ../gtk/gtkgrid.c:1327 ../gtk/gtkmenu.c:761 ../gtk/gtktable.c:236
 msgid "The column number to attach the left side of the child to"
 msgstr "El número de columnas que acoplar al lado izquierdo del hijo"
 
@@ -3466,16 +3466,16 @@ msgid ""
 msgstr ""
 "Cómo se sitúan el texto y el icono para cada elemento relativo a los demás"
 
-#: ../gtk/gtkiconview.c:725 ../gtk/gtktreeview.c:1021
+#: ../gtk/gtkiconview.c:725 ../gtk/gtktreeview.c:1022
 #: ../gtk/gtktreeviewcolumn.c:374
 msgid "Reorderable"
 msgstr "Reordenable"
 
-#: ../gtk/gtkiconview.c:726 ../gtk/gtktreeview.c:1022
+#: ../gtk/gtkiconview.c:726 ../gtk/gtktreeview.c:1023
 msgid "View is reorderable"
 msgstr "La vista es reordenable"
 
-#: ../gtk/gtkiconview.c:733 ../gtk/gtktreeview.c:1172
+#: ../gtk/gtkiconview.c:733 ../gtk/gtktreeview.c:1173
 msgid "Tooltip Column"
 msgstr "Columna de sugerencia"
 
@@ -3509,75 +3509,75 @@ msgstr "Alfa de la caja de selección"
 msgid "Opacity of the selection box"
 msgstr "Opacidad de la caja de selección"
 
-#: ../gtk/gtkimage.c:235 ../gtk/gtkstatusicon.c:235
+#: ../gtk/gtkimage.c:237 ../gtk/gtkstatusicon.c:235
 msgid "Pixbuf"
 msgstr "Pixbuf"
 
-#: ../gtk/gtkimage.c:236 ../gtk/gtkstatusicon.c:236
+#: ../gtk/gtkimage.c:238 ../gtk/gtkstatusicon.c:236
 msgid "A GdkPixbuf to display"
 msgstr "Un GdkPixbuf para mostrar"
 
-#: ../gtk/gtkimage.c:243 ../gtk/gtkrecentmanager.c:294
+#: ../gtk/gtkimage.c:245 ../gtk/gtkrecentmanager.c:294
 #: ../gtk/gtkstatusicon.c:243
 msgid "Filename"
 msgstr "Nombre de archivo"
 
-#: ../gtk/gtkimage.c:244 ../gtk/gtkstatusicon.c:244
+#: ../gtk/gtkimage.c:246 ../gtk/gtkstatusicon.c:244
 msgid "Filename to load and display"
 msgstr "Nombre del archivo a cargar y mostrar"
 
-#: ../gtk/gtkimage.c:253 ../gtk/gtkstatusicon.c:252
+#: ../gtk/gtkimage.c:255 ../gtk/gtkstatusicon.c:252
 msgid "Stock ID for a stock image to display"
 msgstr "ID de inventario para una imagen de inventario que mostrar"
 
-#: ../gtk/gtkimage.c:260
+#: ../gtk/gtkimage.c:262
 msgid "Icon set"
 msgstr "Conjunto de iconos"
 
-#: ../gtk/gtkimage.c:261
+#: ../gtk/gtkimage.c:263
 msgid "Icon set to display"
 msgstr "Conjunto de iconos para mostrar"
 
-#: ../gtk/gtkimage.c:268 ../gtk/gtkscalebutton.c:227 ../gtk/gtktoolbar.c:521
-#: ../gtk/gtktoolpalette.c:1006
+#: ../gtk/gtkimage.c:270 ../gtk/gtkscalebutton.c:228 ../gtk/gtktoolbar.c:528
+#: ../gtk/gtktoolpalette.c:1008
 msgid "Icon size"
 msgstr "Tamaño del icono"
 
-#: ../gtk/gtkimage.c:269
+#: ../gtk/gtkimage.c:271
 msgid "Symbolic size to use for stock icon, icon set or named icon"
 msgstr ""
 "Tamaño simbólico que usar para el icono de inventario, conjunto de iconos o "
 "icono nombrado"
 
-#: ../gtk/gtkimage.c:285
+#: ../gtk/gtkimage.c:287
 msgid "Pixel size"
 msgstr "Tamaño del píxel"
 
-#: ../gtk/gtkimage.c:286
+#: ../gtk/gtkimage.c:288
 msgid "Pixel size to use for named icon"
 msgstr "Tamaño de píxel que usar para el icono nombrado"
 
-#: ../gtk/gtkimage.c:294
+#: ../gtk/gtkimage.c:296
 msgid "Animation"
 msgstr "Animación"
 
-#: ../gtk/gtkimage.c:295
+#: ../gtk/gtkimage.c:297
 msgid "GdkPixbufAnimation to display"
 msgstr "GdkPixbufAnimation para mostrar"
 
-#: ../gtk/gtkimage.c:335 ../gtk/gtkstatusicon.c:283
+#: ../gtk/gtkimage.c:337 ../gtk/gtkstatusicon.c:283
 msgid "Storage type"
 msgstr "Tipo de almacenamiento"
 
-#: ../gtk/gtkimage.c:336 ../gtk/gtkstatusicon.c:284
+#: ../gtk/gtkimage.c:338 ../gtk/gtkstatusicon.c:284
 msgid "The representation being used for image data"
 msgstr "La representación empleada para los datos de la imagen"
 
-#: ../gtk/gtkimage.c:354
+#: ../gtk/gtkimage.c:356
 msgid "Use Fallback"
 msgstr "Usar alternativa"
 
-#: ../gtk/gtkimage.c:355
+#: ../gtk/gtkimage.c:357
 msgid "Whether to use icon names fallback"
 msgstr "Indica si usar nombres de iconos como alternativa"
 
@@ -3591,7 +3591,7 @@ msgstr ""
 "Indica si se debe usar el texto de la etiqueta para crear un elemento del "
 "menú de stock"
 
-#: ../gtk/gtkimagemenuitem.c:209 ../gtk/gtkmenu.c:602
+#: ../gtk/gtkimagemenuitem.c:209 ../gtk/gtkmenu.c:603
 msgid "Accel Group"
 msgstr "Grupo de aceleración"
 
@@ -3620,8 +3620,8 @@ msgstr "Espacio entre los elementos del área"
 msgid "Width of border around the action area"
 msgstr "Anchura del borde alrededor del área de acción"
 
-#: ../gtk/gtkinvisible.c:103 ../gtk/gtkmountoperation.c:174
-#: ../gtk/gtkstatusicon.c:302 ../gtk/gtkstylecontext.c:544
+#: ../gtk/gtkinvisible.c:103 ../gtk/gtkmountoperation.c:173
+#: ../gtk/gtkstatusicon.c:302 ../gtk/gtkstylecontext.c:431
 #: ../gtk/gtkwindow.c:732
 msgid "Screen"
 msgstr "Pantalla"
@@ -3630,19 +3630,19 @@ msgstr "Pantalla"
 msgid "The screen where this window will be displayed"
 msgstr "La pantalla donde se mostrará esta ventana"
 
-#: ../gtk/gtklabel.c:743
+#: ../gtk/gtklabel.c:745
 msgid "The text of the label"
 msgstr "El texto de la etiqueta"
 
-#: ../gtk/gtklabel.c:750
+#: ../gtk/gtklabel.c:752
 msgid "A list of style attributes to apply to the text of the label"
 msgstr "Un lista de atributos de estilos para aplicar al texto de la etiqueta"
 
-#: ../gtk/gtklabel.c:771 ../gtk/gtktexttag.c:386 ../gtk/gtktextview.c:704
+#: ../gtk/gtklabel.c:773 ../gtk/gtktexttag.c:386 ../gtk/gtktextview.c:703
 msgid "Justification"
 msgstr "Justificación"
 
-#: ../gtk/gtklabel.c:772
+#: ../gtk/gtklabel.c:774
 msgid ""
 "The alignment of the lines in the text of the label relative to each other. "
 "This does NOT affect the alignment of the label within its allocation. See "
@@ -3652,11 +3652,11 @@ msgstr ""
 "Esto NO afecta la alineación de la etiqueta dentro de su ubicación.  Ver "
 "GtkMisc::xalign para ello"
 
-#: ../gtk/gtklabel.c:780
+#: ../gtk/gtklabel.c:782
 msgid "Pattern"
 msgstr "Patrón"
 
-#: ../gtk/gtklabel.c:781
+#: ../gtk/gtklabel.c:783
 msgid ""
 "A string with _ characters in positions correspond to characters in the text "
 "to underline"
@@ -3664,50 +3664,50 @@ msgstr ""
 "Un cadena con caracteres _ en posiciones correspondientes a caracteres en el "
 "texto a subrayar"
 
-#: ../gtk/gtklabel.c:788
+#: ../gtk/gtklabel.c:790
 msgid "Line wrap"
 msgstr "Ajuste de línea"
 
-#: ../gtk/gtklabel.c:789
+#: ../gtk/gtklabel.c:791
 msgid "If set, wrap lines if the text becomes too wide"
 msgstr ""
 "Si esta definido, ajustar las líneas si el texto se vuelve demasiado ancho"
 
-#: ../gtk/gtklabel.c:804
+#: ../gtk/gtklabel.c:806
 msgid "Line wrap mode"
 msgstr "Modo de ajuste de línea"
 
-#: ../gtk/gtklabel.c:805
+#: ../gtk/gtklabel.c:807
 msgid "If wrap is set, controls how linewrapping is done"
 msgstr "Si se establece el ajuste, controla cómo se hace el ajuste de línea"
 
-#: ../gtk/gtklabel.c:812
+#: ../gtk/gtklabel.c:814
 msgid "Selectable"
 msgstr "Seleccionable"
 
-#: ../gtk/gtklabel.c:813
+#: ../gtk/gtklabel.c:815
 msgid "Whether the label text can be selected with the mouse"
 msgstr "Indica si el texto de la etiqueta puede ser seleccionado con el ratón"
 
-#: ../gtk/gtklabel.c:819
+#: ../gtk/gtklabel.c:821
 msgid "Mnemonic key"
 msgstr "Tecla nemónica"
 
-#: ../gtk/gtklabel.c:820
+#: ../gtk/gtklabel.c:822
 msgid "The mnemonic accelerator key for this label"
 msgstr "La tecla nemotécnica del acelerador para esta etiqueta"
 
-#: ../gtk/gtklabel.c:828
+#: ../gtk/gtklabel.c:830
 msgid "Mnemonic widget"
 msgstr "Widget nemónico"
 
-#: ../gtk/gtklabel.c:829
+#: ../gtk/gtklabel.c:831
 msgid "The widget to be activated when the label's mnemonic key is pressed"
 msgstr ""
 "El widget que se activará cuando se presione la tecla mnemotécnica de la "
 "etiqueta"
 
-#: ../gtk/gtklabel.c:875
+#: ../gtk/gtklabel.c:877
 msgid ""
 "The preferred place to ellipsize the string, if the label does not have "
 "enough room to display the entire string"
@@ -3715,31 +3715,31 @@ msgstr ""
 "El lugar preferido para la elipsis de la cadena, si la etiqueta no tiene "
 "suficiente espacio para mostrar la cadena completa"
 
-#: ../gtk/gtklabel.c:916
+#: ../gtk/gtklabel.c:918
 msgid "Single Line Mode"
 msgstr "Modo de línea única"
 
-#: ../gtk/gtklabel.c:917
+#: ../gtk/gtklabel.c:919
 msgid "Whether the label is in single line mode"
 msgstr "Indica si la etiqueta está en modo de línea única"
 
-#: ../gtk/gtklabel.c:934
+#: ../gtk/gtklabel.c:936
 msgid "Angle"
 msgstr "Ángulo"
 
-#: ../gtk/gtklabel.c:935
+#: ../gtk/gtklabel.c:937
 msgid "Angle at which the label is rotated"
 msgstr "Ángulo al cual la etiqueta se rota"
 
-#: ../gtk/gtklabel.c:957
+#: ../gtk/gtklabel.c:959
 msgid "The desired maximum width of the label, in characters"
 msgstr "La anchura máxima deseada de la etiqueta, en caracteres"
 
-#: ../gtk/gtklabel.c:975
+#: ../gtk/gtklabel.c:977
 msgid "Track visited links"
 msgstr "Seguir los enlaces visitados"
 
-#: ../gtk/gtklabel.c:976
+#: ../gtk/gtklabel.c:978
 msgid "Whether visited links should be tracked"
 msgstr "Indica si deben seguir los enlaces visitados"
 
@@ -3818,63 +3818,63 @@ msgstr ""
 "La sugerencia que mostrar al mostrar al usuario que no se pudo obtener una "
 "autorización"
 
-#: ../gtk/gtkmenubar.c:190
+#: ../gtk/gtkmenubar.c:191
 msgid "Pack direction"
 msgstr "Dirección del empaquetado"
 
-#: ../gtk/gtkmenubar.c:191
+#: ../gtk/gtkmenubar.c:192
 msgid "The pack direction of the menubar"
 msgstr "La dirección del empaquetado de la barra de menú"
 
-#: ../gtk/gtkmenubar.c:207
+#: ../gtk/gtkmenubar.c:208
 msgid "Child Pack direction"
 msgstr "Dirección de empaquetado del hijo"
 
-#: ../gtk/gtkmenubar.c:208
+#: ../gtk/gtkmenubar.c:209
 msgid "The child pack direction of the menubar"
 msgstr "La dirección de empaquetado hijo de la barra de menú"
 
-#: ../gtk/gtkmenubar.c:217
+#: ../gtk/gtkmenubar.c:218
 msgid "Style of bevel around the menubar"
 msgstr "Estilo del bisel alrededor de la barra de menús"
 
-#: ../gtk/gtkmenubar.c:224 ../gtk/gtktoolbar.c:571
+#: ../gtk/gtkmenubar.c:225 ../gtk/gtktoolbar.c:578
 msgid "Internal padding"
 msgstr "Relleno interno"
 
-#: ../gtk/gtkmenubar.c:225
+#: ../gtk/gtkmenubar.c:226
 msgid "Amount of border space between the menubar shadow and the menu items"
 msgstr ""
 "Número de espacios del borde entre la sombra de la barra de menús y los "
 "elementos del menú"
 
-#: ../gtk/gtkmenu.c:588
+#: ../gtk/gtkmenu.c:589
 msgid "The currently selected menu item"
 msgstr "El elemento del menú actualmente seleccionado"
 
-#: ../gtk/gtkmenu.c:603
+#: ../gtk/gtkmenu.c:604
 msgid "The accel group holding accelerators for the menu"
 msgstr "El grupo de aceleración que contiene los aceleradores para el menú"
 
-#: ../gtk/gtkmenu.c:617 ../gtk/gtkmenuitem.c:366
+#: ../gtk/gtkmenu.c:618 ../gtk/gtkmenuitem.c:369
 msgid "Accel Path"
 msgstr "Ruta del acelerador"
 
-#: ../gtk/gtkmenu.c:618
+#: ../gtk/gtkmenu.c:619
 msgid "An accel path used to conveniently construct accel paths of child items"
 msgstr ""
 "Una ruta de acelerador usada para construir convenientemente rutas de "
 "aceleración de elementos hijo"
 
-#: ../gtk/gtkmenu.c:634
+#: ../gtk/gtkmenu.c:635
 msgid "Attach Widget"
 msgstr "Acoplar widget"
 
-#: ../gtk/gtkmenu.c:635
+#: ../gtk/gtkmenu.c:636
 msgid "The widget the menu is attached to"
 msgstr "El menú al que está acoplado el widget"
 
-#: ../gtk/gtkmenu.c:643
+#: ../gtk/gtkmenu.c:644
 msgid ""
 "A title that may be displayed by the window manager when this menu is torn-"
 "off"
@@ -3882,54 +3882,54 @@ msgstr ""
 "Un título que podría mostrarse por el administrador de ventanas cuando este "
 "menú se desprenda"
 
-#: ../gtk/gtkmenu.c:657
+#: ../gtk/gtkmenu.c:658
 msgid "Tearoff State"
 msgstr "Estado de desprendimiento"
 
-#: ../gtk/gtkmenu.c:658
+#: ../gtk/gtkmenu.c:659
 msgid "A boolean that indicates whether the menu is torn-off"
 msgstr "Un booleano que indica si el menú ha sido desprendido"
 
-#: ../gtk/gtkmenu.c:672
+#: ../gtk/gtkmenu.c:673
 msgid "Monitor"
 msgstr "Monitor"
 
-#: ../gtk/gtkmenu.c:673
+#: ../gtk/gtkmenu.c:674
 msgid "The monitor the menu will be popped up on"
 msgstr "El monitor en el que se mostrará el menú"
 
-#: ../gtk/gtkmenu.c:679
+#: ../gtk/gtkmenu.c:680
 msgid "Vertical Padding"
 msgstr "Separación vertical"
 
-#: ../gtk/gtkmenu.c:680
+#: ../gtk/gtkmenu.c:681
 msgid "Extra space at the top and bottom of the menu"
 msgstr "El espacio adicional en la parte superior e inferior del menú"
 
-#: ../gtk/gtkmenu.c:702
+#: ../gtk/gtkmenu.c:703
 msgid "Reserve Toggle Size"
 msgstr "Reservar tamaño para conmutar"
 
-#: ../gtk/gtkmenu.c:703
+#: ../gtk/gtkmenu.c:704
 msgid ""
 "A boolean that indicates whether the menu reserves space for toggles and "
 "icons"
 msgstr ""
 "Un booleano que indica si el menú reserva espacio para conmutadores e iconos"
 
-#: ../gtk/gtkmenu.c:709
+#: ../gtk/gtkmenu.c:710
 msgid "Horizontal Padding"
 msgstr "Separación horizontal"
 
-#: ../gtk/gtkmenu.c:710
+#: ../gtk/gtkmenu.c:711
 msgid "Extra space at the left and right edges of the menu"
 msgstr "El espacio adicional en los bordes derecho e izquierdo del menú"
 
-#: ../gtk/gtkmenu.c:718
+#: ../gtk/gtkmenu.c:719
 msgid "Vertical Offset"
 msgstr "Desplazamiento vertical"
 
-#: ../gtk/gtkmenu.c:719
+#: ../gtk/gtkmenu.c:720
 msgid ""
 "When the menu is a submenu, position it this number of pixels offset "
 "vertically"
@@ -3937,11 +3937,11 @@ msgstr ""
 "Cuando el menú es un submenú, colocarlo este número de píxeles de "
 "desplazamiento vertical"
 
-#: ../gtk/gtkmenu.c:727
+#: ../gtk/gtkmenu.c:728
 msgid "Horizontal Offset"
 msgstr "Desplazamiento horizontal"
 
-#: ../gtk/gtkmenu.c:728
+#: ../gtk/gtkmenu.c:729
 msgid ""
 "When the menu is a submenu, position it this number of pixels offset "
 "horizontally"
@@ -3949,94 +3949,94 @@ msgstr ""
 "Cuando el menú es un submenú, colocarlo este número de píxeles de "
 "desplazamiento horizontal"
 
-#: ../gtk/gtkmenu.c:736
+#: ../gtk/gtkmenu.c:737
 msgid "Double Arrows"
 msgstr "Dobles flechas"
 
-#: ../gtk/gtkmenu.c:737
+#: ../gtk/gtkmenu.c:738
 msgid "When scrolling, always show both arrows."
 msgstr "Al desplazar, siempre mostrar ambas flechas."
 
-#: ../gtk/gtkmenu.c:750
+#: ../gtk/gtkmenu.c:751
 msgid "Arrow Placement"
 msgstr "Colocación de flecha"
 
-#: ../gtk/gtkmenu.c:751
+#: ../gtk/gtkmenu.c:752
 msgid "Indicates where scroll arrows should be placed"
 msgstr "Indica si las flechas de desplazamiento se deben colocar"
 
-#: ../gtk/gtkmenu.c:759
+#: ../gtk/gtkmenu.c:760
 msgid "Left Attach"
 msgstr "Acoplar a la izquierda"
 
-#: ../gtk/gtkmenu.c:767
+#: ../gtk/gtkmenu.c:768
 msgid "Right Attach"
 msgstr "Acoplar a la derecha"
 
-#: ../gtk/gtkmenu.c:768
+#: ../gtk/gtkmenu.c:769
 msgid "The column number to attach the right side of the child to"
 msgstr "El número de columnas que acoplar al lado derecho del hijo"
 
-#: ../gtk/gtkmenu.c:775
+#: ../gtk/gtkmenu.c:776
 msgid "Top Attach"
 msgstr "Acoplamiento superior"
 
-#: ../gtk/gtkmenu.c:776
+#: ../gtk/gtkmenu.c:777
 msgid "The row number to attach the top of the child to"
 msgstr "El número de filas que acoplar por encima del hijo"
 
-#: ../gtk/gtkmenu.c:783
+#: ../gtk/gtkmenu.c:784
 msgid "Bottom Attach"
 msgstr "Acoplamiento inferior"
 
-#: ../gtk/gtkmenu.c:784 ../gtk/gtktable.c:257
+#: ../gtk/gtkmenu.c:785 ../gtk/gtktable.c:257
 msgid "The row number to attach the bottom of the child to"
 msgstr "El número de filas que acoplar por debajo del hijo"
 
-#: ../gtk/gtkmenu.c:798
+#: ../gtk/gtkmenu.c:799
 msgid "Arbitrary constant to scale down the size of the scroll arrow"
 msgstr ""
 "Constante arbitraria para reducir el escalado del tamaño de la flecha de "
 "desplazamiento"
 
-#: ../gtk/gtkmenuitem.c:334
+#: ../gtk/gtkmenuitem.c:337
 msgid "Right Justified"
 msgstr "Justificado a la derecha"
 
-#: ../gtk/gtkmenuitem.c:335
+#: ../gtk/gtkmenuitem.c:338
 msgid ""
 "Sets whether the menu item appears justified at the right side of a menu bar"
 msgstr ""
 "Establece si el elemento del menú aparece justificado en la parte derecha de "
 "una barra de menú"
 
-#: ../gtk/gtkmenuitem.c:349
+#: ../gtk/gtkmenuitem.c:352
 msgid "Submenu"
 msgstr "Submenú"
 
-#: ../gtk/gtkmenuitem.c:350
+#: ../gtk/gtkmenuitem.c:353
 msgid "The submenu attached to the menu item, or NULL if it has none"
 msgstr "El submenú acoplado al elemento del menú, o NULL si no tiene ninguno"
 
-#: ../gtk/gtkmenuitem.c:367
+#: ../gtk/gtkmenuitem.c:370
 msgid "Sets the accelerator path of the menu item"
 msgstr "Establece la ruta del acelerador del elemento del menú"
 
-#: ../gtk/gtkmenuitem.c:382
+#: ../gtk/gtkmenuitem.c:385
 msgid "The text for the child label"
 msgstr "El texto para la etiqueta hijo"
 
-#: ../gtk/gtkmenuitem.c:445
+#: ../gtk/gtkmenuitem.c:448
 msgid "Amount of space used up by arrow, relative to the menu item's font size"
 msgstr ""
 "Cantidad de espacio ocupado por una flecha, relativa al tamaño de tipografía "
 "del elemento del menú"
 
-#: ../gtk/gtkmenuitem.c:458
+#: ../gtk/gtkmenuitem.c:461
 msgid "Width in Characters"
 msgstr "Anchura en caracteres"
 
-#: ../gtk/gtkmenuitem.c:459
+#: ../gtk/gtkmenuitem.c:462
 msgid "The minimum desired width of the menu item in characters"
 msgstr "La anchura mínima deseada del elemento del menú en caracteres"
 
@@ -4148,72 +4148,72 @@ msgstr ""
 "El número de espacio a añadir en la parte superior e inferior del widget, en "
 "píxeles"
 
-#: ../gtk/gtkmountoperation.c:158
+#: ../gtk/gtkmountoperation.c:157
 msgid "Parent"
 msgstr "Padre"
 
-#: ../gtk/gtkmountoperation.c:159
+#: ../gtk/gtkmountoperation.c:158
 msgid "The parent window"
 msgstr "La ventana padre"
 
-#: ../gtk/gtkmountoperation.c:166
+#: ../gtk/gtkmountoperation.c:165
 msgid "Is Showing"
 msgstr "Está mostrando"
 
-#: ../gtk/gtkmountoperation.c:167
+#: ../gtk/gtkmountoperation.c:166
 msgid "Are we showing a dialog"
 msgstr "Estamos mostrando un diálogo"
 
-#: ../gtk/gtkmountoperation.c:175
+#: ../gtk/gtkmountoperation.c:174
 msgid "The screen where this window will be displayed."
 msgstr "La pantalla donde se mostrará esta ventana."
 
-#: ../gtk/gtknotebook.c:695
+#: ../gtk/gtknotebook.c:696
 msgid "Page"
 msgstr "Página"
 
-#: ../gtk/gtknotebook.c:696
+#: ../gtk/gtknotebook.c:697
 msgid "The index of the current page"
 msgstr "El índice de la página actual"
 
-#: ../gtk/gtknotebook.c:704
+#: ../gtk/gtknotebook.c:705
 msgid "Tab Position"
 msgstr "Posición del tabulador"
 
-#: ../gtk/gtknotebook.c:705
+#: ../gtk/gtknotebook.c:706
 msgid "Which side of the notebook holds the tabs"
 msgstr "Qué lado del cuaderno contiene las pestañas"
 
-#: ../gtk/gtknotebook.c:712
+#: ../gtk/gtknotebook.c:713
 msgid "Show Tabs"
 msgstr "Mostrar pestañas"
 
-#: ../gtk/gtknotebook.c:713
+#: ../gtk/gtknotebook.c:714
 msgid "Whether tabs should be shown"
 msgstr "Indica si se deben mostrar las pestañas"
 
-#: ../gtk/gtknotebook.c:719
+#: ../gtk/gtknotebook.c:720
 msgid "Show Border"
 msgstr "Mostrar borde"
 
-#: ../gtk/gtknotebook.c:720
+#: ../gtk/gtknotebook.c:721
 msgid "Whether the border should be shown"
 msgstr "Indica si se debe mostrar el borde"
 
-#: ../gtk/gtknotebook.c:726
+#: ../gtk/gtknotebook.c:727
 msgid "Scrollable"
 msgstr "Desplazable"
 
-#: ../gtk/gtknotebook.c:727
+#: ../gtk/gtknotebook.c:728
 msgid "If TRUE, scroll arrows are added if there are too many tabs to fit"
 msgstr ""
 "Si es TRUE, añadir flechas de desplazamiento si no caben todas las pestañas"
 
-#: ../gtk/gtknotebook.c:733
+#: ../gtk/gtknotebook.c:734
 msgid "Enable Popup"
 msgstr "Activar emergente"
 
-#: ../gtk/gtknotebook.c:734
+#: ../gtk/gtknotebook.c:735
 msgid ""
 "If TRUE, pressing the right mouse button on the notebook pops up a menu that "
 "you can use to go to a page"
@@ -4221,129 +4221,129 @@ msgstr ""
 "Si es TRUE, presionando el botón derecho del ratón en el cuaderno emerge un "
 "menú que puede usar para ir a una página"
 
-#: ../gtk/gtknotebook.c:748
+#: ../gtk/gtknotebook.c:749
 msgid "Group Name"
 msgstr "Nombre del grupo"
 
-#: ../gtk/gtknotebook.c:749
+#: ../gtk/gtknotebook.c:750
 msgid "Group name for tab drag and drop"
 msgstr "Nombre del grupo para el arrastre y suelte de pestañas"
 
-#: ../gtk/gtknotebook.c:756
+#: ../gtk/gtknotebook.c:757
 msgid "Tab label"
 msgstr "Etiqueta de la pestaña"
 
-#: ../gtk/gtknotebook.c:757
+#: ../gtk/gtknotebook.c:758
 msgid "The string displayed on the child's tab label"
 msgstr "La cadena mostrada en la etiqueta de la pestaña hija"
 
-#: ../gtk/gtknotebook.c:763
+#: ../gtk/gtknotebook.c:764
 msgid "Menu label"
 msgstr "Etiqueta de menú"
 
-#: ../gtk/gtknotebook.c:764
+#: ../gtk/gtknotebook.c:765
 msgid "The string displayed in the child's menu entry"
 msgstr "La cadena mostrada en la entrada de menú hija"
 
-#: ../gtk/gtknotebook.c:777
+#: ../gtk/gtknotebook.c:778
 msgid "Tab expand"
 msgstr "Expansión de la pestaña"
 
-#: ../gtk/gtknotebook.c:778
+#: ../gtk/gtknotebook.c:779
 msgid "Whether to expand the child's tab"
 msgstr "Indica si se deben expandir la pestañas del hijo"
 
-#: ../gtk/gtknotebook.c:784
+#: ../gtk/gtknotebook.c:785
 msgid "Tab fill"
 msgstr "Relleno de la pestaña"
 
-#: ../gtk/gtknotebook.c:785
+#: ../gtk/gtknotebook.c:786
 msgid "Whether the child's tab should fill the allocated area"
 msgstr "Indica si se debe rellenar el área asignada de las pestañas hijas "
 
-#: ../gtk/gtknotebook.c:792
+#: ../gtk/gtknotebook.c:793
 msgid "Tab reorderable"
 msgstr "Pestaña reordenable"
 
-#: ../gtk/gtknotebook.c:793
+#: ../gtk/gtknotebook.c:794
 msgid "Whether the tab is reorderable by user action"
 msgstr "Indica si la pestaña se puede reordenar por una acción del usuario"
 
-#: ../gtk/gtknotebook.c:799
+#: ../gtk/gtknotebook.c:800
 msgid "Tab detachable"
 msgstr "Pestaña desprendible"
 
-#: ../gtk/gtknotebook.c:800
+#: ../gtk/gtknotebook.c:801
 msgid "Whether the tab is detachable"
 msgstr "Indica si la pestaña es desprendible"
 
-#: ../gtk/gtknotebook.c:815 ../gtk/gtkscrollbar.c:100
+#: ../gtk/gtknotebook.c:816 ../gtk/gtkscrollbar.c:102
 msgid "Secondary backward stepper"
 msgstr "Flecha de retroceso secundaria"
 
-#: ../gtk/gtknotebook.c:816
+#: ../gtk/gtknotebook.c:817
 msgid ""
 "Display a second backward arrow button on the opposite end of the tab area"
 msgstr ""
 "Muestra una segunda flecha de retroceso en el extremo opuesto del área de "
 "pestañas"
 
-#: ../gtk/gtknotebook.c:831 ../gtk/gtkscrollbar.c:107
+#: ../gtk/gtknotebook.c:832 ../gtk/gtkscrollbar.c:109
 msgid "Secondary forward stepper"
 msgstr "Flecha de adelanto secundaria"
 
-#: ../gtk/gtknotebook.c:832
+#: ../gtk/gtknotebook.c:833
 msgid ""
 "Display a second forward arrow button on the opposite end of the tab area"
 msgstr ""
 "Mostrar una segunda flecha de avance en el extremo opuesto del área de "
 "pestañas"
 
-#: ../gtk/gtknotebook.c:846 ../gtk/gtkscrollbar.c:86
+#: ../gtk/gtknotebook.c:847 ../gtk/gtkscrollbar.c:88
 msgid "Backward stepper"
 msgstr "Flecha de retroceso"
 
-#: ../gtk/gtknotebook.c:847 ../gtk/gtkscrollbar.c:87
+#: ../gtk/gtknotebook.c:848 ../gtk/gtkscrollbar.c:89
 msgid "Display the standard backward arrow button"
 msgstr "Mostrar el botón estándar de flecha de retroceso"
 
-#: ../gtk/gtknotebook.c:861 ../gtk/gtkscrollbar.c:93
+#: ../gtk/gtknotebook.c:862 ../gtk/gtkscrollbar.c:95
 msgid "Forward stepper"
 msgstr "Flecha de avance"
 
-#: ../gtk/gtknotebook.c:862 ../gtk/gtkscrollbar.c:94
+#: ../gtk/gtknotebook.c:863 ../gtk/gtkscrollbar.c:96
 msgid "Display the standard forward arrow button"
 msgstr "Mostrar el botón estándar de flecha de avance"
 
-#: ../gtk/gtknotebook.c:876
+#: ../gtk/gtknotebook.c:877
 msgid "Tab overlap"
 msgstr "Solapamiento de la pestaña"
 
-#: ../gtk/gtknotebook.c:877
+#: ../gtk/gtknotebook.c:878
 msgid "Size of tab overlap area"
 msgstr "Tamaño del área de solapamiento de la pestaña"
 
-#: ../gtk/gtknotebook.c:892
+#: ../gtk/gtknotebook.c:893
 msgid "Tab curvature"
 msgstr "Curvatura de la pestaña"
 
-#: ../gtk/gtknotebook.c:893
+#: ../gtk/gtknotebook.c:894
 msgid "Size of tab curvature"
 msgstr "Tamaño de la curvatura de la pestaña"
 
-#: ../gtk/gtknotebook.c:909
+#: ../gtk/gtknotebook.c:910
 msgid "Arrow spacing"
 msgstr "Espaciado de las flechas"
 
-#: ../gtk/gtknotebook.c:910
+#: ../gtk/gtknotebook.c:911
 msgid "Scroll arrow spacing"
 msgstr "Espaciado del desplazamiento de las flechas"
 
-#: ../gtk/gtknotebook.c:926
+#: ../gtk/gtknotebook.c:927
 msgid "Initial gap"
 msgstr "Espacio inicial"
 
-#: ../gtk/gtknotebook.c:927
+#: ../gtk/gtknotebook.c:928
 msgid "Initial gap before the first tab"
 msgstr "Espacio inicial antes de la primera pestaña"
 
@@ -4547,6 +4547,16 @@ msgstr "Aceptando trabajos"
 msgid "TRUE if this printer is accepting new jobs"
 msgstr "TRUE si esta impresora está aceptando trabajos nuevos"
 
+#: ../gtk/gtkprinteroption.c:105
+#| msgid "Minimum Value"
+msgid "Option Value"
+msgstr "Valor de la opción"
+
+#: ../gtk/gtkprinteroption.c:106
+#| msgid "Name of the printer"
+msgid "Value of the option"
+msgstr "Valor de la opción"
+
 #: ../gtk/gtkprinteroptionwidget.c:122
 msgid "Source option"
 msgstr "Opciones de origen"
@@ -4774,36 +4784,36 @@ msgstr ""
 "TRUE si los combos de configuración de página están empotrados en "
 "GtkPrintUnixDialog"
 
-#: ../gtk/gtkprogressbar.c:158
+#: ../gtk/gtkprogressbar.c:160
 msgid "Fraction"
 msgstr "Fracción"
 
-#: ../gtk/gtkprogressbar.c:159
+#: ../gtk/gtkprogressbar.c:161
 msgid "The fraction of total work that has been completed"
 msgstr "La fracción del trabajo total que ha sido completado"
 
-#: ../gtk/gtkprogressbar.c:166
+#: ../gtk/gtkprogressbar.c:168
 msgid "Pulse Step"
 msgstr "Paso del pulso"
 
-#: ../gtk/gtkprogressbar.c:167
+#: ../gtk/gtkprogressbar.c:169
 msgid "The fraction of total progress to move the bouncing block when pulsed"
 msgstr ""
 "La fracción del progreso total para mover el bloque rebotador cuando se pulsa"
 
-#: ../gtk/gtkprogressbar.c:175
+#: ../gtk/gtkprogressbar.c:177
 msgid "Text to be displayed in the progress bar"
 msgstr "Texto que se mostrará en la barra de progreso"
 
-#: ../gtk/gtkprogressbar.c:192
+#: ../gtk/gtkprogressbar.c:194
 msgid "Show text"
 msgstr "Mostrar texto"
 
-#: ../gtk/gtkprogressbar.c:193
+#: ../gtk/gtkprogressbar.c:195
 msgid "Whether the progress is shown as text."
 msgstr "Indica si el progreso se muestra como texto."
 
-#: ../gtk/gtkprogressbar.c:215
+#: ../gtk/gtkprogressbar.c:217
 msgid ""
 "The preferred place to ellipsize the string, if the progress bar does not "
 "have enough room to display the entire string, if at all."
@@ -4811,51 +4821,51 @@ msgstr ""
 "El lugar preferido para la elipsis de la cadena, si la barra de progreso no "
 "tiene suficiente espacio para mostrar la cadena completa."
 
-#: ../gtk/gtkprogressbar.c:222
+#: ../gtk/gtkprogressbar.c:224
 msgid "X spacing"
 msgstr "Espaciado X"
 
-#: ../gtk/gtkprogressbar.c:223
+#: ../gtk/gtkprogressbar.c:225
 msgid "Extra spacing applied to the width of a progress bar."
 msgstr "Espacio extra aplicado a la anchura de una barra de progreso."
 
-#: ../gtk/gtkprogressbar.c:228
+#: ../gtk/gtkprogressbar.c:230
 msgid "Y spacing"
 msgstr "Espaciado Y"
 
-#: ../gtk/gtkprogressbar.c:229
+#: ../gtk/gtkprogressbar.c:231
 msgid "Extra spacing applied to the height of a progress bar."
 msgstr "Espacio adicional aplicado a la altura >de una barra de progreso."
 
-#: ../gtk/gtkprogressbar.c:242
+#: ../gtk/gtkprogressbar.c:244
 msgid "Minimum horizontal bar width"
 msgstr "Anchura mínima de la barra horizontal"
 
-#: ../gtk/gtkprogressbar.c:243
+#: ../gtk/gtkprogressbar.c:245
 msgid "The minimum horizontal width of the progress bar"
 msgstr "La anchura mínima horizontal de la barra de progreso"
 
-#: ../gtk/gtkprogressbar.c:255
+#: ../gtk/gtkprogressbar.c:257
 msgid "Minimum horizontal bar height"
 msgstr "Altura mínima de la barra horizontal"
 
-#: ../gtk/gtkprogressbar.c:256
+#: ../gtk/gtkprogressbar.c:258
 msgid "Minimum horizontal height of the progress bar"
 msgstr "La altura mínima horizontal de la barra de progreso"
 
-#: ../gtk/gtkprogressbar.c:268
+#: ../gtk/gtkprogressbar.c:270
 msgid "Minimum vertical bar width"
 msgstr "Anchura mínima horizontal de la barra"
 
-#: ../gtk/gtkprogressbar.c:269
+#: ../gtk/gtkprogressbar.c:271
 msgid "The minimum vertical width of the progress bar"
 msgstr "La anchura mínima vertical de la barra de progreso"
 
-#: ../gtk/gtkprogressbar.c:281
+#: ../gtk/gtkprogressbar.c:283
 msgid "Minimum vertical bar height"
 msgstr "Altura mínima vertical de la barra"
 
-#: ../gtk/gtkprogressbar.c:282
+#: ../gtk/gtkprogressbar.c:284
 msgid "The minimum vertical height of the progress bar"
 msgstr "La altura mínima vertical de la barra de progreso"
 
@@ -4871,8 +4881,8 @@ msgstr ""
 "El valor devuelto por gtk_radio_action_get_current_value() cuando esta "
 "acción es la acción actual de su grupo."
 
-#: ../gtk/gtkradioaction.c:135 ../gtk/gtkradiobutton.c:163
-#: ../gtk/gtkradiomenuitem.c:423 ../gtk/gtkradiotoolbutton.c:85
+#: ../gtk/gtkradioaction.c:135 ../gtk/gtkradiobutton.c:164
+#: ../gtk/gtkradiomenuitem.c:427 ../gtk/gtkradiotoolbutton.c:85
 msgid "Group"
 msgstr "Grupo"
 
@@ -4892,11 +4902,11 @@ msgstr ""
 "La propiedad del valor del miembro actualmente activo del grupo al que esta "
 "acción pertenece."
 
-#: ../gtk/gtkradiobutton.c:164
+#: ../gtk/gtkradiobutton.c:165
 msgid "The radio button whose group this widget belongs to."
 msgstr "El botón de radio a cuyo grupo pertenece este widget."
 
-#: ../gtk/gtkradiomenuitem.c:424
+#: ../gtk/gtkradiomenuitem.c:428
 msgid "The radio menu item whose group this widget belongs to."
 msgstr "El elemento del menú de radio a cuyo grupo pertenece este widget."
 
@@ -4904,21 +4914,21 @@ msgstr "El elemento del menú de radio a cuyo grupo pertenece este widget."
 msgid "The radio tool button whose group this button belongs to."
 msgstr "La herramienta de botón de radio a cuyo grupo pertenece este widget."
 
-#: ../gtk/gtkrange.c:418
+#: ../gtk/gtkrange.c:419
 msgid "The GtkAdjustment that contains the current value of this range object"
 msgstr "El GtkAdjustment que contiene el valor actual de este objeto de rango"
 
-#: ../gtk/gtkrange.c:426
+#: ../gtk/gtkrange.c:427
 msgid "Invert direction slider moves to increase range value"
 msgstr ""
 "Invierte la dirección en que se mueve el deslizador para incrementar el "
 "valor del rango"
 
-#: ../gtk/gtkrange.c:433
+#: ../gtk/gtkrange.c:434
 msgid "Lower stepper sensitivity"
 msgstr "Sensibilidad de la flecha inferior"
 
-#: ../gtk/gtkrange.c:434
+#: ../gtk/gtkrange.c:435
 msgid ""
 "The sensitivity policy for the stepper that points to the adjustment's lower "
 "side"
@@ -4926,11 +4936,11 @@ msgstr ""
 "La directiva de sensibilidad del botón de desplazamiento que apunta al lado "
 "más bajo del ajuste"
 
-#: ../gtk/gtkrange.c:442
+#: ../gtk/gtkrange.c:443
 msgid "Upper stepper sensitivity"
 msgstr "Sensibilidad de la flecha superior"
 
-#: ../gtk/gtkrange.c:443
+#: ../gtk/gtkrange.c:444
 msgid ""
 "The sensitivity policy for the stepper that points to the adjustment's upper "
 "side"
@@ -4938,99 +4948,99 @@ msgstr ""
 "La directiva de sensibilidad del botón de flecha que apunta al lado más alto "
 "del ajuste"
 
-#: ../gtk/gtkrange.c:460
+#: ../gtk/gtkrange.c:461
 msgid "Show Fill Level"
 msgstr "Mostrar nivel de relleno"
 
-#: ../gtk/gtkrange.c:461
+#: ../gtk/gtkrange.c:462
 msgid "Whether to display a fill level indicator graphics on trough."
 msgstr ""
 "Indica si se debe mostrar el indicador de nivel de llenado en los gráficos "
 "mientras se llena."
 
-#: ../gtk/gtkrange.c:477
+#: ../gtk/gtkrange.c:478
 msgid "Restrict to Fill Level"
 msgstr "Restringir al nivel de llenado"
 
-#: ../gtk/gtkrange.c:478
+#: ../gtk/gtkrange.c:479
 msgid "Whether to restrict the upper boundary to the fill level."
 msgstr "Indica si se debe restringir el borde superior al nivel de llenado."
 
-#: ../gtk/gtkrange.c:493
+#: ../gtk/gtkrange.c:494
 msgid "Fill Level"
 msgstr "Nivel de llenado"
 
-#: ../gtk/gtkrange.c:494
+#: ../gtk/gtkrange.c:495
 msgid "The fill level."
 msgstr "El nivel de llenado."
 
-#: ../gtk/gtkrange.c:511
+#: ../gtk/gtkrange.c:512
 msgid "Round Digits"
 msgstr "Redondear dígitos"
 
-#: ../gtk/gtkrange.c:512
+#: ../gtk/gtkrange.c:513
 msgid "The number of digits to round the value to."
 msgstr "El número de dígitos al que redondear el valor."
 
-#: ../gtk/gtkrange.c:520 ../gtk/gtkswitch.c:836
+#: ../gtk/gtkrange.c:521 ../gtk/gtkswitch.c:818
 msgid "Slider Width"
 msgstr "Anchura del deslizador"
 
-#: ../gtk/gtkrange.c:521
+#: ../gtk/gtkrange.c:522
 msgid "Width of scrollbar or scale thumb"
 msgstr "Anchura de la barra de desplazamiento o escala de miniatura"
 
-#: ../gtk/gtkrange.c:528
+#: ../gtk/gtkrange.c:529
 msgid "Trough Border"
 msgstr "Borde del carril"
 
-#: ../gtk/gtkrange.c:529
+#: ../gtk/gtkrange.c:530
 msgid "Spacing between thumb/steppers and outer trough bevel"
 msgstr ""
 "Espaciado entre la marcador/flechas de desplazamiento y el bisel exterior "
 "del carril"
 
-#: ../gtk/gtkrange.c:536
+#: ../gtk/gtkrange.c:537
 msgid "Stepper Size"
 msgstr "Tamaño del botón de flecha de desplazamiento"
 
-#: ../gtk/gtkrange.c:537
+#: ../gtk/gtkrange.c:538
 msgid "Length of step buttons at ends"
 msgstr "Longitud de los botones de flecha en los extremos"
 
-#: ../gtk/gtkrange.c:550
+#: ../gtk/gtkrange.c:551
 msgid "Stepper Spacing"
 msgstr "Espaciado de los botones de flecha de desplazamiento"
 
-#: ../gtk/gtkrange.c:551
+#: ../gtk/gtkrange.c:552
 msgid "Spacing between step buttons and thumb"
 msgstr "Espaciado entre los botones de flecha de desplazamiento y el marcador"
 
-#: ../gtk/gtkrange.c:558
+#: ../gtk/gtkrange.c:559
 msgid "Arrow X Displacement"
 msgstr "Desplazamiento de la flecha X"
 
-#: ../gtk/gtkrange.c:559
+#: ../gtk/gtkrange.c:560
 msgid ""
 "How far in the x direction to move the arrow when the button is depressed"
 msgstr ""
 "Distancia en la dirección «X» para mover la flecha cuando se suelta el botón "
 
-#: ../gtk/gtkrange.c:566
+#: ../gtk/gtkrange.c:567
 msgid "Arrow Y Displacement"
 msgstr "Desplazamiento de la flecha Y"
 
-#: ../gtk/gtkrange.c:567
+#: ../gtk/gtkrange.c:568
 msgid ""
 "How far in the y direction to move the arrow when the button is depressed"
 msgstr ""
 "Distancia en la dirección «Y» para mover la flecha cuando se suelta el botón "
 
-#: ../gtk/gtkrange.c:583
+#: ../gtk/gtkrange.c:584
 msgid "Trough Under Steppers"
 msgstr "Carril bajo las flechas de deslizamiento"
 
-#: ../gtk/gtkrange.c:584
+#: ../gtk/gtkrange.c:585
 msgid ""
 "Whether to draw trough for full length of range or exclude the steppers and "
 "spacing"
@@ -5038,11 +5048,11 @@ msgstr ""
 "Indica si se debe dibujar para la longitud completa del rango o excluir las "
 "flechas de desplazamiento y el espaciado"
 
-#: ../gtk/gtkrange.c:597
+#: ../gtk/gtkrange.c:598
 msgid "Arrow scaling"
 msgstr "Escalado de flechas"
 
-#: ../gtk/gtkrange.c:598
+#: ../gtk/gtkrange.c:599
 msgid "Arrow scaling with regard to scroll button size"
 msgstr ""
 "Escalado de flechas en consideración con el tamaño del botón de "
@@ -5138,63 +5148,63 @@ msgstr "La ruta completa al archivo a usar para almacenar y leer la lista"
 msgid "The size of the recently used resources list"
 msgstr "El tamaño de la lista de recursos usados recientemente"
 
-#: ../gtk/gtkscalebutton.c:218
+#: ../gtk/gtkscalebutton.c:219
 msgid "The value of the scale"
 msgstr "El valor de la escala"
 
-#: ../gtk/gtkscalebutton.c:228
+#: ../gtk/gtkscalebutton.c:229
 msgid "The icon size"
 msgstr "El tamaño del icono"
 
-#: ../gtk/gtkscalebutton.c:237
+#: ../gtk/gtkscalebutton.c:238
 msgid ""
 "The GtkAdjustment that contains the current value of this scale button object"
 msgstr ""
 "El GtkAdjustment que contiene el valor actual de este objeto de botón de "
 "escala"
 
-#: ../gtk/gtkscalebutton.c:265
+#: ../gtk/gtkscalebutton.c:266
 msgid "Icons"
 msgstr "Iconos"
 
-#: ../gtk/gtkscalebutton.c:266
+#: ../gtk/gtkscalebutton.c:267
 msgid "List of icon names"
 msgstr "Lista de nombres de iconos"
 
-#: ../gtk/gtkscale.c:253
+#: ../gtk/gtkscale.c:255
 msgid "The number of decimal places that are displayed in the value"
 msgstr "El número de lugares decimales que se mostrarán en el valor"
 
-#: ../gtk/gtkscale.c:262
+#: ../gtk/gtkscale.c:264
 msgid "Draw Value"
 msgstr "Dibujar valor"
 
-#: ../gtk/gtkscale.c:263
+#: ../gtk/gtkscale.c:265
 msgid "Whether the current value is displayed as a string next to the slider"
 msgstr ""
 "Indica si el valor actual se muestra como una cadena contigua al deslizador"
 
-#: ../gtk/gtkscale.c:270
+#: ../gtk/gtkscale.c:272
 msgid "Value Position"
 msgstr "Posición del valor"
 
-#: ../gtk/gtkscale.c:271
+#: ../gtk/gtkscale.c:273
 msgid "The position in which the current value is displayed"
 msgstr "La posición en que se muestra el valor actual"
 
-#: ../gtk/gtkscale.c:278
+#: ../gtk/gtkscale.c:280
 msgid "Slider Length"
 msgstr "Longitud del deslizador"
 
-#: ../gtk/gtkscale.c:279
+#: ../gtk/gtkscale.c:281
 msgid "Length of scale's slider"
 msgstr "Longitud de la escala del deslizador"
 
-#: ../gtk/gtkscale.c:287
+#: ../gtk/gtkscale.c:289
 msgid "Value spacing"
 msgstr "Espaciado del valor"
 
-#: ../gtk/gtkscale.c:288
+#: ../gtk/gtkscale.c:290
 msgid "Space between value text and the slider/trough area"
 msgstr "Espacio entre el texto del valor y el área del deslizador/carril"
 
@@ -5232,31 +5242,31 @@ msgstr "Cómo se debería determinar el tamaño del contenido"
 msgid "Vertical Scrollable Policy"
 msgstr "Directiva de desplazamiento vertical"
 
-#: ../gtk/gtkscrollbar.c:70
+#: ../gtk/gtkscrollbar.c:72
 msgid "Minimum Slider Length"
 msgstr "Longitud mínima del deslizador"
 
-#: ../gtk/gtkscrollbar.c:71
+#: ../gtk/gtkscrollbar.c:73
 msgid "Minimum length of scrollbar slider"
 msgstr "Longitud mínima de deslizador de la barras de desplazamiento"
 
-#: ../gtk/gtkscrollbar.c:79
+#: ../gtk/gtkscrollbar.c:81
 msgid "Fixed slider size"
 msgstr "Tamaño del deslizador fijo"
 
-#: ../gtk/gtkscrollbar.c:80
+#: ../gtk/gtkscrollbar.c:82
 msgid "Don't change slider size, just lock it to the minimum length"
 msgstr ""
 "No cambiar el tamaño del deslizador, sólo bloquearlo a la longitud mínima"
 
-#: ../gtk/gtkscrollbar.c:101
+#: ../gtk/gtkscrollbar.c:103
 msgid ""
 "Display a second backward arrow button on the opposite end of the scrollbar"
 msgstr ""
 "Muestra un segundo botón con una flecha de retroceso en el extremo opuesto "
 "de la barra de desplazamiento"
 
-#: ../gtk/gtkscrollbar.c:108
+#: ../gtk/gtkscrollbar.c:110
 msgid ""
 "Display a second forward arrow button on the opposite end of the scrollbar"
 msgstr ""
@@ -5371,11 +5381,11 @@ msgstr "Dibujar"
 msgid "Whether the separator is drawn, or just blank"
 msgstr "Indica si el separador se dibuja, o sólo se deja en blanco"
 
-#: ../gtk/gtksettings.c:322
+#: ../gtk/gtksettings.c:321
 msgid "Double Click Time"
 msgstr "Tiempo del doble pulsación"
 
-#: ../gtk/gtksettings.c:323
+#: ../gtk/gtksettings.c:322
 msgid ""
 "Maximum time allowed between two clicks for them to be considered a double "
 "click (in milliseconds)"
@@ -5383,11 +5393,11 @@ msgstr ""
 "Tiempo máximo permitido entre dos pulsaciones para ser considerados como una "
 "pulsación doble (en milisegundos)"
 
-#: ../gtk/gtksettings.c:330
+#: ../gtk/gtksettings.c:329
 msgid "Double Click Distance"
 msgstr "Distancia de la pulsación doble"
 
-#: ../gtk/gtksettings.c:331
+#: ../gtk/gtksettings.c:330
 msgid ""
 "Maximum distance allowed between two clicks for them to be considered a "
 "double click (in pixels)"
@@ -5395,35 +5405,35 @@ msgstr ""
 "Distancia máxima permitida entre dos pulsaciones para ser considerados como "
 "una pulsación doble (en píxeles)"
 
-#: ../gtk/gtksettings.c:347
+#: ../gtk/gtksettings.c:346
 msgid "Cursor Blink"
 msgstr "Parpadeo del cursor"
 
-#: ../gtk/gtksettings.c:348
+#: ../gtk/gtksettings.c:347
 msgid "Whether the cursor should blink"
 msgstr "Indica si el cursor debe parpadear"
 
-#: ../gtk/gtksettings.c:355
+#: ../gtk/gtksettings.c:354
 msgid "Cursor Blink Time"
 msgstr "Tiempo de parpadeo del cursor"
 
-#: ../gtk/gtksettings.c:356
+#: ../gtk/gtksettings.c:355
 msgid "Length of the cursor blink cycle, in milliseconds"
 msgstr "Longitud del ciclo de parpadeo del cursor, en milisegundos"
 
-#: ../gtk/gtksettings.c:375
+#: ../gtk/gtksettings.c:374
 msgid "Cursor Blink Timeout"
 msgstr "Intervalo de parpadeo del cursor"
 
-#: ../gtk/gtksettings.c:376
+#: ../gtk/gtksettings.c:375
 msgid "Time after which the cursor stops blinking, in seconds"
 msgstr "Tiempo tras el que el cursor para de parpadear, en segundos"
 
-#: ../gtk/gtksettings.c:383
+#: ../gtk/gtksettings.c:382
 msgid "Split Cursor"
 msgstr "Dividir cursor"
 
-#: ../gtk/gtksettings.c:384
+#: ../gtk/gtksettings.c:383
 msgid ""
 "Whether two cursors should be displayed for mixed left-to-right and right-to-"
 "left text"
@@ -5431,161 +5441,161 @@ msgstr ""
 "Indica si deben mostrarse dos cursores para el texto mezclado de izquierda-a-"
 "derecha y derecha-a-izquierda"
 
-#: ../gtk/gtksettings.c:391
+#: ../gtk/gtksettings.c:390
 msgid "Theme Name"
 msgstr "Nombre del tema"
 
-#: ../gtk/gtksettings.c:392
+#: ../gtk/gtksettings.c:391
 msgid "Name of theme to load"
 msgstr "Nombre del tema que cargar"
 
-#: ../gtk/gtksettings.c:400
+#: ../gtk/gtksettings.c:399
 msgid "Icon Theme Name"
 msgstr "Nombre del tema de iconos"
 
-#: ../gtk/gtksettings.c:401
+#: ../gtk/gtksettings.c:400
 msgid "Name of icon theme to use"
 msgstr "Nombre del tema de iconos que utilizar"
 
-#: ../gtk/gtksettings.c:409
+#: ../gtk/gtksettings.c:408
 msgid "Fallback Icon Theme Name"
 msgstr "Nombre del tema de iconos de resguardo"
 
-#: ../gtk/gtksettings.c:410
+#: ../gtk/gtksettings.c:409
 msgid "Name of a icon theme to fall back to"
 msgstr "Nombre del tema de iconos que utilizar como resguardo"
 
-#: ../gtk/gtksettings.c:418
+#: ../gtk/gtksettings.c:417
 msgid "Key Theme Name"
 msgstr "Nombre del tema de teclas"
 
-#: ../gtk/gtksettings.c:419
+#: ../gtk/gtksettings.c:418
 msgid "Name of key theme to load"
 msgstr "Nombre del tema de teclas que cargar"
 
-#: ../gtk/gtksettings.c:427
+#: ../gtk/gtksettings.c:426
 msgid "Menu bar accelerator"
 msgstr "Acelerador de la barra de menús"
 
-#: ../gtk/gtksettings.c:428
+#: ../gtk/gtksettings.c:427
 msgid "Keybinding to activate the menu bar"
 msgstr "Combinación de teclas para activar la barra de menús"
 
-#: ../gtk/gtksettings.c:436
+#: ../gtk/gtksettings.c:435
 msgid "Drag threshold"
 msgstr "Umbral del arrastre"
 
-#: ../gtk/gtksettings.c:437
+#: ../gtk/gtksettings.c:436
 msgid "Number of pixels the cursor can move before dragging"
 msgstr ""
 "Número de píxeles que el cursor puede mover antes de iniciar el arrastre"
 
-#: ../gtk/gtksettings.c:445
+#: ../gtk/gtksettings.c:444
 msgid "Font Name"
 msgstr "Nombre de la tipografía"
 
-#: ../gtk/gtksettings.c:446
+#: ../gtk/gtksettings.c:445
 msgid "Name of default font to use"
 msgstr "Nombre de la tipografía predeterminada a utilizar"
 
-#: ../gtk/gtksettings.c:468
+#: ../gtk/gtksettings.c:467
 msgid "Icon Sizes"
 msgstr "Tamaños de los iconos"
 
-#: ../gtk/gtksettings.c:469
+#: ../gtk/gtksettings.c:468
 msgid "List of icon sizes (gtk-menu=16,16:gtk-button=20,20..."
 msgstr "Lista de tamaños de los iconos (gtk-menu=16,16:gtk-button=20,20..."
 
-#: ../gtk/gtksettings.c:477
+#: ../gtk/gtksettings.c:476
 msgid "GTK Modules"
 msgstr "Módulos GTK"
 
-#: ../gtk/gtksettings.c:478
+#: ../gtk/gtksettings.c:477
 msgid "List of currently active GTK modules"
 msgstr "Lista de módulos GTK activos actualmente"
 
-#: ../gtk/gtksettings.c:486
+#: ../gtk/gtksettings.c:485
 msgid "Xft Antialias"
 msgstr "Suavizado Xft"
 
-#: ../gtk/gtksettings.c:487
+#: ../gtk/gtksettings.c:486
 msgid "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default"
 msgstr ""
 "Indica si se deben suavizar los bordes de las tipografías Xft; 0=no,1=sí, "
 "-1=predeterminado"
 
-#: ../gtk/gtksettings.c:496
+#: ../gtk/gtksettings.c:495
 msgid "Xft Hinting"
 msgstr "Sugerencias Xft"
 
-#: ../gtk/gtksettings.c:497
+#: ../gtk/gtksettings.c:496
 msgid "Whether to hint Xft fonts; 0=no, 1=yes, -1=default"
 msgstr ""
 "Indica si se deben usar las sugerencias de las tipografías Xft; 0=no, 1 =sí, "
 "-1=predeterminado"
 
-#: ../gtk/gtksettings.c:506
+#: ../gtk/gtksettings.c:505
 msgid "Xft Hint Style"
 msgstr "Estilo de sugerencias Xft"
 
-#: ../gtk/gtksettings.c:507
+#: ../gtk/gtksettings.c:506
 msgid ""
 "What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull"
 msgstr "Qué grado de sugerencias usar: ninguno, ligero, medio o completo"
 
-#: ../gtk/gtksettings.c:516
+#: ../gtk/gtksettings.c:515
 msgid "Xft RGBA"
 msgstr "Xft RGBA"
 
-#: ../gtk/gtksettings.c:517
+#: ../gtk/gtksettings.c:516
 msgid "Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr"
 msgstr "Tipo de suavizado de subpíxel: ninguno, rgb, bgr, vrgb, vbgr"
 
-#: ../gtk/gtksettings.c:526
+#: ../gtk/gtksettings.c:525
 msgid "Xft DPI"
 msgstr "PPP Xft (DPI)"
 
-#: ../gtk/gtksettings.c:527
+#: ../gtk/gtksettings.c:526
 msgid "Resolution for Xft, in 1024 * dots/inch. -1 to use default value"
 msgstr ""
 "Resolución para Xft, en 1024 * puntos/pulgada. -1 para usar el valor "
 "predeterminado"
 
-#: ../gtk/gtksettings.c:536
+#: ../gtk/gtksettings.c:535
 msgid "Cursor theme name"
 msgstr "Nombre del tema del cursor"
 
-#: ../gtk/gtksettings.c:537
+#: ../gtk/gtksettings.c:536
 msgid "Name of the cursor theme to use, or NULL to use the default theme"
 msgstr ""
 "Nombre del tema de cursor que utilizar, o NULL para usar el tema "
 "predeterminado"
 
-#: ../gtk/gtksettings.c:545
+#: ../gtk/gtksettings.c:544
 msgid "Cursor theme size"
 msgstr "Tamaño del tema del cursor"
 
-#: ../gtk/gtksettings.c:546
+#: ../gtk/gtksettings.c:545
 msgid "Size to use for cursors, or 0 to use the default size"
 msgstr ""
 "Tamaño que se va a usar para los cursores, o 0 para usar el tamaño "
 "predeterminado"
 
-#: ../gtk/gtksettings.c:555
+#: ../gtk/gtksettings.c:554
 msgid "Alternative button order"
 msgstr "Orden de los botones alternativo"
 
-#: ../gtk/gtksettings.c:556
+#: ../gtk/gtksettings.c:555
 msgid "Whether buttons in dialogs should use the alternative button order"
 msgstr ""
 "Indica si los botones en los diálogos deben usar un orden de botones "
 "alternativo"
 
-#: ../gtk/gtksettings.c:573
+#: ../gtk/gtksettings.c:572
 msgid "Alternative sort indicator direction"
 msgstr "Dirección alternativa del indicador de ordenamiento"
 
-#: ../gtk/gtksettings.c:574
+#: ../gtk/gtksettings.c:573
 msgid ""
 "Whether the direction of the sort indicators in list and tree views is "
 "inverted compared to the default (where down means ascending)"
@@ -5594,11 +5604,11 @@ msgstr ""
 "vista de árbol está invertida en comparación con la predeterminada (donde "
 "abajo significa ascendente)"
 
-#: ../gtk/gtksettings.c:582
+#: ../gtk/gtksettings.c:581
 msgid "Show the 'Input Methods' menu"
 msgstr "Mostrar el menú de métodos de entrada"
 
-#: ../gtk/gtksettings.c:583
+#: ../gtk/gtksettings.c:582
 msgid ""
 "Whether the context menus of entries and text views should offer to change "
 "the input method"
@@ -5606,11 +5616,11 @@ msgstr ""
 "Indica si los menús de contexto y las vistas de texto deben ofrecer cambiar "
 "el método de entrada"
 
-#: ../gtk/gtksettings.c:591
+#: ../gtk/gtksettings.c:590
 msgid "Show the 'Insert Unicode Control Character' menu"
 msgstr "Mostrar el menú «Insertar carácter de control Unicode»"
 
-#: ../gtk/gtksettings.c:592
+#: ../gtk/gtksettings.c:591
 msgid ""
 "Whether the context menus of entries and text views should offer to insert "
 "control characters"
@@ -5618,254 +5628,254 @@ msgstr ""
 "Indica si los menús de contexto de las estradas y las vistas de texto deben "
 "ofrecer insertar caracteres de control"
 
-#: ../gtk/gtksettings.c:600
+#: ../gtk/gtksettings.c:599
 msgid "Start timeout"
 msgstr "Tiempo de expiración de inicio"
 
-#: ../gtk/gtksettings.c:601
+#: ../gtk/gtksettings.c:600
 msgid "Starting value for timeouts, when button is pressed"
 msgstr "Valor de inicio para las expiraciones, cuando se pulsa el botón"
 
-#: ../gtk/gtksettings.c:610
+#: ../gtk/gtksettings.c:609
 msgid "Repeat timeout"
 msgstr "Expiración de repetición"
 
-#: ../gtk/gtksettings.c:611
+#: ../gtk/gtksettings.c:610
 msgid "Repeat value for timeouts, when button is pressed"
 msgstr "Valor de repetición para expiraciones, cuando el botón se pulsa"
 
-#: ../gtk/gtksettings.c:620
+#: ../gtk/gtksettings.c:619
 msgid "Expand timeout"
 msgstr "Expiración del expansor"
 
-#: ../gtk/gtksettings.c:621
+#: ../gtk/gtksettings.c:620
 msgid "Expand value for timeouts, when a widget is expanding a new region"
 msgstr ""
 "Valor de expansión para las expiraciones, cuando un widget está expandiendo "
 "una región nueva"
 
-#: ../gtk/gtksettings.c:656
+#: ../gtk/gtksettings.c:655
 msgid "Color scheme"
 msgstr "Esquema de color"
 
-#: ../gtk/gtksettings.c:657
+#: ../gtk/gtksettings.c:656
 msgid "A palette of named colors for use in themes"
 msgstr "Una paleta de colores con nombre para usar en los temas"
 
-#: ../gtk/gtksettings.c:666
+#: ../gtk/gtksettings.c:665
 msgid "Enable Animations"
 msgstr "Activar animaciones"
 
-#: ../gtk/gtksettings.c:667
+#: ../gtk/gtksettings.c:666
 msgid "Whether to enable toolkit-wide animations."
 msgstr "Indica si se activan las animaciones para todo el toolkit."
 
-#: ../gtk/gtksettings.c:685
+#: ../gtk/gtksettings.c:684
 msgid "Enable Touchscreen Mode"
 msgstr "Activar modo pantalla táctil"
 
-#: ../gtk/gtksettings.c:686
+#: ../gtk/gtksettings.c:685
 msgid "When TRUE, there are no motion notify events delivered on this screen"
 msgstr ""
 "Cuando esté a TRUE, no hay eventos de notificación de movimiento entregados "
 "en esta pantalla"
 
-#: ../gtk/gtksettings.c:703
+#: ../gtk/gtksettings.c:702
 msgid "Tooltip timeout"
 msgstr "Tiempo de expiración de la sugerencia"
 
-#: ../gtk/gtksettings.c:704
+#: ../gtk/gtksettings.c:703
 msgid "Timeout before tooltip is shown"
 msgstr "Tiempo de expiración antes de que se muestre la sugerencia"
 
-#: ../gtk/gtksettings.c:729
+#: ../gtk/gtksettings.c:728
 msgid "Tooltip browse timeout"
 msgstr "Tiempo de las sugerencias de navegación"
 
-#: ../gtk/gtksettings.c:730
+#: ../gtk/gtksettings.c:729
 msgid "Timeout before tooltip is shown when browse mode is enabled"
 msgstr ""
 "Tiempo de expiración antes de que se muestre la sugerencia cuando el modo de "
 "navegación está activado"
 
-#: ../gtk/gtksettings.c:751
+#: ../gtk/gtksettings.c:750
 msgid "Tooltip browse mode timeout"
 msgstr "Tiempo de las sugerencias en modo navegación"
 
-#: ../gtk/gtksettings.c:752
+#: ../gtk/gtksettings.c:751
 msgid "Timeout after which browse mode is disabled"
 msgstr ""
 "Tiempo de expiración después del cual se desactiva el modo de navegación"
 
-#: ../gtk/gtksettings.c:771
+#: ../gtk/gtksettings.c:770
 msgid "Keynav Cursor Only"
 msgstr "Sólo cursor para navegar con teclas"
 
-#: ../gtk/gtksettings.c:772
+#: ../gtk/gtksettings.c:771
 msgid "When TRUE, there are only cursor keys available to navigate widgets"
 msgstr ""
 "Cuando sea TRUE, sólo hay teclas de cursos disponibles para navegar por los "
 "widgets"
 
-#: ../gtk/gtksettings.c:789
+#: ../gtk/gtksettings.c:788
 msgid "Keynav Wrap Around"
 msgstr "Saltar al navegar con el teclado"
 
-#: ../gtk/gtksettings.c:790
+#: ../gtk/gtksettings.c:789
 msgid "Whether to wrap around when keyboard-navigating widgets"
 msgstr ""
 "Indica si se ha de saltar alrededor cuando se navegue por los widgets con el "
 "teclado"
 
-#: ../gtk/gtksettings.c:810
+#: ../gtk/gtksettings.c:809
 msgid "Error Bell"
 msgstr "Campana de error"
 
-#: ../gtk/gtksettings.c:811
+#: ../gtk/gtksettings.c:810
 msgid "When TRUE, keyboard navigation and other errors will cause a beep"
 msgstr ""
 "Cuando sea TRUE, la navegación con el teclado y otros errores causarán un bip"
 
-#: ../gtk/gtksettings.c:828
+#: ../gtk/gtksettings.c:827
 msgid "Color Hash"
 msgstr "Hash del color"
 
-#: ../gtk/gtksettings.c:829
+#: ../gtk/gtksettings.c:828
 msgid "A hash table representation of the color scheme."
 msgstr "Una representación en tabla hash del esquema de color."
 
-#: ../gtk/gtksettings.c:837
+#: ../gtk/gtksettings.c:836
 msgid "Default file chooser backend"
 msgstr "Backend predeterminado del selector de archivos"
 
-#: ../gtk/gtksettings.c:838
+#: ../gtk/gtksettings.c:837
 msgid "Name of the GtkFileChooser backend to use by default"
 msgstr "Nombre del backend predeterminado del GtkFileChooser"
 
-#: ../gtk/gtksettings.c:855
+#: ../gtk/gtksettings.c:854
 msgid "Default print backend"
 msgstr "Backend predeterminado de impresión"
 
-#: ../gtk/gtksettings.c:856
+#: ../gtk/gtksettings.c:855
 msgid "List of the GtkPrintBackend backends to use by default"
 msgstr "Lista de backends GtkPrintBackend para usar por omisión"
 
-#: ../gtk/gtksettings.c:879
+#: ../gtk/gtksettings.c:878
 msgid "Default command to run when displaying a print preview"
 msgstr ""
 "Comando predeterminado que ejecutar al mostrar una vista previa de impresión"
 
-#: ../gtk/gtksettings.c:880
+#: ../gtk/gtksettings.c:879
 msgid "Command to run when displaying a print preview"
 msgstr "Comando que ejecutar al mostrar una vista previa de impresión"
 
-#: ../gtk/gtksettings.c:896
+#: ../gtk/gtksettings.c:895
 msgid "Enable Mnemonics"
 msgstr "Activar mnemónicos"
 
-#: ../gtk/gtksettings.c:897
+#: ../gtk/gtksettings.c:896
 msgid "Whether labels should have mnemonics"
 msgstr "Indica si las etiquetas deben tener mnemónicos"
 
-#: ../gtk/gtksettings.c:913
+#: ../gtk/gtksettings.c:912
 msgid "Enable Accelerators"
 msgstr "Activar aceleradores"
 
-#: ../gtk/gtksettings.c:914
+#: ../gtk/gtksettings.c:913
 msgid "Whether menu items should have accelerators"
 msgstr "Indica si los elementos del menú deben tener aceleradores"
 
-#: ../gtk/gtksettings.c:931
+#: ../gtk/gtksettings.c:930
 msgid "Recent Files Limit"
 msgstr "Límite de archivos recientes"
 
-#: ../gtk/gtksettings.c:932
+#: ../gtk/gtksettings.c:931
 msgid "Number of recently used files"
 msgstr "Número de archivos usados recientemente"
 
-#: ../gtk/gtksettings.c:950
+#: ../gtk/gtksettings.c:949
 msgid "Default IM module"
 msgstr "Módulo de método de entrada predeterminado"
 
-#: ../gtk/gtksettings.c:951
+#: ../gtk/gtksettings.c:950
 msgid "Which IM module should be used by default"
 msgstr "Qué módulo de método de entrada se debe usar de forma predeterminada"
 
-#: ../gtk/gtksettings.c:969
+#: ../gtk/gtksettings.c:968
 msgid "Recent Files Max Age"
 msgstr "Antigüedad máxima de los archivos recientes"
 
-#: ../gtk/gtksettings.c:970
+#: ../gtk/gtksettings.c:969
 msgid "Maximum age of recently used files, in days"
 msgstr "Máxima antigüedad para los archivos recientemente usados, en días"
 
-#: ../gtk/gtksettings.c:979
+#: ../gtk/gtksettings.c:978
 msgid "Fontconfig configuration timestamp"
 msgstr "Configuración de la marca de tiempo de fontconfig"
 
-#: ../gtk/gtksettings.c:980
+#: ../gtk/gtksettings.c:979
 msgid "Timestamp of current fontconfig configuration"
 msgstr "Marca de tiempo de la configuración actual de fontconfig"
 
-#: ../gtk/gtksettings.c:1002
+#: ../gtk/gtksettings.c:1001
 msgid "Sound Theme Name"
 msgstr "Nombre del tema de sonido"
 
-#: ../gtk/gtksettings.c:1003
+#: ../gtk/gtksettings.c:1002
 msgid "XDG sound theme name"
 msgstr "Nombre del tema de sonido XDG"
 
 #. Translators: this means sounds that are played as feedback to user input
-#: ../gtk/gtksettings.c:1025
+#: ../gtk/gtksettings.c:1024
 msgid "Audible Input Feedback"
 msgstr "Contexto de entrada audible"
 
-#: ../gtk/gtksettings.c:1026
+#: ../gtk/gtksettings.c:1025
 msgid "Whether to play event sounds as feedback to user input"
 msgstr ""
 "Indica si se deben reproducir eventos como respuesta a las entradas del "
 "usuario"
 
-#: ../gtk/gtksettings.c:1047
+#: ../gtk/gtksettings.c:1046
 msgid "Enable Event Sounds"
 msgstr "Activar eventos de sonido"
 
-#: ../gtk/gtksettings.c:1048
+#: ../gtk/gtksettings.c:1047
 msgid "Whether to play any event sounds at all"
 msgstr "Indica si se debe reproducir cualquier evento de sonido"
 
-#: ../gtk/gtksettings.c:1063
+#: ../gtk/gtksettings.c:1062
 msgid "Enable Tooltips"
 msgstr "Activar sugerencias"
 
-#: ../gtk/gtksettings.c:1064
+#: ../gtk/gtksettings.c:1063
 msgid "Whether tooltips should be shown on widgets"
 msgstr "Indica si se deben mostrar las sugerencias en los widgets"
 
-#: ../gtk/gtksettings.c:1077
+#: ../gtk/gtksettings.c:1076
 msgid "Toolbar style"
 msgstr "Estilo de la barra de herramientas"
 
-#: ../gtk/gtksettings.c:1078
+#: ../gtk/gtksettings.c:1077
 msgid ""
 "Whether default toolbars have text only, text and icons, icons only, etc."
 msgstr ""
 "Indica si las barras de herramientas predeterminadas tienen sólo texto, "
 "texto e iconos, sólo iconos, etc."
 
-#: ../gtk/gtksettings.c:1092
+#: ../gtk/gtksettings.c:1091
 msgid "Toolbar Icon Size"
 msgstr "Tamaño del icono de la barra de herramientas"
 
-#: ../gtk/gtksettings.c:1093
+#: ../gtk/gtksettings.c:1092
 msgid "The size of icons in default toolbars."
 msgstr "El tamaño de los iconos el las barras de herramientas."
 
-#: ../gtk/gtksettings.c:1110
+#: ../gtk/gtksettings.c:1109
 msgid "Auto Mnemonics"
 msgstr "Mnemónicos automáticos"
 
-#: ../gtk/gtksettings.c:1111
+#: ../gtk/gtksettings.c:1110
 msgid ""
 "Whether mnemonics should be automatically shown and hidden when the user "
 "presses the mnemonic activator."
@@ -5873,63 +5883,63 @@ msgstr ""
 "Indica si se deben mostrar y ocultar automáticamente los mnemónicos cuando "
 "el usuario pulsa el activador de mnemónicos."
 
-#: ../gtk/gtksettings.c:1136
+#: ../gtk/gtksettings.c:1135
 msgid "Application prefers a dark theme"
 msgstr "La aplicación prefiere un tema oscuro"
 
-#: ../gtk/gtksettings.c:1137
+#: ../gtk/gtksettings.c:1136
 msgid "Whether the application prefers to have a dark theme."
 msgstr "Indica si la aplicación prefiere un tema oscuro."
 
-#: ../gtk/gtksettings.c:1152
+#: ../gtk/gtksettings.c:1151
 msgid "Show button images"
 msgstr "Mostrar imágenes en los botones"
 
-#: ../gtk/gtksettings.c:1153
+#: ../gtk/gtksettings.c:1152
 msgid "Whether images should be shown on buttons"
 msgstr "Indica si se deben mostrar las imágenes en los botones"
 
-#: ../gtk/gtksettings.c:1161 ../gtk/gtksettings.c:1255
+#: ../gtk/gtksettings.c:1160 ../gtk/gtksettings.c:1254
 msgid "Select on focus"
 msgstr "Seleccionar al enfocar"
 
-#: ../gtk/gtksettings.c:1162
+#: ../gtk/gtksettings.c:1161
 msgid "Whether to select the contents of an entry when it is focused"
 msgstr ""
 "Indica si se deben seleccionar los contenidos de una entrada cuando obtiene "
 "el foco"
 
-#: ../gtk/gtksettings.c:1179
+#: ../gtk/gtksettings.c:1178
 msgid "Password Hint Timeout"
 msgstr "Tiempo de expiración del hint de contraseña"
 
-#: ../gtk/gtksettings.c:1180
+#: ../gtk/gtksettings.c:1179
 msgid "How long to show the last input character in hidden entries"
 msgstr ""
 "Indica durante cuánto tiempo mostrar el último carácter en las entradas "
 "ocultas"
 
-#: ../gtk/gtksettings.c:1189
+#: ../gtk/gtksettings.c:1188
 msgid "Show menu images"
 msgstr "Mostrar imágenes del menú"
 
-#: ../gtk/gtksettings.c:1190
+#: ../gtk/gtksettings.c:1189
 msgid "Whether images should be shown in menus"
 msgstr "Indica si deben mostrarse o no las imágenes en los menús"
 
-#: ../gtk/gtksettings.c:1198
+#: ../gtk/gtksettings.c:1197
 msgid "Delay before drop down menus appear"
 msgstr "Retardo antes de que aparezcan los menús desplegables"
 
-#: ../gtk/gtksettings.c:1199
+#: ../gtk/gtksettings.c:1198
 msgid "Delay before the submenus of a menu bar appear"
 msgstr "Retardo antes de que aparezcan los submenús de una barra de menús"
 
-#: ../gtk/gtksettings.c:1216
+#: ../gtk/gtksettings.c:1215
 msgid "Scrolled Window Placement"
 msgstr "Colocación de la ventana donde se ha desplazado"
 
-#: ../gtk/gtksettings.c:1217
+#: ../gtk/gtksettings.c:1216
 msgid ""
 "Where the contents of scrolled windows are located with respect to the "
 "scrollbars, if not overridden by the scrolled window's own placement."
@@ -5938,33 +5948,33 @@ msgstr ""
 "respecto a las barras de desplazamiento, si no toma precedencia por el "
 "propio emplazamiento de la ventana donde se hizo scroll."
 
-#: ../gtk/gtksettings.c:1226
+#: ../gtk/gtksettings.c:1225
 msgid "Can change accelerators"
 msgstr "Puede cambiar aceleradores"
 
-#: ../gtk/gtksettings.c:1227
+#: ../gtk/gtksettings.c:1226
 msgid ""
 "Whether menu accelerators can be changed by pressing a key over the menu item"
 msgstr ""
 "Indica si los aceleradores del menú pueden cambiarse pulsando una tecla "
 "sobre el elemento del menú"
 
-#: ../gtk/gtksettings.c:1235
+#: ../gtk/gtksettings.c:1234
 msgid "Delay before submenus appear"
 msgstr "Retraso antes de que aparezcan los submenús"
 
-#: ../gtk/gtksettings.c:1236
+#: ../gtk/gtksettings.c:1235
 msgid ""
 "Minimum time the pointer must stay over a menu item before the submenu appear"
 msgstr ""
 "Tiempo mínimo en que el puntero debe permanecer sobre un elemento de menú "
 "antes de que el submenú aparezca"
 
-#: ../gtk/gtksettings.c:1245
+#: ../gtk/gtksettings.c:1244
 msgid "Delay before hiding a submenu"
 msgstr "Retraso antes de ocultar un submenú"
 
-#: ../gtk/gtksettings.c:1246
+#: ../gtk/gtksettings.c:1245
 msgid ""
 "The time before hiding a submenu when the pointer is moving towards the "
 "submenu"
@@ -5972,33 +5982,33 @@ msgstr ""
 "El tiempo antes de ocultar un submenú cuando el puntero se este moviendo "
 "hacia el submenú"
 
-#: ../gtk/gtksettings.c:1256
+#: ../gtk/gtksettings.c:1255
 msgid "Whether to select the contents of a selectable label when it is focused"
 msgstr ""
 "Indica si se debe seleccionar el contenido de una etiqueta seleccionable "
 "cuando obtiene el foco"
 
-#: ../gtk/gtksettings.c:1264
+#: ../gtk/gtksettings.c:1263
 msgid "Custom palette"
 msgstr "Paleta personalizada"
 
-#: ../gtk/gtksettings.c:1265
+#: ../gtk/gtksettings.c:1264
 msgid "Palette to use in the color selector"
 msgstr "Paleta que se usará en el selector de colores"
 
-#: ../gtk/gtksettings.c:1273
+#: ../gtk/gtksettings.c:1272
 msgid "IM Preedit style"
 msgstr "Estilo de preedición del ME"
 
-#: ../gtk/gtksettings.c:1274
+#: ../gtk/gtksettings.c:1273
 msgid "How to draw the input method preedit string"
 msgstr "Cómo dibujar la cadena del método de entrada de preedición"
 
-#: ../gtk/gtksettings.c:1283
+#: ../gtk/gtksettings.c:1282
 msgid "IM Status style"
 msgstr "Estilo del estado ME"
 
-#: ../gtk/gtksettings.c:1284
+#: ../gtk/gtksettings.c:1283
 msgid "How to draw the input method statusbar"
 msgstr "Cómo dibujar el método de entrada de la barra de estado"
 
@@ -6025,15 +6035,15 @@ msgstr ""
 "Si es TRUE, los widgets no mapeados se ignoran al determinar el tamaño del "
 "grupo"
 
-#: ../gtk/gtkspinbutton.c:329
+#: ../gtk/gtkspinbutton.c:331
 msgid "Climb Rate"
 msgstr "Tasa de subida"
 
-#: ../gtk/gtkspinbutton.c:349
+#: ../gtk/gtkspinbutton.c:351
 msgid "Snap to Ticks"
 msgstr "Ajustarse a los ticks"
 
-#: ../gtk/gtkspinbutton.c:350
+#: ../gtk/gtkspinbutton.c:352
 msgid ""
 "Whether erroneous values are automatically changed to a spin button's "
 "nearest step increment"
@@ -6041,47 +6051,47 @@ msgstr ""
 "Indica si los valores erróneos se cambian por el valor más cercano de un "
 "botón incrementable"
 
-#: ../gtk/gtkspinbutton.c:357
+#: ../gtk/gtkspinbutton.c:359
 msgid "Numeric"
 msgstr "Numérico"
 
-#: ../gtk/gtkspinbutton.c:358
+#: ../gtk/gtkspinbutton.c:360
 msgid "Whether non-numeric characters should be ignored"
 msgstr "Indica si se ignoran los caracteres no numéricos"
 
-#: ../gtk/gtkspinbutton.c:365
+#: ../gtk/gtkspinbutton.c:367
 msgid "Wrap"
 msgstr "Volver al inicio"
 
-#: ../gtk/gtkspinbutton.c:366
+#: ../gtk/gtkspinbutton.c:368
 msgid "Whether a spin button should wrap upon reaching its limits"
 msgstr ""
 "Indica si un botón giratorio debe volver al inicio al alcanzar sus límites"
 
-#: ../gtk/gtkspinbutton.c:373
+#: ../gtk/gtkspinbutton.c:375
 msgid "Update Policy"
 msgstr "Norma de actualización"
 
-#: ../gtk/gtkspinbutton.c:374
+#: ../gtk/gtkspinbutton.c:376
 msgid ""
 "Whether the spin button should update always, or only when the value is legal"
 msgstr ""
 "Indica si el botón incrementable se actualiza siempre, o sólo cuando el "
 "valor es legal"
 
-#: ../gtk/gtkspinbutton.c:383
+#: ../gtk/gtkspinbutton.c:385
 msgid "Reads the current value, or sets a new value"
 msgstr "Lee el valor actual, o establece un valor nuevo"
 
-#: ../gtk/gtkspinbutton.c:392
+#: ../gtk/gtkspinbutton.c:394
 msgid "Style of bevel around the spin button"
 msgstr "Estilo de bisel alrededor del botón giratorio"
 
-#: ../gtk/gtkspinner.c:119
+#: ../gtk/gtkspinner.c:116
 msgid "Whether the spinner is active"
 msgstr "Indica si el marcador incrementable está activo"
 
-#: ../gtk/gtkstatusbar.c:182
+#: ../gtk/gtkstatusbar.c:183
 msgid "Style of bevel around the statusbar text"
 msgstr "Estilo del bisel alrededor del texto de la barra de estado"
 
@@ -6105,7 +6115,7 @@ msgstr "Indica si el icono de estado está empotrado"
 msgid "The orientation of the tray"
 msgstr "La orientación de la bandeja"
 
-#: ../gtk/gtkstatusicon.c:370 ../gtk/gtkwidget.c:1073
+#: ../gtk/gtkstatusicon.c:370 ../gtk/gtkwidget.c:1089
 msgid "Has tooltip"
 msgstr "Tiene consejo"
 
@@ -6113,15 +6123,15 @@ msgstr "Tiene consejo"
 msgid "Whether this tray icon has a tooltip"
 msgstr "Indica si el icono de la bandeja tiene un consejo"
 
-#: ../gtk/gtkstatusicon.c:396 ../gtk/gtkwidget.c:1094
+#: ../gtk/gtkstatusicon.c:396 ../gtk/gtkwidget.c:1110
 msgid "Tooltip Text"
 msgstr "Texto de la sugerencia"
 
-#: ../gtk/gtkstatusicon.c:397 ../gtk/gtkwidget.c:1095 ../gtk/gtkwidget.c:1116
+#: ../gtk/gtkstatusicon.c:397 ../gtk/gtkwidget.c:1111 ../gtk/gtkwidget.c:1132
 msgid "The contents of the tooltip for this widget"
 msgstr "El contenido de las sugerencias para este widget"
 
-#: ../gtk/gtkstatusicon.c:420 ../gtk/gtkwidget.c:1115
+#: ../gtk/gtkstatusicon.c:420 ../gtk/gtkwidget.c:1131
 msgid "Tooltip markup"
 msgstr "Marcado de sugerencias"
 
@@ -6141,23 +6151,23 @@ msgstr "Estilo del contexto"
 msgid "GtkStyleContext to get style from"
 msgstr "GtkStyleContext del que obtener el estilo"
 
-#: ../gtk/gtkstylecontext.c:545
+#: ../gtk/gtkstylecontext.c:432
 msgid "The associated GdkScreen"
 msgstr "La GdkScreen asociada"
 
-#: ../gtk/gtkstylecontext.c:551
+#: ../gtk/gtkstylecontext.c:438
 msgid "Direction"
 msgstr "Dirección"
 
-#: ../gtk/gtkstylecontext.c:552 ../gtk/gtktexttag.c:269
+#: ../gtk/gtkstylecontext.c:439 ../gtk/gtktexttag.c:269
 msgid "Text direction"
 msgstr "Dirección del texto"
 
-#: ../gtk/gtkswitch.c:802
+#: ../gtk/gtkswitch.c:785
 msgid "Whether the switch is on or off"
 msgstr "Indica si el interruptor está encendido o apagado"
 
-#: ../gtk/gtkswitch.c:837
+#: ../gtk/gtkswitch.c:819
 msgid "The minimum width of the handle"
 msgstr "La anchura mínima del tirador"
 
@@ -6381,7 +6391,7 @@ msgstr ""
 "tema, etc. por lo cual se recomienda. Pango define previamente algunas "
 "escalas tales como PANGO_SCALE_X_LARGE"
 
-#: ../gtk/gtktexttag.c:387 ../gtk/gtktextview.c:705
+#: ../gtk/gtktexttag.c:387 ../gtk/gtktextview.c:704
 msgid "Left, right, or center justification"
 msgstr "Justificación a la izquierda, derecha o centro"
 
@@ -6398,7 +6408,7 @@ msgstr ""
 msgid "Left margin"
 msgstr "Margen izquierdo"
 
-#: ../gtk/gtktexttag.c:414 ../gtk/gtktextview.c:714
+#: ../gtk/gtktexttag.c:414 ../gtk/gtktextview.c:713
 msgid "Width of the left margin in pixels"
 msgstr "Anchura del margen izquierdo en píxeles"
 
@@ -6406,15 +6416,15 @@ msgstr "Anchura del margen izquierdo en píxeles"
 msgid "Right margin"
 msgstr "Margen derecho"
 
-#: ../gtk/gtktexttag.c:424 ../gtk/gtktextview.c:724
+#: ../gtk/gtktexttag.c:424 ../gtk/gtktextview.c:723
 msgid "Width of the right margin in pixels"
 msgstr "Anchura del margen derecho en píxeles"
 
-#: ../gtk/gtktexttag.c:434 ../gtk/gtktextview.c:733
+#: ../gtk/gtktexttag.c:434 ../gtk/gtktextview.c:732
 msgid "Indent"
 msgstr "Sangrar"
 
-#: ../gtk/gtktexttag.c:435 ../gtk/gtktextview.c:734
+#: ../gtk/gtktexttag.c:435 ../gtk/gtktextview.c:733
 msgid "Amount to indent the paragraph, in pixels"
 msgstr "Número de píxeles para el sangrado del párrafo"
 
@@ -6430,7 +6440,7 @@ msgstr ""
 msgid "Pixels above lines"
 msgstr "Píxeles encima de las líneas"
 
-#: ../gtk/gtktexttag.c:456 ../gtk/gtktextview.c:658
+#: ../gtk/gtktexttag.c:456 ../gtk/gtktextview.c:657
 msgid "Pixels of blank space above paragraphs"
 msgstr "Píxeles de espacio en blanco encima de los párrafos"
 
@@ -6438,7 +6448,7 @@ msgstr "Píxeles de espacio en blanco encima de los párrafos"
 msgid "Pixels below lines"
 msgstr "Píxeles debajo de las líneas"
 
-#: ../gtk/gtktexttag.c:466 ../gtk/gtktextview.c:668
+#: ../gtk/gtktexttag.c:466 ../gtk/gtktextview.c:667
 msgid "Pixels of blank space below paragraphs"
 msgstr "Píxeles de espacio en blanco debajo de los párrafos"
 
@@ -6446,22 +6456,22 @@ msgstr "Píxeles de espacio en blanco debajo de los párrafos"
 msgid "Pixels inside wrap"
 msgstr "Píxeles dentro del ajuste"
 
-#: ../gtk/gtktexttag.c:476 ../gtk/gtktextview.c:678
+#: ../gtk/gtktexttag.c:476 ../gtk/gtktextview.c:677
 msgid "Pixels of blank space between wrapped lines in a paragraph"
 msgstr "Píxeles de espacio en blanco entre las líneas ajustadas en un párrafo"
 
-#: ../gtk/gtktexttag.c:503 ../gtk/gtktextview.c:696
+#: ../gtk/gtktexttag.c:503 ../gtk/gtktextview.c:695
 msgid ""
 "Whether to wrap lines never, at word boundaries, or at character boundaries"
 msgstr ""
 "Indica si deben ajustarse las líneas, a los límites de las palabras, a los "
 "límites de los caracteres, o nunca"
 
-#: ../gtk/gtktexttag.c:512 ../gtk/gtktextview.c:743
+#: ../gtk/gtktexttag.c:512 ../gtk/gtktextview.c:742
 msgid "Tabs"
 msgstr "Pestañas"
 
-#: ../gtk/gtktexttag.c:513 ../gtk/gtktextview.c:744
+#: ../gtk/gtktexttag.c:513 ../gtk/gtktextview.c:743
 msgid "Custom tabs for this text"
 msgstr "Pestañas personalizadas para este texto"
 
@@ -6599,67 +6609,67 @@ msgstr "Fondo de parágrafo establecido"
 msgid "Whether this tag affects the paragraph background color"
 msgstr "Indica si esta etiqueta afecta el color de fondo del parágrafo"
 
-#: ../gtk/gtktextview.c:657
+#: ../gtk/gtktextview.c:656
 msgid "Pixels Above Lines"
 msgstr "Píxeles sobre las líneas"
 
-#: ../gtk/gtktextview.c:667
+#: ../gtk/gtktextview.c:666
 msgid "Pixels Below Lines"
 msgstr "Píxeles por debajo de las líneas"
 
-#: ../gtk/gtktextview.c:677
+#: ../gtk/gtktextview.c:676
 msgid "Pixels Inside Wrap"
 msgstr "Píxeles dentro del ajuste"
 
-#: ../gtk/gtktextview.c:695
+#: ../gtk/gtktextview.c:694
 msgid "Wrap Mode"
 msgstr "Modo de ajuste"
 
-#: ../gtk/gtktextview.c:713
+#: ../gtk/gtktextview.c:712
 msgid "Left Margin"
 msgstr "Margen izquierdo"
 
-#: ../gtk/gtktextview.c:723
+#: ../gtk/gtktextview.c:722
 msgid "Right Margin"
 msgstr "Margen derecho"
 
-#: ../gtk/gtktextview.c:751
+#: ../gtk/gtktextview.c:750
 msgid "Cursor Visible"
 msgstr "Cursor visible"
 
-#: ../gtk/gtktextview.c:752
+#: ../gtk/gtktextview.c:751
 msgid "If the insertion cursor is shown"
 msgstr "Si se muestra el cursor de inserción"
 
-#: ../gtk/gtktextview.c:759
+#: ../gtk/gtktextview.c:758
 msgid "Buffer"
 msgstr "Búfer"
 
-#: ../gtk/gtktextview.c:760
+#: ../gtk/gtktextview.c:759
 msgid "The buffer which is displayed"
 msgstr "El búfer que se está mostrando"
 
-#: ../gtk/gtktextview.c:768
+#: ../gtk/gtktextview.c:767
 msgid "Whether entered text overwrites existing contents"
 msgstr "Indica si el texto introducido sobreescribe el existente"
 
-#: ../gtk/gtktextview.c:775
+#: ../gtk/gtktextview.c:774
 msgid "Accepts tab"
 msgstr "Acepta tabuladores"
 
-#: ../gtk/gtktextview.c:776
+#: ../gtk/gtktextview.c:775
 msgid "Whether Tab will result in a tab character being entered"
 msgstr "Indica si Tab resultará en la introducción de un carácter tabulador"
 
-#: ../gtk/gtktextview.c:811
+#: ../gtk/gtktextview.c:810
 msgid "Error underline color"
 msgstr "Color de subrayado de errores"
 
-#: ../gtk/gtktextview.c:812
+#: ../gtk/gtktextview.c:811
 msgid "Color with which to draw error-indication underlines"
 msgstr "Color con el que dibujar el subrayado de indicación de errores"
 
-#: ../gtk/gtkthemingengine.c:258
+#: ../gtk/gtkthemingengine.c:259
 msgid "Theming engine name"
 msgstr "Nombre del motor de temas"
 
@@ -6677,101 +6687,101 @@ msgstr ""
 msgid "Whether the toggle action should be active"
 msgstr "Indica si la acción de conmutación debe estar activa"
 
-#: ../gtk/gtktogglebutton.c:178 ../gtk/gtktoggletoolbutton.c:128
+#: ../gtk/gtktogglebutton.c:179 ../gtk/gtktoggletoolbutton.c:128
 msgid "If the toggle button should be pressed in"
 msgstr "Si el botón de conmutación debe estar pulsado"
 
-#: ../gtk/gtktogglebutton.c:186
+#: ../gtk/gtktogglebutton.c:187
 msgid "If the toggle button is in an \"in between\" state"
 msgstr "Si el botón de conmutación está en un estado «intermedio»"
 
-#: ../gtk/gtktogglebutton.c:193
+#: ../gtk/gtktogglebutton.c:194
 msgid "Draw Indicator"
 msgstr "Indicador de dibujo"
 
-#: ../gtk/gtktogglebutton.c:194
+#: ../gtk/gtktogglebutton.c:195
 msgid "If the toggle part of the button is displayed"
 msgstr "Si se muestra la parte de conmutación del botón"
 
-#: ../gtk/gtktoolbar.c:492 ../gtk/gtktoolpalette.c:1036
+#: ../gtk/gtktoolbar.c:499 ../gtk/gtktoolpalette.c:1038
 msgid "Toolbar Style"
 msgstr "Estilo de la barra de herramientas"
 
-#: ../gtk/gtktoolbar.c:493
+#: ../gtk/gtktoolbar.c:500
 msgid "How to draw the toolbar"
 msgstr "Cómo dibujar la barra de herramientas"
 
-#: ../gtk/gtktoolbar.c:500
+#: ../gtk/gtktoolbar.c:507
 msgid "Show Arrow"
 msgstr "Mostrar flecha"
 
-#: ../gtk/gtktoolbar.c:501
+#: ../gtk/gtktoolbar.c:508
 msgid "If an arrow should be shown if the toolbar doesn't fit"
 msgstr ""
 "Indica si debe mostrarse una flecha si no cabe la barra de herramientas"
 
-#: ../gtk/gtktoolbar.c:522
+#: ../gtk/gtktoolbar.c:529
 msgid "Size of icons in this toolbar"
 msgstr "Tamaño de los iconos en esta barra de herramientas"
 
-#: ../gtk/gtktoolbar.c:537 ../gtk/gtktoolpalette.c:1022
+#: ../gtk/gtktoolbar.c:544 ../gtk/gtktoolpalette.c:1024
 msgid "Icon size set"
 msgstr "Tamaño del icono establecido"
 
-#: ../gtk/gtktoolbar.c:538 ../gtk/gtktoolpalette.c:1023
+#: ../gtk/gtktoolbar.c:545 ../gtk/gtktoolpalette.c:1025
 msgid "Whether the icon-size property has been set"
 msgstr "Indica si se ha establecido la propiedad de tamaño del icono"
 
-#: ../gtk/gtktoolbar.c:547
+#: ../gtk/gtktoolbar.c:554
 msgid "Whether the item should receive extra space when the toolbar grows"
 msgstr ""
 "Indica si el elemento debe recibir espacio extra cuando la barra crezca"
 
-#: ../gtk/gtktoolbar.c:555 ../gtk/gtktoolitemgroup.c:1645
+#: ../gtk/gtktoolbar.c:562 ../gtk/gtktoolitemgroup.c:1646
 msgid "Whether the item should be the same size as other homogeneous items"
 msgstr ""
 "Indica si el elemento debe ser del mismo tamaño que otros elementos "
 "homogéneos"
 
-#: ../gtk/gtktoolbar.c:562
+#: ../gtk/gtktoolbar.c:569
 msgid "Spacer size"
 msgstr "Tamaño del espaciador"
 
-#: ../gtk/gtktoolbar.c:563
+#: ../gtk/gtktoolbar.c:570
 msgid "Size of spacers"
 msgstr "Tamaño de los espaciadores"
 
-#: ../gtk/gtktoolbar.c:572
+#: ../gtk/gtktoolbar.c:579
 msgid "Amount of border space between the toolbar shadow and the buttons"
 msgstr ""
 "Número de espacio del borde entre la sombra de la barra de herramientas y "
 "los botones"
 
-#: ../gtk/gtktoolbar.c:580
+#: ../gtk/gtktoolbar.c:587
 msgid "Maximum child expand"
 msgstr "Expansión de hijos máxima"
 
-#: ../gtk/gtktoolbar.c:581
+#: ../gtk/gtktoolbar.c:588
 msgid "Maximum amount of space an expandable item will be given"
 msgstr "Cantidad máxima de espacio que se le dará a un elemento expandible"
 
-#: ../gtk/gtktoolbar.c:589
+#: ../gtk/gtktoolbar.c:596
 msgid "Space style"
 msgstr "Estilo del espacio"
 
-#: ../gtk/gtktoolbar.c:590
+#: ../gtk/gtktoolbar.c:597
 msgid "Whether spacers are vertical lines or just blank"
 msgstr "Indica si los espaciadores son líneas verticales o sólo blancos"
 
-#: ../gtk/gtktoolbar.c:597
+#: ../gtk/gtktoolbar.c:604
 msgid "Button relief"
 msgstr "Borde del botón"
 
-#: ../gtk/gtktoolbar.c:598
+#: ../gtk/gtktoolbar.c:605
 msgid "Type of bevel around toolbar buttons"
 msgstr "Tipo de bisel alrededor de los botones de la barra de herramientas"
 
-#: ../gtk/gtktoolbar.c:605
+#: ../gtk/gtktoolbar.c:612
 msgid "Style of bevel around the toolbar"
 msgstr "Estilo del bisel alrededor de la barra de herramientas"
 
@@ -6833,85 +6843,85 @@ msgstr ""
 "Cuando está a TRUE, los botones de la barra de herramientas muestran texto "
 "en modo GTK_TOOLBAR_BOTH_HORIZ"
 
-#: ../gtk/gtktoolitemgroup.c:1592
+#: ../gtk/gtktoolitemgroup.c:1593
 msgid "The human-readable title of this item group"
 msgstr "El título leíble por humanos de este grupo de elementos"
 
-#: ../gtk/gtktoolitemgroup.c:1599
+#: ../gtk/gtktoolitemgroup.c:1600
 msgid "A widget to display in place of the usual label"
 msgstr "Un widget para mostrar en lugar de la usual etiqueta"
 
-#: ../gtk/gtktoolitemgroup.c:1605
+#: ../gtk/gtktoolitemgroup.c:1606
 msgid "Collapsed"
 msgstr "Contraído"
 
-#: ../gtk/gtktoolitemgroup.c:1606
+#: ../gtk/gtktoolitemgroup.c:1607
 msgid "Whether the group has been collapsed and items are hidden"
 msgstr "Indica si el grupo se ha colapsado y sus elementos están ocultos"
 
-#: ../gtk/gtktoolitemgroup.c:1612
+#: ../gtk/gtktoolitemgroup.c:1613
 msgid "ellipsize"
 msgstr "elipsis"
 
-#: ../gtk/gtktoolitemgroup.c:1613
+#: ../gtk/gtktoolitemgroup.c:1614
 msgid "Ellipsize for item group headers"
 msgstr "Elipsis para las cabeceras de grupo de los elementos"
 
-#: ../gtk/gtktoolitemgroup.c:1619
+#: ../gtk/gtktoolitemgroup.c:1620
 msgid "Header Relief"
 msgstr "Relieve de la cabecera"
 
-#: ../gtk/gtktoolitemgroup.c:1620
+#: ../gtk/gtktoolitemgroup.c:1621
 msgid "Relief of the group header button"
 msgstr "Relieve del botón de cabecera del grupo"
 
-#: ../gtk/gtktoolitemgroup.c:1635
+#: ../gtk/gtktoolitemgroup.c:1636
 msgid "Header Spacing"
 msgstr "Espaciado de la cabecera"
 
-#: ../gtk/gtktoolitemgroup.c:1636
+#: ../gtk/gtktoolitemgroup.c:1637
 msgid "Spacing between expander arrow and caption"
 msgstr "Espaciado entre la flecha del expansor y la descripción"
 
-#: ../gtk/gtktoolitemgroup.c:1652
+#: ../gtk/gtktoolitemgroup.c:1653
 msgid "Whether the item should receive extra space when the group grows"
 msgstr "Indica si el elemento debe recibir espacio extra cuando el grupo crece"
 
-#: ../gtk/gtktoolitemgroup.c:1659
+#: ../gtk/gtktoolitemgroup.c:1660
 msgid "Whether the item should fill the available space"
 msgstr "Indica si el elemento debería llenar todo el espacio disponible"
 
-#: ../gtk/gtktoolitemgroup.c:1665
+#: ../gtk/gtktoolitemgroup.c:1666
 msgid "New Row"
 msgstr "Fila nueva"
 
-#: ../gtk/gtktoolitemgroup.c:1666
+#: ../gtk/gtktoolitemgroup.c:1667
 msgid "Whether the item should start a new row"
 msgstr "Indica si el elemento debería iniciar una fila nueva"
 
-#: ../gtk/gtktoolitemgroup.c:1673
+#: ../gtk/gtktoolitemgroup.c:1674
 msgid "Position of the item within this group"
 msgstr "Posición del elemento en su grupo"
 
-#: ../gtk/gtktoolpalette.c:1007
+#: ../gtk/gtktoolpalette.c:1009
 msgid "Size of icons in this tool palette"
 msgstr "Tamaño de los iconos en esta paleta de herramientas"
 
-#: ../gtk/gtktoolpalette.c:1037
+#: ../gtk/gtktoolpalette.c:1039
 msgid "Style of items in the tool palette"
 msgstr "Estilo de los elementos en la paleta de herramientas"
 
-#: ../gtk/gtktoolpalette.c:1053
+#: ../gtk/gtktoolpalette.c:1055
 msgid "Exclusive"
 msgstr "Exclusivo"
 
-#: ../gtk/gtktoolpalette.c:1054
+#: ../gtk/gtktoolpalette.c:1056
 msgid "Whether the item group should be the only expanded at a given time"
 msgstr ""
 "Indica si el elemento del grupo deben ser el único expandido en un "
 "determinado momento"
 
-#: ../gtk/gtktoolpalette.c:1069
+#: ../gtk/gtktoolpalette.c:1071
 msgid ""
 "Whether the item group should receive extra space when the palette grows"
 msgstr ""
@@ -6998,222 +7008,222 @@ msgstr "Modelo TreeModelSort"
 msgid "The model for the TreeModelSort to sort"
 msgstr "El modelo para el TreeModelSort a ordenar"
 
-#: ../gtk/gtktreeview.c:984
+#: ../gtk/gtktreeview.c:985
 msgid "TreeView Model"
 msgstr "Modelo TreeView"
 
-#: ../gtk/gtktreeview.c:985
+#: ../gtk/gtktreeview.c:986
 msgid "The model for the tree view"
 msgstr "El modelo para la vista de árbol"
 
-#: ../gtk/gtktreeview.c:997
+#: ../gtk/gtktreeview.c:998
 msgid "Headers Visible"
 msgstr "Cabeceras visibles"
 
-#: ../gtk/gtktreeview.c:998
+#: ../gtk/gtktreeview.c:999
 msgid "Show the column header buttons"
 msgstr "Mostrar botones en los encabezados de columna"
 
-#: ../gtk/gtktreeview.c:1005
+#: ../gtk/gtktreeview.c:1006
 msgid "Headers Clickable"
 msgstr "Cabeceras pulsables"
 
-#: ../gtk/gtktreeview.c:1006
+#: ../gtk/gtktreeview.c:1007
 msgid "Column headers respond to click events"
 msgstr "Las cabeceras de las columnas responden a los eventos de pulsación"
 
-#: ../gtk/gtktreeview.c:1013
+#: ../gtk/gtktreeview.c:1014
 msgid "Expander Column"
 msgstr "Columna expansora"
 
-#: ../gtk/gtktreeview.c:1014
+#: ../gtk/gtktreeview.c:1015
 msgid "Set the column for the expander column"
 msgstr "Define la columna para la columna expansora"
 
-#: ../gtk/gtktreeview.c:1029
+#: ../gtk/gtktreeview.c:1030
 msgid "Rules Hint"
 msgstr "Sugerencia de las reglas"
 
-#: ../gtk/gtktreeview.c:1030
+#: ../gtk/gtktreeview.c:1031
 msgid "Set a hint to the theme engine to draw rows in alternating colors"
 msgstr ""
 "Define un consejo para el motor del tema para dibujar las filas con colores "
 "alternativos"
 
-#: ../gtk/gtktreeview.c:1037
+#: ../gtk/gtktreeview.c:1038
 msgid "Enable Search"
 msgstr "Habilitar búsqueda"
 
-#: ../gtk/gtktreeview.c:1038
+#: ../gtk/gtktreeview.c:1039
 msgid "View allows user to search through columns interactively"
 msgstr ""
 "La vista permite a los usuarios buscar en forma interactiva a través de las "
 "columnas"
 
-#: ../gtk/gtktreeview.c:1045
+#: ../gtk/gtktreeview.c:1046
 msgid "Search Column"
 msgstr "Columna de búsqueda"
 
-#: ../gtk/gtktreeview.c:1046
+#: ../gtk/gtktreeview.c:1047
 msgid "Model column to search through during interactive search"
 msgstr ""
 "Columna modelo para buscar a través de ella en una búsqueda interactiva"
 
-#: ../gtk/gtktreeview.c:1066
+#: ../gtk/gtktreeview.c:1067
 msgid "Fixed Height Mode"
 msgstr "Modo de altura fija"
 
-#: ../gtk/gtktreeview.c:1067
+#: ../gtk/gtktreeview.c:1068
 msgid "Speeds up GtkTreeView by assuming that all rows have the same height"
 msgstr ""
 "Acelera GtkTreeView asumiendo que todas las filas tienen la misma altura"
 
-#: ../gtk/gtktreeview.c:1087
+#: ../gtk/gtktreeview.c:1088
 msgid "Hover Selection"
 msgstr "Selección al pasar por encima"
 
-#: ../gtk/gtktreeview.c:1088
+#: ../gtk/gtktreeview.c:1089
 msgid "Whether the selection should follow the pointer"
 msgstr "Indica si la selección debe seguir al puntero"
 
-#: ../gtk/gtktreeview.c:1107
+#: ../gtk/gtktreeview.c:1108
 msgid "Hover Expand"
 msgstr "Expandir al poner el cursor encima"
 
-#: ../gtk/gtktreeview.c:1108
+#: ../gtk/gtktreeview.c:1109
 msgid ""
 "Whether rows should be expanded/collapsed when the pointer moves over them"
 msgstr ""
 "Indica si las filas deben expandirse/contraerse cuando el puntero se mueve "
 "sobre ellas"
 
-#: ../gtk/gtktreeview.c:1122
+#: ../gtk/gtktreeview.c:1123
 msgid "Show Expanders"
 msgstr "Mostrar expansores"
 
-#: ../gtk/gtktreeview.c:1123
+#: ../gtk/gtktreeview.c:1124
 msgid "View has expanders"
 msgstr "La vista tiene expansores"
 
-#: ../gtk/gtktreeview.c:1137
+#: ../gtk/gtktreeview.c:1138
 msgid "Level Indentation"
 msgstr "Nivel de sangrado"
 
-#: ../gtk/gtktreeview.c:1138
+#: ../gtk/gtktreeview.c:1139
 msgid "Extra indentation for each level"
 msgstr "Sangría extra para cada nivel"
 
-#: ../gtk/gtktreeview.c:1147
+#: ../gtk/gtktreeview.c:1148
 msgid "Rubber Banding"
 msgstr "Bandas de goma"
 
-#: ../gtk/gtktreeview.c:1148
+#: ../gtk/gtktreeview.c:1149
 msgid ""
 "Whether to enable selection of multiple items by dragging the mouse pointer"
 msgstr ""
 "Indica si se debe activar la selección de múltiples elementos arrastrándo el "
 "puntero del ratón"
 
-#: ../gtk/gtktreeview.c:1155
+#: ../gtk/gtktreeview.c:1156
 msgid "Enable Grid Lines"
 msgstr "Activar líneas de la rejilla"
 
-#: ../gtk/gtktreeview.c:1156
+#: ../gtk/gtktreeview.c:1157
 msgid "Whether grid lines should be drawn in the tree view"
 msgstr "Indica si debe haber un icono cerca del elemento"
 
-#: ../gtk/gtktreeview.c:1164
+#: ../gtk/gtktreeview.c:1165
 msgid "Enable Tree Lines"
 msgstr "Activar líneas del árbol"
 
-#: ../gtk/gtktreeview.c:1165
+#: ../gtk/gtktreeview.c:1166
 msgid "Whether tree lines should be drawn in the tree view"
 msgstr "Indica si deben dibujar las líneas en la vista del árbol"
 
-#: ../gtk/gtktreeview.c:1173
+#: ../gtk/gtktreeview.c:1174
 msgid "The column in the model containing the tooltip texts for the rows"
 msgstr ""
 "La columna del modelo que contiene los textos de consejo para las filas"
 
-#: ../gtk/gtktreeview.c:1195
+#: ../gtk/gtktreeview.c:1196
 msgid "Vertical Separator Width"
 msgstr "Anchura del separador vertical"
 
-#: ../gtk/gtktreeview.c:1196
+#: ../gtk/gtktreeview.c:1197
 msgid "Vertical space between cells.  Must be an even number"
 msgstr "Espacio vertical entre celdas. Debe ser un número par"
 
-#: ../gtk/gtktreeview.c:1204
+#: ../gtk/gtktreeview.c:1205
 msgid "Horizontal Separator Width"
 msgstr "Anchura del separador horizontal"
 
-#: ../gtk/gtktreeview.c:1205
+#: ../gtk/gtktreeview.c:1206
 msgid "Horizontal space between cells.  Must be an even number"
 msgstr "Espacio horizontal entre celdas.  Debe ser un número par"
 
-#: ../gtk/gtktreeview.c:1213
+#: ../gtk/gtktreeview.c:1214
 msgid "Allow Rules"
 msgstr "Permitir reglas"
 
-#: ../gtk/gtktreeview.c:1214
+#: ../gtk/gtktreeview.c:1215
 msgid "Allow drawing of alternating color rows"
 msgstr "Permitir el dibujado de filas con colores alternativos"
 
-#: ../gtk/gtktreeview.c:1220
+#: ../gtk/gtktreeview.c:1221
 msgid "Indent Expanders"
 msgstr "Sangrar expansores"
 
-#: ../gtk/gtktreeview.c:1221
+#: ../gtk/gtktreeview.c:1222
 msgid "Make the expanders indented"
 msgstr "Crea los expansores sangrados"
 
-#: ../gtk/gtktreeview.c:1227
+#: ../gtk/gtktreeview.c:1228
 msgid "Even Row Color"
 msgstr "Color de la fila par"
 
-#: ../gtk/gtktreeview.c:1228
+#: ../gtk/gtktreeview.c:1229
 msgid "Color to use for even rows"
 msgstr "Color a usar para las filas pares"
 
-#: ../gtk/gtktreeview.c:1234
+#: ../gtk/gtktreeview.c:1235
 msgid "Odd Row Color"
 msgstr "Color de la fila impar"
 
-#: ../gtk/gtktreeview.c:1235
+#: ../gtk/gtktreeview.c:1236
 msgid "Color to use for odd rows"
 msgstr "Color a usar para las filas impares"
 
-#: ../gtk/gtktreeview.c:1241
+#: ../gtk/gtktreeview.c:1242
 msgid "Grid line width"
 msgstr "Anchura de la línea de la rejilla"
 
-#: ../gtk/gtktreeview.c:1242
+#: ../gtk/gtktreeview.c:1243
 msgid "Width, in pixels, of the tree view grid lines"
 msgstr "Anchura, en píxeles, de la línea indicadora del foco"
 
-#: ../gtk/gtktreeview.c:1248
+#: ../gtk/gtktreeview.c:1249
 msgid "Tree line width"
 msgstr "Anchura de la línea del árbol"
 
-#: ../gtk/gtktreeview.c:1249
+#: ../gtk/gtktreeview.c:1250
 msgid "Width, in pixels, of the tree view lines"
 msgstr "Anchura, en píxeles, de la línea indicadora del foco"
 
-#: ../gtk/gtktreeview.c:1255
+#: ../gtk/gtktreeview.c:1256
 msgid "Grid line pattern"
 msgstr "Patrón de la línea de la rejilla"
 
-#: ../gtk/gtktreeview.c:1256
+#: ../gtk/gtktreeview.c:1257
 msgid "Dash pattern used to draw the tree view grid lines"
 msgstr ""
 "Patrón de guiones utilizado para dibujar las líneas de rejilla de la vista "
 "de árbol"
 
-#: ../gtk/gtktreeview.c:1262
+#: ../gtk/gtktreeview.c:1263
 msgid "Tree line pattern"
 msgstr "Patrón de la línea del árbol"
 
-#: ../gtk/gtktreeview.c:1263
+#: ../gtk/gtktreeview.c:1264
 msgid "Dash pattern used to draw the tree view lines"
 msgstr ""
 "Patrón de guiones utilizado para dibujar las líneas de la vista de árbol"
@@ -7231,7 +7241,6 @@ msgid "Column is user-resizable"
 msgstr "La columna es ajustable por el usuario"
 
 #: ../gtk/gtktreeviewcolumn.c:265
-#| msgid "Current width of the column"
 msgid "Current X position of the column"
 msgstr "Posicion X actual de la columna"
 
@@ -7353,27 +7362,27 @@ msgstr "Usar iconos simbólicos"
 msgid "Whether to use symbolic icons"
 msgstr "Indica si se deben usar enlaces simbólicos"
 
-#: ../gtk/gtkwidget.c:932
+#: ../gtk/gtkwidget.c:948
 msgid "Widget name"
 msgstr "Nombre del widget"
 
-#: ../gtk/gtkwidget.c:933
+#: ../gtk/gtkwidget.c:949
 msgid "The name of the widget"
 msgstr "El nombre del widget"
 
-#: ../gtk/gtkwidget.c:939
+#: ../gtk/gtkwidget.c:955
 msgid "Parent widget"
 msgstr "Widget padre"
 
-#: ../gtk/gtkwidget.c:940
+#: ../gtk/gtkwidget.c:956
 msgid "The parent widget of this widget. Must be a Container widget"
 msgstr "El widget padre de este widget. Debe ser un widget contenedor"
 
-#: ../gtk/gtkwidget.c:947
+#: ../gtk/gtkwidget.c:963
 msgid "Width request"
 msgstr "Petición de anchura"
 
-#: ../gtk/gtkwidget.c:948
+#: ../gtk/gtkwidget.c:964
 msgid ""
 "Override for width request of the widget, or -1 if natural request should be "
 "used"
@@ -7381,11 +7390,11 @@ msgstr ""
 "Sobreescribir el ancho solicitado del widget, o -1 si deber ser utilizado la "
 "solicitud natural"
 
-#: ../gtk/gtkwidget.c:956
+#: ../gtk/gtkwidget.c:972
 msgid "Height request"
 msgstr "Petición de altura"
 
-#: ../gtk/gtkwidget.c:957
+#: ../gtk/gtkwidget.c:973
 msgid ""
 "Override for height request of the widget, or -1 if natural request should "
 "be used"
@@ -7393,84 +7402,84 @@ msgstr ""
 "Sobreescribir la altura solicitada del widget, o -1 si deber ser utilizada "
 "la solicitud natural"
 
-#: ../gtk/gtkwidget.c:966
+#: ../gtk/gtkwidget.c:982
 msgid "Whether the widget is visible"
 msgstr "Indica si el widget es visible"
 
-#: ../gtk/gtkwidget.c:973
+#: ../gtk/gtkwidget.c:989
 msgid "Whether the widget responds to input"
 msgstr "Indica si el widget responde al ingreso"
 
-#: ../gtk/gtkwidget.c:979
+#: ../gtk/gtkwidget.c:995
 msgid "Application paintable"
 msgstr "Pintable por la aplicación"
 
-#: ../gtk/gtkwidget.c:980
+#: ../gtk/gtkwidget.c:996
 msgid "Whether the application will paint directly on the widget"
 msgstr "Indica si la aplicación pintará directamente sobre el widget"
 
-#: ../gtk/gtkwidget.c:986
+#: ../gtk/gtkwidget.c:1002
 msgid "Can focus"
 msgstr "Puede enfocar"
 
-#: ../gtk/gtkwidget.c:987
+#: ../gtk/gtkwidget.c:1003
 msgid "Whether the widget can accept the input focus"
 msgstr "Indica si el widget puede aceptar el foco de entrada"
 
-#: ../gtk/gtkwidget.c:993
+#: ../gtk/gtkwidget.c:1009
 msgid "Has focus"
 msgstr "Tiene foco"
 
-#: ../gtk/gtkwidget.c:994
+#: ../gtk/gtkwidget.c:1010
 msgid "Whether the widget has the input focus"
 msgstr "Indica si el widget tiene el foco de entrada"
 
-#: ../gtk/gtkwidget.c:1000
+#: ../gtk/gtkwidget.c:1016
 msgid "Is focus"
 msgstr "Tiene el foco"
 
-#: ../gtk/gtkwidget.c:1001
+#: ../gtk/gtkwidget.c:1017
 msgid "Whether the widget is the focus widget within the toplevel"
 msgstr "Indica si el widget es el widget con foco dentro del nivel superior"
 
-#: ../gtk/gtkwidget.c:1007
+#: ../gtk/gtkwidget.c:1023
 msgid "Can default"
 msgstr "Puede por omisión"
 
-#: ../gtk/gtkwidget.c:1008
+#: ../gtk/gtkwidget.c:1024
 msgid "Whether the widget can be the default widget"
 msgstr "Indica si el widget puede ser el widget predeterminado"
 
-#: ../gtk/gtkwidget.c:1014
+#: ../gtk/gtkwidget.c:1030
 msgid "Has default"
 msgstr "Tiene por omisión"
 
-#: ../gtk/gtkwidget.c:1015
+#: ../gtk/gtkwidget.c:1031
 msgid "Whether the widget is the default widget"
 msgstr "Indica si el widget es el widget predeterminado"
 
-#: ../gtk/gtkwidget.c:1021
+#: ../gtk/gtkwidget.c:1037
 msgid "Receives default"
 msgstr "Recibe por omisión"
 
-#: ../gtk/gtkwidget.c:1022
+#: ../gtk/gtkwidget.c:1038
 msgid "If TRUE, the widget will receive the default action when it is focused"
 msgstr ""
 "Si es TRUE el widget recibirá la acción predeterminada cuando obtiene el foco"
 
-#: ../gtk/gtkwidget.c:1028
+#: ../gtk/gtkwidget.c:1044
 msgid "Composite child"
 msgstr "Hijo compuesto"
 
-#: ../gtk/gtkwidget.c:1029
+#: ../gtk/gtkwidget.c:1045
 msgid "Whether the widget is part of a composite widget"
 msgstr "Indica si el widget es parte de un widget compuesto"
 
-#: ../gtk/gtkwidget.c:1035
+#: ../gtk/gtkwidget.c:1051
 msgid "Style"
 msgstr "Estilo"
 
-#: ../gtk/gtkwidget.c:1036
+#: ../gtk/gtkwidget.c:1052
 msgid ""
 "The style of the widget, which contains information about how it will look "
 "(colors etc)"
@@ -7478,176 +7487,176 @@ msgstr ""
 "El estilo del widget, que contiene información sobre la apariencia (colores, "
 "etc)"
 
-#: ../gtk/gtkwidget.c:1042
+#: ../gtk/gtkwidget.c:1058
 msgid "Events"
 msgstr "Eventos"
 
-#: ../gtk/gtkwidget.c:1043
+#: ../gtk/gtkwidget.c:1059
 msgid "The event mask that decides what kind of GdkEvents this widget gets"
 msgstr ""
 "La máscara de eventos que decide que tipo de GtkEvents recibe este widget"
 
-#: ../gtk/gtkwidget.c:1050
+#: ../gtk/gtkwidget.c:1066
 msgid "No show all"
 msgstr "No mostrar todo"
 
-#: ../gtk/gtkwidget.c:1051
+#: ../gtk/gtkwidget.c:1067
 msgid "Whether gtk_widget_show_all() should not affect this widget"
 msgstr "Indica que gtk_widget_show_all() no debe afectar a este widget"
 
-#: ../gtk/gtkwidget.c:1074
+#: ../gtk/gtkwidget.c:1090
 msgid "Whether this widget has a tooltip"
 msgstr "Indica si el widget tiene un consejo"
 
-#: ../gtk/gtkwidget.c:1130
+#: ../gtk/gtkwidget.c:1146
 msgid "Window"
 msgstr "Ventana"
 
-#: ../gtk/gtkwidget.c:1131
+#: ../gtk/gtkwidget.c:1147
 msgid "The widget's window if it is realized"
 msgstr "La ventana del widget si se realiza"
 
-#: ../gtk/gtkwidget.c:1145
+#: ../gtk/gtkwidget.c:1161
 msgid "Double Buffered"
 msgstr "Búfer doble"
 
-#: ../gtk/gtkwidget.c:1146
+#: ../gtk/gtkwidget.c:1162
 msgid "Whether the widget is double buffered"
 msgstr "Indica si el widget tiene búfer doble"
 
-#: ../gtk/gtkwidget.c:1161
+#: ../gtk/gtkwidget.c:1177
 msgid "How to position in extra horizontal space"
 msgstr "Cómo posicionar en el espacio horizontal adicional"
 
-#: ../gtk/gtkwidget.c:1177
+#: ../gtk/gtkwidget.c:1193
 msgid "How to position in extra vertical space"
 msgstr "Cómo posicionar en el espacio vertical adicional"
 
-#: ../gtk/gtkwidget.c:1196
+#: ../gtk/gtkwidget.c:1212
 msgid "Margin on Left"
 msgstr "Margen a la izquierda"
 
-#: ../gtk/gtkwidget.c:1197
+#: ../gtk/gtkwidget.c:1213
 msgid "Pixels of extra space on the left side"
 msgstr "Píxeles de espacio adicional en la parte izquierda"
 
-#: ../gtk/gtkwidget.c:1217
+#: ../gtk/gtkwidget.c:1233
 msgid "Margin on Right"
 msgstr "Margen a la derecha"
 
-#: ../gtk/gtkwidget.c:1218
+#: ../gtk/gtkwidget.c:1234
 msgid "Pixels of extra space on the right side"
 msgstr "Píxeles de espacio adicional en la parte derecha"
 
-#: ../gtk/gtkwidget.c:1238
+#: ../gtk/gtkwidget.c:1254
 msgid "Margin on Top"
 msgstr "Margen arriba"
 
-#: ../gtk/gtkwidget.c:1239
+#: ../gtk/gtkwidget.c:1255
 msgid "Pixels of extra space on the top side"
 msgstr "Píxeles de espacio adicional en la parte superior"
 
-#: ../gtk/gtkwidget.c:1259
+#: ../gtk/gtkwidget.c:1275
 msgid "Margin on Bottom"
 msgstr "Margen abajo"
 
-#: ../gtk/gtkwidget.c:1260
+#: ../gtk/gtkwidget.c:1276
 msgid "Pixels of extra space on the bottom side"
 msgstr "Píxeles de espacio adicional en la parte inferior"
 
-#: ../gtk/gtkwidget.c:1277
+#: ../gtk/gtkwidget.c:1293
 msgid "All Margins"
 msgstr "Todos los márgenes"
 
-#: ../gtk/gtkwidget.c:1278
+#: ../gtk/gtkwidget.c:1294
 msgid "Pixels of extra space on all four sides"
 msgstr "Píxeles de espacio adicionales en las cuatro partes"
 
-#: ../gtk/gtkwidget.c:1311
+#: ../gtk/gtkwidget.c:1327
 msgid "Horizontal Expand"
 msgstr "Expansión horizontal"
 
-#: ../gtk/gtkwidget.c:1312
+#: ../gtk/gtkwidget.c:1328
 msgid "Whether widget wants more horizontal space"
 msgstr "Indica si el widget quiere usar más espacio horizontal"
 
-#: ../gtk/gtkwidget.c:1326
+#: ../gtk/gtkwidget.c:1342
 msgid "Horizontal Expand Set"
 msgstr "Ajuste de expansión horizontal"
 
-#: ../gtk/gtkwidget.c:1327
+#: ../gtk/gtkwidget.c:1343
 msgid "Whether to use the hexpand property"
 msgstr "Indica si se debe usar la propiedad hexpand"
 
-#: ../gtk/gtkwidget.c:1341
+#: ../gtk/gtkwidget.c:1357
 msgid "Vertical Expand"
 msgstr "Expansión vertial"
 
-#: ../gtk/gtkwidget.c:1342
+#: ../gtk/gtkwidget.c:1358
 msgid "Whether widget wants more vertical space"
 msgstr "Indica si el widget quiere usar más espacio vertical"
 
-#: ../gtk/gtkwidget.c:1356
+#: ../gtk/gtkwidget.c:1372
 msgid "Vertical Expand Set"
 msgstr "Ajuste de expansión vertical"
 
-#: ../gtk/gtkwidget.c:1357
+#: ../gtk/gtkwidget.c:1373
 msgid "Whether to use the vexpand property"
 msgstr "Indica si se debe usar la propiedad vexpand"
 
-#: ../gtk/gtkwidget.c:1371
+#: ../gtk/gtkwidget.c:1387
 msgid "Expand Both"
 msgstr "Expandir en ambas"
 
-#: ../gtk/gtkwidget.c:1372
+#: ../gtk/gtkwidget.c:1388
 msgid "Whether widget wants to expand in both directions"
 msgstr "Indica si el widget quiere expandirse en ambas direcciones"
 
-#: ../gtk/gtkwidget.c:3009
+#: ../gtk/gtkwidget.c:3027
 msgid "Interior Focus"
 msgstr "Foco interior"
 
-#: ../gtk/gtkwidget.c:3010
+#: ../gtk/gtkwidget.c:3028
 msgid "Whether to draw the focus indicator inside widgets"
 msgstr "Indica si se ha de dibujar el indicador del foco dentro de los widgets"
 
-#: ../gtk/gtkwidget.c:3016
+#: ../gtk/gtkwidget.c:3034
 msgid "Focus linewidth"
 msgstr "Dar foco al ancho de línea"
 
-#: ../gtk/gtkwidget.c:3017
+#: ../gtk/gtkwidget.c:3035
 msgid "Width, in pixels, of the focus indicator line"
 msgstr "Anchura, en píxeles, de la línea indicadora del foco"
 
-#: ../gtk/gtkwidget.c:3023
+#: ../gtk/gtkwidget.c:3041
 msgid "Focus line dash pattern"
 msgstr "Dar foco a la línea con patrón punteado"
 
-#: ../gtk/gtkwidget.c:3024
+#: ../gtk/gtkwidget.c:3042
 msgid "Dash pattern used to draw the focus indicator"
 msgstr "Patrón punteado utilizado para dibujar el indicador de foco"
 
-#: ../gtk/gtkwidget.c:3029
+#: ../gtk/gtkwidget.c:3047
 msgid "Focus padding"
 msgstr "Relleno del foco"
 
-#: ../gtk/gtkwidget.c:3030
+#: ../gtk/gtkwidget.c:3048
 msgid "Width, in pixels, between focus indicator and the widget 'box'"
 msgstr "Anchura, en píxeles, entre el indicador de foco y la «caja» del widget"
 
-#: ../gtk/gtkwidget.c:3035
+#: ../gtk/gtkwidget.c:3053
 msgid "Cursor color"
 msgstr "Color del cursor"
 
-#: ../gtk/gtkwidget.c:3036
+#: ../gtk/gtkwidget.c:3054
 msgid "Color with which to draw insertion cursor"
 msgstr "Color con el cual dibujar el cursor de inserción"
 
-#: ../gtk/gtkwidget.c:3041
+#: ../gtk/gtkwidget.c:3059
 msgid "Secondary cursor color"
 msgstr "Color secundario del cursor"
 
-#: ../gtk/gtkwidget.c:3042
+#: ../gtk/gtkwidget.c:3060
 msgid ""
 "Color with which to draw the secondary insertion cursor when editing mixed "
 "right-to-left and left-to-right text"
@@ -7655,43 +7664,43 @@ msgstr ""
 "Color con el cual dibujar el cursor de inserción secundario cuando se esta "
 "editando una mezcla de texto de derecha-a-izquierda y izquierda-a-derecha"
 
-#: ../gtk/gtkwidget.c:3047
+#: ../gtk/gtkwidget.c:3065
 msgid "Cursor line aspect ratio"
 msgstr "Proporción de la línea del cursor"
 
-#: ../gtk/gtkwidget.c:3048
+#: ../gtk/gtkwidget.c:3066
 msgid "Aspect ratio with which to draw insertion cursor"
 msgstr "La proporción con la cual dibujar el cursor de inserción"
 
-#: ../gtk/gtkwidget.c:3054
+#: ../gtk/gtkwidget.c:3072
 msgid "Window dragging"
 msgstr "Arrastre de ventana"
 
-#: ../gtk/gtkwidget.c:3055
+#: ../gtk/gtkwidget.c:3073
 msgid "Whether windows can be dragged by clicking on empty areas"
 msgstr "Indica si las ventanas se pueden arrastrar pulsando en áreas vacías"
 
-#: ../gtk/gtkwidget.c:3068
+#: ../gtk/gtkwidget.c:3086
 msgid "Unvisited Link Color"
 msgstr "Color del enlace no visitado"
 
-#: ../gtk/gtkwidget.c:3069
+#: ../gtk/gtkwidget.c:3087
 msgid "Color of unvisited links"
 msgstr "Color de los enlaces no visitados"
 
-#: ../gtk/gtkwidget.c:3082
+#: ../gtk/gtkwidget.c:3100
 msgid "Visited Link Color"
 msgstr "Color del enlace visitado"
 
-#: ../gtk/gtkwidget.c:3083
+#: ../gtk/gtkwidget.c:3101
 msgid "Color of visited links"
 msgstr "Color de los enlaces visitados"
 
-#: ../gtk/gtkwidget.c:3097
+#: ../gtk/gtkwidget.c:3115
 msgid "Wide Separators"
 msgstr "Separadores anchos"
 
-#: ../gtk/gtkwidget.c:3098
+#: ../gtk/gtkwidget.c:3116
 msgid ""
 "Whether separators have configurable width and should be drawn using a box "
 "instead of a line"
@@ -7699,35 +7708,35 @@ msgstr ""
 "Indica si los separadores tienen anchura configurable y deben dibujarse "
 "usando una caja en lugar de una línea"
 
-#: ../gtk/gtkwidget.c:3112
+#: ../gtk/gtkwidget.c:3130
 msgid "Separator Width"
 msgstr "Anchura del separador"
 
-#: ../gtk/gtkwidget.c:3113
+#: ../gtk/gtkwidget.c:3131
 msgid "The width of separators if wide-separators is TRUE"
 msgstr "La anchura de los separadores si «wide-separators« es TRUE"
 
-#: ../gtk/gtkwidget.c:3127
+#: ../gtk/gtkwidget.c:3145
 msgid "Separator Height"
 msgstr "Altura del separador"
 
-#: ../gtk/gtkwidget.c:3128
+#: ../gtk/gtkwidget.c:3146
 msgid "The height of separators if \"wide-separators\" is TRUE"
 msgstr "La altura de los separadores si «wide-separators» es TRUE"
 
-#: ../gtk/gtkwidget.c:3142
+#: ../gtk/gtkwidget.c:3160
 msgid "Horizontal Scroll Arrow Length"
 msgstr "Longitud de la flecha de desplazamiento horizontal"
 
-#: ../gtk/gtkwidget.c:3143
+#: ../gtk/gtkwidget.c:3161
 msgid "The length of horizontal scroll arrows"
 msgstr "La longitud de las flechas de desplazamiento horizontal"
 
-#: ../gtk/gtkwidget.c:3157
+#: ../gtk/gtkwidget.c:3175
 msgid "Vertical Scroll Arrow Length"
 msgstr "Longitud de las flechas de desplazamiento vertical"
 
-#: ../gtk/gtkwidget.c:3158
+#: ../gtk/gtkwidget.c:3176
 msgid "The length of vertical scroll arrows"
 msgstr "La longitud de las flechas de desplazamiento vertical"
 
@@ -7974,6 +7983,15 @@ msgstr "GtkApplication"
 msgid "The GtkApplication for the window"
 msgstr "El GtkApplication para la ventana"
 
+#: ../modules/printbackends/cups/gtkprintercups.c:95
+msgid "Color Profile Title"
+msgstr "Título del perfil de color"
+
+#: ../modules/printbackends/cups/gtkprintercups.c:96
+#| msgid "The title of the color selection dialog"
+msgid "The title of the color profile to use"
+msgstr "El título del perfil de color que usar"
+
 #~ msgid "Not Authorized Text"
 #~ msgstr "Texto de no autorizado"
 
index 8be05973c684cb7d373b46b221e1186b2e007d82..9178dca3b8c21390afa064c8697a6ed1c89161aa 100644 (file)
@@ -24,8 +24,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gtk+-master-po-properties-gl-77816____.merged\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-21 13:57+0200\n"
-"PO-Revision-Date: 2011-06-21 13:58+0200\n"
+"POT-Creation-Date: 2011-07-11 00:11+0200\n"
+"PO-Revision-Date: 2011-07-11 00:12+0200\n"
 "Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
 "Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
 "Language: gl\n"
@@ -144,15 +144,6 @@ msgstr "A resolución para os tipos de letra na pantalla"
 msgid "Cursor"
 msgstr "Cursor"
 
-#: ../gdk/x11/gdkdevice-xi.c:140 ../gdk/x11/gdkdevice-xi.c:141
-#: ../gdk/x11/gdkdevice-xi2.c:130
-msgid "Device ID"
-msgstr "ID do dispositivo"
-
-#: ../gdk/x11/gdkdevice-xi2.c:131
-msgid "Device identifier"
-msgstr "Identificador do dispotitivo"
-
 #: ../gdk/x11/gdkdevicemanager-xi2.c:119
 msgid "Opcode"
 msgstr "Opcode"
@@ -169,6 +160,15 @@ msgstr "Evento base"
 msgid "Event base for XInput events"
 msgstr "Evento base para os eventos XInput"
 
+#: ../gdk/x11/gdkdevice-xi2.c:130 ../gdk/x11/gdkdevice-xi.c:140
+#: ../gdk/x11/gdkdevice-xi.c:141
+msgid "Device ID"
+msgstr "ID do dispositivo"
+
+#: ../gdk/x11/gdkdevice-xi2.c:131
+msgid "Device identifier"
+msgstr "Identificador do dispotitivo"
+
 #: ../gtk/gtkaboutdialog.c:275
 msgid "Program name"
 msgstr "Nome do programa"
@@ -315,8 +315,8 @@ msgstr "Nome"
 msgid "A unique name for the action."
 msgstr "Un nome único para a acción."
 
-#: ../gtk/gtkaction.c:241 ../gtk/gtkbutton.c:227 ../gtk/gtkexpander.c:289
-#: ../gtk/gtkframe.c:170 ../gtk/gtklabel.c:742 ../gtk/gtkmenuitem.c:381
+#: ../gtk/gtkaction.c:241 ../gtk/gtkbutton.c:228 ../gtk/gtkexpander.c:290
+#: ../gtk/gtkframe.c:171 ../gtk/gtklabel.c:744 ../gtk/gtkmenuitem.c:384
 #: ../gtk/gtktoolbutton.c:232 ../gtk/gtktoolitemgroup.c:1592
 msgid "Label"
 msgstr "Etiqueta"
@@ -358,18 +358,18 @@ msgid "GIcon"
 msgstr "GIcon"
 
 #: ../gtk/gtkaction.c:305 ../gtk/gtkcellrendererpixbuf.c:235
-#: ../gtk/gtkimage.c:328 ../gtk/gtkstatusicon.c:276
+#: ../gtk/gtkimage.c:330 ../gtk/gtkstatusicon.c:276
 msgid "The GIcon being displayed"
 msgstr "A GIcon que se mostra"
 
 #: ../gtk/gtkaction.c:325 ../gtk/gtkcellrendererpixbuf.c:200
-#: ../gtk/gtkimage.c:310 ../gtk/gtkprinter.c:174 ../gtk/gtkstatusicon.c:259
-#: ../gtk/gtkwindow.c:723
+#: ../gtk/gtkimage.c:312 ../gtk/gtkprinter.c:174 ../gtk/gtkstatusicon.c:259
+#: ../gtk/gtkwindow.c:724
 msgid "Icon Name"
 msgstr "Nome da icona"
 
 #: ../gtk/gtkaction.c:326 ../gtk/gtkcellrendererpixbuf.c:201
-#: ../gtk/gtkimage.c:311 ../gtk/gtkstatusicon.c:260
+#: ../gtk/gtkimage.c:313 ../gtk/gtkstatusicon.c:260
 msgid "The name of the icon from the icon theme"
 msgstr "O nome da icona do tema de iconas"
 
@@ -431,7 +431,7 @@ msgstr ""
 "Cando é TRUE, ocúltanse os proxies de menú baleiro para este aplicativo."
 
 #: ../gtk/gtkaction.c:381 ../gtk/gtkactiongroup.c:235
-#: ../gtk/gtkcellrenderer.c:290 ../gtk/gtkwidget.c:971
+#: ../gtk/gtkcellrenderer.c:290 ../gtk/gtkwidget.c:988
 msgid "Sensitive"
 msgstr "Sensíbel"
 
@@ -441,7 +441,7 @@ msgstr "Indica se a acción está activada."
 
 #: ../gtk/gtkaction.c:388 ../gtk/gtkactiongroup.c:242
 #: ../gtk/gtkstatusicon.c:310 ../gtk/gtktreeviewcolumn.c:248
-#: ../gtk/gtkwidget.c:964
+#: ../gtk/gtkwidget.c:981
 msgid "Visible"
 msgstr "Visíbel"
 
@@ -498,7 +498,7 @@ msgid "Whether to use the related actions appearance properties"
 msgstr "Cando usar as accións relacionadas coas propiedades da aparencia"
 
 #: ../gtk/gtkadjustment.c:123 ../gtk/gtkcellrendererprogress.c:138
-#: ../gtk/gtkscalebutton.c:217 ../gtk/gtkspinbutton.c:382
+#: ../gtk/gtkscalebutton.c:218 ../gtk/gtkspinbutton.c:384
 msgid "Value"
 msgstr "Valor"
 
@@ -550,7 +550,7 @@ msgstr "O tamaño de páxina do axuste"
 msgid "Horizontal alignment"
 msgstr "Aliñamento horizontal"
 
-#: ../gtk/gtkalignment.c:138 ../gtk/gtkbutton.c:278
+#: ../gtk/gtkalignment.c:138 ../gtk/gtkbutton.c:279
 msgid ""
 "Horizontal position of child in available space. 0.0 is left aligned, 1.0 is "
 "right aligned"
@@ -562,7 +562,7 @@ msgstr ""
 msgid "Vertical alignment"
 msgstr "Aliñamento vertical"
 
-#: ../gtk/gtkalignment.c:148 ../gtk/gtkbutton.c:297
+#: ../gtk/gtkalignment.c:148 ../gtk/gtkbutton.c:298
 msgid ""
 "Vertical position of child in available space. 0.0 is top aligned, 1.0 is "
 "bottom aligned"
@@ -711,32 +711,32 @@ msgstr "Texto predeterminado do widget"
 msgid "The default text appearing when there are no applications"
 msgstr "O texto predeterminado que aparece cando non hai aplicativos"
 
-#: ../gtk/gtkarrow.c:110
+#: ../gtk/gtkarrow.c:112
 msgid "Arrow direction"
 msgstr "Dirección da frecha"
 
-#: ../gtk/gtkarrow.c:111
+#: ../gtk/gtkarrow.c:113
 msgid "The direction the arrow should point"
 msgstr "A dirección á que a frecha deberá apuntar"
 
-#: ../gtk/gtkarrow.c:119
+#: ../gtk/gtkarrow.c:121
 msgid "Arrow shadow"
 msgstr "Sombra da frecha"
 
-#: ../gtk/gtkarrow.c:120
+#: ../gtk/gtkarrow.c:122
 msgid "Appearance of the shadow surrounding the arrow"
 msgstr "Aparencia da sombra que rodea a frecha"
 
-#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:985 ../gtk/gtkmenu.c:797
-#: ../gtk/gtkmenuitem.c:444
+#: ../gtk/gtkarrow.c:129 ../gtk/gtkcombobox.c:986 ../gtk/gtkmenu.c:798
+#: ../gtk/gtkmenuitem.c:447
 msgid "Arrow Scaling"
 msgstr "Escalado de frecha"
 
-#: ../gtk/gtkarrow.c:128
+#: ../gtk/gtkarrow.c:130
 msgid "Amount of space used up by arrow"
 msgstr "Cantidade de espazo ocupado por frecha"
 
-#: ../gtk/gtkaspectframe.c:109 ../gtk/gtkwidget.c:1159
+#: ../gtk/gtkaspectframe.c:109 ../gtk/gtkwidget.c:1176
 msgid "Horizontal Alignment"
 msgstr "Aliñamento horizontal"
 
@@ -744,7 +744,7 @@ msgstr "Aliñamento horizontal"
 msgid "X alignment of the child"
 msgstr "Aliñamento X do fillo"
 
-#: ../gtk/gtkaspectframe.c:116 ../gtk/gtkwidget.c:1175
+#: ../gtk/gtkaspectframe.c:116 ../gtk/gtkwidget.c:1192
 msgid "Vertical Alignment"
 msgstr "Aliñamento vertical"
 
@@ -768,59 +768,59 @@ msgstr "Obedecer ao fillo"
 msgid "Force aspect ratio to match that of the frame's child"
 msgstr "Forzar a proporción de aspecto para que coincida coa do marco do fillo"
 
-#: ../gtk/gtkassistant.c:310
+#: ../gtk/gtkassistant.c:311
 msgid "Header Padding"
 msgstr "Recheo da cabeceira"
 
-#: ../gtk/gtkassistant.c:311
+#: ../gtk/gtkassistant.c:312
 msgid "Number of pixels around the header."
 msgstr "Número de píxeles ao redor da cabeceira."
 
-#: ../gtk/gtkassistant.c:318
+#: ../gtk/gtkassistant.c:319
 msgid "Content Padding"
 msgstr "Recheo do contido"
 
-#: ../gtk/gtkassistant.c:319
+#: ../gtk/gtkassistant.c:320
 msgid "Number of pixels around the content pages."
 msgstr "Número de píxeles ao redor das páxinas de contidos."
 
-#: ../gtk/gtkassistant.c:335
+#: ../gtk/gtkassistant.c:336
 msgid "Page type"
 msgstr "Tipo de páxina"
 
-#: ../gtk/gtkassistant.c:336
+#: ../gtk/gtkassistant.c:337
 msgid "The type of the assistant page"
 msgstr "O tipo da páxina do asistente"
 
-#: ../gtk/gtkassistant.c:351
+#: ../gtk/gtkassistant.c:352
 msgid "Page title"
 msgstr "Título da páxina"
 
-#: ../gtk/gtkassistant.c:352
+#: ../gtk/gtkassistant.c:353
 msgid "The title of the assistant page"
 msgstr "O título da páxina do asistente"
 
-#: ../gtk/gtkassistant.c:369
+#: ../gtk/gtkassistant.c:370
 msgid "Header image"
 msgstr "Imaxe de cabeceira"
 
-#: ../gtk/gtkassistant.c:370
+#: ../gtk/gtkassistant.c:371
 msgid "Header image for the assistant page"
 msgstr "Imaxe de cabeceira para a páxina do asistente"
 
-#: ../gtk/gtkassistant.c:386
+#: ../gtk/gtkassistant.c:387
 msgid "Sidebar image"
 msgstr "Imaxe da barra lateral"
 
-#: ../gtk/gtkassistant.c:387
+#: ../gtk/gtkassistant.c:388
 msgid "Sidebar image for the assistant page"
 msgstr "Imaxe da barra lateral da páxina do asistente"
 
-#: ../gtk/gtkassistant.c:403
+#: ../gtk/gtkassistant.c:404
 msgid "Page complete"
 msgstr "Páxina completa"
 
-#: ../gtk/gtkassistant.c:404
+#: ../gtk/gtkassistant.c:405
 msgid "Whether all required fields on the page have been filled out"
 msgstr "Indica se todos os campos requiridos na páxina foron cubertos"
 
@@ -888,39 +888,39 @@ msgstr "Non homoxéneo"
 msgid "If TRUE, the child will not be subject to homogeneous sizing"
 msgstr "Se é TRUE, o fillo non será obxecto de tamaño homoxéneo"
 
-#: ../gtk/gtkbox.c:240 ../gtk/gtkcellareabox.c:317 ../gtk/gtkexpander.c:313
+#: ../gtk/gtkbox.c:241 ../gtk/gtkcellareabox.c:317 ../gtk/gtkexpander.c:314
 #: ../gtk/gtkiconview.c:644 ../gtk/gtktreeviewcolumn.c:283
 msgid "Spacing"
 msgstr "Espazamento"
 
-#: ../gtk/gtkbox.c:241
+#: ../gtk/gtkbox.c:242
 msgid "The amount of space between children"
 msgstr "A cantidade de espazo entre os fillos"
 
-#: ../gtk/gtkbox.c:250 ../gtk/gtktable.c:227 ../gtk/gtktoolbar.c:553
+#: ../gtk/gtkbox.c:251 ../gtk/gtktable.c:227 ../gtk/gtktoolbar.c:561
 #: ../gtk/gtktoolitemgroup.c:1645
 msgid "Homogeneous"
 msgstr "Homoxéneo"
 
-#: ../gtk/gtkbox.c:251
+#: ../gtk/gtkbox.c:252
 msgid "Whether the children should all be the same size"
 msgstr "Indica se todos os fillos deben ser do mesmo tamaño"
 
-#: ../gtk/gtkbox.c:271 ../gtk/gtkcellareabox.c:337 ../gtk/gtktoolbar.c:545
-#: ../gtk/gtktoolitemgroup.c:1652 ../gtk/gtktoolpalette.c:1068
+#: ../gtk/gtkbox.c:272 ../gtk/gtkcellareabox.c:337 ../gtk/gtktoolbar.c:553
+#: ../gtk/gtktoolitemgroup.c:1652 ../gtk/gtktoolpalette.c:1070
 #: ../gtk/gtktreeviewcolumn.c:339
 msgid "Expand"
 msgstr "Expandir"
 
-#: ../gtk/gtkbox.c:272
+#: ../gtk/gtkbox.c:273
 msgid "Whether the child should receive extra space when the parent grows"
 msgstr "Indica se o fillo debe recibir espazo adicional cando o pai crece"
 
-#: ../gtk/gtkbox.c:288 ../gtk/gtktoolitemgroup.c:1659
+#: ../gtk/gtkbox.c:289 ../gtk/gtktoolitemgroup.c:1659
 msgid "Fill"
 msgstr "Encher"
 
-#: ../gtk/gtkbox.c:289
+#: ../gtk/gtkbox.c:290
 msgid ""
 "Whether extra space given to the child should be allocated to the child or "
 "used as padding"
@@ -928,20 +928,20 @@ msgstr ""
 "Indica se se debe dar espazo adicional para que o fillo poida ser asignado "
 "no fillo ou usado como recheo"
 
-#: ../gtk/gtkbox.c:296 ../gtk/gtktrayicon-x11.c:169
+#: ../gtk/gtkbox.c:297 ../gtk/gtktrayicon-x11.c:169
 msgid "Padding"
 msgstr "Recheo"
 
-#: ../gtk/gtkbox.c:297
+#: ../gtk/gtkbox.c:298
 msgid "Extra space to put between the child and its neighbors, in pixels"
 msgstr ""
 "Espazo adicional para colocar entre o fillo e os seus veciños, en píxeles"
 
-#: ../gtk/gtkbox.c:303
+#: ../gtk/gtkbox.c:304
 msgid "Pack type"
 msgstr "Tipo de empaquetado"
 
-#: ../gtk/gtkbox.c:304
+#: ../gtk/gtkbox.c:305
 msgid ""
 "A GtkPackType indicating whether the child is packed with reference to the "
 "start or end of the parent"
@@ -949,12 +949,12 @@ msgstr ""
 "Un GtkPackType que indica se o fillo está empaquetado en relación ao inicio "
 "ou ao final do pai"
 
-#: ../gtk/gtkbox.c:310 ../gtk/gtknotebook.c:770 ../gtk/gtkpaned.c:349
+#: ../gtk/gtkbox.c:311 ../gtk/gtknotebook.c:771 ../gtk/gtkpaned.c:349
 #: ../gtk/gtktoolitemgroup.c:1673
 msgid "Position"
 msgstr "Posición"
 
-#: ../gtk/gtkbox.c:311 ../gtk/gtknotebook.c:771
+#: ../gtk/gtkbox.c:312 ../gtk/gtknotebook.c:772
 msgid "The index of the child in the parent"
 msgstr "O índice do fillo no pai"
 
@@ -966,7 +966,7 @@ msgstr "Dominio de tradución"
 msgid "The translation domain used by gettext"
 msgstr "O dominio de tradución usado por gettext"
 
-#: ../gtk/gtkbutton.c:228
+#: ../gtk/gtkbutton.c:229
 msgid ""
 "Text of the label widget inside the button, if the button contains a label "
 "widget"
@@ -974,13 +974,13 @@ msgstr ""
 "Texto da etiqueta do widget dentro do botón, se o botón contén unha etiqueta "
 "widget"
 
-#: ../gtk/gtkbutton.c:235 ../gtk/gtkexpander.c:297 ../gtk/gtklabel.c:763
-#: ../gtk/gtkmenuitem.c:396 ../gtk/gtktoolbutton.c:239
+#: ../gtk/gtkbutton.c:236 ../gtk/gtkexpander.c:298 ../gtk/gtklabel.c:765
+#: ../gtk/gtkmenuitem.c:399 ../gtk/gtktoolbutton.c:239
 msgid "Use underline"
 msgstr "Usar subliñado"
 
-#: ../gtk/gtkbutton.c:236 ../gtk/gtkexpander.c:298 ../gtk/gtklabel.c:764
-#: ../gtk/gtkmenuitem.c:397
+#: ../gtk/gtkbutton.c:237 ../gtk/gtkexpander.c:299 ../gtk/gtklabel.c:766
+#: ../gtk/gtkmenuitem.c:400
 msgid ""
 "If set, an underline in the text indicates the next character should be used "
 "for the mnemonic accelerator key"
@@ -988,71 +988,71 @@ msgstr ""
 "Se se define, un subliñado no texto indica que o seguinte carácter debería "
 "usarse para a tecla rápida mnemónica"
 
-#: ../gtk/gtkbutton.c:243 ../gtk/gtkimagemenuitem.c:175
+#: ../gtk/gtkbutton.c:244 ../gtk/gtkimagemenuitem.c:175
 msgid "Use stock"
 msgstr "Usar inventario"
 
-#: ../gtk/gtkbutton.c:244
+#: ../gtk/gtkbutton.c:245
 msgid ""
 "If set, the label is used to pick a stock item instead of being displayed"
 msgstr ""
 "Se se estabelece, a etiqueta úsase para seleccionar un elemento do "
 "inventario en vez de ser mostrado"
 
-#: ../gtk/gtkbutton.c:251 ../gtk/gtkcombobox.c:791
+#: ../gtk/gtkbutton.c:252 ../gtk/gtkcombobox.c:792
 #: ../gtk/gtkfilechooserbutton.c:426
 msgid "Focus on click"
 msgstr "Enfocar ao premer"
 
-#: ../gtk/gtkbutton.c:252 ../gtk/gtkfilechooserbutton.c:427
+#: ../gtk/gtkbutton.c:253 ../gtk/gtkfilechooserbutton.c:427
 msgid "Whether the button grabs focus when it is clicked with the mouse"
 msgstr "Indica se o botón captura o foco cando se preme co rato"
 
-#: ../gtk/gtkbutton.c:259
+#: ../gtk/gtkbutton.c:260
 msgid "Border relief"
 msgstr "Relevo do bordo"
 
-#: ../gtk/gtkbutton.c:260
+#: ../gtk/gtkbutton.c:261
 msgid "The border relief style"
 msgstr "Estilo de relevo do bordo"
 
-#: ../gtk/gtkbutton.c:277
+#: ../gtk/gtkbutton.c:278
 msgid "Horizontal alignment for child"
 msgstr "Aliñamento horizontal para o fillo"
 
-#: ../gtk/gtkbutton.c:296
+#: ../gtk/gtkbutton.c:297
 msgid "Vertical alignment for child"
 msgstr "Aliñamento vertical para o fillo"
 
-#: ../gtk/gtkbutton.c:313 ../gtk/gtkimagemenuitem.c:160
+#: ../gtk/gtkbutton.c:314 ../gtk/gtkimagemenuitem.c:160
 msgid "Image widget"
 msgstr "Widget de imaxe"
 
-#: ../gtk/gtkbutton.c:314
+#: ../gtk/gtkbutton.c:315
 msgid "Child widget to appear next to the button text"
 msgstr "Widget fillo que aparecerá ao lado do texto do botón"
 
-#: ../gtk/gtkbutton.c:328
+#: ../gtk/gtkbutton.c:329
 msgid "Image position"
 msgstr "Posición da imaxe"
 
-#: ../gtk/gtkbutton.c:329
+#: ../gtk/gtkbutton.c:330
 msgid "The position of the image relative to the text"
 msgstr "A posición da imaxe en relación ao texto"
 
-#: ../gtk/gtkbutton.c:449
+#: ../gtk/gtkbutton.c:450
 msgid "Default Spacing"
 msgstr "Espazamento predeterminado"
 
-#: ../gtk/gtkbutton.c:450
+#: ../gtk/gtkbutton.c:451
 msgid "Extra space to add for GTK_CAN_DEFAULT buttons"
 msgstr "Espazo adicional que engadir para os botóns GTK_CAN_DEFAULT"
 
-#: ../gtk/gtkbutton.c:464
+#: ../gtk/gtkbutton.c:465
 msgid "Default Outside Spacing"
 msgstr "Espazamento exterior predeterminado"
 
-#: ../gtk/gtkbutton.c:465
+#: ../gtk/gtkbutton.c:466
 msgid ""
 "Extra space to add for GTK_CAN_DEFAULT buttons that is always drawn outside "
 "the border"
@@ -1060,31 +1060,31 @@ msgstr ""
 "Espazo adicional que engadir para os botóns GTK_CAN_DEFAULT que son sempre "
 "debuxados fóra do bordo"
 
-#: ../gtk/gtkbutton.c:470
+#: ../gtk/gtkbutton.c:471
 msgid "Child X Displacement"
 msgstr "Desprazamento X do fillo"
 
-#: ../gtk/gtkbutton.c:471
+#: ../gtk/gtkbutton.c:472
 msgid ""
 "How far in the x direction to move the child when the button is depressed"
 msgstr ""
 "Distancia na dirección X que debe moverse o fillo cando se solta o botón"
 
-#: ../gtk/gtkbutton.c:478
+#: ../gtk/gtkbutton.c:479
 msgid "Child Y Displacement"
 msgstr "Desprazamento Y do fillo"
 
-#: ../gtk/gtkbutton.c:479
+#: ../gtk/gtkbutton.c:480
 msgid ""
 "How far in the y direction to move the child when the button is depressed"
 msgstr ""
 "Distancia na dirección Y que debe moverse o fillo cando se solta o botón"
 
-#: ../gtk/gtkbutton.c:495
+#: ../gtk/gtkbutton.c:496
 msgid "Displace focus"
 msgstr "Desprazar o foco"
 
-#: ../gtk/gtkbutton.c:496
+#: ../gtk/gtkbutton.c:497
 msgid ""
 "Whether the child_displacement_x/_y properties should also affect the focus "
 "rectangle"
@@ -1092,43 +1092,43 @@ msgstr ""
 "Indica se as propiedades child_displacement_x/_y deberían afectar tamén ao "
 "rectángulo do foco"
 
-#: ../gtk/gtkbutton.c:509 ../gtk/gtkentry.c:791 ../gtk/gtkentry.c:1866
+#: ../gtk/gtkbutton.c:510 ../gtk/gtkentry.c:794 ../gtk/gtkentry.c:1869
 msgid "Inner Border"
 msgstr "Bordo interior"
 
-#: ../gtk/gtkbutton.c:510
+#: ../gtk/gtkbutton.c:511
 msgid "Border between button edges and child."
 msgstr "Bordo entre os bordos do botón e o fillo."
 
-#: ../gtk/gtkbutton.c:523
+#: ../gtk/gtkbutton.c:524
 msgid "Image spacing"
 msgstr "Espazamento da imaxe"
 
-#: ../gtk/gtkbutton.c:524
+#: ../gtk/gtkbutton.c:525
 msgid "Spacing in pixels between the image and label"
 msgstr "Espazamento en píxeles entre a imaxe e a etiqueta"
 
-#: ../gtk/gtkcalendar.c:467
+#: ../gtk/gtkcalendar.c:471
 msgid "Year"
 msgstr "Ano"
 
-#: ../gtk/gtkcalendar.c:468
+#: ../gtk/gtkcalendar.c:472
 msgid "The selected year"
 msgstr "O ano seleccionado"
 
-#: ../gtk/gtkcalendar.c:481
+#: ../gtk/gtkcalendar.c:485
 msgid "Month"
 msgstr "Mes"
 
-#: ../gtk/gtkcalendar.c:482
+#: ../gtk/gtkcalendar.c:486
 msgid "The selected month (as a number between 0 and 11)"
 msgstr "O mes seleccionado (como número entre 0 e 11)"
 
-#: ../gtk/gtkcalendar.c:496
+#: ../gtk/gtkcalendar.c:500
 msgid "Day"
 msgstr "Día"
 
-#: ../gtk/gtkcalendar.c:497
+#: ../gtk/gtkcalendar.c:501
 msgid ""
 "The selected day (as a number between 1 and 31, or 0 to unselect the "
 "currently selected day)"
@@ -1136,83 +1136,83 @@ msgstr ""
 "O día seleccionado (como un número entre 1 e 31 ou 0 para anular a selección "
 "do día seleccionado actualmente)"
 
-#: ../gtk/gtkcalendar.c:511
+#: ../gtk/gtkcalendar.c:515
 msgid "Show Heading"
 msgstr "Mostrar a cabeceira"
 
-#: ../gtk/gtkcalendar.c:512
+#: ../gtk/gtkcalendar.c:516
 msgid "If TRUE, a heading is displayed"
 msgstr "Se é TRUE, móstrase unha cabeceira"
 
-#: ../gtk/gtkcalendar.c:526
+#: ../gtk/gtkcalendar.c:530
 msgid "Show Day Names"
 msgstr "Mostrar os nomes dos días"
 
-#: ../gtk/gtkcalendar.c:527
+#: ../gtk/gtkcalendar.c:531
 msgid "If TRUE, day names are displayed"
 msgstr "Se é TRUE, móstranse os nomes dos días"
 
-#: ../gtk/gtkcalendar.c:540
+#: ../gtk/gtkcalendar.c:544
 msgid "No Month Change"
 msgstr "Sen cambio de mes"
 
-#: ../gtk/gtkcalendar.c:541
+#: ../gtk/gtkcalendar.c:545
 msgid "If TRUE, the selected month cannot be changed"
 msgstr "Se é TRUE, non será posíbel cambiar o mes seleccionado"
 
-#: ../gtk/gtkcalendar.c:555
+#: ../gtk/gtkcalendar.c:559
 msgid "Show Week Numbers"
 msgstr "Mostrar os números de semana"
 
-#: ../gtk/gtkcalendar.c:556
+#: ../gtk/gtkcalendar.c:560
 msgid "If TRUE, week numbers are displayed"
 msgstr "Se é TRUE, móstranse os números de semana"
 
-#: ../gtk/gtkcalendar.c:571
+#: ../gtk/gtkcalendar.c:575
 msgid "Details Width"
 msgstr "Largura dos detalles"
 
-#: ../gtk/gtkcalendar.c:572
+#: ../gtk/gtkcalendar.c:576
 msgid "Details width in characters"
 msgstr "A largura dos detalles en caracteres"
 
-#: ../gtk/gtkcalendar.c:587
+#: ../gtk/gtkcalendar.c:591
 msgid "Details Height"
 msgstr "Altura dos detalles"
 
-#: ../gtk/gtkcalendar.c:588
+#: ../gtk/gtkcalendar.c:592
 msgid "Details height in rows"
 msgstr "A altura dos detalles en caracteres"
 
-#: ../gtk/gtkcalendar.c:604
+#: ../gtk/gtkcalendar.c:608
 msgid "Show Details"
 msgstr "Mostrar os detalles"
 
-#: ../gtk/gtkcalendar.c:605
+#: ../gtk/gtkcalendar.c:609
 msgid "If TRUE, details are shown"
 msgstr "Se é TRUE móstranse os detalles"
 
-#: ../gtk/gtkcalendar.c:617
+#: ../gtk/gtkcalendar.c:621
 msgid "Inner border"
 msgstr "Bordo interior"
 
-#: ../gtk/gtkcalendar.c:618
+#: ../gtk/gtkcalendar.c:622
 msgid "Inner border space"
 msgstr "Espacio do bordo interior"
 
-#: ../gtk/gtkcalendar.c:629
+#: ../gtk/gtkcalendar.c:633
 msgid "Vertical separation"
 msgstr "Separación vertical"
 
-#: ../gtk/gtkcalendar.c:630
+#: ../gtk/gtkcalendar.c:634
 msgid "Space between day headers and main area"
 msgstr "Espazo entre as cabeceiras de día e o área principal"
 
-#: ../gtk/gtkcalendar.c:641
+#: ../gtk/gtkcalendar.c:645
 msgid "Horizontal separation"
 msgstr "Separación horizontal"
 
-#: ../gtk/gtkcalendar.c:642
+#: ../gtk/gtkcalendar.c:646
 msgid "Space between week headers and main area"
 msgstr "Espazo entre as cabeceiras de semana e o área principal"
 
@@ -1276,28 +1276,28 @@ msgstr "Widget editada"
 msgid "The widget currently editing the edited cell"
 msgstr "O widget que actualmente está editando a cela editada"
 
-#: ../gtk/gtkcellareacontext.c:127
+#: ../gtk/gtkcellareacontext.c:119
 msgid "Area"
 msgstr "Área"
 
-#: ../gtk/gtkcellareacontext.c:128
+#: ../gtk/gtkcellareacontext.c:120
 msgid "The Cell Area this context was created for"
 msgstr "A área da cela para a que se creou este contexto"
 
-#: ../gtk/gtkcellareacontext.c:144 ../gtk/gtkcellareacontext.c:163
+#: ../gtk/gtkcellareacontext.c:136 ../gtk/gtkcellareacontext.c:155
 #: ../gtk/gtktreeviewcolumn.c:311
 msgid "Minimum Width"
 msgstr "Largura mínima"
 
-#: ../gtk/gtkcellareacontext.c:145 ../gtk/gtkcellareacontext.c:164
+#: ../gtk/gtkcellareacontext.c:137 ../gtk/gtkcellareacontext.c:156
 msgid "Minimum cached width"
 msgstr "Anchura mínima cacheada"
 
-#: ../gtk/gtkcellareacontext.c:182 ../gtk/gtkcellareacontext.c:201
+#: ../gtk/gtkcellareacontext.c:174 ../gtk/gtkcellareacontext.c:193
 msgid "Minimum Height"
 msgstr "Altura mínima"
 
-#: ../gtk/gtkcellareacontext.c:183 ../gtk/gtkcellareacontext.c:202
+#: ../gtk/gtkcellareacontext.c:175 ../gtk/gtkcellareacontext.c:194
 msgid "Minimum cached height"
 msgstr "Altura mínima cacheada"
 
@@ -1481,7 +1481,7 @@ msgstr "Columna de texto"
 msgid "A column in the data source model to get the strings from"
 msgstr "Unha columna no modelo de orixe de datos da que se obteñen as cadeas"
 
-#: ../gtk/gtkcellrenderercombo.c:171 ../gtk/gtkcombobox.c:858
+#: ../gtk/gtkcellrenderercombo.c:171 ../gtk/gtkcombobox.c:859
 msgid "Has Entry"
 msgstr "Ten entrada"
 
@@ -1513,7 +1513,7 @@ msgstr "O pixbuf do expansor pechado"
 msgid "Pixbuf for closed expander"
 msgstr "O pixbuf para o expansor pechado"
 
-#: ../gtk/gtkcellrendererpixbuf.c:164 ../gtk/gtkimage.c:252
+#: ../gtk/gtkcellrendererpixbuf.c:164 ../gtk/gtkimage.c:254
 #: ../gtk/gtkstatusicon.c:251
 msgid "Stock ID"
 msgstr "ID de inventario"
@@ -1547,8 +1547,8 @@ msgstr "Seguir o estado"
 msgid "Whether the rendered pixbuf should be colorized according to the state"
 msgstr "Indica se o pixbuf renderizado debería colorearse de acordo co estado"
 
-#: ../gtk/gtkcellrendererpixbuf.c:234 ../gtk/gtkimage.c:327
-#: ../gtk/gtkwindow.c:700
+#: ../gtk/gtkcellrendererpixbuf.c:234 ../gtk/gtkimage.c:329
+#: ../gtk/gtkwindow.c:701
 msgid "Icon"
 msgstr "Icona"
 
@@ -1557,8 +1557,8 @@ msgid "Value of the progress bar"
 msgstr "Valor da barra de progreso"
 
 #: ../gtk/gtkcellrendererprogress.c:156 ../gtk/gtkcellrenderertext.c:254
-#: ../gtk/gtkentry.c:834 ../gtk/gtkentrybuffer.c:352
-#: ../gtk/gtkmessagedialog.c:227 ../gtk/gtkprogressbar.c:174
+#: ../gtk/gtkentrybuffer.c:352 ../gtk/gtkentry.c:837
+#: ../gtk/gtkmessagedialog.c:227 ../gtk/gtkprogressbar.c:176
 #: ../gtk/gtktextbuffer.c:221
 msgid "Text"
 msgstr "Texto"
@@ -1599,21 +1599,21 @@ msgstr "Aliñamento y do texto"
 msgid "The vertical text alignment, from 0 (top) to 1 (bottom)."
 msgstr "O aliñamento vertical do texto, desde 0 (superior) até 1 (inferior)."
 
-#: ../gtk/gtkcellrendererprogress.c:226 ../gtk/gtkprogressbar.c:150
-#: ../gtk/gtkrange.c:425
+#: ../gtk/gtkcellrendererprogress.c:226 ../gtk/gtkprogressbar.c:152
+#: ../gtk/gtkrange.c:426
 msgid "Inverted"
 msgstr "Invertido"
 
-#: ../gtk/gtkcellrendererprogress.c:227 ../gtk/gtkprogressbar.c:151
+#: ../gtk/gtkcellrendererprogress.c:227 ../gtk/gtkprogressbar.c:153
 msgid "Invert the direction in which the progress bar grows"
 msgstr "Inverter a dirección na que crece a barra de progreso"
 
-#: ../gtk/gtkcellrendererspin.c:113 ../gtk/gtkrange.c:417
-#: ../gtk/gtkscalebutton.c:236 ../gtk/gtkspinbutton.c:321
+#: ../gtk/gtkcellrendererspin.c:113 ../gtk/gtkrange.c:418
+#: ../gtk/gtkscalebutton.c:237 ../gtk/gtkspinbutton.c:323
 msgid "Adjustment"
 msgstr "Axuste"
 
-#: ../gtk/gtkcellrendererspin.c:114 ../gtk/gtkspinbutton.c:322
+#: ../gtk/gtkcellrendererspin.c:114 ../gtk/gtkspinbutton.c:324
 msgid "The adjustment that holds the value of the spin button"
 msgstr "O axuste que mantén o valor do botón de axuste"
 
@@ -1621,22 +1621,22 @@ msgstr "O axuste que mantén o valor do botón de axuste"
 msgid "Climb rate"
 msgstr "Taxa de incremento"
 
-#: ../gtk/gtkcellrendererspin.c:130 ../gtk/gtkspinbutton.c:330
+#: ../gtk/gtkcellrendererspin.c:130 ../gtk/gtkspinbutton.c:332
 msgid "The acceleration rate when you hold down a button"
 msgstr "A taxa de aceleración cando mantén premido un botón"
 
-#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:252
-#: ../gtk/gtkspinbutton.c:339
+#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:254
+#: ../gtk/gtkspinbutton.c:341
 msgid "Digits"
 msgstr "Díxitos"
 
-#: ../gtk/gtkcellrendererspin.c:144 ../gtk/gtkspinbutton.c:340
+#: ../gtk/gtkcellrendererspin.c:144 ../gtk/gtkspinbutton.c:342
 msgid "The number of decimal places to display"
 msgstr "O número de lugares decimais que se vai mostrar"
 
-#: ../gtk/gtkcellrendererspinner.c:119 ../gtk/gtkcheckmenuitem.c:122
-#: ../gtk/gtkmenu.c:587 ../gtk/gtkspinner.c:117 ../gtk/gtkswitch.c:800
-#: ../gtk/gtktoggleaction.c:133 ../gtk/gtktogglebutton.c:177
+#: ../gtk/gtkcellrendererspinner.c:119 ../gtk/gtkcheckmenuitem.c:123
+#: ../gtk/gtkmenu.c:588 ../gtk/gtkspinner.c:115 ../gtk/gtkswitch.c:784
+#: ../gtk/gtktoggleaction.c:133 ../gtk/gtktogglebutton.c:178
 #: ../gtk/gtktoggletoolbutton.c:127
 msgid "Active"
 msgstr "Activo"
@@ -1665,7 +1665,7 @@ msgstr "Marcación"
 msgid "Marked up text to render"
 msgstr "Texto marcado para renderizar"
 
-#: ../gtk/gtkcellrenderertext.c:270 ../gtk/gtklabel.c:749
+#: ../gtk/gtkcellrenderertext.c:270 ../gtk/gtklabel.c:751
 msgid "Attributes"
 msgstr "Atributos"
 
@@ -1736,13 +1736,13 @@ msgstr "Cor de primeiro plano como RGBA"
 msgid "Foreground color as a GdkRGBA"
 msgstr "Cor de primeiro plano como GdkRGBA"
 
-#: ../gtk/gtkcellrenderertext.c:349 ../gtk/gtkentry.c:758
-#: ../gtk/gtktexttag.c:278 ../gtk/gtktextview.c:685
+#: ../gtk/gtkcellrenderertext.c:349 ../gtk/gtkentry.c:761
+#: ../gtk/gtktexttag.c:278 ../gtk/gtktextview.c:686
 msgid "Editable"
 msgstr "Editábel"
 
 #: ../gtk/gtkcellrenderertext.c:350 ../gtk/gtktexttag.c:279
-#: ../gtk/gtktextview.c:686
+#: ../gtk/gtktextview.c:687
 msgid "Whether the text can be modified by the user"
 msgstr "Indica se o usuario pode modificar o texto"
 
@@ -1852,8 +1852,8 @@ msgstr ""
 "isto como unha axuda cando está renderizando o texto. Se non comprende este "
 "parámetro probabelmente non o necesite"
 
-#: ../gtk/gtkcellrenderertext.c:499 ../gtk/gtklabel.c:874
-#: ../gtk/gtkprogressbar.c:214
+#: ../gtk/gtkcellrenderertext.c:499 ../gtk/gtklabel.c:876
+#: ../gtk/gtkprogressbar.c:216
 msgid "Ellipsize"
 msgstr "Elipsis"
 
@@ -1866,15 +1866,15 @@ msgstr ""
 "espazo suficiente para mostrar a cadea completa"
 
 #: ../gtk/gtkcellrenderertext.c:519 ../gtk/gtkfilechooserbutton.c:454
-#: ../gtk/gtklabel.c:895
+#: ../gtk/gtklabel.c:897
 msgid "Width In Characters"
 msgstr "Largura en caracteres"
 
-#: ../gtk/gtkcellrenderertext.c:520 ../gtk/gtklabel.c:896
+#: ../gtk/gtkcellrenderertext.c:520 ../gtk/gtklabel.c:898
 msgid "The desired width of the label, in characters"
 msgstr "A largura desexada da etiqueta, en caracteres"
 
-#: ../gtk/gtkcellrenderertext.c:544 ../gtk/gtklabel.c:956
+#: ../gtk/gtkcellrenderertext.c:544 ../gtk/gtklabel.c:958
 msgid "Maximum Width In Characters"
 msgstr "Largura máxima en caracteres"
 
@@ -1894,7 +1894,7 @@ msgstr ""
 "Como romper a cadea en liñas múltiples, se o renderizador da cela non ten "
 "suficiente espazo para mostrar a cadea completa"
 
-#: ../gtk/gtkcellrenderertext.c:583 ../gtk/gtkcombobox.c:680
+#: ../gtk/gtkcellrenderertext.c:583 ../gtk/gtkcombobox.c:681
 msgid "Wrap width"
 msgstr "Largura de axuste"
 
@@ -2077,7 +2077,7 @@ msgid "Indicator size"
 msgstr "Tamaño do indicador"
 
 #: ../gtk/gtkcellrenderertoggle.c:173 ../gtk/gtkcheckbutton.c:93
-#: ../gtk/gtkcheckmenuitem.c:146
+#: ../gtk/gtkcheckmenuitem.c:147
 msgid "Size of check or radio indicator"
 msgstr "Tamaño do indicador de opción ou de verificación"
 
@@ -2093,13 +2093,13 @@ msgstr "Modelo CellView"
 msgid "The model for cell view"
 msgstr "O modelo para a visualización de cela"
 
-#: ../gtk/gtkcellview.c:246 ../gtk/gtkcombobox.c:944
+#: ../gtk/gtkcellview.c:246 ../gtk/gtkcombobox.c:945
 #: ../gtk/gtkentrycompletion.c:448 ../gtk/gtkiconview.c:769
 #: ../gtk/gtktreemenu.c:329 ../gtk/gtktreeviewcolumn.c:427
 msgid "Cell Area"
 msgstr "Área da cela"
 
-#: ../gtk/gtkcellview.c:247 ../gtk/gtkcombobox.c:945
+#: ../gtk/gtkcellview.c:247 ../gtk/gtkcombobox.c:946
 #: ../gtk/gtkentrycompletion.c:449 ../gtk/gtkiconview.c:770
 #: ../gtk/gtktreemenu.c:330 ../gtk/gtktreeviewcolumn.c:428
 msgid "The GtkCellArea used to layout cells"
@@ -2131,11 +2131,11 @@ msgid "Whether to request enough space for every row in the model"
 msgstr ""
 "Indica se solicitar ou non o espazo suficiente para cada fila no modelo"
 
-#: ../gtk/gtkcheckbutton.c:92 ../gtk/gtkcheckmenuitem.c:145
+#: ../gtk/gtkcheckbutton.c:92 ../gtk/gtkcheckmenuitem.c:146
 msgid "Indicator Size"
 msgstr "Tamaño do indicador"
 
-#: ../gtk/gtkcheckbutton.c:100 ../gtk/gtkexpander.c:363
+#: ../gtk/gtkcheckbutton.c:100 ../gtk/gtkexpander.c:364
 msgid "Indicator Spacing"
 msgstr "Espazamento do indicador"
 
@@ -2143,23 +2143,23 @@ msgstr "Espazamento do indicador"
 msgid "Spacing around check or radio indicator"
 msgstr "Espazamento ao redor do indicador de opción ou de verificación"
 
-#: ../gtk/gtkcheckmenuitem.c:123
+#: ../gtk/gtkcheckmenuitem.c:124
 msgid "Whether the menu item is checked"
 msgstr "Indica se o elemento de menú está seleccionado"
 
-#: ../gtk/gtkcheckmenuitem.c:130 ../gtk/gtktogglebutton.c:185
+#: ../gtk/gtkcheckmenuitem.c:131 ../gtk/gtktogglebutton.c:186
 msgid "Inconsistent"
 msgstr "Inconsistente"
 
-#: ../gtk/gtkcheckmenuitem.c:131
+#: ../gtk/gtkcheckmenuitem.c:132
 msgid "Whether to display an \"inconsistent\" state"
 msgstr "Indica se se debe mostrar un estado \"inconsistente\""
 
-#: ../gtk/gtkcheckmenuitem.c:138
+#: ../gtk/gtkcheckmenuitem.c:139
 msgid "Draw as radio menu item"
 msgstr "Debuxar como un elemento do menú de opción"
 
-#: ../gtk/gtkcheckmenuitem.c:139
+#: ../gtk/gtkcheckmenuitem.c:140
 msgid "Whether the menu item looks like a radio menu item"
 msgstr ""
 "Indica se a aparencia do elemento de menú é como un elemento do menú de "
@@ -2275,68 +2275,68 @@ msgstr "Botón Axuda"
 msgid "The help button of the dialog."
 msgstr "O botón Axuda do diálogo."
 
-#: ../gtk/gtkcombobox.c:663
+#: ../gtk/gtkcombobox.c:664
 msgid "ComboBox model"
 msgstr "Modelo de caixa de combinación"
 
-#: ../gtk/gtkcombobox.c:664
+#: ../gtk/gtkcombobox.c:665
 msgid "The model for the combo box"
 msgstr "O modelo para a caixa de combinación"
 
-#: ../gtk/gtkcombobox.c:681
+#: ../gtk/gtkcombobox.c:682
 msgid "Wrap width for laying out the items in a grid"
 msgstr "Largura de axuste para distribuír os elementos nunha grella"
 
-#: ../gtk/gtkcombobox.c:703 ../gtk/gtktreemenu.c:383
+#: ../gtk/gtkcombobox.c:704 ../gtk/gtktreemenu.c:383
 msgid "Row span column"
 msgstr "Columna de expansión da fila"
 
-#: ../gtk/gtkcombobox.c:704 ../gtk/gtktreemenu.c:384
+#: ../gtk/gtkcombobox.c:705 ../gtk/gtktreemenu.c:384
 msgid "TreeModel column containing the row span values"
 msgstr "Columna TreeModel que contén os valores de expansión da fila"
 
-#: ../gtk/gtkcombobox.c:725 ../gtk/gtktreemenu.c:404
+#: ../gtk/gtkcombobox.c:726 ../gtk/gtktreemenu.c:404
 msgid "Column span column"
 msgstr "Columna de expansión da columna"
 
-#: ../gtk/gtkcombobox.c:726 ../gtk/gtktreemenu.c:405
+#: ../gtk/gtkcombobox.c:727 ../gtk/gtktreemenu.c:405
 msgid "TreeModel column containing the column span values"
 msgstr "Columna TreeModel que contén os valores de expansión da columna"
 
-#: ../gtk/gtkcombobox.c:747
+#: ../gtk/gtkcombobox.c:748
 msgid "Active item"
 msgstr "Elemento activo"
 
-#: ../gtk/gtkcombobox.c:748
+#: ../gtk/gtkcombobox.c:749
 msgid "The item which is currently active"
 msgstr "O elemento que está activo actualmente"
 
-#: ../gtk/gtkcombobox.c:767 ../gtk/gtkuimanager.c:479
+#: ../gtk/gtkcombobox.c:768 ../gtk/gtkuimanager.c:479
 msgid "Add tearoffs to menus"
 msgstr "Engadir tiradores aos menús"
 
-#: ../gtk/gtkcombobox.c:768
+#: ../gtk/gtkcombobox.c:769
 msgid "Whether dropdowns should have a tearoff menu item"
 msgstr ""
 "Indica se os menús despregábeis deben ter un elemento de menú desprazábel"
 
-#: ../gtk/gtkcombobox.c:783 ../gtk/gtkentry.c:783
+#: ../gtk/gtkcombobox.c:784 ../gtk/gtkentry.c:786
 msgid "Has Frame"
 msgstr "Ten marco"
 
-#: ../gtk/gtkcombobox.c:784
+#: ../gtk/gtkcombobox.c:785
 msgid "Whether the combo box draws a frame around the child"
 msgstr "Indica se a caixa de combinación debuxa un marco ao redor do fillo"
 
-#: ../gtk/gtkcombobox.c:792
+#: ../gtk/gtkcombobox.c:793
 msgid "Whether the combo box grabs focus when it is clicked with the mouse"
 msgstr "Indica se a caixa de combinación captura o foco cando se preme co rato"
 
-#: ../gtk/gtkcombobox.c:807 ../gtk/gtkmenu.c:642
+#: ../gtk/gtkcombobox.c:808 ../gtk/gtkmenu.c:643
 msgid "Tearoff Title"
 msgstr "Título do tirador"
 
-#: ../gtk/gtkcombobox.c:808
+#: ../gtk/gtkcombobox.c:809
 msgid ""
 "A title that may be displayed by the window manager when the popup is torn-"
 "off"
@@ -2344,31 +2344,31 @@ msgstr ""
 "Un título que o xestor de xanelas pode mostrar cando o menú emerxente se "
 "separa"
 
-#: ../gtk/gtkcombobox.c:825
+#: ../gtk/gtkcombobox.c:826
 msgid "Popup shown"
 msgstr "Menú emerxente mostrado"
 
-#: ../gtk/gtkcombobox.c:826
+#: ../gtk/gtkcombobox.c:827
 msgid "Whether the combo's dropdown is shown"
 msgstr "Indica se se mostra o despregábel da caixa de combinación"
 
-#: ../gtk/gtkcombobox.c:842
+#: ../gtk/gtkcombobox.c:843
 msgid "Button Sensitivity"
 msgstr "Sensibilidade do botón"
 
-#: ../gtk/gtkcombobox.c:843
+#: ../gtk/gtkcombobox.c:844
 msgid "Whether the dropdown button is sensitive when the model is empty"
 msgstr "Indica se o botón despregábel é sensíbel cando o modelo está baleiro"
 
-#: ../gtk/gtkcombobox.c:859
+#: ../gtk/gtkcombobox.c:860
 msgid "Whether combo box has an entry"
 msgstr "Indica se o ComboBox ten unha entrada"
 
-#: ../gtk/gtkcombobox.c:874
+#: ../gtk/gtkcombobox.c:875
 msgid "Entry Text Column"
 msgstr "Columna de entrada de texto"
 
-#: ../gtk/gtkcombobox.c:875
+#: ../gtk/gtkcombobox.c:876
 msgid ""
 "The column in the combo box's model to associate with strings from the entry "
 "if the combo was created with #GtkComboBox:has-entry = %TRUE"
@@ -2376,11 +2376,11 @@ msgstr ""
 "A columna no modelo de caixa de combinación para asociar con cadeas da "
 "entrada se a caixa combinada creouse con #GtkComboBox:has-entry = %TRUE"
 
-#: ../gtk/gtkcombobox.c:892
+#: ../gtk/gtkcombobox.c:893
 msgid "ID Column"
 msgstr "ID da columna"
 
-#: ../gtk/gtkcombobox.c:893
+#: ../gtk/gtkcombobox.c:894
 msgid ""
 "The column in the combo box's model that provides string IDs for the values "
 "in the model"
@@ -2388,19 +2388,19 @@ msgstr ""
 "A columna no modelo de caixa de combinación que fornece os ID de cadeas para "
 "os valores no modelo"
 
-#: ../gtk/gtkcombobox.c:908
+#: ../gtk/gtkcombobox.c:909
 msgid "Active id"
 msgstr "ID activo"
 
-#: ../gtk/gtkcombobox.c:909
+#: ../gtk/gtkcombobox.c:910
 msgid "The value of the id column for the active row"
 msgstr "O valor do ID da columna para a fila activa"
 
-#: ../gtk/gtkcombobox.c:924
+#: ../gtk/gtkcombobox.c:925
 msgid "Popup Fixed Width"
 msgstr "Anchura fixa de emerxente"
 
-#: ../gtk/gtkcombobox.c:925
+#: ../gtk/gtkcombobox.c:926
 msgid ""
 "Whether the popup's width should be a fixed width matching the allocated "
 "width of the combo box"
@@ -2408,33 +2408,33 @@ msgstr ""
 "Indica se a anchura do emerxente debería ser fixa coincidindo coa anchura "
 "reservada para a caixa de combinación"
 
-#: ../gtk/gtkcombobox.c:951
+#: ../gtk/gtkcombobox.c:952
 msgid "Appears as list"
 msgstr "Móstrase como unha lista"
 
-#: ../gtk/gtkcombobox.c:952
+#: ../gtk/gtkcombobox.c:953
 msgid "Whether dropdowns should look like lists rather than menus"
 msgstr "Indica se os despregábeis deben parecerse a listas en vez de a menús"
 
-#: ../gtk/gtkcombobox.c:968
+#: ../gtk/gtkcombobox.c:969
 msgid "Arrow Size"
 msgstr "Tamaño da frecha"
 
-#: ../gtk/gtkcombobox.c:969
+#: ../gtk/gtkcombobox.c:970
 msgid "The minimum size of the arrow in the combo box"
 msgstr "O tamaño mínimo da frecha no caixa de combinación"
 
-#: ../gtk/gtkcombobox.c:986
+#: ../gtk/gtkcombobox.c:987
 msgid "The amount of space used by the arrow"
 msgstr "Cantidade de espazo usada pola frecha"
 
-#: ../gtk/gtkcombobox.c:1001 ../gtk/gtkentry.c:883 ../gtk/gtkhandlebox.c:218
-#: ../gtk/gtkmenubar.c:216 ../gtk/gtkstatusbar.c:181 ../gtk/gtktoolbar.c:603
+#: ../gtk/gtkcombobox.c:1002 ../gtk/gtkentry.c:886 ../gtk/gtkhandlebox.c:218
+#: ../gtk/gtkmenubar.c:217 ../gtk/gtkstatusbar.c:182 ../gtk/gtktoolbar.c:611
 #: ../gtk/gtkviewport.c:153
 msgid "Shadow type"
 msgstr "Tipo de sombra"
 
-#: ../gtk/gtkcombobox.c:1002
+#: ../gtk/gtkcombobox.c:1003
 msgid "Which kind of shadow to draw around the combo box"
 msgstr "A clase de sombra que se debuxa ao redor da caixa de combinación"
 
@@ -2496,48 +2496,60 @@ msgstr ""
 "Largura do bordo ao redor da área do botón na parte inferior da caixa de "
 "diálogo"
 
-#: ../gtk/gtkentry.c:730
+#: ../gtk/gtkentrybuffer.c:353
+msgid "The contents of the buffer"
+msgstr "Os contidos do búfer"
+
+#: ../gtk/gtkentrybuffer.c:367 ../gtk/gtkentry.c:917
+msgid "Text length"
+msgstr "Lonxitude de texto"
+
+#: ../gtk/gtkentrybuffer.c:368
+msgid "Length of the text currently in the buffer"
+msgstr "A lonxitude do texto que está actualmente no búfer"
+
+#: ../gtk/gtkentrybuffer.c:382 ../gtk/gtkentry.c:769
+msgid "Maximum length"
+msgstr "Lonxitude máxima"
+
+#: ../gtk/gtkentrybuffer.c:383 ../gtk/gtkentry.c:770
+msgid "Maximum number of characters for this entry. Zero if no maximum"
+msgstr "Número máximo de caracteres nesta entrada. É cero se non hai un máximo"
+
+#: ../gtk/gtkentry.c:733
 msgid "Text Buffer"
 msgstr "Búfer de texto"
 
-#: ../gtk/gtkentry.c:731
+#: ../gtk/gtkentry.c:734
 msgid "Text buffer object which actually stores entry text"
 msgstr "Obxecto de búfer de texto que almacena actualmente a entrada de texto"
 
-#: ../gtk/gtkentry.c:738 ../gtk/gtklabel.c:837
+#: ../gtk/gtkentry.c:741 ../gtk/gtklabel.c:839
 msgid "Cursor Position"
 msgstr "Posición do cursor"
 
-#: ../gtk/gtkentry.c:739 ../gtk/gtklabel.c:838
+#: ../gtk/gtkentry.c:742 ../gtk/gtklabel.c:840
 msgid "The current position of the insertion cursor in chars"
 msgstr "A posición actual do cursor de inserción en caracteres"
 
-#: ../gtk/gtkentry.c:748 ../gtk/gtklabel.c:847
+#: ../gtk/gtkentry.c:751 ../gtk/gtklabel.c:849
 msgid "Selection Bound"
 msgstr "Límite da selección"
 
-#: ../gtk/gtkentry.c:749 ../gtk/gtklabel.c:848
+#: ../gtk/gtkentry.c:752 ../gtk/gtklabel.c:850
 msgid ""
 "The position of the opposite end of the selection from the cursor in chars"
 msgstr "A posición en caracteres do extremo oposto da selección desde o cursor"
 
-#: ../gtk/gtkentry.c:759
+#: ../gtk/gtkentry.c:762
 msgid "Whether the entry contents can be edited"
 msgstr "Indica se os contidos da entrada se poden editar"
 
-#: ../gtk/gtkentry.c:766 ../gtk/gtkentrybuffer.c:382
-msgid "Maximum length"
-msgstr "Lonxitude máxima"
-
-#: ../gtk/gtkentry.c:767 ../gtk/gtkentrybuffer.c:383
-msgid "Maximum number of characters for this entry. Zero if no maximum"
-msgstr "Número máximo de caracteres nesta entrada. É cero se non hai un máximo"
-
-#: ../gtk/gtkentry.c:775
+#: ../gtk/gtkentry.c:778
 msgid "Visibility"
 msgstr "Visibilidade"
 
-#: ../gtk/gtkentry.c:776
+#: ../gtk/gtkentry.c:779
 msgid ""
 "FALSE displays the \"invisible char\" instead of the actual text (password "
 "mode)"
@@ -2545,32 +2557,32 @@ msgstr ""
 "FALSE mostra o \"carácter invisíbel\" en lugar do texto actual (no modo "
 "contrasinal)"
 
-#: ../gtk/gtkentry.c:784
+#: ../gtk/gtkentry.c:787
 msgid "FALSE removes outside bevel from entry"
 msgstr "FALSE elimina o bisel exterior da entrada"
 
-#: ../gtk/gtkentry.c:792
+#: ../gtk/gtkentry.c:795
 msgid ""
 "Border between text and frame. Overrides the inner-border style property"
 msgstr ""
 "Bordo entre o texto e o marco. Sobreponse á propiedade de estilo do bordo "
 "interno"
 
-#: ../gtk/gtkentry.c:799 ../gtk/gtkentry.c:1395
+#: ../gtk/gtkentry.c:802 ../gtk/gtkentry.c:1398
 msgid "Invisible character"
 msgstr "Carácter invisíbel"
 
-#: ../gtk/gtkentry.c:800 ../gtk/gtkentry.c:1396
+#: ../gtk/gtkentry.c:803 ../gtk/gtkentry.c:1399
 msgid "The character to use when masking entry contents (in \"password mode\")"
 msgstr ""
 "O carácter que usar cando se oculten os contidos da entrada (no \"modo de "
 "contrasinal\")"
 
-#: ../gtk/gtkentry.c:807
+#: ../gtk/gtkentry.c:810
 msgid "Activates default"
 msgstr "Activa o predeterminado"
 
-#: ../gtk/gtkentry.c:808
+#: ../gtk/gtkentry.c:811
 msgid ""
 "Whether to activate the default widget (such as the default button in a "
 "dialog) when Enter is pressed"
@@ -2578,32 +2590,32 @@ msgstr ""
 "Indica se se debe activar o widget predeterminado (como o botón "
 "predeterminado nunha caixa de diálogo) cando se prema a tecla Intro"
 
-#: ../gtk/gtkentry.c:814
+#: ../gtk/gtkentry.c:817
 msgid "Width in chars"
 msgstr "Largura en caracteres"
 
-#: ../gtk/gtkentry.c:815
+#: ../gtk/gtkentry.c:818
 msgid "Number of characters to leave space for in the entry"
 msgstr "Número de caracteres para os que deixar espazo na entrada"
 
-#: ../gtk/gtkentry.c:824
+#: ../gtk/gtkentry.c:827
 msgid "Scroll offset"
 msgstr "Compensación do desprazamento"
 
-#: ../gtk/gtkentry.c:825
+#: ../gtk/gtkentry.c:828
 msgid "Number of pixels of the entry scrolled off the screen to the left"
 msgstr ""
 "Número de píxeles da entrada desprazados fóra da pantalla e cara á esquerda"
 
-#: ../gtk/gtkentry.c:835
+#: ../gtk/gtkentry.c:838
 msgid "The contents of the entry"
 msgstr "Os contidos da entrada"
 
-#: ../gtk/gtkentry.c:850 ../gtk/gtkmisc.c:105
+#: ../gtk/gtkentry.c:853 ../gtk/gtkmisc.c:105
 msgid "X align"
 msgstr "Aliñamento X"
 
-#: ../gtk/gtkentry.c:851 ../gtk/gtkmisc.c:106
+#: ../gtk/gtkentry.c:854 ../gtk/gtkmisc.c:106
 msgid ""
 "The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL "
 "layouts."
@@ -2611,66 +2623,62 @@ msgstr ""
 "O aliñamento horizontal, desde 0 (esquerda) até 1 (dereita). Ao revés para "
 "disposicións DAE."
 
-#: ../gtk/gtkentry.c:867
+#: ../gtk/gtkentry.c:870
 msgid "Truncate multiline"
 msgstr "Truncar multiliña"
 
-#: ../gtk/gtkentry.c:868
+#: ../gtk/gtkentry.c:871
 msgid "Whether to truncate multiline pastes to one line."
 msgstr "Indica se se truncan as accións de pegar multiliñas nunha liña."
 
-#: ../gtk/gtkentry.c:884
+#: ../gtk/gtkentry.c:887
 msgid "Which kind of shadow to draw around the entry when has-frame is set"
 msgstr ""
 "Que tipo de sombra debuxar ao redor da entrada cando has-frame está activado"
 
-#: ../gtk/gtkentry.c:899 ../gtk/gtktextview.c:765
+#: ../gtk/gtkentry.c:902 ../gtk/gtktextview.c:766
 msgid "Overwrite mode"
 msgstr "Modo de sobrescritura"
 
-#: ../gtk/gtkentry.c:900
+#: ../gtk/gtkentry.c:903
 msgid "Whether new text overwrites existing text"
 msgstr "Indica se o texto novo sobrescribe o texto existente"
 
-#: ../gtk/gtkentry.c:914 ../gtk/gtkentrybuffer.c:367
-msgid "Text length"
-msgstr "Lonxitude de texto"
-
-#: ../gtk/gtkentry.c:915
+#: ../gtk/gtkentry.c:918
 msgid "Length of the text currently in the entry"
 msgstr "A lonxitude do texto que está actualmente na entrada"
 
-#: ../gtk/gtkentry.c:930
+#: ../gtk/gtkentry.c:933
 msgid "Invisible character set"
 msgstr "Conxunto de caracteres invisíbel"
 
-#: ../gtk/gtkentry.c:931
+#: ../gtk/gtkentry.c:934
 msgid "Whether the invisible character has been set"
 msgstr "Indica se o carácter invisíbel foi definido"
 
-#: ../gtk/gtkentry.c:949
+#: ../gtk/gtkentry.c:952
 msgid "Caps Lock warning"
 msgstr "Aviso de Bloq Maiús"
 
-#: ../gtk/gtkentry.c:950
+#: ../gtk/gtkentry.c:953
 msgid "Whether password entries will show a warning when Caps Lock is on"
 msgstr ""
 "Indica se as entradas de contrasinal mostrarán un aviso cando Bloq Maiús "
 "estea activado"
 
-#: ../gtk/gtkentry.c:964
+#: ../gtk/gtkentry.c:967
 msgid "Progress Fraction"
 msgstr "Fracción de progreso"
 
-#: ../gtk/gtkentry.c:965
+#: ../gtk/gtkentry.c:968
 msgid "The current fraction of the task that's been completed"
 msgstr "A fracción actual da tarefa que está terminada"
 
-#: ../gtk/gtkentry.c:982
+#: ../gtk/gtkentry.c:985
 msgid "Progress Pulse Step"
 msgstr "Paso de pulso de progreso"
 
-#: ../gtk/gtkentry.c:983
+#: ../gtk/gtkentry.c:986
 msgid ""
 "The fraction of total entry width to move the progress bouncing block for "
 "each call to gtk_entry_progress_pulse()"
@@ -2678,196 +2686,188 @@ msgstr ""
 "A fracción total da largura da entrada para mover o bloque de rebote de "
 "progreso para cada chamada a gtk_entry_progress_pulse()"
 
-#: ../gtk/gtkentry.c:999
+#: ../gtk/gtkentry.c:1002
 msgid "Placeholder text"
 msgstr "Escribir aquí"
 
-#: ../gtk/gtkentry.c:1000
+#: ../gtk/gtkentry.c:1003
 msgid "Show text in the entry when it's empty and unfocused"
 msgstr "Mostrar texto na entrada cando esta está baleira ou non ten o foco"
 
-#: ../gtk/gtkentry.c:1014
+#: ../gtk/gtkentry.c:1017
 msgid "Primary pixbuf"
 msgstr "Pixbuf primario"
 
-#: ../gtk/gtkentry.c:1015
+#: ../gtk/gtkentry.c:1018
 msgid "Primary pixbuf for the entry"
 msgstr "O pixbuf primario para a entrada"
 
-#: ../gtk/gtkentry.c:1029
+#: ../gtk/gtkentry.c:1032
 msgid "Secondary pixbuf"
 msgstr "Pixbuf secundario"
 
-#: ../gtk/gtkentry.c:1030
+#: ../gtk/gtkentry.c:1033
 msgid "Secondary pixbuf for the entry"
 msgstr "O pixbuf secundario para a entrada"
 
-#: ../gtk/gtkentry.c:1044
+#: ../gtk/gtkentry.c:1047
 msgid "Primary stock ID"
 msgstr "ID de inventario primario"
 
-#: ../gtk/gtkentry.c:1045
+#: ../gtk/gtkentry.c:1048
 msgid "Stock ID for primary icon"
 msgstr "O ID de inventario para a icona primaria"
 
-#: ../gtk/gtkentry.c:1059
+#: ../gtk/gtkentry.c:1062
 msgid "Secondary stock ID"
 msgstr "ID de inventario secundario"
 
-#: ../gtk/gtkentry.c:1060
+#: ../gtk/gtkentry.c:1063
 msgid "Stock ID for secondary icon"
 msgstr "O ID de inventario para a icona secundaria"
 
-#: ../gtk/gtkentry.c:1074
+#: ../gtk/gtkentry.c:1077
 msgid "Primary icon name"
 msgstr "Nome de icona primaria"
 
-#: ../gtk/gtkentry.c:1075
+#: ../gtk/gtkentry.c:1078
 msgid "Icon name for primary icon"
 msgstr "O nome de icona para a icona primaria"
 
-#: ../gtk/gtkentry.c:1089
+#: ../gtk/gtkentry.c:1092
 msgid "Secondary icon name"
 msgstr "Nome de icona secundaria"
 
-#: ../gtk/gtkentry.c:1090
+#: ../gtk/gtkentry.c:1093
 msgid "Icon name for secondary icon"
 msgstr "O nome de icona para a icona secundaria"
 
-#: ../gtk/gtkentry.c:1104
+#: ../gtk/gtkentry.c:1107
 msgid "Primary GIcon"
 msgstr "GIcon primaria"
 
-#: ../gtk/gtkentry.c:1105
+#: ../gtk/gtkentry.c:1108
 msgid "GIcon for primary icon"
 msgstr "O nome para a GIcon primaria"
 
-#: ../gtk/gtkentry.c:1119
+#: ../gtk/gtkentry.c:1122
 msgid "Secondary GIcon"
 msgstr "GIcon secundaria"
 
-#: ../gtk/gtkentry.c:1120
+#: ../gtk/gtkentry.c:1123
 msgid "GIcon for secondary icon"
 msgstr "O nome para a GIcon secundaria"
 
-#: ../gtk/gtkentry.c:1134
+#: ../gtk/gtkentry.c:1137
 msgid "Primary storage type"
 msgstr "Tipo de almacenamento primario"
 
-#: ../gtk/gtkentry.c:1135
+#: ../gtk/gtkentry.c:1138
 msgid "The representation being used for primary icon"
 msgstr "A representación usada para a icona primaria"
 
-#: ../gtk/gtkentry.c:1150
+#: ../gtk/gtkentry.c:1153
 msgid "Secondary storage type"
 msgstr "Tipo de almacenamento secundario"
 
-#: ../gtk/gtkentry.c:1151
+#: ../gtk/gtkentry.c:1154
 msgid "The representation being used for secondary icon"
 msgstr "A representación usada para a icona secundaria"
 
-#: ../gtk/gtkentry.c:1172
+#: ../gtk/gtkentry.c:1175
 msgid "Primary icon activatable"
 msgstr "Icona primaria activábel"
 
-#: ../gtk/gtkentry.c:1173
+#: ../gtk/gtkentry.c:1176
 msgid "Whether the primary icon is activatable"
 msgstr "Indica se a icona primaria é activábel"
 
-#: ../gtk/gtkentry.c:1193
+#: ../gtk/gtkentry.c:1196
 msgid "Secondary icon activatable"
 msgstr "Icona secundaria activábel"
 
-#: ../gtk/gtkentry.c:1194
+#: ../gtk/gtkentry.c:1197
 msgid "Whether the secondary icon is activatable"
 msgstr "Indica se a icona secundaria é activábel"
 
-#: ../gtk/gtkentry.c:1216
+#: ../gtk/gtkentry.c:1219
 msgid "Primary icon sensitive"
 msgstr "Sensibilidade da icona primaria"
 
-#: ../gtk/gtkentry.c:1217
+#: ../gtk/gtkentry.c:1220
 msgid "Whether the primary icon is sensitive"
 msgstr "Indica se a icona primaria é sensíbel"
 
-#: ../gtk/gtkentry.c:1238
+#: ../gtk/gtkentry.c:1241
 msgid "Secondary icon sensitive"
 msgstr "Sensibilidade da icona secundaria"
 
-#: ../gtk/gtkentry.c:1239
+#: ../gtk/gtkentry.c:1242
 msgid "Whether the secondary icon is sensitive"
 msgstr "Indica se a icona secundaria é sensíbel"
 
-#: ../gtk/gtkentry.c:1255
+#: ../gtk/gtkentry.c:1258
 msgid "Primary icon tooltip text"
 msgstr "Texto da indicación da icona primaria"
 
-#: ../gtk/gtkentry.c:1256 ../gtk/gtkentry.c:1292
+#: ../gtk/gtkentry.c:1259 ../gtk/gtkentry.c:1295
 msgid "The contents of the tooltip on the primary icon"
 msgstr "O contido da indicación da icona primaria"
 
-#: ../gtk/gtkentry.c:1272
+#: ../gtk/gtkentry.c:1275
 msgid "Secondary icon tooltip text"
 msgstr "Texto da indicación da icona secundaria"
 
-#: ../gtk/gtkentry.c:1273 ../gtk/gtkentry.c:1311
+#: ../gtk/gtkentry.c:1276 ../gtk/gtkentry.c:1314
 msgid "The contents of the tooltip on the secondary icon"
 msgstr "O contido da indicación da icona secundaria"
 
-#: ../gtk/gtkentry.c:1291
+#: ../gtk/gtkentry.c:1294
 msgid "Primary icon tooltip markup"
 msgstr "Marcación da indicación da icona primaria"
 
-#: ../gtk/gtkentry.c:1310
+#: ../gtk/gtkentry.c:1313
 msgid "Secondary icon tooltip markup"
 msgstr "Marcación da indicación da icona secundaria"
 
-#: ../gtk/gtkentry.c:1330 ../gtk/gtktextview.c:793
+#: ../gtk/gtkentry.c:1333 ../gtk/gtktextview.c:794
 msgid "IM module"
 msgstr "Módulo MI"
 
-#: ../gtk/gtkentry.c:1331 ../gtk/gtktextview.c:794
+#: ../gtk/gtkentry.c:1334 ../gtk/gtktextview.c:795
 msgid "Which IM module should be used"
 msgstr "O módulo de MI que se debería usar"
 
-#: ../gtk/gtkentry.c:1345
+#: ../gtk/gtkentry.c:1348
 msgid "Completion"
 msgstr "Completado"
 
-#: ../gtk/gtkentry.c:1346
+#: ../gtk/gtkentry.c:1349
 msgid "The auxiliary completion object"
 msgstr "O obxecto de completado auxiliar"
 
-#: ../gtk/gtkentry.c:1360
+#: ../gtk/gtkentry.c:1363
 msgid "Icon Prelight"
 msgstr "Iluminación previa da icona"
 
-#: ../gtk/gtkentry.c:1361
+#: ../gtk/gtkentry.c:1364
 msgid "Whether activatable icons should prelight when hovered"
 msgstr ""
 "Indica se as iconas activábeis se deberían iluminar previamente ao pasar o "
 "rato por encima"
 
-#: ../gtk/gtkentry.c:1374
+#: ../gtk/gtkentry.c:1377
 msgid "Progress Border"
 msgstr "Bordo do progreso"
 
-#: ../gtk/gtkentry.c:1375
+#: ../gtk/gtkentry.c:1378
 msgid "Border around the progress bar"
 msgstr "O bordo ao redor da barra de progreso"
 
-#: ../gtk/gtkentry.c:1867
+#: ../gtk/gtkentry.c:1870
 msgid "Border between text and frame."
 msgstr "Bordo entre o texto e o marco."
 
-#: ../gtk/gtkentrybuffer.c:353
-msgid "The contents of the buffer"
-msgstr "Os contidos do búfer"
-
-#: ../gtk/gtkentrybuffer.c:368
-msgid "Length of the text currently in the buffer"
-msgstr "A lonxitude do texto que está actualmente no búfer"
-
 #: ../gtk/gtkentrycompletion.c:320
 msgid "Completion Model"
 msgstr "Modelo de completado"
@@ -2956,53 +2956,53 @@ msgstr ""
 "Indica se a xanela captadora de eventos da caixa de eventos está por encima "
 "da xanela do widget fillo ao contrario de por debaixo dela."
 
-#: ../gtk/gtkexpander.c:281
+#: ../gtk/gtkexpander.c:282
 msgid "Expanded"
 msgstr "Expandido"
 
-#: ../gtk/gtkexpander.c:282
+#: ../gtk/gtkexpander.c:283
 msgid "Whether the expander has been opened to reveal the child widget"
 msgstr "Indica se o expansor foi aberto para deixar ver o widget fillo"
 
-#: ../gtk/gtkexpander.c:290
+#: ../gtk/gtkexpander.c:291
 msgid "Text of the expander's label"
 msgstr "Texto da etiqueta do expansor"
 
-#: ../gtk/gtkexpander.c:305 ../gtk/gtklabel.c:756
+#: ../gtk/gtkexpander.c:306 ../gtk/gtklabel.c:758
 msgid "Use markup"
 msgstr "Usar a marcación"
 
-#: ../gtk/gtkexpander.c:306 ../gtk/gtklabel.c:757
+#: ../gtk/gtkexpander.c:307 ../gtk/gtklabel.c:759
 msgid "The text of the label includes XML markup. See pango_parse_markup()"
 msgstr "O texto da etiqueta inclúe marcación XML. Vexa pango_parse_markup()"
 
-#: ../gtk/gtkexpander.c:314
+#: ../gtk/gtkexpander.c:315
 msgid "Space to put between the label and the child"
 msgstr "Espazo para pór entre a etiqueta e o fillo"
 
-#: ../gtk/gtkexpander.c:323 ../gtk/gtkframe.c:205 ../gtk/gtktoolbutton.c:246
+#: ../gtk/gtkexpander.c:324 ../gtk/gtkframe.c:206 ../gtk/gtktoolbutton.c:246
 #: ../gtk/gtktoolitemgroup.c:1599
 msgid "Label widget"
 msgstr "Widget etiqueta"
 
-#: ../gtk/gtkexpander.c:324
+#: ../gtk/gtkexpander.c:325
 msgid "A widget to display in place of the usual expander label"
 msgstr "Un widget para mostrar en lugar da etiqueta habitual do expansor"
 
-#: ../gtk/gtkexpander.c:331
+#: ../gtk/gtkexpander.c:332
 msgid "Label fill"
 msgstr "Recheo da etiqueta"
 
-#: ../gtk/gtkexpander.c:332
+#: ../gtk/gtkexpander.c:333
 msgid "Whether the label widget should fill all available horizontal space"
 msgstr ""
 "Indica se o widget etiqueta deben encher todo o espazo horizontal dispoñíbel"
 
-#: ../gtk/gtkexpander.c:347
+#: ../gtk/gtkexpander.c:348
 msgid "Resize tolevel"
 msgstr "Redimensionar nivel superior"
 
-#: ../gtk/gtkexpander.c:348
+#: ../gtk/gtkexpander.c:349
 msgid ""
 "Whether the expander will resize the toplevel window upon expanding and "
 "collapsing"
@@ -3010,17 +3010,17 @@ msgstr ""
 "Indica se o expansor redimensionará a xanela de nivel superior ao expandirse "
 "e contraerse"
 
-#: ../gtk/gtkexpander.c:354 ../gtk/gtktoolitemgroup.c:1627
-#: ../gtk/gtktreeview.c:1186
+#: ../gtk/gtkexpander.c:355 ../gtk/gtktoolitemgroup.c:1627
+#: ../gtk/gtktreeview.c:1187
 msgid "Expander Size"
 msgstr "Tamaño do expansor"
 
-#: ../gtk/gtkexpander.c:355 ../gtk/gtktoolitemgroup.c:1628
-#: ../gtk/gtktreeview.c:1187
+#: ../gtk/gtkexpander.c:356 ../gtk/gtktoolitemgroup.c:1628
+#: ../gtk/gtktreeview.c:1188
 msgid "Size of the expander arrow"
 msgstr "Tamaño da frecha do expansor"
 
-#: ../gtk/gtkexpander.c:364
+#: ../gtk/gtkexpander.c:365
 msgid "Spacing around expander arrow"
 msgstr "Espazamento ao redor da frecha do expansor"
 
@@ -3219,35 +3219,35 @@ msgid "The text to display in order to demonstrate the selected font"
 msgstr ""
 "O texto que mostrar como exemplo para indicar o tipo de letra seleccionado"
 
-#: ../gtk/gtkframe.c:171
+#: ../gtk/gtkframe.c:172
 msgid "Text of the frame's label"
 msgstr "Texto da etiqueta do marco"
 
-#: ../gtk/gtkframe.c:178
+#: ../gtk/gtkframe.c:179
 msgid "Label xalign"
 msgstr "Aliñamento x da etiqueta"
 
-#: ../gtk/gtkframe.c:179
+#: ../gtk/gtkframe.c:180
 msgid "The horizontal alignment of the label"
 msgstr "O aliñamento horizontal da etiqueta"
 
-#: ../gtk/gtkframe.c:187
+#: ../gtk/gtkframe.c:188
 msgid "Label yalign"
 msgstr "Aliñamento y da etiqueta"
 
-#: ../gtk/gtkframe.c:188
+#: ../gtk/gtkframe.c:189
 msgid "The vertical alignment of the label"
 msgstr "O aliñamento vertical da etiqueta"
 
-#: ../gtk/gtkframe.c:196
+#: ../gtk/gtkframe.c:197
 msgid "Frame shadow"
 msgstr "Sombra do marco"
 
-#: ../gtk/gtkframe.c:197
+#: ../gtk/gtkframe.c:198
 msgid "Appearance of the frame border"
 msgstr "Aparencia do bordo do marco"
 
-#: ../gtk/gtkframe.c:206
+#: ../gtk/gtkframe.c:207
 msgid "A widget to display in place of the usual frame label"
 msgstr "Un widget para mostrar en lugar da etiqueta de marco habitual"
 
@@ -3287,7 +3287,7 @@ msgstr "Se é TRUE, todas as columnas teñen a mesma largura"
 msgid "Left attachment"
 msgstr "Anexo á esquerda"
 
-#: ../gtk/gtkgrid.c:1327 ../gtk/gtkmenu.c:760 ../gtk/gtktable.c:236
+#: ../gtk/gtkgrid.c:1327 ../gtk/gtkmenu.c:761 ../gtk/gtktable.c:236
 msgid "The column number to attach the left side of the child to"
 msgstr "A cantidade de columnas para anexar ao lado esquerdo do fillo"
 
@@ -3454,16 +3454,16 @@ msgid ""
 msgstr ""
 "Como se sitúan o texto e a icona de cada elemento en relación un ao outro"
 
-#: ../gtk/gtkiconview.c:725 ../gtk/gtktreeview.c:1021
+#: ../gtk/gtkiconview.c:725 ../gtk/gtktreeview.c:1022
 #: ../gtk/gtktreeviewcolumn.c:374
 msgid "Reorderable"
 msgstr "Reordenábel"
 
-#: ../gtk/gtkiconview.c:726 ../gtk/gtktreeview.c:1022
+#: ../gtk/gtkiconview.c:726 ../gtk/gtktreeview.c:1023
 msgid "View is reorderable"
 msgstr "A visualización é reordenábel"
 
-#: ../gtk/gtkiconview.c:733 ../gtk/gtktreeview.c:1172
+#: ../gtk/gtkiconview.c:733 ../gtk/gtktreeview.c:1173
 msgid "Tooltip Column"
 msgstr "Columna de indicación"
 
@@ -3496,75 +3496,75 @@ msgstr "Alfa da caixa de selección"
 msgid "Opacity of the selection box"
 msgstr "Opacidade da caixa de selección"
 
-#: ../gtk/gtkimage.c:235 ../gtk/gtkstatusicon.c:235
+#: ../gtk/gtkimage.c:237 ../gtk/gtkstatusicon.c:235
 msgid "Pixbuf"
 msgstr "Pixbuf"
 
-#: ../gtk/gtkimage.c:236 ../gtk/gtkstatusicon.c:236
+#: ../gtk/gtkimage.c:238 ../gtk/gtkstatusicon.c:236
 msgid "A GdkPixbuf to display"
 msgstr "Un GdkPixbuf para mostrar"
 
-#: ../gtk/gtkimage.c:243 ../gtk/gtkrecentmanager.c:294
+#: ../gtk/gtkimage.c:245 ../gtk/gtkrecentmanager.c:294
 #: ../gtk/gtkstatusicon.c:243
 msgid "Filename"
 msgstr "Nome do ficheiro"
 
-#: ../gtk/gtkimage.c:244 ../gtk/gtkstatusicon.c:244
+#: ../gtk/gtkimage.c:246 ../gtk/gtkstatusicon.c:244
 msgid "Filename to load and display"
 msgstr "Nome de ficheiro para cargar e mostrar"
 
-#: ../gtk/gtkimage.c:253 ../gtk/gtkstatusicon.c:252
+#: ../gtk/gtkimage.c:255 ../gtk/gtkstatusicon.c:252
 msgid "Stock ID for a stock image to display"
 msgstr "ID de inventario para unha imaxe de inventario para mostrar"
 
-#: ../gtk/gtkimage.c:260
+#: ../gtk/gtkimage.c:262
 msgid "Icon set"
 msgstr "Definición da icona"
 
-#: ../gtk/gtkimage.c:261
+#: ../gtk/gtkimage.c:263
 msgid "Icon set to display"
 msgstr "Definición da icona para mostrar"
 
-#: ../gtk/gtkimage.c:268 ../gtk/gtkscalebutton.c:227 ../gtk/gtktoolbar.c:520
-#: ../gtk/gtktoolpalette.c:1006
+#: ../gtk/gtkimage.c:270 ../gtk/gtkscalebutton.c:228 ../gtk/gtktoolbar.c:528
+#: ../gtk/gtktoolpalette.c:1008
 msgid "Icon size"
 msgstr "Tamaño da icona"
 
-#: ../gtk/gtkimage.c:269
+#: ../gtk/gtkimage.c:271
 msgid "Symbolic size to use for stock icon, icon set or named icon"
 msgstr ""
 "Tamaño simbólico que usar para a icona de inventario, conxunto de iconas ou "
 "icona con nome"
 
-#: ../gtk/gtkimage.c:285
+#: ../gtk/gtkimage.c:287
 msgid "Pixel size"
 msgstr "Tamaño do píxel"
 
-#: ../gtk/gtkimage.c:286
+#: ../gtk/gtkimage.c:288
 msgid "Pixel size to use for named icon"
 msgstr "Tamaño do píxel que usar para a icona con nome"
 
-#: ../gtk/gtkimage.c:294
+#: ../gtk/gtkimage.c:296
 msgid "Animation"
 msgstr "Animación"
 
-#: ../gtk/gtkimage.c:295
+#: ../gtk/gtkimage.c:297
 msgid "GdkPixbufAnimation to display"
 msgstr "GdkPixbufAnimation para mostrar"
 
-#: ../gtk/gtkimage.c:335 ../gtk/gtkstatusicon.c:283
+#: ../gtk/gtkimage.c:337 ../gtk/gtkstatusicon.c:283
 msgid "Storage type"
 msgstr "Tipo de almacenamento"
 
-#: ../gtk/gtkimage.c:336 ../gtk/gtkstatusicon.c:284
+#: ../gtk/gtkimage.c:338 ../gtk/gtkstatusicon.c:284
 msgid "The representation being used for image data"
 msgstr "A representación empregada para as informacións de imaxe"
 
-#: ../gtk/gtkimage.c:354
+#: ../gtk/gtkimage.c:356
 msgid "Use Fallback"
 msgstr "Usar alfa"
 
-#: ../gtk/gtkimage.c:355
+#: ../gtk/gtkimage.c:357
 msgid "Whether to use icon names fallback"
 msgstr "Indica se a icona de estado pestanexa ou non"
 
@@ -3578,7 +3578,7 @@ msgstr ""
 "Indica se hai que usar a etiqueta de texto para crear un elemento de menú de "
 "inventario"
 
-#: ../gtk/gtkimagemenuitem.c:209 ../gtk/gtkmenu.c:602
+#: ../gtk/gtkimagemenuitem.c:209 ../gtk/gtkmenu.c:603
 msgid "Accel Group"
 msgstr "Grupo de teclas rápidas"
 
@@ -3607,28 +3607,28 @@ msgid "Width of border around the action area"
 msgstr "Largura do bordo arredor da área de acción"
 
 #: ../gtk/gtkinvisible.c:103 ../gtk/gtkmountoperation.c:173
-#: ../gtk/gtkstatusicon.c:302 ../gtk/gtkstylecontext.c:544
-#: ../gtk/gtkwindow.c:731
+#: ../gtk/gtkstatusicon.c:302 ../gtk/gtkstylecontext.c:431
+#: ../gtk/gtkwindow.c:732
 msgid "Screen"
 msgstr "Pantalla"
 
-#: ../gtk/gtkinvisible.c:104 ../gtk/gtkwindow.c:732
+#: ../gtk/gtkinvisible.c:104 ../gtk/gtkwindow.c:733
 msgid "The screen where this window will be displayed"
 msgstr "A pantalla onde se mostrará esta xanela"
 
-#: ../gtk/gtklabel.c:743
+#: ../gtk/gtklabel.c:745
 msgid "The text of the label"
 msgstr "O texto da etiqueta"
 
-#: ../gtk/gtklabel.c:750
+#: ../gtk/gtklabel.c:752
 msgid "A list of style attributes to apply to the text of the label"
 msgstr "Unha lista de atributos de estilos para aplicar ao texto da etiqueta"
 
-#: ../gtk/gtklabel.c:771 ../gtk/gtktexttag.c:386 ../gtk/gtktextview.c:702
+#: ../gtk/gtklabel.c:773 ../gtk/gtktexttag.c:386 ../gtk/gtktextview.c:703
 msgid "Justification"
 msgstr "Xustificación"
 
-#: ../gtk/gtklabel.c:772
+#: ../gtk/gtklabel.c:774
 msgid ""
 "The alignment of the lines in the text of the label relative to each other. "
 "This does NOT affect the alignment of the label within its allocation. See "
@@ -3638,11 +3638,11 @@ msgstr ""
 "NON afecta ao aliñamento da etiqueta dentro da súa asignación Ver GtkMisc::"
 "xalign para iso"
 
-#: ../gtk/gtklabel.c:780
+#: ../gtk/gtklabel.c:782
 msgid "Pattern"
 msgstr "Patrón"
 
-#: ../gtk/gtklabel.c:781
+#: ../gtk/gtklabel.c:783
 msgid ""
 "A string with _ characters in positions correspond to characters in the text "
 "to underline"
@@ -3650,47 +3650,47 @@ msgstr ""
 "Unha cadea con caracteres _ en posicións correspondentes a caracteres no "
 "texto para subliñar"
 
-#: ../gtk/gtklabel.c:788
+#: ../gtk/gtklabel.c:790
 msgid "Line wrap"
 msgstr "Axuste de liña"
 
-#: ../gtk/gtklabel.c:789
+#: ../gtk/gtklabel.c:791
 msgid "If set, wrap lines if the text becomes too wide"
 msgstr "Se se define, axusta a liña se o texto se volve demasiado largo"
 
-#: ../gtk/gtklabel.c:804
+#: ../gtk/gtklabel.c:806
 msgid "Line wrap mode"
 msgstr "Modo de axuste de liña"
 
-#: ../gtk/gtklabel.c:805
+#: ../gtk/gtklabel.c:807
 msgid "If wrap is set, controls how linewrapping is done"
 msgstr "Se se estabelece o axuste, controla como se fai o axuste de liña"
 
-#: ../gtk/gtklabel.c:812
+#: ../gtk/gtklabel.c:814
 msgid "Selectable"
 msgstr "Seleccionábel"
 
-#: ../gtk/gtklabel.c:813
+#: ../gtk/gtklabel.c:815
 msgid "Whether the label text can be selected with the mouse"
 msgstr "Indica se o texto da etiqueta pode ser seleccionado co rato"
 
-#: ../gtk/gtklabel.c:819
+#: ../gtk/gtklabel.c:821
 msgid "Mnemonic key"
 msgstr "Tecla mnemónica"
 
-#: ../gtk/gtklabel.c:820
+#: ../gtk/gtklabel.c:822
 msgid "The mnemonic accelerator key for this label"
 msgstr "A tecla rápida mnemónica para esta etiqueta"
 
-#: ../gtk/gtklabel.c:828
+#: ../gtk/gtklabel.c:830
 msgid "Mnemonic widget"
 msgstr "Widget mnemónico"
 
-#: ../gtk/gtklabel.c:829
+#: ../gtk/gtklabel.c:831
 msgid "The widget to be activated when the label's mnemonic key is pressed"
 msgstr "O widget que se activará cando se prema a tecla mnemónica da etiqueta"
 
-#: ../gtk/gtklabel.c:875
+#: ../gtk/gtklabel.c:877
 msgid ""
 "The preferred place to ellipsize the string, if the label does not have "
 "enough room to display the entire string"
@@ -3698,31 +3698,31 @@ msgstr ""
 "O lugar preferido para a elipse da cadea, se a etiqueta non ten suficiente "
 "espazo para mostrar a cadea completa"
 
-#: ../gtk/gtklabel.c:916
+#: ../gtk/gtklabel.c:918
 msgid "Single Line Mode"
 msgstr "Modo de liña única"
 
-#: ../gtk/gtklabel.c:917
+#: ../gtk/gtklabel.c:919
 msgid "Whether the label is in single line mode"
 msgstr "Indica se a etiqueta está no modo de liña única"
 
-#: ../gtk/gtklabel.c:934
+#: ../gtk/gtklabel.c:936
 msgid "Angle"
 msgstr "Ángulo"
 
-#: ../gtk/gtklabel.c:935
+#: ../gtk/gtklabel.c:937
 msgid "Angle at which the label is rotated"
 msgstr "Ángulo sobre o que se rota a etiqueta"
 
-#: ../gtk/gtklabel.c:957
+#: ../gtk/gtklabel.c:959
 msgid "The desired maximum width of the label, in characters"
 msgstr "A largura máxima desexada da etiqueta, en caracteres"
 
-#: ../gtk/gtklabel.c:975
+#: ../gtk/gtklabel.c:977
 msgid "Track visited links"
 msgstr "Rexistrar as ligazóns visitadas"
 
-#: ../gtk/gtklabel.c:976
+#: ../gtk/gtklabel.c:978
 msgid "Whether visited links should be tracked"
 msgstr "Indica se as ligazóns visitadas deberían ser rexistradas"
 
@@ -3801,63 +3801,63 @@ msgstr ""
 "A suxestión que mostrar ao mostrar ao usuario que non foi posíbel obter unha "
 "autorización"
 
-#: ../gtk/gtkmenubar.c:190
+#: ../gtk/gtkmenubar.c:191
 msgid "Pack direction"
 msgstr "Dirección do empaquetado"
 
-#: ../gtk/gtkmenubar.c:191
+#: ../gtk/gtkmenubar.c:192
 msgid "The pack direction of the menubar"
 msgstr "A dirección do empaquetado da barra de menú"
 
-#: ../gtk/gtkmenubar.c:207
+#: ../gtk/gtkmenubar.c:208
 msgid "Child Pack direction"
 msgstr "Dirección do empaquetado fillo"
 
-#: ../gtk/gtkmenubar.c:208
+#: ../gtk/gtkmenubar.c:209
 msgid "The child pack direction of the menubar"
 msgstr "A dirección do empaquetado fillo da barra de menú"
 
-#: ../gtk/gtkmenubar.c:217
+#: ../gtk/gtkmenubar.c:218
 msgid "Style of bevel around the menubar"
 msgstr "Estilo do bisel ao redor da barra de menús"
 
-#: ../gtk/gtkmenubar.c:224 ../gtk/gtktoolbar.c:570
+#: ../gtk/gtkmenubar.c:225 ../gtk/gtktoolbar.c:578
 msgid "Internal padding"
 msgstr "Recheo interno"
 
-#: ../gtk/gtkmenubar.c:225
+#: ../gtk/gtkmenubar.c:226
 msgid "Amount of border space between the menubar shadow and the menu items"
 msgstr ""
 "Cantidade de espazo do bordo entre a sombra da barra de menús e os elementos "
 "de menú"
 
-#: ../gtk/gtkmenu.c:588
+#: ../gtk/gtkmenu.c:589
 msgid "The currently selected menu item"
 msgstr "O elemento de menú actualmente seleccionado"
 
-#: ../gtk/gtkmenu.c:603
+#: ../gtk/gtkmenu.c:604
 msgid "The accel group holding accelerators for the menu"
 msgstr "O grupo de teclas rápidas que contén as teclas rápidas para o menú"
 
-#: ../gtk/gtkmenu.c:617 ../gtk/gtkmenuitem.c:366
+#: ../gtk/gtkmenu.c:618 ../gtk/gtkmenuitem.c:369
 msgid "Accel Path"
 msgstr "Ruta de teclas rápidas"
 
-#: ../gtk/gtkmenu.c:618
+#: ../gtk/gtkmenu.c:619
 msgid "An accel path used to conveniently construct accel paths of child items"
 msgstr ""
 "Unha ruta de teclas rápidas usado para construír adecuadamente os camiños de "
 "teclas rápidas dos elementos fillo"
 
-#: ../gtk/gtkmenu.c:634
+#: ../gtk/gtkmenu.c:635
 msgid "Attach Widget"
 msgstr "Widget anexado"
 
-#: ../gtk/gtkmenu.c:635
+#: ../gtk/gtkmenu.c:636
 msgid "The widget the menu is attached to"
 msgstr "O widget ao que está anexado o menú"
 
-#: ../gtk/gtkmenu.c:643
+#: ../gtk/gtkmenu.c:644
 msgid ""
 "A title that may be displayed by the window manager when this menu is torn-"
 "off"
@@ -3865,54 +3865,54 @@ msgstr ""
 "Un título que o xestor de xanelas poderá mostrar cando este menú estea "
 "desprazado"
 
-#: ../gtk/gtkmenu.c:657
+#: ../gtk/gtkmenu.c:658
 msgid "Tearoff State"
 msgstr "Estado de desprazamento"
 
-#: ../gtk/gtkmenu.c:658
+#: ../gtk/gtkmenu.c:659
 msgid "A boolean that indicates whether the menu is torn-off"
 msgstr "Un booleano que indica se o menú está desprazado"
 
-#: ../gtk/gtkmenu.c:672
+#: ../gtk/gtkmenu.c:673
 msgid "Monitor"
 msgstr "Monitor"
 
-#: ../gtk/gtkmenu.c:673
+#: ../gtk/gtkmenu.c:674
 msgid "The monitor the menu will be popped up on"
 msgstr "O monitor en que emerxerá o menú"
 
-#: ../gtk/gtkmenu.c:679
+#: ../gtk/gtkmenu.c:680
 msgid "Vertical Padding"
 msgstr "Recheo vertical"
 
-#: ../gtk/gtkmenu.c:680
+#: ../gtk/gtkmenu.c:681
 msgid "Extra space at the top and bottom of the menu"
 msgstr "O espazo adicional na parte superior e inferior do menú"
 
-#: ../gtk/gtkmenu.c:702
+#: ../gtk/gtkmenu.c:703
 msgid "Reserve Toggle Size"
 msgstr "Reservar o tamaño de alternancia"
 
-#: ../gtk/gtkmenu.c:703
+#: ../gtk/gtkmenu.c:704
 msgid ""
 "A boolean that indicates whether the menu reserves space for toggles and "
 "icons"
 msgstr ""
 "Un booleano que indica se o menú reserva espazo para alternancias e iconas"
 
-#: ../gtk/gtkmenu.c:709
+#: ../gtk/gtkmenu.c:710
 msgid "Horizontal Padding"
 msgstr "Recheo horizontal"
 
-#: ../gtk/gtkmenu.c:710
+#: ../gtk/gtkmenu.c:711
 msgid "Extra space at the left and right edges of the menu"
 msgstr "O espazo adicional nos bordos dereito e esquerdo do menú"
 
-#: ../gtk/gtkmenu.c:718
+#: ../gtk/gtkmenu.c:719
 msgid "Vertical Offset"
 msgstr "Desprazamento vertical"
 
-#: ../gtk/gtkmenu.c:719
+#: ../gtk/gtkmenu.c:720
 msgid ""
 "When the menu is a submenu, position it this number of pixels offset "
 "vertically"
@@ -3920,11 +3920,11 @@ msgstr ""
 "Cando o menú é un submenú, colóqueo verticalmente con este número de píxeles "
 "de desprazamento"
 
-#: ../gtk/gtkmenu.c:727
+#: ../gtk/gtkmenu.c:728
 msgid "Horizontal Offset"
 msgstr "Desprazamento horizontal"
 
-#: ../gtk/gtkmenu.c:728
+#: ../gtk/gtkmenu.c:729
 msgid ""
 "When the menu is a submenu, position it this number of pixels offset "
 "horizontally"
@@ -3932,94 +3932,94 @@ msgstr ""
 "Cando o menú é un submenú, colóqueo horizontalmente con este número de "
 "píxeles de desprazamento"
 
-#: ../gtk/gtkmenu.c:736
+#: ../gtk/gtkmenu.c:737
 msgid "Double Arrows"
 msgstr "Frechas dobres"
 
-#: ../gtk/gtkmenu.c:737
+#: ../gtk/gtkmenu.c:738
 msgid "When scrolling, always show both arrows."
 msgstr "Mostrar sempre ambas as frechas ao desprazar."
 
-#: ../gtk/gtkmenu.c:750
+#: ../gtk/gtkmenu.c:751
 msgid "Arrow Placement"
 msgstr "Colocación da frecha"
 
-#: ../gtk/gtkmenu.c:751
+#: ../gtk/gtkmenu.c:752
 msgid "Indicates where scroll arrows should be placed"
 msgstr "Indica onde se deberían colocar as frechas de desprazamento"
 
-#: ../gtk/gtkmenu.c:759
+#: ../gtk/gtkmenu.c:760
 msgid "Left Attach"
 msgstr "Anexar á esquerda"
 
-#: ../gtk/gtkmenu.c:767
+#: ../gtk/gtkmenu.c:768
 msgid "Right Attach"
 msgstr "Anexar á dereita"
 
-#: ../gtk/gtkmenu.c:768
+#: ../gtk/gtkmenu.c:769
 msgid "The column number to attach the right side of the child to"
 msgstr "A cantidade de columnas para anexar ao lado dereito do fillo"
 
-#: ../gtk/gtkmenu.c:775
+#: ../gtk/gtkmenu.c:776
 msgid "Top Attach"
 msgstr "Anexar arriba"
 
-#: ../gtk/gtkmenu.c:776
+#: ../gtk/gtkmenu.c:777
 msgid "The row number to attach the top of the child to"
 msgstr "O número de filas para anexar encima do fillo"
 
-#: ../gtk/gtkmenu.c:783
+#: ../gtk/gtkmenu.c:784
 msgid "Bottom Attach"
 msgstr "Anexar abaixo"
 
-#: ../gtk/gtkmenu.c:784 ../gtk/gtktable.c:257
+#: ../gtk/gtkmenu.c:785 ../gtk/gtktable.c:257
 msgid "The row number to attach the bottom of the child to"
 msgstr "O número de filas para anexar debaixo do fillo"
 
-#: ../gtk/gtkmenu.c:798
+#: ../gtk/gtkmenu.c:799
 msgid "Arbitrary constant to scale down the size of the scroll arrow"
 msgstr ""
 "Unha constante arbitraria para escalar para abaixo o tamaño da frecha de "
 "desprazamento"
 
-#: ../gtk/gtkmenuitem.c:334
+#: ../gtk/gtkmenuitem.c:337
 msgid "Right Justified"
 msgstr "Xustificado á dereita"
 
-#: ../gtk/gtkmenuitem.c:335
+#: ../gtk/gtkmenuitem.c:338
 msgid ""
 "Sets whether the menu item appears justified at the right side of a menu bar"
 msgstr ""
 "Define se o elemento de menú aparece xustificado ao lado dereito dunha barra "
 "de menú"
 
-#: ../gtk/gtkmenuitem.c:349
+#: ../gtk/gtkmenuitem.c:352
 msgid "Submenu"
 msgstr "Submenú"
 
-#: ../gtk/gtkmenuitem.c:350
+#: ../gtk/gtkmenuitem.c:353
 msgid "The submenu attached to the menu item, or NULL if it has none"
 msgstr "O submenú anexado ao elemento do menú, ou NULL se non ten ningún"
 
-#: ../gtk/gtkmenuitem.c:367
+#: ../gtk/gtkmenuitem.c:370
 msgid "Sets the accelerator path of the menu item"
 msgstr "Define o camiño de teclas rápidas dun elemento de menú"
 
-#: ../gtk/gtkmenuitem.c:382
+#: ../gtk/gtkmenuitem.c:385
 msgid "The text for the child label"
 msgstr "O texto da etiqueta filla"
 
-#: ../gtk/gtkmenuitem.c:445
+#: ../gtk/gtkmenuitem.c:448
 msgid "Amount of space used up by arrow, relative to the menu item's font size"
 msgstr ""
 "A cantidade de espazo usado pola frecha, relativa ao tamaño do tipo de letra "
 "do elemento de menú"
 
-#: ../gtk/gtkmenuitem.c:458
+#: ../gtk/gtkmenuitem.c:461
 msgid "Width in Characters"
 msgstr "Largura en caracteres"
 
-#: ../gtk/gtkmenuitem.c:459
+#: ../gtk/gtkmenuitem.c:462
 msgid "The minimum desired width of the menu item in characters"
 msgstr "A largura mínima desexada do elemento de menú en caracteres"
 
@@ -4149,53 +4149,53 @@ msgstr "Se estamos mostrando un diálogo"
 msgid "The screen where this window will be displayed."
 msgstr "A pantalla onde esta xanela se mostrará."
 
-#: ../gtk/gtknotebook.c:695
+#: ../gtk/gtknotebook.c:696
 msgid "Page"
 msgstr "Páxina"
 
-#: ../gtk/gtknotebook.c:696
+#: ../gtk/gtknotebook.c:697
 msgid "The index of the current page"
 msgstr "O índice da páxina actual"
 
-#: ../gtk/gtknotebook.c:704
+#: ../gtk/gtknotebook.c:705
 msgid "Tab Position"
 msgstr "Posición da lapela"
 
-#: ../gtk/gtknotebook.c:705
+#: ../gtk/gtknotebook.c:706
 msgid "Which side of the notebook holds the tabs"
 msgstr "Que lado do caderno contén as lapelas"
 
-#: ../gtk/gtknotebook.c:712
+#: ../gtk/gtknotebook.c:713
 msgid "Show Tabs"
 msgstr "Mostrar lapelas"
 
-#: ../gtk/gtknotebook.c:713
+#: ../gtk/gtknotebook.c:714
 msgid "Whether tabs should be shown"
 msgstr "Indica se deben mostrarse ou non as lapelas"
 
-#: ../gtk/gtknotebook.c:719
+#: ../gtk/gtknotebook.c:720
 msgid "Show Border"
 msgstr "Mostrar bordo"
 
-#: ../gtk/gtknotebook.c:720
+#: ../gtk/gtknotebook.c:721
 msgid "Whether the border should be shown"
 msgstr "Indica se o bordo debe mostrarse ou non"
 
-#: ../gtk/gtknotebook.c:726
+#: ../gtk/gtknotebook.c:727
 msgid "Scrollable"
 msgstr "Desprazábel"
 
-#: ../gtk/gtknotebook.c:727
+#: ../gtk/gtknotebook.c:728
 msgid "If TRUE, scroll arrows are added if there are too many tabs to fit"
 msgstr ""
 "Se é TRUE, engádense frechas de desprazamento se hai demasiadas lapela para "
 "encaixar"
 
-#: ../gtk/gtknotebook.c:733
+#: ../gtk/gtknotebook.c:734
 msgid "Enable Popup"
 msgstr "Activar o menú emerxente"
 
-#: ../gtk/gtknotebook.c:734
+#: ../gtk/gtknotebook.c:735
 msgid ""
 "If TRUE, pressing the right mouse button on the notebook pops up a menu that "
 "you can use to go to a page"
@@ -4203,129 +4203,129 @@ msgstr ""
 "Se é TRUE, premendo o botón dereito do rato no caderno emerxe un menú que "
 "pode usar para ir a unha páxina"
 
-#: ../gtk/gtknotebook.c:748
+#: ../gtk/gtknotebook.c:749
 msgid "Group Name"
 msgstr "Nome do grupo"
 
-#: ../gtk/gtknotebook.c:749
+#: ../gtk/gtknotebook.c:750
 msgid "Group name for tab drag and drop"
 msgstr "Nome do grupo para o arrastre e solte das lapelas"
 
-#: ../gtk/gtknotebook.c:756
+#: ../gtk/gtknotebook.c:757
 msgid "Tab label"
 msgstr "Etiqueta da lapela"
 
-#: ../gtk/gtknotebook.c:757
+#: ../gtk/gtknotebook.c:758
 msgid "The string displayed on the child's tab label"
 msgstr "A cadea mostrada na etiqueta da lapela filla"
 
-#: ../gtk/gtknotebook.c:763
+#: ../gtk/gtknotebook.c:764
 msgid "Menu label"
 msgstr "Etiqueta de menú"
 
-#: ../gtk/gtknotebook.c:764
+#: ../gtk/gtknotebook.c:765
 msgid "The string displayed in the child's menu entry"
 msgstr "A cadea mostrada na entrada de menú filla"
 
-#: ../gtk/gtknotebook.c:777
+#: ../gtk/gtknotebook.c:778
 msgid "Tab expand"
 msgstr "Expansión da lapela"
 
-#: ../gtk/gtknotebook.c:778
+#: ../gtk/gtknotebook.c:779
 msgid "Whether to expand the child's tab"
 msgstr "Indica se se expanden as lapelas fillas ou non"
 
-#: ../gtk/gtknotebook.c:784
+#: ../gtk/gtknotebook.c:785
 msgid "Tab fill"
 msgstr "Recheo da lapela"
 
-#: ../gtk/gtknotebook.c:785
+#: ../gtk/gtknotebook.c:786
 msgid "Whether the child's tab should fill the allocated area"
 msgstr "Indica se as lapelas fillas deberían encher a área asignada ou non"
 
-#: ../gtk/gtknotebook.c:792
+#: ../gtk/gtknotebook.c:793
 msgid "Tab reorderable"
 msgstr "Lapela reordenábel"
 
-#: ../gtk/gtknotebook.c:793
+#: ../gtk/gtknotebook.c:794
 msgid "Whether the tab is reorderable by user action"
 msgstr "Indica se a lapela pode reordenarse por unha acción do usuario"
 
-#: ../gtk/gtknotebook.c:799
+#: ../gtk/gtknotebook.c:800
 msgid "Tab detachable"
 msgstr "Lapela desprazábel"
 
-#: ../gtk/gtknotebook.c:800
+#: ../gtk/gtknotebook.c:801
 msgid "Whether the tab is detachable"
 msgstr "Indica se a lapela é desprazábel"
 
-#: ../gtk/gtknotebook.c:815 ../gtk/gtkscrollbar.c:100
+#: ../gtk/gtknotebook.c:816 ../gtk/gtkscrollbar.c:102
 msgid "Secondary backward stepper"
 msgstr "Paso de retroceso secundario"
 
-#: ../gtk/gtknotebook.c:816
+#: ../gtk/gtknotebook.c:817
 msgid ""
 "Display a second backward arrow button on the opposite end of the tab area"
 msgstr ""
 "Mostra un segundo botón de frecha de retroceso no extremo oposto da área de "
 "tabulación"
 
-#: ../gtk/gtknotebook.c:831 ../gtk/gtkscrollbar.c:107
+#: ../gtk/gtknotebook.c:832 ../gtk/gtkscrollbar.c:109
 msgid "Secondary forward stepper"
 msgstr "Paso de avance secundario"
 
-#: ../gtk/gtknotebook.c:832
+#: ../gtk/gtknotebook.c:833
 msgid ""
 "Display a second forward arrow button on the opposite end of the tab area"
 msgstr ""
 "Mostra un segundo botón de frecha de avance no extremo oposto da área de "
 "tabulación"
 
-#: ../gtk/gtknotebook.c:846 ../gtk/gtkscrollbar.c:86
+#: ../gtk/gtknotebook.c:847 ../gtk/gtkscrollbar.c:88
 msgid "Backward stepper"
 msgstr "Paso de retroceso"
 
-#: ../gtk/gtknotebook.c:847 ../gtk/gtkscrollbar.c:87
+#: ../gtk/gtknotebook.c:848 ../gtk/gtkscrollbar.c:89
 msgid "Display the standard backward arrow button"
 msgstr "Mostrar o botón estándar de frecha de retroceso"
 
-#: ../gtk/gtknotebook.c:861 ../gtk/gtkscrollbar.c:93
+#: ../gtk/gtknotebook.c:862 ../gtk/gtkscrollbar.c:95
 msgid "Forward stepper"
 msgstr "Paso de avance"
 
-#: ../gtk/gtknotebook.c:862 ../gtk/gtkscrollbar.c:94
+#: ../gtk/gtknotebook.c:863 ../gtk/gtkscrollbar.c:96
 msgid "Display the standard forward arrow button"
 msgstr "Mostrar o botón estándar de frecha de avance"
 
-#: ../gtk/gtknotebook.c:876
+#: ../gtk/gtknotebook.c:877
 msgid "Tab overlap"
 msgstr "Superposición de lapela"
 
-#: ../gtk/gtknotebook.c:877
+#: ../gtk/gtknotebook.c:878
 msgid "Size of tab overlap area"
 msgstr "Tamaño da área de superposición da lapela"
 
-#: ../gtk/gtknotebook.c:892
+#: ../gtk/gtknotebook.c:893
 msgid "Tab curvature"
 msgstr "Curvatura da lapela"
 
-#: ../gtk/gtknotebook.c:893
+#: ../gtk/gtknotebook.c:894
 msgid "Size of tab curvature"
 msgstr "Tamaño da curvatura da lapela"
 
-#: ../gtk/gtknotebook.c:909
+#: ../gtk/gtknotebook.c:910
 msgid "Arrow spacing"
 msgstr "Espazamento de frechas"
 
-#: ../gtk/gtknotebook.c:910
+#: ../gtk/gtknotebook.c:911
 msgid "Scroll arrow spacing"
 msgstr "Espazamento das frechas de desprazamento"
 
-#: ../gtk/gtknotebook.c:926
+#: ../gtk/gtknotebook.c:927
 msgid "Initial gap"
 msgstr "Espazo inicial"
 
-#: ../gtk/gtknotebook.c:927
+#: ../gtk/gtknotebook.c:928
 msgid "Initial gap before the first tab"
 msgstr "Espazo inicia antes da primeira lapela"
 
@@ -4529,6 +4529,14 @@ msgstr "Acepta traballos"
 msgid "TRUE if this printer is accepting new jobs"
 msgstr "É TRUE se esta impresora acepta traballos novos"
 
+#: ../gtk/gtkprinteroption.c:105
+msgid "Option Value"
+msgstr "Valor da opción"
+
+#: ../gtk/gtkprinteroption.c:106
+msgid "Value of the option"
+msgstr "Valor da opción"
+
 #: ../gtk/gtkprinteroptionwidget.c:122
 msgid "Source option"
 msgstr "Opción de orixe"
@@ -4756,36 +4764,36 @@ msgstr ""
 "TRUE se as caixas de combinación da configuración de páxina están "
 "incorporadas no GtkPrintUnixDialog"
 
-#: ../gtk/gtkprogressbar.c:158
+#: ../gtk/gtkprogressbar.c:160
 msgid "Fraction"
 msgstr "Fracción"
 
-#: ../gtk/gtkprogressbar.c:159
+#: ../gtk/gtkprogressbar.c:161
 msgid "The fraction of total work that has been completed"
 msgstr "A fracción do traballo total que se completou"
 
-#: ../gtk/gtkprogressbar.c:166
+#: ../gtk/gtkprogressbar.c:168
 msgid "Pulse Step"
 msgstr "Paso de pulso"
 
-#: ../gtk/gtkprogressbar.c:167
+#: ../gtk/gtkprogressbar.c:169
 msgid "The fraction of total progress to move the bouncing block when pulsed"
 msgstr ""
 "A fracción do progreso total para mover o bloque rebotador cando se preme"
 
-#: ../gtk/gtkprogressbar.c:175
+#: ../gtk/gtkprogressbar.c:177
 msgid "Text to be displayed in the progress bar"
 msgstr "Texto que se mostrará na barra de progreso"
 
-#: ../gtk/gtkprogressbar.c:192
+#: ../gtk/gtkprogressbar.c:194
 msgid "Show text"
 msgstr "Mostrar texto"
 
-#: ../gtk/gtkprogressbar.c:193
+#: ../gtk/gtkprogressbar.c:195
 msgid "Whether the progress is shown as text."
 msgstr "Indica se o progreso se mostra como texto."
 
-#: ../gtk/gtkprogressbar.c:215
+#: ../gtk/gtkprogressbar.c:217
 msgid ""
 "The preferred place to ellipsize the string, if the progress bar does not "
 "have enough room to display the entire string, if at all."
@@ -4793,51 +4801,51 @@ msgstr ""
 "O lugar preferido para a elipse da cadea, se a barra de progreso non ten "
 "espazo suficiente para mostrar a cadea completa."
 
-#: ../gtk/gtkprogressbar.c:222
+#: ../gtk/gtkprogressbar.c:224
 msgid "X spacing"
 msgstr "Espazamento X"
 
-#: ../gtk/gtkprogressbar.c:223
+#: ../gtk/gtkprogressbar.c:225
 msgid "Extra spacing applied to the width of a progress bar."
 msgstr "Espazo extra aplicado á largura dunha barra de progreso."
 
-#: ../gtk/gtkprogressbar.c:228
+#: ../gtk/gtkprogressbar.c:230
 msgid "Y spacing"
 msgstr "Espazamento Y"
 
-#: ../gtk/gtkprogressbar.c:229
+#: ../gtk/gtkprogressbar.c:231
 msgid "Extra spacing applied to the height of a progress bar."
 msgstr "Un espazamento extra aplicado á altura dunha barra de progreso."
 
-#: ../gtk/gtkprogressbar.c:242
+#: ../gtk/gtkprogressbar.c:244
 msgid "Minimum horizontal bar width"
 msgstr "Largura horizontal mínima da barra"
 
-#: ../gtk/gtkprogressbar.c:243
+#: ../gtk/gtkprogressbar.c:245
 msgid "The minimum horizontal width of the progress bar"
 msgstr "A largura horizontal mínima da barra de progreso"
 
-#: ../gtk/gtkprogressbar.c:255
+#: ../gtk/gtkprogressbar.c:257
 msgid "Minimum horizontal bar height"
 msgstr "Altura horizontal mínima da barra"
 
-#: ../gtk/gtkprogressbar.c:256
+#: ../gtk/gtkprogressbar.c:258
 msgid "Minimum horizontal height of the progress bar"
 msgstr "A altura horizontal mínima da barra de progreso"
 
-#: ../gtk/gtkprogressbar.c:268
+#: ../gtk/gtkprogressbar.c:270
 msgid "Minimum vertical bar width"
 msgstr "Largura vertical mínima da barra"
 
-#: ../gtk/gtkprogressbar.c:269
+#: ../gtk/gtkprogressbar.c:271
 msgid "The minimum vertical width of the progress bar"
 msgstr "A largura vertical mínima da barra de progreso"
 
-#: ../gtk/gtkprogressbar.c:281
+#: ../gtk/gtkprogressbar.c:283
 msgid "Minimum vertical bar height"
 msgstr "Altura vertical mínima da barra"
 
-#: ../gtk/gtkprogressbar.c:282
+#: ../gtk/gtkprogressbar.c:284
 msgid "The minimum vertical height of the progress bar"
 msgstr "A altura vertical mínima da barra de progreso"
 
@@ -4853,8 +4861,8 @@ msgstr ""
 "O valor devolto por gtk_radio_action_get_current_value() cando esta acción é "
 "a acción actual do seu grupo."
 
-#: ../gtk/gtkradioaction.c:135 ../gtk/gtkradiobutton.c:163
-#: ../gtk/gtkradiomenuitem.c:425 ../gtk/gtkradiotoolbutton.c:85
+#: ../gtk/gtkradioaction.c:135 ../gtk/gtkradiobutton.c:164
+#: ../gtk/gtkradiomenuitem.c:427 ../gtk/gtkradiotoolbutton.c:85
 msgid "Group"
 msgstr "Grupo"
 
@@ -4874,11 +4882,11 @@ msgstr ""
 "A propiedade do valor do membro actualmente activo do grupo ao que esta "
 "acción pertence."
 
-#: ../gtk/gtkradiobutton.c:164
+#: ../gtk/gtkradiobutton.c:165
 msgid "The radio button whose group this widget belongs to."
 msgstr "O botón de opción a cuxo grupo pertence este widget."
 
-#: ../gtk/gtkradiomenuitem.c:426
+#: ../gtk/gtkradiomenuitem.c:428
 msgid "The radio menu item whose group this widget belongs to."
 msgstr "O elemento do menú de opción a cuxo grupo pertence este widget."
 
@@ -4886,21 +4894,21 @@ msgstr "O elemento do menú de opción a cuxo grupo pertence este widget."
 msgid "The radio tool button whose group this button belongs to."
 msgstr "O botón de ferramenta de opción a cuxo grupo pertence este botón."
 
-#: ../gtk/gtkrange.c:418
+#: ../gtk/gtkrange.c:419
 msgid "The GtkAdjustment that contains the current value of this range object"
 msgstr "O GtkAdjustment que contén o valor actual deste intervalo de obxectos"
 
-#: ../gtk/gtkrange.c:426
+#: ../gtk/gtkrange.c:427
 msgid "Invert direction slider moves to increase range value"
 msgstr ""
 "Inverter a dirección en que se move o control desprazábel para incrementar o "
 "valor do intervalo"
 
-#: ../gtk/gtkrange.c:433
+#: ../gtk/gtkrange.c:434
 msgid "Lower stepper sensitivity"
 msgstr "Sensibilidade de paso inferior"
 
-#: ../gtk/gtkrange.c:434
+#: ../gtk/gtkrange.c:435
 msgid ""
 "The sensitivity policy for the stepper that points to the adjustment's lower "
 "side"
@@ -4908,11 +4916,11 @@ msgstr ""
 "A política de sensibilidade para o paso que apunta ao lado máis baixo do "
 "axuste"
 
-#: ../gtk/gtkrange.c:442
+#: ../gtk/gtkrange.c:443
 msgid "Upper stepper sensitivity"
 msgstr "Sensibilidade do paso superior"
 
-#: ../gtk/gtkrange.c:443
+#: ../gtk/gtkrange.c:444
 msgid ""
 "The sensitivity policy for the stepper that points to the adjustment's upper "
 "side"
@@ -4920,97 +4928,97 @@ msgstr ""
 "A política de sensibilidade para o paso que apunta ao lado máis alto do "
 "axuste"
 
-#: ../gtk/gtkrange.c:460
+#: ../gtk/gtkrange.c:461
 msgid "Show Fill Level"
 msgstr "Mostrar nivel de recheo"
 
-#: ../gtk/gtkrange.c:461
+#: ../gtk/gtkrange.c:462
 msgid "Whether to display a fill level indicator graphics on trough."
 msgstr ""
 "Indica se se debe mostrar o indicador gráfico de nivel de recheo mentres se "
 "enche."
 
-#: ../gtk/gtkrange.c:477
+#: ../gtk/gtkrange.c:478
 msgid "Restrict to Fill Level"
 msgstr "Restrinxir ao nivel de recheo"
 
-#: ../gtk/gtkrange.c:478
+#: ../gtk/gtkrange.c:479
 msgid "Whether to restrict the upper boundary to the fill level."
 msgstr "Indica se se debe restrinxir o bordo superior ao nivel de recheo."
 
-#: ../gtk/gtkrange.c:493
+#: ../gtk/gtkrange.c:494
 msgid "Fill Level"
 msgstr "Nivel de recheo"
 
-#: ../gtk/gtkrange.c:494
+#: ../gtk/gtkrange.c:495
 msgid "The fill level."
 msgstr "O nivel de recheo."
 
-#: ../gtk/gtkrange.c:511
+#: ../gtk/gtkrange.c:512
 msgid "Round Digits"
 msgstr "Díxitos"
 
-#: ../gtk/gtkrange.c:512
+#: ../gtk/gtkrange.c:513
 msgid "The number of digits to round the value to."
 msgstr "O número de páxinas do documento."
 
-#: ../gtk/gtkrange.c:520 ../gtk/gtkswitch.c:835
+#: ../gtk/gtkrange.c:521 ../gtk/gtkswitch.c:818
 msgid "Slider Width"
 msgstr "Largura do control desprazábel"
 
-#: ../gtk/gtkrange.c:521
+#: ../gtk/gtkrange.c:522
 msgid "Width of scrollbar or scale thumb"
 msgstr "Largura da barra de desprazamento ou do indicador de escala"
 
-#: ../gtk/gtkrange.c:528
+#: ../gtk/gtkrange.c:529
 msgid "Trough Border"
 msgstr "Bordo do canal"
 
-#: ../gtk/gtkrange.c:529
+#: ../gtk/gtkrange.c:530
 msgid "Spacing between thumb/steppers and outer trough bevel"
 msgstr ""
 "Espazamento entre o indicador de escala ou os pasos e o bisel do canal "
 "exterior"
 
-#: ../gtk/gtkrange.c:536
+#: ../gtk/gtkrange.c:537
 msgid "Stepper Size"
 msgstr "Tamaño do paso"
 
-#: ../gtk/gtkrange.c:537
+#: ../gtk/gtkrange.c:538
 msgid "Length of step buttons at ends"
 msgstr "Lonxitude dos botóns de paso nos extremos"
 
-#: ../gtk/gtkrange.c:550
+#: ../gtk/gtkrange.c:551
 msgid "Stepper Spacing"
 msgstr "Espazamento do paso"
 
-#: ../gtk/gtkrange.c:551
+#: ../gtk/gtkrange.c:552
 msgid "Spacing between step buttons and thumb"
 msgstr "Espazamento entre os botóns de paso e o indicador de escala"
 
-#: ../gtk/gtkrange.c:558
+#: ../gtk/gtkrange.c:559
 msgid "Arrow X Displacement"
 msgstr "Desprazamento X da frecha"
 
-#: ../gtk/gtkrange.c:559
+#: ../gtk/gtkrange.c:560
 msgid ""
 "How far in the x direction to move the arrow when the button is depressed"
 msgstr "Até onde se move a frecha na dirección X cando se solta o botón"
 
-#: ../gtk/gtkrange.c:566
+#: ../gtk/gtkrange.c:567
 msgid "Arrow Y Displacement"
 msgstr "Desprazamento Y da frecha"
 
-#: ../gtk/gtkrange.c:567
+#: ../gtk/gtkrange.c:568
 msgid ""
 "How far in the y direction to move the arrow when the button is depressed"
 msgstr "Até onde se move a frecha na dirección Y cando se solta o botón"
 
-#: ../gtk/gtkrange.c:583
+#: ../gtk/gtkrange.c:584
 msgid "Trough Under Steppers"
 msgstr "Canal baixo os pasos"
 
-#: ../gtk/gtkrange.c:584
+#: ../gtk/gtkrange.c:585
 msgid ""
 "Whether to draw trough for full length of range or exclude the steppers and "
 "spacing"
@@ -5018,11 +5026,11 @@ msgstr ""
 "Indica se se debuxa para toda a lonxitude do intervalo ou se exclúe os pasos "
 "e o espazamento"
 
-#: ../gtk/gtkrange.c:597
+#: ../gtk/gtkrange.c:598
 msgid "Arrow scaling"
 msgstr "Escalado de frecha"
 
-#: ../gtk/gtkrange.c:598
+#: ../gtk/gtkrange.c:599
 msgid "Arrow scaling with regard to scroll button size"
 msgstr "O escalado da frecha con atención ao tamaño do botón de desprazamento"
 
@@ -5119,63 +5127,63 @@ msgstr ""
 msgid "The size of the recently used resources list"
 msgstr "O tamaño da lista de recursos usados recentemente"
 
-#: ../gtk/gtkscalebutton.c:218
+#: ../gtk/gtkscalebutton.c:219
 msgid "The value of the scale"
 msgstr "O valor da escala"
 
-#: ../gtk/gtkscalebutton.c:228
+#: ../gtk/gtkscalebutton.c:229
 msgid "The icon size"
 msgstr "O tamaño da icona"
 
-#: ../gtk/gtkscalebutton.c:237
+#: ../gtk/gtkscalebutton.c:238
 msgid ""
 "The GtkAdjustment that contains the current value of this scale button object"
 msgstr ""
 "O GtkAdjustment que contén o valor actual deste obxecto de botón de escala"
 
-#: ../gtk/gtkscalebutton.c:265
+#: ../gtk/gtkscalebutton.c:266
 msgid "Icons"
 msgstr "Iconas"
 
-#: ../gtk/gtkscalebutton.c:266
+#: ../gtk/gtkscalebutton.c:267
 msgid "List of icon names"
 msgstr "Lista dos nomes de iconas"
 
-#: ../gtk/gtkscale.c:253
+#: ../gtk/gtkscale.c:255
 msgid "The number of decimal places that are displayed in the value"
 msgstr "O número de lugares decimais que se mostran no valor"
 
-#: ../gtk/gtkscale.c:262
+#: ../gtk/gtkscale.c:264
 msgid "Draw Value"
 msgstr "Valor de debuxo"
 
-#: ../gtk/gtkscale.c:263
+#: ../gtk/gtkscale.c:265
 msgid "Whether the current value is displayed as a string next to the slider"
 msgstr ""
 "Indica se o valor actual se mostra como unha cadea contigua ao control "
 "desprazábel"
 
-#: ../gtk/gtkscale.c:270
+#: ../gtk/gtkscale.c:272
 msgid "Value Position"
 msgstr "Posición do valor"
 
-#: ../gtk/gtkscale.c:271
+#: ../gtk/gtkscale.c:273
 msgid "The position in which the current value is displayed"
 msgstr "A posición na que se mostra o valor actual"
 
-#: ../gtk/gtkscale.c:278
+#: ../gtk/gtkscale.c:280
 msgid "Slider Length"
 msgstr "Lonxitude do control desprazábel"
 
-#: ../gtk/gtkscale.c:279
+#: ../gtk/gtkscale.c:281
 msgid "Length of scale's slider"
 msgstr "Lonxitude da escala do control desprazábel"
 
-#: ../gtk/gtkscale.c:287
+#: ../gtk/gtkscale.c:289
 msgid "Value spacing"
 msgstr "Espazamento do valor"
 
-#: ../gtk/gtkscale.c:288
+#: ../gtk/gtkscale.c:290
 msgid "Space between value text and the slider/trough area"
 msgstr ""
 "Espazo entre os valores de texto e a área do control desprazábel ou o canal"
@@ -5216,31 +5224,31 @@ msgstr "Como se debe determinar o tamaño do contido"
 msgid "Vertical Scrollable Policy"
 msgstr "Normativa de desprazamento vertical"
 
-#: ../gtk/gtkscrollbar.c:70
+#: ../gtk/gtkscrollbar.c:72
 msgid "Minimum Slider Length"
 msgstr "Lonxitude mínima do control desprazábel"
 
-#: ../gtk/gtkscrollbar.c:71
+#: ../gtk/gtkscrollbar.c:73
 msgid "Minimum length of scrollbar slider"
 msgstr "Tamaño mínimo da barra de desprazamento do control desprazábel"
 
-#: ../gtk/gtkscrollbar.c:79
+#: ../gtk/gtkscrollbar.c:81
 msgid "Fixed slider size"
 msgstr "Tamaño fixo do control desprazábel"
 
-#: ../gtk/gtkscrollbar.c:80
+#: ../gtk/gtkscrollbar.c:82
 msgid "Don't change slider size, just lock it to the minimum length"
 msgstr ""
 "Non cambiar o tamaño do control desprazábel, bloquealo na lonxitude mínima"
 
-#: ../gtk/gtkscrollbar.c:101
+#: ../gtk/gtkscrollbar.c:103
 msgid ""
 "Display a second backward arrow button on the opposite end of the scrollbar"
 msgstr ""
 "Mostra un segundo botón de frecha de retroceso no extremo oposto da barra de "
 "desprazamento"
 
-#: ../gtk/gtkscrollbar.c:108
+#: ../gtk/gtkscrollbar.c:110
 msgid ""
 "Display a second forward arrow button on the opposite end of the scrollbar"
 msgstr ""
@@ -6006,15 +6014,15 @@ msgstr ""
 "Se é TRUE, os widgets non mapeados ignoraranse ao determinar o tamaño do "
 "grupo"
 
-#: ../gtk/gtkspinbutton.c:329
+#: ../gtk/gtkspinbutton.c:331
 msgid "Climb Rate"
 msgstr "Taxa de incremento"
 
-#: ../gtk/gtkspinbutton.c:349
+#: ../gtk/gtkspinbutton.c:351
 msgid "Snap to Ticks"
 msgstr "Axustar aos pasos"
 
-#: ../gtk/gtkspinbutton.c:350
+#: ../gtk/gtkspinbutton.c:352
 msgid ""
 "Whether erroneous values are automatically changed to a spin button's "
 "nearest step increment"
@@ -6022,48 +6030,48 @@ msgstr ""
 "Indica se os valores errados se cambian automaticamente polo incremento de "
 "paso máis próximo dun botón de axuste"
 
-#: ../gtk/gtkspinbutton.c:357
+#: ../gtk/gtkspinbutton.c:359
 msgid "Numeric"
 msgstr "Numérico"
 
-#: ../gtk/gtkspinbutton.c:358
+#: ../gtk/gtkspinbutton.c:360
 msgid "Whether non-numeric characters should be ignored"
 msgstr "Indica se se deben ignorar os caracteres non numéricos"
 
-#: ../gtk/gtkspinbutton.c:365
+#: ../gtk/gtkspinbutton.c:367
 msgid "Wrap"
 msgstr "Axustar"
 
-#: ../gtk/gtkspinbutton.c:366
+#: ../gtk/gtkspinbutton.c:368
 msgid "Whether a spin button should wrap upon reaching its limits"
 msgstr ""
 "Indica se un botón de axuste debe axustarse cara a arriba até alcanzar os "
 "seus límites"
 
-#: ../gtk/gtkspinbutton.c:373
+#: ../gtk/gtkspinbutton.c:375
 msgid "Update Policy"
 msgstr "Política de actualización"
 
-#: ../gtk/gtkspinbutton.c:374
+#: ../gtk/gtkspinbutton.c:376
 msgid ""
 "Whether the spin button should update always, or only when the value is legal"
 msgstr ""
 "Indica se o botón de axuste debe actualizarse sempre ou só cando o valor é "
 "correcto"
 
-#: ../gtk/gtkspinbutton.c:383
+#: ../gtk/gtkspinbutton.c:385
 msgid "Reads the current value, or sets a new value"
 msgstr "Le o valor actual ou define un valor novo"
 
-#: ../gtk/gtkspinbutton.c:392
+#: ../gtk/gtkspinbutton.c:394
 msgid "Style of bevel around the spin button"
 msgstr "Estilo de bisel ao redor do botón de axuste"
 
-#: ../gtk/gtkspinner.c:118
+#: ../gtk/gtkspinner.c:116
 msgid "Whether the spinner is active"
 msgstr "Indica se o spinner é activábel"
 
-#: ../gtk/gtkstatusbar.c:182
+#: ../gtk/gtkstatusbar.c:183
 msgid "Style of bevel around the statusbar text"
 msgstr "Estilo do bisel ao redor do texto da barra de estado"
 
@@ -6087,7 +6095,7 @@ msgstr "Indica se a icona de estado está incrustada"
 msgid "The orientation of the tray"
 msgstr "A orientación da bandexa"
 
-#: ../gtk/gtkstatusicon.c:370 ../gtk/gtkwidget.c:1072
+#: ../gtk/gtkstatusicon.c:370 ../gtk/gtkwidget.c:1089
 msgid "Has tooltip"
 msgstr "Ten indicación"
 
@@ -6095,15 +6103,15 @@ msgstr "Ten indicación"
 msgid "Whether this tray icon has a tooltip"
 msgstr "Indica se esta icona de bandexa ten unha indicación"
 
-#: ../gtk/gtkstatusicon.c:396 ../gtk/gtkwidget.c:1093
+#: ../gtk/gtkstatusicon.c:396 ../gtk/gtkwidget.c:1110
 msgid "Tooltip Text"
 msgstr "Texto da indicación"
 
-#: ../gtk/gtkstatusicon.c:397 ../gtk/gtkwidget.c:1094 ../gtk/gtkwidget.c:1115
+#: ../gtk/gtkstatusicon.c:397 ../gtk/gtkwidget.c:1111 ../gtk/gtkwidget.c:1132
 msgid "The contents of the tooltip for this widget"
 msgstr "Os contidos da indicación para este widget"
 
-#: ../gtk/gtkstatusicon.c:420 ../gtk/gtkwidget.c:1114
+#: ../gtk/gtkstatusicon.c:420 ../gtk/gtkwidget.c:1131
 msgid "Tooltip markup"
 msgstr "Marcado das indicacións"
 
@@ -6123,23 +6131,23 @@ msgstr "Contexto do estilo"
 msgid "GtkStyleContext to get style from"
 msgstr "GtkStyleContext de onde obter o estilo"
 
-#: ../gtk/gtkstylecontext.c:545
+#: ../gtk/gtkstylecontext.c:432
 msgid "The associated GdkScreen"
 msgstr "O GdkScreen asociado"
 
-#: ../gtk/gtkstylecontext.c:551
+#: ../gtk/gtkstylecontext.c:438
 msgid "Direction"
 msgstr "Enderezo"
 
-#: ../gtk/gtkstylecontext.c:552 ../gtk/gtktexttag.c:269
+#: ../gtk/gtkstylecontext.c:439 ../gtk/gtktexttag.c:269
 msgid "Text direction"
 msgstr "Dirección do texto"
 
-#: ../gtk/gtkswitch.c:801
+#: ../gtk/gtkswitch.c:785
 msgid "Whether the switch is on or off"
 msgstr "Indica se o interruptor está acendido ou apagado"
 
-#: ../gtk/gtkswitch.c:836
+#: ../gtk/gtkswitch.c:819
 msgid "The minimum width of the handle"
 msgstr "O ancho mínimo do tirador"
 
@@ -6360,7 +6368,7 @@ msgstr ""
 "tema etc., polo que é recomendábel. O Pango define previamente algunhas "
 "escalas tales como PANGO_SCALE_X_LARGE"
 
-#: ../gtk/gtktexttag.c:387 ../gtk/gtktextview.c:703
+#: ../gtk/gtktexttag.c:387 ../gtk/gtktextview.c:704
 msgid "Left, right, or center justification"
 msgstr "Xustificación á esquerda, á dereita ou ao centro"
 
@@ -6377,7 +6385,7 @@ msgstr ""
 msgid "Left margin"
 msgstr "Marxe esquerda"
 
-#: ../gtk/gtktexttag.c:414 ../gtk/gtktextview.c:712
+#: ../gtk/gtktexttag.c:414 ../gtk/gtktextview.c:713
 msgid "Width of the left margin in pixels"
 msgstr "Largura da marxe esquerda en píxeles"
 
@@ -6385,15 +6393,15 @@ msgstr "Largura da marxe esquerda en píxeles"
 msgid "Right margin"
 msgstr "Marxe dereita"
 
-#: ../gtk/gtktexttag.c:424 ../gtk/gtktextview.c:722
+#: ../gtk/gtktexttag.c:424 ../gtk/gtktextview.c:723
 msgid "Width of the right margin in pixels"
 msgstr "Largura da marxe dereita en píxeles"
 
-#: ../gtk/gtktexttag.c:434 ../gtk/gtktextview.c:731
+#: ../gtk/gtktexttag.c:434 ../gtk/gtktextview.c:732
 msgid "Indent"
 msgstr "Sangría"
 
-#: ../gtk/gtktexttag.c:435 ../gtk/gtktextview.c:732
+#: ../gtk/gtktexttag.c:435 ../gtk/gtktextview.c:733
 msgid "Amount to indent the paragraph, in pixels"
 msgstr "Cantidade en píxeles para a sangría de parágrafo"
 
@@ -6409,7 +6417,7 @@ msgstr ""
 msgid "Pixels above lines"
 msgstr "Píxeles encima das liñas"
 
-#: ../gtk/gtktexttag.c:456 ../gtk/gtktextview.c:656
+#: ../gtk/gtktexttag.c:456 ../gtk/gtktextview.c:657
 msgid "Pixels of blank space above paragraphs"
 msgstr "Píxeles de espazo en branco encima do parágrafos"
 
@@ -6417,7 +6425,7 @@ msgstr "Píxeles de espazo en branco encima do parágrafos"
 msgid "Pixels below lines"
 msgstr "Píxeles debaixo das liñas"
 
-#: ../gtk/gtktexttag.c:466 ../gtk/gtktextview.c:666
+#: ../gtk/gtktexttag.c:466 ../gtk/gtktextview.c:667
 msgid "Pixels of blank space below paragraphs"
 msgstr "Píxeles de espazo en branco debaixo dos parágrafos"
 
@@ -6425,22 +6433,22 @@ msgstr "Píxeles de espazo en branco debaixo dos parágrafos"
 msgid "Pixels inside wrap"
 msgstr "Píxeles dentro do axuste"
 
-#: ../gtk/gtktexttag.c:476 ../gtk/gtktextview.c:676
+#: ../gtk/gtktexttag.c:476 ../gtk/gtktextview.c:677
 msgid "Pixels of blank space between wrapped lines in a paragraph"
 msgstr "Píxeles de espazo en branco entre as liñas axustadas nun parágrafo"
 
-#: ../gtk/gtktexttag.c:503 ../gtk/gtktextview.c:694
+#: ../gtk/gtktexttag.c:503 ../gtk/gtktextview.c:695
 msgid ""
 "Whether to wrap lines never, at word boundaries, or at character boundaries"
 msgstr ""
 "Indica se nunca se axustan as liñas aos límites de palabra ou aos límites de "
 "carácter"
 
-#: ../gtk/gtktexttag.c:512 ../gtk/gtktextview.c:741
+#: ../gtk/gtktexttag.c:512 ../gtk/gtktextview.c:742
 msgid "Tabs"
 msgstr "Lapelas"
 
-#: ../gtk/gtktexttag.c:513 ../gtk/gtktextview.c:742
+#: ../gtk/gtktexttag.c:513 ../gtk/gtktextview.c:743
 msgid "Custom tabs for this text"
 msgstr "Lapelas personalizadas para este texto"
 
@@ -6577,63 +6585,63 @@ msgstr "Definición do fondo de parágrafo"
 msgid "Whether this tag affects the paragraph background color"
 msgstr "Indica se esta etiqueta afecta á cor de fondo de parágrafo"
 
-#: ../gtk/gtktextview.c:655
+#: ../gtk/gtktextview.c:656
 msgid "Pixels Above Lines"
 msgstr "Píxeles encima das liñas"
 
-#: ../gtk/gtktextview.c:665
+#: ../gtk/gtktextview.c:666
 msgid "Pixels Below Lines"
 msgstr "Píxeles debaixo das liñas"
 
-#: ../gtk/gtktextview.c:675
+#: ../gtk/gtktextview.c:676
 msgid "Pixels Inside Wrap"
 msgstr "Píxeles dentro do axuste"
 
-#: ../gtk/gtktextview.c:693
+#: ../gtk/gtktextview.c:694
 msgid "Wrap Mode"
 msgstr "Modo de axuste"
 
-#: ../gtk/gtktextview.c:711
+#: ../gtk/gtktextview.c:712
 msgid "Left Margin"
 msgstr "Marxe esquerda"
 
-#: ../gtk/gtktextview.c:721
+#: ../gtk/gtktextview.c:722
 msgid "Right Margin"
 msgstr "Marxe dereita"
 
-#: ../gtk/gtktextview.c:749
+#: ../gtk/gtktextview.c:750
 msgid "Cursor Visible"
 msgstr "Cursor visíbel"
 
-#: ../gtk/gtktextview.c:750
+#: ../gtk/gtktextview.c:751
 msgid "If the insertion cursor is shown"
 msgstr "Se se mostra o cursor de inserción"
 
-#: ../gtk/gtktextview.c:757
+#: ../gtk/gtktextview.c:758
 msgid "Buffer"
 msgstr "Búfer"
 
-#: ../gtk/gtktextview.c:758
+#: ../gtk/gtktextview.c:759
 msgid "The buffer which is displayed"
 msgstr "O búfer que se mostra"
 
-#: ../gtk/gtktextview.c:766
+#: ../gtk/gtktextview.c:767
 msgid "Whether entered text overwrites existing contents"
 msgstr "Indica se o texto introducido sobrescribe os contidos existentes"
 
-#: ../gtk/gtktextview.c:773
+#: ../gtk/gtktextview.c:774
 msgid "Accepts tab"
 msgstr "Acepta tabulación"
 
-#: ../gtk/gtktextview.c:774
+#: ../gtk/gtktextview.c:775
 msgid "Whether Tab will result in a tab character being entered"
 msgstr "Indica se o tabulador resultará nun carácter de tabulación introducido"
 
-#: ../gtk/gtktextview.c:809
+#: ../gtk/gtktextview.c:810
 msgid "Error underline color"
 msgstr "Cor de subliñado de erros"
 
-#: ../gtk/gtktextview.c:810
+#: ../gtk/gtktextview.c:811
 msgid "Color with which to draw error-indication underlines"
 msgstr "Cor coa que debuxar o subliñado de indicación de erros"
 
@@ -6655,101 +6663,101 @@ msgstr ""
 msgid "Whether the toggle action should be active"
 msgstr "Se a acción de conmutación debe estar activa ou non"
 
-#: ../gtk/gtktogglebutton.c:178 ../gtk/gtktoggletoolbutton.c:128
+#: ../gtk/gtktogglebutton.c:179 ../gtk/gtktoggletoolbutton.c:128
 msgid "If the toggle button should be pressed in"
 msgstr "Se o botón de estado debe estar premido ou non"
 
-#: ../gtk/gtktogglebutton.c:186
+#: ../gtk/gtktogglebutton.c:187
 msgid "If the toggle button is in an \"in between\" state"
 msgstr "Se o botón de estado está en estado \"intermedio\""
 
-#: ../gtk/gtktogglebutton.c:193
+#: ../gtk/gtktogglebutton.c:194
 msgid "Draw Indicator"
 msgstr "Debuxar o indicador"
 
-#: ../gtk/gtktogglebutton.c:194
+#: ../gtk/gtktogglebutton.c:195
 msgid "If the toggle part of the button is displayed"
 msgstr "Se se mostra a parte de activación do botón"
 
-#: ../gtk/gtktoolbar.c:491 ../gtk/gtktoolpalette.c:1036
+#: ../gtk/gtktoolbar.c:499 ../gtk/gtktoolpalette.c:1038
 msgid "Toolbar Style"
 msgstr "Estilo da barra de ferramentas"
 
-#: ../gtk/gtktoolbar.c:492
+#: ../gtk/gtktoolbar.c:500
 msgid "How to draw the toolbar"
 msgstr "Como debuxar a barra de ferramentas"
 
-#: ../gtk/gtktoolbar.c:499
+#: ../gtk/gtktoolbar.c:507
 msgid "Show Arrow"
 msgstr "Mostrar frecha"
 
-#: ../gtk/gtktoolbar.c:500
+#: ../gtk/gtktoolbar.c:508
 msgid "If an arrow should be shown if the toolbar doesn't fit"
 msgstr "Se debe mostrar unha frecha se a barra de ferramentas non encaixa"
 
-#: ../gtk/gtktoolbar.c:521
+#: ../gtk/gtktoolbar.c:529
 msgid "Size of icons in this toolbar"
 msgstr "Tamaño das iconas nesta barra de ferramentas"
 
-#: ../gtk/gtktoolbar.c:536 ../gtk/gtktoolpalette.c:1022
+#: ../gtk/gtktoolbar.c:544 ../gtk/gtktoolpalette.c:1024
 msgid "Icon size set"
 msgstr "Definición do tamaño da icona"
 
-#: ../gtk/gtktoolbar.c:537 ../gtk/gtktoolpalette.c:1023
+#: ../gtk/gtktoolbar.c:545 ../gtk/gtktoolpalette.c:1025
 msgid "Whether the icon-size property has been set"
 msgstr "Indica se se estabeleceu a propiedade de tamaño da icona"
 
-#: ../gtk/gtktoolbar.c:546
+#: ../gtk/gtktoolbar.c:554
 msgid "Whether the item should receive extra space when the toolbar grows"
 msgstr ""
 "Indica se o elemento debe recibir espazo adicional cando a barra de "
 "ferramentas medre"
 
-#: ../gtk/gtktoolbar.c:554 ../gtk/gtktoolitemgroup.c:1646
+#: ../gtk/gtktoolbar.c:562 ../gtk/gtktoolitemgroup.c:1646
 msgid "Whether the item should be the same size as other homogeneous items"
 msgstr ""
 "Indica se o elemento debería ser do mesmo tamaño que outros elementos "
 "homoxéneos"
 
-#: ../gtk/gtktoolbar.c:561
+#: ../gtk/gtktoolbar.c:569
 msgid "Spacer size"
 msgstr "Tamaño do espazador"
 
-#: ../gtk/gtktoolbar.c:562
+#: ../gtk/gtktoolbar.c:570
 msgid "Size of spacers"
 msgstr "Tamaño dos espazadores"
 
-#: ../gtk/gtktoolbar.c:571
+#: ../gtk/gtktoolbar.c:579
 msgid "Amount of border space between the toolbar shadow and the buttons"
 msgstr ""
 "Cantidade de espazo do bordo entre a sombra da barra de ferramentas e os "
 "botóns"
 
-#: ../gtk/gtktoolbar.c:579
+#: ../gtk/gtktoolbar.c:587
 msgid "Maximum child expand"
 msgstr "Expansión de fillos máxima"
 
-#: ../gtk/gtktoolbar.c:580
+#: ../gtk/gtktoolbar.c:588
 msgid "Maximum amount of space an expandable item will be given"
 msgstr "Cantidade máxima de espazo que se lle dará a un elemento expandíbel"
 
-#: ../gtk/gtktoolbar.c:588
+#: ../gtk/gtktoolbar.c:596
 msgid "Space style"
 msgstr "Estilo do espazo"
 
-#: ../gtk/gtktoolbar.c:589
+#: ../gtk/gtktoolbar.c:597
 msgid "Whether spacers are vertical lines or just blank"
 msgstr "Indica se os espazadores son liñas verticais ou só espazos en branco"
 
-#: ../gtk/gtktoolbar.c:596
+#: ../gtk/gtktoolbar.c:604
 msgid "Button relief"
 msgstr "Relevo do botón"
 
-#: ../gtk/gtktoolbar.c:597
+#: ../gtk/gtktoolbar.c:605
 msgid "Type of bevel around toolbar buttons"
 msgstr "Tipo de bisel ao redor dos botóns da barra de ferramentas"
 
-#: ../gtk/gtktoolbar.c:604
+#: ../gtk/gtktoolbar.c:612
 msgid "Style of bevel around the toolbar"
 msgstr "Estilo do bisel ao redor da barra de ferramentas"
 
@@ -6871,24 +6879,24 @@ msgstr "Indica se os elementos deberían mostrarse nunha nova fila"
 msgid "Position of the item within this group"
 msgstr "Posición do elemento neste grupo"
 
-#: ../gtk/gtktoolpalette.c:1007
+#: ../gtk/gtktoolpalette.c:1009
 msgid "Size of icons in this tool palette"
 msgstr "Tamaño das iconas nesta paleta de ferramentas"
 
-#: ../gtk/gtktoolpalette.c:1037
+#: ../gtk/gtktoolpalette.c:1039
 msgid "Style of items in the tool palette"
 msgstr "Estilo dos elementos na paleta de ferramentas"
 
-#: ../gtk/gtktoolpalette.c:1053
+#: ../gtk/gtktoolpalette.c:1055
 msgid "Exclusive"
 msgstr "Exclusivo"
 
-#: ../gtk/gtktoolpalette.c:1054
+#: ../gtk/gtktoolpalette.c:1056
 msgid "Whether the item group should be the only expanded at a given time"
 msgstr ""
 "Indica se o grupo de elementos deberían expandirse só nun momento determinado"
 
-#: ../gtk/gtktoolpalette.c:1069
+#: ../gtk/gtktoolpalette.c:1071
 msgid ""
 "Whether the item group should receive extra space when the palette grows"
 msgstr ""
@@ -6975,220 +6983,220 @@ msgstr "Modelo TreeModelSort"
 msgid "The model for the TreeModelSort to sort"
 msgstr "O modelo para o TreeModelSort que ordenar"
 
-#: ../gtk/gtktreeview.c:984
+#: ../gtk/gtktreeview.c:985
 msgid "TreeView Model"
 msgstr "Modelo TreeView"
 
-#: ../gtk/gtktreeview.c:985
+#: ../gtk/gtktreeview.c:986
 msgid "The model for the tree view"
 msgstr "O modelo para a visualización en árbore"
 
-#: ../gtk/gtktreeview.c:997
+#: ../gtk/gtktreeview.c:998
 msgid "Headers Visible"
 msgstr "Cabeceiras visíbeis"
 
-#: ../gtk/gtktreeview.c:998
+#: ../gtk/gtktreeview.c:999
 msgid "Show the column header buttons"
 msgstr "Mostrar botóns nas cabeceiras de columna"
 
-#: ../gtk/gtktreeview.c:1005
+#: ../gtk/gtktreeview.c:1006
 msgid "Headers Clickable"
 msgstr "Cabeceiras premíbeis"
 
-#: ../gtk/gtktreeview.c:1006
+#: ../gtk/gtktreeview.c:1007
 msgid "Column headers respond to click events"
 msgstr "As cabeceiras de columna responden aos eventos de clic"
 
-#: ../gtk/gtktreeview.c:1013
+#: ../gtk/gtktreeview.c:1014
 msgid "Expander Column"
 msgstr "Columna expansora"
 
-#: ../gtk/gtktreeview.c:1014
+#: ../gtk/gtktreeview.c:1015
 msgid "Set the column for the expander column"
 msgstr "Estabelecer a columna para a columna expansora"
 
-#: ../gtk/gtktreeview.c:1029
+#: ../gtk/gtktreeview.c:1030
 msgid "Rules Hint"
 msgstr "Suxestión das regras"
 
-#: ../gtk/gtktreeview.c:1030
+#: ../gtk/gtktreeview.c:1031
 msgid "Set a hint to the theme engine to draw rows in alternating colors"
 msgstr ""
 "Define unha suxestión para o motor de tema para debuxar as filas con cores "
 "alternas"
 
-#: ../gtk/gtktreeview.c:1037
+#: ../gtk/gtktreeview.c:1038
 msgid "Enable Search"
 msgstr "Activar a busca"
 
-#: ../gtk/gtktreeview.c:1038
+#: ../gtk/gtktreeview.c:1039
 msgid "View allows user to search through columns interactively"
 msgstr ""
 "A visualización permite aos usuarios buscar de modo interactivo a través das "
 "columnas"
 
-#: ../gtk/gtktreeview.c:1045
+#: ../gtk/gtktreeview.c:1046
 msgid "Search Column"
 msgstr "Columna de busca"
 
-#: ../gtk/gtktreeview.c:1046
+#: ../gtk/gtktreeview.c:1047
 msgid "Model column to search through during interactive search"
 msgstr "A columna de modelo na que buscar durante a busca interactiva"
 
-#: ../gtk/gtktreeview.c:1066
+#: ../gtk/gtktreeview.c:1067
 msgid "Fixed Height Mode"
 msgstr "Modo de altura fixa"
 
-#: ../gtk/gtktreeview.c:1067
+#: ../gtk/gtktreeview.c:1068
 msgid "Speeds up GtkTreeView by assuming that all rows have the same height"
 msgstr "Acelera GtkTreeView asumindo que todas as filas teñen a mesma altura"
 
-#: ../gtk/gtktreeview.c:1087
+#: ../gtk/gtktreeview.c:1088
 msgid "Hover Selection"
 msgstr "Seleccionar ao pasar por encima"
 
-#: ../gtk/gtktreeview.c:1088
+#: ../gtk/gtktreeview.c:1089
 msgid "Whether the selection should follow the pointer"
 msgstr "Indica se a selección debería seguir o punteiro"
 
-#: ../gtk/gtktreeview.c:1107
+#: ../gtk/gtktreeview.c:1108
 msgid "Hover Expand"
 msgstr "Expandir ao pasar por encima"
 
-#: ../gtk/gtktreeview.c:1108
+#: ../gtk/gtktreeview.c:1109
 msgid ""
 "Whether rows should be expanded/collapsed when the pointer moves over them"
 msgstr ""
 "Indica se as filas deben expandirse ou contraerse cando se move o punteiro "
 "sobre elas"
 
-#: ../gtk/gtktreeview.c:1122
+#: ../gtk/gtktreeview.c:1123
 msgid "Show Expanders"
 msgstr "Mostrar expansores"
 
-#: ../gtk/gtktreeview.c:1123
+#: ../gtk/gtktreeview.c:1124
 msgid "View has expanders"
 msgstr "A visualización ten expansores"
 
-#: ../gtk/gtktreeview.c:1137
+#: ../gtk/gtktreeview.c:1138
 msgid "Level Indentation"
 msgstr "Nivel de sangría"
 
-#: ../gtk/gtktreeview.c:1138
+#: ../gtk/gtktreeview.c:1139
 msgid "Extra indentation for each level"
 msgstr "Sangría adicional para cada nivel"
 
-#: ../gtk/gtktreeview.c:1147
+#: ../gtk/gtktreeview.c:1148
 msgid "Rubber Banding"
 msgstr "Tiras de goma"
 
-#: ../gtk/gtktreeview.c:1148
+#: ../gtk/gtktreeview.c:1149
 msgid ""
 "Whether to enable selection of multiple items by dragging the mouse pointer"
 msgstr ""
 "Indica se se activa a selección de múltiples elementos arrastrando o "
 "punteiro do rato"
 
-#: ../gtk/gtktreeview.c:1155
+#: ../gtk/gtktreeview.c:1156
 msgid "Enable Grid Lines"
 msgstr "Activar as liñas da grella"
 
-#: ../gtk/gtktreeview.c:1156
+#: ../gtk/gtktreeview.c:1157
 msgid "Whether grid lines should be drawn in the tree view"
 msgstr ""
 "Indica se as liñas da grella se deben debuxar na visualización en árbore"
 
-#: ../gtk/gtktreeview.c:1164
+#: ../gtk/gtktreeview.c:1165
 msgid "Enable Tree Lines"
 msgstr "Activar as liñas da árbore"
 
-#: ../gtk/gtktreeview.c:1165
+#: ../gtk/gtktreeview.c:1166
 msgid "Whether tree lines should be drawn in the tree view"
 msgstr "Indica se se deben debuxar as liñas na visualización en árbore"
 
-#: ../gtk/gtktreeview.c:1173
+#: ../gtk/gtktreeview.c:1174
 msgid "The column in the model containing the tooltip texts for the rows"
 msgstr "A columna do modelo que contén os textos de indicación para as filas"
 
-#: ../gtk/gtktreeview.c:1195
+#: ../gtk/gtktreeview.c:1196
 msgid "Vertical Separator Width"
 msgstr "Largura do separador vertical"
 
-#: ../gtk/gtktreeview.c:1196
+#: ../gtk/gtktreeview.c:1197
 msgid "Vertical space between cells.  Must be an even number"
 msgstr "Espazo vertical entre celas.  Debe ser un número par"
 
-#: ../gtk/gtktreeview.c:1204
+#: ../gtk/gtktreeview.c:1205
 msgid "Horizontal Separator Width"
 msgstr "Largura do separador horizontal"
 
-#: ../gtk/gtktreeview.c:1205
+#: ../gtk/gtktreeview.c:1206
 msgid "Horizontal space between cells.  Must be an even number"
 msgstr "Espazo horizontal entre celas.  Debe ser un número par"
 
-#: ../gtk/gtktreeview.c:1213
+#: ../gtk/gtktreeview.c:1214
 msgid "Allow Rules"
 msgstr "Permitir regras"
 
-#: ../gtk/gtktreeview.c:1214
+#: ../gtk/gtktreeview.c:1215
 msgid "Allow drawing of alternating color rows"
 msgstr "Permitir debuxar filas con cores alternas"
 
-#: ../gtk/gtktreeview.c:1220
+#: ../gtk/gtktreeview.c:1221
 msgid "Indent Expanders"
 msgstr "Sangrar os expansores"
 
-#: ../gtk/gtktreeview.c:1221
+#: ../gtk/gtktreeview.c:1222
 msgid "Make the expanders indented"
 msgstr "Crear os expansores sangrados"
 
-#: ../gtk/gtktreeview.c:1227
+#: ../gtk/gtktreeview.c:1228
 msgid "Even Row Color"
 msgstr "Cor da fila par"
 
-#: ../gtk/gtktreeview.c:1228
+#: ../gtk/gtktreeview.c:1229
 msgid "Color to use for even rows"
 msgstr "Cor que usar para as filas pares"
 
-#: ../gtk/gtktreeview.c:1234
+#: ../gtk/gtktreeview.c:1235
 msgid "Odd Row Color"
 msgstr "Cor da fila impar"
 
-#: ../gtk/gtktreeview.c:1235
+#: ../gtk/gtktreeview.c:1236
 msgid "Color to use for odd rows"
 msgstr "Cor que usar para as filas impares"
 
-#: ../gtk/gtktreeview.c:1241
+#: ../gtk/gtktreeview.c:1242
 msgid "Grid line width"
 msgstr "Largura da liña da grella"
 
-#: ../gtk/gtktreeview.c:1242
+#: ../gtk/gtktreeview.c:1243
 msgid "Width, in pixels, of the tree view grid lines"
 msgstr "Largura, en píxeles, das liñas da grella da visualización en árbore"
 
-#: ../gtk/gtktreeview.c:1248
+#: ../gtk/gtktreeview.c:1249
 msgid "Tree line width"
 msgstr "Largura da liña da árbore"
 
-#: ../gtk/gtktreeview.c:1249
+#: ../gtk/gtktreeview.c:1250
 msgid "Width, in pixels, of the tree view lines"
 msgstr "Largura en píxeles das liñas da visualización en árbore"
 
-#: ../gtk/gtktreeview.c:1255
+#: ../gtk/gtktreeview.c:1256
 msgid "Grid line pattern"
 msgstr "Patrón da liña da grella"
 
-#: ../gtk/gtktreeview.c:1256
+#: ../gtk/gtktreeview.c:1257
 msgid "Dash pattern used to draw the tree view grid lines"
 msgstr ""
 "Patrón de trazos usado para debuxar as liñas da grella da visualización en "
 "árbore"
 
-#: ../gtk/gtktreeview.c:1262
+#: ../gtk/gtktreeview.c:1263
 msgid "Tree line pattern"
 msgstr "Patrón da liña da árbore"
 
-#: ../gtk/gtktreeview.c:1263
+#: ../gtk/gtktreeview.c:1264
 msgid "Dash pattern used to draw the tree view lines"
 msgstr ""
 "Patrón de trazos usado para debuxar as liñas da visualización en árbore"
@@ -7197,7 +7205,7 @@ msgstr ""
 msgid "Whether to display the column"
 msgstr "Indica se se mostra a columna"
 
-#: ../gtk/gtktreeviewcolumn.c:256 ../gtk/gtkwindow.c:647
+#: ../gtk/gtktreeviewcolumn.c:256 ../gtk/gtkwindow.c:648
 msgid "Resizable"
 msgstr "Redimensionábel"
 
@@ -7326,27 +7334,27 @@ msgstr "Usar iconas simbólicas"
 msgid "Whether to use symbolic icons"
 msgstr "Indica se usar iconas simbólicas"
 
-#: ../gtk/gtkwidget.c:931
+#: ../gtk/gtkwidget.c:948
 msgid "Widget name"
 msgstr "Nome do widget"
 
-#: ../gtk/gtkwidget.c:932
+#: ../gtk/gtkwidget.c:949
 msgid "The name of the widget"
 msgstr "O nome do widget"
 
-#: ../gtk/gtkwidget.c:938
+#: ../gtk/gtkwidget.c:955
 msgid "Parent widget"
 msgstr "Widget pai"
 
-#: ../gtk/gtkwidget.c:939
+#: ../gtk/gtkwidget.c:956
 msgid "The parent widget of this widget. Must be a Container widget"
 msgstr "O widget pai deste widget. Debe ser un widget contedor"
 
-#: ../gtk/gtkwidget.c:946
+#: ../gtk/gtkwidget.c:963
 msgid "Width request"
 msgstr "Solicitude de largura"
 
-#: ../gtk/gtkwidget.c:947
+#: ../gtk/gtkwidget.c:964
 msgid ""
 "Override for width request of the widget, or -1 if natural request should be "
 "used"
@@ -7354,11 +7362,11 @@ msgstr ""
 "Sobrepor a solicitude de largura do widget ou -1 se se debe empregar a "
 "solicitude normal"
 
-#: ../gtk/gtkwidget.c:955
+#: ../gtk/gtkwidget.c:972
 msgid "Height request"
 msgstr "Solicitude de altura"
 
-#: ../gtk/gtkwidget.c:956
+#: ../gtk/gtkwidget.c:973
 msgid ""
 "Override for height request of the widget, or -1 if natural request should "
 "be used"
@@ -7366,260 +7374,260 @@ msgstr ""
 "Sobrepor a solicitude de altura do widget ou -1 se se debe empregar a "
 "solicitude normal"
 
-#: ../gtk/gtkwidget.c:965
+#: ../gtk/gtkwidget.c:982
 msgid "Whether the widget is visible"
 msgstr "Indica se o widget é visíbel"
 
-#: ../gtk/gtkwidget.c:972
+#: ../gtk/gtkwidget.c:989
 msgid "Whether the widget responds to input"
 msgstr "Indica se o widget responde á entrada de datos"
 
-#: ../gtk/gtkwidget.c:978
+#: ../gtk/gtkwidget.c:995
 msgid "Application paintable"
 msgstr "Aplicativo pintábel"
 
-#: ../gtk/gtkwidget.c:979
+#: ../gtk/gtkwidget.c:996
 msgid "Whether the application will paint directly on the widget"
 msgstr "Indica se o aplicativo pintará directamente sobre o widget"
 
-#: ../gtk/gtkwidget.c:985
+#: ../gtk/gtkwidget.c:1002
 msgid "Can focus"
 msgstr "Pode enfocar"
 
-#: ../gtk/gtkwidget.c:986
+#: ../gtk/gtkwidget.c:1003
 msgid "Whether the widget can accept the input focus"
 msgstr "Indica se o widget pode aceptar o foco de entrada"
 
-#: ../gtk/gtkwidget.c:992
+#: ../gtk/gtkwidget.c:1009
 msgid "Has focus"
 msgstr "Ten foco"
 
-#: ../gtk/gtkwidget.c:993
+#: ../gtk/gtkwidget.c:1010
 msgid "Whether the widget has the input focus"
 msgstr "Indica se o widget ten o foco de entrada"
 
-#: ../gtk/gtkwidget.c:999
+#: ../gtk/gtkwidget.c:1016
 msgid "Is focus"
 msgstr "É o foco"
 
-#: ../gtk/gtkwidget.c:1000
+#: ../gtk/gtkwidget.c:1017
 msgid "Whether the widget is the focus widget within the toplevel"
 msgstr "Indica se o widget é o widget co foco, dentro do nivel superior"
 
-#: ../gtk/gtkwidget.c:1006
+#: ../gtk/gtkwidget.c:1023
 msgid "Can default"
 msgstr "Pode ser o predeterminado"
 
-#: ../gtk/gtkwidget.c:1007
+#: ../gtk/gtkwidget.c:1024
 msgid "Whether the widget can be the default widget"
 msgstr "Indica se o widget pode ser o widget predeterminado"
 
-#: ../gtk/gtkwidget.c:1013
+#: ../gtk/gtkwidget.c:1030
 msgid "Has default"
 msgstr "É o predeterminado"
 
-#: ../gtk/gtkwidget.c:1014
+#: ../gtk/gtkwidget.c:1031
 msgid "Whether the widget is the default widget"
 msgstr "Indica se o widget é o widget predeterminado"
 
-#: ../gtk/gtkwidget.c:1020
+#: ../gtk/gtkwidget.c:1037
 msgid "Receives default"
 msgstr "Recibe o predeterminado"
 
-#: ../gtk/gtkwidget.c:1021
+#: ../gtk/gtkwidget.c:1038
 msgid "If TRUE, the widget will receive the default action when it is focused"
 msgstr ""
 "Se é TRUE, o widget recibirá a acción predeterminada cando estea enfocado"
 
-#: ../gtk/gtkwidget.c:1027
+#: ../gtk/gtkwidget.c:1044
 msgid "Composite child"
 msgstr "Fillo composto"
 
-#: ../gtk/gtkwidget.c:1028
+#: ../gtk/gtkwidget.c:1045
 msgid "Whether the widget is part of a composite widget"
 msgstr "Indica se o widget é parte dun widget composto"
 
-#: ../gtk/gtkwidget.c:1034
+#: ../gtk/gtkwidget.c:1051
 msgid "Style"
 msgstr "Estilo"
 
-#: ../gtk/gtkwidget.c:1035
+#: ../gtk/gtkwidget.c:1052
 msgid ""
 "The style of the widget, which contains information about how it will look "
 "(colors etc)"
 msgstr ""
 "O estilo do widget, que contén información sobre a aparencia (cores, etc)"
 
-#: ../gtk/gtkwidget.c:1041
+#: ../gtk/gtkwidget.c:1058
 msgid "Events"
 msgstr "Eventos"
 
-#: ../gtk/gtkwidget.c:1042
+#: ../gtk/gtkwidget.c:1059
 msgid "The event mask that decides what kind of GdkEvents this widget gets"
 msgstr ""
 "A máscara de eventos que decide que tipo de GdkEvents recibe este widget"
 
-#: ../gtk/gtkwidget.c:1049
+#: ../gtk/gtkwidget.c:1066
 msgid "No show all"
 msgstr "Non mostrar todo"
 
-#: ../gtk/gtkwidget.c:1050
+#: ../gtk/gtkwidget.c:1067
 msgid "Whether gtk_widget_show_all() should not affect this widget"
 msgstr "Indica se o gtk_widget_show_all() non debe afectar a este widget"
 
-#: ../gtk/gtkwidget.c:1073
+#: ../gtk/gtkwidget.c:1090
 msgid "Whether this widget has a tooltip"
 msgstr "Indica se este widget ten unha indicación"
 
-#: ../gtk/gtkwidget.c:1129
+#: ../gtk/gtkwidget.c:1146
 msgid "Window"
 msgstr "Xanela"
 
-#: ../gtk/gtkwidget.c:1130
+#: ../gtk/gtkwidget.c:1147
 msgid "The widget's window if it is realized"
 msgstr "A xanela do widget, se se crea"
 
-#: ../gtk/gtkwidget.c:1144
+#: ../gtk/gtkwidget.c:1161
 msgid "Double Buffered"
 msgstr "Con búfer dobre"
 
-#: ../gtk/gtkwidget.c:1145
+#: ../gtk/gtkwidget.c:1162
 msgid "Whether the widget is double buffered"
 msgstr "Indica se o widget conta ou non con búfer dobre"
 
-#: ../gtk/gtkwidget.c:1160
+#: ../gtk/gtkwidget.c:1177
 msgid "How to position in extra horizontal space"
 msgstr "Como posicionar no espazo horizontal adicional"
 
-#: ../gtk/gtkwidget.c:1176
+#: ../gtk/gtkwidget.c:1193
 msgid "How to position in extra vertical space"
 msgstr "Como posicionar no espazo vertical adicional"
 
-#: ../gtk/gtkwidget.c:1195
+#: ../gtk/gtkwidget.c:1212
 msgid "Margin on Left"
 msgstr "Marxe á esquerda"
 
-#: ../gtk/gtkwidget.c:1196
+#: ../gtk/gtkwidget.c:1213
 msgid "Pixels of extra space on the left side"
 msgstr "Píxeles de espacio adicional na lado esquerda"
 
-#: ../gtk/gtkwidget.c:1216
+#: ../gtk/gtkwidget.c:1233
 msgid "Margin on Right"
 msgstr "Marxe á dereita"
 
-#: ../gtk/gtkwidget.c:1217
+#: ../gtk/gtkwidget.c:1234
 msgid "Pixels of extra space on the right side"
 msgstr "Píxeles de espacio adicional na lado dereita"
 
-#: ../gtk/gtkwidget.c:1237
+#: ../gtk/gtkwidget.c:1254
 msgid "Margin on Top"
 msgstr "Marxe superior"
 
-#: ../gtk/gtkwidget.c:1238
+#: ../gtk/gtkwidget.c:1255
 msgid "Pixels of extra space on the top side"
 msgstr "Píxeles de espacio adicional na lado superior"
 
-#: ../gtk/gtkwidget.c:1258
+#: ../gtk/gtkwidget.c:1275
 msgid "Margin on Bottom"
 msgstr "Marxe inferior"
 
-#: ../gtk/gtkwidget.c:1259
+#: ../gtk/gtkwidget.c:1276
 msgid "Pixels of extra space on the bottom side"
 msgstr "Píxeles de espacio adicional na lado inferior"
 
-#: ../gtk/gtkwidget.c:1276
+#: ../gtk/gtkwidget.c:1293
 msgid "All Margins"
 msgstr "Todos os marxes"
 
-#: ../gtk/gtkwidget.c:1277
+#: ../gtk/gtkwidget.c:1294
 msgid "Pixels of extra space on all four sides"
 msgstr "Píxeles de espacio adicional nos catro lados"
 
-#: ../gtk/gtkwidget.c:1310
+#: ../gtk/gtkwidget.c:1327
 msgid "Horizontal Expand"
 msgstr "Expansión horizontal"
 
-#: ../gtk/gtkwidget.c:1311
+#: ../gtk/gtkwidget.c:1328
 msgid "Whether widget wants more horizontal space"
 msgstr "Indica se o widget quere usar máis espazo horizontal"
 
-#: ../gtk/gtkwidget.c:1325
+#: ../gtk/gtkwidget.c:1342
 msgid "Horizontal Expand Set"
 msgstr "Axuste de expansión horizontal"
 
-#: ../gtk/gtkwidget.c:1326
+#: ../gtk/gtkwidget.c:1343
 msgid "Whether to use the hexpand property"
 msgstr "Indica se se debe usar a propiedade hexpand"
 
-#: ../gtk/gtkwidget.c:1340
+#: ../gtk/gtkwidget.c:1357
 msgid "Vertical Expand"
 msgstr "Expansión vertical"
 
-#: ../gtk/gtkwidget.c:1341
+#: ../gtk/gtkwidget.c:1358
 msgid "Whether widget wants more vertical space"
 msgstr "Indica se o widget quere usar máis espazo vertical"
 
-#: ../gtk/gtkwidget.c:1355
+#: ../gtk/gtkwidget.c:1372
 msgid "Vertical Expand Set"
 msgstr "Axuste de expansión vertical"
 
-#: ../gtk/gtkwidget.c:1356
+#: ../gtk/gtkwidget.c:1373
 msgid "Whether to use the vexpand property"
 msgstr "Indica se se debe usar a propiedade vexpand"
 
-#: ../gtk/gtkwidget.c:1370
+#: ../gtk/gtkwidget.c:1387
 msgid "Expand Both"
 msgstr "Expandir en ambas"
 
-#: ../gtk/gtkwidget.c:1371
+#: ../gtk/gtkwidget.c:1388
 msgid "Whether widget wants to expand in both directions"
 msgstr "Indica se o widget quere expandirse en ámbalas dúas direccións"
 
-#: ../gtk/gtkwidget.c:3010
+#: ../gtk/gtkwidget.c:3027
 msgid "Interior Focus"
 msgstr "Foco interior"
 
-#: ../gtk/gtkwidget.c:3011
+#: ../gtk/gtkwidget.c:3028
 msgid "Whether to draw the focus indicator inside widgets"
 msgstr "Indica se se debuxa o foco indicador dentro dos widgets"
 
-#: ../gtk/gtkwidget.c:3017
+#: ../gtk/gtkwidget.c:3034
 msgid "Focus linewidth"
 msgstr "Enfocar a largura da liña"
 
-#: ../gtk/gtkwidget.c:3018
+#: ../gtk/gtkwidget.c:3035
 msgid "Width, in pixels, of the focus indicator line"
 msgstr "Largura en píxeles da liña indicadora do foco"
 
-#: ../gtk/gtkwidget.c:3024
+#: ../gtk/gtkwidget.c:3041
 msgid "Focus line dash pattern"
 msgstr "Patrón de trazos da liña de foco"
 
-#: ../gtk/gtkwidget.c:3025
+#: ../gtk/gtkwidget.c:3042
 msgid "Dash pattern used to draw the focus indicator"
 msgstr "Patrón de trazos empregado para debuxar o indicador de foco"
 
-#: ../gtk/gtkwidget.c:3030
+#: ../gtk/gtkwidget.c:3047
 msgid "Focus padding"
 msgstr "Recheo do foco"
 
-#: ../gtk/gtkwidget.c:3031
+#: ../gtk/gtkwidget.c:3048
 msgid "Width, in pixels, between focus indicator and the widget 'box'"
 msgstr "Largura en píxeles entre o indicador de foco e a 'caixa' do widget"
 
-#: ../gtk/gtkwidget.c:3036
+#: ../gtk/gtkwidget.c:3053
 msgid "Cursor color"
 msgstr "Cor do cursor"
 
-#: ../gtk/gtkwidget.c:3037
+#: ../gtk/gtkwidget.c:3054
 msgid "Color with which to draw insertion cursor"
 msgstr "Cor coa que debuxar o cursor de inserción"
 
-#: ../gtk/gtkwidget.c:3042
+#: ../gtk/gtkwidget.c:3059
 msgid "Secondary cursor color"
 msgstr "Cor secundaria do cursor"
 
-#: ../gtk/gtkwidget.c:3043
+#: ../gtk/gtkwidget.c:3060
 msgid ""
 "Color with which to draw the secondary insertion cursor when editing mixed "
 "right-to-left and left-to-right text"
@@ -7627,43 +7635,43 @@ msgstr ""
 "Cor coa que debuxar o cursor de inserción secundario cando se edita unha "
 "mestura de texto de dereita a esquerda e de esquerda a dereita"
 
-#: ../gtk/gtkwidget.c:3048
+#: ../gtk/gtkwidget.c:3065
 msgid "Cursor line aspect ratio"
 msgstr "Proporción de aspecto da liña do cursor"
 
-#: ../gtk/gtkwidget.c:3049
+#: ../gtk/gtkwidget.c:3066
 msgid "Aspect ratio with which to draw insertion cursor"
 msgstr "Proporción de aspecto coa que debuxar o cursor de inserción"
 
-#: ../gtk/gtkwidget.c:3055
+#: ../gtk/gtkwidget.c:3072
 msgid "Window dragging"
 msgstr "Arrastre da xanela"
 
-#: ../gtk/gtkwidget.c:3056
+#: ../gtk/gtkwidget.c:3073
 msgid "Whether windows can be dragged by clicking on empty areas"
 msgstr "Indica se as xanelas se poden arrastrar premendo nas áreas baleiras"
 
-#: ../gtk/gtkwidget.c:3069
+#: ../gtk/gtkwidget.c:3086
 msgid "Unvisited Link Color"
 msgstr "Cor de ligazón non visitada"
 
-#: ../gtk/gtkwidget.c:3070
+#: ../gtk/gtkwidget.c:3087
 msgid "Color of unvisited links"
 msgstr "Cor de ligazóns non visitadas"
 
-#: ../gtk/gtkwidget.c:3083
+#: ../gtk/gtkwidget.c:3100
 msgid "Visited Link Color"
 msgstr "Cor de ligazón visitada"
 
-#: ../gtk/gtkwidget.c:3084
+#: ../gtk/gtkwidget.c:3101
 msgid "Color of visited links"
 msgstr "Cor de ligazóns visitadas"
 
-#: ../gtk/gtkwidget.c:3098
+#: ../gtk/gtkwidget.c:3115
 msgid "Wide Separators"
 msgstr "Separador longo"
 
-#: ../gtk/gtkwidget.c:3099
+#: ../gtk/gtkwidget.c:3116
 msgid ""
 "Whether separators have configurable width and should be drawn using a box "
 "instead of a line"
@@ -7671,81 +7679,81 @@ msgstr ""
 "Indica se os separadores teñen unha largura configurábel e se deberían "
 "debuxarse usando unha caixa en vez dunha liña"
 
-#: ../gtk/gtkwidget.c:3113
+#: ../gtk/gtkwidget.c:3130
 msgid "Separator Width"
 msgstr "Largura do separador"
 
-#: ../gtk/gtkwidget.c:3114
+#: ../gtk/gtkwidget.c:3131
 msgid "The width of separators if wide-separators is TRUE"
 msgstr "A largura dos separadores se «wide-separators» é TRUE"
 
-#: ../gtk/gtkwidget.c:3128
+#: ../gtk/gtkwidget.c:3145
 msgid "Separator Height"
 msgstr "Altura dos separadores"
 
-#: ../gtk/gtkwidget.c:3129
+#: ../gtk/gtkwidget.c:3146
 msgid "The height of separators if \"wide-separators\" is TRUE"
 msgstr "A altura dos separadores se «wide-separators» é TRUE"
 
-#: ../gtk/gtkwidget.c:3143
+#: ../gtk/gtkwidget.c:3160
 msgid "Horizontal Scroll Arrow Length"
 msgstr "Lonxitude da frecha de desprazamento horizontal"
 
-#: ../gtk/gtkwidget.c:3144
+#: ../gtk/gtkwidget.c:3161
 msgid "The length of horizontal scroll arrows"
 msgstr "A lonxitude das frechas de desprazamento horizontal"
 
-#: ../gtk/gtkwidget.c:3158
+#: ../gtk/gtkwidget.c:3175
 msgid "Vertical Scroll Arrow Length"
 msgstr "Lonxitude das frechas de desprazamento vertical"
 
-#: ../gtk/gtkwidget.c:3159
+#: ../gtk/gtkwidget.c:3176
 msgid "The length of vertical scroll arrows"
 msgstr "A lonxitude das frechas de desprazamento vertical"
 
-#: ../gtk/gtkwindow.c:605
+#: ../gtk/gtkwindow.c:606
 msgid "Window Type"
 msgstr "Tipo de xanela"
 
-#: ../gtk/gtkwindow.c:606
+#: ../gtk/gtkwindow.c:607
 msgid "The type of the window"
 msgstr "O tipo da xanela"
 
-#: ../gtk/gtkwindow.c:614
+#: ../gtk/gtkwindow.c:615
 msgid "Window Title"
 msgstr "Título da xanela"
 
-#: ../gtk/gtkwindow.c:615
+#: ../gtk/gtkwindow.c:616
 msgid "The title of the window"
 msgstr "O título da xanela"
 
-#: ../gtk/gtkwindow.c:622
+#: ../gtk/gtkwindow.c:623
 msgid "Window Role"
 msgstr "Rol da xanela"
 
-#: ../gtk/gtkwindow.c:623
+#: ../gtk/gtkwindow.c:624
 msgid "Unique identifier for the window to be used when restoring a session"
 msgstr ""
 "Identificador único para a xanela que se usará ao restaurar unha sesión"
 
-#: ../gtk/gtkwindow.c:639
+#: ../gtk/gtkwindow.c:640
 msgid "Startup ID"
 msgstr "ID de inicio"
 
-#: ../gtk/gtkwindow.c:640
+#: ../gtk/gtkwindow.c:641
 msgid "Unique startup identifier for the window used by startup-notification"
 msgstr ""
 "Identificador único para a xanela que se usará para a notificación de inicio"
 
-#: ../gtk/gtkwindow.c:648
+#: ../gtk/gtkwindow.c:649
 msgid "If TRUE, users can resize the window"
 msgstr "Se é TRUE, os usuarios poden redimensionar a xanela"
 
-#: ../gtk/gtkwindow.c:655
+#: ../gtk/gtkwindow.c:656
 msgid "Modal"
 msgstr "Modal"
 
-#: ../gtk/gtkwindow.c:656
+#: ../gtk/gtkwindow.c:657
 msgid ""
 "If TRUE, the window is modal (other windows are not usable while this one is "
 "up)"
@@ -7753,80 +7761,80 @@ msgstr ""
 "Se é TRUE, a xanela é modal (non é posíbel usar outras xanelas mentres esta "
 "está encima)"
 
-#: ../gtk/gtkwindow.c:663
+#: ../gtk/gtkwindow.c:664
 msgid "Window Position"
 msgstr "Posición da xanela"
 
-#: ../gtk/gtkwindow.c:664
+#: ../gtk/gtkwindow.c:665
 msgid "The initial position of the window"
 msgstr "A posición inicial da xanela"
 
-#: ../gtk/gtkwindow.c:672
+#: ../gtk/gtkwindow.c:673
 msgid "Default Width"
 msgstr "Largura predeterminada"
 
-#: ../gtk/gtkwindow.c:673
+#: ../gtk/gtkwindow.c:674
 msgid "The default width of the window, used when initially showing the window"
 msgstr ""
 "A largura predeterminada da xanela, usada cando se mostra inicialmente a "
 "xanela"
 
-#: ../gtk/gtkwindow.c:682
+#: ../gtk/gtkwindow.c:683
 msgid "Default Height"
 msgstr "Altura predeterminada"
 
-#: ../gtk/gtkwindow.c:683
+#: ../gtk/gtkwindow.c:684
 msgid ""
 "The default height of the window, used when initially showing the window"
 msgstr ""
 "A altura predeterminada da xanela, usada cando se mostra inicialmente a "
 "xanela"
 
-#: ../gtk/gtkwindow.c:692
+#: ../gtk/gtkwindow.c:693
 msgid "Destroy with Parent"
 msgstr "Destruír co pai"
 
-#: ../gtk/gtkwindow.c:693
+#: ../gtk/gtkwindow.c:694
 msgid "If this window should be destroyed when the parent is destroyed"
 msgstr "Se esta xanela debería ser destruída cando se destrúe o pai"
 
-#: ../gtk/gtkwindow.c:701
+#: ../gtk/gtkwindow.c:702
 msgid "Icon for this window"
 msgstr "Icona para esta xanela"
 
-#: ../gtk/gtkwindow.c:707
+#: ../gtk/gtkwindow.c:708
 msgid "Mnemonics Visible"
 msgstr "Mnemónicos visíbeis"
 
-#: ../gtk/gtkwindow.c:708
+#: ../gtk/gtkwindow.c:709
 msgid "Whether mnemonics are currently visible in this window"
 msgstr "Indica se os mnemónicos están visíbeis actualmente nesta xanela"
 
-#: ../gtk/gtkwindow.c:724
+#: ../gtk/gtkwindow.c:725
 msgid "Name of the themed icon for this window"
 msgstr "Nome da icona de tema para esta xanela"
 
-#: ../gtk/gtkwindow.c:739
+#: ../gtk/gtkwindow.c:740
 msgid "Is Active"
 msgstr "Está activo"
 
-#: ../gtk/gtkwindow.c:740
+#: ../gtk/gtkwindow.c:741
 msgid "Whether the toplevel is the current active window"
 msgstr "Indica se o nivel superior é a xanela activa actual"
 
-#: ../gtk/gtkwindow.c:747
+#: ../gtk/gtkwindow.c:748
 msgid "Focus in Toplevel"
 msgstr "Foco no nivel superior"
 
-#: ../gtk/gtkwindow.c:748
+#: ../gtk/gtkwindow.c:749
 msgid "Whether the input focus is within this GtkWindow"
 msgstr "Indica se o foco de entrada está dentro desta GtkWindow"
 
-#: ../gtk/gtkwindow.c:755
+#: ../gtk/gtkwindow.c:756
 msgid "Type hint"
 msgstr "Suxestión de tipo"
 
-#: ../gtk/gtkwindow.c:756
+#: ../gtk/gtkwindow.c:757
 msgid ""
 "Hint to help the desktop environment understand what kind of window this is "
 "and how to treat it."
@@ -7834,118 +7842,126 @@ msgstr ""
 "Suxestión para axudar ao contorno de escritorio a entender que clase de "
 "xanela é e como tratar con ela."
 
-#: ../gtk/gtkwindow.c:764
+#: ../gtk/gtkwindow.c:765
 msgid "Skip taskbar"
 msgstr "Omitir a barra de tarefas"
 
-#: ../gtk/gtkwindow.c:765
+#: ../gtk/gtkwindow.c:766
 msgid "TRUE if the window should not be in the task bar."
 msgstr "É TRUE se a xanela non debe estar na barra de tarefas."
 
-#: ../gtk/gtkwindow.c:772
+#: ../gtk/gtkwindow.c:773
 msgid "Skip pager"
 msgstr "Omitir o paxinador"
 
-#: ../gtk/gtkwindow.c:773
+#: ../gtk/gtkwindow.c:774
 msgid "TRUE if the window should not be in the pager."
 msgstr "É TRUE se a xanela non debe estar no paxinador."
 
-#: ../gtk/gtkwindow.c:780
+#: ../gtk/gtkwindow.c:781
 msgid "Urgent"
 msgstr "Urxente"
 
-#: ../gtk/gtkwindow.c:781
+#: ../gtk/gtkwindow.c:782
 msgid "TRUE if the window should be brought to the user's attention."
 msgstr "É TRUE se a xanela debe chamar a atención do usuario."
 
-#: ../gtk/gtkwindow.c:795
+#: ../gtk/gtkwindow.c:796
 msgid "Accept focus"
 msgstr "Aceptar o foco"
 
-#: ../gtk/gtkwindow.c:796
+#: ../gtk/gtkwindow.c:797
 msgid "TRUE if the window should receive the input focus."
 msgstr "É TRUE se a xanela non debe recibir o foco de entrada."
 
-#: ../gtk/gtkwindow.c:810
+#: ../gtk/gtkwindow.c:811
 msgid "Focus on map"
 msgstr "Foco no mapa"
 
-#: ../gtk/gtkwindow.c:811
+#: ../gtk/gtkwindow.c:812
 msgid "TRUE if the window should receive the input focus when mapped."
 msgstr "É TRUE se a xanela debería recibir o foco de entrada cando se mapee."
 
-#: ../gtk/gtkwindow.c:825
+#: ../gtk/gtkwindow.c:826
 msgid "Decorated"
 msgstr "Decorado"
 
-#: ../gtk/gtkwindow.c:826
+#: ../gtk/gtkwindow.c:827
 msgid "Whether the window should be decorated by the window manager"
 msgstr "Indica se o xestor de xanelas debe decorar a xanela"
 
-#: ../gtk/gtkwindow.c:840
+#: ../gtk/gtkwindow.c:841
 msgid "Deletable"
 msgstr "Eliminábel"
 
-#: ../gtk/gtkwindow.c:841
+#: ../gtk/gtkwindow.c:842
 msgid "Whether the window frame should have a close button"
 msgstr "Indica se o marco da xanela debería ter un botón de pechar"
 
-#: ../gtk/gtkwindow.c:860
+#: ../gtk/gtkwindow.c:861
 msgid "Resize grip"
 msgstr "Tirador de redimensión"
 
-#: ../gtk/gtkwindow.c:861
+#: ../gtk/gtkwindow.c:862
 msgid "Specifies whether the window should have a resize grip"
 msgstr "Indica se a xanela debe ter un tirador de redimensión"
 
-#: ../gtk/gtkwindow.c:875
+#: ../gtk/gtkwindow.c:876
 msgid "Resize grip is visible"
 msgstr "O tirador de redimensión é visíbel"
 
-#: ../gtk/gtkwindow.c:876
+#: ../gtk/gtkwindow.c:877
 msgid "Specifies whether the window's resize grip is visible."
 msgstr "Indica se o tirador de redimensión da xanela é visíbel."
 
-#: ../gtk/gtkwindow.c:892
+#: ../gtk/gtkwindow.c:893
 msgid "Gravity"
 msgstr "Gravidade"
 
-#: ../gtk/gtkwindow.c:893
+#: ../gtk/gtkwindow.c:894
 msgid "The window gravity of the window"
 msgstr "O tipo de gravidade da xanela"
 
-#: ../gtk/gtkwindow.c:910
+#: ../gtk/gtkwindow.c:911
 msgid "Transient for Window"
 msgstr "Transición para a xanela"
 
-#: ../gtk/gtkwindow.c:911
+#: ../gtk/gtkwindow.c:912
 msgid "The transient parent of the dialog"
 msgstr "O pai transicional do diálogo"
 
-#: ../gtk/gtkwindow.c:926
+#: ../gtk/gtkwindow.c:927
 msgid "Opacity for Window"
 msgstr "Opacidade para a xanela"
 
-#: ../gtk/gtkwindow.c:927
+#: ../gtk/gtkwindow.c:928
 msgid "The opacity of the window, from 0 to 1"
 msgstr "A opacidade da xanela; de 0 até 1"
 
-#: ../gtk/gtkwindow.c:937 ../gtk/gtkwindow.c:938
+#: ../gtk/gtkwindow.c:938 ../gtk/gtkwindow.c:939
 msgid "Width of resize grip"
 msgstr "Anchura do tirador de redimensión"
 
-#: ../gtk/gtkwindow.c:943 ../gtk/gtkwindow.c:944
+#: ../gtk/gtkwindow.c:944 ../gtk/gtkwindow.c:945
 msgid "Height of resize grip"
 msgstr "Altura do tirador de redimensión"
 
-#: ../gtk/gtkwindow.c:966
+#: ../gtk/gtkwindow.c:967
 msgid "GtkApplication"
 msgstr "GtkApplication"
 
-#: ../gtk/gtkwindow.c:967
+#: ../gtk/gtkwindow.c:968
 msgid "The GtkApplication for the window"
 msgstr "O GtkApplication para a xanela"
 
+#: ../modules/printbackends/cups/gtkprintercups.c:95
+msgid "Color Profile Title"
+msgstr "Título do perfil de cor"
+
+#: ../modules/printbackends/cups/gtkprintercups.c:96
+msgid "The title of the color profile to use"
+msgstr "O título do perfil de cor que usar"
+
 #~ msgid "Not Authorized Text"
 #~ msgstr "Texto non autorizado"
 
index 90dba4b5ddbf827833e36a2fbb10959601e70a45..84b8f95ff6e59e9a170c8d4d250d54d4bf3ab411 100644 (file)
@@ -6,8 +6,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gtk+.HEAD.he\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-10 12:55+0300\n"
-"PO-Revision-Date: 2011-06-10 12:55+0200\n"
+"POT-Creation-Date: 2011-07-15 11:02+0300\n"
+"PO-Revision-Date: 2011-07-15 11:03+0200\n"
 "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
 "Language-Team: Gezer (Hebrew)\n"
 "Language: he\n"
@@ -127,15 +127,6 @@ msgstr "The resolution for fonts on the screen"
 msgid "Cursor"
 msgstr "Cursor"
 
-#: ../gdk/x11/gdkdevice-xi.c:140 ../gdk/x11/gdkdevice-xi.c:141
-#: ../gdk/x11/gdkdevice-xi2.c:130
-msgid "Device ID"
-msgstr "Device ID"
-
-#: ../gdk/x11/gdkdevice-xi2.c:131
-msgid "Device identifier"
-msgstr "Device identifier"
-
 #: ../gdk/x11/gdkdevicemanager-xi2.c:119
 msgid "Opcode"
 msgstr "Opcode"
@@ -152,6 +143,15 @@ msgstr "Event base"
 msgid "Event base for XInput events"
 msgstr "Event base for XInput events"
 
+#: ../gdk/x11/gdkdevice-xi2.c:130 ../gdk/x11/gdkdevice-xi.c:140
+#: ../gdk/x11/gdkdevice-xi.c:141
+msgid "Device ID"
+msgstr "Device ID"
+
+#: ../gdk/x11/gdkdevice-xi2.c:131
+msgid "Device identifier"
+msgstr "Device identifier"
+
 #: ../gtk/gtkaboutdialog.c:275
 msgid "Program name"
 msgstr "Program name"
@@ -291,7 +291,7 @@ msgid "The widget to be monitored for accelerator changes"
 msgstr "The widget to be monitored for accelerator changes"
 
 #: ../gtk/gtkaction.c:222 ../gtk/gtkactiongroup.c:228 ../gtk/gtkprinter.c:125
-#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:257
+#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:258
 msgid "Name"
 msgstr "Name"
 
@@ -299,9 +299,9 @@ msgstr "Name"
 msgid "A unique name for the action."
 msgstr "A unique name for the action."
 
-#: ../gtk/gtkaction.c:241 ../gtk/gtkbutton.c:227 ../gtk/gtkexpander.c:289
-#: ../gtk/gtkframe.c:170 ../gtk/gtklabel.c:742 ../gtk/gtkmenuitem.c:381
-#: ../gtk/gtktoolbutton.c:232 ../gtk/gtktoolitemgroup.c:1591
+#: ../gtk/gtkaction.c:241 ../gtk/gtkbutton.c:228 ../gtk/gtkexpander.c:290
+#: ../gtk/gtkframe.c:171 ../gtk/gtklabel.c:744 ../gtk/gtkmenuitem.c:384
+#: ../gtk/gtktoolbutton.c:232 ../gtk/gtktoolitemgroup.c:1592
 msgid "Label"
 msgstr "Label"
 
@@ -338,18 +338,18 @@ msgid "GIcon"
 msgstr "GIcon"
 
 #: ../gtk/gtkaction.c:305 ../gtk/gtkcellrendererpixbuf.c:235
-#: ../gtk/gtkimage.c:328 ../gtk/gtkstatusicon.c:276
+#: ../gtk/gtkimage.c:330 ../gtk/gtkstatusicon.c:276
 msgid "The GIcon being displayed"
 msgstr "The GIcon being displayed"
 
 #: ../gtk/gtkaction.c:325 ../gtk/gtkcellrendererpixbuf.c:200
-#: ../gtk/gtkimage.c:310 ../gtk/gtkprinter.c:174 ../gtk/gtkstatusicon.c:259
+#: ../gtk/gtkimage.c:312 ../gtk/gtkprinter.c:174 ../gtk/gtkstatusicon.c:259
 #: ../gtk/gtkwindow.c:724
 msgid "Icon Name"
 msgstr "Icon Name"
 
 #: ../gtk/gtkaction.c:326 ../gtk/gtkcellrendererpixbuf.c:201
-#: ../gtk/gtkimage.c:311 ../gtk/gtkstatusicon.c:260
+#: ../gtk/gtkimage.c:313 ../gtk/gtkstatusicon.c:260
 msgid "The name of the icon from the icon theme"
 msgstr "The name of the icon from the icon theme"
 
@@ -410,7 +410,7 @@ msgid "When TRUE, empty menu proxies for this action are hidden."
 msgstr "When TRUE, empty menu proxies for this action are hidden."
 
 #: ../gtk/gtkaction.c:381 ../gtk/gtkactiongroup.c:235
-#: ../gtk/gtkcellrenderer.c:290 ../gtk/gtkwidget.c:972
+#: ../gtk/gtkcellrenderer.c:290 ../gtk/gtkwidget.c:988
 msgid "Sensitive"
 msgstr "Sensitive"
 
@@ -420,7 +420,7 @@ msgstr "Whether the action is enabled."
 
 #: ../gtk/gtkaction.c:388 ../gtk/gtkactiongroup.c:242
 #: ../gtk/gtkstatusicon.c:310 ../gtk/gtktreeviewcolumn.c:248
-#: ../gtk/gtkwidget.c:965
+#: ../gtk/gtkwidget.c:981
 msgid "Visible"
 msgstr "Visible"
 
@@ -477,7 +477,7 @@ msgid "Whether to use the related actions appearance properties"
 msgstr "Whether to use the related actions appearance properties"
 
 #: ../gtk/gtkadjustment.c:123 ../gtk/gtkcellrendererprogress.c:138
-#: ../gtk/gtkscalebutton.c:217 ../gtk/gtkspinbutton.c:382
+#: ../gtk/gtkscalebutton.c:218 ../gtk/gtkspinbutton.c:384
 msgid "Value"
 msgstr "Value"
 
@@ -529,7 +529,7 @@ msgstr "The page size of the adjustment"
 msgid "Horizontal alignment"
 msgstr "Horizontal alignment"
 
-#: ../gtk/gtkalignment.c:138 ../gtk/gtkbutton.c:278
+#: ../gtk/gtkalignment.c:138 ../gtk/gtkbutton.c:279
 msgid ""
 "Horizontal position of child in available space. 0.0 is left aligned, 1.0 is "
 "right aligned"
@@ -541,7 +541,7 @@ msgstr ""
 msgid "Vertical alignment"
 msgstr "Vertical alignment"
 
-#: ../gtk/gtkalignment.c:148 ../gtk/gtkbutton.c:297
+#: ../gtk/gtkalignment.c:148 ../gtk/gtkbutton.c:298
 msgid ""
 "Vertical position of child in available space. 0.0 is top aligned, 1.0 is "
 "bottom aligned"
@@ -689,32 +689,32 @@ msgstr "Widget's default text"
 msgid "The default text appearing when there are no applications"
 msgstr "The default text appearing when there are no applications"
 
-#: ../gtk/gtkarrow.c:110
+#: ../gtk/gtkarrow.c:112
 msgid "Arrow direction"
 msgstr "Arrow direction"
 
-#: ../gtk/gtkarrow.c:111
+#: ../gtk/gtkarrow.c:113
 msgid "The direction the arrow should point"
 msgstr "The direction the arrow should point"
 
-#: ../gtk/gtkarrow.c:119
+#: ../gtk/gtkarrow.c:121
 msgid "Arrow shadow"
 msgstr "Arrow shadow"
 
-#: ../gtk/gtkarrow.c:120
+#: ../gtk/gtkarrow.c:122
 msgid "Appearance of the shadow surrounding the arrow"
 msgstr "Appearance of the shadow surrounding the arrow"
 
-#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:985 ../gtk/gtkmenu.c:797
-#: ../gtk/gtkmenuitem.c:444
+#: ../gtk/gtkarrow.c:129 ../gtk/gtkcombobox.c:986 ../gtk/gtkmenu.c:798
+#: ../gtk/gtkmenuitem.c:447
 msgid "Arrow Scaling"
 msgstr "Arrow Scaling"
 
-#: ../gtk/gtkarrow.c:128
+#: ../gtk/gtkarrow.c:130
 msgid "Amount of space used up by arrow"
 msgstr "Amount of space used up by arrow"
 
-#: ../gtk/gtkaspectframe.c:109 ../gtk/gtkwidget.c:1160
+#: ../gtk/gtkaspectframe.c:109 ../gtk/gtkwidget.c:1176
 msgid "Horizontal Alignment"
 msgstr "Horizontal Alignment"
 
@@ -722,7 +722,7 @@ msgstr "Horizontal Alignment"
 msgid "X alignment of the child"
 msgstr "X alignment of the child"
 
-#: ../gtk/gtkaspectframe.c:116 ../gtk/gtkwidget.c:1176
+#: ../gtk/gtkaspectframe.c:116 ../gtk/gtkwidget.c:1192
 msgid "Vertical Alignment"
 msgstr "Vertical Alignment"
 
@@ -866,39 +866,39 @@ msgstr "Non-Homogeneous"
 msgid "If TRUE, the child will not be subject to homogeneous sizing"
 msgstr "If TRUE, the child will not be subject to homogeneous sizing"
 
-#: ../gtk/gtkbox.c:243 ../gtk/gtkcellareabox.c:317 ../gtk/gtkexpander.c:313
-#: ../gtk/gtkiconview.c:644 ../gtk/gtktreeviewcolumn.c:283
+#: ../gtk/gtkbox.c:241 ../gtk/gtkcellareabox.c:317 ../gtk/gtkexpander.c:314
+#: ../gtk/gtkiconview.c:643 ../gtk/gtktreeviewcolumn.c:283
 msgid "Spacing"
 msgstr "Spacing"
 
-#: ../gtk/gtkbox.c:244
+#: ../gtk/gtkbox.c:242
 msgid "The amount of space between children"
 msgstr "The amount of space between children"
 
-#: ../gtk/gtkbox.c:253 ../gtk/gtktable.c:227 ../gtk/gtktoolbar.c:554
-#: ../gtk/gtktoolitemgroup.c:1644
+#: ../gtk/gtkbox.c:251 ../gtk/gtktable.c:227 ../gtk/gtktoolbar.c:561
+#: ../gtk/gtktoolitemgroup.c:1645
 msgid "Homogeneous"
 msgstr "Homogeneous"
 
-#: ../gtk/gtkbox.c:254
+#: ../gtk/gtkbox.c:252
 msgid "Whether the children should all be the same size"
 msgstr "Whether the children should all be the same size"
 
-#: ../gtk/gtkbox.c:274 ../gtk/gtkcellareabox.c:337 ../gtk/gtktoolbar.c:546
-#: ../gtk/gtktoolitemgroup.c:1651 ../gtk/gtktoolpalette.c:1068
+#: ../gtk/gtkbox.c:272 ../gtk/gtkcellareabox.c:337 ../gtk/gtktoolbar.c:553
+#: ../gtk/gtktoolitemgroup.c:1652 ../gtk/gtktoolpalette.c:1070
 #: ../gtk/gtktreeviewcolumn.c:339
 msgid "Expand"
 msgstr "Expand"
 
-#: ../gtk/gtkbox.c:275
+#: ../gtk/gtkbox.c:273
 msgid "Whether the child should receive extra space when the parent grows"
 msgstr "Whether the child should receive extra space when the parent grows"
 
-#: ../gtk/gtkbox.c:291 ../gtk/gtktoolitemgroup.c:1658
+#: ../gtk/gtkbox.c:289 ../gtk/gtktoolitemgroup.c:1659
 msgid "Fill"
 msgstr "Fill"
 
-#: ../gtk/gtkbox.c:292
+#: ../gtk/gtkbox.c:290
 msgid ""
 "Whether extra space given to the child should be allocated to the child or "
 "used as padding"
@@ -906,19 +906,19 @@ msgstr ""
 "Whether extra space given to the child should be allocated to the child or "
 "used as padding"
 
-#: ../gtk/gtkbox.c:299 ../gtk/gtktrayicon-x11.c:169
+#: ../gtk/gtkbox.c:297 ../gtk/gtktrayicon-x11.c:169
 msgid "Padding"
 msgstr "Padding"
 
-#: ../gtk/gtkbox.c:300
+#: ../gtk/gtkbox.c:298
 msgid "Extra space to put between the child and its neighbors, in pixels"
 msgstr "Extra space to put between the child and its neighbors, in pixels"
 
-#: ../gtk/gtkbox.c:306
+#: ../gtk/gtkbox.c:304
 msgid "Pack type"
 msgstr "Pack type"
 
-#: ../gtk/gtkbox.c:307
+#: ../gtk/gtkbox.c:305
 msgid ""
 "A GtkPackType indicating whether the child is packed with reference to the "
 "start or end of the parent"
@@ -926,12 +926,12 @@ msgstr ""
 "A GtkPackType indicating whether the child is packed with reference to the "
 "start or end of the parent"
 
-#: ../gtk/gtkbox.c:313 ../gtk/gtknotebook.c:770 ../gtk/gtkpaned.c:349
-#: ../gtk/gtktoolitemgroup.c:1672
+#: ../gtk/gtkbox.c:311 ../gtk/gtknotebook.c:771 ../gtk/gtkpaned.c:349
+#: ../gtk/gtktoolitemgroup.c:1673
 msgid "Position"
 msgstr "Position"
 
-#: ../gtk/gtkbox.c:314 ../gtk/gtknotebook.c:771
+#: ../gtk/gtkbox.c:312 ../gtk/gtknotebook.c:772
 msgid "The index of the child in the parent"
 msgstr "The index of the child in the parent"
 
@@ -943,7 +943,7 @@ msgstr "Translation Domain"
 msgid "The translation domain used by gettext"
 msgstr "The translation domain used by gettext"
 
-#: ../gtk/gtkbutton.c:228
+#: ../gtk/gtkbutton.c:229
 msgid ""
 "Text of the label widget inside the button, if the button contains a label "
 "widget"
@@ -951,13 +951,13 @@ msgstr ""
 "Text of the label widget inside the button, if the button contains a label "
 "widget"
 
-#: ../gtk/gtkbutton.c:235 ../gtk/gtkexpander.c:297 ../gtk/gtklabel.c:763
-#: ../gtk/gtkmenuitem.c:396 ../gtk/gtktoolbutton.c:239
+#: ../gtk/gtkbutton.c:236 ../gtk/gtkexpander.c:298 ../gtk/gtklabel.c:765
+#: ../gtk/gtkmenuitem.c:399 ../gtk/gtktoolbutton.c:239
 msgid "Use underline"
 msgstr "Use underline"
 
-#: ../gtk/gtkbutton.c:236 ../gtk/gtkexpander.c:298 ../gtk/gtklabel.c:764
-#: ../gtk/gtkmenuitem.c:397
+#: ../gtk/gtkbutton.c:237 ../gtk/gtkexpander.c:299 ../gtk/gtklabel.c:766
+#: ../gtk/gtkmenuitem.c:400
 msgid ""
 "If set, an underline in the text indicates the next character should be used "
 "for the mnemonic accelerator key"
@@ -965,70 +965,70 @@ msgstr ""
 "If set, an underline in the text indicates the next character should be used "
 "for the mnemonic accelerator key"
 
-#: ../gtk/gtkbutton.c:243 ../gtk/gtkimagemenuitem.c:175
+#: ../gtk/gtkbutton.c:244 ../gtk/gtkimagemenuitem.c:175
 msgid "Use stock"
 msgstr "Use stock"
 
-#: ../gtk/gtkbutton.c:244
+#: ../gtk/gtkbutton.c:245
 msgid ""
 "If set, the label is used to pick a stock item instead of being displayed"
 msgstr ""
 "If set, the label is used to pick a stock item instead of being displayed"
 
-#: ../gtk/gtkbutton.c:251 ../gtk/gtkcombobox.c:791
+#: ../gtk/gtkbutton.c:252 ../gtk/gtkcombobox.c:792
 #: ../gtk/gtkfilechooserbutton.c:426
 msgid "Focus on click"
 msgstr "Focus on click"
 
-#: ../gtk/gtkbutton.c:252 ../gtk/gtkfilechooserbutton.c:427
+#: ../gtk/gtkbutton.c:253 ../gtk/gtkfilechooserbutton.c:427
 msgid "Whether the button grabs focus when it is clicked with the mouse"
 msgstr "Whether the button grabs focus when it is clicked with the mouse"
 
-#: ../gtk/gtkbutton.c:259
+#: ../gtk/gtkbutton.c:260
 msgid "Border relief"
 msgstr "Border relief"
 
-#: ../gtk/gtkbutton.c:260
+#: ../gtk/gtkbutton.c:261
 msgid "The border relief style"
 msgstr "The border relief style"
 
-#: ../gtk/gtkbutton.c:277
+#: ../gtk/gtkbutton.c:278
 msgid "Horizontal alignment for child"
 msgstr "Horizontal alignment for child"
 
-#: ../gtk/gtkbutton.c:296
+#: ../gtk/gtkbutton.c:297
 msgid "Vertical alignment for child"
 msgstr "Vertical alignment for child"
 
-#: ../gtk/gtkbutton.c:313 ../gtk/gtkimagemenuitem.c:160
+#: ../gtk/gtkbutton.c:314 ../gtk/gtkimagemenuitem.c:160
 msgid "Image widget"
 msgstr "Image widget"
 
-#: ../gtk/gtkbutton.c:314
+#: ../gtk/gtkbutton.c:315
 msgid "Child widget to appear next to the button text"
 msgstr "Child widget to appear next to the button text"
 
-#: ../gtk/gtkbutton.c:328
+#: ../gtk/gtkbutton.c:329
 msgid "Image position"
 msgstr "Image position"
 
-#: ../gtk/gtkbutton.c:329
+#: ../gtk/gtkbutton.c:330
 msgid "The position of the image relative to the text"
 msgstr "The position of the image relative to the text"
 
-#: ../gtk/gtkbutton.c:449
+#: ../gtk/gtkbutton.c:450
 msgid "Default Spacing"
 msgstr "Default Spacing"
 
-#: ../gtk/gtkbutton.c:450
+#: ../gtk/gtkbutton.c:451
 msgid "Extra space to add for GTK_CAN_DEFAULT buttons"
 msgstr "Extra space to add for GTK_CAN_DEFAULT buttons"
 
-#: ../gtk/gtkbutton.c:464
+#: ../gtk/gtkbutton.c:465
 msgid "Default Outside Spacing"
 msgstr "Default Outside Spacing"
 
-#: ../gtk/gtkbutton.c:465
+#: ../gtk/gtkbutton.c:466
 msgid ""
 "Extra space to add for GTK_CAN_DEFAULT buttons that is always drawn outside "
 "the border"
@@ -1036,31 +1036,31 @@ msgstr ""
 "Extra space to add for GTK_CAN_DEFAULT buttons that is always drawn outside "
 "the border"
 
-#: ../gtk/gtkbutton.c:470
+#: ../gtk/gtkbutton.c:471
 msgid "Child X Displacement"
 msgstr "Child X Displacement"
 
-#: ../gtk/gtkbutton.c:471
+#: ../gtk/gtkbutton.c:472
 msgid ""
 "How far in the x direction to move the child when the button is depressed"
 msgstr ""
 "How far in the x direction to move the child when the button is depressed"
 
-#: ../gtk/gtkbutton.c:478
+#: ../gtk/gtkbutton.c:479
 msgid "Child Y Displacement"
 msgstr "Child Y Displacement"
 
-#: ../gtk/gtkbutton.c:479
+#: ../gtk/gtkbutton.c:480
 msgid ""
 "How far in the y direction to move the child when the button is depressed"
 msgstr ""
 "How far in the y direction to move the child when the button is depressed"
 
-#: ../gtk/gtkbutton.c:495
+#: ../gtk/gtkbutton.c:496
 msgid "Displace focus"
 msgstr "Displace focus"
 
-#: ../gtk/gtkbutton.c:496
+#: ../gtk/gtkbutton.c:497
 msgid ""
 "Whether the child_displacement_x/_y properties should also affect the focus "
 "rectangle"
@@ -1068,43 +1068,43 @@ msgstr ""
 "Whether the child_displacement_x/_y properties should also affect the focus "
 "rectangle"
 
-#: ../gtk/gtkbutton.c:509 ../gtk/gtkentry.c:791 ../gtk/gtkentry.c:1866
+#: ../gtk/gtkbutton.c:510 ../gtk/gtkentry.c:794 ../gtk/gtkentry.c:1869
 msgid "Inner Border"
 msgstr "Inner Border"
 
-#: ../gtk/gtkbutton.c:510
+#: ../gtk/gtkbutton.c:511
 msgid "Border between button edges and child."
 msgstr "Border between button edges and child."
 
-#: ../gtk/gtkbutton.c:523
+#: ../gtk/gtkbutton.c:524
 msgid "Image spacing"
 msgstr "Image spacing"
 
-#: ../gtk/gtkbutton.c:524
+#: ../gtk/gtkbutton.c:525
 msgid "Spacing in pixels between the image and label"
 msgstr "Spacing in pixels between the image and label"
 
-#: ../gtk/gtkcalendar.c:467
+#: ../gtk/gtkcalendar.c:471
 msgid "Year"
 msgstr "Year"
 
-#: ../gtk/gtkcalendar.c:468
+#: ../gtk/gtkcalendar.c:472
 msgid "The selected year"
 msgstr "The selected year"
 
-#: ../gtk/gtkcalendar.c:481
+#: ../gtk/gtkcalendar.c:485
 msgid "Month"
 msgstr "Month"
 
-#: ../gtk/gtkcalendar.c:482
+#: ../gtk/gtkcalendar.c:486
 msgid "The selected month (as a number between 0 and 11)"
 msgstr "The selected month (as a number between 0 and 11)"
 
-#: ../gtk/gtkcalendar.c:496
+#: ../gtk/gtkcalendar.c:500
 msgid "Day"
 msgstr "Day"
 
-#: ../gtk/gtkcalendar.c:497
+#: ../gtk/gtkcalendar.c:501
 msgid ""
 "The selected day (as a number between 1 and 31, or 0 to unselect the "
 "currently selected day)"
@@ -1112,83 +1112,83 @@ msgstr ""
 "The selected day (as a number between 1 and 31, or 0 to unselect the "
 "currently selected day)"
 
-#: ../gtk/gtkcalendar.c:511
+#: ../gtk/gtkcalendar.c:515
 msgid "Show Heading"
 msgstr "Show Heading"
 
-#: ../gtk/gtkcalendar.c:512
+#: ../gtk/gtkcalendar.c:516
 msgid "If TRUE, a heading is displayed"
 msgstr "If TRUE, a heading is displayed"
 
-#: ../gtk/gtkcalendar.c:526
+#: ../gtk/gtkcalendar.c:530
 msgid "Show Day Names"
 msgstr "Show Day Names"
 
-#: ../gtk/gtkcalendar.c:527
+#: ../gtk/gtkcalendar.c:531
 msgid "If TRUE, day names are displayed"
 msgstr "If TRUE, day names are displayed"
 
-#: ../gtk/gtkcalendar.c:540
+#: ../gtk/gtkcalendar.c:544
 msgid "No Month Change"
 msgstr "No Month Change"
 
-#: ../gtk/gtkcalendar.c:541
+#: ../gtk/gtkcalendar.c:545
 msgid "If TRUE, the selected month cannot be changed"
 msgstr "If TRUE, the selected month cannot be changed"
 
-#: ../gtk/gtkcalendar.c:555
+#: ../gtk/gtkcalendar.c:559
 msgid "Show Week Numbers"
 msgstr "Show Week Numbers"
 
-#: ../gtk/gtkcalendar.c:556
+#: ../gtk/gtkcalendar.c:560
 msgid "If TRUE, week numbers are displayed"
 msgstr "If TRUE, week numbers are displayed"
 
-#: ../gtk/gtkcalendar.c:571
+#: ../gtk/gtkcalendar.c:575
 msgid "Details Width"
 msgstr "Details Width"
 
-#: ../gtk/gtkcalendar.c:572
+#: ../gtk/gtkcalendar.c:576
 msgid "Details width in characters"
 msgstr "Details width in characters"
 
-#: ../gtk/gtkcalendar.c:587
+#: ../gtk/gtkcalendar.c:591
 msgid "Details Height"
 msgstr "Details Height"
 
-#: ../gtk/gtkcalendar.c:588
+#: ../gtk/gtkcalendar.c:592
 msgid "Details height in rows"
 msgstr "Details height in rows"
 
-#: ../gtk/gtkcalendar.c:604
+#: ../gtk/gtkcalendar.c:608
 msgid "Show Details"
 msgstr "Show Details"
 
-#: ../gtk/gtkcalendar.c:605
+#: ../gtk/gtkcalendar.c:609
 msgid "If TRUE, details are shown"
 msgstr "If TRUE, details are shown"
 
-#: ../gtk/gtkcalendar.c:617
+#: ../gtk/gtkcalendar.c:621
 msgid "Inner border"
 msgstr "Inner border"
 
-#: ../gtk/gtkcalendar.c:618
+#: ../gtk/gtkcalendar.c:622
 msgid "Inner border space"
 msgstr "Inner border space"
 
-#: ../gtk/gtkcalendar.c:629
+#: ../gtk/gtkcalendar.c:633
 msgid "Vertical separation"
 msgstr "Vertical separation"
 
-#: ../gtk/gtkcalendar.c:630
+#: ../gtk/gtkcalendar.c:634
 msgid "Space between day headers and main area"
 msgstr "Space between day headers and main area"
 
-#: ../gtk/gtkcalendar.c:641
+#: ../gtk/gtkcalendar.c:645
 msgid "Horizontal separation"
 msgstr "Horizontal separation"
 
-#: ../gtk/gtkcalendar.c:642
+#: ../gtk/gtkcalendar.c:646
 msgid "Space between week headers and main area"
 msgstr "Space between week headers and main area"
 
@@ -1252,28 +1252,28 @@ msgstr "Edit Widget"
 msgid "The widget currently editing the edited cell"
 msgstr "The widget currently editing the edited cell"
 
-#: ../gtk/gtkcellareacontext.c:127
+#: ../gtk/gtkcellareacontext.c:119
 msgid "Area"
 msgstr "Area"
 
-#: ../gtk/gtkcellareacontext.c:128
+#: ../gtk/gtkcellareacontext.c:120
 msgid "The Cell Area this context was created for"
 msgstr "The Cell Area this context was created for"
 
-#: ../gtk/gtkcellareacontext.c:144 ../gtk/gtkcellareacontext.c:163
+#: ../gtk/gtkcellareacontext.c:136 ../gtk/gtkcellareacontext.c:155
 #: ../gtk/gtktreeviewcolumn.c:311
 msgid "Minimum Width"
 msgstr "Minimum Width"
 
-#: ../gtk/gtkcellareacontext.c:145 ../gtk/gtkcellareacontext.c:164
+#: ../gtk/gtkcellareacontext.c:137 ../gtk/gtkcellareacontext.c:156
 msgid "Minimum cached width"
 msgstr "Minimum cached width"
 
-#: ../gtk/gtkcellareacontext.c:182 ../gtk/gtkcellareacontext.c:201
+#: ../gtk/gtkcellareacontext.c:174 ../gtk/gtkcellareacontext.c:193
 msgid "Minimum Height"
 msgstr "Minimum Height"
 
-#: ../gtk/gtkcellareacontext.c:183 ../gtk/gtkcellareacontext.c:202
+#: ../gtk/gtkcellareacontext.c:175 ../gtk/gtkcellareacontext.c:194
 msgid "Minimum cached height"
 msgstr "Minimum cached height"
 
@@ -1457,7 +1457,7 @@ msgstr "Text Column"
 msgid "A column in the data source model to get the strings from"
 msgstr "A column in the data source model to get the strings from"
 
-#: ../gtk/gtkcellrenderercombo.c:171 ../gtk/gtkcombobox.c:858
+#: ../gtk/gtkcellrenderercombo.c:171 ../gtk/gtkcombobox.c:859
 msgid "Has Entry"
 msgstr "Has Entry"
 
@@ -1489,7 +1489,7 @@ msgstr "Pixbuf Expander Closed"
 msgid "Pixbuf for closed expander"
 msgstr "Pixbuf for closed expander"
 
-#: ../gtk/gtkcellrendererpixbuf.c:164 ../gtk/gtkimage.c:252
+#: ../gtk/gtkcellrendererpixbuf.c:164 ../gtk/gtkimage.c:254
 #: ../gtk/gtkstatusicon.c:251
 msgid "Stock ID"
 msgstr "Stock ID"
@@ -1523,7 +1523,7 @@ msgstr "Follow State"
 msgid "Whether the rendered pixbuf should be colorized according to the state"
 msgstr "Whether the rendered pixbuf should be colorized according to the state"
 
-#: ../gtk/gtkcellrendererpixbuf.c:234 ../gtk/gtkimage.c:327
+#: ../gtk/gtkcellrendererpixbuf.c:234 ../gtk/gtkimage.c:329
 #: ../gtk/gtkwindow.c:701
 msgid "Icon"
 msgstr "Icon"
@@ -1533,8 +1533,8 @@ msgid "Value of the progress bar"
 msgstr "Value of the progress bar"
 
 #: ../gtk/gtkcellrendererprogress.c:156 ../gtk/gtkcellrenderertext.c:254
-#: ../gtk/gtkentry.c:834 ../gtk/gtkentrybuffer.c:352
-#: ../gtk/gtkmessagedialog.c:227 ../gtk/gtkprogressbar.c:174
+#: ../gtk/gtkentrybuffer.c:352 ../gtk/gtkentry.c:837
+#: ../gtk/gtkmessagedialog.c:227 ../gtk/gtkprogressbar.c:176
 #: ../gtk/gtktextbuffer.c:221
 msgid "Text"
 msgstr "Text"
@@ -1575,21 +1575,21 @@ msgstr "Text y alignment"
 msgid "The vertical text alignment, from 0 (top) to 1 (bottom)."
 msgstr "The vertical text alignment, from 0 (top) to 1 (bottom)."
 
-#: ../gtk/gtkcellrendererprogress.c:226 ../gtk/gtkprogressbar.c:150
-#: ../gtk/gtkrange.c:425
+#: ../gtk/gtkcellrendererprogress.c:226 ../gtk/gtkprogressbar.c:152
+#: ../gtk/gtkrange.c:426
 msgid "Inverted"
 msgstr "Inverted"
 
-#: ../gtk/gtkcellrendererprogress.c:227 ../gtk/gtkprogressbar.c:151
+#: ../gtk/gtkcellrendererprogress.c:227 ../gtk/gtkprogressbar.c:153
 msgid "Invert the direction in which the progress bar grows"
 msgstr "Invert the direction in which the progress bar grows"
 
-#: ../gtk/gtkcellrendererspin.c:113 ../gtk/gtkrange.c:417
-#: ../gtk/gtkscalebutton.c:236 ../gtk/gtkspinbutton.c:321
+#: ../gtk/gtkcellrendererspin.c:113 ../gtk/gtkrange.c:418
+#: ../gtk/gtkscalebutton.c:237 ../gtk/gtkspinbutton.c:323
 msgid "Adjustment"
 msgstr "Adjustment"
 
-#: ../gtk/gtkcellrendererspin.c:114 ../gtk/gtkspinbutton.c:322
+#: ../gtk/gtkcellrendererspin.c:114 ../gtk/gtkspinbutton.c:324
 msgid "The adjustment that holds the value of the spin button"
 msgstr "The adjustment that holds the value of the spin button"
 
@@ -1597,22 +1597,22 @@ msgstr "The adjustment that holds the value of the spin button"
 msgid "Climb rate"
 msgstr "Climb rate"
 
-#: ../gtk/gtkcellrendererspin.c:130 ../gtk/gtkspinbutton.c:330
+#: ../gtk/gtkcellrendererspin.c:130 ../gtk/gtkspinbutton.c:332
 msgid "The acceleration rate when you hold down a button"
 msgstr "The acceleration rate when you hold down a button"
 
-#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:252
-#: ../gtk/gtkspinbutton.c:339
+#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:254
+#: ../gtk/gtkspinbutton.c:341
 msgid "Digits"
 msgstr "Digits"
 
-#: ../gtk/gtkcellrendererspin.c:144 ../gtk/gtkspinbutton.c:340
+#: ../gtk/gtkcellrendererspin.c:144 ../gtk/gtkspinbutton.c:342
 msgid "The number of decimal places to display"
 msgstr "The number of decimal places to display"
 
-#: ../gtk/gtkcellrendererspinner.c:119 ../gtk/gtkcheckmenuitem.c:122
-#: ../gtk/gtkmenu.c:587 ../gtk/gtkspinner.c:118 ../gtk/gtkswitch.c:801
-#: ../gtk/gtktoggleaction.c:133 ../gtk/gtktogglebutton.c:177
+#: ../gtk/gtkcellrendererspinner.c:119 ../gtk/gtkcheckmenuitem.c:123
+#: ../gtk/gtkmenu.c:588 ../gtk/gtkspinner.c:115 ../gtk/gtkswitch.c:783
+#: ../gtk/gtktoggleaction.c:133 ../gtk/gtktogglebutton.c:178
 #: ../gtk/gtktoggletoolbutton.c:127
 msgid "Active"
 msgstr "Active"
@@ -1641,7 +1641,7 @@ msgstr "Markup"
 msgid "Marked up text to render"
 msgstr "Marked up text to render"
 
-#: ../gtk/gtkcellrenderertext.c:270 ../gtk/gtklabel.c:749
+#: ../gtk/gtkcellrenderertext.c:270 ../gtk/gtklabel.c:751
 msgid "Attributes"
 msgstr "Attributes"
 
@@ -1711,13 +1711,13 @@ msgstr "Foreground color as RGBA"
 msgid "Foreground color as a GdkRGBA"
 msgstr "Foreground color as a GdkRGBA"
 
-#: ../gtk/gtkcellrenderertext.c:349 ../gtk/gtkentry.c:758
-#: ../gtk/gtktexttag.c:278 ../gtk/gtktextview.c:687
+#: ../gtk/gtkcellrenderertext.c:349 ../gtk/gtkentry.c:761
+#: ../gtk/gtktexttag.c:278 ../gtk/gtktextview.c:686
 msgid "Editable"
 msgstr "Editable"
 
 #: ../gtk/gtkcellrenderertext.c:350 ../gtk/gtktexttag.c:279
-#: ../gtk/gtktextview.c:688
+#: ../gtk/gtktextview.c:687
 msgid "Whether the text can be modified by the user"
 msgstr "Whether the text can be modified by the user"
 
@@ -1823,8 +1823,8 @@ msgstr ""
 "when rendering the text. If you don't understand this parameter, you "
 "probably don't need it"
 
-#: ../gtk/gtkcellrenderertext.c:499 ../gtk/gtklabel.c:874
-#: ../gtk/gtkprogressbar.c:214
+#: ../gtk/gtkcellrenderertext.c:499 ../gtk/gtklabel.c:876
+#: ../gtk/gtkprogressbar.c:216
 msgid "Ellipsize"
 msgstr "Ellipsize"
 
@@ -1837,15 +1837,15 @@ msgstr ""
 "have enough room to display the entire string"
 
 #: ../gtk/gtkcellrenderertext.c:519 ../gtk/gtkfilechooserbutton.c:454
-#: ../gtk/gtklabel.c:895
+#: ../gtk/gtklabel.c:897
 msgid "Width In Characters"
 msgstr "Width In Characters"
 
-#: ../gtk/gtkcellrenderertext.c:520 ../gtk/gtklabel.c:896
+#: ../gtk/gtkcellrenderertext.c:520 ../gtk/gtklabel.c:898
 msgid "The desired width of the label, in characters"
 msgstr "The desired width of the label, in characters"
 
-#: ../gtk/gtkcellrenderertext.c:544 ../gtk/gtklabel.c:956
+#: ../gtk/gtkcellrenderertext.c:544 ../gtk/gtklabel.c:958
 msgid "Maximum Width In Characters"
 msgstr "Maximum Width In Characters"
 
@@ -1865,7 +1865,7 @@ msgstr ""
 "How to break the string into multiple lines, if the cell renderer does not "
 "have enough room to display the entire string"
 
-#: ../gtk/gtkcellrenderertext.c:583 ../gtk/gtkcombobox.c:680
+#: ../gtk/gtkcellrenderertext.c:583 ../gtk/gtkcombobox.c:681
 msgid "Wrap width"
 msgstr "Wrap width"
 
@@ -2048,7 +2048,7 @@ msgid "Indicator size"
 msgstr "Indicator size"
 
 #: ../gtk/gtkcellrenderertoggle.c:173 ../gtk/gtkcheckbutton.c:93
-#: ../gtk/gtkcheckmenuitem.c:146
+#: ../gtk/gtkcheckmenuitem.c:147
 msgid "Size of check or radio indicator"
 msgstr "Size of check or radio indicator"
 
@@ -2064,14 +2064,14 @@ msgstr "CellView model"
 msgid "The model for cell view"
 msgstr "The model for cell view"
 
-#: ../gtk/gtkcellview.c:246 ../gtk/gtkcombobox.c:944
-#: ../gtk/gtkentrycompletion.c:448 ../gtk/gtkiconview.c:769
+#: ../gtk/gtkcellview.c:246 ../gtk/gtkcombobox.c:945
+#: ../gtk/gtkentrycompletion.c:448 ../gtk/gtkiconview.c:768
 #: ../gtk/gtktreemenu.c:329 ../gtk/gtktreeviewcolumn.c:427
 msgid "Cell Area"
 msgstr "Cell Area"
 
-#: ../gtk/gtkcellview.c:247 ../gtk/gtkcombobox.c:945
-#: ../gtk/gtkentrycompletion.c:449 ../gtk/gtkiconview.c:770
+#: ../gtk/gtkcellview.c:247 ../gtk/gtkcombobox.c:946
+#: ../gtk/gtkentrycompletion.c:449 ../gtk/gtkiconview.c:769
 #: ../gtk/gtktreemenu.c:330 ../gtk/gtktreeviewcolumn.c:428
 msgid "The GtkCellArea used to layout cells"
 msgstr "The GtkCellArea used to layout cells"
@@ -2100,11 +2100,11 @@ msgstr "Fit Model"
 msgid "Whether to request enough space for every row in the model"
 msgstr "Whether to request enough space for every row in the model"
 
-#: ../gtk/gtkcheckbutton.c:92 ../gtk/gtkcheckmenuitem.c:145
+#: ../gtk/gtkcheckbutton.c:92 ../gtk/gtkcheckmenuitem.c:146
 msgid "Indicator Size"
 msgstr "Indicator Size"
 
-#: ../gtk/gtkcheckbutton.c:100 ../gtk/gtkexpander.c:363
+#: ../gtk/gtkcheckbutton.c:100 ../gtk/gtkexpander.c:364
 msgid "Indicator Spacing"
 msgstr "Indicator Spacing"
 
@@ -2112,23 +2112,23 @@ msgstr "Indicator Spacing"
 msgid "Spacing around check or radio indicator"
 msgstr "Spacing around check or radio indicator"
 
-#: ../gtk/gtkcheckmenuitem.c:123
+#: ../gtk/gtkcheckmenuitem.c:124
 msgid "Whether the menu item is checked"
 msgstr "Whether the menu item is checked"
 
-#: ../gtk/gtkcheckmenuitem.c:130 ../gtk/gtktogglebutton.c:185
+#: ../gtk/gtkcheckmenuitem.c:131 ../gtk/gtktogglebutton.c:186
 msgid "Inconsistent"
 msgstr "Inconsistent"
 
-#: ../gtk/gtkcheckmenuitem.c:131
+#: ../gtk/gtkcheckmenuitem.c:132
 msgid "Whether to display an \"inconsistent\" state"
 msgstr "Whether to display an \"inconsistent\" state"
 
-#: ../gtk/gtkcheckmenuitem.c:138
+#: ../gtk/gtkcheckmenuitem.c:139
 msgid "Draw as radio menu item"
 msgstr "Draw as radio menu item"
 
-#: ../gtk/gtkcheckmenuitem.c:139
+#: ../gtk/gtkcheckmenuitem.c:140
 msgid "Whether the menu item looks like a radio menu item"
 msgstr "Whether the menu item looks like a radio menu item"
 
@@ -2150,7 +2150,7 @@ msgstr "Title"
 msgid "The title of the color selection dialog"
 msgstr "The title of the color selection dialog"
 
-#: ../gtk/gtkcolorbutton.c:200 ../gtk/gtkcolorsel.c:337
+#: ../gtk/gtkcolorbutton.c:200 ../gtk/gtkcolorsel.c:336
 msgid "Current Color"
 msgstr "Current Color"
 
@@ -2158,7 +2158,7 @@ msgstr "Current Color"
 msgid "The selected color"
 msgstr "The selected color"
 
-#: ../gtk/gtkcolorbutton.c:215 ../gtk/gtkcolorsel.c:344
+#: ../gtk/gtkcolorbutton.c:215 ../gtk/gtkcolorsel.c:343
 msgid "Current Alpha"
 msgstr "Current Alpha"
 
@@ -2174,35 +2174,35 @@ msgstr "Current RGBA Color"
 msgid "The selected RGBA color"
 msgstr "The selected RGBA color"
 
-#: ../gtk/gtkcolorsel.c:323
+#: ../gtk/gtkcolorsel.c:322
 msgid "Has Opacity Control"
 msgstr "Has Opacity Control"
 
-#: ../gtk/gtkcolorsel.c:324
+#: ../gtk/gtkcolorsel.c:323
 msgid "Whether the color selector should allow setting opacity"
 msgstr "Whether the color selector should allow setting opacity"
 
-#: ../gtk/gtkcolorsel.c:330
+#: ../gtk/gtkcolorsel.c:329
 msgid "Has palette"
 msgstr "Has palette"
 
-#: ../gtk/gtkcolorsel.c:331
+#: ../gtk/gtkcolorsel.c:330
 msgid "Whether a palette should be used"
 msgstr "Whether a palette should be used"
 
-#: ../gtk/gtkcolorsel.c:338
+#: ../gtk/gtkcolorsel.c:337
 msgid "The current color"
 msgstr "The current color"
 
-#: ../gtk/gtkcolorsel.c:345
+#: ../gtk/gtkcolorsel.c:344
 msgid "The current opacity value (0 fully transparent, 65535 fully opaque)"
 msgstr "The current opacity value (0 fully transparent, 65535 fully opaque)"
 
-#: ../gtk/gtkcolorsel.c:359
+#: ../gtk/gtkcolorsel.c:358
 msgid "Current RGBA"
 msgstr "Current RGBA"
 
-#: ../gtk/gtkcolorsel.c:360
+#: ../gtk/gtkcolorsel.c:359
 msgid "The current RGBA color"
 msgstr "The current RGBA color"
 
@@ -2238,67 +2238,67 @@ msgstr "Help Button"
 msgid "The help button of the dialog."
 msgstr "The help button of the dialog."
 
-#: ../gtk/gtkcombobox.c:663
+#: ../gtk/gtkcombobox.c:664
 msgid "ComboBox model"
 msgstr "ComboBox model"
 
-#: ../gtk/gtkcombobox.c:664
+#: ../gtk/gtkcombobox.c:665
 msgid "The model for the combo box"
 msgstr "The model for the combo box"
 
-#: ../gtk/gtkcombobox.c:681
+#: ../gtk/gtkcombobox.c:682
 msgid "Wrap width for laying out the items in a grid"
 msgstr "Wrap width for laying out the items in a grid"
 
-#: ../gtk/gtkcombobox.c:703 ../gtk/gtktreemenu.c:383
+#: ../gtk/gtkcombobox.c:704 ../gtk/gtktreemenu.c:383
 msgid "Row span column"
 msgstr "Row span column"
 
-#: ../gtk/gtkcombobox.c:704 ../gtk/gtktreemenu.c:384
+#: ../gtk/gtkcombobox.c:705 ../gtk/gtktreemenu.c:384
 msgid "TreeModel column containing the row span values"
 msgstr "TreeModel column containing the row span values"
 
-#: ../gtk/gtkcombobox.c:725 ../gtk/gtktreemenu.c:404
+#: ../gtk/gtkcombobox.c:726 ../gtk/gtktreemenu.c:404
 msgid "Column span column"
 msgstr "Column span column"
 
-#: ../gtk/gtkcombobox.c:726 ../gtk/gtktreemenu.c:405
+#: ../gtk/gtkcombobox.c:727 ../gtk/gtktreemenu.c:405
 msgid "TreeModel column containing the column span values"
 msgstr "TreeModel column containing the column span values"
 
-#: ../gtk/gtkcombobox.c:747
+#: ../gtk/gtkcombobox.c:748
 msgid "Active item"
 msgstr "Active item"
 
-#: ../gtk/gtkcombobox.c:748
+#: ../gtk/gtkcombobox.c:749
 msgid "The item which is currently active"
 msgstr "The item which is currently active"
 
-#: ../gtk/gtkcombobox.c:767 ../gtk/gtkuimanager.c:479
+#: ../gtk/gtkcombobox.c:768 ../gtk/gtkuimanager.c:479
 msgid "Add tearoffs to menus"
 msgstr "Add tearoffs to menus"
 
-#: ../gtk/gtkcombobox.c:768
+#: ../gtk/gtkcombobox.c:769
 msgid "Whether dropdowns should have a tearoff menu item"
 msgstr "Whether dropdowns should have a tearoff menu item"
 
-#: ../gtk/gtkcombobox.c:783 ../gtk/gtkentry.c:783
+#: ../gtk/gtkcombobox.c:784 ../gtk/gtkentry.c:786
 msgid "Has Frame"
 msgstr "Has Frame"
 
-#: ../gtk/gtkcombobox.c:784
+#: ../gtk/gtkcombobox.c:785
 msgid "Whether the combo box draws a frame around the child"
 msgstr "Whether the combo box draws a frame around the child"
 
-#: ../gtk/gtkcombobox.c:792
+#: ../gtk/gtkcombobox.c:793
 msgid "Whether the combo box grabs focus when it is clicked with the mouse"
 msgstr "Whether the combo box grabs focus when it is clicked with the mouse"
 
-#: ../gtk/gtkcombobox.c:807 ../gtk/gtkmenu.c:642
+#: ../gtk/gtkcombobox.c:808 ../gtk/gtkmenu.c:643
 msgid "Tearoff Title"
 msgstr "Tearoff Title"
 
-#: ../gtk/gtkcombobox.c:808
+#: ../gtk/gtkcombobox.c:809
 msgid ""
 "A title that may be displayed by the window manager when the popup is torn-"
 "off"
@@ -2306,31 +2306,31 @@ msgstr ""
 "A title that may be displayed by the window manager when the popup is torn-"
 "off"
 
-#: ../gtk/gtkcombobox.c:825
+#: ../gtk/gtkcombobox.c:826
 msgid "Popup shown"
 msgstr "Popup shown"
 
-#: ../gtk/gtkcombobox.c:826
+#: ../gtk/gtkcombobox.c:827
 msgid "Whether the combo's dropdown is shown"
 msgstr "Whether the combo's dropdown is shown"
 
-#: ../gtk/gtkcombobox.c:842
+#: ../gtk/gtkcombobox.c:843
 msgid "Button Sensitivity"
 msgstr "Button Sensitivity"
 
-#: ../gtk/gtkcombobox.c:843
+#: ../gtk/gtkcombobox.c:844
 msgid "Whether the dropdown button is sensitive when the model is empty"
 msgstr "Whether the dropdown button is sensitive when the model is empty"
 
-#: ../gtk/gtkcombobox.c:859
+#: ../gtk/gtkcombobox.c:860
 msgid "Whether combo box has an entry"
 msgstr "Whether combo box has an entry"
 
-#: ../gtk/gtkcombobox.c:874
+#: ../gtk/gtkcombobox.c:875
 msgid "Entry Text Column"
 msgstr "Entry Text Column"
 
-#: ../gtk/gtkcombobox.c:875
+#: ../gtk/gtkcombobox.c:876
 msgid ""
 "The column in the combo box's model to associate with strings from the entry "
 "if the combo was created with #GtkComboBox:has-entry = %TRUE"
@@ -2338,11 +2338,11 @@ msgstr ""
 "The column in the combo box's model to associate with strings from the entry "
 "if the combo was created with #GtkComboBox:has-entry = %TRUE"
 
-#: ../gtk/gtkcombobox.c:892
+#: ../gtk/gtkcombobox.c:893
 msgid "ID Column"
 msgstr "ID Column"
 
-#: ../gtk/gtkcombobox.c:893
+#: ../gtk/gtkcombobox.c:894
 msgid ""
 "The column in the combo box's model that provides string IDs for the values "
 "in the model"
@@ -2350,19 +2350,19 @@ msgstr ""
 "The column in the combo box's model that provides string IDs for the values "
 "in the model"
 
-#: ../gtk/gtkcombobox.c:908
+#: ../gtk/gtkcombobox.c:909
 msgid "Active id"
 msgstr "Active id"
 
-#: ../gtk/gtkcombobox.c:909
+#: ../gtk/gtkcombobox.c:910
 msgid "The value of the id column for the active row"
 msgstr "The value of the id column for the active row"
 
-#: ../gtk/gtkcombobox.c:924
+#: ../gtk/gtkcombobox.c:925
 msgid "Popup Fixed Width"
 msgstr "Popup Fixed Width"
 
-#: ../gtk/gtkcombobox.c:925
+#: ../gtk/gtkcombobox.c:926
 msgid ""
 "Whether the popup's width should be a fixed width matching the allocated "
 "width of the combo box"
@@ -2370,33 +2370,33 @@ msgstr ""
 "Whether the popup's width should be a fixed width matching the allocated "
 "width of the combo box"
 
-#: ../gtk/gtkcombobox.c:951
+#: ../gtk/gtkcombobox.c:952
 msgid "Appears as list"
 msgstr "Appears as list"
 
-#: ../gtk/gtkcombobox.c:952
+#: ../gtk/gtkcombobox.c:953
 msgid "Whether dropdowns should look like lists rather than menus"
 msgstr "Whether dropdowns should look like lists rather than menus"
 
-#: ../gtk/gtkcombobox.c:968
+#: ../gtk/gtkcombobox.c:969
 msgid "Arrow Size"
 msgstr "Arrow Size"
 
-#: ../gtk/gtkcombobox.c:969
+#: ../gtk/gtkcombobox.c:970
 msgid "The minimum size of the arrow in the combo box"
 msgstr "The minimum size of the arrow in the combo box"
 
-#: ../gtk/gtkcombobox.c:986
+#: ../gtk/gtkcombobox.c:987
 msgid "The amount of space used by the arrow"
 msgstr "The amount of space used by the arrow"
 
-#: ../gtk/gtkcombobox.c:1001 ../gtk/gtkentry.c:883 ../gtk/gtkhandlebox.c:218
-#: ../gtk/gtkmenubar.c:216 ../gtk/gtkstatusbar.c:181 ../gtk/gtktoolbar.c:604
+#: ../gtk/gtkcombobox.c:1002 ../gtk/gtkentry.c:886 ../gtk/gtkhandlebox.c:218
+#: ../gtk/gtkmenubar.c:217 ../gtk/gtkstatusbar.c:182 ../gtk/gtktoolbar.c:611
 #: ../gtk/gtkviewport.c:153
 msgid "Shadow type"
 msgstr "Shadow type"
 
-#: ../gtk/gtkcombobox.c:1002
+#: ../gtk/gtkcombobox.c:1003
 msgid "Which kind of shadow to draw around the combo box"
 msgstr "Which kind of shadow to draw around the combo box"
 
@@ -2456,49 +2456,61 @@ msgstr "Action area border"
 msgid "Width of border around the button area at the bottom of the dialog"
 msgstr "Width of border around the button area at the bottom of the dialog"
 
-#: ../gtk/gtkentry.c:730
+#: ../gtk/gtkentrybuffer.c:353
+msgid "The contents of the buffer"
+msgstr "The contents of the buffer"
+
+#: ../gtk/gtkentrybuffer.c:367 ../gtk/gtkentry.c:917
+msgid "Text length"
+msgstr "Text length"
+
+#: ../gtk/gtkentrybuffer.c:368
+msgid "Length of the text currently in the buffer"
+msgstr "Length of the text currently in the buffer"
+
+#: ../gtk/gtkentrybuffer.c:382 ../gtk/gtkentry.c:769
+msgid "Maximum length"
+msgstr "Maximum length"
+
+#: ../gtk/gtkentrybuffer.c:383 ../gtk/gtkentry.c:770
+msgid "Maximum number of characters for this entry. Zero if no maximum"
+msgstr "Maximum number of characters for this entry. Zero if no maximum"
+
+#: ../gtk/gtkentry.c:733
 msgid "Text Buffer"
 msgstr "Text Buffer"
 
-#: ../gtk/gtkentry.c:731
+#: ../gtk/gtkentry.c:734
 msgid "Text buffer object which actually stores entry text"
 msgstr "Text buffer object which actually stores entry text"
 
-#: ../gtk/gtkentry.c:738 ../gtk/gtklabel.c:837
+#: ../gtk/gtkentry.c:741 ../gtk/gtklabel.c:839
 msgid "Cursor Position"
 msgstr "Cursor Position"
 
-#: ../gtk/gtkentry.c:739 ../gtk/gtklabel.c:838
+#: ../gtk/gtkentry.c:742 ../gtk/gtklabel.c:840
 msgid "The current position of the insertion cursor in chars"
 msgstr "The current position of the insertion cursor in chars"
 
-#: ../gtk/gtkentry.c:748 ../gtk/gtklabel.c:847
+#: ../gtk/gtkentry.c:751 ../gtk/gtklabel.c:849
 msgid "Selection Bound"
 msgstr "Selection Bound"
 
-#: ../gtk/gtkentry.c:749 ../gtk/gtklabel.c:848
+#: ../gtk/gtkentry.c:752 ../gtk/gtklabel.c:850
 msgid ""
 "The position of the opposite end of the selection from the cursor in chars"
 msgstr ""
 "The position of the opposite end of the selection from the cursor in chars"
 
-#: ../gtk/gtkentry.c:759
+#: ../gtk/gtkentry.c:762
 msgid "Whether the entry contents can be edited"
 msgstr "Whether the entry contents can be edited"
 
-#: ../gtk/gtkentry.c:766 ../gtk/gtkentrybuffer.c:382
-msgid "Maximum length"
-msgstr "Maximum length"
-
-#: ../gtk/gtkentry.c:767 ../gtk/gtkentrybuffer.c:383
-msgid "Maximum number of characters for this entry. Zero if no maximum"
-msgstr "Maximum number of characters for this entry. Zero if no maximum"
-
-#: ../gtk/gtkentry.c:775
+#: ../gtk/gtkentry.c:778
 msgid "Visibility"
 msgstr "Visibility"
 
-#: ../gtk/gtkentry.c:776
+#: ../gtk/gtkentry.c:779
 msgid ""
 "FALSE displays the \"invisible char\" instead of the actual text (password "
 "mode)"
@@ -2506,30 +2518,30 @@ msgstr ""
 "FALSE displays the \"invisible char\" instead of the actual text (password "
 "mode)"
 
-#: ../gtk/gtkentry.c:784
+#: ../gtk/gtkentry.c:787
 msgid "FALSE removes outside bevel from entry"
 msgstr "FALSE removes outside bevel from entry"
 
-#: ../gtk/gtkentry.c:792
+#: ../gtk/gtkentry.c:795
 msgid ""
 "Border between text and frame. Overrides the inner-border style property"
 msgstr ""
 "Border between text and frame. Overrides the inner-border style property"
 
-#: ../gtk/gtkentry.c:799 ../gtk/gtkentry.c:1395
+#: ../gtk/gtkentry.c:802 ../gtk/gtkentry.c:1398
 msgid "Invisible character"
 msgstr "Invisible character"
 
-#: ../gtk/gtkentry.c:800 ../gtk/gtkentry.c:1396
+#: ../gtk/gtkentry.c:803 ../gtk/gtkentry.c:1399
 msgid "The character to use when masking entry contents (in \"password mode\")"
 msgstr ""
 "The character to use when masking entry contents (in \"password mode\")"
 
-#: ../gtk/gtkentry.c:807
+#: ../gtk/gtkentry.c:810
 msgid "Activates default"
 msgstr "Activates default"
 
-#: ../gtk/gtkentry.c:808
+#: ../gtk/gtkentry.c:811
 msgid ""
 "Whether to activate the default widget (such as the default button in a "
 "dialog) when Enter is pressed"
@@ -2537,31 +2549,31 @@ msgstr ""
 "Whether to activate the default widget (such as the default button in a "
 "dialog) when Enter is pressed"
 
-#: ../gtk/gtkentry.c:814
+#: ../gtk/gtkentry.c:817
 msgid "Width in chars"
 msgstr "Width in chars"
 
-#: ../gtk/gtkentry.c:815
+#: ../gtk/gtkentry.c:818
 msgid "Number of characters to leave space for in the entry"
 msgstr "Number of characters to leave space for in the entry"
 
-#: ../gtk/gtkentry.c:824
+#: ../gtk/gtkentry.c:827
 msgid "Scroll offset"
 msgstr "Scroll offset"
 
-#: ../gtk/gtkentry.c:825
+#: ../gtk/gtkentry.c:828
 msgid "Number of pixels of the entry scrolled off the screen to the left"
 msgstr "Number of pixels of the entry scrolled off the screen to the left"
 
-#: ../gtk/gtkentry.c:835
+#: ../gtk/gtkentry.c:838
 msgid "The contents of the entry"
 msgstr "The contents of the entry"
 
-#: ../gtk/gtkentry.c:850 ../gtk/gtkmisc.c:105
+#: ../gtk/gtkentry.c:853 ../gtk/gtkmisc.c:105
 msgid "X align"
 msgstr "X align"
 
-#: ../gtk/gtkentry.c:851 ../gtk/gtkmisc.c:106
+#: ../gtk/gtkentry.c:854 ../gtk/gtkmisc.c:106
 msgid ""
 "The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL "
 "layouts."
@@ -2569,63 +2581,59 @@ msgstr ""
 "The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL "
 "layouts."
 
-#: ../gtk/gtkentry.c:867
+#: ../gtk/gtkentry.c:870
 msgid "Truncate multiline"
 msgstr "Truncate multiline"
 
-#: ../gtk/gtkentry.c:868
+#: ../gtk/gtkentry.c:871
 msgid "Whether to truncate multiline pastes to one line."
 msgstr "Whether to truncate multiline pastes to one line."
 
-#: ../gtk/gtkentry.c:884
+#: ../gtk/gtkentry.c:887
 msgid "Which kind of shadow to draw around the entry when has-frame is set"
 msgstr "Which kind of shadow to draw around the entry when has-frame is set"
 
-#: ../gtk/gtkentry.c:899 ../gtk/gtktextview.c:767
+#: ../gtk/gtkentry.c:902 ../gtk/gtktextview.c:766
 msgid "Overwrite mode"
 msgstr "Overwrite mode"
 
-#: ../gtk/gtkentry.c:900
+#: ../gtk/gtkentry.c:903
 msgid "Whether new text overwrites existing text"
 msgstr "Whether new text overwrites existing text"
 
-#: ../gtk/gtkentry.c:914 ../gtk/gtkentrybuffer.c:367
-msgid "Text length"
-msgstr "Text length"
-
-#: ../gtk/gtkentry.c:915
+#: ../gtk/gtkentry.c:918
 msgid "Length of the text currently in the entry"
 msgstr "Length of the text currently in the entry"
 
-#: ../gtk/gtkentry.c:930
+#: ../gtk/gtkentry.c:933
 msgid "Invisible character set"
 msgstr "Invisible character set"
 
-#: ../gtk/gtkentry.c:931
+#: ../gtk/gtkentry.c:934
 msgid "Whether the invisible character has been set"
 msgstr "Whether the invisible character has been set"
 
-#: ../gtk/gtkentry.c:949
+#: ../gtk/gtkentry.c:952
 msgid "Caps Lock warning"
 msgstr "Caps Lock warning"
 
-#: ../gtk/gtkentry.c:950
+#: ../gtk/gtkentry.c:953
 msgid "Whether password entries will show a warning when Caps Lock is on"
 msgstr "Whether password entries will show a warning when Caps Lock is on"
 
-#: ../gtk/gtkentry.c:964
+#: ../gtk/gtkentry.c:967
 msgid "Progress Fraction"
 msgstr "Progress Fraction"
 
-#: ../gtk/gtkentry.c:965
+#: ../gtk/gtkentry.c:968
 msgid "The current fraction of the task that's been completed"
 msgstr "The current fraction of the task that's been completed"
 
-#: ../gtk/gtkentry.c:982
+#: ../gtk/gtkentry.c:985
 msgid "Progress Pulse Step"
 msgstr "Progress Pulse Step"
 
-#: ../gtk/gtkentry.c:983
+#: ../gtk/gtkentry.c:986
 msgid ""
 "The fraction of total entry width to move the progress bouncing block for "
 "each call to gtk_entry_progress_pulse()"
@@ -2633,194 +2641,186 @@ msgstr ""
 "The fraction of total entry width to move the progress bouncing block for "
 "each call to gtk_entry_progress_pulse()"
 
-#: ../gtk/gtkentry.c:999
+#: ../gtk/gtkentry.c:1002
 msgid "Placeholder text"
 msgstr "Placeholder text"
 
-#: ../gtk/gtkentry.c:1000
+#: ../gtk/gtkentry.c:1003
 msgid "Show text in the entry when it's empty and unfocused"
 msgstr "Show text in the entry when it's empty and unfocused"
 
-#: ../gtk/gtkentry.c:1014
+#: ../gtk/gtkentry.c:1017
 msgid "Primary pixbuf"
 msgstr "Primary pixbuf"
 
-#: ../gtk/gtkentry.c:1015
+#: ../gtk/gtkentry.c:1018
 msgid "Primary pixbuf for the entry"
 msgstr "Primary pixbuf for the entry"
 
-#: ../gtk/gtkentry.c:1029
+#: ../gtk/gtkentry.c:1032
 msgid "Secondary pixbuf"
 msgstr "Secondary pixbuf"
 
-#: ../gtk/gtkentry.c:1030
+#: ../gtk/gtkentry.c:1033
 msgid "Secondary pixbuf for the entry"
 msgstr "Secondary pixbuf for the entry"
 
-#: ../gtk/gtkentry.c:1044
+#: ../gtk/gtkentry.c:1047
 msgid "Primary stock ID"
 msgstr "Primary stock ID"
 
-#: ../gtk/gtkentry.c:1045
+#: ../gtk/gtkentry.c:1048
 msgid "Stock ID for primary icon"
 msgstr "Stock ID for primary icon"
 
-#: ../gtk/gtkentry.c:1059
+#: ../gtk/gtkentry.c:1062
 msgid "Secondary stock ID"
 msgstr "Secondary stock ID"
 
-#: ../gtk/gtkentry.c:1060
+#: ../gtk/gtkentry.c:1063
 msgid "Stock ID for secondary icon"
 msgstr "Stock ID for secondary icon"
 
-#: ../gtk/gtkentry.c:1074
+#: ../gtk/gtkentry.c:1077
 msgid "Primary icon name"
 msgstr "Primary icon name"
 
-#: ../gtk/gtkentry.c:1075
+#: ../gtk/gtkentry.c:1078
 msgid "Icon name for primary icon"
 msgstr "Icon name for primary icon"
 
-#: ../gtk/gtkentry.c:1089
+#: ../gtk/gtkentry.c:1092
 msgid "Secondary icon name"
 msgstr "Secondary icon name"
 
-#: ../gtk/gtkentry.c:1090
+#: ../gtk/gtkentry.c:1093
 msgid "Icon name for secondary icon"
 msgstr "Icon name for secondary icon"
 
-#: ../gtk/gtkentry.c:1104
+#: ../gtk/gtkentry.c:1107
 msgid "Primary GIcon"
 msgstr "Primary GIcon"
 
-#: ../gtk/gtkentry.c:1105
+#: ../gtk/gtkentry.c:1108
 msgid "GIcon for primary icon"
 msgstr "GIcon for primary icon"
 
-#: ../gtk/gtkentry.c:1119
+#: ../gtk/gtkentry.c:1122
 msgid "Secondary GIcon"
 msgstr "Secondary GIcon"
 
-#: ../gtk/gtkentry.c:1120
+#: ../gtk/gtkentry.c:1123
 msgid "GIcon for secondary icon"
 msgstr "GIcon for secondary icon"
 
-#: ../gtk/gtkentry.c:1134
+#: ../gtk/gtkentry.c:1137
 msgid "Primary storage type"
 msgstr "Primary storage type"
 
-#: ../gtk/gtkentry.c:1135
+#: ../gtk/gtkentry.c:1138
 msgid "The representation being used for primary icon"
 msgstr "The representation being used for primary icon"
 
-#: ../gtk/gtkentry.c:1150
+#: ../gtk/gtkentry.c:1153
 msgid "Secondary storage type"
 msgstr "Secondary storage type"
 
-#: ../gtk/gtkentry.c:1151
+#: ../gtk/gtkentry.c:1154
 msgid "The representation being used for secondary icon"
 msgstr "The representation being used for secondary icon"
 
-#: ../gtk/gtkentry.c:1172
+#: ../gtk/gtkentry.c:1175
 msgid "Primary icon activatable"
 msgstr "Primary icon activatable"
 
-#: ../gtk/gtkentry.c:1173
+#: ../gtk/gtkentry.c:1176
 msgid "Whether the primary icon is activatable"
 msgstr "Whether the primary icon is activatable"
 
-#: ../gtk/gtkentry.c:1193
+#: ../gtk/gtkentry.c:1196
 msgid "Secondary icon activatable"
 msgstr "Secondary icon activatable"
 
-#: ../gtk/gtkentry.c:1194
+#: ../gtk/gtkentry.c:1197
 msgid "Whether the secondary icon is activatable"
 msgstr "Whether the secondary icon is activatable"
 
-#: ../gtk/gtkentry.c:1216
+#: ../gtk/gtkentry.c:1219
 msgid "Primary icon sensitive"
 msgstr "Primary icon sensitive"
 
-#: ../gtk/gtkentry.c:1217
+#: ../gtk/gtkentry.c:1220
 msgid "Whether the primary icon is sensitive"
 msgstr "Whether the primary icon is sensitive"
 
-#: ../gtk/gtkentry.c:1238
+#: ../gtk/gtkentry.c:1241
 msgid "Secondary icon sensitive"
 msgstr "Secondary icon sensitive"
 
-#: ../gtk/gtkentry.c:1239
+#: ../gtk/gtkentry.c:1242
 msgid "Whether the secondary icon is sensitive"
 msgstr "Whether the secondary icon is sensitive"
 
-#: ../gtk/gtkentry.c:1255
+#: ../gtk/gtkentry.c:1258
 msgid "Primary icon tooltip text"
 msgstr "Primary icon tooltip text"
 
-#: ../gtk/gtkentry.c:1256 ../gtk/gtkentry.c:1292
+#: ../gtk/gtkentry.c:1259 ../gtk/gtkentry.c:1295
 msgid "The contents of the tooltip on the primary icon"
 msgstr "The contents of the tooltip on the primary icon"
 
-#: ../gtk/gtkentry.c:1272
+#: ../gtk/gtkentry.c:1275
 msgid "Secondary icon tooltip text"
 msgstr "Secondary icon tooltip text"
 
-#: ../gtk/gtkentry.c:1273 ../gtk/gtkentry.c:1311
+#: ../gtk/gtkentry.c:1276 ../gtk/gtkentry.c:1314
 msgid "The contents of the tooltip on the secondary icon"
 msgstr "The contents of the tooltip on the secondary icon"
 
-#: ../gtk/gtkentry.c:1291
+#: ../gtk/gtkentry.c:1294
 msgid "Primary icon tooltip markup"
 msgstr "Primary icon tooltip markup"
 
-#: ../gtk/gtkentry.c:1310
+#: ../gtk/gtkentry.c:1313
 msgid "Secondary icon tooltip markup"
 msgstr "Secondary icon tooltip markup"
 
-#: ../gtk/gtkentry.c:1330 ../gtk/gtktextview.c:795
+#: ../gtk/gtkentry.c:1333 ../gtk/gtktextview.c:794
 msgid "IM module"
 msgstr "IM module"
 
-#: ../gtk/gtkentry.c:1331 ../gtk/gtktextview.c:796
+#: ../gtk/gtkentry.c:1334 ../gtk/gtktextview.c:795
 msgid "Which IM module should be used"
 msgstr "Which IM module should be used"
 
-#: ../gtk/gtkentry.c:1345
+#: ../gtk/gtkentry.c:1348
 msgid "Completion"
 msgstr "Completion"
 
-#: ../gtk/gtkentry.c:1346
+#: ../gtk/gtkentry.c:1349
 msgid "The auxiliary completion object"
 msgstr "The auxiliary completion object"
 
-#: ../gtk/gtkentry.c:1360
+#: ../gtk/gtkentry.c:1363
 msgid "Icon Prelight"
 msgstr "Icon Prelight"
 
-#: ../gtk/gtkentry.c:1361
+#: ../gtk/gtkentry.c:1364
 msgid "Whether activatable icons should prelight when hovered"
 msgstr "Whether activatable icons should prelight when hovered"
 
-#: ../gtk/gtkentry.c:1374
+#: ../gtk/gtkentry.c:1377
 msgid "Progress Border"
 msgstr "Progress Border"
 
-#: ../gtk/gtkentry.c:1375
+#: ../gtk/gtkentry.c:1378
 msgid "Border around the progress bar"
 msgstr "Border around the progress bar"
 
-#: ../gtk/gtkentry.c:1867
+#: ../gtk/gtkentry.c:1870
 msgid "Border between text and frame."
 msgstr "Border between text and frame."
 
-#: ../gtk/gtkentrybuffer.c:353
-msgid "The contents of the buffer"
-msgstr "The contents of the buffer"
-
-#: ../gtk/gtkentrybuffer.c:368
-msgid "Length of the text currently in the buffer"
-msgstr "Length of the text currently in the buffer"
-
 #: ../gtk/gtkentrycompletion.c:320
 msgid "Completion Model"
 msgstr "Completion Model"
@@ -2837,7 +2837,7 @@ msgstr "Minimum Key Length"
 msgid "Minimum length of the search key in order to look up matches"
 msgstr "Minimum length of the search key in order to look up matches"
 
-#: ../gtk/gtkentrycompletion.c:344 ../gtk/gtkiconview.c:565
+#: ../gtk/gtkentrycompletion.c:344 ../gtk/gtkiconview.c:564
 msgid "Text column"
 msgstr "Text column"
 
@@ -2909,52 +2909,52 @@ msgstr ""
 "Whether the event-trapping window of the eventbox is above the window of the "
 "child widget as opposed to below it."
 
-#: ../gtk/gtkexpander.c:281
+#: ../gtk/gtkexpander.c:282
 msgid "Expanded"
 msgstr "Expanded"
 
-#: ../gtk/gtkexpander.c:282
+#: ../gtk/gtkexpander.c:283
 msgid "Whether the expander has been opened to reveal the child widget"
 msgstr "Whether the expander has been opened to reveal the child widget"
 
-#: ../gtk/gtkexpander.c:290
+#: ../gtk/gtkexpander.c:291
 msgid "Text of the expander's label"
 msgstr "Text of the expander's label"
 
-#: ../gtk/gtkexpander.c:305 ../gtk/gtklabel.c:756
+#: ../gtk/gtkexpander.c:306 ../gtk/gtklabel.c:758
 msgid "Use markup"
 msgstr "Use markup"
 
-#: ../gtk/gtkexpander.c:306 ../gtk/gtklabel.c:757
+#: ../gtk/gtkexpander.c:307 ../gtk/gtklabel.c:759
 msgid "The text of the label includes XML markup. See pango_parse_markup()"
 msgstr "The text of the label includes XML markup. See pango_parse_markup()"
 
-#: ../gtk/gtkexpander.c:314
+#: ../gtk/gtkexpander.c:315
 msgid "Space to put between the label and the child"
 msgstr "Space to put between the label and the child"
 
-#: ../gtk/gtkexpander.c:323 ../gtk/gtkframe.c:205 ../gtk/gtktoolbutton.c:246
-#: ../gtk/gtktoolitemgroup.c:1598
+#: ../gtk/gtkexpander.c:324 ../gtk/gtkframe.c:206 ../gtk/gtktoolbutton.c:246
+#: ../gtk/gtktoolitemgroup.c:1599
 msgid "Label widget"
 msgstr "Label widget"
 
-#: ../gtk/gtkexpander.c:324
+#: ../gtk/gtkexpander.c:325
 msgid "A widget to display in place of the usual expander label"
 msgstr "A widget to display in place of the usual expander label"
 
-#: ../gtk/gtkexpander.c:331
+#: ../gtk/gtkexpander.c:332
 msgid "Label fill"
 msgstr "Label fill"
 
-#: ../gtk/gtkexpander.c:332
+#: ../gtk/gtkexpander.c:333
 msgid "Whether the label widget should fill all available horizontal space"
 msgstr "Whether the label widget should fill all available horizontal space"
 
-#: ../gtk/gtkexpander.c:347
+#: ../gtk/gtkexpander.c:348
 msgid "Resize tolevel"
 msgstr "Resize tolevel"
 
-#: ../gtk/gtkexpander.c:348
+#: ../gtk/gtkexpander.c:349
 msgid ""
 "Whether the expander will resize the toplevel window upon expanding and "
 "collapsing"
@@ -2962,17 +2962,17 @@ msgstr ""
 "Whether the expander will resize the toplevel window upon expanding and "
 "collapsing"
 
-#: ../gtk/gtkexpander.c:354 ../gtk/gtktoolitemgroup.c:1626
-#: ../gtk/gtktreeview.c:1186
+#: ../gtk/gtkexpander.c:355 ../gtk/gtktoolitemgroup.c:1627
+#: ../gtk/gtktreeview.c:1187
 msgid "Expander Size"
 msgstr "Expander Size"
 
-#: ../gtk/gtkexpander.c:355 ../gtk/gtktoolitemgroup.c:1627
-#: ../gtk/gtktreeview.c:1187
+#: ../gtk/gtkexpander.c:356 ../gtk/gtktoolitemgroup.c:1628
+#: ../gtk/gtktreeview.c:1188
 msgid "Size of the expander arrow"
 msgstr "Size of the expander arrow"
 
-#: ../gtk/gtkexpander.c:364
+#: ../gtk/gtkexpander.c:365
 msgid "Spacing around expander arrow"
 msgstr "Spacing around expander arrow"
 
@@ -3110,7 +3110,7 @@ msgstr "Y position of child widget"
 msgid "The title of the font selection dialog"
 msgstr "The title of the font selection dialog"
 
-#: ../gtk/gtkfontbutton.c:167 ../gtk/gtkfontsel.c:239
+#: ../gtk/gtkfontbutton.c:167 ../gtk/gtkfontsel.c:238
 msgid "Font name"
 msgstr "Font name"
 
@@ -3154,47 +3154,47 @@ msgstr "Show size"
 msgid "Whether selected font size is shown in the label"
 msgstr "Whether selected font size is shown in the label"
 
-#: ../gtk/gtkfontsel.c:240
+#: ../gtk/gtkfontsel.c:239
 msgid "The string that represents this font"
 msgstr "The string that represents this font"
 
-#: ../gtk/gtkfontsel.c:246
+#: ../gtk/gtkfontsel.c:245
 msgid "Preview text"
 msgstr "Preview text"
 
-#: ../gtk/gtkfontsel.c:247
+#: ../gtk/gtkfontsel.c:246
 msgid "The text to display in order to demonstrate the selected font"
 msgstr "The text to display in order to demonstrate the selected font"
 
-#: ../gtk/gtkframe.c:171
+#: ../gtk/gtkframe.c:172
 msgid "Text of the frame's label"
 msgstr "Text of the frame's label"
 
-#: ../gtk/gtkframe.c:178
+#: ../gtk/gtkframe.c:179
 msgid "Label xalign"
 msgstr "Label xalign"
 
-#: ../gtk/gtkframe.c:179
+#: ../gtk/gtkframe.c:180
 msgid "The horizontal alignment of the label"
 msgstr "The horizontal alignment of the label"
 
-#: ../gtk/gtkframe.c:187
+#: ../gtk/gtkframe.c:188
 msgid "Label yalign"
 msgstr "Label yalign"
 
-#: ../gtk/gtkframe.c:188
+#: ../gtk/gtkframe.c:189
 msgid "The vertical alignment of the label"
 msgstr "The vertical alignment of the label"
 
-#: ../gtk/gtkframe.c:196
+#: ../gtk/gtkframe.c:197
 msgid "Frame shadow"
 msgstr "Frame shadow"
 
-#: ../gtk/gtkframe.c:197
+#: ../gtk/gtkframe.c:198
 msgid "Appearance of the frame border"
 msgstr "Appearance of the frame border"
 
-#: ../gtk/gtkframe.c:206
+#: ../gtk/gtkframe.c:207
 msgid "A widget to display in place of the usual frame label"
 msgstr "A widget to display in place of the usual frame label"
 
@@ -3234,7 +3234,7 @@ msgstr "If TRUE, the columns are all the same width"
 msgid "Left attachment"
 msgstr "Left attachment"
 
-#: ../gtk/gtkgrid.c:1327 ../gtk/gtkmenu.c:760 ../gtk/gtktable.c:236
+#: ../gtk/gtkgrid.c:1327 ../gtk/gtkmenu.c:761 ../gtk/gtktable.c:236
 msgid "The column number to attach the left side of the child to"
 msgstr "The column number to attach the left side of the child to"
 
@@ -3310,204 +3310,204 @@ msgstr ""
 "A boolean value indicating whether the handlebox's child is attached or "
 "detached."
 
-#: ../gtk/gtkiconview.c:528 ../gtk/gtktreeselection.c:131
+#: ../gtk/gtkiconview.c:527 ../gtk/gtktreeselection.c:131
 msgid "Selection mode"
 msgstr "Selection mode"
 
-#: ../gtk/gtkiconview.c:529
+#: ../gtk/gtkiconview.c:528
 msgid "The selection mode"
 msgstr "The selection mode"
 
-#: ../gtk/gtkiconview.c:547
+#: ../gtk/gtkiconview.c:546
 msgid "Pixbuf column"
 msgstr "Pixbuf column"
 
-#: ../gtk/gtkiconview.c:548
+#: ../gtk/gtkiconview.c:547
 msgid "Model column used to retrieve the icon pixbuf from"
 msgstr "Model column used to retrieve the icon pixbuf from"
 
-#: ../gtk/gtkiconview.c:566
+#: ../gtk/gtkiconview.c:565
 msgid "Model column used to retrieve the text from"
 msgstr "Model column used to retrieve the text from"
 
-#: ../gtk/gtkiconview.c:585
+#: ../gtk/gtkiconview.c:584
 msgid "Markup column"
 msgstr "Markup column"
 
-#: ../gtk/gtkiconview.c:586
+#: ../gtk/gtkiconview.c:585
 msgid "Model column used to retrieve the text if using Pango markup"
 msgstr "Model column used to retrieve the text if using Pango markup"
 
-#: ../gtk/gtkiconview.c:593
+#: ../gtk/gtkiconview.c:592
 msgid "Icon View Model"
 msgstr "Icon View Model"
 
-#: ../gtk/gtkiconview.c:594
+#: ../gtk/gtkiconview.c:593
 msgid "The model for the icon view"
 msgstr "The model for the icon view"
 
-#: ../gtk/gtkiconview.c:610
+#: ../gtk/gtkiconview.c:609
 msgid "Number of columns"
 msgstr "Number of columns"
 
-#: ../gtk/gtkiconview.c:611
+#: ../gtk/gtkiconview.c:610
 msgid "Number of columns to display"
 msgstr "Number of columns to display"
 
-#: ../gtk/gtkiconview.c:628
+#: ../gtk/gtkiconview.c:627
 msgid "Width for each item"
 msgstr "Width for each item"
 
-#: ../gtk/gtkiconview.c:629
+#: ../gtk/gtkiconview.c:628
 msgid "The width used for each item"
 msgstr "The width used for each item"
 
-#: ../gtk/gtkiconview.c:645
+#: ../gtk/gtkiconview.c:644
 msgid "Space which is inserted between cells of an item"
 msgstr "Space which is inserted between cells of an item"
 
-#: ../gtk/gtkiconview.c:660
+#: ../gtk/gtkiconview.c:659
 msgid "Row Spacing"
 msgstr "Row Spacing"
 
-#: ../gtk/gtkiconview.c:661
+#: ../gtk/gtkiconview.c:660
 msgid "Space which is inserted between grid rows"
 msgstr "Space which is inserted between grid rows"
 
-#: ../gtk/gtkiconview.c:676
+#: ../gtk/gtkiconview.c:675
 msgid "Column Spacing"
 msgstr "Column Spacing"
 
-#: ../gtk/gtkiconview.c:677
+#: ../gtk/gtkiconview.c:676
 msgid "Space which is inserted between grid columns"
 msgstr "Space which is inserted between grid columns"
 
-#: ../gtk/gtkiconview.c:692
+#: ../gtk/gtkiconview.c:691
 msgid "Margin"
 msgstr "Margin"
 
-#: ../gtk/gtkiconview.c:693
+#: ../gtk/gtkiconview.c:692
 msgid "Space which is inserted at the edges of the icon view"
 msgstr "Space which is inserted at the edges of the icon view"
 
-#: ../gtk/gtkiconview.c:708
+#: ../gtk/gtkiconview.c:707
 msgid "Item Orientation"
 msgstr "Item Orientation"
 
-#: ../gtk/gtkiconview.c:709
+#: ../gtk/gtkiconview.c:708
 msgid ""
 "How the text and icon of each item are positioned relative to each other"
 msgstr ""
 "How the text and icon of each item are positioned relative to each other"
 
-#: ../gtk/gtkiconview.c:725 ../gtk/gtktreeview.c:1021
+#: ../gtk/gtkiconview.c:724 ../gtk/gtktreeview.c:1022
 #: ../gtk/gtktreeviewcolumn.c:374
 msgid "Reorderable"
 msgstr "Reorderable"
 
-#: ../gtk/gtkiconview.c:726 ../gtk/gtktreeview.c:1022
+#: ../gtk/gtkiconview.c:725 ../gtk/gtktreeview.c:1023
 msgid "View is reorderable"
 msgstr "View is reorderable"
 
-#: ../gtk/gtkiconview.c:733 ../gtk/gtktreeview.c:1172
+#: ../gtk/gtkiconview.c:732 ../gtk/gtktreeview.c:1173
 msgid "Tooltip Column"
 msgstr "Tooltip Column"
 
-#: ../gtk/gtkiconview.c:734
+#: ../gtk/gtkiconview.c:733
 msgid "The column in the model containing the tooltip texts for the items"
 msgstr "The column in the model containing the tooltip texts for the items"
 
-#: ../gtk/gtkiconview.c:751
+#: ../gtk/gtkiconview.c:750
 msgid "Item Padding"
 msgstr "Item Padding"
 
-#: ../gtk/gtkiconview.c:752
+#: ../gtk/gtkiconview.c:751
 msgid "Padding around icon view items"
 msgstr "Padding around icon view items"
 
-#: ../gtk/gtkiconview.c:783
+#: ../gtk/gtkiconview.c:782
 msgid "Selection Box Color"
 msgstr "Selection Box Color"
 
-#: ../gtk/gtkiconview.c:784
+#: ../gtk/gtkiconview.c:783
 msgid "Color of the selection box"
 msgstr "Color of the selection box"
 
-#: ../gtk/gtkiconview.c:790
+#: ../gtk/gtkiconview.c:789
 msgid "Selection Box Alpha"
 msgstr "Selection Box Alpha"
 
-#: ../gtk/gtkiconview.c:791
+#: ../gtk/gtkiconview.c:790
 msgid "Opacity of the selection box"
 msgstr "Opacity of the selection box"
 
-#: ../gtk/gtkimage.c:235 ../gtk/gtkstatusicon.c:235
+#: ../gtk/gtkimage.c:237 ../gtk/gtkstatusicon.c:235
 msgid "Pixbuf"
 msgstr "Pixbuf"
 
-#: ../gtk/gtkimage.c:236 ../gtk/gtkstatusicon.c:236
+#: ../gtk/gtkimage.c:238 ../gtk/gtkstatusicon.c:236
 msgid "A GdkPixbuf to display"
 msgstr "A GdkPixbuf to display"
 
-#: ../gtk/gtkimage.c:243 ../gtk/gtkrecentmanager.c:294
+#: ../gtk/gtkimage.c:245 ../gtk/gtkrecentmanager.c:294
 #: ../gtk/gtkstatusicon.c:243
 msgid "Filename"
 msgstr "Filename"
 
-#: ../gtk/gtkimage.c:244 ../gtk/gtkstatusicon.c:244
+#: ../gtk/gtkimage.c:246 ../gtk/gtkstatusicon.c:244
 msgid "Filename to load and display"
 msgstr "Filename to load and display"
 
-#: ../gtk/gtkimage.c:253 ../gtk/gtkstatusicon.c:252
+#: ../gtk/gtkimage.c:255 ../gtk/gtkstatusicon.c:252
 msgid "Stock ID for a stock image to display"
 msgstr "Stock ID for a stock image to display"
 
-#: ../gtk/gtkimage.c:260
+#: ../gtk/gtkimage.c:262
 msgid "Icon set"
 msgstr "Icon set"
 
-#: ../gtk/gtkimage.c:261
+#: ../gtk/gtkimage.c:263
 msgid "Icon set to display"
 msgstr "Icon set to display"
 
-#: ../gtk/gtkimage.c:268 ../gtk/gtkscalebutton.c:227 ../gtk/gtktoolbar.c:521
-#: ../gtk/gtktoolpalette.c:1006
+#: ../gtk/gtkimage.c:270 ../gtk/gtkscalebutton.c:228 ../gtk/gtktoolbar.c:528
+#: ../gtk/gtktoolpalette.c:1008
 msgid "Icon size"
 msgstr "Icon size"
 
-#: ../gtk/gtkimage.c:269
+#: ../gtk/gtkimage.c:271
 msgid "Symbolic size to use for stock icon, icon set or named icon"
 msgstr "Symbolic size to use for stock icon, icon set or named icon"
 
-#: ../gtk/gtkimage.c:285
+#: ../gtk/gtkimage.c:287
 msgid "Pixel size"
 msgstr "Pixel size"
 
-#: ../gtk/gtkimage.c:286
+#: ../gtk/gtkimage.c:288
 msgid "Pixel size to use for named icon"
 msgstr "Pixel size to use for named icon"
 
-#: ../gtk/gtkimage.c:294
+#: ../gtk/gtkimage.c:296
 msgid "Animation"
 msgstr "Animation"
 
-#: ../gtk/gtkimage.c:295
+#: ../gtk/gtkimage.c:297
 msgid "GdkPixbufAnimation to display"
 msgstr "GdkPixbufAnimation to display"
 
-#: ../gtk/gtkimage.c:335 ../gtk/gtkstatusicon.c:283
+#: ../gtk/gtkimage.c:337 ../gtk/gtkstatusicon.c:283
 msgid "Storage type"
 msgstr "Storage type"
 
-#: ../gtk/gtkimage.c:336 ../gtk/gtkstatusicon.c:284
+#: ../gtk/gtkimage.c:338 ../gtk/gtkstatusicon.c:284
 msgid "The representation being used for image data"
 msgstr "The representation being used for image data"
 
-#: ../gtk/gtkimage.c:354
+#: ../gtk/gtkimage.c:356
 msgid "Use Fallback"
 msgstr "Use Fallback"
 
-#: ../gtk/gtkimage.c:355
+#: ../gtk/gtkimage.c:357
 msgid "Whether to use icon names fallback"
 msgstr "Whether to use icon names fallback"
 
@@ -3519,7 +3519,7 @@ msgstr "Child widget to appear next to the menu text"
 msgid "Whether to use the label text to create a stock menu item"
 msgstr "Whether to use the label text to create a stock menu item"
 
-#: ../gtk/gtkimagemenuitem.c:209 ../gtk/gtkmenu.c:602
+#: ../gtk/gtkimagemenuitem.c:209 ../gtk/gtkmenu.c:603
 msgid "Accel Group"
 msgstr "Accel Group"
 
@@ -3547,8 +3547,8 @@ msgstr "Spacing between elements of the area"
 msgid "Width of border around the action area"
 msgstr "Width of border around the action area"
 
-#: ../gtk/gtkinvisible.c:103 ../gtk/gtkmountoperation.c:174
-#: ../gtk/gtkstatusicon.c:302 ../gtk/gtkstylecontext.c:544
+#: ../gtk/gtkinvisible.c:103 ../gtk/gtkmountoperation.c:173
+#: ../gtk/gtkstatusicon.c:302 ../gtk/gtkstylecontext.c:431
 #: ../gtk/gtkwindow.c:732
 msgid "Screen"
 msgstr "Screen"
@@ -3557,19 +3557,19 @@ msgstr "Screen"
 msgid "The screen where this window will be displayed"
 msgstr "The screen where this window will be displayed"
 
-#: ../gtk/gtklabel.c:743
+#: ../gtk/gtklabel.c:745
 msgid "The text of the label"
 msgstr "The text of the label"
 
-#: ../gtk/gtklabel.c:750
+#: ../gtk/gtklabel.c:752
 msgid "A list of style attributes to apply to the text of the label"
 msgstr "A list of style attributes to apply to the text of the label"
 
-#: ../gtk/gtklabel.c:771 ../gtk/gtktexttag.c:386 ../gtk/gtktextview.c:704
+#: ../gtk/gtklabel.c:773 ../gtk/gtktexttag.c:386 ../gtk/gtktextview.c:703
 msgid "Justification"
 msgstr "Justification"
 
-#: ../gtk/gtklabel.c:772
+#: ../gtk/gtklabel.c:774
 msgid ""
 "The alignment of the lines in the text of the label relative to each other. "
 "This does NOT affect the alignment of the label within its allocation. See "
@@ -3579,11 +3579,11 @@ msgstr ""
 "This does NOT affect the alignment of the label within its allocation. See "
 "GtkMisc::xalign for that"
 
-#: ../gtk/gtklabel.c:780
+#: ../gtk/gtklabel.c:782
 msgid "Pattern"
 msgstr "Pattern"
 
-#: ../gtk/gtklabel.c:781
+#: ../gtk/gtklabel.c:783
 msgid ""
 "A string with _ characters in positions correspond to characters in the text "
 "to underline"
@@ -3591,47 +3591,47 @@ msgstr ""
 "A string with _ characters in positions correspond to characters in the text "
 "to underline"
 
-#: ../gtk/gtklabel.c:788
+#: ../gtk/gtklabel.c:790
 msgid "Line wrap"
 msgstr "Line wrap"
 
-#: ../gtk/gtklabel.c:789
+#: ../gtk/gtklabel.c:791
 msgid "If set, wrap lines if the text becomes too wide"
 msgstr "If set, wrap lines if the text becomes too wide"
 
-#: ../gtk/gtklabel.c:804
+#: ../gtk/gtklabel.c:806
 msgid "Line wrap mode"
 msgstr "Line wrap mode"
 
-#: ../gtk/gtklabel.c:805
+#: ../gtk/gtklabel.c:807
 msgid "If wrap is set, controls how linewrapping is done"
 msgstr "If wrap is set, controls how linewrapping is done"
 
-#: ../gtk/gtklabel.c:812
+#: ../gtk/gtklabel.c:814
 msgid "Selectable"
 msgstr "Selectable"
 
-#: ../gtk/gtklabel.c:813
+#: ../gtk/gtklabel.c:815
 msgid "Whether the label text can be selected with the mouse"
 msgstr "Whether the label text can be selected with the mouse"
 
-#: ../gtk/gtklabel.c:819
+#: ../gtk/gtklabel.c:821
 msgid "Mnemonic key"
 msgstr "Mnemonic key"
 
-#: ../gtk/gtklabel.c:820
+#: ../gtk/gtklabel.c:822
 msgid "The mnemonic accelerator key for this label"
 msgstr "The mnemonic accelerator key for this label"
 
-#: ../gtk/gtklabel.c:828
+#: ../gtk/gtklabel.c:830
 msgid "Mnemonic widget"
 msgstr "Mnemonic widget"
 
-#: ../gtk/gtklabel.c:829
+#: ../gtk/gtklabel.c:831
 msgid "The widget to be activated when the label's mnemonic key is pressed"
 msgstr "The widget to be activated when the label's mnemonic key is pressed"
 
-#: ../gtk/gtklabel.c:875
+#: ../gtk/gtklabel.c:877
 msgid ""
 "The preferred place to ellipsize the string, if the label does not have "
 "enough room to display the entire string"
@@ -3639,31 +3639,31 @@ msgstr ""
 "The preferred place to ellipsize the string, if the label does not have "
 "enough room to display the entire string"
 
-#: ../gtk/gtklabel.c:916
+#: ../gtk/gtklabel.c:918
 msgid "Single Line Mode"
 msgstr "Single Line Mode"
 
-#: ../gtk/gtklabel.c:917
+#: ../gtk/gtklabel.c:919
 msgid "Whether the label is in single line mode"
 msgstr "Whether the label is in single line mode"
 
-#: ../gtk/gtklabel.c:934
+#: ../gtk/gtklabel.c:936
 msgid "Angle"
 msgstr "Angle"
 
-#: ../gtk/gtklabel.c:935
+#: ../gtk/gtklabel.c:937
 msgid "Angle at which the label is rotated"
 msgstr "Angle at which the label is rotated"
 
-#: ../gtk/gtklabel.c:957
+#: ../gtk/gtklabel.c:959
 msgid "The desired maximum width of the label, in characters"
 msgstr "The desired maximum width of the label, in characters"
 
-#: ../gtk/gtklabel.c:975
+#: ../gtk/gtklabel.c:977
 msgid "Track visited links"
 msgstr "Track visited links"
 
-#: ../gtk/gtklabel.c:976
+#: ../gtk/gtklabel.c:978
 msgid "Whether visited links should be tracked"
 msgstr "Whether visited links should be tracked"
 
@@ -3741,60 +3741,60 @@ msgid ""
 msgstr ""
 "The tooltip to display when prompting the user cannot obtain authorization"
 
-#: ../gtk/gtkmenubar.c:190
+#: ../gtk/gtkmenubar.c:191
 msgid "Pack direction"
 msgstr "Pack direction"
 
-#: ../gtk/gtkmenubar.c:191
+#: ../gtk/gtkmenubar.c:192
 msgid "The pack direction of the menubar"
 msgstr "The pack direction of the menubar"
 
-#: ../gtk/gtkmenubar.c:207
+#: ../gtk/gtkmenubar.c:208
 msgid "Child Pack direction"
 msgstr "Child Pack direction"
 
-#: ../gtk/gtkmenubar.c:208
+#: ../gtk/gtkmenubar.c:209
 msgid "The child pack direction of the menubar"
 msgstr "The child pack direction of the menubar"
 
-#: ../gtk/gtkmenubar.c:217
+#: ../gtk/gtkmenubar.c:218
 msgid "Style of bevel around the menubar"
 msgstr "Style of bevel around the menubar"
 
-#: ../gtk/gtkmenubar.c:224 ../gtk/gtktoolbar.c:571
+#: ../gtk/gtkmenubar.c:225 ../gtk/gtktoolbar.c:578
 msgid "Internal padding"
 msgstr "Internal padding"
 
-#: ../gtk/gtkmenubar.c:225
+#: ../gtk/gtkmenubar.c:226
 msgid "Amount of border space between the menubar shadow and the menu items"
 msgstr "Amount of border space between the menubar shadow and the menu items"
 
-#: ../gtk/gtkmenu.c:588
+#: ../gtk/gtkmenu.c:589
 msgid "The currently selected menu item"
 msgstr "The currently selected menu item"
 
-#: ../gtk/gtkmenu.c:603
+#: ../gtk/gtkmenu.c:604
 msgid "The accel group holding accelerators for the menu"
 msgstr "The accel group holding accelerators for the menu"
 
-#: ../gtk/gtkmenu.c:617 ../gtk/gtkmenuitem.c:366
+#: ../gtk/gtkmenu.c:618 ../gtk/gtkmenuitem.c:369
 msgid "Accel Path"
 msgstr "Accel Path"
 
-#: ../gtk/gtkmenu.c:618
+#: ../gtk/gtkmenu.c:619
 msgid "An accel path used to conveniently construct accel paths of child items"
 msgstr ""
 "An accel path used to conveniently construct accel paths of child items"
 
-#: ../gtk/gtkmenu.c:634
+#: ../gtk/gtkmenu.c:635
 msgid "Attach Widget"
 msgstr "Attach Widget"
 
-#: ../gtk/gtkmenu.c:635
+#: ../gtk/gtkmenu.c:636
 msgid "The widget the menu is attached to"
 msgstr "The widget the menu is attached to"
 
-#: ../gtk/gtkmenu.c:643
+#: ../gtk/gtkmenu.c:644
 msgid ""
 "A title that may be displayed by the window manager when this menu is torn-"
 "off"
@@ -3802,35 +3802,35 @@ msgstr ""
 "A title that may be displayed by the window manager when this menu is torn-"
 "off"
 
-#: ../gtk/gtkmenu.c:657
+#: ../gtk/gtkmenu.c:658
 msgid "Tearoff State"
 msgstr "Tearoff State"
 
-#: ../gtk/gtkmenu.c:658
+#: ../gtk/gtkmenu.c:659
 msgid "A boolean that indicates whether the menu is torn-off"
 msgstr "A boolean that indicates whether the menu is torn-off"
 
-#: ../gtk/gtkmenu.c:672
+#: ../gtk/gtkmenu.c:673
 msgid "Monitor"
 msgstr "Monitor"
 
-#: ../gtk/gtkmenu.c:673
+#: ../gtk/gtkmenu.c:674
 msgid "The monitor the menu will be popped up on"
 msgstr "The monitor the menu will be popped up on"
 
-#: ../gtk/gtkmenu.c:679
+#: ../gtk/gtkmenu.c:680
 msgid "Vertical Padding"
 msgstr "Vertical Padding"
 
-#: ../gtk/gtkmenu.c:680
+#: ../gtk/gtkmenu.c:681
 msgid "Extra space at the top and bottom of the menu"
 msgstr "Extra space at the top and bottom of the menu"
 
-#: ../gtk/gtkmenu.c:702
+#: ../gtk/gtkmenu.c:703
 msgid "Reserve Toggle Size"
 msgstr "Reserve Toggle Size"
 
-#: ../gtk/gtkmenu.c:703
+#: ../gtk/gtkmenu.c:704
 msgid ""
 "A boolean that indicates whether the menu reserves space for toggles and "
 "icons"
@@ -3838,19 +3838,19 @@ msgstr ""
 "A boolean that indicates whether the menu reserves space for toggles and "
 "icons"
 
-#: ../gtk/gtkmenu.c:709
+#: ../gtk/gtkmenu.c:710
 msgid "Horizontal Padding"
 msgstr "Horizontal Padding"
 
-#: ../gtk/gtkmenu.c:710
+#: ../gtk/gtkmenu.c:711
 msgid "Extra space at the left and right edges of the menu"
 msgstr "Extra space at the left and right edges of the menu"
 
-#: ../gtk/gtkmenu.c:718
+#: ../gtk/gtkmenu.c:719
 msgid "Vertical Offset"
 msgstr "Vertical Offset"
 
-#: ../gtk/gtkmenu.c:719
+#: ../gtk/gtkmenu.c:720
 msgid ""
 "When the menu is a submenu, position it this number of pixels offset "
 "vertically"
@@ -3858,11 +3858,11 @@ msgstr ""
 "When the menu is a submenu, position it this number of pixels offset "
 "vertically"
 
-#: ../gtk/gtkmenu.c:727
+#: ../gtk/gtkmenu.c:728
 msgid "Horizontal Offset"
 msgstr "Horizontal Offset"
 
-#: ../gtk/gtkmenu.c:728
+#: ../gtk/gtkmenu.c:729
 msgid ""
 "When the menu is a submenu, position it this number of pixels offset "
 "horizontally"
@@ -3870,90 +3870,90 @@ msgstr ""
 "When the menu is a submenu, position it this number of pixels offset "
 "horizontally"
 
-#: ../gtk/gtkmenu.c:736
+#: ../gtk/gtkmenu.c:737
 msgid "Double Arrows"
 msgstr "Double Arrows"
 
-#: ../gtk/gtkmenu.c:737
+#: ../gtk/gtkmenu.c:738
 msgid "When scrolling, always show both arrows."
 msgstr "When scrolling, always show both arrows."
 
-#: ../gtk/gtkmenu.c:750
+#: ../gtk/gtkmenu.c:751
 msgid "Arrow Placement"
 msgstr "Arrow Placement"
 
-#: ../gtk/gtkmenu.c:751
+#: ../gtk/gtkmenu.c:752
 msgid "Indicates where scroll arrows should be placed"
 msgstr "Indicates where scroll arrows should be placed"
 
-#: ../gtk/gtkmenu.c:759
+#: ../gtk/gtkmenu.c:760
 msgid "Left Attach"
 msgstr "Left Attach"
 
-#: ../gtk/gtkmenu.c:767
+#: ../gtk/gtkmenu.c:768
 msgid "Right Attach"
 msgstr "Right Attach"
 
-#: ../gtk/gtkmenu.c:768
+#: ../gtk/gtkmenu.c:769
 msgid "The column number to attach the right side of the child to"
 msgstr "The column number to attach the right side of the child to"
 
-#: ../gtk/gtkmenu.c:775
+#: ../gtk/gtkmenu.c:776
 msgid "Top Attach"
 msgstr "Top Attach"
 
-#: ../gtk/gtkmenu.c:776
+#: ../gtk/gtkmenu.c:777
 msgid "The row number to attach the top of the child to"
 msgstr "The row number to attach the top of the child to"
 
-#: ../gtk/gtkmenu.c:783
+#: ../gtk/gtkmenu.c:784
 msgid "Bottom Attach"
 msgstr "Bottom Attach"
 
-#: ../gtk/gtkmenu.c:784 ../gtk/gtktable.c:257
+#: ../gtk/gtkmenu.c:785 ../gtk/gtktable.c:257
 msgid "The row number to attach the bottom of the child to"
 msgstr "The row number to attach the bottom of the child to"
 
-#: ../gtk/gtkmenu.c:798
+#: ../gtk/gtkmenu.c:799
 msgid "Arbitrary constant to scale down the size of the scroll arrow"
 msgstr "Arbitrary constant to scale down the size of the scroll arrow"
 
-#: ../gtk/gtkmenuitem.c:334
+#: ../gtk/gtkmenuitem.c:337
 msgid "Right Justified"
 msgstr "Right Justified"
 
-#: ../gtk/gtkmenuitem.c:335
+#: ../gtk/gtkmenuitem.c:338
 msgid ""
 "Sets whether the menu item appears justified at the right side of a menu bar"
 msgstr ""
 "Sets whether the menu item appears justified at the right side of a menu bar"
 
-#: ../gtk/gtkmenuitem.c:349
+#: ../gtk/gtkmenuitem.c:352
 msgid "Submenu"
 msgstr "Submenu"
 
-#: ../gtk/gtkmenuitem.c:350
+#: ../gtk/gtkmenuitem.c:353
 msgid "The submenu attached to the menu item, or NULL if it has none"
 msgstr "The submenu attached to the menu item, or NULL if it has none"
 
-#: ../gtk/gtkmenuitem.c:367
+#: ../gtk/gtkmenuitem.c:370
 msgid "Sets the accelerator path of the menu item"
 msgstr "Sets the accelerator path of the menu item"
 
-#: ../gtk/gtkmenuitem.c:382
+#: ../gtk/gtkmenuitem.c:385
 msgid "The text for the child label"
 msgstr "The text for the child label"
 
-#: ../gtk/gtkmenuitem.c:445
+#: ../gtk/gtkmenuitem.c:448
 msgid "Amount of space used up by arrow, relative to the menu item's font size"
 msgstr ""
 "Amount of space used up by arrow, relative to the menu item's font size"
 
-#: ../gtk/gtkmenuitem.c:458
+#: ../gtk/gtkmenuitem.c:461
 msgid "Width in Characters"
 msgstr "Width in Characters"
 
-#: ../gtk/gtkmenuitem.c:459
+#: ../gtk/gtkmenuitem.c:462
 msgid "The minimum desired width of the menu item in characters"
 msgstr "The minimum desired width of the menu item in characters"
 
@@ -4061,71 +4061,71 @@ msgid ""
 msgstr ""
 "The amount of space to add on the top and bottom of the widget, in pixels"
 
-#: ../gtk/gtkmountoperation.c:158
+#: ../gtk/gtkmountoperation.c:157
 msgid "Parent"
 msgstr "Parent"
 
-#: ../gtk/gtkmountoperation.c:159
+#: ../gtk/gtkmountoperation.c:158
 msgid "The parent window"
 msgstr "The parent window"
 
-#: ../gtk/gtkmountoperation.c:166
+#: ../gtk/gtkmountoperation.c:165
 msgid "Is Showing"
 msgstr "Is Showing"
 
-#: ../gtk/gtkmountoperation.c:167
+#: ../gtk/gtkmountoperation.c:166
 msgid "Are we showing a dialog"
 msgstr "Are we showing a dialog"
 
-#: ../gtk/gtkmountoperation.c:175
+#: ../gtk/gtkmountoperation.c:174
 msgid "The screen where this window will be displayed."
 msgstr "The screen where this window will be displayed."
 
-#: ../gtk/gtknotebook.c:695
+#: ../gtk/gtknotebook.c:696
 msgid "Page"
 msgstr "Page"
 
-#: ../gtk/gtknotebook.c:696
+#: ../gtk/gtknotebook.c:697
 msgid "The index of the current page"
 msgstr "The index of the current page"
 
-#: ../gtk/gtknotebook.c:704
+#: ../gtk/gtknotebook.c:705
 msgid "Tab Position"
 msgstr "Tab Position"
 
-#: ../gtk/gtknotebook.c:705
+#: ../gtk/gtknotebook.c:706
 msgid "Which side of the notebook holds the tabs"
 msgstr "Which side of the notebook holds the tabs"
 
-#: ../gtk/gtknotebook.c:712
+#: ../gtk/gtknotebook.c:713
 msgid "Show Tabs"
 msgstr "Show Tabs"
 
-#: ../gtk/gtknotebook.c:713
+#: ../gtk/gtknotebook.c:714
 msgid "Whether tabs should be shown"
 msgstr "Whether tabs should be shown"
 
-#: ../gtk/gtknotebook.c:719
+#: ../gtk/gtknotebook.c:720
 msgid "Show Border"
 msgstr "Show Border"
 
-#: ../gtk/gtknotebook.c:720
+#: ../gtk/gtknotebook.c:721
 msgid "Whether the border should be shown"
 msgstr "Whether the border should be shown"
 
-#: ../gtk/gtknotebook.c:726
+#: ../gtk/gtknotebook.c:727
 msgid "Scrollable"
 msgstr "Scrollable"
 
-#: ../gtk/gtknotebook.c:727
+#: ../gtk/gtknotebook.c:728
 msgid "If TRUE, scroll arrows are added if there are too many tabs to fit"
 msgstr "If TRUE, scroll arrows are added if there are too many tabs to fit"
 
-#: ../gtk/gtknotebook.c:733
+#: ../gtk/gtknotebook.c:734
 msgid "Enable Popup"
 msgstr "Enable Popup"
 
-#: ../gtk/gtknotebook.c:734
+#: ../gtk/gtknotebook.c:735
 msgid ""
 "If TRUE, pressing the right mouse button on the notebook pops up a menu that "
 "you can use to go to a page"
@@ -4133,127 +4133,127 @@ msgstr ""
 "If TRUE, pressing the right mouse button on the notebook pops up a menu that "
 "you can use to go to a page"
 
-#: ../gtk/gtknotebook.c:748
+#: ../gtk/gtknotebook.c:749
 msgid "Group Name"
 msgstr "Group Name"
 
-#: ../gtk/gtknotebook.c:749
+#: ../gtk/gtknotebook.c:750
 msgid "Group name for tab drag and drop"
 msgstr "Group name for tab drag and drop"
 
-#: ../gtk/gtknotebook.c:756
+#: ../gtk/gtknotebook.c:757
 msgid "Tab label"
 msgstr "Tab label"
 
-#: ../gtk/gtknotebook.c:757
+#: ../gtk/gtknotebook.c:758
 msgid "The string displayed on the child's tab label"
 msgstr "The string displayed on the child's tab label"
 
-#: ../gtk/gtknotebook.c:763
+#: ../gtk/gtknotebook.c:764
 msgid "Menu label"
 msgstr "Menu label"
 
-#: ../gtk/gtknotebook.c:764
+#: ../gtk/gtknotebook.c:765
 msgid "The string displayed in the child's menu entry"
 msgstr "The string displayed in the child's menu entry"
 
-#: ../gtk/gtknotebook.c:777
+#: ../gtk/gtknotebook.c:778
 msgid "Tab expand"
 msgstr "Tab expand"
 
-#: ../gtk/gtknotebook.c:778
+#: ../gtk/gtknotebook.c:779
 msgid "Whether to expand the child's tab"
 msgstr "Whether to expand the child's tab"
 
-#: ../gtk/gtknotebook.c:784
+#: ../gtk/gtknotebook.c:785
 msgid "Tab fill"
 msgstr "Tab fill"
 
-#: ../gtk/gtknotebook.c:785
+#: ../gtk/gtknotebook.c:786
 msgid "Whether the child's tab should fill the allocated area"
 msgstr "Whether the child's tab should fill the allocated area"
 
-#: ../gtk/gtknotebook.c:792
+#: ../gtk/gtknotebook.c:793
 msgid "Tab reorderable"
 msgstr "Tab reorderable"
 
-#: ../gtk/gtknotebook.c:793
+#: ../gtk/gtknotebook.c:794
 msgid "Whether the tab is reorderable by user action"
 msgstr "Whether the tab is reorderable by user action"
 
-#: ../gtk/gtknotebook.c:799
+#: ../gtk/gtknotebook.c:800
 msgid "Tab detachable"
 msgstr "Tab detachable"
 
-#: ../gtk/gtknotebook.c:800
+#: ../gtk/gtknotebook.c:801
 msgid "Whether the tab is detachable"
 msgstr "Whether the tab is detachable"
 
-#: ../gtk/gtknotebook.c:815 ../gtk/gtkscrollbar.c:100
+#: ../gtk/gtknotebook.c:816 ../gtk/gtkscrollbar.c:102
 msgid "Secondary backward stepper"
 msgstr "Secondary backward stepper"
 
-#: ../gtk/gtknotebook.c:816
+#: ../gtk/gtknotebook.c:817
 msgid ""
 "Display a second backward arrow button on the opposite end of the tab area"
 msgstr ""
 "Display a second backward arrow button on the opposite end of the tab area"
 
-#: ../gtk/gtknotebook.c:831 ../gtk/gtkscrollbar.c:107
+#: ../gtk/gtknotebook.c:832 ../gtk/gtkscrollbar.c:109
 msgid "Secondary forward stepper"
 msgstr "Secondary forward stepper"
 
-#: ../gtk/gtknotebook.c:832
+#: ../gtk/gtknotebook.c:833
 msgid ""
 "Display a second forward arrow button on the opposite end of the tab area"
 msgstr ""
 "Display a second forward arrow button on the opposite end of the tab area"
 
-#: ../gtk/gtknotebook.c:846 ../gtk/gtkscrollbar.c:86
+#: ../gtk/gtknotebook.c:847 ../gtk/gtkscrollbar.c:88
 msgid "Backward stepper"
 msgstr "Backward stepper"
 
-#: ../gtk/gtknotebook.c:847 ../gtk/gtkscrollbar.c:87
+#: ../gtk/gtknotebook.c:848 ../gtk/gtkscrollbar.c:89
 msgid "Display the standard backward arrow button"
 msgstr "Display the standard backward arrow button"
 
-#: ../gtk/gtknotebook.c:861 ../gtk/gtkscrollbar.c:93
+#: ../gtk/gtknotebook.c:862 ../gtk/gtkscrollbar.c:95
 msgid "Forward stepper"
 msgstr "Forward stepper"
 
-#: ../gtk/gtknotebook.c:862 ../gtk/gtkscrollbar.c:94
+#: ../gtk/gtknotebook.c:863 ../gtk/gtkscrollbar.c:96
 msgid "Display the standard forward arrow button"
 msgstr "Display the standard forward arrow button"
 
-#: ../gtk/gtknotebook.c:876
+#: ../gtk/gtknotebook.c:877
 msgid "Tab overlap"
 msgstr "Tab overlap"
 
-#: ../gtk/gtknotebook.c:877
+#: ../gtk/gtknotebook.c:878
 msgid "Size of tab overlap area"
 msgstr "Size of tab overlap area"
 
-#: ../gtk/gtknotebook.c:892
+#: ../gtk/gtknotebook.c:893
 msgid "Tab curvature"
 msgstr "Tab curvature"
 
-#: ../gtk/gtknotebook.c:893
+#: ../gtk/gtknotebook.c:894
 msgid "Size of tab curvature"
 msgstr "Size of tab curvature"
 
-#: ../gtk/gtknotebook.c:909
+#: ../gtk/gtknotebook.c:910
 msgid "Arrow spacing"
 msgstr "Arrow spacing"
 
-#: ../gtk/gtknotebook.c:910
+#: ../gtk/gtknotebook.c:911
 msgid "Scroll arrow spacing"
 msgstr "Scroll arrow spacing"
 
-#: ../gtk/gtknotebook.c:926
+#: ../gtk/gtknotebook.c:927
 msgid "Initial gap"
 msgstr "Initial gap"
 
-#: ../gtk/gtknotebook.c:927
+#: ../gtk/gtknotebook.c:928
 msgid "Initial gap before the first tab"
 msgstr "Initial gap before the first tab"
 
@@ -4456,6 +4456,14 @@ msgstr "Accepting Jobs"
 msgid "TRUE if this printer is accepting new jobs"
 msgstr "TRUE if this printer is accepting new jobs"
 
+#: ../gtk/gtkprinteroption.c:105
+msgid "Option Value"
+msgstr "Option Value"
+
+#: ../gtk/gtkprinteroption.c:106
+msgid "Value of the option"
+msgstr "Value of the option"
+
 #: ../gtk/gtkprinteroptionwidget.c:122
 msgid "Source option"
 msgstr "Source option"
@@ -4677,35 +4685,35 @@ msgstr "Whether the application has a selection"
 msgid "TRUE if page setup combos are embedded in GtkPrintUnixDialog"
 msgstr "TRUE if page setup combos are embedded in GtkPrintUnixDialog"
 
-#: ../gtk/gtkprogressbar.c:158
+#: ../gtk/gtkprogressbar.c:160
 msgid "Fraction"
 msgstr "Fraction"
 
-#: ../gtk/gtkprogressbar.c:159
+#: ../gtk/gtkprogressbar.c:161
 msgid "The fraction of total work that has been completed"
 msgstr "The fraction of total work that has been completed"
 
-#: ../gtk/gtkprogressbar.c:166
+#: ../gtk/gtkprogressbar.c:168
 msgid "Pulse Step"
 msgstr "Pulse Step"
 
-#: ../gtk/gtkprogressbar.c:167
+#: ../gtk/gtkprogressbar.c:169
 msgid "The fraction of total progress to move the bouncing block when pulsed"
 msgstr "The fraction of total progress to move the bouncing block when pulsed"
 
-#: ../gtk/gtkprogressbar.c:175
+#: ../gtk/gtkprogressbar.c:177
 msgid "Text to be displayed in the progress bar"
 msgstr "Text to be displayed in the progress bar"
 
-#: ../gtk/gtkprogressbar.c:192
+#: ../gtk/gtkprogressbar.c:194
 msgid "Show text"
 msgstr "Show text"
 
-#: ../gtk/gtkprogressbar.c:193
+#: ../gtk/gtkprogressbar.c:195
 msgid "Whether the progress is shown as text."
 msgstr "Whether the progress is shown as text."
 
-#: ../gtk/gtkprogressbar.c:215
+#: ../gtk/gtkprogressbar.c:217
 msgid ""
 "The preferred place to ellipsize the string, if the progress bar does not "
 "have enough room to display the entire string, if at all."
@@ -4713,51 +4721,51 @@ msgstr ""
 "The preferred place to ellipsize the string, if the progress bar does not "
 "have enough room to display the entire string, if at all."
 
-#: ../gtk/gtkprogressbar.c:222
+#: ../gtk/gtkprogressbar.c:224
 msgid "X spacing"
 msgstr "X spacing"
 
-#: ../gtk/gtkprogressbar.c:223
+#: ../gtk/gtkprogressbar.c:225
 msgid "Extra spacing applied to the width of a progress bar."
 msgstr "Extra spacing applied to the width of a progress bar."
 
-#: ../gtk/gtkprogressbar.c:228
+#: ../gtk/gtkprogressbar.c:230
 msgid "Y spacing"
 msgstr "Y spacing"
 
-#: ../gtk/gtkprogressbar.c:229
+#: ../gtk/gtkprogressbar.c:231
 msgid "Extra spacing applied to the height of a progress bar."
 msgstr "Extra spacing applied to the height of a progress bar."
 
-#: ../gtk/gtkprogressbar.c:242
+#: ../gtk/gtkprogressbar.c:244
 msgid "Minimum horizontal bar width"
 msgstr "Minimum horizontal bar width"
 
-#: ../gtk/gtkprogressbar.c:243
+#: ../gtk/gtkprogressbar.c:245
 msgid "The minimum horizontal width of the progress bar"
 msgstr "The minimum horizontal width of the progress bar"
 
-#: ../gtk/gtkprogressbar.c:255
+#: ../gtk/gtkprogressbar.c:257
 msgid "Minimum horizontal bar height"
 msgstr "Minimum horizontal bar height"
 
-#: ../gtk/gtkprogressbar.c:256
+#: ../gtk/gtkprogressbar.c:258
 msgid "Minimum horizontal height of the progress bar"
 msgstr "Minimum horizontal height of the progress bar"
 
-#: ../gtk/gtkprogressbar.c:268
+#: ../gtk/gtkprogressbar.c:270
 msgid "Minimum vertical bar width"
 msgstr "Minimum vertical bar width"
 
-#: ../gtk/gtkprogressbar.c:269
+#: ../gtk/gtkprogressbar.c:271
 msgid "The minimum vertical width of the progress bar"
 msgstr "The minimum vertical width of the progress bar"
 
-#: ../gtk/gtkprogressbar.c:281
+#: ../gtk/gtkprogressbar.c:283
 msgid "Minimum vertical bar height"
 msgstr "Minimum vertical bar height"
 
-#: ../gtk/gtkprogressbar.c:282
+#: ../gtk/gtkprogressbar.c:284
 msgid "The minimum vertical height of the progress bar"
 msgstr "The minimum vertical height of the progress bar"
 
@@ -4773,8 +4781,8 @@ msgstr ""
 "The value returned by gtk_radio_action_get_current_value() when this action "
 "is the current action of its group."
 
-#: ../gtk/gtkradioaction.c:135 ../gtk/gtkradiobutton.c:163
-#: ../gtk/gtkradiomenuitem.c:423 ../gtk/gtkradiotoolbutton.c:85
+#: ../gtk/gtkradioaction.c:135 ../gtk/gtkradiobutton.c:164
+#: ../gtk/gtkradiomenuitem.c:427 ../gtk/gtkradiotoolbutton.c:85
 msgid "Group"
 msgstr "Group"
 
@@ -4794,11 +4802,11 @@ msgstr ""
 "The value property of the currently active member of the group to which this "
 "action belongs."
 
-#: ../gtk/gtkradiobutton.c:164
+#: ../gtk/gtkradiobutton.c:165
 msgid "The radio button whose group this widget belongs to."
 msgstr "The radio button whose group this widget belongs to."
 
-#: ../gtk/gtkradiomenuitem.c:424
+#: ../gtk/gtkradiomenuitem.c:428
 msgid "The radio menu item whose group this widget belongs to."
 msgstr "The radio menu item whose group this widget belongs to."
 
@@ -4806,19 +4814,19 @@ msgstr "The radio menu item whose group this widget belongs to."
 msgid "The radio tool button whose group this button belongs to."
 msgstr "The radio tool button whose group this button belongs to."
 
-#: ../gtk/gtkrange.c:418
+#: ../gtk/gtkrange.c:419
 msgid "The GtkAdjustment that contains the current value of this range object"
 msgstr "The GtkAdjustment that contains the current value of this range object"
 
-#: ../gtk/gtkrange.c:426
+#: ../gtk/gtkrange.c:427
 msgid "Invert direction slider moves to increase range value"
 msgstr "Invert direction slider moves to increase range value"
 
-#: ../gtk/gtkrange.c:433
+#: ../gtk/gtkrange.c:434
 msgid "Lower stepper sensitivity"
 msgstr "Lower stepper sensitivity"
 
-#: ../gtk/gtkrange.c:434
+#: ../gtk/gtkrange.c:435
 msgid ""
 "The sensitivity policy for the stepper that points to the adjustment's lower "
 "side"
@@ -4826,11 +4834,11 @@ msgstr ""
 "The sensitivity policy for the stepper that points to the adjustment's lower "
 "side"
 
-#: ../gtk/gtkrange.c:442
+#: ../gtk/gtkrange.c:443
 msgid "Upper stepper sensitivity"
 msgstr "Upper stepper sensitivity"
 
-#: ../gtk/gtkrange.c:443
+#: ../gtk/gtkrange.c:444
 msgid ""
 "The sensitivity policy for the stepper that points to the adjustment's upper "
 "side"
@@ -4838,95 +4846,95 @@ msgstr ""
 "The sensitivity policy for the stepper that points to the adjustment's upper "
 "side"
 
-#: ../gtk/gtkrange.c:460
+#: ../gtk/gtkrange.c:461
 msgid "Show Fill Level"
 msgstr "Show Fill Level"
 
-#: ../gtk/gtkrange.c:461
+#: ../gtk/gtkrange.c:462
 msgid "Whether to display a fill level indicator graphics on trough."
 msgstr "Whether to display a fill level indicator graphics on trough."
 
-#: ../gtk/gtkrange.c:477
+#: ../gtk/gtkrange.c:478
 msgid "Restrict to Fill Level"
 msgstr "Restrict to Fill Level"
 
-#: ../gtk/gtkrange.c:478
+#: ../gtk/gtkrange.c:479
 msgid "Whether to restrict the upper boundary to the fill level."
 msgstr "Whether to restrict the upper boundary to the fill level."
 
-#: ../gtk/gtkrange.c:493
+#: ../gtk/gtkrange.c:494
 msgid "Fill Level"
 msgstr "Fill Level"
 
-#: ../gtk/gtkrange.c:494
+#: ../gtk/gtkrange.c:495
 msgid "The fill level."
 msgstr "The fill level."
 
-#: ../gtk/gtkrange.c:511
+#: ../gtk/gtkrange.c:512
 msgid "Round Digits"
 msgstr "Round Digits"
 
-#: ../gtk/gtkrange.c:512
+#: ../gtk/gtkrange.c:513
 msgid "The number of digits to round the value to."
 msgstr "The number of digits to round the value to."
 
-#: ../gtk/gtkrange.c:520 ../gtk/gtkswitch.c:836
+#: ../gtk/gtkrange.c:521 ../gtk/gtkswitch.c:817
 msgid "Slider Width"
 msgstr "Slider Width"
 
-#: ../gtk/gtkrange.c:521
+#: ../gtk/gtkrange.c:522
 msgid "Width of scrollbar or scale thumb"
 msgstr "Width of scrollbar or scale thumb"
 
-#: ../gtk/gtkrange.c:528
+#: ../gtk/gtkrange.c:529
 msgid "Trough Border"
 msgstr "Trough Border"
 
-#: ../gtk/gtkrange.c:529
+#: ../gtk/gtkrange.c:530
 msgid "Spacing between thumb/steppers and outer trough bevel"
 msgstr "Spacing between thumb/steppers and outer trough bevel"
 
-#: ../gtk/gtkrange.c:536
+#: ../gtk/gtkrange.c:537
 msgid "Stepper Size"
 msgstr "Stepper Size"
 
-#: ../gtk/gtkrange.c:537
+#: ../gtk/gtkrange.c:538
 msgid "Length of step buttons at ends"
 msgstr "Length of step buttons at ends"
 
-#: ../gtk/gtkrange.c:550
+#: ../gtk/gtkrange.c:551
 msgid "Stepper Spacing"
 msgstr "Stepper Spacing"
 
-#: ../gtk/gtkrange.c:551
+#: ../gtk/gtkrange.c:552
 msgid "Spacing between step buttons and thumb"
 msgstr "Spacing between step buttons and thumb"
 
-#: ../gtk/gtkrange.c:558
+#: ../gtk/gtkrange.c:559
 msgid "Arrow X Displacement"
 msgstr "Arrow X Displacement"
 
-#: ../gtk/gtkrange.c:559
+#: ../gtk/gtkrange.c:560
 msgid ""
 "How far in the x direction to move the arrow when the button is depressed"
 msgstr ""
 "How far in the x direction to move the arrow when the button is depressed"
 
-#: ../gtk/gtkrange.c:566
+#: ../gtk/gtkrange.c:567
 msgid "Arrow Y Displacement"
 msgstr "Arrow Y Displacement"
 
-#: ../gtk/gtkrange.c:567
+#: ../gtk/gtkrange.c:568
 msgid ""
 "How far in the y direction to move the arrow when the button is depressed"
 msgstr ""
 "How far in the y direction to move the arrow when the button is depressed"
 
-#: ../gtk/gtkrange.c:583
+#: ../gtk/gtkrange.c:584
 msgid "Trough Under Steppers"
 msgstr "Trough Under Steppers"
 
-#: ../gtk/gtkrange.c:584
+#: ../gtk/gtkrange.c:585
 msgid ""
 "Whether to draw trough for full length of range or exclude the steppers and "
 "spacing"
@@ -4934,11 +4942,11 @@ msgstr ""
 "Whether to draw trough for full length of range or exclude the steppers and "
 "spacing"
 
-#: ../gtk/gtkrange.c:597
+#: ../gtk/gtkrange.c:598
 msgid "Arrow scaling"
 msgstr "Arrow scaling"
 
-#: ../gtk/gtkrange.c:598
+#: ../gtk/gtkrange.c:599
 msgid "Arrow scaling with regard to scroll button size"
 msgstr "Arrow scaling with regard to scroll button size"
 
@@ -5031,61 +5039,61 @@ msgstr "The full path to the file to be used to store and read the list"
 msgid "The size of the recently used resources list"
 msgstr "The size of the recently used resources list"
 
-#: ../gtk/gtkscalebutton.c:218
+#: ../gtk/gtkscalebutton.c:219
 msgid "The value of the scale"
 msgstr "The value of the scale"
 
-#: ../gtk/gtkscalebutton.c:228
+#: ../gtk/gtkscalebutton.c:229
 msgid "The icon size"
 msgstr "The icon size"
 
-#: ../gtk/gtkscalebutton.c:237
+#: ../gtk/gtkscalebutton.c:238
 msgid ""
 "The GtkAdjustment that contains the current value of this scale button object"
 msgstr ""
 "The GtkAdjustment that contains the current value of this scale button object"
 
-#: ../gtk/gtkscalebutton.c:265
+#: ../gtk/gtkscalebutton.c:266
 msgid "Icons"
 msgstr "Icons"
 
-#: ../gtk/gtkscalebutton.c:266
+#: ../gtk/gtkscalebutton.c:267
 msgid "List of icon names"
 msgstr "List of icon names"
 
-#: ../gtk/gtkscale.c:253
+#: ../gtk/gtkscale.c:255
 msgid "The number of decimal places that are displayed in the value"
 msgstr "The number of decimal places that are displayed in the value"
 
-#: ../gtk/gtkscale.c:262
+#: ../gtk/gtkscale.c:264
 msgid "Draw Value"
 msgstr "Draw Value"
 
-#: ../gtk/gtkscale.c:263
+#: ../gtk/gtkscale.c:265
 msgid "Whether the current value is displayed as a string next to the slider"
 msgstr "Whether the current value is displayed as a string next to the slider"
 
-#: ../gtk/gtkscale.c:270
+#: ../gtk/gtkscale.c:272
 msgid "Value Position"
 msgstr "Value Position"
 
-#: ../gtk/gtkscale.c:271
+#: ../gtk/gtkscale.c:273
 msgid "The position in which the current value is displayed"
 msgstr "The position in which the current value is displayed"
 
-#: ../gtk/gtkscale.c:278
+#: ../gtk/gtkscale.c:280
 msgid "Slider Length"
 msgstr "Slider Length"
 
-#: ../gtk/gtkscale.c:279
+#: ../gtk/gtkscale.c:281
 msgid "Length of scale's slider"
 msgstr "Length of scale's slider"
 
-#: ../gtk/gtkscale.c:287
+#: ../gtk/gtkscale.c:289
 msgid "Value spacing"
 msgstr "Value spacing"
 
-#: ../gtk/gtkscale.c:288
+#: ../gtk/gtkscale.c:290
 msgid "Space between value text and the slider/trough area"
 msgstr "Space between value text and the slider/trough area"
 
@@ -5125,29 +5133,29 @@ msgstr "How the size of the content should be determined"
 msgid "Vertical Scrollable Policy"
 msgstr "Vertical Scrollable Policy"
 
-#: ../gtk/gtkscrollbar.c:70
+#: ../gtk/gtkscrollbar.c:72
 msgid "Minimum Slider Length"
 msgstr "Minimum Slider Length"
 
-#: ../gtk/gtkscrollbar.c:71
+#: ../gtk/gtkscrollbar.c:73
 msgid "Minimum length of scrollbar slider"
 msgstr "Minimum length of scrollbar slider"
 
-#: ../gtk/gtkscrollbar.c:79
+#: ../gtk/gtkscrollbar.c:81
 msgid "Fixed slider size"
 msgstr "Fixed slider size"
 
-#: ../gtk/gtkscrollbar.c:80
+#: ../gtk/gtkscrollbar.c:82
 msgid "Don't change slider size, just lock it to the minimum length"
 msgstr "Don't change slider size, just lock it to the minimum length"
 
-#: ../gtk/gtkscrollbar.c:101
+#: ../gtk/gtkscrollbar.c:103
 msgid ""
 "Display a second backward arrow button on the opposite end of the scrollbar"
 msgstr ""
 "Display a second backward arrow button on the opposite end of the scrollbar"
 
-#: ../gtk/gtkscrollbar.c:108
+#: ../gtk/gtkscrollbar.c:110
 msgid ""
 "Display a second forward arrow button on the opposite end of the scrollbar"
 msgstr ""
@@ -5260,11 +5268,11 @@ msgstr "Draw"
 msgid "Whether the separator is drawn, or just blank"
 msgstr "Whether the separator is drawn, or just blank"
 
-#: ../gtk/gtksettings.c:322
+#: ../gtk/gtksettings.c:321
 msgid "Double Click Time"
 msgstr "Double Click Time"
 
-#: ../gtk/gtksettings.c:323
+#: ../gtk/gtksettings.c:322
 msgid ""
 "Maximum time allowed between two clicks for them to be considered a double "
 "click (in milliseconds)"
@@ -5272,11 +5280,11 @@ msgstr ""
 "Maximum time allowed between two clicks for them to be considered a double "
 "click (in milliseconds)"
 
-#: ../gtk/gtksettings.c:330
+#: ../gtk/gtksettings.c:329
 msgid "Double Click Distance"
 msgstr "Double Click Distance"
 
-#: ../gtk/gtksettings.c:331
+#: ../gtk/gtksettings.c:330
 msgid ""
 "Maximum distance allowed between two clicks for them to be considered a "
 "double click (in pixels)"
@@ -5284,35 +5292,35 @@ msgstr ""
 "Maximum distance allowed between two clicks for them to be considered a "
 "double click (in pixels)"
 
-#: ../gtk/gtksettings.c:347
+#: ../gtk/gtksettings.c:346
 msgid "Cursor Blink"
 msgstr "Cursor Blink"
 
-#: ../gtk/gtksettings.c:348
+#: ../gtk/gtksettings.c:347
 msgid "Whether the cursor should blink"
 msgstr "Whether the cursor should blink"
 
-#: ../gtk/gtksettings.c:355
+#: ../gtk/gtksettings.c:354
 msgid "Cursor Blink Time"
 msgstr "Cursor Blink Time"
 
-#: ../gtk/gtksettings.c:356
+#: ../gtk/gtksettings.c:355
 msgid "Length of the cursor blink cycle, in milliseconds"
 msgstr "Length of the cursor blink cycle, in milliseconds"
 
-#: ../gtk/gtksettings.c:375
+#: ../gtk/gtksettings.c:374
 msgid "Cursor Blink Timeout"
 msgstr "Cursor Blink Timeout"
 
-#: ../gtk/gtksettings.c:376
+#: ../gtk/gtksettings.c:375
 msgid "Time after which the cursor stops blinking, in seconds"
 msgstr "Time after which the cursor stops blinking, in seconds"
 
-#: ../gtk/gtksettings.c:383
+#: ../gtk/gtksettings.c:382
 msgid "Split Cursor"
 msgstr "Split Cursor"
 
-#: ../gtk/gtksettings.c:384
+#: ../gtk/gtksettings.c:383
 msgid ""
 "Whether two cursors should be displayed for mixed left-to-right and right-to-"
 "left text"
@@ -5320,149 +5328,149 @@ msgstr ""
 "Whether two cursors should be displayed for mixed left-to-right and right-to-"
 "left text"
 
-#: ../gtk/gtksettings.c:391
+#: ../gtk/gtksettings.c:390
 msgid "Theme Name"
 msgstr "Theme Name"
 
-#: ../gtk/gtksettings.c:392
+#: ../gtk/gtksettings.c:391
 msgid "Name of theme to load"
 msgstr "Name of theme to load"
 
-#: ../gtk/gtksettings.c:400
+#: ../gtk/gtksettings.c:399
 msgid "Icon Theme Name"
 msgstr "Icon Theme Name"
 
-#: ../gtk/gtksettings.c:401
+#: ../gtk/gtksettings.c:400
 msgid "Name of icon theme to use"
 msgstr "Name of icon theme to use"
 
-#: ../gtk/gtksettings.c:409
+#: ../gtk/gtksettings.c:408
 msgid "Fallback Icon Theme Name"
 msgstr "Fallback Icon Theme Name"
 
-#: ../gtk/gtksettings.c:410
+#: ../gtk/gtksettings.c:409
 msgid "Name of a icon theme to fall back to"
 msgstr "Name of a icon theme to fall back to"
 
-#: ../gtk/gtksettings.c:418
+#: ../gtk/gtksettings.c:417
 msgid "Key Theme Name"
 msgstr "Key Theme Name"
 
-#: ../gtk/gtksettings.c:419
+#: ../gtk/gtksettings.c:418
 msgid "Name of key theme to load"
 msgstr "Name of key theme to load"
 
-#: ../gtk/gtksettings.c:427
+#: ../gtk/gtksettings.c:426
 msgid "Menu bar accelerator"
 msgstr "Menu bar accelerator"
 
-#: ../gtk/gtksettings.c:428
+#: ../gtk/gtksettings.c:427
 msgid "Keybinding to activate the menu bar"
 msgstr "Keybinding to activate the menu bar"
 
-#: ../gtk/gtksettings.c:436
+#: ../gtk/gtksettings.c:435
 msgid "Drag threshold"
 msgstr "Drag threshold"
 
-#: ../gtk/gtksettings.c:437
+#: ../gtk/gtksettings.c:436
 msgid "Number of pixels the cursor can move before dragging"
 msgstr "Number of pixels the cursor can move before dragging"
 
-#: ../gtk/gtksettings.c:445
+#: ../gtk/gtksettings.c:444
 msgid "Font Name"
 msgstr "Font Name"
 
-#: ../gtk/gtksettings.c:446
+#: ../gtk/gtksettings.c:445
 msgid "Name of default font to use"
 msgstr "Name of default font to use"
 
-#: ../gtk/gtksettings.c:468
+#: ../gtk/gtksettings.c:467
 msgid "Icon Sizes"
 msgstr "Icon Sizes"
 
-#: ../gtk/gtksettings.c:469
+#: ../gtk/gtksettings.c:468
 msgid "List of icon sizes (gtk-menu=16,16:gtk-button=20,20..."
 msgstr "List of icon sizes (gtk-menu=16,16:gtk-button=20,20..."
 
-#: ../gtk/gtksettings.c:477
+#: ../gtk/gtksettings.c:476
 msgid "GTK Modules"
 msgstr "GTK Modules"
 
-#: ../gtk/gtksettings.c:478
+#: ../gtk/gtksettings.c:477
 msgid "List of currently active GTK modules"
 msgstr "List of currently active GTK modules"
 
-#: ../gtk/gtksettings.c:486
+#: ../gtk/gtksettings.c:485
 msgid "Xft Antialias"
 msgstr "Xft Antialias"
 
-#: ../gtk/gtksettings.c:487
+#: ../gtk/gtksettings.c:486
 msgid "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default"
 msgstr "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default"
 
-#: ../gtk/gtksettings.c:496
+#: ../gtk/gtksettings.c:495
 msgid "Xft Hinting"
 msgstr "Xft Hinting"
 
-#: ../gtk/gtksettings.c:497
+#: ../gtk/gtksettings.c:496
 msgid "Whether to hint Xft fonts; 0=no, 1=yes, -1=default"
 msgstr "Whether to hint Xft fonts; 0=no, 1=yes, -1=default"
 
-#: ../gtk/gtksettings.c:506
+#: ../gtk/gtksettings.c:505
 msgid "Xft Hint Style"
 msgstr "Xft Hint Style"
 
-#: ../gtk/gtksettings.c:507
+#: ../gtk/gtksettings.c:506
 msgid ""
 "What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull"
 msgstr ""
 "What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull"
 
-#: ../gtk/gtksettings.c:516
+#: ../gtk/gtksettings.c:515
 msgid "Xft RGBA"
 msgstr "Xft RGBA"
 
-#: ../gtk/gtksettings.c:517
+#: ../gtk/gtksettings.c:516
 msgid "Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr"
 msgstr "Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr"
 
-#: ../gtk/gtksettings.c:526
+#: ../gtk/gtksettings.c:525
 msgid "Xft DPI"
 msgstr "Xft DPI"
 
-#: ../gtk/gtksettings.c:527
+#: ../gtk/gtksettings.c:526
 msgid "Resolution for Xft, in 1024 * dots/inch. -1 to use default value"
 msgstr "Resolution for Xft, in 1024 * dots/inch. -1 to use default value"
 
-#: ../gtk/gtksettings.c:536
+#: ../gtk/gtksettings.c:535
 msgid "Cursor theme name"
 msgstr "Cursor theme name"
 
-#: ../gtk/gtksettings.c:537
+#: ../gtk/gtksettings.c:536
 msgid "Name of the cursor theme to use, or NULL to use the default theme"
 msgstr "Name of the cursor theme to use, or NULL to use the default theme"
 
-#: ../gtk/gtksettings.c:545
+#: ../gtk/gtksettings.c:544
 msgid "Cursor theme size"
 msgstr "Cursor theme size"
 
-#: ../gtk/gtksettings.c:546
+#: ../gtk/gtksettings.c:545
 msgid "Size to use for cursors, or 0 to use the default size"
 msgstr "Size to use for cursors, or 0 to use the default size"
 
-#: ../gtk/gtksettings.c:555
+#: ../gtk/gtksettings.c:554
 msgid "Alternative button order"
 msgstr "Alternative button order"
 
-#: ../gtk/gtksettings.c:556
+#: ../gtk/gtksettings.c:555
 msgid "Whether buttons in dialogs should use the alternative button order"
 msgstr "Whether buttons in dialogs should use the alternative button order"
 
-#: ../gtk/gtksettings.c:573
+#: ../gtk/gtksettings.c:572
 msgid "Alternative sort indicator direction"
 msgstr "Alternative sort indicator direction"
 
-#: ../gtk/gtksettings.c:574
+#: ../gtk/gtksettings.c:573
 msgid ""
 "Whether the direction of the sort indicators in list and tree views is "
 "inverted compared to the default (where down means ascending)"
@@ -5470,11 +5478,11 @@ msgstr ""
 "Whether the direction of the sort indicators in list and tree views is "
 "inverted compared to the default (where down means ascending)"
 
-#: ../gtk/gtksettings.c:582
+#: ../gtk/gtksettings.c:581
 msgid "Show the 'Input Methods' menu"
 msgstr "Show the 'Input Methods' menu"
 
-#: ../gtk/gtksettings.c:583
+#: ../gtk/gtksettings.c:582
 msgid ""
 "Whether the context menus of entries and text views should offer to change "
 "the input method"
@@ -5482,11 +5490,11 @@ msgstr ""
 "Whether the context menus of entries and text views should offer to change "
 "the input method"
 
-#: ../gtk/gtksettings.c:591
+#: ../gtk/gtksettings.c:590
 msgid "Show the 'Insert Unicode Control Character' menu"
 msgstr "Show the 'Insert Unicode Control Character' menu"
 
-#: ../gtk/gtksettings.c:592
+#: ../gtk/gtksettings.c:591
 msgid ""
 "Whether the context menus of entries and text views should offer to insert "
 "control characters"
@@ -5494,238 +5502,238 @@ msgstr ""
 "Whether the context menus of entries and text views should offer to insert "
 "control characters"
 
-#: ../gtk/gtksettings.c:600
+#: ../gtk/gtksettings.c:599
 msgid "Start timeout"
 msgstr "Start timeout"
 
-#: ../gtk/gtksettings.c:601
+#: ../gtk/gtksettings.c:600
 msgid "Starting value for timeouts, when button is pressed"
 msgstr "Starting value for timeouts, when button is pressed"
 
-#: ../gtk/gtksettings.c:610
+#: ../gtk/gtksettings.c:609
 msgid "Repeat timeout"
 msgstr "Repeat timeout"
 
-#: ../gtk/gtksettings.c:611
+#: ../gtk/gtksettings.c:610
 msgid "Repeat value for timeouts, when button is pressed"
 msgstr "Repeat value for timeouts, when button is pressed"
 
-#: ../gtk/gtksettings.c:620
+#: ../gtk/gtksettings.c:619
 msgid "Expand timeout"
 msgstr "Expand timeout"
 
-#: ../gtk/gtksettings.c:621
+#: ../gtk/gtksettings.c:620
 msgid "Expand value for timeouts, when a widget is expanding a new region"
 msgstr "Expand value for timeouts, when a widget is expanding a new region"
 
-#: ../gtk/gtksettings.c:656
+#: ../gtk/gtksettings.c:655
 msgid "Color scheme"
 msgstr "Color scheme"
 
-#: ../gtk/gtksettings.c:657
+#: ../gtk/gtksettings.c:656
 msgid "A palette of named colors for use in themes"
 msgstr "A palette of named colors for use in themes"
 
-#: ../gtk/gtksettings.c:666
+#: ../gtk/gtksettings.c:665
 msgid "Enable Animations"
 msgstr "Enable Animations"
 
-#: ../gtk/gtksettings.c:667
+#: ../gtk/gtksettings.c:666
 msgid "Whether to enable toolkit-wide animations."
 msgstr "Whether to enable toolkit-wide animations."
 
-#: ../gtk/gtksettings.c:685
+#: ../gtk/gtksettings.c:684
 msgid "Enable Touchscreen Mode"
 msgstr "Enable Touchscreen Mode"
 
-#: ../gtk/gtksettings.c:686
+#: ../gtk/gtksettings.c:685
 msgid "When TRUE, there are no motion notify events delivered on this screen"
 msgstr "When TRUE, there are no motion notify events delivered on this screen"
 
-#: ../gtk/gtksettings.c:703
+#: ../gtk/gtksettings.c:702
 msgid "Tooltip timeout"
 msgstr "Tooltip timeout"
 
-#: ../gtk/gtksettings.c:704
+#: ../gtk/gtksettings.c:703
 msgid "Timeout before tooltip is shown"
 msgstr "Timeout before tooltip is shown"
 
-#: ../gtk/gtksettings.c:729
+#: ../gtk/gtksettings.c:728
 msgid "Tooltip browse timeout"
 msgstr "Tooltip browse timeout"
 
-#: ../gtk/gtksettings.c:730
+#: ../gtk/gtksettings.c:729
 msgid "Timeout before tooltip is shown when browse mode is enabled"
 msgstr "Timeout before tooltip is shown when browse mode is enabled"
 
-#: ../gtk/gtksettings.c:751
+#: ../gtk/gtksettings.c:750
 msgid "Tooltip browse mode timeout"
 msgstr "Tooltip browse mode timeout"
 
-#: ../gtk/gtksettings.c:752
+#: ../gtk/gtksettings.c:751
 msgid "Timeout after which browse mode is disabled"
 msgstr "Timeout after which browse mode is disabled"
 
-#: ../gtk/gtksettings.c:771
+#: ../gtk/gtksettings.c:770
 msgid "Keynav Cursor Only"
 msgstr "Keynav Cursor Only"
 
-#: ../gtk/gtksettings.c:772
+#: ../gtk/gtksettings.c:771
 msgid "When TRUE, there are only cursor keys available to navigate widgets"
 msgstr "When TRUE, there are only cursor keys available to navigate widgets"
 
-#: ../gtk/gtksettings.c:789
+#: ../gtk/gtksettings.c:788
 msgid "Keynav Wrap Around"
 msgstr "Keynav Wrap Around"
 
-#: ../gtk/gtksettings.c:790
+#: ../gtk/gtksettings.c:789
 msgid "Whether to wrap around when keyboard-navigating widgets"
 msgstr "Whether to wrap around when keyboard-navigating widgets"
 
-#: ../gtk/gtksettings.c:810
+#: ../gtk/gtksettings.c:809
 msgid "Error Bell"
 msgstr "Error Bell"
 
-#: ../gtk/gtksettings.c:811
+#: ../gtk/gtksettings.c:810
 msgid "When TRUE, keyboard navigation and other errors will cause a beep"
 msgstr "When TRUE, keyboard navigation and other errors will cause a beep"
 
-#: ../gtk/gtksettings.c:828
+#: ../gtk/gtksettings.c:827
 msgid "Color Hash"
 msgstr "Color Hash"
 
-#: ../gtk/gtksettings.c:829
+#: ../gtk/gtksettings.c:828
 msgid "A hash table representation of the color scheme."
 msgstr "A hash table representation of the color scheme."
 
-#: ../gtk/gtksettings.c:837
+#: ../gtk/gtksettings.c:836
 msgid "Default file chooser backend"
 msgstr "Default file chooser backend"
 
-#: ../gtk/gtksettings.c:838
+#: ../gtk/gtksettings.c:837
 msgid "Name of the GtkFileChooser backend to use by default"
 msgstr "Name of the GtkFileChooser backend to use by default"
 
-#: ../gtk/gtksettings.c:855
+#: ../gtk/gtksettings.c:854
 msgid "Default print backend"
 msgstr "Default print backend"
 
-#: ../gtk/gtksettings.c:856
+#: ../gtk/gtksettings.c:855
 msgid "List of the GtkPrintBackend backends to use by default"
 msgstr "List of the GtkPrintBackend backends to use by default"
 
-#: ../gtk/gtksettings.c:879
+#: ../gtk/gtksettings.c:878
 msgid "Default command to run when displaying a print preview"
 msgstr "Default command to run when displaying a print preview"
 
-#: ../gtk/gtksettings.c:880
+#: ../gtk/gtksettings.c:879
 msgid "Command to run when displaying a print preview"
 msgstr "Command to run when displaying a print preview"
 
-#: ../gtk/gtksettings.c:896
+#: ../gtk/gtksettings.c:895
 msgid "Enable Mnemonics"
 msgstr "Enable Mnemonics"
 
-#: ../gtk/gtksettings.c:897
+#: ../gtk/gtksettings.c:896
 msgid "Whether labels should have mnemonics"
 msgstr "Whether labels should have mnemonics"
 
-#: ../gtk/gtksettings.c:913
+#: ../gtk/gtksettings.c:912
 msgid "Enable Accelerators"
 msgstr "Enable Accelerators"
 
-#: ../gtk/gtksettings.c:914
+#: ../gtk/gtksettings.c:913
 msgid "Whether menu items should have accelerators"
 msgstr "Whether menu items should have accelerators"
 
-#: ../gtk/gtksettings.c:931
+#: ../gtk/gtksettings.c:930
 msgid "Recent Files Limit"
 msgstr "Recent Files Limit"
 
-#: ../gtk/gtksettings.c:932
+#: ../gtk/gtksettings.c:931
 msgid "Number of recently used files"
 msgstr "Number of recently used files"
 
-#: ../gtk/gtksettings.c:950
+#: ../gtk/gtksettings.c:949
 msgid "Default IM module"
 msgstr "Default IM module"
 
-#: ../gtk/gtksettings.c:951
+#: ../gtk/gtksettings.c:950
 msgid "Which IM module should be used by default"
 msgstr "Which IM module should be used by default"
 
-#: ../gtk/gtksettings.c:969
+#: ../gtk/gtksettings.c:968
 msgid "Recent Files Max Age"
 msgstr "Recent Files Max Age"
 
-#: ../gtk/gtksettings.c:970
+#: ../gtk/gtksettings.c:969
 msgid "Maximum age of recently used files, in days"
 msgstr "Maximum age of recently used files, in days"
 
-#: ../gtk/gtksettings.c:979
+#: ../gtk/gtksettings.c:978
 msgid "Fontconfig configuration timestamp"
 msgstr "Fontconfig configuration timestamp"
 
-#: ../gtk/gtksettings.c:980
+#: ../gtk/gtksettings.c:979
 msgid "Timestamp of current fontconfig configuration"
 msgstr "Timestamp of current fontconfig configuration"
 
-#: ../gtk/gtksettings.c:1002
+#: ../gtk/gtksettings.c:1001
 msgid "Sound Theme Name"
 msgstr "Sound Theme Name"
 
-#: ../gtk/gtksettings.c:1003
+#: ../gtk/gtksettings.c:1002
 msgid "XDG sound theme name"
 msgstr "XDG sound theme name"
 
 #. Translators: this means sounds that are played as feedback to user input
-#: ../gtk/gtksettings.c:1025
+#: ../gtk/gtksettings.c:1024
 msgid "Audible Input Feedback"
 msgstr "Audible Input Feedback"
 
-#: ../gtk/gtksettings.c:1026
+#: ../gtk/gtksettings.c:1025
 msgid "Whether to play event sounds as feedback to user input"
 msgstr "Whether to play event sounds as feedback to user input"
 
-#: ../gtk/gtksettings.c:1047
+#: ../gtk/gtksettings.c:1046
 msgid "Enable Event Sounds"
 msgstr "Enable Event Sounds"
 
-#: ../gtk/gtksettings.c:1048
+#: ../gtk/gtksettings.c:1047
 msgid "Whether to play any event sounds at all"
 msgstr "Whether to play any event sounds at all"
 
-#: ../gtk/gtksettings.c:1063
+#: ../gtk/gtksettings.c:1062
 msgid "Enable Tooltips"
 msgstr "Enable Tooltips"
 
-#: ../gtk/gtksettings.c:1064
+#: ../gtk/gtksettings.c:1063
 msgid "Whether tooltips should be shown on widgets"
 msgstr "Whether tooltips should be shown on widgets"
 
-#: ../gtk/gtksettings.c:1077
+#: ../gtk/gtksettings.c:1076
 msgid "Toolbar style"
 msgstr "Toolbar style"
 
-#: ../gtk/gtksettings.c:1078
+#: ../gtk/gtksettings.c:1077
 msgid ""
 "Whether default toolbars have text only, text and icons, icons only, etc."
 msgstr ""
 "Whether default toolbars have text only, text and icons, icons only, etc."
 
-#: ../gtk/gtksettings.c:1092
+#: ../gtk/gtksettings.c:1091
 msgid "Toolbar Icon Size"
 msgstr "Toolbar Icon Size"
 
-#: ../gtk/gtksettings.c:1093
+#: ../gtk/gtksettings.c:1092
 msgid "The size of icons in default toolbars."
 msgstr "The size of icons in default toolbars."
 
-#: ../gtk/gtksettings.c:1110
+#: ../gtk/gtksettings.c:1109
 msgid "Auto Mnemonics"
 msgstr "Auto Mnemonics"
 
-#: ../gtk/gtksettings.c:1111
+#: ../gtk/gtksettings.c:1110
 msgid ""
 "Whether mnemonics should be automatically shown and hidden when the user "
 "presses the mnemonic activator."
@@ -5733,59 +5741,59 @@ msgstr ""
 "Whether mnemonics should be automatically shown and hidden when the user "
 "presses the mnemonic activator."
 
-#: ../gtk/gtksettings.c:1136
+#: ../gtk/gtksettings.c:1135
 msgid "Application prefers a dark theme"
 msgstr "Application prefers a dark theme"
 
-#: ../gtk/gtksettings.c:1137
+#: ../gtk/gtksettings.c:1136
 msgid "Whether the application prefers to have a dark theme."
 msgstr "Whether the application prefers to have a dark theme."
 
-#: ../gtk/gtksettings.c:1152
+#: ../gtk/gtksettings.c:1151
 msgid "Show button images"
 msgstr "Show button images"
 
-#: ../gtk/gtksettings.c:1153
+#: ../gtk/gtksettings.c:1152
 msgid "Whether images should be shown on buttons"
 msgstr "Whether images should be shown on buttons"
 
-#: ../gtk/gtksettings.c:1161 ../gtk/gtksettings.c:1255
+#: ../gtk/gtksettings.c:1160 ../gtk/gtksettings.c:1254
 msgid "Select on focus"
 msgstr "Select on focus"
 
-#: ../gtk/gtksettings.c:1162
+#: ../gtk/gtksettings.c:1161
 msgid "Whether to select the contents of an entry when it is focused"
 msgstr "Whether to select the contents of an entry when it is focused"
 
-#: ../gtk/gtksettings.c:1179
+#: ../gtk/gtksettings.c:1178
 msgid "Password Hint Timeout"
 msgstr "Password Hint Timeout"
 
-#: ../gtk/gtksettings.c:1180
+#: ../gtk/gtksettings.c:1179
 msgid "How long to show the last input character in hidden entries"
 msgstr "How long to show the last input character in hidden entries"
 
-#: ../gtk/gtksettings.c:1189
+#: ../gtk/gtksettings.c:1188
 msgid "Show menu images"
 msgstr "Show menu images"
 
-#: ../gtk/gtksettings.c:1190
+#: ../gtk/gtksettings.c:1189
 msgid "Whether images should be shown in menus"
 msgstr "Whether images should be shown in menus"
 
-#: ../gtk/gtksettings.c:1198
+#: ../gtk/gtksettings.c:1197
 msgid "Delay before drop down menus appear"
 msgstr "Delay before drop down menus appear"
 
-#: ../gtk/gtksettings.c:1199
+#: ../gtk/gtksettings.c:1198
 msgid "Delay before the submenus of a menu bar appear"
 msgstr "Delay before the submenus of a menu bar appear"
 
-#: ../gtk/gtksettings.c:1216
+#: ../gtk/gtksettings.c:1215
 msgid "Scrolled Window Placement"
 msgstr "Scrolled Window Placement"
 
-#: ../gtk/gtksettings.c:1217
+#: ../gtk/gtksettings.c:1216
 msgid ""
 "Where the contents of scrolled windows are located with respect to the "
 "scrollbars, if not overridden by the scrolled window's own placement."
@@ -5793,31 +5801,31 @@ msgstr ""
 "Where the contents of scrolled windows are located with respect to the "
 "scrollbars, if not overridden by the scrolled window's own placement."
 
-#: ../gtk/gtksettings.c:1226
+#: ../gtk/gtksettings.c:1225
 msgid "Can change accelerators"
 msgstr "Can change accelerators"
 
-#: ../gtk/gtksettings.c:1227
+#: ../gtk/gtksettings.c:1226
 msgid ""
 "Whether menu accelerators can be changed by pressing a key over the menu item"
 msgstr ""
 "Whether menu accelerators can be changed by pressing a key over the menu item"
 
-#: ../gtk/gtksettings.c:1235
+#: ../gtk/gtksettings.c:1234
 msgid "Delay before submenus appear"
 msgstr "Delay before submenus appear"
 
-#: ../gtk/gtksettings.c:1236
+#: ../gtk/gtksettings.c:1235
 msgid ""
 "Minimum time the pointer must stay over a menu item before the submenu appear"
 msgstr ""
 "Minimum time the pointer must stay over a menu item before the submenu appear"
 
-#: ../gtk/gtksettings.c:1245
+#: ../gtk/gtksettings.c:1244
 msgid "Delay before hiding a submenu"
 msgstr "Delay before hiding a submenu"
 
-#: ../gtk/gtksettings.c:1246
+#: ../gtk/gtksettings.c:1245
 msgid ""
 "The time before hiding a submenu when the pointer is moving towards the "
 "submenu"
@@ -5825,32 +5833,32 @@ msgstr ""
 "The time before hiding a submenu when the pointer is moving towards the "
 "submenu"
 
-#: ../gtk/gtksettings.c:1256
+#: ../gtk/gtksettings.c:1255
 msgid "Whether to select the contents of a selectable label when it is focused"
 msgstr ""
 "Whether to select the contents of a selectable label when it is focused"
 
-#: ../gtk/gtksettings.c:1264
+#: ../gtk/gtksettings.c:1263
 msgid "Custom palette"
 msgstr "Custom palette"
 
-#: ../gtk/gtksettings.c:1265
+#: ../gtk/gtksettings.c:1264
 msgid "Palette to use in the color selector"
 msgstr "Palette to use in the color selector"
 
-#: ../gtk/gtksettings.c:1273
+#: ../gtk/gtksettings.c:1272
 msgid "IM Preedit style"
 msgstr "IM Preedit style"
 
-#: ../gtk/gtksettings.c:1274
+#: ../gtk/gtksettings.c:1273
 msgid "How to draw the input method preedit string"
 msgstr "How to draw the input method preedit string"
 
-#: ../gtk/gtksettings.c:1283
+#: ../gtk/gtksettings.c:1282
 msgid "IM Status style"
 msgstr "IM Status style"
 
-#: ../gtk/gtksettings.c:1284
+#: ../gtk/gtksettings.c:1283
 msgid "How to draw the input method statusbar"
 msgstr "How to draw the input method statusbar"
 
@@ -5876,15 +5884,15 @@ msgid ""
 msgstr ""
 "If TRUE, unmapped widgets are ignored when determining the size of the group"
 
-#: ../gtk/gtkspinbutton.c:329
+#: ../gtk/gtkspinbutton.c:331
 msgid "Climb Rate"
 msgstr "Climb Rate"
 
-#: ../gtk/gtkspinbutton.c:349
+#: ../gtk/gtkspinbutton.c:351
 msgid "Snap to Ticks"
 msgstr "Snap to Ticks"
 
-#: ../gtk/gtkspinbutton.c:350
+#: ../gtk/gtkspinbutton.c:352
 msgid ""
 "Whether erroneous values are automatically changed to a spin button's "
 "nearest step increment"
@@ -5892,45 +5900,45 @@ msgstr ""
 "Whether erroneous values are automatically changed to a spin button's "
 "nearest step increment"
 
-#: ../gtk/gtkspinbutton.c:357
+#: ../gtk/gtkspinbutton.c:359
 msgid "Numeric"
 msgstr "Numeric"
 
-#: ../gtk/gtkspinbutton.c:358
+#: ../gtk/gtkspinbutton.c:360
 msgid "Whether non-numeric characters should be ignored"
 msgstr "Whether non-numeric characters should be ignored"
 
-#: ../gtk/gtkspinbutton.c:365
+#: ../gtk/gtkspinbutton.c:367
 msgid "Wrap"
 msgstr "Wrap"
 
-#: ../gtk/gtkspinbutton.c:366
+#: ../gtk/gtkspinbutton.c:368
 msgid "Whether a spin button should wrap upon reaching its limits"
 msgstr "Whether a spin button should wrap upon reaching its limits"
 
-#: ../gtk/gtkspinbutton.c:373
+#: ../gtk/gtkspinbutton.c:375
 msgid "Update Policy"
 msgstr "Update Policy"
 
-#: ../gtk/gtkspinbutton.c:374
+#: ../gtk/gtkspinbutton.c:376
 msgid ""
 "Whether the spin button should update always, or only when the value is legal"
 msgstr ""
 "Whether the spin button should update always, or only when the value is legal"
 
-#: ../gtk/gtkspinbutton.c:383
+#: ../gtk/gtkspinbutton.c:385
 msgid "Reads the current value, or sets a new value"
 msgstr "Reads the current value, or sets a new value"
 
-#: ../gtk/gtkspinbutton.c:392
+#: ../gtk/gtkspinbutton.c:394
 msgid "Style of bevel around the spin button"
 msgstr "Style of bevel around the spin button"
 
-#: ../gtk/gtkspinner.c:119
+#: ../gtk/gtkspinner.c:116
 msgid "Whether the spinner is active"
 msgstr "Whether the spinner is active"
 
-#: ../gtk/gtkstatusbar.c:182
+#: ../gtk/gtkstatusbar.c:183
 msgid "Style of bevel around the statusbar text"
 msgstr "Style of bevel around the statusbar text"
 
@@ -5954,7 +5962,7 @@ msgstr "Whether the status icon is embedded"
 msgid "The orientation of the tray"
 msgstr "The orientation of the tray"
 
-#: ../gtk/gtkstatusicon.c:370 ../gtk/gtkwidget.c:1073
+#: ../gtk/gtkstatusicon.c:370 ../gtk/gtkwidget.c:1089
 msgid "Has tooltip"
 msgstr "Has tooltip"
 
@@ -5962,15 +5970,15 @@ msgstr "Has tooltip"
 msgid "Whether this tray icon has a tooltip"
 msgstr "Whether this tray icon has a tooltip"
 
-#: ../gtk/gtkstatusicon.c:396 ../gtk/gtkwidget.c:1094
+#: ../gtk/gtkstatusicon.c:396 ../gtk/gtkwidget.c:1110
 msgid "Tooltip Text"
 msgstr "Tooltip Text"
 
-#: ../gtk/gtkstatusicon.c:397 ../gtk/gtkwidget.c:1095 ../gtk/gtkwidget.c:1116
+#: ../gtk/gtkstatusicon.c:397 ../gtk/gtkwidget.c:1111 ../gtk/gtkwidget.c:1132
 msgid "The contents of the tooltip for this widget"
 msgstr "The contents of the tooltip for this widget"
 
-#: ../gtk/gtkstatusicon.c:420 ../gtk/gtkwidget.c:1115
+#: ../gtk/gtkstatusicon.c:420 ../gtk/gtkwidget.c:1131
 msgid "Tooltip markup"
 msgstr "Tooltip markup"
 
@@ -5990,23 +5998,23 @@ msgstr "Style context"
 msgid "GtkStyleContext to get style from"
 msgstr "GtkStyleContext to get style from"
 
-#: ../gtk/gtkstylecontext.c:545
+#: ../gtk/gtkstylecontext.c:432
 msgid "The associated GdkScreen"
 msgstr "The associated GdkScreen"
 
-#: ../gtk/gtkstylecontext.c:551
+#: ../gtk/gtkstylecontext.c:438
 msgid "Direction"
 msgstr "Direction"
 
-#: ../gtk/gtkstylecontext.c:552 ../gtk/gtktexttag.c:269
+#: ../gtk/gtkstylecontext.c:439 ../gtk/gtktexttag.c:269
 msgid "Text direction"
 msgstr "Text direction"
 
-#: ../gtk/gtkswitch.c:802
+#: ../gtk/gtkswitch.c:784
 msgid "Whether the switch is on or off"
 msgstr "Whether the switch is on or off"
 
-#: ../gtk/gtkswitch.c:837
+#: ../gtk/gtkswitch.c:818
 msgid "The minimum width of the handle"
 msgstr "The minimum width of the handle"
 
@@ -6216,7 +6224,7 @@ msgstr ""
 "adapts to theme changes etc. so is recommended. Pango predefines some scales "
 "such as PANGO_SCALE_X_LARGE"
 
-#: ../gtk/gtktexttag.c:387 ../gtk/gtktextview.c:705
+#: ../gtk/gtktexttag.c:387 ../gtk/gtktextview.c:704
 msgid "Left, right, or center justification"
 msgstr "Left, right, or center justification"
 
@@ -6232,7 +6240,7 @@ msgstr ""
 msgid "Left margin"
 msgstr "Left margin"
 
-#: ../gtk/gtktexttag.c:414 ../gtk/gtktextview.c:714
+#: ../gtk/gtktexttag.c:414 ../gtk/gtktextview.c:713
 msgid "Width of the left margin in pixels"
 msgstr "Width of the left margin in pixels"
 
@@ -6240,15 +6248,15 @@ msgstr "Width of the left margin in pixels"
 msgid "Right margin"
 msgstr "Right margin"
 
-#: ../gtk/gtktexttag.c:424 ../gtk/gtktextview.c:724
+#: ../gtk/gtktexttag.c:424 ../gtk/gtktextview.c:723
 msgid "Width of the right margin in pixels"
 msgstr "Width of the right margin in pixels"
 
-#: ../gtk/gtktexttag.c:434 ../gtk/gtktextview.c:733
+#: ../gtk/gtktexttag.c:434 ../gtk/gtktextview.c:732
 msgid "Indent"
 msgstr "Indent"
 
-#: ../gtk/gtktexttag.c:435 ../gtk/gtktextview.c:734
+#: ../gtk/gtktexttag.c:435 ../gtk/gtktextview.c:733
 msgid "Amount to indent the paragraph, in pixels"
 msgstr "Amount to indent the paragraph, in pixels"
 
@@ -6264,7 +6272,7 @@ msgstr ""
 msgid "Pixels above lines"
 msgstr "Pixels above lines"
 
-#: ../gtk/gtktexttag.c:456 ../gtk/gtktextview.c:658
+#: ../gtk/gtktexttag.c:456 ../gtk/gtktextview.c:657
 msgid "Pixels of blank space above paragraphs"
 msgstr "Pixels of blank space above paragraphs"
 
@@ -6272,7 +6280,7 @@ msgstr "Pixels of blank space above paragraphs"
 msgid "Pixels below lines"
 msgstr "Pixels below lines"
 
-#: ../gtk/gtktexttag.c:466 ../gtk/gtktextview.c:668
+#: ../gtk/gtktexttag.c:466 ../gtk/gtktextview.c:667
 msgid "Pixels of blank space below paragraphs"
 msgstr "Pixels of blank space below paragraphs"
 
@@ -6280,21 +6288,21 @@ msgstr "Pixels of blank space below paragraphs"
 msgid "Pixels inside wrap"
 msgstr "Pixels inside wrap"
 
-#: ../gtk/gtktexttag.c:476 ../gtk/gtktextview.c:678
+#: ../gtk/gtktexttag.c:476 ../gtk/gtktextview.c:677
 msgid "Pixels of blank space between wrapped lines in a paragraph"
 msgstr "Pixels of blank space between wrapped lines in a paragraph"
 
-#: ../gtk/gtktexttag.c:503 ../gtk/gtktextview.c:696
+#: ../gtk/gtktexttag.c:503 ../gtk/gtktextview.c:695
 msgid ""
 "Whether to wrap lines never, at word boundaries, or at character boundaries"
 msgstr ""
 "Whether to wrap lines never, at word boundaries, or at character boundaries"
 
-#: ../gtk/gtktexttag.c:512 ../gtk/gtktextview.c:743
+#: ../gtk/gtktexttag.c:512 ../gtk/gtktextview.c:742
 msgid "Tabs"
 msgstr "Tabs"
 
-#: ../gtk/gtktexttag.c:513 ../gtk/gtktextview.c:744
+#: ../gtk/gtktexttag.c:513 ../gtk/gtktextview.c:743
 msgid "Custom tabs for this text"
 msgstr "Custom tabs for this text"
 
@@ -6430,67 +6438,67 @@ msgstr "Paragraph background set"
 msgid "Whether this tag affects the paragraph background color"
 msgstr "Whether this tag affects the paragraph background color"
 
-#: ../gtk/gtktextview.c:657
+#: ../gtk/gtktextview.c:656
 msgid "Pixels Above Lines"
 msgstr "Pixels Above Lines"
 
-#: ../gtk/gtktextview.c:667
+#: ../gtk/gtktextview.c:666
 msgid "Pixels Below Lines"
 msgstr "Pixels Below Lines"
 
-#: ../gtk/gtktextview.c:677
+#: ../gtk/gtktextview.c:676
 msgid "Pixels Inside Wrap"
 msgstr "Pixels Inside Wrap"
 
-#: ../gtk/gtktextview.c:695
+#: ../gtk/gtktextview.c:694
 msgid "Wrap Mode"
 msgstr "Wrap Mode"
 
-#: ../gtk/gtktextview.c:713
+#: ../gtk/gtktextview.c:712
 msgid "Left Margin"
 msgstr "Left Margin"
 
-#: ../gtk/gtktextview.c:723
+#: ../gtk/gtktextview.c:722
 msgid "Right Margin"
 msgstr "Right Margin"
 
-#: ../gtk/gtktextview.c:751
+#: ../gtk/gtktextview.c:750
 msgid "Cursor Visible"
 msgstr "Cursor Visible"
 
-#: ../gtk/gtktextview.c:752
+#: ../gtk/gtktextview.c:751
 msgid "If the insertion cursor is shown"
 msgstr "If the insertion cursor is shown"
 
-#: ../gtk/gtktextview.c:759
+#: ../gtk/gtktextview.c:758
 msgid "Buffer"
 msgstr "Buffer"
 
-#: ../gtk/gtktextview.c:760
+#: ../gtk/gtktextview.c:759
 msgid "The buffer which is displayed"
 msgstr "The buffer which is displayed"
 
-#: ../gtk/gtktextview.c:768
+#: ../gtk/gtktextview.c:767
 msgid "Whether entered text overwrites existing contents"
 msgstr "Whether entered text overwrites existing contents"
 
-#: ../gtk/gtktextview.c:775
+#: ../gtk/gtktextview.c:774
 msgid "Accepts tab"
 msgstr "Accepts tab"
 
-#: ../gtk/gtktextview.c:776
+#: ../gtk/gtktextview.c:775
 msgid "Whether Tab will result in a tab character being entered"
 msgstr "Whether Tab will result in a tab character being entered"
 
-#: ../gtk/gtktextview.c:811
+#: ../gtk/gtktextview.c:810
 msgid "Error underline color"
 msgstr "Error underline color"
 
-#: ../gtk/gtktextview.c:812
+#: ../gtk/gtktextview.c:811
 msgid "Color with which to draw error-indication underlines"
 msgstr "Color with which to draw error-indication underlines"
 
-#: ../gtk/gtkthemingengine.c:258
+#: ../gtk/gtkthemingengine.c:259
 msgid "Theming engine name"
 msgstr "Theming engine name"
 
@@ -6506,95 +6514,95 @@ msgstr "Whether the proxies for this action look like radio action proxies"
 msgid "Whether the toggle action should be active"
 msgstr "Whether the toggle action should be active"
 
-#: ../gtk/gtktogglebutton.c:178 ../gtk/gtktoggletoolbutton.c:128
+#: ../gtk/gtktogglebutton.c:179 ../gtk/gtktoggletoolbutton.c:128
 msgid "If the toggle button should be pressed in"
 msgstr "If the toggle button should be pressed in"
 
-#: ../gtk/gtktogglebutton.c:186
+#: ../gtk/gtktogglebutton.c:187
 msgid "If the toggle button is in an \"in between\" state"
 msgstr "If the toggle button is in an \"in between\" state"
 
-#: ../gtk/gtktogglebutton.c:193
+#: ../gtk/gtktogglebutton.c:194
 msgid "Draw Indicator"
 msgstr "Draw Indicator"
 
-#: ../gtk/gtktogglebutton.c:194
+#: ../gtk/gtktogglebutton.c:195
 msgid "If the toggle part of the button is displayed"
 msgstr "If the toggle part of the button is displayed"
 
-#: ../gtk/gtktoolbar.c:492 ../gtk/gtktoolpalette.c:1036
+#: ../gtk/gtktoolbar.c:499 ../gtk/gtktoolpalette.c:1038
 msgid "Toolbar Style"
 msgstr "Toolbar Style"
 
-#: ../gtk/gtktoolbar.c:493
+#: ../gtk/gtktoolbar.c:500
 msgid "How to draw the toolbar"
 msgstr "How to draw the toolbar"
 
-#: ../gtk/gtktoolbar.c:500
+#: ../gtk/gtktoolbar.c:507
 msgid "Show Arrow"
 msgstr "Show Arrow"
 
-#: ../gtk/gtktoolbar.c:501
+#: ../gtk/gtktoolbar.c:508
 msgid "If an arrow should be shown if the toolbar doesn't fit"
 msgstr "If an arrow should be shown if the toolbar doesn't fit"
 
-#: ../gtk/gtktoolbar.c:522
+#: ../gtk/gtktoolbar.c:529
 msgid "Size of icons in this toolbar"
 msgstr "Size of icons in this toolbar"
 
-#: ../gtk/gtktoolbar.c:537 ../gtk/gtktoolpalette.c:1022
+#: ../gtk/gtktoolbar.c:544 ../gtk/gtktoolpalette.c:1024
 msgid "Icon size set"
 msgstr "Icon size set"
 
-#: ../gtk/gtktoolbar.c:538 ../gtk/gtktoolpalette.c:1023
+#: ../gtk/gtktoolbar.c:545 ../gtk/gtktoolpalette.c:1025
 msgid "Whether the icon-size property has been set"
 msgstr "Whether the icon-size property has been set"
 
-#: ../gtk/gtktoolbar.c:547
+#: ../gtk/gtktoolbar.c:554
 msgid "Whether the item should receive extra space when the toolbar grows"
 msgstr "Whether the item should receive extra space when the toolbar grows"
 
-#: ../gtk/gtktoolbar.c:555 ../gtk/gtktoolitemgroup.c:1645
+#: ../gtk/gtktoolbar.c:562 ../gtk/gtktoolitemgroup.c:1646
 msgid "Whether the item should be the same size as other homogeneous items"
 msgstr "Whether the item should be the same size as other homogeneous items"
 
-#: ../gtk/gtktoolbar.c:562
+#: ../gtk/gtktoolbar.c:569
 msgid "Spacer size"
 msgstr "Spacer size"
 
-#: ../gtk/gtktoolbar.c:563
+#: ../gtk/gtktoolbar.c:570
 msgid "Size of spacers"
 msgstr "Size of spacers"
 
-#: ../gtk/gtktoolbar.c:572
+#: ../gtk/gtktoolbar.c:579
 msgid "Amount of border space between the toolbar shadow and the buttons"
 msgstr "Amount of border space between the toolbar shadow and the buttons"
 
-#: ../gtk/gtktoolbar.c:580
+#: ../gtk/gtktoolbar.c:587
 msgid "Maximum child expand"
 msgstr "Maximum child expand"
 
-#: ../gtk/gtktoolbar.c:581
+#: ../gtk/gtktoolbar.c:588
 msgid "Maximum amount of space an expandable item will be given"
 msgstr "Maximum amount of space an expandable item will be given"
 
-#: ../gtk/gtktoolbar.c:589
+#: ../gtk/gtktoolbar.c:596
 msgid "Space style"
 msgstr "Space style"
 
-#: ../gtk/gtktoolbar.c:590
+#: ../gtk/gtktoolbar.c:597
 msgid "Whether spacers are vertical lines or just blank"
 msgstr "Whether spacers are vertical lines or just blank"
 
-#: ../gtk/gtktoolbar.c:597
+#: ../gtk/gtktoolbar.c:604
 msgid "Button relief"
 msgstr "Button relief"
 
-#: ../gtk/gtktoolbar.c:598
+#: ../gtk/gtktoolbar.c:605
 msgid "Type of bevel around toolbar buttons"
 msgstr "Type of bevel around toolbar buttons"
 
-#: ../gtk/gtktoolbar.c:605
+#: ../gtk/gtktoolbar.c:612
 msgid "Style of bevel around the toolbar"
 msgstr "Style of bevel around the toolbar"
 
@@ -6654,83 +6662,83 @@ msgstr ""
 "Whether the toolbar item is considered important. When TRUE, toolbar buttons "
 "show text in GTK_TOOLBAR_BOTH_HORIZ mode"
 
-#: ../gtk/gtktoolitemgroup.c:1592
+#: ../gtk/gtktoolitemgroup.c:1593
 msgid "The human-readable title of this item group"
 msgstr "The human-readable title of this item group"
 
-#: ../gtk/gtktoolitemgroup.c:1599
+#: ../gtk/gtktoolitemgroup.c:1600
 msgid "A widget to display in place of the usual label"
 msgstr "A widget to display in place of the usual label"
 
-#: ../gtk/gtktoolitemgroup.c:1605
+#: ../gtk/gtktoolitemgroup.c:1606
 msgid "Collapsed"
 msgstr "Collapsed"
 
-#: ../gtk/gtktoolitemgroup.c:1606
+#: ../gtk/gtktoolitemgroup.c:1607
 msgid "Whether the group has been collapsed and items are hidden"
 msgstr "Whether the group has been collapsed and items are hidden"
 
-#: ../gtk/gtktoolitemgroup.c:1612
+#: ../gtk/gtktoolitemgroup.c:1613
 msgid "ellipsize"
 msgstr "ellipsize"
 
-#: ../gtk/gtktoolitemgroup.c:1613
+#: ../gtk/gtktoolitemgroup.c:1614
 msgid "Ellipsize for item group headers"
 msgstr "Ellipsize for item group headers"
 
-#: ../gtk/gtktoolitemgroup.c:1619
+#: ../gtk/gtktoolitemgroup.c:1620
 msgid "Header Relief"
 msgstr "Header Relief"
 
-#: ../gtk/gtktoolitemgroup.c:1620
+#: ../gtk/gtktoolitemgroup.c:1621
 msgid "Relief of the group header button"
 msgstr "Relief of the group header button"
 
-#: ../gtk/gtktoolitemgroup.c:1635
+#: ../gtk/gtktoolitemgroup.c:1636
 msgid "Header Spacing"
 msgstr "Header Spacing"
 
-#: ../gtk/gtktoolitemgroup.c:1636
+#: ../gtk/gtktoolitemgroup.c:1637
 msgid "Spacing between expander arrow and caption"
 msgstr "Spacing between expander arrow and caption"
 
-#: ../gtk/gtktoolitemgroup.c:1652
+#: ../gtk/gtktoolitemgroup.c:1653
 msgid "Whether the item should receive extra space when the group grows"
 msgstr "Whether the item should receive extra space when the group grows"
 
-#: ../gtk/gtktoolitemgroup.c:1659
+#: ../gtk/gtktoolitemgroup.c:1660
 msgid "Whether the item should fill the available space"
 msgstr "Whether the item should fill the available space"
 
-#: ../gtk/gtktoolitemgroup.c:1665
+#: ../gtk/gtktoolitemgroup.c:1666
 msgid "New Row"
 msgstr "New Row"
 
-#: ../gtk/gtktoolitemgroup.c:1666
+#: ../gtk/gtktoolitemgroup.c:1667
 msgid "Whether the item should start a new row"
 msgstr "Whether the item should start a new row"
 
-#: ../gtk/gtktoolitemgroup.c:1673
+#: ../gtk/gtktoolitemgroup.c:1674
 msgid "Position of the item within this group"
 msgstr "Position of the item within this group"
 
-#: ../gtk/gtktoolpalette.c:1007
+#: ../gtk/gtktoolpalette.c:1009
 msgid "Size of icons in this tool palette"
 msgstr "Size of icons in this tool palette"
 
-#: ../gtk/gtktoolpalette.c:1037
+#: ../gtk/gtktoolpalette.c:1039
 msgid "Style of items in the tool palette"
 msgstr "Style of items in the tool palette"
 
-#: ../gtk/gtktoolpalette.c:1053
+#: ../gtk/gtktoolpalette.c:1055
 msgid "Exclusive"
 msgstr "Exclusive"
 
-#: ../gtk/gtktoolpalette.c:1054
+#: ../gtk/gtktoolpalette.c:1056
 msgid "Whether the item group should be the only expanded at a given time"
 msgstr "Whether the item group should be the only expanded at a given time"
 
-#: ../gtk/gtktoolpalette.c:1069
+#: ../gtk/gtktoolpalette.c:1071
 msgid ""
 "Whether the item group should receive extra space when the palette grows"
 msgstr ""
@@ -6816,211 +6824,211 @@ msgstr "TreeModelSort Model"
 msgid "The model for the TreeModelSort to sort"
 msgstr "The model for the TreeModelSort to sort"
 
-#: ../gtk/gtktreeview.c:984
+#: ../gtk/gtktreeview.c:985
 msgid "TreeView Model"
 msgstr "TreeView Model"
 
-#: ../gtk/gtktreeview.c:985
+#: ../gtk/gtktreeview.c:986
 msgid "The model for the tree view"
 msgstr "The model for the tree view"
 
-#: ../gtk/gtktreeview.c:997
+#: ../gtk/gtktreeview.c:998
 msgid "Headers Visible"
 msgstr "Headers Visible"
 
-#: ../gtk/gtktreeview.c:998
+#: ../gtk/gtktreeview.c:999
 msgid "Show the column header buttons"
 msgstr "Show the column header buttons"
 
-#: ../gtk/gtktreeview.c:1005
+#: ../gtk/gtktreeview.c:1006
 msgid "Headers Clickable"
 msgstr "Headers Clickable"
 
-#: ../gtk/gtktreeview.c:1006
+#: ../gtk/gtktreeview.c:1007
 msgid "Column headers respond to click events"
 msgstr "Column headers respond to click events"
 
-#: ../gtk/gtktreeview.c:1013
+#: ../gtk/gtktreeview.c:1014
 msgid "Expander Column"
 msgstr "Expander Column"
 
-#: ../gtk/gtktreeview.c:1014
+#: ../gtk/gtktreeview.c:1015
 msgid "Set the column for the expander column"
 msgstr "Set the column for the expander column"
 
-#: ../gtk/gtktreeview.c:1029
+#: ../gtk/gtktreeview.c:1030
 msgid "Rules Hint"
 msgstr "Rules Hint"
 
-#: ../gtk/gtktreeview.c:1030
+#: ../gtk/gtktreeview.c:1031
 msgid "Set a hint to the theme engine to draw rows in alternating colors"
 msgstr "Set a hint to the theme engine to draw rows in alternating colors"
 
-#: ../gtk/gtktreeview.c:1037
+#: ../gtk/gtktreeview.c:1038
 msgid "Enable Search"
 msgstr "Enable Search"
 
-#: ../gtk/gtktreeview.c:1038
+#: ../gtk/gtktreeview.c:1039
 msgid "View allows user to search through columns interactively"
 msgstr "View allows user to search through columns interactively"
 
-#: ../gtk/gtktreeview.c:1045
+#: ../gtk/gtktreeview.c:1046
 msgid "Search Column"
 msgstr "Search Column"
 
-#: ../gtk/gtktreeview.c:1046
+#: ../gtk/gtktreeview.c:1047
 msgid "Model column to search through during interactive search"
 msgstr "Model column to search through during interactive search"
 
-#: ../gtk/gtktreeview.c:1066
+#: ../gtk/gtktreeview.c:1067
 msgid "Fixed Height Mode"
 msgstr "Fixed Height Mode"
 
-#: ../gtk/gtktreeview.c:1067
+#: ../gtk/gtktreeview.c:1068
 msgid "Speeds up GtkTreeView by assuming that all rows have the same height"
 msgstr "Speeds up GtkTreeView by assuming that all rows have the same height"
 
-#: ../gtk/gtktreeview.c:1087
+#: ../gtk/gtktreeview.c:1088
 msgid "Hover Selection"
 msgstr "Hover Selection"
 
-#: ../gtk/gtktreeview.c:1088
+#: ../gtk/gtktreeview.c:1089
 msgid "Whether the selection should follow the pointer"
 msgstr "Whether the selection should follow the pointer"
 
-#: ../gtk/gtktreeview.c:1107
+#: ../gtk/gtktreeview.c:1108
 msgid "Hover Expand"
 msgstr "Hover Expand"
 
-#: ../gtk/gtktreeview.c:1108
+#: ../gtk/gtktreeview.c:1109
 msgid ""
 "Whether rows should be expanded/collapsed when the pointer moves over them"
 msgstr ""
 "Whether rows should be expanded/collapsed when the pointer moves over them"
 
-#: ../gtk/gtktreeview.c:1122
+#: ../gtk/gtktreeview.c:1123
 msgid "Show Expanders"
 msgstr "Show Expanders"
 
-#: ../gtk/gtktreeview.c:1123
+#: ../gtk/gtktreeview.c:1124
 msgid "View has expanders"
 msgstr "View has expanders"
 
-#: ../gtk/gtktreeview.c:1137
+#: ../gtk/gtktreeview.c:1138
 msgid "Level Indentation"
 msgstr "Level Indentation"
 
-#: ../gtk/gtktreeview.c:1138
+#: ../gtk/gtktreeview.c:1139
 msgid "Extra indentation for each level"
 msgstr "Extra indentation for each level"
 
-#: ../gtk/gtktreeview.c:1147
+#: ../gtk/gtktreeview.c:1148
 msgid "Rubber Banding"
 msgstr "Rubber Banding"
 
-#: ../gtk/gtktreeview.c:1148
+#: ../gtk/gtktreeview.c:1149
 msgid ""
 "Whether to enable selection of multiple items by dragging the mouse pointer"
 msgstr ""
 "Whether to enable selection of multiple items by dragging the mouse pointer"
 
-#: ../gtk/gtktreeview.c:1155
+#: ../gtk/gtktreeview.c:1156
 msgid "Enable Grid Lines"
 msgstr "Enable Grid Lines"
 
-#: ../gtk/gtktreeview.c:1156
+#: ../gtk/gtktreeview.c:1157
 msgid "Whether grid lines should be drawn in the tree view"
 msgstr "Whether grid lines should be drawn in the tree view"
 
-#: ../gtk/gtktreeview.c:1164
+#: ../gtk/gtktreeview.c:1165
 msgid "Enable Tree Lines"
 msgstr "Enable Tree Lines"
 
-#: ../gtk/gtktreeview.c:1165
+#: ../gtk/gtktreeview.c:1166
 msgid "Whether tree lines should be drawn in the tree view"
 msgstr "Whether tree lines should be drawn in the tree view"
 
-#: ../gtk/gtktreeview.c:1173
+#: ../gtk/gtktreeview.c:1174
 msgid "The column in the model containing the tooltip texts for the rows"
 msgstr "The column in the model containing the tooltip texts for the rows"
 
-#: ../gtk/gtktreeview.c:1195
+#: ../gtk/gtktreeview.c:1196
 msgid "Vertical Separator Width"
 msgstr "Vertical Separator Width"
 
-#: ../gtk/gtktreeview.c:1196
+#: ../gtk/gtktreeview.c:1197
 msgid "Vertical space between cells.  Must be an even number"
 msgstr "Vertical space between cells.  Must be an even number"
 
-#: ../gtk/gtktreeview.c:1204
+#: ../gtk/gtktreeview.c:1205
 msgid "Horizontal Separator Width"
 msgstr "Horizontal Separator Width"
 
-#: ../gtk/gtktreeview.c:1205
+#: ../gtk/gtktreeview.c:1206
 msgid "Horizontal space between cells.  Must be an even number"
 msgstr "Horizontal space between cells.  Must be an even number"
 
-#: ../gtk/gtktreeview.c:1213
+#: ../gtk/gtktreeview.c:1214
 msgid "Allow Rules"
 msgstr "Allow Rules"
 
-#: ../gtk/gtktreeview.c:1214
+#: ../gtk/gtktreeview.c:1215
 msgid "Allow drawing of alternating color rows"
 msgstr "Allow drawing of alternating color rows"
 
-#: ../gtk/gtktreeview.c:1220
+#: ../gtk/gtktreeview.c:1221
 msgid "Indent Expanders"
 msgstr "Indent Expanders"
 
-#: ../gtk/gtktreeview.c:1221
+#: ../gtk/gtktreeview.c:1222
 msgid "Make the expanders indented"
 msgstr "Make the expanders indented"
 
-#: ../gtk/gtktreeview.c:1227
+#: ../gtk/gtktreeview.c:1228
 msgid "Even Row Color"
 msgstr "Even Row Color"
 
-#: ../gtk/gtktreeview.c:1228
+#: ../gtk/gtktreeview.c:1229
 msgid "Color to use for even rows"
 msgstr "Color to use for even rows"
 
-#: ../gtk/gtktreeview.c:1234
+#: ../gtk/gtktreeview.c:1235
 msgid "Odd Row Color"
 msgstr "Odd Row Color"
 
-#: ../gtk/gtktreeview.c:1235
+#: ../gtk/gtktreeview.c:1236
 msgid "Color to use for odd rows"
 msgstr "Color to use for odd rows"
 
-#: ../gtk/gtktreeview.c:1241
+#: ../gtk/gtktreeview.c:1242
 msgid "Grid line width"
 msgstr "Grid line width"
 
-#: ../gtk/gtktreeview.c:1242
+#: ../gtk/gtktreeview.c:1243
 msgid "Width, in pixels, of the tree view grid lines"
 msgstr "Width, in pixels, of the tree view grid lines"
 
-#: ../gtk/gtktreeview.c:1248
+#: ../gtk/gtktreeview.c:1249
 msgid "Tree line width"
 msgstr "Tree line width"
 
-#: ../gtk/gtktreeview.c:1249
+#: ../gtk/gtktreeview.c:1250
 msgid "Width, in pixels, of the tree view lines"
 msgstr "Width, in pixels, of the tree view lines"
 
-#: ../gtk/gtktreeview.c:1255
+#: ../gtk/gtktreeview.c:1256
 msgid "Grid line pattern"
 msgstr "Grid line pattern"
 
-#: ../gtk/gtktreeview.c:1256
+#: ../gtk/gtktreeview.c:1257
 msgid "Dash pattern used to draw the tree view grid lines"
 msgstr "Dash pattern used to draw the tree view grid lines"
 
-#: ../gtk/gtktreeview.c:1262
+#: ../gtk/gtktreeview.c:1263
 msgid "Tree line pattern"
 msgstr "Tree line pattern"
 
-#: ../gtk/gtktreeview.c:1263
+#: ../gtk/gtktreeview.c:1264
 msgid "Dash pattern used to draw the tree view lines"
 msgstr "Dash pattern used to draw the tree view lines"
 
@@ -7152,27 +7160,27 @@ msgstr "Use symbolic icons"
 msgid "Whether to use symbolic icons"
 msgstr "Whether to use symbolic icons"
 
-#: ../gtk/gtkwidget.c:932
+#: ../gtk/gtkwidget.c:948
 msgid "Widget name"
 msgstr "Widget name"
 
-#: ../gtk/gtkwidget.c:933
+#: ../gtk/gtkwidget.c:949
 msgid "The name of the widget"
 msgstr "The name of the widget"
 
-#: ../gtk/gtkwidget.c:939
+#: ../gtk/gtkwidget.c:955
 msgid "Parent widget"
 msgstr "Parent widget"
 
-#: ../gtk/gtkwidget.c:940
+#: ../gtk/gtkwidget.c:956
 msgid "The parent widget of this widget. Must be a Container widget"
 msgstr "The parent widget of this widget. Must be a Container widget"
 
-#: ../gtk/gtkwidget.c:947
+#: ../gtk/gtkwidget.c:963
 msgid "Width request"
 msgstr "Width request"
 
-#: ../gtk/gtkwidget.c:948
+#: ../gtk/gtkwidget.c:964
 msgid ""
 "Override for width request of the widget, or -1 if natural request should be "
 "used"
@@ -7180,11 +7188,11 @@ msgstr ""
 "Override for width request of the widget, or -1 if natural request should be "
 "used"
 
-#: ../gtk/gtkwidget.c:956
+#: ../gtk/gtkwidget.c:972
 msgid "Height request"
 msgstr "Height request"
 
-#: ../gtk/gtkwidget.c:957
+#: ../gtk/gtkwidget.c:973
 msgid ""
 "Override for height request of the widget, or -1 if natural request should "
 "be used"
@@ -7192,83 +7200,83 @@ msgstr ""
 "Override for height request of the widget, or -1 if natural request should "
 "be used"
 
-#: ../gtk/gtkwidget.c:966
+#: ../gtk/gtkwidget.c:982
 msgid "Whether the widget is visible"
 msgstr "Whether the widget is visible"
 
-#: ../gtk/gtkwidget.c:973
+#: ../gtk/gtkwidget.c:989
 msgid "Whether the widget responds to input"
 msgstr "Whether the widget responds to input"
 
-#: ../gtk/gtkwidget.c:979
+#: ../gtk/gtkwidget.c:995
 msgid "Application paintable"
 msgstr "Application paintable"
 
-#: ../gtk/gtkwidget.c:980
+#: ../gtk/gtkwidget.c:996
 msgid "Whether the application will paint directly on the widget"
 msgstr "Whether the application will paint directly on the widget"
 
-#: ../gtk/gtkwidget.c:986
+#: ../gtk/gtkwidget.c:1002
 msgid "Can focus"
 msgstr "Can focus"
 
-#: ../gtk/gtkwidget.c:987
+#: ../gtk/gtkwidget.c:1003
 msgid "Whether the widget can accept the input focus"
 msgstr "Whether the widget can accept the input focus"
 
-#: ../gtk/gtkwidget.c:993
+#: ../gtk/gtkwidget.c:1009
 msgid "Has focus"
 msgstr "Has focus"
 
-#: ../gtk/gtkwidget.c:994
+#: ../gtk/gtkwidget.c:1010
 msgid "Whether the widget has the input focus"
 msgstr "Whether the widget has the input focus"
 
-#: ../gtk/gtkwidget.c:1000
+#: ../gtk/gtkwidget.c:1016
 msgid "Is focus"
 msgstr "Is focus"
 
-#: ../gtk/gtkwidget.c:1001
+#: ../gtk/gtkwidget.c:1017
 msgid "Whether the widget is the focus widget within the toplevel"
 msgstr "Whether the widget is the focus widget within the toplevel"
 
-#: ../gtk/gtkwidget.c:1007
+#: ../gtk/gtkwidget.c:1023
 msgid "Can default"
 msgstr "Can default"
 
-#: ../gtk/gtkwidget.c:1008
+#: ../gtk/gtkwidget.c:1024
 msgid "Whether the widget can be the default widget"
 msgstr "Whether the widget can be the default widget"
 
-#: ../gtk/gtkwidget.c:1014
+#: ../gtk/gtkwidget.c:1030
 msgid "Has default"
 msgstr "Has default"
 
-#: ../gtk/gtkwidget.c:1015
+#: ../gtk/gtkwidget.c:1031
 msgid "Whether the widget is the default widget"
 msgstr "Whether the widget is the default widget"
 
-#: ../gtk/gtkwidget.c:1021
+#: ../gtk/gtkwidget.c:1037
 msgid "Receives default"
 msgstr "Receives default"
 
-#: ../gtk/gtkwidget.c:1022
+#: ../gtk/gtkwidget.c:1038
 msgid "If TRUE, the widget will receive the default action when it is focused"
 msgstr "If TRUE, the widget will receive the default action when it is focused"
 
-#: ../gtk/gtkwidget.c:1028
+#: ../gtk/gtkwidget.c:1044
 msgid "Composite child"
 msgstr "Composite child"
 
-#: ../gtk/gtkwidget.c:1029
+#: ../gtk/gtkwidget.c:1045
 msgid "Whether the widget is part of a composite widget"
 msgstr "Whether the widget is part of a composite widget"
 
-#: ../gtk/gtkwidget.c:1035
+#: ../gtk/gtkwidget.c:1051
 msgid "Style"
 msgstr "Style"
 
-#: ../gtk/gtkwidget.c:1036
+#: ../gtk/gtkwidget.c:1052
 msgid ""
 "The style of the widget, which contains information about how it will look "
 "(colors etc)"
@@ -7276,175 +7284,175 @@ msgstr ""
 "The style of the widget, which contains information about how it will look "
 "(colors etc)"
 
-#: ../gtk/gtkwidget.c:1042
+#: ../gtk/gtkwidget.c:1058
 msgid "Events"
 msgstr "Events"
 
-#: ../gtk/gtkwidget.c:1043
+#: ../gtk/gtkwidget.c:1059
 msgid "The event mask that decides what kind of GdkEvents this widget gets"
 msgstr "The event mask that decides what kind of GdkEvents this widget gets"
 
-#: ../gtk/gtkwidget.c:1050
+#: ../gtk/gtkwidget.c:1066
 msgid "No show all"
 msgstr "No show all"
 
-#: ../gtk/gtkwidget.c:1051
+#: ../gtk/gtkwidget.c:1067
 msgid "Whether gtk_widget_show_all() should not affect this widget"
 msgstr "Whether gtk_widget_show_all() should not affect this widget"
 
-#: ../gtk/gtkwidget.c:1074
+#: ../gtk/gtkwidget.c:1090
 msgid "Whether this widget has a tooltip"
 msgstr "Whether this widget has a tooltip"
 
-#: ../gtk/gtkwidget.c:1130
+#: ../gtk/gtkwidget.c:1146
 msgid "Window"
 msgstr "Window"
 
-#: ../gtk/gtkwidget.c:1131
+#: ../gtk/gtkwidget.c:1147
 msgid "The widget's window if it is realized"
 msgstr "The widget's window if it is realized"
 
-#: ../gtk/gtkwidget.c:1145
+#: ../gtk/gtkwidget.c:1161
 msgid "Double Buffered"
 msgstr "Double Buffered"
 
-#: ../gtk/gtkwidget.c:1146
+#: ../gtk/gtkwidget.c:1162
 msgid "Whether the widget is double buffered"
 msgstr "Whether the widget is double buffered"
 
-#: ../gtk/gtkwidget.c:1161
+#: ../gtk/gtkwidget.c:1177
 msgid "How to position in extra horizontal space"
 msgstr "How to position in extra horizontal space"
 
-#: ../gtk/gtkwidget.c:1177
+#: ../gtk/gtkwidget.c:1193
 msgid "How to position in extra vertical space"
 msgstr "How to position in extra vertical space"
 
-#: ../gtk/gtkwidget.c:1196
+#: ../gtk/gtkwidget.c:1212
 msgid "Margin on Left"
 msgstr "Margin on Left"
 
-#: ../gtk/gtkwidget.c:1197
+#: ../gtk/gtkwidget.c:1213
 msgid "Pixels of extra space on the left side"
 msgstr "Pixels of extra space on the left side"
 
-#: ../gtk/gtkwidget.c:1217
+#: ../gtk/gtkwidget.c:1233
 msgid "Margin on Right"
 msgstr "Margin on Right"
 
-#: ../gtk/gtkwidget.c:1218
+#: ../gtk/gtkwidget.c:1234
 msgid "Pixels of extra space on the right side"
 msgstr "Pixels of extra space on the right side"
 
-#: ../gtk/gtkwidget.c:1238
+#: ../gtk/gtkwidget.c:1254
 msgid "Margin on Top"
 msgstr "Margin on Top"
 
-#: ../gtk/gtkwidget.c:1239
+#: ../gtk/gtkwidget.c:1255
 msgid "Pixels of extra space on the top side"
 msgstr "Pixels of extra space on the top side"
 
-#: ../gtk/gtkwidget.c:1259
+#: ../gtk/gtkwidget.c:1275
 msgid "Margin on Bottom"
 msgstr "Margin on Bottom"
 
-#: ../gtk/gtkwidget.c:1260
+#: ../gtk/gtkwidget.c:1276
 msgid "Pixels of extra space on the bottom side"
 msgstr "Pixels of extra space on the bottom side"
 
-#: ../gtk/gtkwidget.c:1277
+#: ../gtk/gtkwidget.c:1293
 msgid "All Margins"
 msgstr "All Margins"
 
-#: ../gtk/gtkwidget.c:1278
+#: ../gtk/gtkwidget.c:1294
 msgid "Pixels of extra space on all four sides"
 msgstr "Pixels of extra space on all four sides"
 
-#: ../gtk/gtkwidget.c:1311
+#: ../gtk/gtkwidget.c:1327
 msgid "Horizontal Expand"
 msgstr "Horizontal Expand"
 
-#: ../gtk/gtkwidget.c:1312
+#: ../gtk/gtkwidget.c:1328
 msgid "Whether widget wants more horizontal space"
 msgstr "Whether widget wants more horizontal space"
 
-#: ../gtk/gtkwidget.c:1326
+#: ../gtk/gtkwidget.c:1342
 msgid "Horizontal Expand Set"
 msgstr "Horizontal Expand Set"
 
-#: ../gtk/gtkwidget.c:1327
+#: ../gtk/gtkwidget.c:1343
 msgid "Whether to use the hexpand property"
 msgstr "Whether to use the hexpand property"
 
-#: ../gtk/gtkwidget.c:1341
+#: ../gtk/gtkwidget.c:1357
 msgid "Vertical Expand"
 msgstr "Vertical Expand"
 
-#: ../gtk/gtkwidget.c:1342
+#: ../gtk/gtkwidget.c:1358
 msgid "Whether widget wants more vertical space"
 msgstr "Whether widget wants more vertical space"
 
-#: ../gtk/gtkwidget.c:1356
+#: ../gtk/gtkwidget.c:1372
 msgid "Vertical Expand Set"
 msgstr "Vertical Expand Set"
 
-#: ../gtk/gtkwidget.c:1357
+#: ../gtk/gtkwidget.c:1373
 msgid "Whether to use the vexpand property"
 msgstr "Whether to use the vexpand property"
 
-#: ../gtk/gtkwidget.c:1371
+#: ../gtk/gtkwidget.c:1387
 msgid "Expand Both"
 msgstr "Expand Both"
 
-#: ../gtk/gtkwidget.c:1372
+#: ../gtk/gtkwidget.c:1388
 msgid "Whether widget wants to expand in both directions"
 msgstr "Whether widget wants to expand in both directions"
 
-#: ../gtk/gtkwidget.c:3009
+#: ../gtk/gtkwidget.c:3027
 msgid "Interior Focus"
 msgstr "Interior Focus"
 
-#: ../gtk/gtkwidget.c:3010
+#: ../gtk/gtkwidget.c:3028
 msgid "Whether to draw the focus indicator inside widgets"
 msgstr "Whether to draw the focus indicator inside widgets"
 
-#: ../gtk/gtkwidget.c:3016
+#: ../gtk/gtkwidget.c:3034
 msgid "Focus linewidth"
 msgstr "Focus linewidth"
 
-#: ../gtk/gtkwidget.c:3017
+#: ../gtk/gtkwidget.c:3035
 msgid "Width, in pixels, of the focus indicator line"
 msgstr "Width, in pixels, of the focus indicator line"
 
-#: ../gtk/gtkwidget.c:3023
+#: ../gtk/gtkwidget.c:3041
 msgid "Focus line dash pattern"
 msgstr "Focus line dash pattern"
 
-#: ../gtk/gtkwidget.c:3024
+#: ../gtk/gtkwidget.c:3042
 msgid "Dash pattern used to draw the focus indicator"
 msgstr "Dash pattern used to draw the focus indicator"
 
-#: ../gtk/gtkwidget.c:3029
+#: ../gtk/gtkwidget.c:3047
 msgid "Focus padding"
 msgstr "Focus padding"
 
-#: ../gtk/gtkwidget.c:3030
+#: ../gtk/gtkwidget.c:3048
 msgid "Width, in pixels, between focus indicator and the widget 'box'"
 msgstr "Width, in pixels, between focus indicator and the widget 'box'"
 
-#: ../gtk/gtkwidget.c:3035
+#: ../gtk/gtkwidget.c:3053
 msgid "Cursor color"
 msgstr "Cursor color"
 
-#: ../gtk/gtkwidget.c:3036
+#: ../gtk/gtkwidget.c:3054
 msgid "Color with which to draw insertion cursor"
 msgstr "Color with which to draw insertion cursor"
 
-#: ../gtk/gtkwidget.c:3041
+#: ../gtk/gtkwidget.c:3059
 msgid "Secondary cursor color"
 msgstr "Secondary cursor color"
 
-#: ../gtk/gtkwidget.c:3042
+#: ../gtk/gtkwidget.c:3060
 msgid ""
 "Color with which to draw the secondary insertion cursor when editing mixed "
 "right-to-left and left-to-right text"
@@ -7452,43 +7460,43 @@ msgstr ""
 "Color with which to draw the secondary insertion cursor when editing mixed "
 "right-to-left and left-to-right text"
 
-#: ../gtk/gtkwidget.c:3047
+#: ../gtk/gtkwidget.c:3065
 msgid "Cursor line aspect ratio"
 msgstr "Cursor line aspect ratio"
 
-#: ../gtk/gtkwidget.c:3048
+#: ../gtk/gtkwidget.c:3066
 msgid "Aspect ratio with which to draw insertion cursor"
 msgstr "Aspect ratio with which to draw insertion cursor"
 
-#: ../gtk/gtkwidget.c:3054
+#: ../gtk/gtkwidget.c:3072
 msgid "Window dragging"
 msgstr "Window dragging"
 
-#: ../gtk/gtkwidget.c:3055
+#: ../gtk/gtkwidget.c:3073
 msgid "Whether windows can be dragged by clicking on empty areas"
 msgstr "Whether windows can be dragged by clicking on empty areas"
 
-#: ../gtk/gtkwidget.c:3068
+#: ../gtk/gtkwidget.c:3086
 msgid "Unvisited Link Color"
 msgstr "Unvisited Link Color"
 
-#: ../gtk/gtkwidget.c:3069
+#: ../gtk/gtkwidget.c:3087
 msgid "Color of unvisited links"
 msgstr "Color of unvisited links"
 
-#: ../gtk/gtkwidget.c:3082
+#: ../gtk/gtkwidget.c:3100
 msgid "Visited Link Color"
 msgstr "Visited Link Color"
 
-#: ../gtk/gtkwidget.c:3083
+#: ../gtk/gtkwidget.c:3101
 msgid "Color of visited links"
 msgstr "Color of visited links"
 
-#: ../gtk/gtkwidget.c:3097
+#: ../gtk/gtkwidget.c:3115
 msgid "Wide Separators"
 msgstr "Wide Separators"
 
-#: ../gtk/gtkwidget.c:3098
+#: ../gtk/gtkwidget.c:3116
 msgid ""
 "Whether separators have configurable width and should be drawn using a box "
 "instead of a line"
@@ -7496,35 +7504,35 @@ msgstr ""
 "Whether separators have configurable width and should be drawn using a box "
 "instead of a line"
 
-#: ../gtk/gtkwidget.c:3112
+#: ../gtk/gtkwidget.c:3130
 msgid "Separator Width"
 msgstr "Separator Width"
 
-#: ../gtk/gtkwidget.c:3113
+#: ../gtk/gtkwidget.c:3131
 msgid "The width of separators if wide-separators is TRUE"
 msgstr "The width of separators if wide-separators is TRUE"
 
-#: ../gtk/gtkwidget.c:3127
+#: ../gtk/gtkwidget.c:3145
 msgid "Separator Height"
 msgstr "Separator Height"
 
-#: ../gtk/gtkwidget.c:3128
+#: ../gtk/gtkwidget.c:3146
 msgid "The height of separators if \"wide-separators\" is TRUE"
 msgstr "The height of separators if \"wide-separators\" is TRUE"
 
-#: ../gtk/gtkwidget.c:3142
+#: ../gtk/gtkwidget.c:3160
 msgid "Horizontal Scroll Arrow Length"
 msgstr "Horizontal Scroll Arrow Length"
 
-#: ../gtk/gtkwidget.c:3143
+#: ../gtk/gtkwidget.c:3161
 msgid "The length of horizontal scroll arrows"
 msgstr "The length of horizontal scroll arrows"
 
-#: ../gtk/gtkwidget.c:3157
+#: ../gtk/gtkwidget.c:3175
 msgid "Vertical Scroll Arrow Length"
 msgstr "Vertical Scroll Arrow Length"
 
-#: ../gtk/gtkwidget.c:3158
+#: ../gtk/gtkwidget.c:3176
 msgid "The length of vertical scroll arrows"
 msgstr "The length of vertical scroll arrows"
 
@@ -7767,6 +7775,14 @@ msgstr "GtkApplication"
 msgid "The GtkApplication for the window"
 msgstr "The GtkApplication for the window"
 
+#: ../modules/printbackends/cups/gtkprintercups.c:95
+msgid "Color Profile Title"
+msgstr "Color Profile Title"
+
+#: ../modules/printbackends/cups/gtkprintercups.c:96
+msgid "The title of the color profile to use"
+msgstr "The title of the color profile to use"
+
 #~ msgid "Not Authorized Text"
 #~ msgstr "Not Authorized Text"
 
index 3c986b7e9c10212ed68de980bf8a16693ffb808b..4eeaeb4beb844ea9d97806a89e716b47502d5488 100644 (file)
 msgid ""
 msgstr ""
 "Project-Id-Version: lt\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-04-19 13:59+0200\n"
-"PO-Revision-Date: 2011-04-04 23:06+0300\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2b&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-07-14 12:44+0000\n"
+"PO-Revision-Date: 2011-07-16 17:21+0300\n"
 "Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
 "Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
-"Language: lt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
-"%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: lt\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Virtaal 0.5.2\n"
 
-#: ../gdk/gdkapplaunchcontext.c:129 ../gdk/gdkcursor.c:136
+#: ../gdk/gdkapplaunchcontext.c:129
+#: ../gdk/gdkcursor.c:136
 #: ../gdk/gdkdevicemanager.c:146
 msgid "Display"
 msgstr "Vaizduoklis"
@@ -59,7 +59,8 @@ msgstr "Įrenginių valdyklė"
 msgid "Device manager which the device belongs to"
 msgstr "Įrenginių valdyklė, kuriai priklauso įrenginys"
 
-#: ../gdk/gdkdevice.c:141 ../gdk/gdkdevice.c:142
+#: ../gdk/gdkdevice.c:141
+#: ../gdk/gdkdevice.c:142
 msgid "Device name"
 msgstr "Įrenginio vardas"
 
@@ -87,7 +88,8 @@ msgstr "Įvesties šaltinis"
 msgid "Source type for the device"
 msgstr "Šaltinio tipas įrenginiui"
 
-#: ../gdk/gdkdevice.c:203 ../gdk/gdkdevice.c:204
+#: ../gdk/gdkdevice.c:203
+#: ../gdk/gdkdevice.c:204
 msgid "Input mode for the device"
 msgstr "Įrenginio įvesties veiksena"
 
@@ -99,7 +101,8 @@ msgstr "Ar įrenginys turi žymeklį"
 msgid "Whether there is a visible cursor following device motion"
 msgstr "Ar yra matomas žymeklis, sekantis įrenginio judesį"
 
-#: ../gdk/gdkdevice.c:234 ../gdk/gdkdevice.c:235
+#: ../gdk/gdkdevice.c:234
+#: ../gdk/gdkdevice.c:235
 msgid "Number of axes in the device"
 msgstr "Ašių skaičius įrenginyje"
 
@@ -131,24 +134,16 @@ msgstr "Šrifto raiška"
 msgid "The resolution for fonts on the screen"
 msgstr "Šriftų ekrane raiška"
 
-#: ../gdk/gdkwindow.c:373 ../gdk/gdkwindow.c:374
+#: ../gdk/gdkwindow.c:376
+#: ../gdk/gdkwindow.c:377
 msgid "Cursor"
 msgstr "Žymeklis"
 
-#: ../gdk/x11/gdkdevice-xi.c:140 ../gdk/x11/gdkdevice-xi.c:141
-#: ../gdk/x11/gdkdevice-xi2.c:130
-msgid "Device ID"
-msgstr "Įrenginio ID"
-
-#: ../gdk/x11/gdkdevice-xi2.c:131
-msgid "Device identifier"
-msgstr "Įrenginio identifikatorius"
-
-#: ../gdk/x11/gdkdevicemanager-xi2.c:118
+#: ../gdk/x11/gdkdevicemanager-xi2.c:119
 msgid "Opcode"
 msgstr "Operacijos kodas"
 
-#: ../gdk/x11/gdkdevicemanager-xi2.c:119
+#: ../gdk/x11/gdkdevicemanager-xi2.c:120
 msgid "Opcode for XInput2 requests"
 msgstr "Operacijos kodas XInput2 užklausoms"
 
@@ -160,145 +155,149 @@ msgstr "Įvykių bazė"
 msgid "Event base for XInput events"
 msgstr "Įvykių bazė XInput įvykiams"
 
-#: ../gtk/gtkaboutdialog.c:276
+#: ../gdk/x11/gdkdevice-xi2.c:130
+#: ../gdk/x11/gdkdevice-xi.c:140
+#: ../gdk/x11/gdkdevice-xi.c:141
+msgid "Device ID"
+msgstr "Įrenginio ID"
+
+#: ../gdk/x11/gdkdevice-xi2.c:131
+msgid "Device identifier"
+msgstr "Įrenginio identifikatorius"
+
+#: ../gtk/gtkaboutdialog.c:275
 msgid "Program name"
 msgstr "Programos pavadinimas"
 
-#: ../gtk/gtkaboutdialog.c:277
-msgid ""
-"The name of the program. If this is not set, it defaults to "
-"g_get_application_name()"
-msgstr ""
-"Programos pavadinimas. Jeigu jis nenurodytas, tada standartiškai naudojama "
-"g_get_application_name()"
+#: ../gtk/gtkaboutdialog.c:276
+msgid "The name of the program. If this is not set, it defaults to g_get_application_name()"
+msgstr "Programos pavadinimas. Jeigu jis nenurodytas, tada standartiškai naudojama g_get_application_name()"
 
-#: ../gtk/gtkaboutdialog.c:291
+#: ../gtk/gtkaboutdialog.c:290
 msgid "Program version"
 msgstr "Programos versija"
 
-#: ../gtk/gtkaboutdialog.c:292
+#: ../gtk/gtkaboutdialog.c:291
 msgid "The version of the program"
 msgstr "Programos versija"
 
-#: ../gtk/gtkaboutdialog.c:306
+#: ../gtk/gtkaboutdialog.c:305
 msgid "Copyright string"
 msgstr "Autorinių teisių eilutė"
 
-#: ../gtk/gtkaboutdialog.c:307
+#: ../gtk/gtkaboutdialog.c:306
 msgid "Copyright information for the program"
 msgstr "Programos autorinių teisių informacija"
 
-#: ../gtk/gtkaboutdialog.c:324
+#: ../gtk/gtkaboutdialog.c:323
 msgid "Comments string"
 msgstr "Komentarų eilutė"
 
-#: ../gtk/gtkaboutdialog.c:325
+#: ../gtk/gtkaboutdialog.c:324
 msgid "Comments about the program"
 msgstr "Pastabos apie programą"
 
-#: ../gtk/gtkaboutdialog.c:375
+#: ../gtk/gtkaboutdialog.c:374
 msgid "License Type"
 msgstr "Licencijos tipas"
 
-#: ../gtk/gtkaboutdialog.c:376
+#: ../gtk/gtkaboutdialog.c:375
 msgid "The license type of the program"
 msgstr "Programos licencijos tipas"
 
-#: ../gtk/gtkaboutdialog.c:392
+#: ../gtk/gtkaboutdialog.c:391
 msgid "Website URL"
 msgstr "Tinklalapio adresas"
 
-#: ../gtk/gtkaboutdialog.c:393
+#: ../gtk/gtkaboutdialog.c:392
 msgid "The URL for the link to the website of the program"
 msgstr "Programos tinklalapio adresas"
 
-#: ../gtk/gtkaboutdialog.c:407
+#: ../gtk/gtkaboutdialog.c:406
 msgid "Website label"
 msgstr "Tinklalapio pavadinimas"
 
-#: ../gtk/gtkaboutdialog.c:408
+#: ../gtk/gtkaboutdialog.c:407
 msgid "The label for the link to the website of the program"
 msgstr "Etiketė programos tinklalapio adresui"
 
-#: ../gtk/gtkaboutdialog.c:424
+#: ../gtk/gtkaboutdialog.c:423
 msgid "Authors"
 msgstr "Autoriai"
 
-#: ../gtk/gtkaboutdialog.c:425
+#: ../gtk/gtkaboutdialog.c:424
 msgid "List of authors of the program"
 msgstr "Programos autorių sąrašas"
 
-#: ../gtk/gtkaboutdialog.c:441
+#: ../gtk/gtkaboutdialog.c:440
 msgid "Documenters"
 msgstr "Dokumentatoriai"
 
-#: ../gtk/gtkaboutdialog.c:442
+#: ../gtk/gtkaboutdialog.c:441
 msgid "List of people documenting the program"
 msgstr "Žmonių, dokumentavusių programą, sąrašas"
 
-#: ../gtk/gtkaboutdialog.c:458
+#: ../gtk/gtkaboutdialog.c:457
 msgid "Artists"
 msgstr "Menininkai"
 
-#: ../gtk/gtkaboutdialog.c:459
+#: ../gtk/gtkaboutdialog.c:458
 msgid "List of people who have contributed artwork to the program"
 msgstr "Žmonės, kurių menas naudojamas apipavidalinti programai"
 
-#: ../gtk/gtkaboutdialog.c:476
+#: ../gtk/gtkaboutdialog.c:475
 msgid "Translator credits"
 msgstr "Padėkos vertėjams"
 
-#: ../gtk/gtkaboutdialog.c:477
-msgid ""
-"Credits to the translators. This string should be marked as translatable"
+#: ../gtk/gtkaboutdialog.c:476
+msgid "Credits to the translators. This string should be marked as translatable"
 msgstr "Padėkos vertėjams. Ši eilutė turėtų būti pažymėta, kaip verstina"
 
-#: ../gtk/gtkaboutdialog.c:492
+#: ../gtk/gtkaboutdialog.c:491
 msgid "Logo"
 msgstr "Logotipas"
 
-#: ../gtk/gtkaboutdialog.c:493
-msgid ""
-"A logo for the about box. If this is not set, it defaults to "
-"gtk_window_get_default_icon_list()"
-msgstr ""
-"„Apie“ lango logotipas. Jeigu jis nenurodytas, tada naudojama "
-"gtk_window_get_default_icon_list()"
+#: ../gtk/gtkaboutdialog.c:492
+msgid "A logo for the about box. If this is not set, it defaults to gtk_window_get_default_icon_list()"
+msgstr "„Apie“ lango logotipas. Jeigu jis nenurodytas, tada naudojama gtk_window_get_default_icon_list()"
 
-#: ../gtk/gtkaboutdialog.c:508
+#: ../gtk/gtkaboutdialog.c:507
 msgid "Logo Icon Name"
 msgstr "Logotipo piktogramos pavadinimas"
 
-#: ../gtk/gtkaboutdialog.c:509
+#: ../gtk/gtkaboutdialog.c:508
 msgid "A named icon to use as the logo for the about box."
 msgstr "Piktogramos, naudojamos „Apie“ kaip lango logotipo, pavadinimas."
 
-#: ../gtk/gtkaboutdialog.c:522
+#: ../gtk/gtkaboutdialog.c:521
 msgid "Wrap license"
 msgstr "Laužyti licenciją"
 
-#: ../gtk/gtkaboutdialog.c:523
+#: ../gtk/gtkaboutdialog.c:522
 msgid "Whether to wrap the license text."
 msgstr "Ar laužyti licencijos tekstą."
 
-#: ../gtk/gtkaccellabel.c:187
+#: ../gtk/gtkaccellabel.c:185
 msgid "Accelerator Closure"
 msgstr "Spartusis uždarymas"
 
-#: ../gtk/gtkaccellabel.c:188
+#: ../gtk/gtkaccellabel.c:186
 msgid "The closure to be monitored for accelerator changes"
 msgstr "Uždarymas, kuris turi būti stebimas dėl spartinimo pakeitimų"
 
-#: ../gtk/gtkaccellabel.c:194
+#: ../gtk/gtkaccellabel.c:192
 msgid "Accelerator Widget"
 msgstr "Spartusis objektas"
 
-#: ../gtk/gtkaccellabel.c:195
+#: ../gtk/gtkaccellabel.c:193
 msgid "The widget to be monitored for accelerator changes"
 msgstr "Objektas, kuris turi būti susietas su spartinimo pakeitimais"
 
-#: ../gtk/gtkaction.c:222 ../gtk/gtkactiongroup.c:228 ../gtk/gtkprinter.c:125
-#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:248
+#: ../gtk/gtkaction.c:222
+#: ../gtk/gtkactiongroup.c:228
+#: ../gtk/gtkprinter.c:125
+#: ../gtk/gtktextmark.c:126
+#: ../gtk/gtkthemingengine.c:258
 msgid "Name"
 msgstr "Vardas"
 
@@ -306,16 +305,20 @@ msgstr "Vardas"
 msgid "A unique name for the action."
 msgstr "Unikalus veiksmo vardas."
 
-#: ../gtk/gtkaction.c:241 ../gtk/gtkbutton.c:227 ../gtk/gtkexpander.c:289
-#: ../gtk/gtkframe.c:170 ../gtk/gtklabel.c:744 ../gtk/gtkmenuitem.c:374
-#: ../gtk/gtktoolbutton.c:232 ../gtk/gtktoolitemgroup.c:1597
+#: ../gtk/gtkaction.c:241
+#: ../gtk/gtkbutton.c:228
+#: ../gtk/gtkexpander.c:290
+#: ../gtk/gtkframe.c:171
+#: ../gtk/gtklabel.c:744
+#: ../gtk/gtkmenuitem.c:384
+#: ../gtk/gtktoolbutton.c:232
+#: ../gtk/gtktoolitemgroup.c:1592
 msgid "Label"
 msgstr "Žymė"
 
 #: ../gtk/gtkaction.c:242
 msgid "The label used for menu items and buttons that activate this action."
-msgstr ""
-"Žymė, naudojama meniu punktams ir mygtukams, kurie aktyvina šį veiksmą."
+msgstr "Žymė, naudojama meniu punktams ir mygtukams, kurie aktyvina šį veiksmą."
 
 #: ../gtk/gtkaction.c:258
 msgid "Short label"
@@ -341,73 +344,70 @@ msgstr "Standartinė piktograma"
 msgid "The stock icon displayed in widgets representing this action."
 msgstr "Standartinė piktograma rodoma objektuose reprezentuojanti šį veiksmą."
 
-#: ../gtk/gtkaction.c:304 ../gtk/gtkstatusicon.c:275
+#: ../gtk/gtkaction.c:304
+#: ../gtk/gtkstatusicon.c:275
 msgid "GIcon"
 msgstr "GIcon"
 
-#: ../gtk/gtkaction.c:305 ../gtk/gtkcellrendererpixbuf.c:235
-#: ../gtk/gtkimage.c:329 ../gtk/gtkstatusicon.c:276
+#: ../gtk/gtkaction.c:305
+#: ../gtk/gtkcellrendererpixbuf.c:235
+#: ../gtk/gtkimage.c:330
+#: ../gtk/gtkstatusicon.c:276
 msgid "The GIcon being displayed"
 msgstr "Rodomas „GIcon“ tipo objektas"
 
-#: ../gtk/gtkaction.c:325 ../gtk/gtkcellrendererpixbuf.c:200
-#: ../gtk/gtkimage.c:311 ../gtk/gtkprinter.c:174 ../gtk/gtkstatusicon.c:259
-#: ../gtk/gtkwindow.c:723
+#: ../gtk/gtkaction.c:325
+#: ../gtk/gtkcellrendererpixbuf.c:200
+#: ../gtk/gtkimage.c:312
+#: ../gtk/gtkprinter.c:174
+#: ../gtk/gtkstatusicon.c:259
+#: ../gtk/gtkwindow.c:724
 msgid "Icon Name"
 msgstr "Piktogramos pavadinimas"
 
-#: ../gtk/gtkaction.c:326 ../gtk/gtkcellrendererpixbuf.c:201
-#: ../gtk/gtkimage.c:312 ../gtk/gtkstatusicon.c:260
+#: ../gtk/gtkaction.c:326
+#: ../gtk/gtkcellrendererpixbuf.c:201
+#: ../gtk/gtkimage.c:313
+#: ../gtk/gtkstatusicon.c:260
 msgid "The name of the icon from the icon theme"
 msgstr "Piktogramos iš piktogramų temos pavadinimas"
 
-#: ../gtk/gtkaction.c:333 ../gtk/gtktoolitem.c:194
+#: ../gtk/gtkaction.c:333
+#: ../gtk/gtktoolitem.c:194
 msgid "Visible when horizontal"
 msgstr "Matomas, kai horizontalus"
 
-#: ../gtk/gtkaction.c:334 ../gtk/gtktoolitem.c:195
-msgid ""
-"Whether the toolbar item is visible when the toolbar is in a horizontal "
-"orientation."
-msgstr ""
-"Ar įrankių juostos elementas yra matomas, kai įrankių juosta yra "
-"horizontalioje padėtyje."
+#: ../gtk/gtkaction.c:334
+#: ../gtk/gtktoolitem.c:195
+msgid "Whether the toolbar item is visible when the toolbar is in a horizontal orientation."
+msgstr "Ar įrankių juostos elementas yra matomas, kai įrankių juosta yra horizontalioje padėtyje."
 
 #: ../gtk/gtkaction.c:349
 msgid "Visible when overflown"
 msgstr "Matomas, kai perpildyta"
 
 #: ../gtk/gtkaction.c:350
-msgid ""
-"When TRUE, toolitem proxies for this action are represented in the toolbar "
-"overflow menu."
-msgstr ""
-"Kai TEIGIAMA, įrankių pakaitalai šiam veiksmui rodomi įrankių juostos "
-"papildomame meniu."
+msgid "When TRUE, toolitem proxies for this action are represented in the toolbar overflow menu."
+msgstr "Kai TEIGIAMA, įrankių pakaitalai šiam veiksmui rodomi įrankių juostos papildomame meniu."
 
-#: ../gtk/gtkaction.c:357 ../gtk/gtktoolitem.c:201
+#: ../gtk/gtkaction.c:357
+#: ../gtk/gtktoolitem.c:201
 msgid "Visible when vertical"
 msgstr "Matomas, jei vertikalus"
 
-#: ../gtk/gtkaction.c:358 ../gtk/gtktoolitem.c:202
-msgid ""
-"Whether the toolbar item is visible when the toolbar is in a vertical "
-"orientation."
-msgstr ""
-"Ar įrankių juostos elementas yra matomas, kai įrankių juosta yra "
-"vertikalioje padėtyje."
+#: ../gtk/gtkaction.c:358
+#: ../gtk/gtktoolitem.c:202
+msgid "Whether the toolbar item is visible when the toolbar is in a vertical orientation."
+msgstr "Ar įrankių juostos elementas yra matomas, kai įrankių juosta yra vertikalioje padėtyje."
 
-#: ../gtk/gtkaction.c:365 ../gtk/gtktoolitem.c:208
+#: ../gtk/gtkaction.c:365
+#: ../gtk/gtktoolitem.c:208
 msgid "Is important"
 msgstr "Yra svarbus"
 
 #: ../gtk/gtkaction.c:366
-msgid ""
-"Whether the action is considered important. When TRUE, toolitem proxies for "
-"this action show text in GTK_TOOLBAR_BOTH_HORIZ mode."
-msgstr ""
-"Ar veiksmas yra laikomas svarbiu. Jei reikšmė TEIGIAMA, šio veiksmo toolitem "
-"tarpinės GTK_TOOLBAR_BOTH_HORIZ veiksenoje bus rodomi kaip tekstas."
+msgid "Whether the action is considered important. When TRUE, toolitem proxies for this action show text in GTK_TOOLBAR_BOTH_HORIZ mode."
+msgstr "Ar veiksmas yra laikomas svarbiu. Jei reikšmė TEIGIAMA, šio veiksmo toolitem tarpinės GTK_TOOLBAR_BOTH_HORIZ veiksenoje bus rodomi kaip tekstas."
 
 #: ../gtk/gtkaction.c:374
 msgid "Hide if empty"
@@ -417,8 +417,10 @@ msgstr "Paslėpti, jei tuščias"
 msgid "When TRUE, empty menu proxies for this action are hidden."
 msgstr "Jei TEIGIAMA, šio veiksmo tuščių meniu tarpinės yra paslėptos."
 
-#: ../gtk/gtkaction.c:381 ../gtk/gtkactiongroup.c:235
-#: ../gtk/gtkcellrenderer.c:290 ../gtk/gtkwidget.c:969
+#: ../gtk/gtkaction.c:381
+#: ../gtk/gtkactiongroup.c:235
+#: ../gtk/gtkcellrenderer.c:290
+#: ../gtk/gtkwidget.c:988
 msgid "Sensitive"
 msgstr "Jautrus"
 
@@ -426,9 +428,11 @@ msgstr "Jautrus"
 msgid "Whether the action is enabled."
 msgstr "Ar veiksmas yra įjungtas."
 
-#: ../gtk/gtkaction.c:388 ../gtk/gtkactiongroup.c:242
-#: ../gtk/gtkstatusicon.c:310 ../gtk/gtktreeviewcolumn.c:246
-#: ../gtk/gtkwidget.c:962
+#: ../gtk/gtkaction.c:388
+#: ../gtk/gtkactiongroup.c:242
+#: ../gtk/gtkstatusicon.c:310
+#: ../gtk/gtktreeviewcolumn.c:248
+#: ../gtk/gtkwidget.c:981
 msgid "Visible"
 msgstr "Matoma"
 
@@ -441,18 +445,16 @@ msgid "Action Group"
 msgstr "Veiksmų grupė"
 
 #: ../gtk/gtkaction.c:396
-msgid ""
-"The GtkActionGroup this GtkAction is associated with, or NULL (for internal "
-"use)."
-msgstr ""
-"GtkActionGroup su kuria yra susietas šis GtkAction, arba NULL (vidiniam "
-"naudojimui)."
+msgid "The GtkActionGroup this GtkAction is associated with, or NULL (for internal use)."
+msgstr "GtkActionGroup su kuria yra susietas šis GtkAction, arba NULL (vidiniam naudojimui)."
 
-#: ../gtk/gtkaction.c:414 ../gtk/gtkimagemenuitem.c:194
+#: ../gtk/gtkaction.c:414
+#: ../gtk/gtkimagemenuitem.c:194
 msgid "Always show image"
 msgstr "Visuomet rodyti paveikslėlį"
 
-#: ../gtk/gtkaction.c:415 ../gtk/gtkimagemenuitem.c:195
+#: ../gtk/gtkaction.c:415
+#: ../gtk/gtkimagemenuitem.c:195
 msgid "Whether the image will always be shown"
 msgstr "Ar visuomet rodyti paveikslėlius"
 
@@ -474,9 +476,7 @@ msgstr "Susijęs veiksmas"
 
 #: ../gtk/gtkactivatable.c:290
 msgid "The action this activatable will activate and receive updates from"
-msgstr ""
-"Veiksmas, kurį šis aktyvinamasis elementas aktyvins ir iš kurio gaus "
-"atnaujinimus"
+msgstr "Veiksmas, kurį šis aktyvinamasis elementas aktyvins ir iš kurio gaus atnaujinimus"
 
 #: ../gtk/gtkactivatable.c:312
 msgid "Use Action Appearance"
@@ -486,8 +486,10 @@ msgstr "Naudoti veiksmo išvaizdą"
 msgid "Whether to use the related actions appearance properties"
 msgstr "Ar naudoti susijusio veiksmo išvaizdos savybes"
 
-#: ../gtk/gtkadjustment.c:123 ../gtk/gtkcellrendererprogress.c:138
-#: ../gtk/gtkscalebutton.c:217 ../gtk/gtkspinbutton.c:382
+#: ../gtk/gtkadjustment.c:123
+#: ../gtk/gtkcellrendererprogress.c:138
+#: ../gtk/gtkscalebutton.c:218
+#: ../gtk/gtkspinbutton.c:384
 msgid "Value"
 msgstr "Vertė"
 
@@ -539,49 +541,35 @@ msgstr "Koregavimo puslapio dydis"
 msgid "Horizontal alignment"
 msgstr "Gulsčias lygiavimas"
 
-#: ../gtk/gtkalignment.c:138 ../gtk/gtkbutton.c:278
-msgid ""
-"Horizontal position of child in available space. 0.0 is left aligned, 1.0 is "
-"right aligned"
-msgstr ""
-"Horizontali vaikinio objekto padėtis turimoje erdvėje. 0.0 - išlygintas "
-"kairėje, 1.0 - išlygintas dešinėje"
+#: ../gtk/gtkalignment.c:138
+#: ../gtk/gtkbutton.c:279
+msgid "Horizontal position of child in available space. 0.0 is left aligned, 1.0 is right aligned"
+msgstr "Horizontali vaikinio objekto padėtis turimoje erdvėje. 0.0 - išlygintas kairėje, 1.0 - išlygintas dešinėje"
 
 #: ../gtk/gtkalignment.c:147
 msgid "Vertical alignment"
 msgstr "Vertikalus lygiavimas"
 
-#: ../gtk/gtkalignment.c:148 ../gtk/gtkbutton.c:297
-msgid ""
-"Vertical position of child in available space. 0.0 is top aligned, 1.0 is "
-"bottom aligned"
-msgstr ""
-"Vertikali vaikinio objekto padėtis turimoje erdvėje. 0.0 - lygiuoti viršuje, "
-"1.0 - lygiuoti apačioje"
+#: ../gtk/gtkalignment.c:148
+#: ../gtk/gtkbutton.c:298
+msgid "Vertical position of child in available space. 0.0 is top aligned, 1.0 is bottom aligned"
+msgstr "Vertikali vaikinio objekto padėtis turimoje erdvėje. 0.0 - lygiuoti viršuje, 1.0 - lygiuoti apačioje"
 
 #: ../gtk/gtkalignment.c:156
 msgid "Horizontal scale"
 msgstr "Horizontalus mastelis"
 
 #: ../gtk/gtkalignment.c:157
-msgid ""
-"If available horizontal space is bigger than needed for the child, how much "
-"of it to use for the child. 0.0 means none, 1.0 means all"
-msgstr ""
-"Jei turima horizontali erdvė yra didesnė nei reikia vaikiniam objektui, "
-"kokią jos dalį panaudoti. 0.0 - nenaudoti nieko, 1.0 - naudoti visą"
+msgid "If available horizontal space is bigger than needed for the child, how much of it to use for the child. 0.0 means none, 1.0 means all"
+msgstr "Jei turima horizontali erdvė yra didesnė nei reikia vaikiniam objektui, kokią jos dalį panaudoti. 0.0 - nenaudoti nieko, 1.0 - naudoti visą"
 
 #: ../gtk/gtkalignment.c:165
 msgid "Vertical scale"
 msgstr "Vertikalus mastelis"
 
 #: ../gtk/gtkalignment.c:166
-msgid ""
-"If available vertical space is bigger than needed for the child, how much of "
-"it to use for the child. 0.0 means none, 1.0 means all"
-msgstr ""
-"Jei turima vertikali erdvė yra didesnė nei reikia vaikiniam objektui, kokią "
-"jos dalį panaudoti. 0.0 - nenaudoti nieko, 1.0 - naudoti visą"
+msgid "If available vertical space is bigger than needed for the child, how much of it to use for the child. 0.0 means none, 1.0 means all"
+msgstr "Jei turima vertikali erdvė yra didesnė nei reikia vaikiniam objektui, kokią jos dalį panaudoti. 0.0 - nenaudoti nieko, 1.0 - naudoti visą"
 
 #: ../gtk/gtkalignment.c:183
 msgid "Top Padding"
@@ -620,26 +608,24 @@ msgid "Include an 'Other...' item"
 msgstr "Įterpti elementą „Kita...“"
 
 #: ../gtk/gtkappchooserbutton.c:556
-msgid ""
-"Whether the combobox should include an item that triggers a "
-"GtkAppChooserDialog"
-msgstr ""
-"Ar iškrentantis sąrašas turi įtraukti elementą, iššaukiantį "
-"GtkAppChooserDialog"
+msgid "Whether the combobox should include an item that triggers a GtkAppChooserDialog"
+msgstr "Ar iškrentantis sąrašas turi įtraukti elementą, iššaukiantį GtkAppChooserDialog"
 
-#: ../gtk/gtkappchooserbutton.c:568 ../gtk/gtkappchooserdialog.c:722
+#: ../gtk/gtkappchooserbutton.c:568
+#: ../gtk/gtkappchooserdialog.c:722
 msgid "Heading"
 msgstr "Antraštė"
 
-#: ../gtk/gtkappchooserbutton.c:569 ../gtk/gtkappchooserdialog.c:723
+#: ../gtk/gtkappchooserbutton.c:569
+#: ../gtk/gtkappchooserdialog.c:723
 msgid "The text to show at the top of the dialog"
 msgstr "Tekstas, rodomas dialogo viršuje"
 
-#: ../gtk/gtkappchooser.c:58
+#: ../gtk/gtkappchooser.c:61
 msgid "Content type"
 msgstr "Turinio tipas"
 
-#: ../gtk/gtkappchooser.c:59
+#: ../gtk/gtkappchooser.c:62
 msgid "The content type used by the open with object"
 msgstr "Turinio tipas, naudojamas atveriant su objektu"
 
@@ -699,32 +685,35 @@ msgstr "Valdymo elemento numatytasis tekstas"
 msgid "The default text appearing when there are no applications"
 msgstr "Numatytasis tekstas, rodomas, kai nėra programų"
 
-#: ../gtk/gtkarrow.c:110
+#: ../gtk/gtkarrow.c:112
 msgid "Arrow direction"
 msgstr "Rodyklės kryptis"
 
-#: ../gtk/gtkarrow.c:111
+#: ../gtk/gtkarrow.c:113
 msgid "The direction the arrow should point"
 msgstr "Kryptis, į kurią rodyklė turėtų rodyti"
 
-#: ../gtk/gtkarrow.c:119
+#: ../gtk/gtkarrow.c:121
 msgid "Arrow shadow"
 msgstr "Rodyklės šešėlis"
 
-#: ../gtk/gtkarrow.c:120
+#: ../gtk/gtkarrow.c:122
 msgid "Appearance of the shadow surrounding the arrow"
 msgstr "Šešėlio, gaubiančio rodyklę, išvaizda"
 
-#: ../gtk/gtkarrow.c:127 ../gtk/gtkcombobox.c:985 ../gtk/gtkmenu.c:796
-#: ../gtk/gtkmenuitem.c:437
+#: ../gtk/gtkarrow.c:129
+#: ../gtk/gtkcombobox.c:986
+#: ../gtk/gtkmenu.c:798
+#: ../gtk/gtkmenuitem.c:447
 msgid "Arrow Scaling"
 msgstr "Rodyklės Mastelis"
 
-#: ../gtk/gtkarrow.c:128
+#: ../gtk/gtkarrow.c:130
 msgid "Amount of space used up by arrow"
 msgstr "Rodyklės užimta vieta"
 
-#: ../gtk/gtkaspectframe.c:109 ../gtk/gtkwidget.c:1157
+#: ../gtk/gtkaspectframe.c:109
+#: ../gtk/gtkwidget.c:1176
 msgid "Horizontal Alignment"
 msgstr "Horizontalus Lygiavimas"
 
@@ -732,7 +721,8 @@ msgstr "Horizontalus Lygiavimas"
 msgid "X alignment of the child"
 msgstr "Vaikinio objekto X lygiavimas"
 
-#: ../gtk/gtkaspectframe.c:116 ../gtk/gtkwidget.c:1173
+#: ../gtk/gtkaspectframe.c:116
+#: ../gtk/gtkwidget.c:1192
 msgid "Vertical Alignment"
 msgstr "Vertikalus Lygiavimas"
 
@@ -756,186 +746,191 @@ msgstr "Klausyti vaikinio objekto"
 msgid "Force aspect ratio to match that of the frame's child"
 msgstr "Mastelis turi atitikti rėmelio vaikinį objektą"
 
-#: ../gtk/gtkassistant.c:326
+#: ../gtk/gtkassistant.c:311
 msgid "Header Padding"
 msgstr "Antraštės apvalkalas"
 
-#: ../gtk/gtkassistant.c:327
+#: ../gtk/gtkassistant.c:312
 msgid "Number of pixels around the header."
 msgstr "Pikselių apie antraštę skaičius."
 
-#: ../gtk/gtkassistant.c:334
+#: ../gtk/gtkassistant.c:319
 msgid "Content Padding"
 msgstr "Turinio apvalkalas"
 
-#: ../gtk/gtkassistant.c:335
+#: ../gtk/gtkassistant.c:320
 msgid "Number of pixels around the content pages."
 msgstr "Pikselių aplink turinio puslapius skaičius."
 
-#: ../gtk/gtkassistant.c:351
+#: ../gtk/gtkassistant.c:336
 msgid "Page type"
 msgstr "Puslapio tipas"
 
-#: ../gtk/gtkassistant.c:352
+#: ../gtk/gtkassistant.c:337
 msgid "The type of the assistant page"
 msgstr "Pagalbinio puslapio tipas"
 
-#: ../gtk/gtkassistant.c:369
+#: ../gtk/gtkassistant.c:352
 msgid "Page title"
 msgstr "Puslapio antraštė"
 
-#: ../gtk/gtkassistant.c:370
+#: ../gtk/gtkassistant.c:353
 msgid "The title of the assistant page"
 msgstr "Pagalbinio puslapio antraštė"
 
-#: ../gtk/gtkassistant.c:386
+#: ../gtk/gtkassistant.c:370
 msgid "Header image"
 msgstr "Antraštės paveikslėlis"
 
-#: ../gtk/gtkassistant.c:387
+#: ../gtk/gtkassistant.c:371
 msgid "Header image for the assistant page"
 msgstr "Antraštės paveikslėlis pagalbiniam puslapiui"
 
-#: ../gtk/gtkassistant.c:403
+#: ../gtk/gtkassistant.c:387
 msgid "Sidebar image"
 msgstr "Šoninis paveikslėlis"
 
-#: ../gtk/gtkassistant.c:404
+#: ../gtk/gtkassistant.c:388
 msgid "Sidebar image for the assistant page"
 msgstr "Šoninis paveikslėlis pagalbiniam puslapiui"
 
-#: ../gtk/gtkassistant.c:419
+#: ../gtk/gtkassistant.c:404
 msgid "Page complete"
 msgstr "Puslapis baigtas"
 
-#: ../gtk/gtkassistant.c:420
+#: ../gtk/gtkassistant.c:405
 msgid "Whether all required fields on the page have been filled out"
 msgstr "Ar visi reikalingi laukai puslapyje buvo užpildyti"
 
-#: ../gtk/gtkbbox.c:152
+#: ../gtk/gtkbbox.c:159
 msgid "Minimum child width"
 msgstr "Minimalus vaikinio objekto plotis"
 
-#: ../gtk/gtkbbox.c:153
+#: ../gtk/gtkbbox.c:160
 msgid "Minimum width of buttons inside the box"
 msgstr "Minimalus mygtukų, esančių dėžutės viduje, plotis"
 
-#: ../gtk/gtkbbox.c:161
+#: ../gtk/gtkbbox.c:168
 msgid "Minimum child height"
 msgstr "Minimalus vaikinio objekto aukštis"
 
-#: ../gtk/gtkbbox.c:162
+#: ../gtk/gtkbbox.c:169
 msgid "Minimum height of buttons inside the box"
 msgstr "Minimalus mygtukų, esančių dėžutės viduje, aukštis"
 
-#: ../gtk/gtkbbox.c:170
+#: ../gtk/gtkbbox.c:177
 msgid "Child internal width padding"
 msgstr "Vaikinio objekto horizontalios vidinės paraštės"
 
-#: ../gtk/gtkbbox.c:171
+#: ../gtk/gtkbbox.c:178
 msgid "Amount to increase child's size on either side"
 msgstr "Dydis, kuriuo reikia padidinti vaikinį objektą iš abiejų pusių"
 
-#: ../gtk/gtkbbox.c:179
+#: ../gtk/gtkbbox.c:186
 msgid "Child internal height padding"
 msgstr "Vaikinio objekto vertikalios vidinės paraštės"
 
-#: ../gtk/gtkbbox.c:180
+#: ../gtk/gtkbbox.c:187
 msgid "Amount to increase child's size on the top and bottom"
 msgstr "Dydis, kuriuo reikia padidinti vaikinį objektą viršuje ir apačioje"
 
-#: ../gtk/gtkbbox.c:188
+#: ../gtk/gtkbbox.c:195
 msgid "Layout style"
 msgstr "Išdėstymo stilius"
 
-#: ../gtk/gtkbbox.c:189
-msgid ""
-"How to lay out the buttons in the box. Possible values are: spread, edge, "
-"start and end"
-msgstr ""
-"Kaip išdėstyti mygtukus dėžutėje. Galimos reikšmės yra: default, spread, "
-"edge, start ir end"
+#: ../gtk/gtkbbox.c:196
+msgid "How to lay out the buttons in the box. Possible values are: spread, edge, start and end"
+msgstr "Kaip išdėstyti mygtukus dėžutėje. Galimos reikšmės yra: default, spread, edge, start ir end"
 
-#: ../gtk/gtkbbox.c:197
+#: ../gtk/gtkbbox.c:204
 msgid "Secondary"
 msgstr "Antrinis"
 
-#: ../gtk/gtkbbox.c:198
-msgid ""
-"If TRUE, the child appears in a secondary group of children, suitable for, e."
-"g., help buttons"
-msgstr ""
-"Jei TRUE, vaikinis objektas pasirodys antrinėje vaikinių objektų grupėje, "
-"kuri gali tikti papildomiems, pvz. pagalbos mygtukams"
+#: ../gtk/gtkbbox.c:205
+msgid "If TRUE, the child appears in a secondary group of children, suitable for, e.g., help buttons"
+msgstr "Jei TRUE, vaikinis objektas pasirodys antrinėje vaikinių objektų grupėje, kuri gali tikti papildomiems, pvz. pagalbos mygtukams"
+
+#: ../gtk/gtkbbox.c:212
+#| msgid "Homogeneous"
+msgid "Non-Homogeneous"
+msgstr "Nevienalytis"
 
-#: ../gtk/gtkbox.c:238 ../gtk/gtkcellareabox.c:317 ../gtk/gtkexpander.c:313
-#: ../gtk/gtkiconview.c:644 ../gtk/gtktreeviewcolumn.c:271
+#: ../gtk/gtkbbox.c:213
+#| msgid "If TRUE, the child can be made smaller than its requisition"
+msgid "If TRUE, the child will not be subject to homogeneous sizing"
+msgstr "Jei TEIGIAMA, vaikinis objektas nepaisomas esant vienalyčiam dydžio keitimui"
+
+#: ../gtk/gtkbox.c:241
+#: ../gtk/gtkcellareabox.c:317
+#: ../gtk/gtkexpander.c:314
+#: ../gtk/gtkiconview.c:644
+#: ../gtk/gtktreeviewcolumn.c:283
 msgid "Spacing"
 msgstr "Tarpai"
 
-#: ../gtk/gtkbox.c:239
+#: ../gtk/gtkbox.c:242
 msgid "The amount of space between children"
 msgstr "Tarpas tarp vaikinių objektų"
 
-#: ../gtk/gtkbox.c:248 ../gtk/gtktable.c:227 ../gtk/gtktoolbar.c:554
-#: ../gtk/gtktoolitemgroup.c:1650
+#: ../gtk/gtkbox.c:251
+#: ../gtk/gtktable.c:227
+#: ../gtk/gtktoolbar.c:561
+#: ../gtk/gtktoolitemgroup.c:1645
 msgid "Homogeneous"
 msgstr "Vienalytis"
 
-#: ../gtk/gtkbox.c:249
+#: ../gtk/gtkbox.c:252
 msgid "Whether the children should all be the same size"
 msgstr "Ar visi vaikiniai objektai turėtų būti to paties dydžio"
 
-#: ../gtk/gtkbox.c:269 ../gtk/gtkcellareabox.c:337 ../gtk/gtktoolbar.c:546
-#: ../gtk/gtktoolitemgroup.c:1657 ../gtk/gtktoolpalette.c:1101
-#: ../gtk/gtktreeviewcolumn.c:327
+#: ../gtk/gtkbox.c:272
+#: ../gtk/gtkcellareabox.c:337
+#: ../gtk/gtktoolbar.c:553
+#: ../gtk/gtktoolitemgroup.c:1652
+#: ../gtk/gtktoolpalette.c:1070
+#: ../gtk/gtktreeviewcolumn.c:339
 msgid "Expand"
 msgstr "Sutraukti"
 
-#: ../gtk/gtkbox.c:270
+#: ../gtk/gtkbox.c:273
 msgid "Whether the child should receive extra space when the parent grows"
-msgstr ""
-"Ar vaikinis elementas turi gauti papildomos erdvės, didėjant tėviniam "
-"objektui"
+msgstr "Ar vaikinis elementas turi gauti papildomos erdvės, didėjant tėviniam objektui"
 
-#: ../gtk/gtkbox.c:286 ../gtk/gtktoolitemgroup.c:1664
+#: ../gtk/gtkbox.c:289
+#: ../gtk/gtktoolitemgroup.c:1659
 msgid "Fill"
 msgstr "Užpildymas"
 
-#: ../gtk/gtkbox.c:287
-msgid ""
-"Whether extra space given to the child should be allocated to the child or "
-"used as padding"
-msgstr ""
-"Nustato, ar papildoma erdvė, skirta vaikiniam objektui, turėtų būti "
-"priskirta pačiam objektui, ar panaudota kaip paraštė"
+#: ../gtk/gtkbox.c:290
+msgid "Whether extra space given to the child should be allocated to the child or used as padding"
+msgstr "Nustato, ar papildoma erdvė, skirta vaikiniam objektui, turėtų būti priskirta pačiam objektui, ar panaudota kaip paraštė"
 
-#: ../gtk/gtkbox.c:294 ../gtk/gtktrayicon-x11.c:169
+#: ../gtk/gtkbox.c:297
+#: ../gtk/gtktrayicon-x11.c:169
 msgid "Padding"
 msgstr "Paraštė"
 
-#: ../gtk/gtkbox.c:295
+#: ../gtk/gtkbox.c:298
 msgid "Extra space to put between the child and its neighbors, in pixels"
 msgstr "Papildomas tarpas tarp vaikinio objekto ir jo kaimynų (taškais)"
 
-#: ../gtk/gtkbox.c:301
+#: ../gtk/gtkbox.c:304
 msgid "Pack type"
 msgstr "Paketo tipas"
 
-#: ../gtk/gtkbox.c:302
-msgid ""
-"A GtkPackType indicating whether the child is packed with reference to the "
-"start or end of the parent"
-msgstr ""
-"GtkPackType požymis rodantis ar vaikinis elementas supakuotas su nuoroda į "
-"tėvinio elemento pradžią, ar pabaigą"
+#: ../gtk/gtkbox.c:305
+msgid "A GtkPackType indicating whether the child is packed with reference to the start or end of the parent"
+msgstr "GtkPackType požymis rodantis ar vaikinis elementas supakuotas su nuoroda į tėvinio elemento pradžią, ar pabaigą"
 
-#: ../gtk/gtkbox.c:308 ../gtk/gtknotebook.c:760 ../gtk/gtkpaned.c:326
-#: ../gtk/gtktoolitemgroup.c:1678
+#: ../gtk/gtkbox.c:311
+#: ../gtk/gtknotebook.c:771
+#: ../gtk/gtkpaned.c:349
+#: ../gtk/gtktoolitemgroup.c:1673
 msgid "Position"
 msgstr "Pozicija"
 
-#: ../gtk/gtkbox.c:309 ../gtk/gtknotebook.c:761
+#: ../gtk/gtkbox.c:312
+#: ../gtk/gtknotebook.c:772
 msgid "The index of the child in the parent"
 msgstr "Vaikinio elemento indeksas tėviniame elemente"
 
@@ -947,254 +942,242 @@ msgstr "Vertimų sritis"
 msgid "The translation domain used by gettext"
 msgstr "Vertimų sritis, naudojama „gettext“"
 
-#: ../gtk/gtkbutton.c:228
-msgid ""
-"Text of the label widget inside the button, if the button contains a label "
-"widget"
+#: ../gtk/gtkbutton.c:229
+msgid "Text of the label widget inside the button, if the button contains a label widget"
 msgstr "Žymės objekto tekstas ant mygtuko, jei mygtukas turi žymės objektą"
 
-#: ../gtk/gtkbutton.c:235 ../gtk/gtkexpander.c:297 ../gtk/gtklabel.c:765
-#: ../gtk/gtkmenuitem.c:389 ../gtk/gtktoolbutton.c:239
+#: ../gtk/gtkbutton.c:236
+#: ../gtk/gtkexpander.c:298
+#: ../gtk/gtklabel.c:765
+#: ../gtk/gtkmenuitem.c:399
+#: ../gtk/gtktoolbutton.c:239
 msgid "Use underline"
 msgstr "Naudoti pabraukimą"
 
-#: ../gtk/gtkbutton.c:236 ../gtk/gtkexpander.c:298 ../gtk/gtklabel.c:766
-#: ../gtk/gtkmenuitem.c:390
-msgid ""
-"If set, an underline in the text indicates the next character should be used "
-"for the mnemonic accelerator key"
-msgstr ""
-"Jei įjungta, pabraukimo simbolis tekste rodo, kad po jo esantis simbolis "
-"naudojamas kaip mnemoninis spartusis klavišas"
+#: ../gtk/gtkbutton.c:237
+#: ../gtk/gtkexpander.c:299
+#: ../gtk/gtklabel.c:766
+#: ../gtk/gtkmenuitem.c:400
+msgid "If set, an underline in the text indicates the next character should be used for the mnemonic accelerator key"
+msgstr "Jei įjungta, pabraukimo simbolis tekste rodo, kad po jo esantis simbolis naudojamas kaip mnemoninis spartusis klavišas"
 
-#: ../gtk/gtkbutton.c:243 ../gtk/gtkimagemenuitem.c:175
+#: ../gtk/gtkbutton.c:244
+#: ../gtk/gtkimagemenuitem.c:175
 msgid "Use stock"
 msgstr "Naudoti standartinį"
 
-#: ../gtk/gtkbutton.c:244
-msgid ""
-"If set, the label is used to pick a stock item instead of being displayed"
-msgstr ""
-"Jei įjungta, žymė yra naudojama parinkti standartinį punktą vietoj rodomo"
+#: ../gtk/gtkbutton.c:245
+msgid "If set, the label is used to pick a stock item instead of being displayed"
+msgstr "Jei įjungta, žymė yra naudojama parinkti standartinį punktą vietoj rodomo"
 
-#: ../gtk/gtkbutton.c:251 ../gtk/gtkcombobox.c:791
-#: ../gtk/gtkfilechooserbutton.c:424
+#: ../gtk/gtkbutton.c:252
+#: ../gtk/gtkcombobox.c:792
+#: ../gtk/gtkfilechooserbutton.c:426
 msgid "Focus on click"
 msgstr "Aktyvinti spragtelėjus"
 
-#: ../gtk/gtkbutton.c:252 ../gtk/gtkfilechooserbutton.c:425
+#: ../gtk/gtkbutton.c:253
+#: ../gtk/gtkfilechooserbutton.c:427
 msgid "Whether the button grabs focus when it is clicked with the mouse"
 msgstr "Ar mygtukas yra suaktyvinamas, kai pažymima pele"
 
-#: ../gtk/gtkbutton.c:259
+#: ../gtk/gtkbutton.c:260
 msgid "Border relief"
 msgstr "Rėmelio reljefas"
 
-#: ../gtk/gtkbutton.c:260
+#: ../gtk/gtkbutton.c:261
 msgid "The border relief style"
 msgstr "Rėmelio reljefo stilius"
 
-#: ../gtk/gtkbutton.c:277
+#: ../gtk/gtkbutton.c:278
 msgid "Horizontal alignment for child"
 msgstr "Vaikinio objekto horizontalus lygiavimas"
 
-#: ../gtk/gtkbutton.c:296
+#: ../gtk/gtkbutton.c:297
 msgid "Vertical alignment for child"
 msgstr "Vaikinio objekto vertikalus lygiavimas"
 
-#: ../gtk/gtkbutton.c:313 ../gtk/gtkimagemenuitem.c:160
+#: ../gtk/gtkbutton.c:314
+#: ../gtk/gtkimagemenuitem.c:160
 msgid "Image widget"
 msgstr "Paveikslėlio objektas"
 
-#: ../gtk/gtkbutton.c:314
+#: ../gtk/gtkbutton.c:315
 msgid "Child widget to appear next to the button text"
 msgstr "Vaikinis objektas rodomas šalia mygtuko teksto"
 
-#: ../gtk/gtkbutton.c:328
+#: ../gtk/gtkbutton.c:329
 msgid "Image position"
 msgstr "Paveikslėlio padėtis"
 
-#: ../gtk/gtkbutton.c:329
+#: ../gtk/gtkbutton.c:330
 msgid "The position of the image relative to the text"
 msgstr "Paveikslėlio padėtis teksto atžvilgiu"
 
-#: ../gtk/gtkbutton.c:449
+#: ../gtk/gtkbutton.c:450
 msgid "Default Spacing"
 msgstr "Numatyti tarpai"
 
-#: ../gtk/gtkbutton.c:450
+#: ../gtk/gtkbutton.c:451
 msgid "Extra space to add for GTK_CAN_DEFAULT buttons"
 msgstr "Papildoma erdvė pridedama prie GTK_CAN_DEFAULT tipo mygtukų"
 
-#: ../gtk/gtkbutton.c:464
+#: ../gtk/gtkbutton.c:465
 msgid "Default Outside Spacing"
 msgstr "Numatyti Išoriniai Tarpai"
 
-#: ../gtk/gtkbutton.c:465
-msgid ""
-"Extra space to add for GTK_CAN_DEFAULT buttons that is always drawn outside "
-"the border"
-msgstr ""
-"Papildoma erdvė pridedama prie GTK_CAN_DEFAULT tipo mygtukų, visada išvedama "
-"už rėmelio ribų"
+#: ../gtk/gtkbutton.c:466
+msgid "Extra space to add for GTK_CAN_DEFAULT buttons that is always drawn outside the border"
+msgstr "Papildoma erdvė pridedama prie GTK_CAN_DEFAULT tipo mygtukų, visada išvedama už rėmelio ribų"
 
-#: ../gtk/gtkbutton.c:470
+#: ../gtk/gtkbutton.c:471
 msgid "Child X Displacement"
 msgstr "Vaikinio Objekto X Atitraukimas"
 
-#: ../gtk/gtkbutton.c:471
-msgid ""
-"How far in the x direction to move the child when the button is depressed"
-msgstr ""
-"Kaip toli patraukti vaikinį objektą horizontaliai, kai mygtukas yra atleistas"
+#: ../gtk/gtkbutton.c:472
+msgid "How far in the x direction to move the child when the button is depressed"
+msgstr "Kaip toli patraukti vaikinį objektą horizontaliai, kai mygtukas yra atleistas"
 
-#: ../gtk/gtkbutton.c:478
+#: ../gtk/gtkbutton.c:479
 msgid "Child Y Displacement"
 msgstr "Vaikinio Objekto Y Atitraukimas"
 
-#: ../gtk/gtkbutton.c:479
-msgid ""
-"How far in the y direction to move the child when the button is depressed"
-msgstr ""
-"Kaip toli patraukti vaikinį objektą vertikaliai, kai mygtukas yra atleistas"
+#: ../gtk/gtkbutton.c:480
+msgid "How far in the y direction to move the child when the button is depressed"
+msgstr "Kaip toli patraukti vaikinį objektą vertikaliai, kai mygtukas yra atleistas"
 
-#: ../gtk/gtkbutton.c:495
+#: ../gtk/gtkbutton.c:496
 msgid "Displace focus"
 msgstr "Pastumti aktyvinimo zoną"
 
-#: ../gtk/gtkbutton.c:496
-msgid ""
-"Whether the child_displacement_x/_y properties should also affect the focus "
-"rectangle"
-msgstr ""
-"Ar „child_displacement_x/_y“ savybės turėtų taip pat keisti aktyvinimo "
-"stačiakampį"
+#: ../gtk/gtkbutton.c:497
+msgid "Whether the child_displacement_x/_y properties should also affect the focus rectangle"
+msgstr "Ar „child_displacement_x/_y“ savybės turėtų taip pat keisti aktyvinimo stačiakampį"
 
-#: ../gtk/gtkbutton.c:509 ../gtk/gtkentry.c:790 ../gtk/gtkentry.c:1865
+#: ../gtk/gtkbutton.c:510
+#: ../gtk/gtkentry.c:794
+#: ../gtk/gtkentry.c:1869
 msgid "Inner Border"
 msgstr "Vidinis rėmelis"
 
-#: ../gtk/gtkbutton.c:510
+#: ../gtk/gtkbutton.c:511
 msgid "Border between button edges and child."
 msgstr "Rėmelis tarp mygtuko kraštų ir vaikinio elemento."
 
-#: ../gtk/gtkbutton.c:523
+#: ../gtk/gtkbutton.c:524
 msgid "Image spacing"
 msgstr "Paveikslėlio protarpis"
 
-#: ../gtk/gtkbutton.c:524
+#: ../gtk/gtkbutton.c:525
 msgid "Spacing in pixels between the image and label"
 msgstr "Tarpas pikseliais tarp paveikslėlio ir užrašo"
 
-#: ../gtk/gtkcalendar.c:468
+#: ../gtk/gtkcalendar.c:471
 msgid "Year"
 msgstr "Metai"
 
-#: ../gtk/gtkcalendar.c:469
+#: ../gtk/gtkcalendar.c:472
 msgid "The selected year"
 msgstr "Pasirinkti metai"
 
-#: ../gtk/gtkcalendar.c:482
+#: ../gtk/gtkcalendar.c:485
 msgid "Month"
 msgstr "Mėnuo"
 
-#: ../gtk/gtkcalendar.c:483
+#: ../gtk/gtkcalendar.c:486
 msgid "The selected month (as a number between 0 and 11)"
 msgstr "Pasirinktas mėnuo (kaip skaičius tarp 0 ir 11)"
 
-#: ../gtk/gtkcalendar.c:497
+#: ../gtk/gtkcalendar.c:500
 msgid "Day"
 msgstr "Diena"
 
-#: ../gtk/gtkcalendar.c:498
-msgid ""
-"The selected day (as a number between 1 and 31, or 0 to unselect the "
-"currently selected day)"
-msgstr ""
-"Pasirinkta diena (kaip skaičius tarp 1 ir 31, nulis atšaukia pasirinktos "
-"dienos pažymėjimą)"
+#: ../gtk/gtkcalendar.c:501
+msgid "The selected day (as a number between 1 and 31, or 0 to unselect the currently selected day)"
+msgstr "Pasirinkta diena (kaip skaičius tarp 1 ir 31, nulis atšaukia pasirinktos dienos pažymėjimą)"
 
-#: ../gtk/gtkcalendar.c:512
+#: ../gtk/gtkcalendar.c:515
 msgid "Show Heading"
 msgstr "Rodyti antraštę"
 
-#: ../gtk/gtkcalendar.c:513
+#: ../gtk/gtkcalendar.c:516
 msgid "If TRUE, a heading is displayed"
 msgstr "Jei TEIGIAMA, antraštė yra rodoma"
 
-#: ../gtk/gtkcalendar.c:527
+#: ../gtk/gtkcalendar.c:530
 msgid "Show Day Names"
 msgstr "Rodyti dienų vardus"
 
-#: ../gtk/gtkcalendar.c:528
+#: ../gtk/gtkcalendar.c:531
 msgid "If TRUE, day names are displayed"
 msgstr "Jei TEIGIAMA, dienų vardai yra rodomi"
 
-#: ../gtk/gtkcalendar.c:541
+#: ../gtk/gtkcalendar.c:544
 msgid "No Month Change"
 msgstr "Mėnesiai nekeičiami"
 
-#: ../gtk/gtkcalendar.c:542
+#: ../gtk/gtkcalendar.c:545
 msgid "If TRUE, the selected month cannot be changed"
 msgstr "Jei TEIGIAMA, pasirinktas mėnuo negali būti pakeistas"
 
-#: ../gtk/gtkcalendar.c:556
+#: ../gtk/gtkcalendar.c:559
 msgid "Show Week Numbers"
 msgstr "Rodyti savaičių numerius"
 
-#: ../gtk/gtkcalendar.c:557
+#: ../gtk/gtkcalendar.c:560
 msgid "If TRUE, week numbers are displayed"
 msgstr "Jei TEIGIAMA, rodomas savaitės numeris"
 
-#: ../gtk/gtkcalendar.c:572
+#: ../gtk/gtkcalendar.c:575
 msgid "Details Width"
 msgstr "Detalių plotis"
 
-#: ../gtk/gtkcalendar.c:573
+#: ../gtk/gtkcalendar.c:576
 msgid "Details width in characters"
 msgstr "Detalių plotis (simboliais)"
 
-#: ../gtk/gtkcalendar.c:588
+#: ../gtk/gtkcalendar.c:591
 msgid "Details Height"
 msgstr "Detalių aukštis"
 
-#: ../gtk/gtkcalendar.c:589
+#: ../gtk/gtkcalendar.c:592
 msgid "Details height in rows"
 msgstr "Detalių aukštis (eilutėmis)"
 
-#: ../gtk/gtkcalendar.c:605
+#: ../gtk/gtkcalendar.c:608
 msgid "Show Details"
 msgstr "Rodyti detales"
 
-#: ../gtk/gtkcalendar.c:606
+#: ../gtk/gtkcalendar.c:609
 msgid "If TRUE, details are shown"
 msgstr "Jei TEIGIAMA, rodomos detalės"
 
-#: ../gtk/gtkcalendar.c:618
+#: ../gtk/gtkcalendar.c:621
 msgid "Inner border"
 msgstr "Vidinis rėmelis"
 
-#: ../gtk/gtkcalendar.c:619
+#: ../gtk/gtkcalendar.c:622
 msgid "Inner border space"
 msgstr "Vidinio rėmelio tarpas"
 
-#: ../gtk/gtkcalendar.c:630
+#: ../gtk/gtkcalendar.c:633
 msgid "Vertical separation"
 msgstr "Vertikalus skyrimas"
 
-#: ../gtk/gtkcalendar.c:631
+#: ../gtk/gtkcalendar.c:634
 msgid "Space between day headers and main area"
 msgstr "Tarpas tarp dienos antraščių ir pagrindinės srities"
 
-#: ../gtk/gtkcalendar.c:642
+#: ../gtk/gtkcalendar.c:645
 msgid "Horizontal separation"
 msgstr "Horizontalus skyrimas"
 
-#: ../gtk/gtkcalendar.c:643
+#: ../gtk/gtkcalendar.c:646
 msgid "Space between week headers and main area"
 msgstr "Tarpas tarp savaitės antraščių ir pagrindinės srities"
 
-#: ../gtk/gtkcellareabox.c:318 ../gtk/gtktreeviewcolumn.c:272
+#: ../gtk/gtkcellareabox.c:318
+#: ../gtk/gtktreeviewcolumn.c:284
 msgid "Space which is inserted between cells"
 msgstr "Erdvė įterpiama tarp langelių"
 
@@ -1223,12 +1206,8 @@ msgid "Pack Type"
 msgstr "Pakavimo tipas"
 
 #: ../gtk/gtkcellareabox.c:388
-msgid ""
-"A GtkPackType indicating whether the cell is packed with reference to the "
-"start or end of the cell area"
-msgstr ""
-"GtkPackType, rodantis, ar ląstelė supakuota su nuoroda į ląstelės ploto "
-"pradžią ar pabaigą"
+msgid "A GtkPackType indicating whether the cell is packed with reference to the start or end of the cell area"
+msgstr "GtkPackType, rodantis, ar ląstelė supakuota su nuoroda į ląstelės ploto pradžią ar pabaigą"
 
 #: ../gtk/gtkcellarea.c:803
 msgid "Focus Cell"
@@ -1254,28 +1233,32 @@ msgstr "Redagavimo elementas"
 msgid "The widget currently editing the edited cell"
 msgstr "Elementas, šiuo metu redaguojantis ląstelę"
 
-#: ../gtk/gtkcellareacontext.c:127
+#: ../gtk/gtkcellareacontext.c:119
 msgid "Area"
 msgstr "Sritis"
 
-#: ../gtk/gtkcellareacontext.c:128
+#: ../gtk/gtkcellareacontext.c:120
 msgid "The Cell Area this context was created for"
 msgstr "Ląstelės sritis, kuriai buvo sukurtas šis kontekstas"
 
-#: ../gtk/gtkcellareacontext.c:144 ../gtk/gtkcellareacontext.c:163
-#: ../gtk/gtktreeviewcolumn.c:299
+#: ../gtk/gtkcellareacontext.c:136
+#: ../gtk/gtkcellareacontext.c:155
+#: ../gtk/gtktreeviewcolumn.c:311
 msgid "Minimum Width"
 msgstr "Mažiausias plotis"
 
-#: ../gtk/gtkcellareacontext.c:145 ../gtk/gtkcellareacontext.c:164
+#: ../gtk/gtkcellareacontext.c:137
+#: ../gtk/gtkcellareacontext.c:156
 msgid "Minimum cached width"
 msgstr "Minimalus podėlio plotis"
 
-#: ../gtk/gtkcellareacontext.c:182 ../gtk/gtkcellareacontext.c:201
+#: ../gtk/gtkcellareacontext.c:174
+#: ../gtk/gtkcellareacontext.c:193
 msgid "Minimum Height"
 msgstr "Minimalus aukštis"
 
-#: ../gtk/gtkcellareacontext.c:183 ../gtk/gtkcellareacontext.c:202
+#: ../gtk/gtkcellareacontext.c:175
+#: ../gtk/gtkcellareacontext.c:194
 msgid "Minimum cached height"
 msgstr "Minimalus podėlio aukštis"
 
@@ -1459,7 +1442,8 @@ msgstr "Teksto stulpelis"
 msgid "A column in the data source model to get the strings from"
 msgstr "Duomenų šaltinio stulpelis, iš kurio gaunomos sekos"
 
-#: ../gtk/gtkcellrenderercombo.c:171 ../gtk/gtkcombobox.c:858
+#: ../gtk/gtkcellrenderercombo.c:171
+#: ../gtk/gtkcombobox.c:859
 msgid "Has Entry"
 msgstr "Turi įrašo vietą"
 
@@ -1491,7 +1475,8 @@ msgstr "Pixbuf išplėtimas uždarytas"
 msgid "Pixbuf for closed expander"
 msgstr "Uždaro išplėtimo buferis"
 
-#: ../gtk/gtkcellrendererpixbuf.c:164 ../gtk/gtkimage.c:253
+#: ../gtk/gtkcellrendererpixbuf.c:164
+#: ../gtk/gtkimage.c:254
 #: ../gtk/gtkstatusicon.c:251
 msgid "Stock ID"
 msgstr "Standartinis ID"
@@ -1500,8 +1485,10 @@ msgstr "Standartinis ID"
 msgid "The stock ID of the stock icon to render"
 msgstr "Standartinis ID naudojamas su įprasta piktograma"
 
-#: ../gtk/gtkcellrendererpixbuf.c:172 ../gtk/gtkcellrendererspinner.c:151
-#: ../gtk/gtkrecentmanager.c:309 ../gtk/gtkstatusicon.c:292
+#: ../gtk/gtkcellrendererpixbuf.c:172
+#: ../gtk/gtkcellrendererspinner.c:151
+#: ../gtk/gtkrecentmanager.c:309
+#: ../gtk/gtkstatusicon.c:292
 msgid "Size"
 msgstr "Dydis"
 
@@ -1525,8 +1512,9 @@ msgstr "Sekti būseną"
 msgid "Whether the rendered pixbuf should be colorized according to the state"
 msgstr "Ar atvaizduoklio pixbuf turėtų būti spalvinamas atsižvelgiant į būseną"
 
-#: ../gtk/gtkcellrendererpixbuf.c:234 ../gtk/gtkimage.c:328
-#: ../gtk/gtkwindow.c:700
+#: ../gtk/gtkcellrendererpixbuf.c:234
+#: ../gtk/gtkimage.c:329
+#: ../gtk/gtkwindow.c:701
 msgid "Icon"
 msgstr "Piktograma"
 
@@ -1534,9 +1522,12 @@ msgstr "Piktograma"
 msgid "Value of the progress bar"
 msgstr "Pažangos juostos reikšmė"
 
-#: ../gtk/gtkcellrendererprogress.c:156 ../gtk/gtkcellrenderertext.c:254
-#: ../gtk/gtkentry.c:833 ../gtk/gtkentrybuffer.c:352
-#: ../gtk/gtkmessagedialog.c:227 ../gtk/gtkprogressbar.c:174
+#: ../gtk/gtkcellrendererprogress.c:156
+#: ../gtk/gtkcellrenderertext.c:254
+#: ../gtk/gtkentrybuffer.c:352
+#: ../gtk/gtkentry.c:837
+#: ../gtk/gtkmessagedialog.c:227
+#: ../gtk/gtkprogressbar.c:176
 #: ../gtk/gtktextbuffer.c:221
 msgid "Text"
 msgstr "Tekstas"
@@ -1545,29 +1536,22 @@ msgstr "Tekstas"
 msgid "Text on the progress bar"
 msgstr "Tekstas rodomas pažangos juostoje"
 
-#: ../gtk/gtkcellrendererprogress.c:180 ../gtk/gtkcellrendererspinner.c:137
+#: ../gtk/gtkcellrendererprogress.c:180
+#: ../gtk/gtkcellrendererspinner.c:137
 msgid "Pulse"
 msgstr "Pulsavimas"
 
 #: ../gtk/gtkcellrendererprogress.c:181
-msgid ""
-"Set this to positive values to indicate that some progress is made, but you "
-"don't know how much."
-msgstr ""
-"Nustatykite teigiamas reikšmes kai žinote, kad užduotis vykdoma, tačiau "
-"nežinote, kokia darbo dalis atlikta."
+msgid "Set this to positive values to indicate that some progress is made, but you don't know how much."
+msgstr "Nustatykite teigiamas reikšmes kai žinote, kad užduotis vykdoma, tačiau nežinote, kokia darbo dalis atlikta."
 
 #: ../gtk/gtkcellrendererprogress.c:197
 msgid "Text x alignment"
 msgstr "Teksto x lygiavimas"
 
 #: ../gtk/gtkcellrendererprogress.c:198
-msgid ""
-"The horizontal text alignment, from 0 (left) to 1 (right). Reversed for RTL "
-"layouts."
-msgstr ""
-"Horizontalus lygiavimas, nuo 0 (kairysis) iki 1 (dešinysis). Iš-dešinės-į-"
-"kairę turiniui atvirkščiai."
+msgid "The horizontal text alignment, from 0 (left) to 1 (right). Reversed for RTL layouts."
+msgstr "Horizontalus lygiavimas, nuo 0 (kairysis) iki 1 (dešinysis). Iš-dešinės-į-kairę turiniui atvirkščiai."
 
 #: ../gtk/gtkcellrendererprogress.c:214
 msgid "Text y alignment"
@@ -1577,21 +1561,26 @@ msgstr "Teksto y lygiavimas"
 msgid "The vertical text alignment, from 0 (top) to 1 (bottom)."
 msgstr "Vertikalus lygiavimas, nuo 0 (viršus) iki 1 (apačia)."
 
-#: ../gtk/gtkcellrendererprogress.c:226 ../gtk/gtkprogressbar.c:150
-#: ../gtk/gtkrange.c:425
+#: ../gtk/gtkcellrendererprogress.c:226
+#: ../gtk/gtkprogressbar.c:152
+#: ../gtk/gtkrange.c:426
 msgid "Inverted"
 msgstr "Inversinis"
 
-#: ../gtk/gtkcellrendererprogress.c:227 ../gtk/gtkprogressbar.c:151
+#: ../gtk/gtkcellrendererprogress.c:227
+#: ../gtk/gtkprogressbar.c:153
 msgid "Invert the direction in which the progress bar grows"
 msgstr "Apsukti pažangos juostos augimo kryptį"
 
-#: ../gtk/gtkcellrendererspin.c:113 ../gtk/gtkrange.c:417
-#: ../gtk/gtkscalebutton.c:236 ../gtk/gtkspinbutton.c:321
+#: ../gtk/gtkcellrendererspin.c:113
+#: ../gtk/gtkrange.c:418
+#: ../gtk/gtkscalebutton.c:237
+#: ../gtk/gtkspinbutton.c:323
 msgid "Adjustment"
 msgstr "Slankiklis"
 
-#: ../gtk/gtkcellrendererspin.c:114 ../gtk/gtkspinbutton.c:322
+#: ../gtk/gtkcellrendererspin.c:114
+#: ../gtk/gtkspinbutton.c:324
 msgid "The adjustment that holds the value of the spin button"
 msgstr "Pataisa, kuri saugo sukimo mygtuko reikšmę"
 
@@ -1599,22 +1588,29 @@ msgstr "Pataisa, kuri saugo sukimo mygtuko reikšmę"
 msgid "Climb rate"
 msgstr "Spartėjimo greitis greitis"
 
-#: ../gtk/gtkcellrendererspin.c:130 ../gtk/gtkspinbutton.c:330
+#: ../gtk/gtkcellrendererspin.c:130
+#: ../gtk/gtkspinbutton.c:332
 msgid "The acceleration rate when you hold down a button"
 msgstr "Spartėjimo greitis, kai laikote mygtuką nuspaustą"
 
-#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:252
-#: ../gtk/gtkspinbutton.c:339
+#: ../gtk/gtkcellrendererspin.c:143
+#: ../gtk/gtkscale.c:254
+#: ../gtk/gtkspinbutton.c:341
 msgid "Digits"
 msgstr "Skaitmenys"
 
-#: ../gtk/gtkcellrendererspin.c:144 ../gtk/gtkspinbutton.c:340
+#: ../gtk/gtkcellrendererspin.c:144
+#: ../gtk/gtkspinbutton.c:342
 msgid "The number of decimal places to display"
 msgstr "Rodomų trumpeninės dalies skaitmenų kiekis"
 
-#: ../gtk/gtkcellrendererspinner.c:119 ../gtk/gtkcheckmenuitem.c:122
-#: ../gtk/gtkmenu.c:586 ../gtk/gtkspinner.c:118 ../gtk/gtkswitch.c:801
-#: ../gtk/gtktoggleaction.c:133 ../gtk/gtktogglebutton.c:177
+#: ../gtk/gtkcellrendererspinner.c:119
+#: ../gtk/gtkcheckmenuitem.c:123
+#: ../gtk/gtkmenu.c:588
+#: ../gtk/gtkspinner.c:115
+#: ../gtk/gtkswitch.c:784
+#: ../gtk/gtktoggleaction.c:133
+#: ../gtk/gtktogglebutton.c:178
 #: ../gtk/gtktoggletoolbutton.c:127
 msgid "Active"
 msgstr "Aktyvus"
@@ -1643,7 +1639,8 @@ msgstr "Žymė"
 msgid "Marked up text to render"
 msgstr "Apdorojamas sužymėtas tekstas"
 
-#: ../gtk/gtkcellrenderertext.c:270 ../gtk/gtklabel.c:751
+#: ../gtk/gtkcellrenderertext.c:270
+#: ../gtk/gtklabel.c:751
 msgid "Attributes"
 msgstr "Atributai"
 
@@ -1659,22 +1656,27 @@ msgstr "Vienos Pastraipos Veiksena"
 msgid "Whether to keep all text in a single paragraph"
 msgstr "Ar visas tekstas turi būti vienoje pastraipoje"
 
-#: ../gtk/gtkcellrenderertext.c:287 ../gtk/gtkcellview.c:191
-#: ../gtk/gtktexttag.c:196
+#: ../gtk/gtkcellrenderertext.c:287
+#: ../gtk/gtkcellview.c:191
+#: ../gtk/gtktexttag.c:199
 msgid "Background color name"
 msgstr "Fono spalvos pavadinimas"
 
-#: ../gtk/gtkcellrenderertext.c:288 ../gtk/gtkcellview.c:192
-#: ../gtk/gtktexttag.c:197
+#: ../gtk/gtkcellrenderertext.c:288
+#: ../gtk/gtkcellview.c:192
+#: ../gtk/gtktexttag.c:200
 msgid "Background color as a string"
 msgstr "Fono spalva kaip eilutė"
 
-#: ../gtk/gtkcellrenderertext.c:295 ../gtk/gtkcellview.c:198
-#: ../gtk/gtktexttag.c:204
+#: ../gtk/gtkcellrenderertext.c:295
+#: ../gtk/gtkcellview.c:198
+#: ../gtk/gtktexttag.c:207
 msgid "Background color"
 msgstr "Fono spalva"
 
-#: ../gtk/gtkcellrenderertext.c:296 ../gtk/gtkcellview.c:199
+#: ../gtk/gtkcellrenderertext.c:296
+#: ../gtk/gtkcellview.c:199
+#: ../gtk/gtktexttag.c:208
 msgid "Background color as a GdkColor"
 msgstr "Fono spalva kaip GdkColor"
 
@@ -1682,24 +1684,30 @@ msgstr "Fono spalva kaip GdkColor"
 msgid "Background color as RGBA"
 msgstr "Fono spalva kaip RGBA"
 
-#: ../gtk/gtkcellrenderertext.c:311 ../gtk/gtkcellview.c:213
+#: ../gtk/gtkcellrenderertext.c:311
+#: ../gtk/gtkcellview.c:213
+#: ../gtk/gtktexttag.c:223
 msgid "Background color as a GdkRGBA"
 msgstr "Fono spalva kaip GdkRGBA"
 
-#: ../gtk/gtkcellrenderertext.c:317 ../gtk/gtktexttag.c:220
+#: ../gtk/gtkcellrenderertext.c:317
+#: ../gtk/gtktexttag.c:238
 msgid "Foreground color name"
 msgstr "Priekinio plano spalvos pavadinimas"
 
-#: ../gtk/gtkcellrenderertext.c:318 ../gtk/gtktexttag.c:221
+#: ../gtk/gtkcellrenderertext.c:318
+#: ../gtk/gtktexttag.c:239
 msgid "Foreground color as a string"
 msgstr "Priekinio plano spalva kaip eilutė"
 
-#: ../gtk/gtkcellrenderertext.c:325 ../gtk/gtktexttag.c:228
+#: ../gtk/gtkcellrenderertext.c:325
+#: ../gtk/gtktexttag.c:246
 #: ../gtk/gtktrayicon-x11.c:137
 msgid "Foreground color"
 msgstr "Priekinio plano spalva"
 
 #: ../gtk/gtkcellrenderertext.c:326
+#: ../gtk/gtktexttag.c:247
 msgid "Foreground color as a GdkColor"
 msgstr "Priekinio plano spalva kaip GdkColor"
 
@@ -1708,74 +1716,92 @@ msgid "Foreground color as RGBA"
 msgstr "Priekinio plano spalva kaip RGBA"
 
 #: ../gtk/gtkcellrenderertext.c:341
+#: ../gtk/gtktexttag.c:262
 msgid "Foreground color as a GdkRGBA"
 msgstr "Priekinio plano spalva kaip GdkRGBA"
 
-#: ../gtk/gtkcellrenderertext.c:349 ../gtk/gtkentry.c:757
-#: ../gtk/gtktexttag.c:245 ../gtk/gtktextview.c:687
+#: ../gtk/gtkcellrenderertext.c:349
+#: ../gtk/gtkentry.c:761
+#: ../gtk/gtktexttag.c:278
+#: ../gtk/gtktextview.c:686
 msgid "Editable"
 msgstr "Taisomas"
 
-#: ../gtk/gtkcellrenderertext.c:350 ../gtk/gtktexttag.c:246
-#: ../gtk/gtktextview.c:688
+#: ../gtk/gtkcellrenderertext.c:350
+#: ../gtk/gtktexttag.c:279
+#: ../gtk/gtktextview.c:687
 msgid "Whether the text can be modified by the user"
 msgstr "Ar tekstas gali būti keičiamas vartotojo"
 
-#: ../gtk/gtkcellrenderertext.c:357 ../gtk/gtkcellrenderertext.c:365
-#: ../gtk/gtktexttag.c:261 ../gtk/gtktexttag.c:269
+#: ../gtk/gtkcellrenderertext.c:357
+#: ../gtk/gtkcellrenderertext.c:365
+#: ../gtk/gtktexttag.c:294
+#: ../gtk/gtktexttag.c:302
 msgid "Font"
 msgstr "Šriftas"
 
-#: ../gtk/gtkcellrenderertext.c:358 ../gtk/gtktexttag.c:262
+#: ../gtk/gtkcellrenderertext.c:358
+#: ../gtk/gtktexttag.c:295
 msgid "Font description as a string, e.g. \"Sans Italic 12\""
 msgstr "Simbolinis šrifto aprašymas, pvz. „Sans Italic 12“"
 
-#: ../gtk/gtkcellrenderertext.c:366 ../gtk/gtktexttag.c:270
+#: ../gtk/gtkcellrenderertext.c:366
+#: ../gtk/gtktexttag.c:303
 msgid "Font description as a PangoFontDescription struct"
 msgstr "Šrifto aprašymas kaip PangoFontDescription struktūra"
 
-#: ../gtk/gtkcellrenderertext.c:374 ../gtk/gtktexttag.c:277
+#: ../gtk/gtkcellrenderertext.c:374
+#: ../gtk/gtktexttag.c:310
 msgid "Font family"
 msgstr "Šriftų šeima"
 
-#: ../gtk/gtkcellrenderertext.c:375 ../gtk/gtktexttag.c:278
+#: ../gtk/gtkcellrenderertext.c:375
+#: ../gtk/gtktexttag.c:311
 msgid "Name of the font family, e.g. Sans, Helvetica, Times, Monospace"
 msgstr "Šriftų šeimos pavadinimas, pvz. Sans, Helvetica, Times, Monospace"
 
-#: ../gtk/gtkcellrenderertext.c:382 ../gtk/gtkcellrenderertext.c:383
-#: ../gtk/gtktexttag.c:285
+#: ../gtk/gtkcellrenderertext.c:382
+#: ../gtk/gtkcellrenderertext.c:383
+#: ../gtk/gtktexttag.c:318
 msgid "Font style"
 msgstr "Šrifto stilius"
 
-#: ../gtk/gtkcellrenderertext.c:391 ../gtk/gtkcellrenderertext.c:392
-#: ../gtk/gtktexttag.c:294
+#: ../gtk/gtkcellrenderertext.c:391
+#: ../gtk/gtkcellrenderertext.c:392
+#: ../gtk/gtktexttag.c:327
 msgid "Font variant"
 msgstr "Šrifto variantas"
 
-#: ../gtk/gtkcellrenderertext.c:400 ../gtk/gtkcellrenderertext.c:401
-#: ../gtk/gtktexttag.c:303
+#: ../gtk/gtkcellrenderertext.c:400
+#: ../gtk/gtkcellrenderertext.c:401
+#: ../gtk/gtktexttag.c:336
 msgid "Font weight"
 msgstr "Šrifto svoris"
 
-#: ../gtk/gtkcellrenderertext.c:410 ../gtk/gtkcellrenderertext.c:411
-#: ../gtk/gtktexttag.c:314
+#: ../gtk/gtkcellrenderertext.c:410
+#: ../gtk/gtkcellrenderertext.c:411
+#: ../gtk/gtktexttag.c:347
 msgid "Font stretch"
 msgstr "Šrifto ištempimas"
 
-#: ../gtk/gtkcellrenderertext.c:419 ../gtk/gtkcellrenderertext.c:420
-#: ../gtk/gtktexttag.c:323
+#: ../gtk/gtkcellrenderertext.c:419
+#: ../gtk/gtkcellrenderertext.c:420
+#: ../gtk/gtktexttag.c:356
 msgid "Font size"
 msgstr "Šrifto dydis"
 
-#: ../gtk/gtkcellrenderertext.c:429 ../gtk/gtktexttag.c:343
+#: ../gtk/gtkcellrenderertext.c:429
+#: ../gtk/gtktexttag.c:376
 msgid "Font points"
 msgstr "Šrifto punktai"
 
-#: ../gtk/gtkcellrenderertext.c:430 ../gtk/gtktexttag.c:344
+#: ../gtk/gtkcellrenderertext.c:430
+#: ../gtk/gtktexttag.c:377
 msgid "Font size in points"
 msgstr "Šriftas dydis taškais"
 
-#: ../gtk/gtkcellrenderertext.c:439 ../gtk/gtktexttag.c:333
+#: ../gtk/gtkcellrenderertext.c:439
+#: ../gtk/gtktexttag.c:366
 msgid "Font scale"
 msgstr "Šrifto mastelis"
 
@@ -1783,70 +1809,67 @@ msgstr "Šrifto mastelis"
 msgid "Font scaling factor"
 msgstr "Šrifto mastelio dydis"
 
-#: ../gtk/gtkcellrenderertext.c:449 ../gtk/gtktexttag.c:412
+#: ../gtk/gtkcellrenderertext.c:449
+#: ../gtk/gtktexttag.c:445
 msgid "Rise"
 msgstr "Iškilumas"
 
 #: ../gtk/gtkcellrenderertext.c:450
-msgid ""
-"Offset of text above the baseline (below the baseline if rise is negative)"
-msgstr ""
-"Teksto iškėlimas virš pagrindinės teksto eilutės (nuleidimas, jei reikšmė "
-"neigiama)"
+msgid "Offset of text above the baseline (below the baseline if rise is negative)"
+msgstr "Teksto iškėlimas virš pagrindinės teksto eilutės (nuleidimas, jei reikšmė neigiama)"
 
-#: ../gtk/gtkcellrenderertext.c:461 ../gtk/gtktexttag.c:452
+#: ../gtk/gtkcellrenderertext.c:461
+#: ../gtk/gtktexttag.c:485
 msgid "Strikethrough"
 msgstr "Perbrauktas"
 
-#: ../gtk/gtkcellrenderertext.c:462 ../gtk/gtktexttag.c:453
+#: ../gtk/gtkcellrenderertext.c:462
+#: ../gtk/gtktexttag.c:486
 msgid "Whether to strike through the text"
 msgstr "Ar perbraukti tekstą"
 
-#: ../gtk/gtkcellrenderertext.c:469 ../gtk/gtktexttag.c:460
+#: ../gtk/gtkcellrenderertext.c:469
+#: ../gtk/gtktexttag.c:493
 msgid "Underline"
 msgstr "Pabrauktas"
 
-#: ../gtk/gtkcellrenderertext.c:470 ../gtk/gtktexttag.c:461
+#: ../gtk/gtkcellrenderertext.c:470
+#: ../gtk/gtktexttag.c:494
 msgid "Style of underline for this text"
 msgstr "Šio teksto pabraukimo stilius"
 
-#: ../gtk/gtkcellrenderertext.c:478 ../gtk/gtktexttag.c:372
+#: ../gtk/gtkcellrenderertext.c:478
+#: ../gtk/gtktexttag.c:405
 msgid "Language"
 msgstr "Kalba"
 
 #: ../gtk/gtkcellrenderertext.c:479
-msgid ""
-"The language this text is in, as an ISO code. Pango can use this as a hint "
-"when rendering the text. If you don't understand this parameter, you "
-"probably don't need it"
-msgstr ""
-"Šio teksto kalbos ISO kodas. Pango posistemė gali juo pasinaudoti išvesdama "
-"teksta. Jei nesuprantate šio nustatymo galimybių, Jums greičiausiai jo "
-"nereikia"
+msgid "The language this text is in, as an ISO code. Pango can use this as a hint when rendering the text. If you don't understand this parameter, you probably don't need it"
+msgstr "Šio teksto kalbos ISO kodas. Pango posistemė gali juo pasinaudoti išvesdama teksta. Jei nesuprantate šio nustatymo galimybių, Jums greičiausiai jo nereikia"
 
-#: ../gtk/gtkcellrenderertext.c:499 ../gtk/gtklabel.c:876
-#: ../gtk/gtkprogressbar.c:214
+#: ../gtk/gtkcellrenderertext.c:499
+#: ../gtk/gtklabel.c:876
+#: ../gtk/gtkprogressbar.c:216
 msgid "Ellipsize"
 msgstr "Elipsuoti"
 
 #: ../gtk/gtkcellrenderertext.c:500
-msgid ""
-"The preferred place to ellipsize the string, if the cell renderer does not "
-"have enough room to display the entire string"
-msgstr ""
-"Pageidaujama vieta užrašo elipsavimui, jeigu langelio atvaizduokliui "
-"nepakanka vietos parodyti visam užrašui"
+msgid "The preferred place to ellipsize the string, if the cell renderer does not have enough room to display the entire string"
+msgstr "Pageidaujama vieta užrašo elipsavimui, jeigu langelio atvaizduokliui nepakanka vietos parodyti visam užrašui"
 
-#: ../gtk/gtkcellrenderertext.c:519 ../gtk/gtkfilechooserbutton.c:452
+#: ../gtk/gtkcellrenderertext.c:519
+#: ../gtk/gtkfilechooserbutton.c:454
 #: ../gtk/gtklabel.c:897
 msgid "Width In Characters"
 msgstr "Plotis simboliais"
 
-#: ../gtk/gtkcellrenderertext.c:520 ../gtk/gtklabel.c:898
+#: ../gtk/gtkcellrenderertext.c:520
+#: ../gtk/gtklabel.c:898
 msgid "The desired width of the label, in characters"
 msgstr "Norimas užrašo plotis simboliais"
 
-#: ../gtk/gtkcellrenderertext.c:544 ../gtk/gtklabel.c:958
+#: ../gtk/gtkcellrenderertext.c:544
+#: ../gtk/gtklabel.c:958
 msgid "Maximum Width In Characters"
 msgstr "Didžiausias plotis simboliais"
 
@@ -1854,19 +1877,17 @@ msgstr "Didžiausias plotis simboliais"
 msgid "The maximum width of the cell, in characters"
 msgstr "Maksimalus ląstelės plotis simboliais"
 
-#: ../gtk/gtkcellrenderertext.c:563 ../gtk/gtktexttag.c:469
+#: ../gtk/gtkcellrenderertext.c:563
+#: ../gtk/gtktexttag.c:502
 msgid "Wrap mode"
 msgstr "Laužymo veiksena"
 
 #: ../gtk/gtkcellrenderertext.c:564
-msgid ""
-"How to break the string into multiple lines, if the cell renderer does not "
-"have enough room to display the entire string"
-msgstr ""
-"Kaip laužyti užrašą į keletą eilučių, jei langeliui atvaizduokliui nepakanka "
-"vietos parodyti visam užrašui"
+msgid "How to break the string into multiple lines, if the cell renderer does not have enough room to display the entire string"
+msgstr "Kaip laužyti užrašą į keletą eilučių, jei langeliui atvaizduokliui nepakanka vietos parodyti visam užrašui"
 
-#: ../gtk/gtkcellrenderertext.c:583 ../gtk/gtkcombobox.c:680
+#: ../gtk/gtkcellrenderertext.c:583
+#: ../gtk/gtkcombobox.c:681
 msgid "Wrap width"
 msgstr "Eilučių laužymo plotis"
 
@@ -1874,7 +1895,8 @@ msgstr "Eilučių laužymo plotis"
 msgid "The width at which the text is wrapped"
 msgstr "Plotis, ties kuriuo laužiamas tekstas"
 
-#: ../gtk/gtkcellrenderertext.c:604 ../gtk/gtktreeviewcolumn.c:352
+#: ../gtk/gtkcellrenderertext.c:604
+#: ../gtk/gtktreeviewcolumn.c:364
 msgid "Alignment"
 msgstr "Lygiavimas"
 
@@ -1882,117 +1904,145 @@ msgstr "Lygiavimas"
 msgid "How to align the lines"
 msgstr "Kaip lygiuoti eilutes"
 
-#: ../gtk/gtkcellrenderertext.c:617 ../gtk/gtkcellview.c:317
-#: ../gtk/gtktexttag.c:558
+#: ../gtk/gtkcellrenderertext.c:617
+#: ../gtk/gtkcellview.c:317
+#: ../gtk/gtktexttag.c:605
 msgid "Background set"
 msgstr "Fonas nustatytas"
 
-#: ../gtk/gtkcellrenderertext.c:618 ../gtk/gtkcellview.c:318
-#: ../gtk/gtktexttag.c:559
+#: ../gtk/gtkcellrenderertext.c:618
+#: ../gtk/gtkcellview.c:318
+#: ../gtk/gtktexttag.c:606
 msgid "Whether this tag affects the background color"
 msgstr "Ar žymė keičia fono spalvą"
 
-#: ../gtk/gtkcellrenderertext.c:621 ../gtk/gtktexttag.c:566
+#: ../gtk/gtkcellrenderertext.c:621
+#: ../gtk/gtktexttag.c:613
 msgid "Foreground set"
 msgstr "Priekinis planas nustatytas"
 
-#: ../gtk/gtkcellrenderertext.c:622 ../gtk/gtktexttag.c:567
+#: ../gtk/gtkcellrenderertext.c:622
+#: ../gtk/gtktexttag.c:614
 msgid "Whether this tag affects the foreground color"
 msgstr "Ar ši žymė keičia priekinio plano spalvą"
 
-#: ../gtk/gtkcellrenderertext.c:625 ../gtk/gtktexttag.c:570
+#: ../gtk/gtkcellrenderertext.c:625
+#: ../gtk/gtktexttag.c:617
 msgid "Editability set"
 msgstr "Taisomumas nustatytas"
 
-#: ../gtk/gtkcellrenderertext.c:626 ../gtk/gtktexttag.c:571
+#: ../gtk/gtkcellrenderertext.c:626
+#: ../gtk/gtktexttag.c:618
 msgid "Whether this tag affects text editability"
 msgstr "Ar žymė keičia teksto taisymo galimybes"
 
-#: ../gtk/gtkcellrenderertext.c:629 ../gtk/gtktexttag.c:574
+#: ../gtk/gtkcellrenderertext.c:629
+#: ../gtk/gtktexttag.c:621
 msgid "Font family set"
 msgstr "Šriftų šeima nustatyta"
 
-#: ../gtk/gtkcellrenderertext.c:630 ../gtk/gtktexttag.c:575
+#: ../gtk/gtkcellrenderertext.c:630
+#: ../gtk/gtktexttag.c:622
 msgid "Whether this tag affects the font family"
 msgstr "Ar ši žymė keičia šrifto šeimą"
 
-#: ../gtk/gtkcellrenderertext.c:633 ../gtk/gtktexttag.c:578
+#: ../gtk/gtkcellrenderertext.c:633
+#: ../gtk/gtktexttag.c:625
 msgid "Font style set"
 msgstr "Šrifto stilius nustatytas"
 
-#: ../gtk/gtkcellrenderertext.c:634 ../gtk/gtktexttag.c:579
+#: ../gtk/gtkcellrenderertext.c:634
+#: ../gtk/gtktexttag.c:626
 msgid "Whether this tag affects the font style"
 msgstr "Ar ši žymė keičia šrifto stilių"
 
-#: ../gtk/gtkcellrenderertext.c:637 ../gtk/gtktexttag.c:582
+#: ../gtk/gtkcellrenderertext.c:637
+#: ../gtk/gtktexttag.c:629
 msgid "Font variant set"
 msgstr "Šrifto variantas nustatytas"
 
-#: ../gtk/gtkcellrenderertext.c:638 ../gtk/gtktexttag.c:583
+#: ../gtk/gtkcellrenderertext.c:638
+#: ../gtk/gtktexttag.c:630
 msgid "Whether this tag affects the font variant"
 msgstr "Ar ši žymė keičia šrifto variaciją"
 
-#: ../gtk/gtkcellrenderertext.c:641 ../gtk/gtktexttag.c:586
+#: ../gtk/gtkcellrenderertext.c:641
+#: ../gtk/gtktexttag.c:633
 msgid "Font weight set"
 msgstr "Šrifto svoris nustatytas"
 
-#: ../gtk/gtkcellrenderertext.c:642 ../gtk/gtktexttag.c:587
+#: ../gtk/gtkcellrenderertext.c:642
+#: ../gtk/gtktexttag.c:634
 msgid "Whether this tag affects the font weight"
 msgstr "Ar ši žymė keičia šrifto storį"
 
-#: ../gtk/gtkcellrenderertext.c:645 ../gtk/gtktexttag.c:590
+#: ../gtk/gtkcellrenderertext.c:645
+#: ../gtk/gtktexttag.c:637
 msgid "Font stretch set"
 msgstr "Nustatytas šriftas ištempimas"
 
-#: ../gtk/gtkcellrenderertext.c:646 ../gtk/gtktexttag.c:591
+#: ../gtk/gtkcellrenderertext.c:646
+#: ../gtk/gtktexttag.c:638
 msgid "Whether this tag affects the font stretch"
 msgstr "Ar ši žymė keičia šrifto plotį"
 
-#: ../gtk/gtkcellrenderertext.c:649 ../gtk/gtktexttag.c:594
+#: ../gtk/gtkcellrenderertext.c:649
+#: ../gtk/gtktexttag.c:641
 msgid "Font size set"
 msgstr "Šrifto dydis nustatytas"
 
-#: ../gtk/gtkcellrenderertext.c:650 ../gtk/gtktexttag.c:595
+#: ../gtk/gtkcellrenderertext.c:650
+#: ../gtk/gtktexttag.c:642
 msgid "Whether this tag affects the font size"
 msgstr "Ar ši žymė keičia šrifto dydį"
 
-#: ../gtk/gtkcellrenderertext.c:653 ../gtk/gtktexttag.c:598
+#: ../gtk/gtkcellrenderertext.c:653
+#: ../gtk/gtktexttag.c:645
 msgid "Font scale set"
 msgstr "Nustatytas šriftas mastelis"
 
-#: ../gtk/gtkcellrenderertext.c:654 ../gtk/gtktexttag.c:599
+#: ../gtk/gtkcellrenderertext.c:654
+#: ../gtk/gtktexttag.c:646
 msgid "Whether this tag scales the font size by a factor"
 msgstr "Ar žymė keičia šrifto dydį pagal mastelį"
 
-#: ../gtk/gtkcellrenderertext.c:657 ../gtk/gtktexttag.c:618
+#: ../gtk/gtkcellrenderertext.c:657
+#: ../gtk/gtktexttag.c:665
 msgid "Rise set"
 msgstr "Iškilimas nustatytas"
 
-#: ../gtk/gtkcellrenderertext.c:658 ../gtk/gtktexttag.c:619
+#: ../gtk/gtkcellrenderertext.c:658
+#: ../gtk/gtktexttag.c:666
 msgid "Whether this tag affects the rise"
 msgstr "Ar ši žymė keičia iškilumą"
 
-#: ../gtk/gtkcellrenderertext.c:661 ../gtk/gtktexttag.c:634
+#: ../gtk/gtkcellrenderertext.c:661
+#: ../gtk/gtktexttag.c:681
 msgid "Strikethrough set"
 msgstr "Perbraukimas nustatytas"
 
-#: ../gtk/gtkcellrenderertext.c:662 ../gtk/gtktexttag.c:635
+#: ../gtk/gtkcellrenderertext.c:662
+#: ../gtk/gtktexttag.c:682
 msgid "Whether this tag affects strikethrough"
 msgstr "Ar ši žymė keičia perbraukimą"
 
-#: ../gtk/gtkcellrenderertext.c:665 ../gtk/gtktexttag.c:642
+#: ../gtk/gtkcellrenderertext.c:665
+#: ../gtk/gtktexttag.c:689
 msgid "Underline set"
 msgstr "Pabraukimas nustatytas"
 
-#: ../gtk/gtkcellrenderertext.c:666 ../gtk/gtktexttag.c:643
+#: ../gtk/gtkcellrenderertext.c:666
+#: ../gtk/gtktexttag.c:690
 msgid "Whether this tag affects underlining"
 msgstr "Ar ši žymė keičia pabraukimą"
 
-#: ../gtk/gtkcellrenderertext.c:669 ../gtk/gtktexttag.c:606
+#: ../gtk/gtkcellrenderertext.c:669
+#: ../gtk/gtktexttag.c:653
 msgid "Language set"
 msgstr "Nustatyta kalba"
 
-#: ../gtk/gtkcellrenderertext.c:670 ../gtk/gtktexttag.c:607
+#: ../gtk/gtkcellrenderertext.c:670
+#: ../gtk/gtktexttag.c:654
 msgid "Whether this tag affects the language the text is rendered as"
 msgstr "Ar žymė nustato apdorojamo teksto kalbą"
 
@@ -2048,8 +2098,9 @@ msgstr "Piešti varnelę kaip perjungiklį"
 msgid "Indicator size"
 msgstr "Indikatoriaus dydis"
 
-#: ../gtk/gtkcellrenderertoggle.c:173 ../gtk/gtkcheckbutton.c:93
-#: ../gtk/gtkcheckmenuitem.c:146
+#: ../gtk/gtkcellrenderertoggle.c:173
+#: ../gtk/gtkcheckbutton.c:93
+#: ../gtk/gtkcheckmenuitem.c:147
 msgid "Size of check or radio indicator"
 msgstr "Pažymėjimo arba perjungimo lauko dydis"
 
@@ -2065,15 +2116,21 @@ msgstr "CellView modelis"
 msgid "The model for cell view"
 msgstr "Ląstelių rodinio modelis"
 
-#: ../gtk/gtkcellview.c:246 ../gtk/gtkcombobox.c:944
-#: ../gtk/gtkentrycompletion.c:448 ../gtk/gtkiconview.c:769
-#: ../gtk/gtktreemenu.c:329 ../gtk/gtktreeviewcolumn.c:415
+#: ../gtk/gtkcellview.c:246
+#: ../gtk/gtkcombobox.c:945
+#: ../gtk/gtkentrycompletion.c:448
+#: ../gtk/gtkiconview.c:769
+#: ../gtk/gtktreemenu.c:329
+#: ../gtk/gtktreeviewcolumn.c:427
 msgid "Cell Area"
 msgstr "Ląstelės sritis"
 
-#: ../gtk/gtkcellview.c:247 ../gtk/gtkcombobox.c:945
-#: ../gtk/gtkentrycompletion.c:449 ../gtk/gtkiconview.c:770
-#: ../gtk/gtktreemenu.c:330 ../gtk/gtktreeviewcolumn.c:416
+#: ../gtk/gtkcellview.c:247
+#: ../gtk/gtkcombobox.c:946
+#: ../gtk/gtkentrycompletion.c:449
+#: ../gtk/gtkiconview.c:770
+#: ../gtk/gtktreemenu.c:330
+#: ../gtk/gtktreeviewcolumn.c:428
 msgid "The GtkCellArea used to layout cells"
 msgstr "GtkCellArea, naudojama ląstelių išdėstymui"
 
@@ -2101,11 +2158,13 @@ msgstr "Pritaikyti modelį"
 msgid "Whether to request enough space for every row in the model"
 msgstr "Ar prašyti pakankamai ploto kiekvienai eilutei modelyje"
 
-#: ../gtk/gtkcheckbutton.c:92 ../gtk/gtkcheckmenuitem.c:145
+#: ../gtk/gtkcheckbutton.c:92
+#: ../gtk/gtkcheckmenuitem.c:146
 msgid "Indicator Size"
 msgstr "Indikatoriaus dydis"
 
-#: ../gtk/gtkcheckbutton.c:100 ../gtk/gtkexpander.c:363
+#: ../gtk/gtkcheckbutton.c:100
+#: ../gtk/gtkexpander.c:364
 msgid "Indicator Spacing"
 msgstr "Indikatoriaus Tarpai"
 
@@ -2113,23 +2172,24 @@ msgstr "Indikatoriaus Tarpai"
 msgid "Spacing around check or radio indicator"
 msgstr "Tarpas aplink pasirinkimo ar perjungimo laukus"
 
-#: ../gtk/gtkcheckmenuitem.c:123
+#: ../gtk/gtkcheckmenuitem.c:124
 msgid "Whether the menu item is checked"
 msgstr "Ar meniu punktas yra pažymėtas"
 
-#: ../gtk/gtkcheckmenuitem.c:130 ../gtk/gtktogglebutton.c:185
+#: ../gtk/gtkcheckmenuitem.c:131
+#: ../gtk/gtktogglebutton.c:186
 msgid "Inconsistent"
 msgstr "Nepastovus"
 
-#: ../gtk/gtkcheckmenuitem.c:131
+#: ../gtk/gtkcheckmenuitem.c:132
 msgid "Whether to display an \"inconsistent\" state"
 msgstr "Ar rodyti „nepastovią“ būseną"
 
-#: ../gtk/gtkcheckmenuitem.c:138
+#: ../gtk/gtkcheckmenuitem.c:139
 msgid "Draw as radio menu item"
 msgstr "Piešti kaip radio meniu elementą"
 
-#: ../gtk/gtkcheckmenuitem.c:139
+#: ../gtk/gtkcheckmenuitem.c:140
 msgid "Whether the menu item looks like a radio menu item"
 msgstr "Ar meniu punktas atrodo kaip persijungiantis meniu punktas"
 
@@ -2141,9 +2201,12 @@ msgstr "Naudoti alfa kanalus"
 msgid "Whether to give the color an alpha value"
 msgstr "Ar priskirti spalvai alfa kanalo reikšmę"
 
-#: ../gtk/gtkcolorbutton.c:185 ../gtk/gtkfilechooserbutton.c:438
-#: ../gtk/gtkfontbutton.c:152 ../gtk/gtkprintjob.c:141
-#: ../gtk/gtkstatusicon.c:438 ../gtk/gtktreeviewcolumn.c:319
+#: ../gtk/gtkcolorbutton.c:185
+#: ../gtk/gtkfilechooserbutton.c:440
+#: ../gtk/gtkfontbutton.c:151
+#: ../gtk/gtkprintjob.c:141
+#: ../gtk/gtkstatusicon.c:438
+#: ../gtk/gtktreeviewcolumn.c:331
 msgid "Title"
 msgstr "Pavadinimas"
 
@@ -2151,7 +2214,8 @@ msgstr "Pavadinimas"
 msgid "The title of the color selection dialog"
 msgstr "Spalvų pasirinkimo lango antraštė"
 
-#: ../gtk/gtkcolorbutton.c:200 ../gtk/gtkcolorsel.c:338
+#: ../gtk/gtkcolorbutton.c:200
+#: ../gtk/gtkcolorsel.c:336
 msgid "Current Color"
 msgstr "Esama spalva"
 
@@ -2159,15 +2223,14 @@ msgstr "Esama spalva"
 msgid "The selected color"
 msgstr "Pasirinkta spalva"
 
-#: ../gtk/gtkcolorbutton.c:215 ../gtk/gtkcolorsel.c:345
+#: ../gtk/gtkcolorbutton.c:215
+#: ../gtk/gtkcolorsel.c:343
 msgid "Current Alpha"
 msgstr "Esamas permatomumas"
 
 #: ../gtk/gtkcolorbutton.c:216
 msgid "The selected opacity value (0 fully transparent, 65535 fully opaque)"
-msgstr ""
-"Nustatyta neskaidrumo reikšmė (0 - visiškai skaidrus, 65535 - visiškai "
-"nepermatomas)"
+msgstr "Nustatyta neskaidrumo reikšmė (0 - visiškai skaidrus, 65535 - visiškai nepermatomas)"
 
 #: ../gtk/gtkcolorbutton.c:230
 msgid "Current RGBA Color"
@@ -2177,257 +2240,253 @@ msgstr "Esama RGBA spalva"
 msgid "The selected RGBA color"
 msgstr "Pasirinkta RGBA spalva"
 
-#: ../gtk/gtkcolorsel.c:324
+#: ../gtk/gtkcolorsel.c:322
 msgid "Has Opacity Control"
 msgstr "Rodyti skaidrumo keitiklį"
 
-#: ../gtk/gtkcolorsel.c:325
+#: ../gtk/gtkcolorsel.c:323
 msgid "Whether the color selector should allow setting opacity"
 msgstr "Ar spalvų parinkiklis leidžia keisti skaidrumą"
 
-#: ../gtk/gtkcolorsel.c:331
+#: ../gtk/gtkcolorsel.c:329
 msgid "Has palette"
 msgstr "Rodyti paletę"
 
-#: ../gtk/gtkcolorsel.c:332
+#: ../gtk/gtkcolorsel.c:330
 msgid "Whether a palette should be used"
 msgstr "Ar paletė bus naudojama"
 
-#: ../gtk/gtkcolorsel.c:339
+#: ../gtk/gtkcolorsel.c:337
 msgid "The current color"
 msgstr "Dabar pasirinkta spalva"
 
-#: ../gtk/gtkcolorsel.c:346
+#: ../gtk/gtkcolorsel.c:344
 msgid "The current opacity value (0 fully transparent, 65535 fully opaque)"
-msgstr ""
-"Nustatyta neskaidrumo reikšmė (0 - visiškai skaidrus, 65535 - visiškai "
-"nepermatomas)"
+msgstr "Nustatyta neskaidrumo reikšmė (0 - visiškai skaidrus, 65535 - visiškai nepermatomas)"
 
-#: ../gtk/gtkcolorsel.c:360
+#: ../gtk/gtkcolorsel.c:358
 msgid "Current RGBA"
 msgstr "Esama RGBA"
 
-#: ../gtk/gtkcolorsel.c:361
+#: ../gtk/gtkcolorsel.c:359
 msgid "The current RGBA color"
 msgstr "Dabartinė RGBA spalva"
 
-#: ../gtk/gtkcolorseldialog.c:135
+#: ../gtk/gtkcolorseldialog.c:134
 msgid "Color Selection"
 msgstr "Spalvų parinkiklis"
 
-#: ../gtk/gtkcolorseldialog.c:136
+#: ../gtk/gtkcolorseldialog.c:135
 msgid "The color selection embedded in the dialog."
 msgstr "Spalvų parinkiklis, integruotas dialoge."
 
-#: ../gtk/gtkcolorseldialog.c:142
+#: ../gtk/gtkcolorseldialog.c:141
 msgid "OK Button"
 msgstr "Mygtukas „Gerai“"
 
-#: ../gtk/gtkcolorseldialog.c:143
+#: ../gtk/gtkcolorseldialog.c:142
 msgid "The OK button of the dialog."
 msgstr "Dialogo mygtukas „Gerai“."
 
-#: ../gtk/gtkcolorseldialog.c:149
+#: ../gtk/gtkcolorseldialog.c:148
 msgid "Cancel Button"
 msgstr "Mygtukas „Atsisakyti“"
 
-#: ../gtk/gtkcolorseldialog.c:150
+#: ../gtk/gtkcolorseldialog.c:149
 msgid "The cancel button of the dialog."
 msgstr "Dialogo mygtukas „Atsisakyti“."
 
-#: ../gtk/gtkcolorseldialog.c:156
+#: ../gtk/gtkcolorseldialog.c:155
 msgid "Help Button"
 msgstr "Mygtukas „Pagalba“"
 
-#: ../gtk/gtkcolorseldialog.c:157
+#: ../gtk/gtkcolorseldialog.c:156
 msgid "The help button of the dialog."
 msgstr "Dialogo mygtukas „Pagalba“."
 
-#: ../gtk/gtkcombobox.c:663
+#: ../gtk/gtkcombobox.c:664
 msgid "ComboBox model"
 msgstr "ComboBox modelis"
 
-#: ../gtk/gtkcombobox.c:664
+#: ../gtk/gtkcombobox.c:665
 msgid "The model for the combo box"
 msgstr "Combo box modelis"
 
-#: ../gtk/gtkcombobox.c:681
+#: ../gtk/gtkcombobox.c:682
 msgid "Wrap width for laying out the items in a grid"
 msgstr "Laužymo plotis išdėstant elementus tinklelyje"
 
-#: ../gtk/gtkcombobox.c:703 ../gtk/gtktreemenu.c:383
+#: ../gtk/gtkcombobox.c:704
+#: ../gtk/gtktreemenu.c:383
 msgid "Row span column"
 msgstr "Eilučių suliejimo laukas"
 
-#: ../gtk/gtkcombobox.c:704 ../gtk/gtktreemenu.c:384
+#: ../gtk/gtkcombobox.c:705
+#: ../gtk/gtktreemenu.c:384
 msgid "TreeModel column containing the row span values"
 msgstr "TreeModel stulpelis, saugantis eilučių ištempimo reikšmes"
 
-#: ../gtk/gtkcombobox.c:725 ../gtk/gtktreemenu.c:404
+#: ../gtk/gtkcombobox.c:726
+#: ../gtk/gtktreemenu.c:404
 msgid "Column span column"
 msgstr "Stulpelių suliejimo laukas"
 
-#: ../gtk/gtkcombobox.c:726 ../gtk/gtktreemenu.c:405
+#: ../gtk/gtkcombobox.c:727
+#: ../gtk/gtktreemenu.c:405
 msgid "TreeModel column containing the column span values"
 msgstr "TreeModel stulpelis, saugantis stulpelių ištempimo reikšmes"
 
-#: ../gtk/gtkcombobox.c:747
+#: ../gtk/gtkcombobox.c:748
 msgid "Active item"
 msgstr "Aktyvus elementas"
 
-#: ../gtk/gtkcombobox.c:748
+#: ../gtk/gtkcombobox.c:749
 msgid "The item which is currently active"
 msgstr "Šiuo metu aktyvus elementas"
 
-#: ../gtk/gtkcombobox.c:767 ../gtk/gtkuimanager.c:479
+#: ../gtk/gtkcombobox.c:768
+#: ../gtk/gtkuimanager.c:479
 msgid "Add tearoffs to menus"
 msgstr "Pridėti atkabinimus į meniu"
 
-#: ../gtk/gtkcombobox.c:768
+#: ../gtk/gtkcombobox.c:769
 msgid "Whether dropdowns should have a tearoff menu item"
 msgstr "Ar išskleidžiami meniu turėtų turėti meniu atkabinimo elementą"
 
-#: ../gtk/gtkcombobox.c:783 ../gtk/gtkentry.c:782
+#: ../gtk/gtkcombobox.c:784
+#: ../gtk/gtkentry.c:786
 msgid "Has Frame"
 msgstr "Turi rėmelį"
 
-#: ../gtk/gtkcombobox.c:784
+#: ../gtk/gtkcombobox.c:785
 msgid "Whether the combo box draws a frame around the child"
 msgstr "Ar išsiskleidžiantis laukelis piešia rėmelį apie vaikinį elementą"
 
-#: ../gtk/gtkcombobox.c:792
+#: ../gtk/gtkcombobox.c:793
 msgid "Whether the combo box grabs focus when it is clicked with the mouse"
 msgstr "Ar išsiskleidžiantis laukelis suaktyvinamas, kai pažymima pele"
 
-#: ../gtk/gtkcombobox.c:807 ../gtk/gtkmenu.c:641
+#: ../gtk/gtkcombobox.c:808
+#: ../gtk/gtkmenu.c:643
 msgid "Tearoff Title"
 msgstr "Nutraukimo pavadinimas"
 
-#: ../gtk/gtkcombobox.c:808
-msgid ""
-"A title that may be displayed by the window manager when the popup is torn-"
-"off"
+#: ../gtk/gtkcombobox.c:809
+msgid "A title that may be displayed by the window manager when the popup is torn-off"
 msgstr "Pavadinimas, rodomas langų valdyklės, kai šis meniu nuplėštas"
 
-#: ../gtk/gtkcombobox.c:825
+#: ../gtk/gtkcombobox.c:826
 msgid "Popup shown"
 msgstr "Iššokantis langas rodomas"
 
-#: ../gtk/gtkcombobox.c:826
+#: ../gtk/gtkcombobox.c:827
 msgid "Whether the combo's dropdown is shown"
 msgstr "Ar rodyti išsiskleidžiančio laukelio mygtuką"
 
-#: ../gtk/gtkcombobox.c:842
+#: ../gtk/gtkcombobox.c:843
 msgid "Button Sensitivity"
 msgstr "Mygtuko jautrumas"
 
-#: ../gtk/gtkcombobox.c:843
+#: ../gtk/gtkcombobox.c:844
 msgid "Whether the dropdown button is sensitive when the model is empty"
 msgstr "Ar išskleidimo mygtukas yra jautrus, kai modelis tuščias"
 
-#: ../gtk/gtkcombobox.c:859
+#: ../gtk/gtkcombobox.c:860
 msgid "Whether combo box has an entry"
 msgstr "Ar iškrentantis sąrašas turi įvedimo lauką"
 
-#: ../gtk/gtkcombobox.c:874
+#: ../gtk/gtkcombobox.c:875
 msgid "Entry Text Column"
 msgstr "Įvedimo lauko teksto stulpelis"
 
-#: ../gtk/gtkcombobox.c:875
-msgid ""
-"The column in the combo box's model to associate with strings from the entry "
-"if the combo was created with #GtkComboBox:has-entry = %TRUE"
-msgstr ""
-"Stulpelis iškrentančio sąrašo modelyje susiejimui su simbolių eilutėmis iš "
-"įvedimo srities, jei sąrašas buvo sukurtas su #GtkComboBox:has-entry = %TRUE"
+#: ../gtk/gtkcombobox.c:876
+msgid "The column in the combo box's model to associate with strings from the entry if the combo was created with #GtkComboBox:has-entry = %TRUE"
+msgstr "Stulpelis iškrentančio sąrašo modelyje susiejimui su simbolių eilutėmis iš įvedimo srities, jei sąrašas buvo sukurtas su #GtkComboBox:has-entry = %TRUE"
 
-#: ../gtk/gtkcombobox.c:892
+#: ../gtk/gtkcombobox.c:893
 msgid "ID Column"
 msgstr "ID stulpelis"
 
-#: ../gtk/gtkcombobox.c:893
-msgid ""
-"The column in the combo box's model that provides string IDs for the values "
-"in the model"
-msgstr ""
-"Stulpelis iškrentančio sąrašo modelyje, pateikiantis simbolių eilučių "
-"identifikatorius reikšmėms modelyje"
+#: ../gtk/gtkcombobox.c:894
+msgid "The column in the combo box's model that provides string IDs for the values in the model"
+msgstr "Stulpelis iškrentančio sąrašo modelyje, pateikiantis simbolių eilučių identifikatorius reikšmėms modelyje"
 
-#: ../gtk/gtkcombobox.c:908
+#: ../gtk/gtkcombobox.c:909
 msgid "Active id"
 msgstr "Aktyvus id"
 
-#: ../gtk/gtkcombobox.c:909
+#: ../gtk/gtkcombobox.c:910
 msgid "The value of the id column for the active row"
 msgstr "Aktyvios eilutės id stulpelio reikšmė"
 
-#: ../gtk/gtkcombobox.c:924
+#: ../gtk/gtkcombobox.c:925
 msgid "Popup Fixed Width"
 msgstr "Fiksuoto pločio iššokantis sąrašas"
 
-#: ../gtk/gtkcombobox.c:925
-msgid ""
-"Whether the popup's width should be a fixed width matching the allocated "
-"width of the combo box"
-msgstr ""
-"Ar iškrentančio sąrašo plotis turi būti fiksuotas ir sutampantis su "
-"iškrentančio sąrašoelemento pločiu"
+#: ../gtk/gtkcombobox.c:926
+msgid "Whether the popup's width should be a fixed width matching the allocated width of the combo box"
+msgstr "Ar iškrentančio sąrašo plotis turi būti fiksuotas ir sutampantis su iškrentančio sąrašoelemento pločiu"
 
-#: ../gtk/gtkcombobox.c:951
+#: ../gtk/gtkcombobox.c:952
 msgid "Appears as list"
 msgstr "Atrodo kaip sąrašas"
 
-#: ../gtk/gtkcombobox.c:952
+#: ../gtk/gtkcombobox.c:953
 msgid "Whether dropdowns should look like lists rather than menus"
 msgstr "Ar išskleidžiami meniu turi atrodyti kaip sąrašai, o ne kaip meniu"
 
-#: ../gtk/gtkcombobox.c:968
+#: ../gtk/gtkcombobox.c:969
 msgid "Arrow Size"
 msgstr "Rodyklės dydis"
 
-#: ../gtk/gtkcombobox.c:969
+#: ../gtk/gtkcombobox.c:970
 msgid "The minimum size of the arrow in the combo box"
 msgstr "Mažiausias rodyklės dydis išsiskleidžiančiame laukelyje"
 
-#: ../gtk/gtkcombobox.c:986
+#: ../gtk/gtkcombobox.c:987
 msgid "The amount of space used by the arrow"
 msgstr "Rodyklės užimama vieta"
 
-#: ../gtk/gtkcombobox.c:1001 ../gtk/gtkentry.c:882 ../gtk/gtkhandlebox.c:218
-#: ../gtk/gtkmenubar.c:207 ../gtk/gtkstatusbar.c:180 ../gtk/gtktoolbar.c:604
+#: ../gtk/gtkcombobox.c:1002
+#: ../gtk/gtkentry.c:886
+#: ../gtk/gtkhandlebox.c:218
+#: ../gtk/gtkmenubar.c:217
+#: ../gtk/gtkstatusbar.c:182
+#: ../gtk/gtktoolbar.c:611
 #: ../gtk/gtkviewport.c:153
 msgid "Shadow type"
 msgstr "Šešėlio tipas"
 
-#: ../gtk/gtkcombobox.c:1002
+#: ../gtk/gtkcombobox.c:1003
 msgid "Which kind of shadow to draw around the combo box"
 msgstr "Kokio tipo šešėlį piešti aplink išsiskleidžiantį laukelį"
 
-#: ../gtk/gtkcontainer.c:456
+#: ../gtk/gtkcontainer.c:457
 msgid "Resize mode"
 msgstr "Dyžio keitimo veiksena"
 
-#: ../gtk/gtkcontainer.c:457
+#: ../gtk/gtkcontainer.c:458
 msgid "Specify how resize events are handled"
 msgstr "Nustato kaip tvarkomos dydžio keitimo komandos"
 
-#: ../gtk/gtkcontainer.c:464
+#: ../gtk/gtkcontainer.c:465
 msgid "Border width"
 msgstr "Rėmelio storis"
 
-#: ../gtk/gtkcontainer.c:465
+#: ../gtk/gtkcontainer.c:466
 msgid "The width of the empty border outside the containers children"
 msgstr "Tuščio rėmelio, brėžiamo aplink konteinerio vaikinius objektus, plotis"
 
-#: ../gtk/gtkcontainer.c:473
+#: ../gtk/gtkcontainer.c:474
 msgid "Child"
 msgstr "Vaikinis objektas"
 
-#: ../gtk/gtkcontainer.c:474
+#: ../gtk/gtkcontainer.c:475
 msgid "Can be used to add a new child to the container"
 msgstr "Gali būti naudojamas pridėti naują vaikinį objektą į konteinerį"
 
-#: ../gtk/gtkdialog.c:289 ../gtk/gtkinfobar.c:426
+#: ../gtk/gtkdialog.c:289
+#: ../gtk/gtkinfobar.c:427
 msgid "Content area border"
 msgstr "Turinio srities rėmelis"
 
@@ -2435,7 +2494,8 @@ msgstr "Turinio srities rėmelis"
 msgid "Width of border around the main dialog area"
 msgstr "Rėmelio, apie pagrindinę dialogo lango sritį, plotis"
 
-#: ../gtk/gtkdialog.c:307 ../gtk/gtkinfobar.c:443
+#: ../gtk/gtkdialog.c:307
+#: ../gtk/gtkinfobar.c:444
 msgid "Content area spacing"
 msgstr "Turinio srities intervalas"
 
@@ -2443,15 +2503,18 @@ msgstr "Turinio srities intervalas"
 msgid "Spacing between elements of the main dialog area"
 msgstr "Intervalas tarp pagrindinio dialogo srities elementų"
 
-#: ../gtk/gtkdialog.c:315 ../gtk/gtkinfobar.c:459
+#: ../gtk/gtkdialog.c:315
+#: ../gtk/gtkinfobar.c:460
 msgid "Button spacing"
 msgstr "Tarpai tarp mygtukų"
 
-#: ../gtk/gtkdialog.c:316 ../gtk/gtkinfobar.c:460
+#: ../gtk/gtkdialog.c:316
+#: ../gtk/gtkinfobar.c:461
 msgid "Spacing between buttons"
 msgstr "Tarpai tarp mygtukų"
 
-#: ../gtk/gtkdialog.c:324 ../gtk/gtkinfobar.c:475
+#: ../gtk/gtkdialog.c:324
+#: ../gtk/gtkinfobar.c:476
 msgid "Action area border"
 msgstr "Veiksmų srities rėmelis"
 
@@ -2459,372 +2522,366 @@ msgstr "Veiksmų srities rėmelis"
 msgid "Width of border around the button area at the bottom of the dialog"
 msgstr "Mygtukų lauko paraštės plotas dialogo lango apačioje"
 
-#: ../gtk/gtkentry.c:729
-msgid "Text Buffer"
-msgstr "Teksto buferis"
+#: ../gtk/gtkentrybuffer.c:353
+msgid "The contents of the buffer"
+msgstr "Buferio turinys"
 
-#: ../gtk/gtkentry.c:730
-msgid "Text buffer object which actually stores entry text"
-msgstr "Teksto buferis, kuriame saugomas tekstas"
+#: ../gtk/gtkentrybuffer.c:367
+#: ../gtk/gtkentry.c:917
+msgid "Text length"
+msgstr "Teksto ilgis"
 
-#: ../gtk/gtkentry.c:737 ../gtk/gtklabel.c:839
-msgid "Cursor Position"
-msgstr "Žymeklio vieta"
+#: ../gtk/gtkentrybuffer.c:368
+msgid "Length of the text currently in the buffer"
+msgstr "Å iuo metu buferyje esanÄ\8dio teksto ilgis"
 
-#: ../gtk/gtkentry.c:738 ../gtk/gtklabel.c:840
-msgid "The current position of the insertion cursor in chars"
+#: ../gtk/gtkentrybuffer.c:382
+#: ../gtk/gtkentry.c:769
+msgid "Maximum length"
+msgstr "Maksimalus ilgis"
+
+#: ../gtk/gtkentrybuffer.c:383
+#: ../gtk/gtkentry.c:770
+msgid "Maximum number of characters for this entry. Zero if no maximum"
+msgstr "Maksimalus simbolių skaičius šiame lauke. 0 jei neribojamas"
+
+#: ../gtk/gtkentry.c:733
+msgid "Text Buffer"
+msgstr "Teksto buferis"
+
+#: ../gtk/gtkentry.c:734
+msgid "Text buffer object which actually stores entry text"
+msgstr "Teksto buferis, kuriame saugomas tekstas"
+
+#: ../gtk/gtkentry.c:741
+#: ../gtk/gtklabel.c:839
+msgid "Cursor Position"
+msgstr "Žymeklio vieta"
+
+#: ../gtk/gtkentry.c:742
+#: ../gtk/gtklabel.c:840
+msgid "The current position of the insertion cursor in chars"
 msgstr "Esama įterpimo žymeklio vieta simboliais"
 
-#: ../gtk/gtkentry.c:747 ../gtk/gtklabel.c:849
+#: ../gtk/gtkentry.c:751
+#: ../gtk/gtklabel.c:849
 msgid "Selection Bound"
 msgstr "Pažymėjimo Riba"
 
-#: ../gtk/gtkentry.c:748 ../gtk/gtklabel.c:850
-msgid ""
-"The position of the opposite end of the selection from the cursor in chars"
+#: ../gtk/gtkentry.c:752
+#: ../gtk/gtklabel.c:850
+msgid "The position of the opposite end of the selection from the cursor in chars"
 msgstr "Kito pažymėjimo galo vieta simboliais"
 
-#: ../gtk/gtkentry.c:758
+#: ../gtk/gtkentry.c:762
 msgid "Whether the entry contents can be edited"
 msgstr "Ar įvesties lauko turinys gali būti keičiamas"
 
-#: ../gtk/gtkentry.c:765 ../gtk/gtkentrybuffer.c:382
-msgid "Maximum length"
-msgstr "Maksimalus ilgis"
-
-#: ../gtk/gtkentry.c:766 ../gtk/gtkentrybuffer.c:383
-msgid "Maximum number of characters for this entry. Zero if no maximum"
-msgstr "Maksimalus simbolių skaičius šiame lauke. 0 jei neribojamas"
-
-#: ../gtk/gtkentry.c:774
+#: ../gtk/gtkentry.c:778
 msgid "Visibility"
 msgstr "Matomumas"
 
-#: ../gtk/gtkentry.c:775
-msgid ""
-"FALSE displays the \"invisible char\" instead of the actual text (password "
-"mode)"
-msgstr ""
-"FALSE išveda „nematomą simbolį“ vietoj paprasto teksto (slaptažodžio "
-"veiksena)"
+#: ../gtk/gtkentry.c:779
+msgid "FALSE displays the \"invisible char\" instead of the actual text (password mode)"
+msgstr "FALSE išveda „nematomą simbolį“ vietoj paprasto teksto (slaptažodžio veiksena)"
 
-#: ../gtk/gtkentry.c:783
+#: ../gtk/gtkentry.c:787
 msgid "FALSE removes outside bevel from entry"
 msgstr "FALSE pašalina išorinį įrašo rėmelį"
 
-#: ../gtk/gtkentry.c:791
-msgid ""
-"Border between text and frame. Overrides the inner-border style property"
+#: ../gtk/gtkentry.c:795
+msgid "Border between text and frame. Overrides the inner-border style property"
 msgstr "Rėmelis tarp teksto ir kadro. Nepaiso inner-border stiliaus savybės"
 
-#: ../gtk/gtkentry.c:798 ../gtk/gtkentry.c:1394
+#: ../gtk/gtkentry.c:802
+#: ../gtk/gtkentry.c:1398
 msgid "Invisible character"
 msgstr "Nematomas simbolis"
 
-#: ../gtk/gtkentry.c:799 ../gtk/gtkentry.c:1395
+#: ../gtk/gtkentry.c:803
+#: ../gtk/gtkentry.c:1399
 msgid "The character to use when masking entry contents (in \"password mode\")"
 msgstr "Simbolis naudojamas paslėpti įrašo turinį („slaptažodžio veiksenoje“)"
 
-#: ../gtk/gtkentry.c:806
+#: ../gtk/gtkentry.c:810
 msgid "Activates default"
 msgstr "Aktyvina numatytąjį"
 
-#: ../gtk/gtkentry.c:807
-msgid ""
-"Whether to activate the default widget (such as the default button in a "
-"dialog) when Enter is pressed"
-msgstr ""
-"Ar aktyvinti numatytąjį objektą (pvz., kaip numatytąjį mygtuką dialoge), kai "
-"paspaudžiamas Enter klavišas"
+#: ../gtk/gtkentry.c:811
+msgid "Whether to activate the default widget (such as the default button in a dialog) when Enter is pressed"
+msgstr "Ar aktyvinti numatytąjį objektą (pvz., kaip numatytąjį mygtuką dialoge), kai paspaudžiamas Enter klavišas"
 
-#: ../gtk/gtkentry.c:813
+#: ../gtk/gtkentry.c:817
 msgid "Width in chars"
 msgstr "Plotis simboliais"
 
-#: ../gtk/gtkentry.c:814
+#: ../gtk/gtkentry.c:818
 msgid "Number of characters to leave space for in the entry"
 msgstr "Kokiam simbolių kiekiui palikti vietos laukelyje"
 
-#: ../gtk/gtkentry.c:823
+#: ../gtk/gtkentry.c:827
 msgid "Scroll offset"
 msgstr "Perslinkimo žingsnis"
 
-#: ../gtk/gtkentry.c:824
+#: ../gtk/gtkentry.c:828
 msgid "Number of pixels of the entry scrolled off the screen to the left"
 msgstr "Kiek pikselių įrašas perslenkamas į kairę nuo ekrano"
 
-#: ../gtk/gtkentry.c:834
+#: ../gtk/gtkentry.c:838
 msgid "The contents of the entry"
 msgstr "Įrašo turinys"
 
-#: ../gtk/gtkentry.c:849 ../gtk/gtkmisc.c:105
+#: ../gtk/gtkentry.c:853
+#: ../gtk/gtkmisc.c:105
 msgid "X align"
 msgstr "X lygiuotė"
 
-#: ../gtk/gtkentry.c:850 ../gtk/gtkmisc.c:106
-msgid ""
-"The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL "
-"layouts."
-msgstr ""
-"Horizontali lygiuotė, nuo 0 (kairė) iki 1 (dešinė). RTL išdėstymams "
-"atvirkščiai."
+#: ../gtk/gtkentry.c:854
+#: ../gtk/gtkmisc.c:106
+msgid "The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL layouts."
+msgstr "Horizontali lygiuotė, nuo 0 (kairė) iki 1 (dešinė). RTL išdėstymams atvirkščiai."
 
-#: ../gtk/gtkentry.c:866
+#: ../gtk/gtkentry.c:870
 msgid "Truncate multiline"
 msgstr "Sujungti kelias eilutes"
 
-#: ../gtk/gtkentry.c:867
+#: ../gtk/gtkentry.c:871
 msgid "Whether to truncate multiline pastes to one line."
 msgstr "Ar sujungti kelių eilučių įdėjimus į vieną eilutę."
 
-#: ../gtk/gtkentry.c:883
+#: ../gtk/gtkentry.c:887
 msgid "Which kind of shadow to draw around the entry when has-frame is set"
-msgstr ""
-"Kokio tipo šešėlį piešti aplink įvesties laukelį, kai nustatyta „has-frame“"
+msgstr "Kokio tipo šešėlį piešti aplink įvesties laukelį, kai nustatyta „has-frame“"
 
-#: ../gtk/gtkentry.c:898 ../gtk/gtktextview.c:767
+#: ../gtk/gtkentry.c:902
+#: ../gtk/gtktextview.c:766
 msgid "Overwrite mode"
 msgstr "Perrašymo veiksena"
 
-#: ../gtk/gtkentry.c:899
+#: ../gtk/gtkentry.c:903
 msgid "Whether new text overwrites existing text"
 msgstr "Ar įvedamas tekstas pakeičia esamą"
 
-#: ../gtk/gtkentry.c:913 ../gtk/gtkentrybuffer.c:367
-msgid "Text length"
-msgstr "Teksto ilgis"
-
-#: ../gtk/gtkentry.c:914
+#: ../gtk/gtkentry.c:918
 msgid "Length of the text currently in the entry"
 msgstr "Šiuo metu į lauką įvesto teksto ilgis"
 
-#: ../gtk/gtkentry.c:929
+#: ../gtk/gtkentry.c:933
 msgid "Invisible character set"
 msgstr "Nematomas simbolis nustatytas"
 
-#: ../gtk/gtkentry.c:930
+#: ../gtk/gtkentry.c:934
 msgid "Whether the invisible character has been set"
 msgstr "Ar nustatytas nematomas simbolis"
 
-#: ../gtk/gtkentry.c:948
+#: ../gtk/gtkentry.c:952
 msgid "Caps Lock warning"
 msgstr "Caps Lock įspėjimas"
 
-#: ../gtk/gtkentry.c:949
+#: ../gtk/gtkentry.c:953
 msgid "Whether password entries will show a warning when Caps Lock is on"
 msgstr "Ar įvedant slaptažodį bus rodomas įspėjimas, esant įjungtam Caps Lock"
 
-#: ../gtk/gtkentry.c:963
+#: ../gtk/gtkentry.c:967
 msgid "Progress Fraction"
 msgstr "Eigos dalis"
 
-#: ../gtk/gtkentry.c:964
+#: ../gtk/gtkentry.c:968
 msgid "The current fraction of the task that's been completed"
 msgstr "Jau atlikta užduoties dalis"
 
-#: ../gtk/gtkentry.c:981
+#: ../gtk/gtkentry.c:985
 msgid "Progress Pulse Step"
 msgstr "Eigos indikatoriaus žingsnis"
 
-#: ../gtk/gtkentry.c:982
-msgid ""
-"The fraction of total entry width to move the progress bouncing block for "
-"each call to gtk_entry_progress_pulse()"
-msgstr ""
-"Dalis, kuria reikia padidinti eigos indikatoriaus juostą kiekvienam "
-"kreipiniui į gtk_entry_progress_pulse()"
+#: ../gtk/gtkentry.c:986
+msgid "The fraction of total entry width to move the progress bouncing block for each call to gtk_entry_progress_pulse()"
+msgstr "Dalis, kuria reikia padidinti eigos indikatoriaus juostą kiekvienam kreipiniui į gtk_entry_progress_pulse()"
 
-#: ../gtk/gtkentry.c:998
+#: ../gtk/gtkentry.c:1002
 msgid "Placeholder text"
-msgstr ""
+msgstr "Tuščios vietos tekstas"
 
-#: ../gtk/gtkentry.c:999
+#: ../gtk/gtkentry.c:1003
 msgid "Show text in the entry when it's empty and unfocused"
-msgstr ""
+msgstr "Rodyti tekstą įvedimo lauke kai jis tuščias ir neaktyvus"
 
-#: ../gtk/gtkentry.c:1013
+#: ../gtk/gtkentry.c:1017
 msgid "Primary pixbuf"
 msgstr "Pagrindinis pixbuf"
 
-#: ../gtk/gtkentry.c:1014
+#: ../gtk/gtkentry.c:1018
 msgid "Primary pixbuf for the entry"
 msgstr "Pirminis pixbuf elementui"
 
-#: ../gtk/gtkentry.c:1028
+#: ../gtk/gtkentry.c:1032
 msgid "Secondary pixbuf"
 msgstr "Antrinis pixbuf"
 
-#: ../gtk/gtkentry.c:1029
+#: ../gtk/gtkentry.c:1033
 msgid "Secondary pixbuf for the entry"
 msgstr "Antrinis pixbuf elementui"
 
-#: ../gtk/gtkentry.c:1043
+#: ../gtk/gtkentry.c:1047
 msgid "Primary stock ID"
 msgstr "Pirminis standartinis ID"
 
-#: ../gtk/gtkentry.c:1044
+#: ../gtk/gtkentry.c:1048
 msgid "Stock ID for primary icon"
 msgstr "Standartinis ID pirminei piktogramai"
 
-#: ../gtk/gtkentry.c:1058
+#: ../gtk/gtkentry.c:1062
 msgid "Secondary stock ID"
 msgstr "Antrinis standartinis ID"
 
-#: ../gtk/gtkentry.c:1059
+#: ../gtk/gtkentry.c:1063
 msgid "Stock ID for secondary icon"
 msgstr "Standartinis ID naudojamas su Standartinis ID antrinei piktogramai"
 
-#: ../gtk/gtkentry.c:1073
+#: ../gtk/gtkentry.c:1077
 msgid "Primary icon name"
 msgstr "Pirminis piktogramos pavadinimas"
 
-#: ../gtk/gtkentry.c:1074
+#: ../gtk/gtkentry.c:1078
 msgid "Icon name for primary icon"
 msgstr "Piktogramos pavadinimas pirminei piktogramai"
 
-#: ../gtk/gtkentry.c:1088
+#: ../gtk/gtkentry.c:1092
 msgid "Secondary icon name"
 msgstr "Antrinis piktogramos pavadinimas"
 
-#: ../gtk/gtkentry.c:1089
+#: ../gtk/gtkentry.c:1093
 msgid "Icon name for secondary icon"
 msgstr "Piktogramos pavadinimas antrinei piktogramai"
 
-#: ../gtk/gtkentry.c:1103
+#: ../gtk/gtkentry.c:1107
 msgid "Primary GIcon"
 msgstr "Pirminė GIcon"
 
-#: ../gtk/gtkentry.c:1104
+#: ../gtk/gtkentry.c:1108
 msgid "GIcon for primary icon"
 msgstr "GIcon pirminei piktogramai"
 
-#: ../gtk/gtkentry.c:1118
+#: ../gtk/gtkentry.c:1122
 msgid "Secondary GIcon"
 msgstr "Antrinė GIcon"
 
-#: ../gtk/gtkentry.c:1119
+#: ../gtk/gtkentry.c:1123
 msgid "GIcon for secondary icon"
 msgstr "GIcon antrinei piktogramai"
 
-#: ../gtk/gtkentry.c:1133
+#: ../gtk/gtkentry.c:1137
 msgid "Primary storage type"
 msgstr "Pirminis atminties tipas"
 
-#: ../gtk/gtkentry.c:1134
+#: ../gtk/gtkentry.c:1138
 msgid "The representation being used for primary icon"
 msgstr "Atvaizdavimas naudojamas pirminei piktogramai"
 
-#: ../gtk/gtkentry.c:1149
+#: ../gtk/gtkentry.c:1153
 msgid "Secondary storage type"
 msgstr "Numatytojo Antrinis atminties tipas"
 
-#: ../gtk/gtkentry.c:1150
+#: ../gtk/gtkentry.c:1154
 msgid "The representation being used for secondary icon"
 msgstr "Atvaizdavimas naudojamas antrinei piktogramai"
 
-#: ../gtk/gtkentry.c:1171
+#: ../gtk/gtkentry.c:1175
 msgid "Primary icon activatable"
 msgstr "Pirminė piktograma - aktyvinama"
 
-#: ../gtk/gtkentry.c:1172
+#: ../gtk/gtkentry.c:1176
 msgid "Whether the primary icon is activatable"
 msgstr "Ar pirminė piktograma yra aktyvinama"
 
-#: ../gtk/gtkentry.c:1192
+#: ../gtk/gtkentry.c:1196
 msgid "Secondary icon activatable"
 msgstr "Antrinė piktograma – aktyvinama"
 
-#: ../gtk/gtkentry.c:1193
+#: ../gtk/gtkentry.c:1197
 msgid "Whether the secondary icon is activatable"
 msgstr "Ar antrinė piktograma yra aktyvinama"
 
-#: ../gtk/gtkentry.c:1215
+#: ../gtk/gtkentry.c:1219
 msgid "Primary icon sensitive"
 msgstr "Pirminė piktograma – jautri"
 
-#: ../gtk/gtkentry.c:1216
+#: ../gtk/gtkentry.c:1220
 msgid "Whether the primary icon is sensitive"
 msgstr "Ar pirminė piktograma yra jautri"
 
-#: ../gtk/gtkentry.c:1237
+#: ../gtk/gtkentry.c:1241
 msgid "Secondary icon sensitive"
 msgstr "Antrinė piktograma – jautri"
 
-#: ../gtk/gtkentry.c:1238
+#: ../gtk/gtkentry.c:1242
 msgid "Whether the secondary icon is sensitive"
 msgstr "Ar antrinė piktograma yra jautri"
 
-#: ../gtk/gtkentry.c:1254
+#: ../gtk/gtkentry.c:1258
 msgid "Primary icon tooltip text"
 msgstr "Pirminės piktogramos paaiškinimo tekstas"
 
-#: ../gtk/gtkentry.c:1255 ../gtk/gtkentry.c:1291
+#: ../gtk/gtkentry.c:1259
+#: ../gtk/gtkentry.c:1295
 msgid "The contents of the tooltip on the primary icon"
 msgstr "Pirminės piktogramos paaiškinimo teksto turinys"
 
-#: ../gtk/gtkentry.c:1271
+#: ../gtk/gtkentry.c:1275
 msgid "Secondary icon tooltip text"
 msgstr "Antrinės piktogramos paaiškinimo tekstas"
 
-#: ../gtk/gtkentry.c:1272 ../gtk/gtkentry.c:1310
+#: ../gtk/gtkentry.c:1276
+#: ../gtk/gtkentry.c:1314
 msgid "The contents of the tooltip on the secondary icon"
 msgstr "Antrinės piktogramos paaiškinimo teksto turinys"
 
-#: ../gtk/gtkentry.c:1290
+#: ../gtk/gtkentry.c:1294
 msgid "Primary icon tooltip markup"
 msgstr "Pirminės piktogramos paaiškinimo teksto ženklinimas"
 
-#: ../gtk/gtkentry.c:1309
+#: ../gtk/gtkentry.c:1313
 msgid "Secondary icon tooltip markup"
 msgstr "Antrinės piktogramos paaiškinimo teksto ženklinimas"
 
-#: ../gtk/gtkentry.c:1329 ../gtk/gtktextview.c:795
+#: ../gtk/gtkentry.c:1333
+#: ../gtk/gtktextview.c:794
 msgid "IM module"
 msgstr "Įvesties metodo modulis"
 
-#: ../gtk/gtkentry.c:1330 ../gtk/gtktextview.c:796
+#: ../gtk/gtkentry.c:1334
+#: ../gtk/gtktextview.c:795
 msgid "Which IM module should be used"
 msgstr "Kurį įvesties metodo modulį naudoti"
 
-#: ../gtk/gtkentry.c:1344
-#, fuzzy
+#: ../gtk/gtkentry.c:1348
 msgid "Completion"
-msgstr "Užbaigimo modelis"
+msgstr "Užbaigimas"
 
-#: ../gtk/gtkentry.c:1345
+#: ../gtk/gtkentry.c:1349
 msgid "The auxiliary completion object"
-msgstr ""
+msgstr "Papildomas užbaigimo objektas"
 
-#: ../gtk/gtkentry.c:1359
+#: ../gtk/gtkentry.c:1363
 msgid "Icon Prelight"
 msgstr "Piktogramos pašviesinimas"
 
-#: ../gtk/gtkentry.c:1360
+#: ../gtk/gtkentry.c:1364
 msgid "Whether activatable icons should prelight when hovered"
-msgstr ""
-"Ar aktyvinamos piktogramos turi būti pašviesintos, kai virš jų yra pelės "
-"žymeklis"
+msgstr "Ar aktyvinamos piktogramos turi būti pašviesintos, kai virš jų yra pelės žymeklis"
 
-#: ../gtk/gtkentry.c:1373
+#: ../gtk/gtkentry.c:1377
 msgid "Progress Border"
 msgstr "Pažangos juostos rėmelis"
 
-#: ../gtk/gtkentry.c:1374
+#: ../gtk/gtkentry.c:1378
 msgid "Border around the progress bar"
 msgstr "Rėmelis aplink pažangos juostą"
 
-#: ../gtk/gtkentry.c:1866
+#: ../gtk/gtkentry.c:1870
 msgid "Border between text and frame."
 msgstr "Rėmelis tarp teksto ir kadro."
 
-#: ../gtk/gtkentrybuffer.c:353
-msgid "The contents of the buffer"
-msgstr "Buferio turinys"
-
-#: ../gtk/gtkentrybuffer.c:368
-msgid "Length of the text currently in the buffer"
-msgstr "Šiuo metu buferyje esančio teksto ilgis"
-
 #: ../gtk/gtkentrycompletion.c:320
 msgid "Completion Model"
 msgstr "Užbaigimo modelis"
@@ -2841,7 +2898,8 @@ msgstr "Mažiausias rakto ilgis"
 msgid "Minimum length of the search key in order to look up matches"
 msgstr "Mažiausias paieškos rakto dydis naudojamas ieškant sutapimų"
 
-#: ../gtk/gtkentrycompletion.c:344 ../gtk/gtkiconview.c:565
+#: ../gtk/gtkentrycompletion.c:344
+#: ../gtk/gtkiconview.c:565
 msgid "Text column"
 msgstr "Teksto stulpelis"
 
@@ -2871,8 +2929,7 @@ msgstr "Iššokančio lango nustatytas plotis"
 
 #: ../gtk/gtkentrycompletion.c:396
 msgid "If TRUE, the popup window will have the same size as the entry"
-msgstr ""
-"Jeigu TEIGIAMA, iššokantis langas bus tokio pat dydžio kaip įvesties laukelis"
+msgstr "Jeigu TEIGIAMA, iššokantis langas bus tokio pat dydžio kaip įvesties laukelis"
 
 #: ../gtk/gtkentrycompletion.c:414
 msgid "Popup single match"
@@ -2895,9 +2952,7 @@ msgid "Visible Window"
 msgstr "Matomas langas"
 
 #: ../gtk/gtkeventbox.c:110
-msgid ""
-"Whether the event box is visible, as opposed to invisible and only used to "
-"trap events."
+msgid "Whether the event box is visible, as opposed to invisible and only used to trap events."
 msgstr "Ar įvykių laukas yra matomas, ar tik naudojamas registruoti įvykius."
 
 #: ../gtk/gtkeventbox.c:116
@@ -2905,93 +2960,91 @@ msgid "Above child"
 msgstr "Virš vaikinio objekto"
 
 #: ../gtk/gtkeventbox.c:117
-msgid ""
-"Whether the event-trapping window of the eventbox is above the window of the "
-"child widget as opposed to below it."
-msgstr ""
-"Ar įvykių registravimo langas įvykių lauke yra žemiau vaikinio objekto, ar "
-"aukščiau jo."
+msgid "Whether the event-trapping window of the eventbox is above the window of the child widget as opposed to below it."
+msgstr "Ar įvykių registravimo langas įvykių lauke yra žemiau vaikinio objekto, ar aukščiau jo."
 
-#: ../gtk/gtkexpander.c:281
+#: ../gtk/gtkexpander.c:282
 msgid "Expanded"
 msgstr "Išskleistas"
 
-#: ../gtk/gtkexpander.c:282
+#: ../gtk/gtkexpander.c:283
 msgid "Whether the expander has been opened to reveal the child widget"
 msgstr "Ar skleistukas išskleistas, kad parodytų vaikinį objektą"
 
-#: ../gtk/gtkexpander.c:290
+#: ../gtk/gtkexpander.c:291
 msgid "Text of the expander's label"
 msgstr "Skleistuko etiketės tekstas"
 
-#: ../gtk/gtkexpander.c:305 ../gtk/gtklabel.c:758
+#: ../gtk/gtkexpander.c:306
+#: ../gtk/gtklabel.c:758
 msgid "Use markup"
 msgstr "Naudoti žymėjimą"
 
-#: ../gtk/gtkexpander.c:306 ../gtk/gtklabel.c:759
+#: ../gtk/gtkexpander.c:307
+#: ../gtk/gtklabel.c:759
 msgid "The text of the label includes XML markup. See pango_parse_markup()"
 msgstr "Etiketės tekste naudojami XML elementai. Žr. pango_parse_markup()"
 
-#: ../gtk/gtkexpander.c:314
+#: ../gtk/gtkexpander.c:315
 msgid "Space to put between the label and the child"
 msgstr "Papildomas tarpas tarp etiketės ir vaikinio objekto"
 
-#: ../gtk/gtkexpander.c:323 ../gtk/gtkframe.c:205 ../gtk/gtktoolbutton.c:246
-#: ../gtk/gtktoolitemgroup.c:1604
+#: ../gtk/gtkexpander.c:324
+#: ../gtk/gtkframe.c:206
+#: ../gtk/gtktoolbutton.c:246
+#: ../gtk/gtktoolitemgroup.c:1599
 msgid "Label widget"
 msgstr "Etiketės objektas"
 
-#: ../gtk/gtkexpander.c:324
+#: ../gtk/gtkexpander.c:325
 msgid "A widget to display in place of the usual expander label"
 msgstr "Objektas rodomas vietoje įprastinės skleistuko etiketės"
 
-#: ../gtk/gtkexpander.c:331
+#: ../gtk/gtkexpander.c:332
 msgid "Label fill"
 msgstr "Etiketės užpildymas"
 
-#: ../gtk/gtkexpander.c:332
+#: ../gtk/gtkexpander.c:333
 msgid "Whether the label widget should fill all available horizontal space"
-msgstr ""
-"Ar etiketės elementas turi užpildyti visą jam skirtą vietą horizontaliai"
+msgstr "Ar etiketės elementas turi užpildyti visą jam skirtą vietą horizontaliai"
 
-#: ../gtk/gtkexpander.c:347
-#, fuzzy
+#: ../gtk/gtkexpander.c:348
 msgid "Resize tolevel"
-msgstr "Dyžio keitimo veiksena"
+msgstr "Pakeisti aukščiausio lygmens didį"
 
-#: ../gtk/gtkexpander.c:348
-msgid ""
-"Whether the expander will resize the toplevel window upon expanding and "
-"collapsing"
-msgstr ""
+#: ../gtk/gtkexpander.c:349
+msgid "Whether the expander will resize the toplevel window upon expanding and collapsing"
+msgstr "Ar išplėtėjas pakeisti aukščiausio lygio lango dydį išplėčiant ir sutraukiant"
 
-#: ../gtk/gtkexpander.c:354 ../gtk/gtktoolitemgroup.c:1632
+#: ../gtk/gtkexpander.c:355
+#: ../gtk/gtktoolitemgroup.c:1627
 #: ../gtk/gtktreeview.c:1187
 msgid "Expander Size"
 msgstr "Skleistuko dydis"
 
-#: ../gtk/gtkexpander.c:355 ../gtk/gtktoolitemgroup.c:1633
+#: ../gtk/gtkexpander.c:356
+#: ../gtk/gtktoolitemgroup.c:1628
 #: ../gtk/gtktreeview.c:1188
 msgid "Size of the expander arrow"
 msgstr "Skleistuko rodyklės dydis"
 
-#: ../gtk/gtkexpander.c:364
+#: ../gtk/gtkexpander.c:365
 msgid "Spacing around expander arrow"
 msgstr "Tarpas aplink skleistuko rodyklę"
 
-#: ../gtk/gtkfilechooserbutton.c:407
+#: ../gtk/gtkfilechooserbutton.c:409
 msgid "Dialog"
 msgstr "Dialogas"
 
-#: ../gtk/gtkfilechooserbutton.c:408
+#: ../gtk/gtkfilechooserbutton.c:410
 msgid "The file chooser dialog to use."
 msgstr "Naudotinas failų parinkiklio dialogas."
 
-#: ../gtk/gtkfilechooserbutton.c:439
+#: ../gtk/gtkfilechooserbutton.c:441
 msgid "The title of the file chooser dialog."
 msgstr "Failų parinkiklio dialogo antraštė."
 
-#: ../gtk/gtkfilechooserbutton.c:453
+#: ../gtk/gtkfilechooserbutton.c:455
 msgid "The desired width of the button widget, in characters."
 msgstr "Pageidaujamas mygtuko plotis simboliais."
 
@@ -3003,7 +3056,8 @@ msgstr "Veiksmas"
 msgid "The type of operation that the file selector is performing"
 msgstr "Failų pasirinkimo objekto vykdomos operacijos tipas"
 
-#: ../gtk/gtkfilechooser.c:754 ../gtk/gtkrecentchooser.c:264
+#: ../gtk/gtkfilechooser.c:754
+#: ../gtk/gtkrecentchooser.c:264
 msgid "Filter"
 msgstr "Filtras"
 
@@ -3032,8 +3086,7 @@ msgid "Preview Widget Active"
 msgstr "Peržiūros objektas aktyvus"
 
 #: ../gtk/gtkfilechooser.c:773
-msgid ""
-"Whether the application supplied widget for custom previews should be shown."
+msgid "Whether the application supplied widget for custom previews should be shown."
 msgstr "Ar turi būti rodomas programos pateiktas specialių peržiūrų objektas."
 
 #: ../gtk/gtkfilechooser.c:778
@@ -3052,7 +3105,8 @@ msgstr "Papildomas objektas"
 msgid "Application supplied widget for extra options."
 msgstr "Programos pateiktas specialių nustatymų objektas."
 
-#: ../gtk/gtkfilechooser.c:790 ../gtk/gtkrecentchooser.c:203
+#: ../gtk/gtkfilechooser.c:790
+#: ../gtk/gtkrecentchooser.c:203
 msgid "Select Multiple"
 msgstr "Daugybinis pasirinkimas"
 
@@ -3073,192 +3127,203 @@ msgid "Do overwrite confirmation"
 msgstr "Prašyti perrašymo patvirtinimo"
 
 #: ../gtk/gtkfilechooser.c:814
-msgid ""
-"Whether a file chooser in save mode will present an overwrite confirmation "
-"dialog if necessary."
-msgstr ""
-"Ar failų parinkiklis išsaugojimo veiksenoje rodys perrašymo patvirtinimo "
-"langą, kai tai būtina."
+msgid "Whether a file chooser in save mode will present an overwrite confirmation dialog if necessary."
+msgstr "Ar failų parinkiklis išsaugojimo veiksenoje rodys perrašymo patvirtinimo langą, kai tai būtina."
 
 #: ../gtk/gtkfilechooser.c:830
 msgid "Allow folder creation"
 msgstr "Leisti kurti aplankus"
 
 #: ../gtk/gtkfilechooser.c:831
-msgid ""
-"Whether a file chooser not in open mode will offer the user to create new "
-"folders."
+msgid "Whether a file chooser not in open mode will offer the user to create new folders."
 msgstr "Ar failų parinkiklis atvėrimo veiksenoje siūlys kurti naujus aplankus."
 
-#: ../gtk/gtkfixed.c:152 ../gtk/gtklayout.c:634
+#: ../gtk/gtkfixed.c:152
+#: ../gtk/gtklayout.c:634
+#: ../gtk/gtktreeviewcolumn.c:264
 msgid "X position"
 msgstr "X padėtis"
 
-#: ../gtk/gtkfixed.c:153 ../gtk/gtklayout.c:635
+#: ../gtk/gtkfixed.c:153
+#: ../gtk/gtklayout.c:635
 msgid "X position of child widget"
 msgstr "Vaikinio objekto X padėtis"
 
-#: ../gtk/gtkfixed.c:160 ../gtk/gtklayout.c:644
+#: ../gtk/gtkfixed.c:160
+#: ../gtk/gtklayout.c:644
 msgid "Y position"
 msgstr "Y padėtis"
 
-#: ../gtk/gtkfixed.c:161 ../gtk/gtklayout.c:645
+#: ../gtk/gtkfixed.c:161
+#: ../gtk/gtklayout.c:645
 msgid "Y position of child widget"
 msgstr "Vaikinio objekto Y padėtis"
 
-#: ../gtk/gtkfontbutton.c:153
+#: ../gtk/gtkfontbutton.c:152
 msgid "The title of the font selection dialog"
 msgstr "Šriftų pasirinkimo lango antraštė"
 
-#: ../gtk/gtkfontbutton.c:168 ../gtk/gtkfontsel.c:241
+#: ../gtk/gtkfontbutton.c:167
+#: ../gtk/gtkfontsel.c:238
 msgid "Font name"
 msgstr "Šrifto pavadinimas"
 
-#: ../gtk/gtkfontbutton.c:169
+#: ../gtk/gtkfontbutton.c:168
 msgid "The name of the selected font"
 msgstr "Pasirinkto šrifto vardas"
 
-#: ../gtk/gtkfontbutton.c:170
+#: ../gtk/gtkfontbutton.c:169
 msgid "Sans 12"
 msgstr "Sans 12"
 
-#: ../gtk/gtkfontbutton.c:185
+#: ../gtk/gtkfontbutton.c:184
 msgid "Use font in label"
 msgstr "Nustatyti žymės šriftą"
 
-#: ../gtk/gtkfontbutton.c:186
+#: ../gtk/gtkfontbutton.c:185
 msgid "Whether the label is drawn in the selected font"
 msgstr "Ar žymė yra išvedama naudojant pasirinktą šriftą"
 
-#: ../gtk/gtkfontbutton.c:201
+#: ../gtk/gtkfontbutton.c:200
 msgid "Use size in label"
 msgstr "Nustatyti žymės dydį"
 
-#: ../gtk/gtkfontbutton.c:202
+#: ../gtk/gtkfontbutton.c:201
 msgid "Whether the label is drawn with the selected font size"
 msgstr "Ar žymė yra išvedama naudojant pasirinktą šrifto dydį"
 
-#: ../gtk/gtkfontbutton.c:218
+#: ../gtk/gtkfontbutton.c:217
 msgid "Show style"
 msgstr "Rodyti stilių"
 
-#: ../gtk/gtkfontbutton.c:219
+#: ../gtk/gtkfontbutton.c:218
 msgid "Whether the selected font style is shown in the label"
 msgstr "Ar pasirinkto šrifto stilius yra rodomas žymėje"
 
-#: ../gtk/gtkfontbutton.c:234
+#: ../gtk/gtkfontbutton.c:233
 msgid "Show size"
 msgstr "Rodyti dydį"
 
-#: ../gtk/gtkfontbutton.c:235
+#: ../gtk/gtkfontbutton.c:234
 msgid "Whether selected font size is shown in the label"
 msgstr "Ar pasirinkto šrifto dydis yra rodomas žymėje"
 
-#: ../gtk/gtkfontsel.c:242
+#: ../gtk/gtkfontsel.c:239
 msgid "The string that represents this font"
 msgstr "Simbolių eilutė, atitinkanti šį šriftą"
 
-#: ../gtk/gtkfontsel.c:248
+#: ../gtk/gtkfontsel.c:245
 msgid "Preview text"
 msgstr "Peržiūros tekstas"
 
-#: ../gtk/gtkfontsel.c:249
+#: ../gtk/gtkfontsel.c:246
 msgid "The text to display in order to demonstrate the selected font"
 msgstr "Tekstas, kuris išvedamas norint pademonstruoti pasirinktą šriftą"
 
-#: ../gtk/gtkframe.c:171
+#: ../gtk/gtkframe.c:172
 msgid "Text of the frame's label"
 msgstr "Rėmelio žymės tekstas"
 
-#: ../gtk/gtkframe.c:178
+#: ../gtk/gtkframe.c:179
 msgid "Label xalign"
 msgstr "Žymės x lyg"
 
-#: ../gtk/gtkframe.c:179
+#: ../gtk/gtkframe.c:180
 msgid "The horizontal alignment of the label"
 msgstr "Horizontalus žymės lygiavimas"
 
-#: ../gtk/gtkframe.c:187
+#: ../gtk/gtkframe.c:188
 msgid "Label yalign"
 msgstr "Žymės x lyg"
 
-#: ../gtk/gtkframe.c:188
+#: ../gtk/gtkframe.c:189
 msgid "The vertical alignment of the label"
 msgstr "Vertikalus žymės lygiavimas"
 
-#: ../gtk/gtkframe.c:196
+#: ../gtk/gtkframe.c:197
 msgid "Frame shadow"
 msgstr "Rėmelio šešėlis"
 
-#: ../gtk/gtkframe.c:197
+#: ../gtk/gtkframe.c:198
 msgid "Appearance of the frame border"
 msgstr "Rėmelio paraštės išvaizda"
 
-#: ../gtk/gtkframe.c:206
+#: ../gtk/gtkframe.c:207
 msgid "A widget to display in place of the usual frame label"
 msgstr "Objektas rodomas vietoje įprasto rėmelio užrašo"
 
-#: ../gtk/gtkgrid.c:1268 ../gtk/gtktable.c:209
+#: ../gtk/gtkgrid.c:1298
+#: ../gtk/gtktable.c:209
 msgid "Row spacing"
 msgstr "Tarpai tarp eilučių"
 
-#: ../gtk/gtkgrid.c:1269 ../gtk/gtktable.c:210
+#: ../gtk/gtkgrid.c:1299
+#: ../gtk/gtktable.c:210
 msgid "The amount of space between two consecutive rows"
 msgstr "Tarpas tarp dviejų greta esančių eilučių"
 
-#: ../gtk/gtkgrid.c:1275 ../gtk/gtktable.c:218
+#: ../gtk/gtkgrid.c:1305
+#: ../gtk/gtktable.c:218
 msgid "Column spacing"
 msgstr "Tarpai tarp stulpelių"
 
-#: ../gtk/gtkgrid.c:1276 ../gtk/gtktable.c:219
+#: ../gtk/gtkgrid.c:1306
+#: ../gtk/gtktable.c:219
 msgid "The amount of space between two consecutive columns"
 msgstr "Tarpas tarp dviejų greta esančių stulpelių"
 
-#: ../gtk/gtkgrid.c:1282
+#: ../gtk/gtkgrid.c:1312
 msgid "Row Homogeneous"
 msgstr "Eilutės vienalytės"
 
-#: ../gtk/gtkgrid.c:1283
+#: ../gtk/gtkgrid.c:1313
 msgid "If TRUE, the rows are all the same height"
 msgstr "Jei TEIGIAMA, visos eilutės yra vienodo aukščio"
 
-#: ../gtk/gtkgrid.c:1289
+#: ../gtk/gtkgrid.c:1319
 msgid "Column Homogeneous"
 msgstr "Vienalyčiai stulpeliai"
 
-#: ../gtk/gtkgrid.c:1290
+#: ../gtk/gtkgrid.c:1320
 msgid "If TRUE, the columns are all the same width"
 msgstr "Jei TEIGIAMA, visi stulpeliai yra vienodo pločio"
 
-#: ../gtk/gtkgrid.c:1296 ../gtk/gtktable.c:235
+#: ../gtk/gtkgrid.c:1326
+#: ../gtk/gtktable.c:235
 msgid "Left attachment"
 msgstr "Kairysis priedas"
 
-#: ../gtk/gtkgrid.c:1297 ../gtk/gtkmenu.c:759 ../gtk/gtktable.c:236
+#: ../gtk/gtkgrid.c:1327
+#: ../gtk/gtkmenu.c:761
+#: ../gtk/gtktable.c:236
 msgid "The column number to attach the left side of the child to"
 msgstr "Stulpelis, prie kurio reikia prijungti kairę vaikinio objekto pusę"
 
-#: ../gtk/gtkgrid.c:1303 ../gtk/gtktable.c:249
+#: ../gtk/gtkgrid.c:1333
+#: ../gtk/gtktable.c:249
 msgid "Top attachment"
 msgstr "Viršutinis priedas"
 
-#: ../gtk/gtkgrid.c:1304
+#: ../gtk/gtkgrid.c:1334
 msgid "The row number to attach the top side of a child widget to"
 msgstr "Eilutė, prie kurios reikia prijungti vaikinio elemento viršų, numeris"
 
-#: ../gtk/gtkgrid.c:1310 ../gtk/gtklayout.c:660 ../gtk/gtktreeviewcolumn.c:262
+#: ../gtk/gtkgrid.c:1340
+#: ../gtk/gtklayout.c:660
+#: ../gtk/gtktreeviewcolumn.c:274
 msgid "Width"
 msgstr "Plotis"
 
-#: ../gtk/gtkgrid.c:1311
+#: ../gtk/gtkgrid.c:1341
 msgid "The number of columns that a child spans"
 msgstr "Vaiko apimamų stulpelių skaičius"
 
-#: ../gtk/gtkgrid.c:1317 ../gtk/gtklayout.c:669
+#: ../gtk/gtkgrid.c:1347
+#: ../gtk/gtklayout.c:669
 msgid "Height"
 msgstr "Aukštis"
 
-#: ../gtk/gtkgrid.c:1318
+#: ../gtk/gtkgrid.c:1348
 msgid "The number of rows that a child spans"
 msgstr "Vaiko apimamų eilučių skaičius lentelėje"
 
@@ -3279,20 +3344,15 @@ msgid "Snap edge"
 msgstr "Prisegimo kraštas"
 
 #: ../gtk/gtkhandlebox.c:237
-msgid ""
-"Side of the handlebox that's lined up with the docking point to dock the "
-"handlebox"
-msgstr ""
-"Pusė pagal kurią reikia lygiuoti rodyklės lauką jį prikabinant prie doko."
+msgid "Side of the handlebox that's lined up with the docking point to dock the handlebox"
+msgstr "Pusė pagal kurią reikia lygiuoti rodyklės lauką jį prikabinant prie doko."
 
 #: ../gtk/gtkhandlebox.c:245
 msgid "Snap edge set"
 msgstr "Nustatytas prisegimo kraštas"
 
 #: ../gtk/gtkhandlebox.c:246
-msgid ""
-"Whether to use the value from the snap_edge property or a value derived from "
-"handle_position"
+msgid "Whether to use the value from the snap_edge property or a value derived from handle_position"
 msgstr "Naudoti snap_edge ar handle_position savybės reikšmę"
 
 #: ../gtk/gtkhandlebox.c:253
@@ -3300,14 +3360,11 @@ msgid "Child Detached"
 msgstr "Vaikinis objektas atsietas"
 
 #: ../gtk/gtkhandlebox.c:254
-msgid ""
-"A boolean value indicating whether the handlebox's child is attached or "
-"detached."
-msgstr ""
-"Loginė reikšmė, nurodanti, ar rodyklės lauko vaikinis objektas yra atsietas, "
-"ar ne."
+msgid "A boolean value indicating whether the handlebox's child is attached or detached."
+msgstr "Loginė reikšmė, nurodanti, ar rodyklės lauko vaikinis objektas yra atsietas, ar ne."
 
-#: ../gtk/gtkiconview.c:528 ../gtk/gtktreeselection.c:131
+#: ../gtk/gtkiconview.c:528
+#: ../gtk/gtktreeselection.c:131
 msgid "Selection mode"
 msgstr "Pasirinkimo veiksena"
 
@@ -3333,8 +3390,7 @@ msgstr "Žymėjimo stulpelis"
 
 #: ../gtk/gtkiconview.c:586
 msgid "Model column used to retrieve the text if using Pango markup"
-msgstr ""
-"Modelio stulpelis naudojamas gauti tekstui, kai naudojamas Pango žymėjimas"
+msgstr "Modelio stulpelis naudojamas gauti tekstui, kai naudojamas Pango žymėjimas"
 
 #: ../gtk/gtkiconview.c:593
 msgid "Icon View Model"
@@ -3393,20 +3449,22 @@ msgid "Item Orientation"
 msgstr "Elemento orientacija"
 
 #: ../gtk/gtkiconview.c:709
-msgid ""
-"How the text and icon of each item are positioned relative to each other"
+msgid "How the text and icon of each item are positioned relative to each other"
 msgstr "Kaip tekstas ir piktogramos išsidėstę vienas kito atžvilgiu"
 
-#: ../gtk/gtkiconview.c:725 ../gtk/gtktreeview.c:1022
-#: ../gtk/gtktreeviewcolumn.c:362
+#: ../gtk/gtkiconview.c:725
+#: ../gtk/gtktreeview.c:1022
+#: ../gtk/gtktreeviewcolumn.c:374
 msgid "Reorderable"
 msgstr "Perrūšiuojamas"
 
-#: ../gtk/gtkiconview.c:726 ../gtk/gtktreeview.c:1023
+#: ../gtk/gtkiconview.c:726
+#: ../gtk/gtktreeview.c:1023
 msgid "View is reorderable"
 msgstr "Vaizdas yra rūšiuojamas"
 
-#: ../gtk/gtkiconview.c:733 ../gtk/gtktreeview.c:1173
+#: ../gtk/gtkiconview.c:733
+#: ../gtk/gtktreeview.c:1173
 msgid "Tooltip Column"
 msgstr "Paaiškinimo stulpelis"
 
@@ -3438,75 +3496,82 @@ msgstr "Pažymėjimo dėžutės permatomumas"
 msgid "Opacity of the selection box"
 msgstr "Pažymėjimo dėžutės permatomumas"
 
-#: ../gtk/gtkimage.c:236 ../gtk/gtkstatusicon.c:235
+#: ../gtk/gtkimage.c:237
+#: ../gtk/gtkstatusicon.c:235
 msgid "Pixbuf"
 msgstr "Pixbuf"
 
-#: ../gtk/gtkimage.c:237 ../gtk/gtkstatusicon.c:236
+#: ../gtk/gtkimage.c:238
+#: ../gtk/gtkstatusicon.c:236
 msgid "A GdkPixbuf to display"
 msgstr "Rodomas GdkPixbuf"
 
-#: ../gtk/gtkimage.c:244 ../gtk/gtkrecentmanager.c:294
+#: ../gtk/gtkimage.c:245
+#: ../gtk/gtkrecentmanager.c:294
 #: ../gtk/gtkstatusicon.c:243
 msgid "Filename"
 msgstr "Failo pavadinimas"
 
-#: ../gtk/gtkimage.c:245 ../gtk/gtkstatusicon.c:244
+#: ../gtk/gtkimage.c:246
+#: ../gtk/gtkstatusicon.c:244
 msgid "Filename to load and display"
 msgstr "Įkeliamas ir rodomas failas."
 
-#: ../gtk/gtkimage.c:254 ../gtk/gtkstatusicon.c:252
+#: ../gtk/gtkimage.c:255
+#: ../gtk/gtkstatusicon.c:252
 msgid "Stock ID for a stock image to display"
 msgstr "Standartinis ID skirtas išvedamam standartiniam paveikslėliui"
 
-#: ../gtk/gtkimage.c:261
+#: ../gtk/gtkimage.c:262
 msgid "Icon set"
 msgstr "Piktogramų rinkinys"
 
-#: ../gtk/gtkimage.c:262
+#: ../gtk/gtkimage.c:263
 msgid "Icon set to display"
 msgstr "Piktogramų rinkinys rodymui."
 
-#: ../gtk/gtkimage.c:269 ../gtk/gtkscalebutton.c:227 ../gtk/gtktoolbar.c:521
-#: ../gtk/gtktoolpalette.c:1039
+#: ../gtk/gtkimage.c:270
+#: ../gtk/gtkscalebutton.c:228
+#: ../gtk/gtktoolbar.c:528
+#: ../gtk/gtktoolpalette.c:1008
 msgid "Icon size"
 msgstr "Piktogramos dydis"
 
-#: ../gtk/gtkimage.c:270
+#: ../gtk/gtkimage.c:271
 msgid "Symbolic size to use for stock icon, icon set or named icon"
-msgstr ""
-"Simbolinis dydis naudotinas standartinėms piktogramoms, piktogramų "
-"rinkiniams ar pavadintoms piktogramoms"
+msgstr "Simbolinis dydis naudotinas standartinėms piktogramoms, piktogramų rinkiniams ar pavadintoms piktogramoms"
 
-#: ../gtk/gtkimage.c:286
+#: ../gtk/gtkimage.c:287
 msgid "Pixel size"
 msgstr "Dydis pikseliais"
 
-#: ../gtk/gtkimage.c:287
+#: ../gtk/gtkimage.c:288
 msgid "Pixel size to use for named icon"
 msgstr "Dydis pikseliais pavadintai piktogramai"
 
-#: ../gtk/gtkimage.c:295
+#: ../gtk/gtkimage.c:296
 msgid "Animation"
 msgstr "Animacija"
 
-#: ../gtk/gtkimage.c:296
+#: ../gtk/gtkimage.c:297
 msgid "GdkPixbufAnimation to display"
 msgstr "Rodoma GdkPixbufAnimation"
 
-#: ../gtk/gtkimage.c:336 ../gtk/gtkstatusicon.c:283
+#: ../gtk/gtkimage.c:337
+#: ../gtk/gtkstatusicon.c:283
 msgid "Storage type"
 msgstr "Saugyklos tipas"
 
-#: ../gtk/gtkimage.c:337 ../gtk/gtkstatusicon.c:284
+#: ../gtk/gtkimage.c:338
+#: ../gtk/gtkstatusicon.c:284
 msgid "The representation being used for image data"
 msgstr "Atvaizdas naudojamas paveikslėlio duomenims"
 
-#: ../gtk/gtkimage.c:355
+#: ../gtk/gtkimage.c:356
 msgid "Use Fallback"
 msgstr "Naudoti atsarginę veikseną"
 
-#: ../gtk/gtkimage.c:356
+#: ../gtk/gtkimage.c:357
 msgid "Whether to use icon names fallback"
 msgstr "Ar rodyti piktogramų pavadinimus atsarginėje veiksenoje"
 
@@ -3518,7 +3583,8 @@ msgstr "Vaikinis objektas išvedamas šalia meniu teksto"
 msgid "Whether to use the label text to create a stock menu item"
 msgstr "Ar naudoti žymės tekstą sukuriant standartinį meniu įrašą"
 
-#: ../gtk/gtkimagemenuitem.c:209 ../gtk/gtkmenu.c:601
+#: ../gtk/gtkimagemenuitem.c:209
+#: ../gtk/gtkmenu.c:603
 msgid "Accel Group"
 msgstr "Sparčiųjų klavišų grupė"
 
@@ -3526,33 +3592,38 @@ msgstr "Sparčiųjų klavišų grupė"
 msgid "The Accel Group to use for stock accelerator keys"
 msgstr "Grupė, naudotina standartiniams spartiesiems klavišams"
 
-#: ../gtk/gtkinfobar.c:371 ../gtk/gtkmessagedialog.c:202
+#: ../gtk/gtkinfobar.c:372
+#: ../gtk/gtkmessagedialog.c:202
 msgid "Message Type"
 msgstr "Pranešimo tipas"
 
-#: ../gtk/gtkinfobar.c:372 ../gtk/gtkmessagedialog.c:203
+#: ../gtk/gtkinfobar.c:373
+#: ../gtk/gtkmessagedialog.c:203
 msgid "The type of message"
 msgstr "Pranešimo tipas"
 
-#: ../gtk/gtkinfobar.c:427
+#: ../gtk/gtkinfobar.c:428
 msgid "Width of border around the content area"
 msgstr "Rėmelio aplink pagrindinę turinio sritį plotis"
 
-#: ../gtk/gtkinfobar.c:444
+#: ../gtk/gtkinfobar.c:445
 msgid "Spacing between elements of the area"
 msgstr "Intervalas tarp srities elementų"
 
-#: ../gtk/gtkinfobar.c:476
+#: ../gtk/gtkinfobar.c:477
 msgid "Width of border around the action area"
 msgstr "Rėmelio aplink veiksmo sritį plotis"
 
-#: ../gtk/gtkinvisible.c:103 ../gtk/gtkmountoperation.c:175
-#: ../gtk/gtkstatusicon.c:302 ../gtk/gtkstylecontext.c:546
-#: ../gtk/gtkwindow.c:731
+#: ../gtk/gtkinvisible.c:103
+#: ../gtk/gtkmountoperation.c:173
+#: ../gtk/gtkstatusicon.c:302
+#: ../gtk/gtkstylecontext.c:431
+#: ../gtk/gtkwindow.c:732
 msgid "Screen"
 msgstr "Ekranas"
 
-#: ../gtk/gtkinvisible.c:104 ../gtk/gtkwindow.c:732
+#: ../gtk/gtkinvisible.c:104
+#: ../gtk/gtkwindow.c:733
 msgid "The screen where this window will be displayed"
 msgstr "Ekranas, kuriame bus išvedamas šis langas"
 
@@ -3564,27 +3635,22 @@ msgstr "Žymės tekstas"
 msgid "A list of style attributes to apply to the text of the label"
 msgstr "Žymės teksto stiliaus atributų sąrašas"
 
-#: ../gtk/gtklabel.c:773 ../gtk/gtktexttag.c:353 ../gtk/gtktextview.c:704
+#: ../gtk/gtklabel.c:773
+#: ../gtk/gtktexttag.c:386
+#: ../gtk/gtktextview.c:703
 msgid "Justification"
 msgstr "Abipusė lygiuotė"
 
 #: ../gtk/gtklabel.c:774
-msgid ""
-"The alignment of the lines in the text of the label relative to each other. "
-"This does NOT affect the alignment of the label within its allocation. See "
-"GtkMisc::xalign for that"
-msgstr ""
-"Žymės eilučių teksto lyginimas viena kitos atžvilgiu. Tai nepaveikia žymės "
-"lyginimo jos patalpinimo vietoje. Tam žiūrėk GtkMisc::xalign"
+msgid "The alignment of the lines in the text of the label relative to each other. This does NOT affect the alignment of the label within its allocation. See GtkMisc::xalign for that"
+msgstr "Žymės eilučių teksto lyginimas viena kitos atžvilgiu. Tai nepaveikia žymės lyginimo jos patalpinimo vietoje. Tam žiūrėk GtkMisc::xalign"
 
 #: ../gtk/gtklabel.c:782
 msgid "Pattern"
 msgstr "Raštas"
 
 #: ../gtk/gtklabel.c:783
-msgid ""
-"A string with _ characters in positions correspond to characters in the text "
-"to underline"
+msgid "A string with _ characters in positions correspond to characters in the text to underline"
 msgstr "Seka su _ simboliais nurodo teksto, dalis kurios turi būti pabrauktos"
 
 #: ../gtk/gtklabel.c:790
@@ -3593,8 +3659,7 @@ msgstr "Eilučių laužymas"
 
 #: ../gtk/gtklabel.c:791
 msgid "If set, wrap lines if the text becomes too wide"
-msgstr ""
-"Jei įjungta, tekstas bus suskaidytas į kelias eilutes jei bus per platus"
+msgstr "Jei įjungta, tekstas bus suskaidytas į kelias eilutes jei bus per platus"
 
 #: ../gtk/gtklabel.c:806
 msgid "Line wrap mode"
@@ -3626,16 +3691,11 @@ msgstr "Mnemoninis objektas"
 
 #: ../gtk/gtklabel.c:831
 msgid "The widget to be activated when the label's mnemonic key is pressed"
-msgstr ""
-"Objektas gali būti aktyvintas, kai paspaudžiamas žymės spartusis klavišas"
+msgstr "Objektas gali būti aktyvintas, kai paspaudžiamas žymės spartusis klavišas"
 
 #: ../gtk/gtklabel.c:877
-msgid ""
-"The preferred place to ellipsize the string, if the label does not have "
-"enough room to display the entire string"
-msgstr ""
-"Pageidaujama vieta užrašo elipsavimui, jeigu užrašas neturi pakankamai "
-"vietos parodyti visą užrašą"
+msgid "The preferred place to ellipsize the string, if the label does not have enough room to display the entire string"
+msgstr "Pageidaujama vieta užrašo elipsavimui, jeigu užrašas neturi pakankamai vietos parodyti visą užrašą"
 
 #: ../gtk/gtklabel.c:918
 msgid "Single Line Mode"
@@ -3689,217 +3749,255 @@ msgstr "Lankytas"
 msgid "Whether this link has been visited."
 msgstr "Ar šiame tinklalapyje jau lankytasi."
 
-#: ../gtk/gtkmenubar.c:181
+#: ../gtk/gtklockbutton.c:278
+msgid "Permission"
+msgstr "Leidimas"
+
+#: ../gtk/gtklockbutton.c:279
+msgid "The GPermission object controlling this button"
+msgstr "GPermission objektas, valdantis šį mygtuką"
+
+#: ../gtk/gtklockbutton.c:286
+#| msgid "Text"
+msgid "Lock Text"
+msgstr "Užrakinimo tekstas"
+
+#: ../gtk/gtklockbutton.c:287
+#| msgid "The text to display in order to demonstrate the selected font"
+msgid "The text to display when prompting the user to lock"
+msgstr "Tekstas, rodomas kai prašoma naudotojo užrakinti"
+
+#: ../gtk/gtklockbutton.c:295
+msgid "Unlock Text"
+msgstr "Atrakinimo tekstas"
+
+#: ../gtk/gtklockbutton.c:296
+#| msgid "The text to display in order to demonstrate the selected font"
+msgid "The text to display when prompting the user to unlock"
+msgstr "Tekstas, rodomas kai prašoma naudotojo atrakinti"
+
+#: ../gtk/gtklockbutton.c:304
+#| msgid "Tooltip"
+msgid "Lock Tooltip"
+msgstr "Rakinimo patarimas"
+
+#: ../gtk/gtklockbutton.c:305
+msgid "The tooltip to display when prompting the user to lock"
+msgstr "Patarimas, rodomas kaip prašoma naudotojo užrakinti"
+
+#: ../gtk/gtklockbutton.c:313
+#| msgid "Enable Tooltips"
+msgid "Unlock Tooltip"
+msgstr "Atrakinimo patarimas"
+
+#: ../gtk/gtklockbutton.c:314
+msgid "The tooltip to display when prompting the user to unlock"
+msgstr "Patarimas, rodomas kaip prašoma naudotojo atrakinti"
+
+#: ../gtk/gtklockbutton.c:322
+msgid "Not Authorized Tooltip"
+msgstr "Patarimas neleidžiant"
+
+#: ../gtk/gtklockbutton.c:323
+msgid "The tooltip to display when prompting the user cannot obtain authorization"
+msgstr "Patarimas, rodomas kai naudotojui pranešima, kad negalima gauti leidimo"
+
+#: ../gtk/gtkmenubar.c:191
 msgid "Pack direction"
 msgstr "Pakavimo kryptis"
 
-#: ../gtk/gtkmenubar.c:182
+#: ../gtk/gtkmenubar.c:192
 msgid "The pack direction of the menubar"
 msgstr "Meniu juostos pakavimo kryptis"
 
-#: ../gtk/gtkmenubar.c:198
+#: ../gtk/gtkmenubar.c:208
 msgid "Child Pack direction"
 msgstr "Vaikinio elemento pakavimo kryptis"
 
-#: ../gtk/gtkmenubar.c:199
+#: ../gtk/gtkmenubar.c:209
 msgid "The child pack direction of the menubar"
 msgstr "Meniu juostos vaikinio elemento pakavimo kryptis"
 
-#: ../gtk/gtkmenubar.c:208
+#: ../gtk/gtkmenubar.c:218
 msgid "Style of bevel around the menubar"
 msgstr "Rėmelio apie meniu stilius"
 
-#: ../gtk/gtkmenubar.c:215 ../gtk/gtktoolbar.c:571
+#: ../gtk/gtkmenubar.c:225
+#: ../gtk/gtktoolbar.c:578
 msgid "Internal padding"
 msgstr "Vidinis apvalkalas"
 
-#: ../gtk/gtkmenubar.c:216
+#: ../gtk/gtkmenubar.c:226
 msgid "Amount of border space between the menubar shadow and the menu items"
 msgstr "Tarpas tarp meniu šešėlių ir meniu elementų"
 
-#: ../gtk/gtkmenu.c:587
+#: ../gtk/gtkmenu.c:589
 msgid "The currently selected menu item"
 msgstr "Šiuo metu pasirinktas meniu punktas"
 
-#: ../gtk/gtkmenu.c:602
+#: ../gtk/gtkmenu.c:604
 msgid "The accel group holding accelerators for the menu"
 msgstr "Sparčiųjų klavišų grupė, kurioje saugomi šio meniu spartieji klavišai"
 
-#: ../gtk/gtkmenu.c:616 ../gtk/gtkmenuitem.c:359
+#: ../gtk/gtkmenu.c:618
+#: ../gtk/gtkmenuitem.c:369
 msgid "Accel Path"
 msgstr "Sparčiųjų klavišų kelias"
 
-#: ../gtk/gtkmenu.c:617
+#: ../gtk/gtkmenu.c:619
 msgid "An accel path used to conveniently construct accel paths of child items"
-msgstr ""
-"Sparčiųjų klavišų kelias, naudojamas patogiai sukurti vaikinių objektų "
-"sparčiųjų klavišų kelius"
+msgstr "Sparčiųjų klavišų kelias, naudojamas patogiai sukurti vaikinių objektų sparčiųjų klavišų kelius"
 
-#: ../gtk/gtkmenu.c:633
+#: ../gtk/gtkmenu.c:635
 msgid "Attach Widget"
 msgstr "Objektas susiejimui"
 
-#: ../gtk/gtkmenu.c:634
+#: ../gtk/gtkmenu.c:636
 msgid "The widget the menu is attached to"
 msgstr "Objektas, su kuriuo meniu susietas"
 
-#: ../gtk/gtkmenu.c:642
-msgid ""
-"A title that may be displayed by the window manager when this menu is torn-"
-"off"
+#: ../gtk/gtkmenu.c:644
+msgid "A title that may be displayed by the window manager when this menu is torn-off"
 msgstr "Pavadinimas rodomas langų tvarkyklės, kai šis meniu yra nuplėštas"
 
-#: ../gtk/gtkmenu.c:656
+#: ../gtk/gtkmenu.c:658
 msgid "Tearoff State"
 msgstr "Atkabinimo būsena"
 
-#: ../gtk/gtkmenu.c:657
+#: ../gtk/gtkmenu.c:659
 msgid "A boolean that indicates whether the menu is torn-off"
 msgstr "Loginė reikšmė, nurodanti ar meniu yra atkabinamas"
 
-#: ../gtk/gtkmenu.c:671
+#: ../gtk/gtkmenu.c:673
 msgid "Monitor"
 msgstr "Vaizduoklis"
 
-#: ../gtk/gtkmenu.c:672
+#: ../gtk/gtkmenu.c:674
 msgid "The monitor the menu will be popped up on"
 msgstr "Vaizduoklis, kuriame bus rodomas meniu"
 
-#: ../gtk/gtkmenu.c:678
+#: ../gtk/gtkmenu.c:680
 msgid "Vertical Padding"
 msgstr "Vertikalus apvalkalas"
 
-#: ../gtk/gtkmenu.c:679
+#: ../gtk/gtkmenu.c:681
 msgid "Extra space at the top and bottom of the menu"
 msgstr "Tarpas pridedamas meniu viršuje ir apačioje"
 
-#: ../gtk/gtkmenu.c:701
+#: ../gtk/gtkmenu.c:703
 msgid "Reserve Toggle Size"
 msgstr "Rezervuoti mygtuko dydį"
 
-#: ../gtk/gtkmenu.c:702
-msgid ""
-"A boolean that indicates whether the menu reserves space for toggles and "
-"icons"
-msgstr ""
-"Loginė reikšmė, nurodanti, ar meniu rezervuoja vietos piktogramoms ir "
-"mygtukams"
+#: ../gtk/gtkmenu.c:704
+msgid "A boolean that indicates whether the menu reserves space for toggles and icons"
+msgstr "Loginė reikšmė, nurodanti, ar meniu rezervuoja vietos piktogramoms ir mygtukams"
 
-#: ../gtk/gtkmenu.c:708
+#: ../gtk/gtkmenu.c:710
 msgid "Horizontal Padding"
 msgstr "Horizontalus apvalkalas"
 
-#: ../gtk/gtkmenu.c:709
+#: ../gtk/gtkmenu.c:711
 msgid "Extra space at the left and right edges of the menu"
 msgstr "Tarpas pridedamas meniu kairėje ir dešinėje"
 
-#: ../gtk/gtkmenu.c:717
+#: ../gtk/gtkmenu.c:719
 msgid "Vertical Offset"
 msgstr "Vertikalus poslinkis"
 
-#: ../gtk/gtkmenu.c:718
-msgid ""
-"When the menu is a submenu, position it this number of pixels offset "
-"vertically"
-msgstr ""
-"Kai meniu yra antrinė meniu dalis, atitraukti jį per nustatytą pikselių "
-"kiekį vertikaliai"
+#: ../gtk/gtkmenu.c:720
+msgid "When the menu is a submenu, position it this number of pixels offset vertically"
+msgstr "Kai meniu yra antrinė meniu dalis, atitraukti jį per nustatytą pikselių kiekį vertikaliai"
 
-#: ../gtk/gtkmenu.c:726
+#: ../gtk/gtkmenu.c:728
 msgid "Horizontal Offset"
 msgstr "Horizontalus poslinkis"
 
-#: ../gtk/gtkmenu.c:727
-msgid ""
-"When the menu is a submenu, position it this number of pixels offset "
-"horizontally"
-msgstr ""
-"Kai meniu yra antrinė meniu dalis, atitraukti jį per nustatytą pikselių "
-"kiekį horizontaliai"
+#: ../gtk/gtkmenu.c:729
+msgid "When the menu is a submenu, position it this number of pixels offset horizontally"
+msgstr "Kai meniu yra antrinė meniu dalis, atitraukti jį per nustatytą pikselių kiekį horizontaliai"
 
-#: ../gtk/gtkmenu.c:735
+#: ../gtk/gtkmenu.c:737
 msgid "Double Arrows"
 msgstr "Dvigubos rodyklės"
 
-#: ../gtk/gtkmenu.c:736
+#: ../gtk/gtkmenu.c:738
 msgid "When scrolling, always show both arrows."
 msgstr "Slenkant, visada rodyti abi rodykles."
 
-#: ../gtk/gtkmenu.c:749
+#: ../gtk/gtkmenu.c:751
 msgid "Arrow Placement"
 msgstr "Rodyklės padėtis"
 
-#: ../gtk/gtkmenu.c:750
+#: ../gtk/gtkmenu.c:752
 msgid "Indicates where scroll arrows should be placed"
 msgstr "Nurodo, kur bus patalpinti slinkties mygtukai"
 
-#: ../gtk/gtkmenu.c:758
+#: ../gtk/gtkmenu.c:760
 msgid "Left Attach"
 msgstr "Kairysis priedas"
 
-#: ../gtk/gtkmenu.c:766
+#: ../gtk/gtkmenu.c:768
 msgid "Right Attach"
 msgstr "Dešinysis priedas"
 
-#: ../gtk/gtkmenu.c:767
+#: ../gtk/gtkmenu.c:769
 msgid "The column number to attach the right side of the child to"
 msgstr "Stulpelis, prie kurio reikia prijungti dešinę vaikinio objekto pusę"
 
-#: ../gtk/gtkmenu.c:774
+#: ../gtk/gtkmenu.c:776
 msgid "Top Attach"
 msgstr "Viršutinis priedas"
 
-#: ../gtk/gtkmenu.c:775
+#: ../gtk/gtkmenu.c:777
 msgid "The row number to attach the top of the child to"
 msgstr "Eilutė, prie kurios reikia prijungti vaikinio objekto viršų"
 
-#: ../gtk/gtkmenu.c:782
+#: ../gtk/gtkmenu.c:784
 msgid "Bottom Attach"
 msgstr "Apatinis priedas"
 
-#: ../gtk/gtkmenu.c:783 ../gtk/gtktable.c:257
+#: ../gtk/gtkmenu.c:785
+#: ../gtk/gtktable.c:257
 msgid "The row number to attach the bottom of the child to"
 msgstr "Eilutė, prie kurios reikia prijungti vaikinio objekto apačią"
 
-#: ../gtk/gtkmenu.c:797
+#: ../gtk/gtkmenu.c:799
 msgid "Arbitrary constant to scale down the size of the scroll arrow"
 msgstr "Sutartinė konstanta slinkties mygtukų dydžio sumažinimui"
 
-#: ../gtk/gtkmenuitem.c:327
+#: ../gtk/gtkmenuitem.c:337
 msgid "Right Justified"
 msgstr "Lygiuotas pagal dešinę"
 
-#: ../gtk/gtkmenuitem.c:328
-msgid ""
-"Sets whether the menu item appears justified at the right side of a menu bar"
-msgstr ""
-"Nurodo, ar meniu punktas bus lygiuojamas pagal dešinę meniu juostos pusę."
+#: ../gtk/gtkmenuitem.c:338
+msgid "Sets whether the menu item appears justified at the right side of a menu bar"
+msgstr "Nurodo, ar meniu punktas bus lygiuojamas pagal dešinę meniu juostos pusę."
 
-#: ../gtk/gtkmenuitem.c:342
+#: ../gtk/gtkmenuitem.c:352
 msgid "Submenu"
 msgstr "Submeniu"
 
-#: ../gtk/gtkmenuitem.c:343
+#: ../gtk/gtkmenuitem.c:353
 msgid "The submenu attached to the menu item, or NULL if it has none"
 msgstr "Submeniu susietas su meniu elementu, arba NULL jei jis tokio neturi"
 
-#: ../gtk/gtkmenuitem.c:360
+#: ../gtk/gtkmenuitem.c:370
 msgid "Sets the accelerator path of the menu item"
 msgstr "Nurodo meniu punkto sparčiųjų klavišų kelią"
 
-#: ../gtk/gtkmenuitem.c:375
+#: ../gtk/gtkmenuitem.c:385
 msgid "The text for the child label"
 msgstr "Vaikinio objekto žymės tekstas"
 
-#: ../gtk/gtkmenuitem.c:438
+#: ../gtk/gtkmenuitem.c:448
 msgid "Amount of space used up by arrow, relative to the menu item's font size"
 msgstr "Rodyklės užimama vieta, lyginant su meniu punkto šrifto dydžiu"
 
-#: ../gtk/gtkmenuitem.c:451
+#: ../gtk/gtkmenuitem.c:461
 msgid "Width in Characters"
 msgstr "Plotis simboliais"
 
-#: ../gtk/gtkmenuitem.c:452
+#: ../gtk/gtkmenuitem.c:462
 msgid "The minimum desired width of the menu item in characters"
 msgstr "Mažiausias leistinas meniu punkto plotis (simboliais)"
 
@@ -3925,8 +4023,7 @@ msgstr "Paveikslėlio/žymės rėmelis"
 
 #: ../gtk/gtkmessagedialog.c:186
 msgid "Width of border around the label and image in the message dialog"
-msgstr ""
-"Rėmelio apie žymę ir paveikslėlį plotis kairėje ir dešinėje, pikseliais"
+msgstr "Rėmelio apie žymę ir paveikslėlį plotis kairėje ir dešinėje, pikseliais"
 
 #: ../gtk/gtkmessagedialog.c:210
 msgid "Message Buttons"
@@ -3993,8 +4090,7 @@ msgid "X pad"
 msgstr "X apvalkalas"
 
 #: ../gtk/gtkmisc.c:126
-msgid ""
-"The amount of space to add on the left and right of the widget, in pixels"
+msgid "The amount of space to add on the left and right of the widget, in pixels"
 msgstr "Tarpas pridedamas objekto kairėje ir dešinėje pusėje"
 
 #: ../gtk/gtkmisc.c:135
@@ -4002,204 +4098,202 @@ msgid "Y pad"
 msgstr "Y apvalkalas"
 
 #: ../gtk/gtkmisc.c:136
-msgid ""
-"The amount of space to add on the top and bottom of the widget, in pixels"
+msgid "The amount of space to add on the top and bottom of the widget, in pixels"
 msgstr "Tarpas pridedamas objekto viršuje ir apačioje, pikseliais"
 
-#: ../gtk/gtkmountoperation.c:159
+#: ../gtk/gtkmountoperation.c:157
 msgid "Parent"
 msgstr "Pirminis"
 
-#: ../gtk/gtkmountoperation.c:160
+#: ../gtk/gtkmountoperation.c:158
 msgid "The parent window"
 msgstr "Pirminis langas"
 
-#: ../gtk/gtkmountoperation.c:167
+#: ../gtk/gtkmountoperation.c:165
 msgid "Is Showing"
 msgstr "Rodomas"
 
-#: ../gtk/gtkmountoperation.c:168
+#: ../gtk/gtkmountoperation.c:166
 msgid "Are we showing a dialog"
 msgstr "Ar rodomas dialogo langas"
 
-#: ../gtk/gtkmountoperation.c:176
+#: ../gtk/gtkmountoperation.c:174
 msgid "The screen where this window will be displayed."
 msgstr "Ekranas, kuriame bus rodomas šis langas."
 
-#: ../gtk/gtknotebook.c:685
+#: ../gtk/gtknotebook.c:696
 msgid "Page"
 msgstr "Puslapis"
 
-#: ../gtk/gtknotebook.c:686
+#: ../gtk/gtknotebook.c:697
 msgid "The index of the current page"
 msgstr "Esamo puslapio indeksas"
 
-#: ../gtk/gtknotebook.c:694
+#: ../gtk/gtknotebook.c:705
 msgid "Tab Position"
 msgstr "Kortelių pozicija"
 
-#: ../gtk/gtknotebook.c:695
+#: ../gtk/gtknotebook.c:706
 msgid "Which side of the notebook holds the tabs"
 msgstr "Kurioje rašymo laukelio pusėje bus rodomos kortelės"
 
-#: ../gtk/gtknotebook.c:702
+#: ../gtk/gtknotebook.c:713
 msgid "Show Tabs"
 msgstr "Rodyti tabuliaciją"
 
-#: ../gtk/gtknotebook.c:703
+#: ../gtk/gtknotebook.c:714
 msgid "Whether tabs should be shown"
 msgstr "Ar turi būti rodomos kortelės"
 
-#: ../gtk/gtknotebook.c:709
+#: ../gtk/gtknotebook.c:720
 msgid "Show Border"
 msgstr "Rodyti rėmelį"
 
-#: ../gtk/gtknotebook.c:710
+#: ../gtk/gtknotebook.c:721
 msgid "Whether the border should be shown"
 msgstr "Ar paraštė turi būti rodoma"
 
-#: ../gtk/gtknotebook.c:716
+#: ../gtk/gtknotebook.c:727
 msgid "Scrollable"
 msgstr "Slenkamas"
 
-#: ../gtk/gtknotebook.c:717
+#: ../gtk/gtknotebook.c:728
 msgid "If TRUE, scroll arrows are added if there are too many tabs to fit"
-msgstr ""
-"Jei TEIGIAMA, bus pridėtos slinkties rodyklės, jei kortelės netilps lange"
+msgstr "Jei TEIGIAMA, bus pridėtos slinkties rodyklės, jei kortelės netilps lange"
 
-#: ../gtk/gtknotebook.c:723
+#: ../gtk/gtknotebook.c:734
 msgid "Enable Popup"
 msgstr "Įjungti iššokimus"
 
-#: ../gtk/gtknotebook.c:724
-msgid ""
-"If TRUE, pressing the right mouse button on the notebook pops up a menu that "
-"you can use to go to a page"
-msgstr ""
-"Jei TEIGIAMA, paspaudus dešinįjį pelės mygtuką ant kortelių bus parodytas "
-"meniu, kurį galite naudoti pereitį į kitą puslapį"
+#: ../gtk/gtknotebook.c:735
+msgid "If TRUE, pressing the right mouse button on the notebook pops up a menu that you can use to go to a page"
+msgstr "Jei TEIGIAMA, paspaudus dešinįjį pelės mygtuką ant kortelių bus parodytas meniu, kurį galite naudoti pereitį į kitą puslapį"
 
-#: ../gtk/gtknotebook.c:738
+#: ../gtk/gtknotebook.c:749
 msgid "Group Name"
 msgstr "Grupės pavadinimas"
 
-#: ../gtk/gtknotebook.c:739
+#: ../gtk/gtknotebook.c:750
 msgid "Group name for tab drag and drop"
 msgstr "Kortelių tempimo ir paleidimo grupės pavadinimas"
 
-#: ../gtk/gtknotebook.c:746
+#: ../gtk/gtknotebook.c:757
 msgid "Tab label"
 msgstr "Kortelės užrašas"
 
-#: ../gtk/gtknotebook.c:747
+#: ../gtk/gtknotebook.c:758
 msgid "The string displayed on the child's tab label"
 msgstr "Tekstas, rodomas vaikinės kortelės etiketėje"
 
-#: ../gtk/gtknotebook.c:753
+#: ../gtk/gtknotebook.c:764
 msgid "Menu label"
 msgstr "Meniu etiketė"
 
-#: ../gtk/gtknotebook.c:754
+#: ../gtk/gtknotebook.c:765
 msgid "The string displayed in the child's menu entry"
 msgstr "Tekstas, rodomas vaikinio elemento meniu įraše"
 
-#: ../gtk/gtknotebook.c:767
+#: ../gtk/gtknotebook.c:778
 msgid "Tab expand"
 msgstr "Kortelių išplėtimas"
 
-#: ../gtk/gtknotebook.c:768
+#: ../gtk/gtknotebook.c:779
 msgid "Whether to expand the child's tab"
 msgstr "Ar išplėsti vaikinio objekto korteles"
 
-#: ../gtk/gtknotebook.c:774
+#: ../gtk/gtknotebook.c:785
 msgid "Tab fill"
 msgstr "Kortelių užpildymas"
 
-#: ../gtk/gtknotebook.c:775
+#: ../gtk/gtknotebook.c:786
 msgid "Whether the child's tab should fill the allocated area"
 msgstr "Ar vaikinio objekto kortelės turi užpildyti visą jiems skirtą erdvę"
 
-#: ../gtk/gtknotebook.c:782
+#: ../gtk/gtknotebook.c:793
 msgid "Tab reorderable"
 msgstr "Kortelės tvarka keičiama"
 
-#: ../gtk/gtknotebook.c:783
+#: ../gtk/gtknotebook.c:794
 msgid "Whether the tab is reorderable by user action"
 msgstr "Ar kortelių tvarka gali būti keičiama naudotojo"
 
-#: ../gtk/gtknotebook.c:789
+#: ../gtk/gtknotebook.c:800
 msgid "Tab detachable"
 msgstr "Kortelė atkabinama"
 
-#: ../gtk/gtknotebook.c:790
+#: ../gtk/gtknotebook.c:801
 msgid "Whether the tab is detachable"
 msgstr "Ar kortelė yra atkabinama"
 
-#: ../gtk/gtknotebook.c:805 ../gtk/gtkscrollbar.c:102
+#: ../gtk/gtknotebook.c:816
+#: ../gtk/gtkscrollbar.c:102
 msgid "Secondary backward stepper"
 msgstr "Antras žingnis atgal"
 
-#: ../gtk/gtknotebook.c:806
-msgid ""
-"Display a second backward arrow button on the opposite end of the tab area"
+#: ../gtk/gtknotebook.c:817
+msgid "Display a second backward arrow button on the opposite end of the tab area"
 msgstr "Rodyti antrą judėjimo atgal mygtuką kitame kortelių srities gale"
 
-#: ../gtk/gtknotebook.c:821 ../gtk/gtkscrollbar.c:109
+#: ../gtk/gtknotebook.c:832
+#: ../gtk/gtkscrollbar.c:109
 msgid "Secondary forward stepper"
 msgstr "Antras žingsnis pirmyn"
 
-#: ../gtk/gtknotebook.c:822
-msgid ""
-"Display a second forward arrow button on the opposite end of the tab area"
+#: ../gtk/gtknotebook.c:833
+msgid "Display a second forward arrow button on the opposite end of the tab area"
 msgstr "Rodyti antrą judėjimo pirmyn mygtuką kitame kortelių srities gale"
 
-#: ../gtk/gtknotebook.c:836 ../gtk/gtkscrollbar.c:88
+#: ../gtk/gtknotebook.c:847
+#: ../gtk/gtkscrollbar.c:88
 msgid "Backward stepper"
 msgstr "Žingsnis atgal"
 
-#: ../gtk/gtknotebook.c:837 ../gtk/gtkscrollbar.c:89
+#: ../gtk/gtknotebook.c:848
+#: ../gtk/gtkscrollbar.c:89
 msgid "Display the standard backward arrow button"
 msgstr "Rodyti standartinį atgalinės navigacijos mygtuką"
 
-#: ../gtk/gtknotebook.c:851 ../gtk/gtkscrollbar.c:95
+#: ../gtk/gtknotebook.c:862
+#: ../gtk/gtkscrollbar.c:95
 msgid "Forward stepper"
 msgstr "Žingnis pirmyn"
 
-#: ../gtk/gtknotebook.c:852 ../gtk/gtkscrollbar.c:96
+#: ../gtk/gtknotebook.c:863
+#: ../gtk/gtkscrollbar.c:96
 msgid "Display the standard forward arrow button"
 msgstr "Rodyti standartinį priekinės navigacijos mygtuką"
 
-#: ../gtk/gtknotebook.c:866
+#: ../gtk/gtknotebook.c:877
 msgid "Tab overlap"
 msgstr "Kortelių persidengimas"
 
-#: ../gtk/gtknotebook.c:867
+#: ../gtk/gtknotebook.c:878
 msgid "Size of tab overlap area"
 msgstr "Kortelių persidengimo ploto dydis"
 
-#: ../gtk/gtknotebook.c:882
+#: ../gtk/gtknotebook.c:893
 msgid "Tab curvature"
 msgstr "Kortelių išlinkimas"
 
-#: ../gtk/gtknotebook.c:883
+#: ../gtk/gtknotebook.c:894
 msgid "Size of tab curvature"
 msgstr "Kortelių išlinkimo dydis"
 
-#: ../gtk/gtknotebook.c:899
+#: ../gtk/gtknotebook.c:910
 msgid "Arrow spacing"
 msgstr "Tarpai aplink rodyklę"
 
-#: ../gtk/gtknotebook.c:900
+#: ../gtk/gtknotebook.c:911
 msgid "Scroll arrow spacing"
 msgstr "Tarpai aplink slinkties rodyklę"
 
-#: ../gtk/gtknotebook.c:916
+#: ../gtk/gtknotebook.c:927
 msgid "Initial gap"
-msgstr ""
+msgstr "Pradinis tarpas"
 
-#: ../gtk/gtknotebook.c:917
+#: ../gtk/gtknotebook.c:928
 msgid "Initial gap before the first tab"
-msgstr ""
+msgstr "Pradinis tarpas prieš pirmą kortelę"
 
 #: ../gtk/gtknumerableicon.c:653
 msgid "Icon's count"
@@ -4241,7 +4335,8 @@ msgstr "Fono piktogramos pavadinimas"
 msgid "The icon name for the number emblem background"
 msgstr "Piktogramos pavadinimas skaičiaus emblemos fonui"
 
-#: ../gtk/gtkorientable.c:63 ../gtk/gtkstatusicon.c:342
+#: ../gtk/gtkorientable.c:63
+#: ../gtk/gtkstatusicon.c:342
 #: ../gtk/gtktrayicon-x11.c:128
 msgid "Orientation"
 msgstr "Orientacija"
@@ -4250,61 +4345,60 @@ msgstr "Orientacija"
 msgid "The orientation of the orientable"
 msgstr "Orientuojamųjų objektų orientacija"
 
-#: ../gtk/gtkpaned.c:327
-msgid ""
-"Position of paned separator in pixels (0 means all the way to the left/top)"
+#: ../gtk/gtkpaned.c:350
+msgid "Position of paned separator in pixels (0 means all the way to the left/top)"
 msgstr "Laukų skirtuko padėtis pikselias (0 reiškia skyrimą visame intervale)"
 
-#: ../gtk/gtkpaned.c:336
+#: ../gtk/gtkpaned.c:359
 msgid "Position Set"
 msgstr "Nustatyta padėtis"
 
-#: ../gtk/gtkpaned.c:337
+#: ../gtk/gtkpaned.c:360
 msgid "TRUE if the Position property should be used"
 msgstr "TEIGIAMA, jei panaudota padėties nustatymo savybė"
 
-#: ../gtk/gtkpaned.c:343
+#: ../gtk/gtkpaned.c:366
 msgid "Handle Size"
 msgstr "Rankenėlės dydis"
 
-#: ../gtk/gtkpaned.c:344
+#: ../gtk/gtkpaned.c:367
 msgid "Width of handle"
 msgstr "Rankenėlės plotis"
 
-#: ../gtk/gtkpaned.c:360
+#: ../gtk/gtkpaned.c:383
 msgid "Minimal Position"
 msgstr "Minimali Padėtis"
 
-#: ../gtk/gtkpaned.c:361
+#: ../gtk/gtkpaned.c:384
 msgid "Smallest possible value for the \"position\" property"
 msgstr "Mažiausia galima „position“ savybės reikšmė"
 
-#: ../gtk/gtkpaned.c:378
+#: ../gtk/gtkpaned.c:401
 msgid "Maximal Position"
 msgstr "Maksimali Padėtis"
 
-#: ../gtk/gtkpaned.c:379
+#: ../gtk/gtkpaned.c:402
 msgid "Largest possible value for the \"position\" property"
 msgstr "Didžiausia galima „position“ savybės reikšmė"
 
-#: ../gtk/gtkpaned.c:396
+#: ../gtk/gtkpaned.c:419
 msgid "Resize"
 msgstr "Kintamas"
 
-#: ../gtk/gtkpaned.c:397
+#: ../gtk/gtkpaned.c:420
 msgid "If TRUE, the child expands and shrinks along with the paned widget"
 msgstr "Jei TEIGIAMA, vaikinis objektas keičia dydį kartu su skydelio objektu"
 
-#: ../gtk/gtkpaned.c:412
+#: ../gtk/gtkpaned.c:435
 msgid "Shrink"
 msgstr "Besiplečiantis"
 
-#: ../gtk/gtkpaned.c:413
+#: ../gtk/gtkpaned.c:436
 msgid "If TRUE, the child can be made smaller than its requisition"
-msgstr ""
-"Jei TEIGIAMA, vaikinis objektas gali būti sumažintas daugiau, nei jam reikia"
+msgstr "Jei TEIGIAMA, vaikinis objektas gali būti sumažintas daugiau, nei jam reikia"
 
-#: ../gtk/gtkplug.c:201 ../gtk/gtkstatusicon.c:326
+#: ../gtk/gtkplug.c:201
+#: ../gtk/gtkstatusicon.c:326
 msgid "Embedded"
 msgstr "Integruota"
 
@@ -4400,11 +4494,21 @@ msgstr "Priima užduotis"
 msgid "TRUE if this printer is accepting new jobs"
 msgstr "TEIGIAMA, jei spausdintuvas priima naujas užduotis"
 
-#: ../gtk/gtkprinteroptionwidget.c:121
+#: ../gtk/gtkprinteroption.c:105
+#| msgid "Minimum Value"
+msgid "Option Value"
+msgstr "Parinkties vertė"
+
+#: ../gtk/gtkprinteroption.c:106
+#| msgid "Name of the printer"
+msgid "Value of the option"
+msgstr "Parinkties vertė"
+
+#: ../gtk/gtkprinteroptionwidget.c:122
 msgid "Source option"
 msgstr "Šaltinio parinktis"
 
-#: ../gtk/gtkprinteroptionwidget.c:122
+#: ../gtk/gtkprinteroptionwidget.c:123
 msgid "The PrinterOption backing this widget"
 msgstr "Šio objekto PrinterOption posistemė"
 
@@ -4428,22 +4532,20 @@ msgstr "Nustatymai"
 msgid "Printer settings"
 msgstr "Spausdintuvo nustatymai"
 
-#: ../gtk/gtkprintjob.c:168 ../gtk/gtkprintjob.c:169
-#: ../gtk/gtkprintunixdialog.c:369
+#: ../gtk/gtkprintjob.c:168
+#: ../gtk/gtkprintjob.c:169
+#: ../gtk/gtkprintunixdialog.c:368
 msgid "Page Setup"
 msgstr "Puslapio nustatymai"
 
-#: ../gtk/gtkprintjob.c:177 ../gtk/gtkprintoperation.c:1206
+#: ../gtk/gtkprintjob.c:177
+#: ../gtk/gtkprintoperation.c:1206
 msgid "Track Print Status"
 msgstr "Sekti spausdinimo būseną"
 
 #: ../gtk/gtkprintjob.c:178
-msgid ""
-"TRUE if the print job will continue to emit status-changed signals after the "
-"print data has been sent to the printer or print server."
-msgstr ""
-"TEIGIAMA, jei spausdinimo užduotis tęs status-changed signalų siuntimą po "
-"spausdinimo duomenų nusiuntimo į spausdintuvą ar spausdinimo serverį."
+msgid "TRUE if the print job will continue to emit status-changed signals after the print data has been sent to the printer or print server."
+msgstr "TEIGIAMA, jei spausdinimo užduotis tęs status-changed signalų siuntimą po spausdinimo duomenų nusiuntimo į spausdintuvą ar spausdinimo serverį."
 
 #: ../gtk/gtkprintoperation.c:1078
 msgid "Default Page Setup"
@@ -4453,11 +4555,13 @@ msgstr "Numatytieji puslapio nustatymai"
 msgid "The GtkPageSetup used by default"
 msgstr "Numatytasis naudojamas GtkPageSetup"
 
-#: ../gtk/gtkprintoperation.c:1097 ../gtk/gtkprintunixdialog.c:387
+#: ../gtk/gtkprintoperation.c:1097
+#: ../gtk/gtkprintunixdialog.c:386
 msgid "Print Settings"
 msgstr "Spausdinimo nustatymai"
 
-#: ../gtk/gtkprintoperation.c:1098 ../gtk/gtkprintunixdialog.c:388
+#: ../gtk/gtkprintoperation.c:1098
+#: ../gtk/gtkprintunixdialog.c:387
 msgid "The GtkPrintSettings used for initializing the dialog"
 msgstr "GtkPrintSettings naudojamas dialogo inicializavimui"
 
@@ -4477,11 +4581,13 @@ msgstr "Puslapių skaičius"
 msgid "The number of pages in the document."
 msgstr "Puslapių skaičius dokumente."
 
-#: ../gtk/gtkprintoperation.c:1163 ../gtk/gtkprintunixdialog.c:377
+#: ../gtk/gtkprintoperation.c:1163
+#: ../gtk/gtkprintunixdialog.c:376
 msgid "Current Page"
 msgstr "Esamas puslapis"
 
-#: ../gtk/gtkprintoperation.c:1164 ../gtk/gtkprintunixdialog.c:378
+#: ../gtk/gtkprintoperation.c:1164
+#: ../gtk/gtkprintunixdialog.c:377
 msgid "The current page in the document"
 msgstr "Esamas puslapis dokumente"
 
@@ -4490,21 +4596,12 @@ msgid "Use full page"
 msgstr "Naudoti visą puslapį"
 
 #: ../gtk/gtkprintoperation.c:1186
-msgid ""
-"TRUE if the origin of the context should be at the corner of the page and "
-"not the corner of the imageable area"
-msgstr ""
-"TEIGIAMA, jei konteksto kilmė turėtų būti puslapio kampe, o ne piešimo ploto "
-"kampe"
+msgid "TRUE if the origin of the context should be at the corner of the page and not the corner of the imageable area"
+msgstr "TEIGIAMA, jei konteksto kilmė turėtų būti puslapio kampe, o ne piešimo ploto kampe"
 
 #: ../gtk/gtkprintoperation.c:1207
-msgid ""
-"TRUE if the print operation will continue to report on the print job status "
-"after the print data has been sent to the printer or print server."
-msgstr ""
-"TEIGIAMA, jei spausdinimo operacija tęs pranešinėjimą apie spausdinimo "
-"užduoties būsemą, po spausdinimo duomenų nusiuntimo į spausdintuvą ar "
-"spausdinimo serverį"
+msgid "TRUE if the print operation will continue to report on the print job status after the print data has been sent to the printer or print server."
+msgstr "TEIGIAMA, jei spausdinimo operacija tęs pranešinėjimą apie spausdinimo užduoties būsemą, po spausdinimo duomenų nusiuntimo į spausdintuvą ar spausdinimo serverį"
 
 #: ../gtk/gtkprintoperation.c:1224
 msgid "Unit"
@@ -4530,7 +4627,8 @@ msgstr "Leisti asinchroninį"
 msgid "TRUE if print process may run asynchronous."
 msgstr "TEIGIAMA, jei spausdinimo procesas gali būti asinchroninis."
 
-#: ../gtk/gtkprintoperation.c:1289 ../gtk/gtkprintoperation.c:1290
+#: ../gtk/gtkprintoperation.c:1289
+#: ../gtk/gtkprintoperation.c:1290
 msgid "Export filename"
 msgstr "Eksportavimo failo pavadinimas"
 
@@ -4558,7 +4656,8 @@ msgstr "Kitos kortelės užrašas"
 msgid "Label for the tab containing custom widgets."
 msgstr "Kortelės, kurioje yra kiti objektai, užrašas."
 
-#: ../gtk/gtkprintoperation.c:1360 ../gtk/gtkprintunixdialog.c:412
+#: ../gtk/gtkprintoperation.c:1360
+#: ../gtk/gtkprintunixdialog.c:411
 msgid "Support Selection"
 msgstr "Leisti spausdinti atranką"
 
@@ -4566,7 +4665,8 @@ msgstr "Leisti spausdinti atranką"
 msgid "TRUE if the print operation will support print of selection."
 msgstr "TEIGIAMA, jeigu leidžiama spausdinti atranką."
 
-#: ../gtk/gtkprintoperation.c:1377 ../gtk/gtkprintunixdialog.c:420
+#: ../gtk/gtkprintoperation.c:1377
+#: ../gtk/gtkprintunixdialog.c:419
 msgid "Has Selection"
 msgstr "Atranka yra"
 
@@ -4574,14 +4674,14 @@ msgstr "Atranka yra"
 msgid "TRUE if a selection exists."
 msgstr "TEIGIAMA, jeigu egzistuoja atranka."
 
-#: ../gtk/gtkprintoperation.c:1393 ../gtk/gtkprintunixdialog.c:428
+#: ../gtk/gtkprintoperation.c:1393
+#: ../gtk/gtkprintunixdialog.c:427
 msgid "Embed Page Setup"
 msgstr "Integruoti puslapio nustatymus"
 
 #: ../gtk/gtkprintoperation.c:1394
 msgid "TRUE if page setup combos are embedded in GtkPrintDialog"
-msgstr ""
-"TEIGIAMA, jei puslapio sąrangos kombinacijos integruotos į GtkPrintDialog"
+msgstr "TEIGIAMA, jei puslapio sąrangos kombinacijos integruotos į GtkPrintDialog"
 
 #: ../gtk/gtkprintoperation.c:1415
 msgid "Number of Pages To Print"
@@ -4591,122 +4691,115 @@ msgstr "Spausdintinų puslapių skaičius"
 msgid "The number of pages that will be printed."
 msgstr "Puslapių, kurie bus išspausdinti, skaičius."
 
-#: ../gtk/gtkprintunixdialog.c:370
+#: ../gtk/gtkprintunixdialog.c:369
 msgid "The GtkPageSetup to use"
 msgstr "Naudotinas GtkPageSetup"
 
-#: ../gtk/gtkprintunixdialog.c:395
+#: ../gtk/gtkprintunixdialog.c:394
 msgid "Selected Printer"
 msgstr "Pasirinktas spausdintuvas"
 
-#: ../gtk/gtkprintunixdialog.c:396
+#: ../gtk/gtkprintunixdialog.c:395
 msgid "The GtkPrinter which is selected"
 msgstr "Pasirinktas GtkPrinter"
 
-#: ../gtk/gtkprintunixdialog.c:403
+#: ../gtk/gtkprintunixdialog.c:402
 msgid "Manual Capabilities"
 msgstr "Rankinės galimybės"
 
-#: ../gtk/gtkprintunixdialog.c:404
+#: ../gtk/gtkprintunixdialog.c:403
 msgid "Capabilities the application can handle"
 msgstr "Galimybės, kurias supranta programa"
 
-#: ../gtk/gtkprintunixdialog.c:413
+#: ../gtk/gtkprintunixdialog.c:412
 msgid "Whether the dialog supports selection"
 msgstr "Ar dialoge galimas žymėjimas"
 
-#: ../gtk/gtkprintunixdialog.c:421
+#: ../gtk/gtkprintunixdialog.c:420
 msgid "Whether the application has a selection"
 msgstr "Ar programoje galimas žymėjimas"
 
-#: ../gtk/gtkprintunixdialog.c:429
+#: ../gtk/gtkprintunixdialog.c:428
 msgid "TRUE if page setup combos are embedded in GtkPrintUnixDialog"
-msgstr ""
-"TEIGIAMA, jei puslapio sąrangos kombinacijos integruotos į GtkPrintUnixDialog"
+msgstr "TEIGIAMA, jei puslapio sąrangos kombinacijos integruotos į GtkPrintUnixDialog"
 
-#: ../gtk/gtkprogressbar.c:158
+#: ../gtk/gtkprogressbar.c:160
 msgid "Fraction"
 msgstr "Dalis"
 
-#: ../gtk/gtkprogressbar.c:159
+#: ../gtk/gtkprogressbar.c:161
 msgid "The fraction of total work that has been completed"
 msgstr "Bendro darbo dalis, kuri jau yra atlikta"
 
-#: ../gtk/gtkprogressbar.c:166
+#: ../gtk/gtkprogressbar.c:168
 msgid "Pulse Step"
 msgstr "Pulsuojantis žingsnis"
 
-#: ../gtk/gtkprogressbar.c:167
+#: ../gtk/gtkprogressbar.c:169
 msgid "The fraction of total progress to move the bouncing block when pulsed"
-msgstr ""
-"Dalis, kuria reikia padidinti pažangos juostą, gavus tolesnio žingsnio "
-"signalą"
+msgstr "Dalis, kuria reikia padidinti pažangos juostą, gavus tolesnio žingsnio signalą"
 
-#: ../gtk/gtkprogressbar.c:175
+#: ../gtk/gtkprogressbar.c:177
 msgid "Text to be displayed in the progress bar"
 msgstr "Tekstas rodomas pažangos juostoje"
 
-#: ../gtk/gtkprogressbar.c:192
+#: ../gtk/gtkprogressbar.c:194
 msgid "Show text"
 msgstr "Rodyti tekstą"
 
-#: ../gtk/gtkprogressbar.c:193
+#: ../gtk/gtkprogressbar.c:195
 msgid "Whether the progress is shown as text."
 msgstr "Ar pažanga rodoma tekstu."
 
-#: ../gtk/gtkprogressbar.c:215
-msgid ""
-"The preferred place to ellipsize the string, if the progress bar does not "
-"have enough room to display the entire string, if at all."
-msgstr ""
-"Pageidautina viena eilutės elipsavimui, jei pažangos juostoje nepakanka "
-"vietos parodyti visai eilutei."
+#: ../gtk/gtkprogressbar.c:217
+msgid "The preferred place to ellipsize the string, if the progress bar does not have enough room to display the entire string, if at all."
+msgstr "Pageidautina viena eilutės elipsavimui, jei pažangos juostoje nepakanka vietos parodyti visai eilutei."
 
-#: ../gtk/gtkprogressbar.c:222
+#: ../gtk/gtkprogressbar.c:224
 msgid "X spacing"
 msgstr "X tarpai"
 
-#: ../gtk/gtkprogressbar.c:223
+#: ../gtk/gtkprogressbar.c:225
 msgid "Extra spacing applied to the width of a progress bar."
 msgstr "Papildomi tarpai, taikomi progreso juostos pločiui."
 
-#: ../gtk/gtkprogressbar.c:228
+#: ../gtk/gtkprogressbar.c:230
 msgid "Y spacing"
 msgstr "Y tarpai"
 
-#: ../gtk/gtkprogressbar.c:229
+#: ../gtk/gtkprogressbar.c:231
 msgid "Extra spacing applied to the height of a progress bar."
 msgstr "Papildomi tarpai, taikomi progreso juostos aukščiui."
 
-#: ../gtk/gtkprogressbar.c:242
+#: ../gtk/gtkprogressbar.c:244
 msgid "Minimum horizontal bar width"
 msgstr "Minimalus horizontalios juostos plotis"
 
-#: ../gtk/gtkprogressbar.c:243
+#: ../gtk/gtkprogressbar.c:245
 msgid "The minimum horizontal width of the progress bar"
 msgstr "Mažiausias leistinas horizontalios pažangos juostos plotis"
 
-#: ../gtk/gtkprogressbar.c:255
+#: ../gtk/gtkprogressbar.c:257
 msgid "Minimum horizontal bar height"
 msgstr "Minimalus horizontalios juostos aukštis"
 
-#: ../gtk/gtkprogressbar.c:256
+#: ../gtk/gtkprogressbar.c:258
 msgid "Minimum horizontal height of the progress bar"
 msgstr "Mažiausias leistinas horizontalios pažangos juostos aukštis"
 
-#: ../gtk/gtkprogressbar.c:268
+#: ../gtk/gtkprogressbar.c:270
 msgid "Minimum vertical bar width"
 msgstr "Minimalus vertikalios juostos plotis"
 
-#: ../gtk/gtkprogressbar.c:269
+#: ../gtk/gtkprogressbar.c:271
 msgid "The minimum vertical width of the progress bar"
 msgstr "Mažiausias leistinas vertikalios pažangos juostos plotis"
 
-#: ../gtk/gtkprogressbar.c:281
+#: ../gtk/gtkprogressbar.c:283
 msgid "Minimum vertical bar height"
 msgstr "Minimalus vertikalios juostos aukštis"
 
-#: ../gtk/gtkprogressbar.c:282
+#: ../gtk/gtkprogressbar.c:284
 msgid "The minimum vertical height of the progress bar"
 msgstr "Mažiausias leistinas vertikalios pažangos juostos aukštis"
 
@@ -4715,15 +4808,13 @@ msgid "The value"
 msgstr "Reikšmė"
 
 #: ../gtk/gtkradioaction.c:119
-msgid ""
-"The value returned by gtk_radio_action_get_current_value() when this action "
-"is the current action of its group."
-msgstr ""
-"Reikšmė perduodama gtk_radio_action_get_current_value() funkcijos, kai šis "
-"veiksmas yra pagrindinis savo grupėje."
+msgid "The value returned by gtk_radio_action_get_current_value() when this action is the current action of its group."
+msgstr "Reikšmė perduodama gtk_radio_action_get_current_value() funkcijos, kai šis veiksmas yra pagrindinis savo grupėje."
 
-#: ../gtk/gtkradioaction.c:135 ../gtk/gtkradiobutton.c:163
-#: ../gtk/gtkradiomenuitem.c:423 ../gtk/gtkradiotoolbutton.c:85
+#: ../gtk/gtkradioaction.c:135
+#: ../gtk/gtkradiobutton.c:164
+#: ../gtk/gtkradiomenuitem.c:427
+#: ../gtk/gtkradiotoolbutton.c:85
 msgid "Group"
 msgstr "Grupė"
 
@@ -4736,16 +4827,14 @@ msgid "The current value"
 msgstr "Esama reikšmė"
 
 #: ../gtk/gtkradioaction.c:152
-msgid ""
-"The value property of the currently active member of the group to which this "
-"action belongs."
+msgid "The value property of the currently active member of the group to which this action belongs."
 msgstr "Aktyvaus grupės, kuriai priklauso šis veiksmas, nario reikšmė."
 
-#: ../gtk/gtkradiobutton.c:164
+#: ../gtk/gtkradiobutton.c:165
 msgid "The radio button whose group this widget belongs to."
 msgstr "Žymimoji akutė, kurios grupei priklauso šis objektas."
 
-#: ../gtk/gtkradiomenuitem.c:424
+#: ../gtk/gtkradiomenuitem.c:428
 msgid "The radio menu item whose group this widget belongs to."
 msgstr "Meniu žymimoji akutė, kurios grupei priklauso šis objektas."
 
@@ -4753,141 +4842,134 @@ msgstr "Meniu žymimoji akutė, kurios grupei priklauso šis objektas."
 msgid "The radio tool button whose group this button belongs to."
 msgstr "Žymimoji akutė, kurios grupei priklauso šis objektas."
 
-#: ../gtk/gtkrange.c:418
+#: ../gtk/gtkrange.c:419
 msgid "The GtkAdjustment that contains the current value of this range object"
-msgstr ""
-"GtkAdjustment kintamasis, kuris saugo dabartinę objekto srities reikšmę"
+msgstr "GtkAdjustment kintamasis, kuris saugo dabartinę objekto srities reikšmę"
 
-#: ../gtk/gtkrange.c:426
+#: ../gtk/gtkrange.c:427
 msgid "Invert direction slider moves to increase range value"
 msgstr "Pakeisti juostos judėjimo kryptį"
 
-#: ../gtk/gtkrange.c:433
+#: ../gtk/gtkrange.c:434
 msgid "Lower stepper sensitivity"
 msgstr "Žingsnio atgal jautrumas"
 
-#: ../gtk/gtkrange.c:434
-msgid ""
-"The sensitivity policy for the stepper that points to the adjustment's lower "
-"side"
+#: ../gtk/gtkrange.c:435
+msgid "The sensitivity policy for the stepper that points to the adjustment's lower side"
 msgstr "Žingsnių, mažinančių lauko reikšmę, dydis"
 
-#: ../gtk/gtkrange.c:442
+#: ../gtk/gtkrange.c:443
 msgid "Upper stepper sensitivity"
 msgstr "Žingsnio į priekį jautrumas"
 
-#: ../gtk/gtkrange.c:443
-msgid ""
-"The sensitivity policy for the stepper that points to the adjustment's upper "
-"side"
+#: ../gtk/gtkrange.c:444
+msgid "The sensitivity policy for the stepper that points to the adjustment's upper side"
 msgstr "Žingsnių, didinančių lauko reikšmę, dydis"
 
-#: ../gtk/gtkrange.c:460
+#: ../gtk/gtkrange.c:461
 msgid "Show Fill Level"
 msgstr "Rodyti pilnumo lygį"
 
-#: ../gtk/gtkrange.c:461
+#: ../gtk/gtkrange.c:462
 msgid "Whether to display a fill level indicator graphics on trough."
 msgstr "Ar rodyti pilnumo lygio indikatoriaus paveikslėlį įduboje."
 
-#: ../gtk/gtkrange.c:477
+#: ../gtk/gtkrange.c:478
 msgid "Restrict to Fill Level"
 msgstr "Apriboti užpildymo lygiu"
 
-#: ../gtk/gtkrange.c:478
+#: ../gtk/gtkrange.c:479
 msgid "Whether to restrict the upper boundary to the fill level."
 msgstr "Ar apriboti viršutinį rėžį užpildymo lygiu"
 
-#: ../gtk/gtkrange.c:493
+#: ../gtk/gtkrange.c:494
 msgid "Fill Level"
 msgstr "Užpildymo lygis"
 
-#: ../gtk/gtkrange.c:494
+#: ../gtk/gtkrange.c:495
 msgid "The fill level."
 msgstr "Užpildymo lygis."
 
-#: ../gtk/gtkrange.c:511
+#: ../gtk/gtkrange.c:512
 msgid "Round Digits"
 msgstr "Apvalinimo skaitmenys"
 
-#: ../gtk/gtkrange.c:512
+#: ../gtk/gtkrange.c:513
 msgid "The number of digits to round the value to."
 msgstr "Skaitmenų skaičius reikšmės apvalinimui."
 
-#: ../gtk/gtkrange.c:520 ../gtk/gtkswitch.c:836
+#: ../gtk/gtkrange.c:521
+#: ../gtk/gtkswitch.c:818
 msgid "Slider Width"
 msgstr "Juostos plotis"
 
-#: ../gtk/gtkrange.c:521
+#: ../gtk/gtkrange.c:522
 msgid "Width of scrollbar or scale thumb"
 msgstr "Persukimo juostos plotis arba mastelis"
 
-#: ../gtk/gtkrange.c:528
+#: ../gtk/gtkrange.c:529
 msgid "Trough Border"
 msgstr "Tarpinis rėmelis"
 
-#: ../gtk/gtkrange.c:529
+#: ../gtk/gtkrange.c:530
 msgid "Spacing between thumb/steppers and outer trough bevel"
 msgstr "Tarpas tarp peržiūros/navigacijos ir išorinio rėmelio"
 
-#: ../gtk/gtkrange.c:536
+#: ../gtk/gtkrange.c:537
 msgid "Stepper Size"
 msgstr "Žingsnio dydis"
 
-#: ../gtk/gtkrange.c:537
+#: ../gtk/gtkrange.c:538
 msgid "Length of step buttons at ends"
 msgstr "Prasukimo mygtukų ilgis"
 
-#: ../gtk/gtkrange.c:550
+#: ../gtk/gtkrange.c:551
 msgid "Stepper Spacing"
 msgstr "Žingsnio protarpis"
 
-#: ../gtk/gtkrange.c:551
+#: ../gtk/gtkrange.c:552
 msgid "Spacing between step buttons and thumb"
 msgstr "Tarpas tarp navigacijos mygtukų ir peržiūros"
 
-#: ../gtk/gtkrange.c:558
+#: ../gtk/gtkrange.c:559
 msgid "Arrow X Displacement"
 msgstr "Rodyklės X atitraukimas"
 
-#: ../gtk/gtkrange.c:559
-msgid ""
-"How far in the x direction to move the arrow when the button is depressed"
+#: ../gtk/gtkrange.c:560
+msgid "How far in the x direction to move the arrow when the button is depressed"
 msgstr "Kaip toli patraukti rodyklę horizontaliai, kai mygtukas atleistas"
 
-#: ../gtk/gtkrange.c:566
+#: ../gtk/gtkrange.c:567
 msgid "Arrow Y Displacement"
 msgstr "Rodyklės Y atitraukimas"
 
-#: ../gtk/gtkrange.c:567
-msgid ""
-"How far in the y direction to move the arrow when the button is depressed"
+#: ../gtk/gtkrange.c:568
+msgid "How far in the y direction to move the arrow when the button is depressed"
 msgstr "Kaip toli patraukti rodyklę vertikaliai, kai mygtukas atleistas"
 
-#: ../gtk/gtkrange.c:583
+#: ../gtk/gtkrange.c:584
 msgid "Trough Under Steppers"
 msgstr "Įduba po žingsniais"
 
-#: ../gtk/gtkrange.c:584
-msgid ""
-"Whether to draw trough for full length of range or exclude the steppers and "
-"spacing"
-msgstr ""
-"Ar piešti įdubą visam intervalui, ar išskaičiuoti žingsnius ir paraštes"
+#: ../gtk/gtkrange.c:585
+msgid "Whether to draw trough for full length of range or exclude the steppers and spacing"
+msgstr "Ar piešti įdubą visam intervalui, ar išskaičiuoti žingsnius ir paraštes"
 
-#: ../gtk/gtkrange.c:597
+#: ../gtk/gtkrange.c:598
 msgid "Arrow scaling"
 msgstr "Rodyklės mastelis"
 
-#: ../gtk/gtkrange.c:598
+#: ../gtk/gtkrange.c:599
 msgid "Arrow scaling with regard to scroll button size"
 msgstr "Rodyklės dydis, atsižvelgiant į slinkties mygtuko didį"
 
-#: ../gtk/gtkrecentaction.c:635 ../gtk/gtkrecentchoosermenu.c:246
+#: ../gtk/gtkrecentaction.c:635
+#: ../gtk/gtkrecentchoosermenu.c:246
 msgid "Show Numbers"
 msgstr "Rodyti skaičius"
 
-#: ../gtk/gtkrecentaction.c:636 ../gtk/gtkrecentchoosermenu.c:247
+#: ../gtk/gtkrecentaction.c:636
+#: ../gtk/gtkrecentchoosermenu.c:247
 msgid "Whether the items should be displayed with a number"
 msgstr "Ar elementai turėtų būti rodomi su skaičiumi"
 
@@ -4971,96 +5053,88 @@ msgstr "Visas kelias iki failo, naudotino išsaugoti ir skaityti sąrašui"
 msgid "The size of the recently used resources list"
 msgstr "Neseniai naudotų resursų sąrašo dydis"
 
-#: ../gtk/gtkscalebutton.c:218
+#: ../gtk/gtkscalebutton.c:219
 msgid "The value of the scale"
 msgstr "Slankiklio vertė"
 
-#: ../gtk/gtkscalebutton.c:228
+#: ../gtk/gtkscalebutton.c:229
 msgid "The icon size"
 msgstr "Piktogramos dydis"
 
-#: ../gtk/gtkscalebutton.c:237
-msgid ""
-"The GtkAdjustment that contains the current value of this scale button object"
+#: ../gtk/gtkscalebutton.c:238
+msgid "The GtkAdjustment that contains the current value of this scale button object"
 msgstr "GtkAdjustment kintamasis, kuris saugo dabartinę slankiklio reikšmę"
 
-#: ../gtk/gtkscalebutton.c:265
+#: ../gtk/gtkscalebutton.c:266
 msgid "Icons"
 msgstr "Piktogramos"
 
-#: ../gtk/gtkscalebutton.c:266
+#: ../gtk/gtkscalebutton.c:267
 msgid "List of icon names"
 msgstr "Piktogramų pavadinimų sąrašas"
 
-#: ../gtk/gtkscale.c:253
+#: ../gtk/gtkscale.c:255
 msgid "The number of decimal places that are displayed in the value"
 msgstr "Išvedamų dešimtainių skaičių kiekis"
 
-#: ../gtk/gtkscale.c:262
+#: ../gtk/gtkscale.c:264
 msgid "Draw Value"
 msgstr "Rodyti reikšmę"
 
-#: ../gtk/gtkscale.c:263
+#: ../gtk/gtkscale.c:265
 msgid "Whether the current value is displayed as a string next to the slider"
 msgstr "Ar esama reikšmė turi būti išvesta greta slankmačio"
 
-#: ../gtk/gtkscale.c:270
+#: ../gtk/gtkscale.c:272
 msgid "Value Position"
 msgstr "Reikšmės padėtis"
 
-#: ../gtk/gtkscale.c:271
+#: ../gtk/gtkscale.c:273
 msgid "The position in which the current value is displayed"
 msgstr "Vieta, kur išvedama esama reikšmė"
 
-#: ../gtk/gtkscale.c:278
+#: ../gtk/gtkscale.c:280
 msgid "Slider Length"
 msgstr "Slankiklio ilgis"
 
-#: ../gtk/gtkscale.c:279
+#: ../gtk/gtkscale.c:281
 msgid "Length of scale's slider"
 msgstr "Mastelio slankiklio ilgis"
 
-#: ../gtk/gtkscale.c:287
+#: ../gtk/gtkscale.c:289
 msgid "Value spacing"
 msgstr "Reikšmės atitraukimas"
 
-#: ../gtk/gtkscale.c:288
+#: ../gtk/gtkscale.c:290
 msgid "Space between value text and the slider/trough area"
 msgstr "Tarpas tarp reikšmės teksto ir slankiklio srities"
 
-#: ../gtk/gtkscrollable.c:86
+#: ../gtk/gtkscrollable.c:94
 msgid "Horizontal adjustment"
 msgstr "Horizontalus pakoregavimas"
 
-#: ../gtk/gtkscrollable.c:87
-msgid ""
-"Horizontal adjustment that is shared between the scrollable widget and its "
-"controller"
-msgstr ""
-"Horizontalus reguliavimas, kuris yra bendras slankomam elementui ir jo "
-"valdikliui"
+#: ../gtk/gtkscrollable.c:95
+msgid "Horizontal adjustment that is shared between the scrollable widget and its controller"
+msgstr "Horizontalus reguliavimas, kuris yra bendras slankomam elementui ir jo valdikliui"
 
-#: ../gtk/gtkscrollable.c:103
+#: ../gtk/gtkscrollable.c:111
 msgid "Vertical adjustment"
 msgstr "Vertikalus pakoregavimas"
 
-#: ../gtk/gtkscrollable.c:104
-msgid ""
-"Vertical adjustment that is shared between the scrollable widget and its "
-"controller"
-msgstr ""
-"Vertikalus reguliavimas, kuris yra bendras slankomam elementui ir jo "
-"valdikliui"
+#: ../gtk/gtkscrollable.c:112
+msgid "Vertical adjustment that is shared between the scrollable widget and its controller"
+msgstr "Vertikalus reguliavimas, kuris yra bendras slankomam elementui ir jo valdikliui"
 
-#: ../gtk/gtkscrollable.c:120
+#: ../gtk/gtkscrollable.c:128
 msgid "Horizontal Scrollable Policy"
 msgstr "Horizontalios slinkties taisyklės"
 
-#: ../gtk/gtkscrollable.c:121 ../gtk/gtkscrollable.c:137
+#: ../gtk/gtkscrollable.c:129
+#: ../gtk/gtkscrollable.c:145
 msgid "How the size of the content should be determined"
 msgstr "Kaip turi būti nustatomas turinio dydis"
 
-#: ../gtk/gtkscrollable.c:136
+#: ../gtk/gtkscrollable.c:144
 msgid "Vertical Scrollable Policy"
 msgstr "Vertikalios slinkties taisyklės"
 
@@ -5081,110 +5155,99 @@ msgid "Don't change slider size, just lock it to the minimum length"
 msgstr "Nekeisti slankiklio dydžio, tiesiog nustatyti jį minimaliaus ilgio"
 
 #: ../gtk/gtkscrollbar.c:103
-msgid ""
-"Display a second backward arrow button on the opposite end of the scrollbar"
+msgid "Display a second backward arrow button on the opposite end of the scrollbar"
 msgstr "Rodyti antrą judėjimo atgal mygtuką kitame persukimo juostos gale"
 
 #: ../gtk/gtkscrollbar.c:110
-msgid ""
-"Display a second forward arrow button on the opposite end of the scrollbar"
+msgid "Display a second forward arrow button on the opposite end of the scrollbar"
 msgstr "Rodyti antrą judėjimo pirmyn mygtuką kitame persukimo juostos gale"
 
-#: ../gtk/gtkscrolledwindow.c:295
+#: ../gtk/gtkscrolledwindow.c:296
 msgid "Horizontal Adjustment"
 msgstr "Horizontalus priderinimas"
 
-#: ../gtk/gtkscrolledwindow.c:296
+#: ../gtk/gtkscrolledwindow.c:297
 msgid "The GtkAdjustment for the horizontal position"
 msgstr "GtkAdjustment horizontaliai padėčiai"
 
-#: ../gtk/gtkscrolledwindow.c:302
+#: ../gtk/gtkscrolledwindow.c:303
 msgid "Vertical Adjustment"
 msgstr "Vertikalus priderinimas"
 
-#: ../gtk/gtkscrolledwindow.c:303
+#: ../gtk/gtkscrolledwindow.c:304
 msgid "The GtkAdjustment for the vertical position"
 msgstr "GtkAdjustment vertikaliai padėčiai"
 
-#: ../gtk/gtkscrolledwindow.c:309
+#: ../gtk/gtkscrolledwindow.c:310
 msgid "Horizontal Scrollbar Policy"
 msgstr "Horizontalios slinkties juostos taisyklės"
 
-#: ../gtk/gtkscrolledwindow.c:310
+#: ../gtk/gtkscrolledwindow.c:311
 msgid "When the horizontal scrollbar is displayed"
 msgstr "Kada rodoma horizontali slinkties juosta"
 
-#: ../gtk/gtkscrolledwindow.c:317
+#: ../gtk/gtkscrolledwindow.c:318
 msgid "Vertical Scrollbar Policy"
 msgstr "Vertikalios slinkties juostos taisyklės"
 
-#: ../gtk/gtkscrolledwindow.c:318
+#: ../gtk/gtkscrolledwindow.c:319
 msgid "When the vertical scrollbar is displayed"
 msgstr "Kada rodoma vertikali slinkties juosta"
 
-#: ../gtk/gtkscrolledwindow.c:326
+#: ../gtk/gtkscrolledwindow.c:327
 msgid "Window Placement"
 msgstr "Lango padėtis"
 
-#: ../gtk/gtkscrolledwindow.c:327
-msgid ""
-"Where the contents are located with respect to the scrollbars. This property "
-"only takes effect if \"window-placement-set\" is TRUE."
-msgstr ""
-"Kur yra turinys slinkties juostų atžvilgiu. Ši savybė galioja tik esant "
-"„window-placement-set“ reikšmei TEIGIAMAI."
+#: ../gtk/gtkscrolledwindow.c:328
+msgid "Where the contents are located with respect to the scrollbars. This property only takes effect if \"window-placement-set\" is TRUE."
+msgstr "Kur yra turinys slinkties juostų atžvilgiu. Ši savybė galioja tik esant „window-placement-set“ reikšmei TEIGIAMAI."
 
-#: ../gtk/gtkscrolledwindow.c:344
+#: ../gtk/gtkscrolledwindow.c:345
 msgid "Window Placement Set"
 msgstr "Langų išdėstymo nustatymas"
 
-#: ../gtk/gtkscrolledwindow.c:345
-msgid ""
-"Whether \"window-placement\" should be used to determine the location of the "
-"contents with respect to the scrollbars."
-msgstr ""
-"Ar „window-placement“ turėtų būti naudojamas nustatyti turinio vietą "
-"slinkties juostų atžvilgiu."
+#: ../gtk/gtkscrolledwindow.c:346
+msgid "Whether \"window-placement\" should be used to determine the location of the contents with respect to the scrollbars."
+msgstr "Ar „window-placement“ turėtų būti naudojamas nustatyti turinio vietą slinkties juostų atžvilgiu."
 
-#: ../gtk/gtkscrolledwindow.c:351
+#: ../gtk/gtkscrolledwindow.c:352
 msgid "Shadow Type"
 msgstr "Šešėlio tipas"
 
-#: ../gtk/gtkscrolledwindow.c:352
+#: ../gtk/gtkscrolledwindow.c:353
 msgid "Style of bevel around the contents"
 msgstr "Rėmelio apie turinį stilius"
 
-#: ../gtk/gtkscrolledwindow.c:366
+#: ../gtk/gtkscrolledwindow.c:367
 msgid "Scrollbars within bevel"
 msgstr "Slinkties juostos rėmelyje"
 
-#: ../gtk/gtkscrolledwindow.c:367
+#: ../gtk/gtkscrolledwindow.c:368
 msgid "Place scrollbars within the scrolled window's bevel"
 msgstr "Padėti slinkties juostas slenkamo lango rėmelyje"
 
-#: ../gtk/gtkscrolledwindow.c:373
+#: ../gtk/gtkscrolledwindow.c:374
 msgid "Scrollbar spacing"
 msgstr "Slinkties juostos tarpai"
 
-#: ../gtk/gtkscrolledwindow.c:374
+#: ../gtk/gtkscrolledwindow.c:375
 msgid "Number of pixels between the scrollbars and the scrolled window"
 msgstr "Atstumas pikseliais tarp slinkties juostos ir slenkamo lango"
 
-#: ../gtk/gtkscrolledwindow.c:390
+#: ../gtk/gtkscrolledwindow.c:391
 msgid "Minimum Content Width"
 msgstr "Minimalus turinio plotis"
 
-#: ../gtk/gtkscrolledwindow.c:391
+#: ../gtk/gtkscrolledwindow.c:392
 msgid "The minimum width that the scrolled window will allocate to its content"
 msgstr "Mažiausias plotis, kurį slankomas langas išskirs savo turiniui"
 
-#: ../gtk/gtkscrolledwindow.c:405
+#: ../gtk/gtkscrolledwindow.c:406
 msgid "Minimum Content Height"
 msgstr "Minimalus turinio aukštis"
 
-#: ../gtk/gtkscrolledwindow.c:406
-msgid ""
-"The minimum height that the scrolled window will allocate to its content"
+#: ../gtk/gtkscrolledwindow.c:407
+msgid "The minimum height that the scrolled window will allocate to its content"
 msgstr "Mažiausias aukštis, kurį slankomas langas išskirs savo turiniui"
 
 #: ../gtk/gtkseparatortoolitem.c:143
@@ -5195,685 +5258,622 @@ msgstr "Piešti"
 msgid "Whether the separator is drawn, or just blank"
 msgstr "Ar skirtukas yra parodomas, ar tik tuščia vieta"
 
-#: ../gtk/gtksettings.c:322
+#: ../gtk/gtksettings.c:321
 msgid "Double Click Time"
 msgstr "Dvigubo paspaudimo laikas"
 
-#: ../gtk/gtksettings.c:323
-msgid ""
-"Maximum time allowed between two clicks for them to be considered a double "
-"click (in milliseconds)"
-msgstr ""
-"Maksimalus laikas tarp dviejų spragtelėjimų, kai galima juos laikyti dvigubu "
-"spragtelėjimu (milisekundėmis)"
+#: ../gtk/gtksettings.c:322
+msgid "Maximum time allowed between two clicks for them to be considered a double click (in milliseconds)"
+msgstr "Maksimalus laikas tarp dviejų spragtelėjimų, kai galima juos laikyti dvigubu spragtelėjimu (milisekundėmis)"
 
-#: ../gtk/gtksettings.c:330
+#: ../gtk/gtksettings.c:329
 msgid "Double Click Distance"
 msgstr "Dvigubo paspaudimo atstumas"
 
-#: ../gtk/gtksettings.c:331
-msgid ""
-"Maximum distance allowed between two clicks for them to be considered a "
-"double click (in pixels)"
-msgstr ""
-"Didžiausias atstumas tarp dviejų spragtelėjimų, kuris leidžia juos laikyti "
-"dvigubu spragtelėjimu (pikseliais)"
+#: ../gtk/gtksettings.c:330
+msgid "Maximum distance allowed between two clicks for them to be considered a double click (in pixels)"
+msgstr "Didžiausias atstumas tarp dviejų spragtelėjimų, kuris leidžia juos laikyti dvigubu spragtelėjimu (pikseliais)"
 
-#: ../gtk/gtksettings.c:347
+#: ../gtk/gtksettings.c:346
 msgid "Cursor Blink"
 msgstr "Mirksintis žymeklis"
 
-#: ../gtk/gtksettings.c:348
+#: ../gtk/gtksettings.c:347
 msgid "Whether the cursor should blink"
 msgstr "Ar žymeklis gali mirksėti"
 
-#: ../gtk/gtksettings.c:355
+#: ../gtk/gtksettings.c:354
 msgid "Cursor Blink Time"
 msgstr "Žymeklio mirksėjimo laikas"
 
-#: ../gtk/gtksettings.c:356
+#: ../gtk/gtksettings.c:355
 msgid "Length of the cursor blink cycle, in milliseconds"
 msgstr "Žymeklio mirksėjimo dažnis (milisekundėmis)"
 
-#: ../gtk/gtksettings.c:375
+#: ../gtk/gtksettings.c:374
 msgid "Cursor Blink Timeout"
 msgstr "Žymeklio mirksėjimo baigimo laikas"
 
-#: ../gtk/gtksettings.c:376
+#: ../gtk/gtksettings.c:375
 msgid "Time after which the cursor stops blinking, in seconds"
 msgstr "Laikas, po kurio žymeklis nustoja mirksėti (sekundėmis)"
 
-#: ../gtk/gtksettings.c:383
+#: ../gtk/gtksettings.c:382
 msgid "Split Cursor"
 msgstr "Perskirtas žymeklis"
 
-#: ../gtk/gtksettings.c:384
-msgid ""
-"Whether two cursors should be displayed for mixed left-to-right and right-to-"
-"left text"
-msgstr ""
-"Ar galima rodyti du žymeklius esant maišytam iš-kairės-į-dešinę bei iš-"
-"dešinės-į-kairę tekstui"
+#: ../gtk/gtksettings.c:383
+msgid "Whether two cursors should be displayed for mixed left-to-right and right-to-left text"
+msgstr "Ar galima rodyti du žymeklius esant maišytam iš-kairės-į-dešinę bei iš-dešinės-į-kairę tekstui"
 
-#: ../gtk/gtksettings.c:391
+#: ../gtk/gtksettings.c:390
 msgid "Theme Name"
 msgstr "Temos vardas"
 
-#: ../gtk/gtksettings.c:392
+#: ../gtk/gtksettings.c:391
 msgid "Name of theme to load"
 msgstr "Įkeltinos temos pavadinimas"
 
-#: ../gtk/gtksettings.c:400
+#: ../gtk/gtksettings.c:399
 msgid "Icon Theme Name"
 msgstr "Piktogramų temos pavadinimas"
 
-#: ../gtk/gtksettings.c:401
+#: ../gtk/gtksettings.c:400
 msgid "Name of icon theme to use"
 msgstr "Naudotinos piktogramų temos pavadinimas"
 
-#: ../gtk/gtksettings.c:409
+#: ../gtk/gtksettings.c:408
 msgid "Fallback Icon Theme Name"
 msgstr "Atsarginės piktogramų temos pavadinimas"
 
-#: ../gtk/gtksettings.c:410
+#: ../gtk/gtksettings.c:409
 msgid "Name of a icon theme to fall back to"
 msgstr "Naudojamos atsarginės piktogramų temos pavadinimas"
 
-#: ../gtk/gtksettings.c:418
+#: ../gtk/gtksettings.c:417
 msgid "Key Theme Name"
 msgstr "Klavišų temos pavadinimas"
 
-#: ../gtk/gtksettings.c:419
+#: ../gtk/gtksettings.c:418
 msgid "Name of key theme to load"
 msgstr "Įkeltinos klavišų temos pavadinimas"
 
-#: ../gtk/gtksettings.c:427
+#: ../gtk/gtksettings.c:426
 msgid "Menu bar accelerator"
 msgstr "Meniu juostos spartusis klavišas"
 
-#: ../gtk/gtksettings.c:428
+#: ../gtk/gtksettings.c:427
 msgid "Keybinding to activate the menu bar"
 msgstr "Klavišų kombinacija aktyvinanti meniu juostą"
 
-#: ../gtk/gtksettings.c:436
+#: ../gtk/gtksettings.c:435
 msgid "Drag threshold"
 msgstr "Tempimo riba"
 
-#: ../gtk/gtksettings.c:437
+#: ../gtk/gtksettings.c:436
 msgid "Number of pixels the cursor can move before dragging"
-msgstr ""
-"Pikselių skaičius, kiek gali pajudėti žymeklis prieš prasidedant tempimui"
+msgstr "Pikselių skaičius, kiek gali pajudėti žymeklis prieš prasidedant tempimui"
 
-#: ../gtk/gtksettings.c:445
+#: ../gtk/gtksettings.c:444
 msgid "Font Name"
 msgstr "Šrifto pavadinimas"
 
-#: ../gtk/gtksettings.c:446
+#: ../gtk/gtksettings.c:445
 msgid "Name of default font to use"
 msgstr "Naudojamo standartinio šrifto vardas"
 
-#: ../gtk/gtksettings.c:468
+#: ../gtk/gtksettings.c:467
 msgid "Icon Sizes"
 msgstr "Piktogramų dydžiai"
 
-#: ../gtk/gtksettings.c:469
+#: ../gtk/gtksettings.c:468
 msgid "List of icon sizes (gtk-menu=16,16:gtk-button=20,20..."
 msgstr "Piktogramų dydžių sąrašas (gtk-menu=16,16:gtk-button=20,20…"
 
-#: ../gtk/gtksettings.c:477
+#: ../gtk/gtksettings.c:476
 msgid "GTK Modules"
 msgstr "GTK moduliai"
 
-#: ../gtk/gtksettings.c:478
+#: ../gtk/gtksettings.c:477
 msgid "List of currently active GTK modules"
 msgstr "Šiuo metu aktyvių GTK modulių sąrašas"
 
-#: ../gtk/gtksettings.c:486
+#: ../gtk/gtksettings.c:485
 msgid "Xft Antialias"
 msgstr "Xft glotninimas"
 
-#: ../gtk/gtksettings.c:487
+#: ../gtk/gtksettings.c:486
 msgid "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default"
 msgstr "Ar glotninti Xft šriftus; 0=ne, 1=taip, -1=numatytas"
 
-#: ../gtk/gtksettings.c:496
+#: ../gtk/gtksettings.c:495
 msgid "Xft Hinting"
 msgstr "Xft užuominos"
 
-#: ../gtk/gtksettings.c:497
+#: ../gtk/gtksettings.c:496
 msgid "Whether to hint Xft fonts; 0=no, 1=yes, -1=default"
 msgstr "Ar daryti užuominas Xft šriftams; 0=ne, 1=taip, -1=numatytas"
 
-#: ../gtk/gtksettings.c:506
+#: ../gtk/gtksettings.c:505
 msgid "Xft Hint Style"
 msgstr "Xft užuominų stilius"
 
-#: ../gtk/gtksettings.c:507
-msgid ""
-"What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull"
+#: ../gtk/gtksettings.c:506
+msgid "What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull"
 msgstr "Kokį užuominų lygį naudoti; jokio, nežymų, vidutinį, ar pilną"
 
-#: ../gtk/gtksettings.c:516
+#: ../gtk/gtksettings.c:515
 msgid "Xft RGBA"
 msgstr "Xft RGBA"
 
-#: ../gtk/gtksettings.c:517
+#: ../gtk/gtksettings.c:516
 msgid "Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr"
 msgstr "Subpikselinio glotninimo tipas; jokio, rgb, bgr, vrgb, vbgr"
 
-#: ../gtk/gtksettings.c:526
+#: ../gtk/gtksettings.c:525
 msgid "Xft DPI"
 msgstr "Xft DPI"
 
-#: ../gtk/gtksettings.c:527
+#: ../gtk/gtksettings.c:526
 msgid "Resolution for Xft, in 1024 * dots/inch. -1 to use default value"
 msgstr "Xft raiška, 1024 * taškai/colyje. -1 naudoti numatytąją reikšmę"
 
-#: ../gtk/gtksettings.c:536
+#: ../gtk/gtksettings.c:535
 msgid "Cursor theme name"
 msgstr "Žymeklių temos pavadinimas"
 
-#: ../gtk/gtksettings.c:537
+#: ../gtk/gtksettings.c:536
 msgid "Name of the cursor theme to use, or NULL to use the default theme"
-msgstr ""
-"Naudotinos žymeklių temos pavadinimas, arba NULL - naudojant numatytąją temą"
+msgstr "Naudotinos žymeklių temos pavadinimas, arba NULL - naudojant numatytąją temą"
 
-#: ../gtk/gtksettings.c:545
+#: ../gtk/gtksettings.c:544
 msgid "Cursor theme size"
 msgstr "Žymeklių temos dydis"
 
-#: ../gtk/gtksettings.c:546
+#: ../gtk/gtksettings.c:545
 msgid "Size to use for cursors, or 0 to use the default size"
 msgstr "Naudotinas žymeklių dydis, arba 0 - naudojant numatytąjį dydį"
 
-#: ../gtk/gtksettings.c:555
+#: ../gtk/gtksettings.c:554
 msgid "Alternative button order"
 msgstr "Alternatyvi mygtukų tvarka"
 
-#: ../gtk/gtksettings.c:556
+#: ../gtk/gtksettings.c:555
 msgid "Whether buttons in dialogs should use the alternative button order"
-msgstr ""
-"Ar dialoguose mygtukai turi būti rodomos mygtukuose alternatyvia tvarka"
+msgstr "Ar dialoguose mygtukai turi būti rodomos mygtukuose alternatyvia tvarka"
 
-#: ../gtk/gtksettings.c:573
+#: ../gtk/gtksettings.c:572
 msgid "Alternative sort indicator direction"
 msgstr "Alternatyvi tvarkos indikatoriaus kryptis"
 
-#: ../gtk/gtksettings.c:574
-msgid ""
-"Whether the direction of the sort indicators in list and tree views is "
-"inverted compared to the default (where down means ascending)"
-msgstr ""
-"Ar rikiavimo indikatorių sąrašo ir medžio rodiniuose kryptis apversta "
-"palyginti su įprasta (kur rodyklė žemyn reiškia didėjimo tvarką)"
+#: ../gtk/gtksettings.c:573
+msgid "Whether the direction of the sort indicators in list and tree views is inverted compared to the default (where down means ascending)"
+msgstr "Ar rikiavimo indikatorių sąrašo ir medžio rodiniuose kryptis apversta palyginti su įprasta (kur rodyklė žemyn reiškia didėjimo tvarką)"
 
-#: ../gtk/gtksettings.c:582
+#: ../gtk/gtksettings.c:581
 msgid "Show the 'Input Methods' menu"
 msgstr "Rodyti meniu „Įvesties metodai“"
 
-#: ../gtk/gtksettings.c:583
-msgid ""
-"Whether the context menus of entries and text views should offer to change "
-"the input method"
-msgstr ""
-"Ar kontekstiniai įrašų ir teksto vaizdų meniu turėtų pasiūlyti keisti "
-"įvesties metodą"
+#: ../gtk/gtksettings.c:582
+msgid "Whether the context menus of entries and text views should offer to change the input method"
+msgstr "Ar kontekstiniai įrašų ir teksto vaizdų meniu turėtų pasiūlyti keisti įvesties metodą"
 
-#: ../gtk/gtksettings.c:591
+#: ../gtk/gtksettings.c:590
 msgid "Show the 'Insert Unicode Control Character' menu"
 msgstr "Rodyti meniu „Įterpti Unikodo valdymo simbolį“"
 
-#: ../gtk/gtksettings.c:592
-msgid ""
-"Whether the context menus of entries and text views should offer to insert "
-"control characters"
-msgstr ""
-"Ar kontekstiniai įrašų ir teksto vaizdų meniu turėtų pasiūlyti įterpti "
-"valdymo simbolius."
+#: ../gtk/gtksettings.c:591
+msgid "Whether the context menus of entries and text views should offer to insert control characters"
+msgstr "Ar kontekstiniai įrašų ir teksto vaizdų meniu turėtų pasiūlyti įterpti valdymo simbolius."
 
-#: ../gtk/gtksettings.c:600
+#: ../gtk/gtksettings.c:599
 msgid "Start timeout"
 msgstr "Pradinis laikrodžio intervalas"
 
-#: ../gtk/gtksettings.c:601
+#: ../gtk/gtksettings.c:600
 msgid "Starting value for timeouts, when button is pressed"
 msgstr "Pradinė laikrodžio intervalo reikšmė paspaudus mygtuką"
 
-#: ../gtk/gtksettings.c:610
+#: ../gtk/gtksettings.c:609
 msgid "Repeat timeout"
 msgstr "Kartotinis intervalas"
 
-#: ../gtk/gtksettings.c:611
+#: ../gtk/gtksettings.c:610
 msgid "Repeat value for timeouts, when button is pressed"
 msgstr "Kartotinė intervalo reikšmė paspaudus mygtuką"
 
-#: ../gtk/gtksettings.c:620
+#: ../gtk/gtksettings.c:619
 msgid "Expand timeout"
 msgstr "Išskleidimo intervalas"
 
-#: ../gtk/gtksettings.c:621
+#: ../gtk/gtksettings.c:620
 msgid "Expand value for timeouts, when a widget is expanding a new region"
 msgstr "Išskleidimo reikšmė intervalams, kai laukelis išplečia regioną"
 
-#: ../gtk/gtksettings.c:656
+#: ../gtk/gtksettings.c:655
 msgid "Color scheme"
 msgstr "Spalvų schema"
 
-#: ../gtk/gtksettings.c:657
+#: ../gtk/gtksettings.c:656
 msgid "A palette of named colors for use in themes"
 msgstr "Pavadintų spalvų paletė naudotina temose"
 
-#: ../gtk/gtksettings.c:666
+#: ../gtk/gtksettings.c:665
 msgid "Enable Animations"
 msgstr "Įjungti animaciją"
 
-#: ../gtk/gtksettings.c:667
+#: ../gtk/gtksettings.c:666
 msgid "Whether to enable toolkit-wide animations."
 msgstr "Ar įjungti animacijas bibliotekos mastu."
 
-#: ../gtk/gtksettings.c:685
+#: ../gtk/gtksettings.c:684
 msgid "Enable Touchscreen Mode"
 msgstr "Įjungti liečiamojo ekrano veikseną"
 
-#: ../gtk/gtksettings.c:686
+#: ../gtk/gtksettings.c:685
 msgid "When TRUE, there are no motion notify events delivered on this screen"
 msgstr "Kai TEIGIAMA, traukos įvykiai nepristatomi į šį ekraną"
 
-#: ../gtk/gtksettings.c:703
+#: ../gtk/gtksettings.c:702
 msgid "Tooltip timeout"
 msgstr "Paaiškinimo parodymo laikas"
 
-#: ../gtk/gtksettings.c:704
+#: ../gtk/gtksettings.c:703
 msgid "Timeout before tooltip is shown"
 msgstr "Laikas, po kurio parodomas paaiškinimas"
 
-#: ../gtk/gtksettings.c:729
+#: ../gtk/gtksettings.c:728
 msgid "Tooltip browse timeout"
 msgstr "Paaiškinimo naršymo laikas"
 
-#: ../gtk/gtksettings.c:730
+#: ../gtk/gtksettings.c:729
 msgid "Timeout before tooltip is shown when browse mode is enabled"
 msgstr "Laikas, po kurio paaiškinimas parodomas esant naršymo veiksenoje"
 
-#: ../gtk/gtksettings.c:751
+#: ../gtk/gtksettings.c:750
 msgid "Tooltip browse mode timeout"
 msgstr "Paaiškinimo laikas naršymo veiksenoje"
 
-#: ../gtk/gtksettings.c:752
+#: ../gtk/gtksettings.c:751
 msgid "Timeout after which browse mode is disabled"
 msgstr "Laikas, po kurio naršymo veiksena išjungiama"
 
-#: ../gtk/gtksettings.c:771
+#: ../gtk/gtksettings.c:770
 msgid "Keynav Cursor Only"
 msgstr "Navigacija tik klaviatūra"
 
-#: ../gtk/gtksettings.c:772
+#: ../gtk/gtksettings.c:771
 msgid "When TRUE, there are only cursor keys available to navigate widgets"
-msgstr ""
-"Kai TEIGIAMA, naviguoti po objektus galima tik žymeklio valdymo klavišais"
+msgstr "Kai TEIGIAMA, naviguoti po objektus galima tik žymeklio valdymo klavišais"
 
-#: ../gtk/gtksettings.c:789
+#: ../gtk/gtksettings.c:788
 msgid "Keynav Wrap Around"
 msgstr "Navigavimo klavišais peršokimas iš pabaigos į pradžią"
 
-#: ../gtk/gtksettings.c:790
+#: ../gtk/gtksettings.c:789
 msgid "Whether to wrap around when keyboard-navigating widgets"
 msgstr "Ar šokti iš pabaigos į pradžią naviguojant klaviatūra"
 
-#: ../gtk/gtksettings.c:810
+#: ../gtk/gtksettings.c:809
 msgid "Error Bell"
 msgstr "Klaidos skambutis"
 
-#: ../gtk/gtksettings.c:811
+#: ../gtk/gtksettings.c:810
 msgid "When TRUE, keyboard navigation and other errors will cause a beep"
-msgstr ""
-"Kai TEIGIAMA, įvykus navigavimo klaviatūros ar kitoms klaidoms nuskambės "
-"skambutis"
+msgstr "Kai TEIGIAMA, įvykus navigavimo klaviatūros ar kitoms klaidoms nuskambės skambutis"
 
-#: ../gtk/gtksettings.c:828
+#: ../gtk/gtksettings.c:827
 msgid "Color Hash"
 msgstr "Spalvų maiša"
 
-#: ../gtk/gtksettings.c:829
+#: ../gtk/gtksettings.c:828
 msgid "A hash table representation of the color scheme."
 msgstr "Spalvų schemos reprezentaciją kaip maišos lentelė"
 
-#: ../gtk/gtksettings.c:837
+#: ../gtk/gtksettings.c:836
 msgid "Default file chooser backend"
 msgstr "Numatytoji failų parinkiklio posistemė"
 
-#: ../gtk/gtksettings.c:838
+#: ../gtk/gtksettings.c:837
 msgid "Name of the GtkFileChooser backend to use by default"
 msgstr "Numatytai naudojamos GtkFileChooser posistemės pavadinimas"
 
-#: ../gtk/gtksettings.c:855
+#: ../gtk/gtksettings.c:854
 msgid "Default print backend"
 msgstr "Numatytoji spausdintuvo posistemė"
 
-#: ../gtk/gtksettings.c:856
+#: ../gtk/gtksettings.c:855
 msgid "List of the GtkPrintBackend backends to use by default"
 msgstr "Numatytasis naudotinas GtkPrintBackend posistemių sąrašas"
 
-#: ../gtk/gtksettings.c:879
+#: ../gtk/gtksettings.c:878
 msgid "Default command to run when displaying a print preview"
 msgstr "Įprasta komanda atveriant spausdinio peržiūrą"
 
-#: ../gtk/gtksettings.c:880
+#: ../gtk/gtksettings.c:879
 msgid "Command to run when displaying a print preview"
 msgstr "Komanda, kurią įvykdyti atveriant spausdinio peržiūrą"
 
-#: ../gtk/gtksettings.c:896
+#: ../gtk/gtksettings.c:895
 msgid "Enable Mnemonics"
 msgstr "Įjungti mnemonikas"
 
-#: ../gtk/gtksettings.c:897
+#: ../gtk/gtksettings.c:896
 msgid "Whether labels should have mnemonics"
 msgstr "Ar žymės turėtų turėti mnemonikas"
 
-#: ../gtk/gtksettings.c:913
+#: ../gtk/gtksettings.c:912
 msgid "Enable Accelerators"
 msgstr "Įjungti sparčiuosius klavišus"
 
-#: ../gtk/gtksettings.c:914
+#: ../gtk/gtksettings.c:913
 msgid "Whether menu items should have accelerators"
 msgstr "Ar meniu elementai turėtų turėti spartinančiuosius klavišus"
 
-#: ../gtk/gtksettings.c:931
+#: ../gtk/gtksettings.c:930
 msgid "Recent Files Limit"
 msgstr "Vėliausių failų sąrašo riba"
 
-#: ../gtk/gtksettings.c:932
+#: ../gtk/gtksettings.c:931
 msgid "Number of recently used files"
 msgstr "Vėliausiai atvertų failų skaičius"
 
-#: ../gtk/gtksettings.c:950
+#: ../gtk/gtksettings.c:949
 msgid "Default IM module"
 msgstr "Numatytasis įvesties metodas"
 
-#: ../gtk/gtksettings.c:951
+#: ../gtk/gtksettings.c:950
 msgid "Which IM module should be used by default"
 msgstr "Kurį įvesties metodo modulį naudoti, kai nenurodoma kitaip"
 
-#: ../gtk/gtksettings.c:969
+#: ../gtk/gtksettings.c:968
 msgid "Recent Files Max Age"
 msgstr "Vėliausių failų didžiausias amžius"
 
-#: ../gtk/gtksettings.c:970
+#: ../gtk/gtksettings.c:969
 msgid "Maximum age of recently used files, in days"
 msgstr "Didžiausias leistinas vėliausiai atverto failo amžius (dienomis)"
 
-#: ../gtk/gtksettings.c:979
+#: ../gtk/gtksettings.c:978
 msgid "Fontconfig configuration timestamp"
 msgstr "„Fontconfig“ nuostatų laiko žyma"
 
-#: ../gtk/gtksettings.c:980
+#: ../gtk/gtksettings.c:979
 msgid "Timestamp of current fontconfig configuration"
 msgstr "Naudojamų „Fontconfig“ nuostatų laiko žyma"
 
-#: ../gtk/gtksettings.c:1002
+#: ../gtk/gtksettings.c:1001
 msgid "Sound Theme Name"
 msgstr "Garsų temos pavadinimas"
 
-#: ../gtk/gtksettings.c:1003
+#: ../gtk/gtksettings.c:1002
 msgid "XDG sound theme name"
 msgstr "XDG garsų temos pavadinimas"
 
 #. Translators: this means sounds that are played as feedback to user input
-#: ../gtk/gtksettings.c:1025
+#: ../gtk/gtksettings.c:1024
 msgid "Audible Input Feedback"
 msgstr "Garsu reaguoti į įvestį"
 
-#: ../gtk/gtksettings.c:1026
+#: ../gtk/gtksettings.c:1025
 msgid "Whether to play event sounds as feedback to user input"
 msgstr "Ar groti garsus, reaguojant į vartotojo įvestį"
 
-#: ../gtk/gtksettings.c:1047
+#: ../gtk/gtksettings.c:1046
 msgid "Enable Event Sounds"
 msgstr "Įjungti įvykių įgarsinimą"
 
-#: ../gtk/gtksettings.c:1048
+#: ../gtk/gtksettings.c:1047
 msgid "Whether to play any event sounds at all"
 msgstr "Ar apskritai groti garsus"
 
-#: ../gtk/gtksettings.c:1063
+#: ../gtk/gtksettings.c:1062
 msgid "Enable Tooltips"
 msgstr "Įjungti paaiškinimus"
 
-#: ../gtk/gtksettings.c:1064
+#: ../gtk/gtksettings.c:1063
 msgid "Whether tooltips should be shown on widgets"
 msgstr "Ar virš objektų turi būti rodomi paaiškinimai"
 
-#: ../gtk/gtksettings.c:1077
+#: ../gtk/gtksettings.c:1076
 msgid "Toolbar style"
 msgstr "Įrankinės stilius"
 
-#: ../gtk/gtksettings.c:1078
-msgid ""
-"Whether default toolbars have text only, text and icons, icons only, etc."
-msgstr ""
-"Ar standartinės įrankių juostas sudaro tekstas, tekstas ir piktogramos, vien "
-"piktogramos ir pan."
+#: ../gtk/gtksettings.c:1077
+msgid "Whether default toolbars have text only, text and icons, icons only, etc."
+msgstr "Ar standartinės įrankių juostas sudaro tekstas, tekstas ir piktogramos, vien piktogramos ir pan."
 
-#: ../gtk/gtksettings.c:1092
+#: ../gtk/gtksettings.c:1091
 msgid "Toolbar Icon Size"
 msgstr "Įrankių juostų piktogramų dydis"
 
-#: ../gtk/gtksettings.c:1093
+#: ../gtk/gtksettings.c:1092
 msgid "The size of icons in default toolbars."
 msgstr "Piktogramų dydis įprastose įrankių juostose."
 
-#: ../gtk/gtksettings.c:1110
+#: ../gtk/gtksettings.c:1109
 msgid "Auto Mnemonics"
 msgstr "Automatinės mnemonikos"
 
-#: ../gtk/gtksettings.c:1111
-msgid ""
-"Whether mnemonics should be automatically shown and hidden when the user "
-"presses the mnemonic activator."
-msgstr ""
-"Ar mnemonikos turėtų būti automatiškai rodomos/slepiamos, naudotojui "
-"spustelėjus jų aktyvinimo klavišą."
+#: ../gtk/gtksettings.c:1110
+msgid "Whether mnemonics should be automatically shown and hidden when the user presses the mnemonic activator."
+msgstr "Ar mnemonikos turėtų būti automatiškai rodomos/slepiamos, naudotojui spustelėjus jų aktyvinimo klavišą."
 
-#: ../gtk/gtksettings.c:1136
+#: ../gtk/gtksettings.c:1135
 msgid "Application prefers a dark theme"
 msgstr "Programa pageidauja tamsios temos"
 
-#: ../gtk/gtksettings.c:1137
+#: ../gtk/gtksettings.c:1136
 msgid "Whether the application prefers to have a dark theme."
 msgstr "Ar programa pageidauja turėti tamsią temą."
 
-#: ../gtk/gtksettings.c:1152
+#: ../gtk/gtksettings.c:1151
 msgid "Show button images"
 msgstr "Rodyti mygtukų paveikslėlius"
 
-#: ../gtk/gtksettings.c:1153
+#: ../gtk/gtksettings.c:1152
 msgid "Whether images should be shown on buttons"
 msgstr "Ar rodyti paveikslėlius ant mygtukų"
 
-#: ../gtk/gtksettings.c:1161 ../gtk/gtksettings.c:1255
+#: ../gtk/gtksettings.c:1160
+#: ../gtk/gtksettings.c:1254
 msgid "Select on focus"
 msgstr "Pažymėti aktyvinant"
 
-#: ../gtk/gtksettings.c:1162
+#: ../gtk/gtksettings.c:1161
 msgid "Whether to select the contents of an entry when it is focused"
 msgstr "Ar pažymėti įvesties laukelio turinį, kai jis suaktyvintas"
 
-#: ../gtk/gtksettings.c:1179
+#: ../gtk/gtksettings.c:1178
 msgid "Password Hint Timeout"
 msgstr "Slaptažodžio užuominos laikas"
 
-#: ../gtk/gtksettings.c:1180
+#: ../gtk/gtksettings.c:1179
 msgid "How long to show the last input character in hidden entries"
-msgstr ""
-"Kiek ilgai rodyti paskutinį įvestą simbolį paslėptuose įvesties laukeliuose"
+msgstr "Kiek ilgai rodyti paskutinį įvestą simbolį paslėptuose įvesties laukeliuose"
 
-#: ../gtk/gtksettings.c:1189
+#: ../gtk/gtksettings.c:1188
 msgid "Show menu images"
 msgstr "Rodyti meniu paveikslėlius"
 
-#: ../gtk/gtksettings.c:1190
+#: ../gtk/gtksettings.c:1189
 msgid "Whether images should be shown in menus"
 msgstr "Ar paveikslėliai turi būti rodomi meniu"
 
-#: ../gtk/gtksettings.c:1198
+#: ../gtk/gtksettings.c:1197
 msgid "Delay before drop down menus appear"
 msgstr "Pauzė prieš pasirodant išsiskleidžiantiems meniu"
 
-#: ../gtk/gtksettings.c:1199
+#: ../gtk/gtksettings.c:1198
 msgid "Delay before the submenus of a menu bar appear"
 msgstr "Pauze prieš pasirodant žemesnio lygio meniu punktams"
 
-#: ../gtk/gtksettings.c:1216
+#: ../gtk/gtksettings.c:1215
 msgid "Scrolled Window Placement"
 msgstr "Slenkamo lango padėtis"
 
-#: ../gtk/gtksettings.c:1217
-msgid ""
-"Where the contents of scrolled windows are located with respect to the "
-"scrollbars, if not overridden by the scrolled window's own placement."
-msgstr ""
-"Kur yra slenkamų langų turinys slinkties juostų atžvilgiu, jeigu šis "
-"nustatymas nepadaromas nepaisomu paties slenkamo lango išdėstymo."
+#: ../gtk/gtksettings.c:1216
+msgid "Where the contents of scrolled windows are located with respect to the scrollbars, if not overridden by the scrolled window's own placement."
+msgstr "Kur yra slenkamų langų turinys slinkties juostų atžvilgiu, jeigu šis nustatymas nepadaromas nepaisomu paties slenkamo lango išdėstymo."
 
-#: ../gtk/gtksettings.c:1226
+#: ../gtk/gtksettings.c:1225
 msgid "Can change accelerators"
 msgstr "Gali keisti sparčius klavišus"
 
-#: ../gtk/gtksettings.c:1227
-msgid ""
-"Whether menu accelerators can be changed by pressing a key over the menu item"
-msgstr ""
-"Ar meniu trumpi klavišai gali būti pakeisti paspaudus klavišą virš meniu "
-"punkto"
+#: ../gtk/gtksettings.c:1226
+msgid "Whether menu accelerators can be changed by pressing a key over the menu item"
+msgstr "Ar meniu trumpi klavišai gali būti pakeisti paspaudus klavišą virš meniu punkto"
 
-#: ../gtk/gtksettings.c:1235
+#: ../gtk/gtksettings.c:1234
 msgid "Delay before submenus appear"
 msgstr "Pauzė prieš išskleidžiant žemesnio lygio meniu"
 
-#: ../gtk/gtksettings.c:1236
-msgid ""
-"Minimum time the pointer must stay over a menu item before the submenu appear"
-msgstr ""
-"Mažiausias laiko tarpas, kurį rodyklė turi praleisti virš meniu punkto, tam "
-"kad išsiskleistų žemesnio lygio meniu"
+#: ../gtk/gtksettings.c:1235
+msgid "Minimum time the pointer must stay over a menu item before the submenu appear"
+msgstr "Mažiausias laiko tarpas, kurį rodyklė turi praleisti virš meniu punkto, tam kad išsiskleistų žemesnio lygio meniu"
 
-#: ../gtk/gtksettings.c:1245
+#: ../gtk/gtksettings.c:1244
 msgid "Delay before hiding a submenu"
 msgstr "Pauzė prieš paslepiant žemesnio lygio meniu"
 
-#: ../gtk/gtksettings.c:1246
-msgid ""
-"The time before hiding a submenu when the pointer is moving towards the "
-"submenu"
-msgstr ""
-"Laikas per kurį reikia paslėpti žemesnio lygio meniu kai rodyklė juda jo "
-"pusėn"
+#: ../gtk/gtksettings.c:1245
+msgid "The time before hiding a submenu when the pointer is moving towards the submenu"
+msgstr "Laikas per kurį reikia paslėpti žemesnio lygio meniu kai rodyklė juda jo pusėn"
 
-#: ../gtk/gtksettings.c:1256
+#: ../gtk/gtksettings.c:1255
 msgid "Whether to select the contents of a selectable label when it is focused"
 msgstr "Ar pasirinkti pasirenkamo užrašo turinį, kai jis aktyvinamas"
 
-#: ../gtk/gtksettings.c:1264
+#: ../gtk/gtksettings.c:1263
 msgid "Custom palette"
 msgstr "Derinta paletė"
 
-#: ../gtk/gtksettings.c:1265
+#: ../gtk/gtksettings.c:1264
 msgid "Palette to use in the color selector"
 msgstr "Paletė, naudojama spalvų parinkiklyje"
 
-#: ../gtk/gtksettings.c:1273
+#: ../gtk/gtksettings.c:1272
 msgid "IM Preedit style"
 msgstr "Įvesties metodo „Preedit“ stilius"
 
-#: ../gtk/gtksettings.c:1274
+#: ../gtk/gtksettings.c:1273
 msgid "How to draw the input method preedit string"
 msgstr "Kaip rodyti įvedimo metodo preedit seką"
 
-#: ../gtk/gtksettings.c:1283
+#: ../gtk/gtksettings.c:1282
 msgid "IM Status style"
 msgstr "Įvesties metodo būsenos stilius"
 
-#: ../gtk/gtksettings.c:1284
+#: ../gtk/gtksettings.c:1283
 msgid "How to draw the input method statusbar"
 msgstr "Kaip rodyti įvedimo metodo būsenos juostą"
 
-#: ../gtk/gtksizegroup.c:381 ../gtk/gtktreeselection.c:130
+#: ../gtk/gtksizegroup.c:382
+#: ../gtk/gtktreeselection.c:130
 msgid "Mode"
 msgstr "Veiksena"
 
-#: ../gtk/gtksizegroup.c:382
-msgid ""
-"The directions in which the size group affects the requested sizes of its "
-"component widgets"
-msgstr ""
-"Kryptys, kuriomis kinta susietų objektų dydis vykdant grupinio dydžio "
-"keitimo operacijas"
+#: ../gtk/gtksizegroup.c:383
+msgid "The directions in which the size group affects the requested sizes of its component widgets"
+msgstr "Kryptys, kuriomis kinta susietų objektų dydis vykdant grupinio dydžio keitimo operacijas"
 
-#: ../gtk/gtksizegroup.c:398
+#: ../gtk/gtksizegroup.c:399
 msgid "Ignore hidden"
 msgstr "Nepaisyti paslėptų"
 
-#: ../gtk/gtksizegroup.c:399
-msgid ""
-"If TRUE, unmapped widgets are ignored when determining the size of the group"
+#: ../gtk/gtksizegroup.c:400
+msgid "If TRUE, unmapped widgets are ignored when determining the size of the group"
 msgstr "Jei TEIGIAMA, nerodomi laukai ignoruojami nustatant grupės dydį"
 
-#: ../gtk/gtkspinbutton.c:329
+#: ../gtk/gtkspinbutton.c:331
 msgid "Climb Rate"
 msgstr "Lipimo taktas"
 
-#: ../gtk/gtkspinbutton.c:349
+#: ../gtk/gtkspinbutton.c:351
 msgid "Snap to Ticks"
 msgstr "Lygiuoti ties žymekliais"
 
-#: ../gtk/gtkspinbutton.c:350
-msgid ""
-"Whether erroneous values are automatically changed to a spin button's "
-"nearest step increment"
-msgstr ""
-"Ar klaidingos reikšmės turi būti automatiškai pataisytos iki arčiausios "
-"sukimo mygtuko tinkamos reikšmės"
+#: ../gtk/gtkspinbutton.c:352
+msgid "Whether erroneous values are automatically changed to a spin button's nearest step increment"
+msgstr "Ar klaidingos reikšmės turi būti automatiškai pataisytos iki arčiausios sukimo mygtuko tinkamos reikšmės"
 
-#: ../gtk/gtkspinbutton.c:357
+#: ../gtk/gtkspinbutton.c:359
 msgid "Numeric"
 msgstr "Skaitmeninis"
 
-#: ../gtk/gtkspinbutton.c:358
+#: ../gtk/gtkspinbutton.c:360
 msgid "Whether non-numeric characters should be ignored"
 msgstr "Ar neskaitmeniniai simboliai turi būti ignoruojami"
 
-#: ../gtk/gtkspinbutton.c:365
+#: ../gtk/gtkspinbutton.c:367
 msgid "Wrap"
 msgstr "Laužyti"
 
-#: ../gtk/gtkspinbutton.c:366
+#: ../gtk/gtkspinbutton.c:368
 msgid "Whether a spin button should wrap upon reaching its limits"
 msgstr "Ar sukimo mygtukas turi persisukti pasiekęs sukimo ribas"
 
-#: ../gtk/gtkspinbutton.c:373
+#: ../gtk/gtkspinbutton.c:375
 msgid "Update Policy"
 msgstr "Atnaujinimo tvarka"
 
-#: ../gtk/gtkspinbutton.c:374
-msgid ""
-"Whether the spin button should update always, or only when the value is legal"
-msgstr ""
-"Ar persukimo mygtukas turi būti perpiešiamas nuolat, ar tik tada kai reikšmė "
-"yra tinkama"
+#: ../gtk/gtkspinbutton.c:376
+msgid "Whether the spin button should update always, or only when the value is legal"
+msgstr "Ar persukimo mygtukas turi būti perpiešiamas nuolat, ar tik tada kai reikšmė yra tinkama"
 
-#: ../gtk/gtkspinbutton.c:383
+#: ../gtk/gtkspinbutton.c:385
 msgid "Reads the current value, or sets a new value"
 msgstr "Perskaito esamą reikšmę arba nustato naują"
 
-#: ../gtk/gtkspinbutton.c:392
+#: ../gtk/gtkspinbutton.c:394
 msgid "Style of bevel around the spin button"
 msgstr "Rėmelio apie persukimo mygtuką stilius"
 
-#: ../gtk/gtkspinner.c:119
+#: ../gtk/gtkspinner.c:116
 msgid "Whether the spinner is active"
 msgstr "Ar suktukas yra aktyvus"
 
-#: ../gtk/gtkstatusbar.c:181
+#: ../gtk/gtkstatusbar.c:183
 msgid "Style of bevel around the statusbar text"
 msgstr "Rėmelio, aplink būklės juostos tekstą, stilius"
 
@@ -5893,11 +5893,13 @@ msgstr "Ar būsenos piktograma matoma"
 msgid "Whether the status icon is embedded"
 msgstr "Ar būsenos piktograma integruota"
 
-#: ../gtk/gtkstatusicon.c:343 ../gtk/gtktrayicon-x11.c:129
+#: ../gtk/gtkstatusicon.c:343
+#: ../gtk/gtktrayicon-x11.c:129
 msgid "The orientation of the tray"
 msgstr "Skydelio orientacija"
 
-#: ../gtk/gtkstatusicon.c:370 ../gtk/gtkwidget.c:1070
+#: ../gtk/gtkstatusicon.c:370
+#: ../gtk/gtkwidget.c:1089
 msgid "Has tooltip"
 msgstr "Turi paaiškinimą"
 
@@ -5905,15 +5907,19 @@ msgstr "Turi paaiškinimą"
 msgid "Whether this tray icon has a tooltip"
 msgstr "Ar ši dėklo piktograma turi paaiškinimą"
 
-#: ../gtk/gtkstatusicon.c:396 ../gtk/gtkwidget.c:1091
+#: ../gtk/gtkstatusicon.c:396
+#: ../gtk/gtkwidget.c:1110
 msgid "Tooltip Text"
 msgstr "Paaiškinimo tekstas"
 
-#: ../gtk/gtkstatusicon.c:397 ../gtk/gtkwidget.c:1092 ../gtk/gtkwidget.c:1113
+#: ../gtk/gtkstatusicon.c:397
+#: ../gtk/gtkwidget.c:1111
+#: ../gtk/gtkwidget.c:1132
 msgid "The contents of the tooltip for this widget"
 msgstr "Objekto paaiškinimo turinys"
 
-#: ../gtk/gtkstatusicon.c:420 ../gtk/gtkwidget.c:1112
+#: ../gtk/gtkstatusicon.c:420
+#: ../gtk/gtkwidget.c:1131
 msgid "Tooltip markup"
 msgstr "Paaiškinimo tekstas"
 
@@ -5933,23 +5939,24 @@ msgstr "Stiliaus kontekstas"
 msgid "GtkStyleContext to get style from"
 msgstr "GtkStyleContext stiliui gauti"
 
-#: ../gtk/gtkstylecontext.c:547
+#: ../gtk/gtkstylecontext.c:432
 msgid "The associated GdkScreen"
 msgstr "Susietas GdkScreen"
 
-#: ../gtk/gtkstylecontext.c:553
+#: ../gtk/gtkstylecontext.c:438
 msgid "Direction"
 msgstr "Kryptis"
 
-#: ../gtk/gtkstylecontext.c:554 ../gtk/gtktexttag.c:236
+#: ../gtk/gtkstylecontext.c:439
+#: ../gtk/gtktexttag.c:269
 msgid "Text direction"
 msgstr "Teksto kryptis"
 
-#: ../gtk/gtkswitch.c:802
+#: ../gtk/gtkswitch.c:785
 msgid "Whether the switch is on or off"
 msgstr "Ar jungiklis įjungtas, ar išjungtas"
 
-#: ../gtk/gtkswitch.c:837
+#: ../gtk/gtkswitch.c:819
 msgid "The minimum width of the handle"
 msgstr "Minimalus rankenėlės plotis"
 
@@ -6010,24 +6017,16 @@ msgid "Horizontal padding"
 msgstr "Horizontalus apvalkalas"
 
 #: ../gtk/gtktable.c:278
-msgid ""
-"Extra space to put between the child and its left and right neighbors, in "
-"pixels"
-msgstr ""
-"Papildomas tarpas tarp vaikinio objekto ir jo kaimynų kairėje bei dešinėje, "
-"pikseliais"
+msgid "Extra space to put between the child and its left and right neighbors, in pixels"
+msgstr "Papildomas tarpas tarp vaikinio objekto ir jo kaimynų kairėje bei dešinėje, pikseliais"
 
 #: ../gtk/gtktable.c:284
 msgid "Vertical padding"
 msgstr "Vertikalus apvalkalas"
 
 #: ../gtk/gtktable.c:285
-msgid ""
-"Extra space to put between the child and its upper and lower neighbors, in "
-"pixels"
-msgstr ""
-"Papildomas tarpas tarp vaikinio objekto ir jo viršutinių bei apatinių "
-"kaimynų. pikseliais"
+msgid "Extra space to put between the child and its upper and lower neighbors, in pixels"
+msgstr "Papildomas tarpas tarp vaikinio objekto ir jo viršutinių bei apatinių kaimynų. pikseliais"
 
 #: ../gtk/gtktextbuffer.c:203
 msgid "Tag Table"
@@ -6054,8 +6053,7 @@ msgid "Cursor position"
 msgstr "Žymeklio padėtis"
 
 #: ../gtk/gtktextbuffer.c:254
-msgid ""
-"The position of the insert mark (as offset from the beginning of the buffer)"
+msgid "The position of the insert mark (as offset from the beginning of the buffer)"
 msgstr "Įterpimo žymės pozicija (kaip poslinkis nuo buferio pradžios)"
 
 #: ../gtk/gtktextbuffer.c:269
@@ -6063,22 +6061,16 @@ msgid "Copy target list"
 msgstr "Kopijuotinų taikinių sąrašas"
 
 #: ../gtk/gtktextbuffer.c:270
-msgid ""
-"The list of targets this buffer supports for clipboard copying and DND source"
-msgstr ""
-"Šio buferio palaikomų kopijavimui į iškarpinę ir DND šaltinių taikinių "
-"sąrašas"
+msgid "The list of targets this buffer supports for clipboard copying and DND source"
+msgstr "Šio buferio palaikomų kopijavimui į iškarpinę ir DND šaltinių taikinių sąrašas"
 
 #: ../gtk/gtktextbuffer.c:285
 msgid "Paste target list"
 msgstr "Įdėtinų taikinių sąrašas"
 
 #: ../gtk/gtktextbuffer.c:286
-msgid ""
-"The list of targets this buffer supports for clipboard pasting and DND "
-"destination"
-msgstr ""
-"Šio buferio palaikomų kopijavimui į iškarpinę ir DND paskirties sąrašas"
+msgid "The list of targets this buffer supports for clipboard pasting and DND destination"
+msgstr "Šio buferio palaikomų kopijavimui į iškarpinę ir DND paskirties sąrašas"
 
 #: ../gtk/gtktextmark.c:127
 msgid "Mark name"
@@ -6092,338 +6084,340 @@ msgstr "Kairė trauka"
 msgid "Whether the mark has left gravity"
 msgstr "Ar ženklas turi kairę trauką"
 
-#: ../gtk/gtktexttag.c:186
+#: ../gtk/gtktexttag.c:189
 msgid "Tag name"
 msgstr "Žymės pavadinimas"
 
-#: ../gtk/gtktexttag.c:187
+#: ../gtk/gtktexttag.c:190
 msgid "Name used to refer to the text tag. NULL for anonymous tags"
-msgstr ""
-"Pavadinimas naudojamas nurodyti tekstinę žymę. Bevardėms žymėms - NULL."
+msgstr "Pavadinimas naudojamas nurodyti tekstinę žymę. Bevardėms žymėms - NULL."
 
-#: ../gtk/gtktexttag.c:205
-msgid "Background color as a (possibly unallocated) GdkColor"
-msgstr "Fono spalva kaip (greičiausiai nerezervuota) GdkColor"
+#: ../gtk/gtktexttag.c:222
+#| msgid "Background color"
+msgid "Background rgba"
+msgstr "Fono rgba"
 
-#: ../gtk/gtktexttag.c:212
+#: ../gtk/gtktexttag.c:230
 msgid "Background full height"
 msgstr "Pilnas fono aukštis"
 
-#: ../gtk/gtktexttag.c:213
-msgid ""
-"Whether the background color fills the entire line height or only the height "
-"of the tagged characters"
+#: ../gtk/gtktexttag.c:231
+msgid "Whether the background color fills the entire line height or only the height of the tagged characters"
 msgstr "Ar fono spalva užima visą eilutę ar tik lauką su pažymėtais simboliais"
 
-#: ../gtk/gtktexttag.c:229
-msgid "Foreground color as a (possibly unallocated) GdkColor"
-msgstr "Priekinio plano spalva kaip (gal nerezervuota) GdkColor"
+#: ../gtk/gtktexttag.c:261
+#| msgid "Foreground color"
+msgid "Foreground rgba"
+msgstr "Priekinio plano rgba"
 
-#: ../gtk/gtktexttag.c:237
+#: ../gtk/gtktexttag.c:270
 msgid "Text direction, e.g. right-to-left or left-to-right"
 msgstr "Teksto kryptis, pvz, iš dešinės į kairę ar iš kairės į dešinę"
 
-#: ../gtk/gtktexttag.c:286
+#: ../gtk/gtktexttag.c:319
 msgid "Font style as a PangoStyle, e.g. PANGO_STYLE_ITALIC"
 msgstr "Šrifto stilius PangoStyle požymiais, pvz. PANGO_STYLE_ITALIC"
 
-#: ../gtk/gtktexttag.c:295
+#: ../gtk/gtktexttag.c:328
 msgid "Font variant as a PangoVariant, e.g. PANGO_VARIANT_SMALL_CAPS"
 msgstr "Šrifto variacija PangoVariant požymiais, pvz. PANGO_VARIANT_SMALL_CAPS"
 
-#: ../gtk/gtktexttag.c:304
-msgid ""
-"Font weight as an integer, see predefined values in PangoWeight; for "
-"example, PANGO_WEIGHT_BOLD"
-msgstr ""
-"Šrifto storis sveiku skaičiumi, patikrinkite galimas PangoWeight reikšmes; "
-"pvz, PANGO_WEIGHT_BOLD"
+#: ../gtk/gtktexttag.c:337
+msgid "Font weight as an integer, see predefined values in PangoWeight; for example, PANGO_WEIGHT_BOLD"
+msgstr "Šrifto storis sveiku skaičiumi, patikrinkite galimas PangoWeight reikšmes; pvz, PANGO_WEIGHT_BOLD"
 
-#: ../gtk/gtktexttag.c:315
+#: ../gtk/gtktexttag.c:348
 msgid "Font stretch as a PangoStretch, e.g. PANGO_STRETCH_CONDENSED"
 msgstr "Šrifto plotis PangoStretch požymiais, pvz. PANGO_STRETCH_CONDENSED"
 
-#: ../gtk/gtktexttag.c:324
+#: ../gtk/gtktexttag.c:357
 msgid "Font size in Pango units"
 msgstr "Šriftas dydis Pango vienetais"
 
-#: ../gtk/gtktexttag.c:334
-msgid ""
-"Font size as a scale factor relative to the default font size. This properly "
-"adapts to theme changes etc. so is recommended. Pango predefines some scales "
-"such as PANGO_SCALE_X_LARGE"
-msgstr ""
-"Šrifto dydio mastelis lyginant su standartiniu šrifto dydžiu. Ši savybė "
-"prisitaiko prie temos pakeitimo ir t.t. Ji yra naudotina. Pango posistemė "
-"aprašo dalį mastelių kaip pvz. PANGO_SCALE_X_LARGE"
+#: ../gtk/gtktexttag.c:367
+msgid "Font size as a scale factor relative to the default font size. This properly adapts to theme changes etc. so is recommended. Pango predefines some scales such as PANGO_SCALE_X_LARGE"
+msgstr "Šrifto dydio mastelis lyginant su standartiniu šrifto dydžiu. Ši savybė prisitaiko prie temos pakeitimo ir t.t. Ji yra naudotina. Pango posistemė aprašo dalį mastelių kaip pvz. PANGO_SCALE_X_LARGE"
 
-#: ../gtk/gtktexttag.c:354 ../gtk/gtktextview.c:705
+#: ../gtk/gtktexttag.c:387
+#: ../gtk/gtktextview.c:704
 msgid "Left, right, or center justification"
 msgstr "Kairys, dešinys arba vidurinis lygiavimas"
 
-#: ../gtk/gtktexttag.c:373
-msgid ""
-"The language this text is in, as an ISO code. Pango can use this as a hint "
-"when rendering the text. If not set, an appropriate default will be used."
-msgstr ""
-"Kalbos, kuria parašytas šis tekstas, ISO kodas. Pango posistemė gali juo "
-"pasinaudoti išvesdama tekstą. Jeigu nenurodyta, bus naudojama atitinkama "
-"standartinė reikšmė"
+#: ../gtk/gtktexttag.c:406
+msgid "The language this text is in, as an ISO code. Pango can use this as a hint when rendering the text. If not set, an appropriate default will be used."
+msgstr "Kalbos, kuria parašytas šis tekstas, ISO kodas. Pango posistemė gali juo pasinaudoti išvesdama tekstą. Jeigu nenurodyta, bus naudojama atitinkama standartinė reikšmė"
 
-#: ../gtk/gtktexttag.c:380
+#: ../gtk/gtktexttag.c:413
 msgid "Left margin"
 msgstr "Kairė paraštė"
 
-#: ../gtk/gtktexttag.c:381 ../gtk/gtktextview.c:714
+#: ../gtk/gtktexttag.c:414
+#: ../gtk/gtktextview.c:713
 msgid "Width of the left margin in pixels"
 msgstr "Kairės paraštės plotis pikseliais"
 
-#: ../gtk/gtktexttag.c:390
+#: ../gtk/gtktexttag.c:423
 msgid "Right margin"
 msgstr "Dešinė paraštė"
 
-#: ../gtk/gtktexttag.c:391 ../gtk/gtktextview.c:724
+#: ../gtk/gtktexttag.c:424
+#: ../gtk/gtktextview.c:723
 msgid "Width of the right margin in pixels"
 msgstr "Dešinės paraštės plotis pikseliais"
 
-#: ../gtk/gtktexttag.c:401 ../gtk/gtktextview.c:733
+#: ../gtk/gtktexttag.c:434
+#: ../gtk/gtktextview.c:732
 msgid "Indent"
 msgstr "Įtraukti"
 
-#: ../gtk/gtktexttag.c:402 ../gtk/gtktextview.c:734
+#: ../gtk/gtktexttag.c:435
+#: ../gtk/gtktextview.c:733
 msgid "Amount to indent the paragraph, in pixels"
 msgstr "Pastraipos atitraukimo dydis, pikseliais"
 
-#: ../gtk/gtktexttag.c:413
-msgid ""
-"Offset of text above the baseline (below the baseline if rise is negative) "
-"in Pango units"
-msgstr ""
-"Teksto poslinkis virš pagrindo linijos (žemiau, jei poslinkis neigiamas) "
-"Pango vienetais"
+#: ../gtk/gtktexttag.c:446
+msgid "Offset of text above the baseline (below the baseline if rise is negative) in Pango units"
+msgstr "Teksto poslinkis virš pagrindo linijos (žemiau, jei poslinkis neigiamas) Pango vienetais"
 
-#: ../gtk/gtktexttag.c:422
+#: ../gtk/gtktexttag.c:455
 msgid "Pixels above lines"
 msgstr "Taškai virš eilučių"
 
-#: ../gtk/gtktexttag.c:423 ../gtk/gtktextview.c:658
+#: ../gtk/gtktexttag.c:456
+#: ../gtk/gtktextview.c:657
 msgid "Pixels of blank space above paragraphs"
 msgstr "Tuščia erdvė taškais virš pastraipų"
 
-#: ../gtk/gtktexttag.c:432
+#: ../gtk/gtktexttag.c:465
 msgid "Pixels below lines"
 msgstr "Taškai žemiau eilučių"
 
-#: ../gtk/gtktexttag.c:433 ../gtk/gtktextview.c:668
+#: ../gtk/gtktexttag.c:466
+#: ../gtk/gtktextview.c:667
 msgid "Pixels of blank space below paragraphs"
 msgstr "Tuščia erdvė taškais žemiau pastraipų"
 
-#: ../gtk/gtktexttag.c:442
+#: ../gtk/gtktexttag.c:475
 msgid "Pixels inside wrap"
 msgstr "Taškai laužymo viduje"
 
-#: ../gtk/gtktexttag.c:443 ../gtk/gtktextview.c:678
+#: ../gtk/gtktexttag.c:476
+#: ../gtk/gtktextview.c:677
 msgid "Pixels of blank space between wrapped lines in a paragraph"
 msgstr "Taškai sudarantys tarpą tarp laužomų pastraipos eilučių"
 
-#: ../gtk/gtktexttag.c:470 ../gtk/gtktextview.c:696
-msgid ""
-"Whether to wrap lines never, at word boundaries, or at character boundaries"
+#: ../gtk/gtktexttag.c:503
+#: ../gtk/gtktextview.c:695
+msgid "Whether to wrap lines never, at word boundaries, or at character boundaries"
 msgstr "Nelaužyti eilučių, laužyti jas žodžiais ar laužyti jas simboliais"
 
-#: ../gtk/gtktexttag.c:479 ../gtk/gtktextview.c:743
+#: ../gtk/gtktexttag.c:512
+#: ../gtk/gtktextview.c:742
 msgid "Tabs"
 msgstr "Tabai"
 
-#: ../gtk/gtktexttag.c:480 ../gtk/gtktextview.c:744
+#: ../gtk/gtktexttag.c:513
+#: ../gtk/gtktextview.c:743
 msgid "Custom tabs for this text"
 msgstr "Specialūs šio teksto lapai"
 
-#: ../gtk/gtktexttag.c:498
+#: ../gtk/gtktexttag.c:531
 msgid "Invisible"
 msgstr "Nematomas"
 
-#: ../gtk/gtktexttag.c:499
+#: ../gtk/gtktexttag.c:532
 msgid "Whether this text is hidden."
 msgstr "Ar šis tekstas paslėptas."
 
-#: ../gtk/gtktexttag.c:513
+#: ../gtk/gtktexttag.c:546
 msgid "Paragraph background color name"
 msgstr "Pastraipos fono spalvos pavadinimas"
 
-#: ../gtk/gtktexttag.c:514
+#: ../gtk/gtktexttag.c:547
 msgid "Paragraph background color as a string"
 msgstr "Pastraipos fono spalva kaip eilutė"
 
-#: ../gtk/gtktexttag.c:529
+#: ../gtk/gtktexttag.c:561
 msgid "Paragraph background color"
 msgstr "Pastraipos fono spalva"
 
-#: ../gtk/gtktexttag.c:530
-msgid "Paragraph background color as a (possibly unallocated) GdkColor"
-msgstr "Pastraipos fono spalva kaip (greičiausiai nepriskirta) GdkColor"
+#: ../gtk/gtktexttag.c:562
+#| msgid "Paragraph background color as a string"
+msgid "Paragraph background color as a GdkColor"
+msgstr "Pastraipos fono spalva kaip GdkColor"
+
+#: ../gtk/gtktexttag.c:576
+#| msgid "Paragraph background color"
+msgid "Paragraph background rgba"
+msgstr "Pastraipos fono spalva kaip rgba"
+
+#: ../gtk/gtktexttag.c:577
+#| msgid "Paragraph background color as a string"
+msgid "Paragraph background rgba as a GdkRGBA"
+msgstr "Pastraipos fono rgba kaip GdkRGBA"
 
-#: ../gtk/gtktexttag.c:548
+#: ../gtk/gtktexttag.c:595
 msgid "Margin Accumulates"
 msgstr "Paraštė akumuliuojasi"
 
-#: ../gtk/gtktexttag.c:549
+#: ../gtk/gtktexttag.c:596
 msgid "Whether left and right margins accumulate."
 msgstr "Ar kairė ir dešinė paraštės akumuliuojasi."
 
-#: ../gtk/gtktexttag.c:562
+#: ../gtk/gtktexttag.c:609
 msgid "Background full height set"
 msgstr "Nustatytas pilnas fono aukštis"
 
-#: ../gtk/gtktexttag.c:563
+#: ../gtk/gtktexttag.c:610
 msgid "Whether this tag affects background height"
 msgstr "Ar žymė keičia fono aukštį"
 
-#: ../gtk/gtktexttag.c:602
+#: ../gtk/gtktexttag.c:649
 msgid "Justification set"
 msgstr "Nustatytas lygiavimas"
 
-#: ../gtk/gtktexttag.c:603
+#: ../gtk/gtktexttag.c:650
 msgid "Whether this tag affects paragraph justification"
 msgstr "Ar žymė keičia pastraipos lygiavimą"
 
-#: ../gtk/gtktexttag.c:610
+#: ../gtk/gtktexttag.c:657
 msgid "Left margin set"
 msgstr "Nustatyta kairė paraštė"
 
-#: ../gtk/gtktexttag.c:611
+#: ../gtk/gtktexttag.c:658
 msgid "Whether this tag affects the left margin"
 msgstr "Ar žymė keičia kairės paraštės nustatymus"
 
-#: ../gtk/gtktexttag.c:614
+#: ../gtk/gtktexttag.c:661
 msgid "Indent set"
 msgstr "Nustatytas atitraukimas"
 
-#: ../gtk/gtktexttag.c:615
+#: ../gtk/gtktexttag.c:662
 msgid "Whether this tag affects indentation"
 msgstr "Ar žymė keičia atitraukimo nustatymus"
 
-#: ../gtk/gtktexttag.c:622
+#: ../gtk/gtktexttag.c:669
 msgid "Pixels above lines set"
 msgstr "Nustatyti taškai virš eilučių"
 
-#: ../gtk/gtktexttag.c:623 ../gtk/gtktexttag.c:627
+#: ../gtk/gtktexttag.c:670
+#: ../gtk/gtktexttag.c:674
 msgid "Whether this tag affects the number of pixels above lines"
 msgstr "Ar žymė keičia pikselių skaičių virš eilučių"
 
-#: ../gtk/gtktexttag.c:626
+#: ../gtk/gtktexttag.c:673
 msgid "Pixels below lines set"
 msgstr "Nustatyti taškai žemiau eilučių"
 
-#: ../gtk/gtktexttag.c:630
+#: ../gtk/gtktexttag.c:677
 msgid "Pixels inside wrap set"
 msgstr "Nustatyti taškai tarp eilučių"
 
-#: ../gtk/gtktexttag.c:631
+#: ../gtk/gtktexttag.c:678
 msgid "Whether this tag affects the number of pixels between wrapped lines"
 msgstr "Ar žymė keičia pikselių skaičių tarp suskaidytų eilučių"
 
-#: ../gtk/gtktexttag.c:638
+#: ../gtk/gtktexttag.c:685
 msgid "Right margin set"
 msgstr "Nustatyta dešinė paraštė"
 
-#: ../gtk/gtktexttag.c:639
+#: ../gtk/gtktexttag.c:686
 msgid "Whether this tag affects the right margin"
 msgstr "Ar žymė keičia dešinės paraštės nustatymus"
 
-#: ../gtk/gtktexttag.c:646
+#: ../gtk/gtktexttag.c:693
 msgid "Wrap mode set"
 msgstr "Nustatyta laužymo veiksena"
 
-#: ../gtk/gtktexttag.c:647
+#: ../gtk/gtktexttag.c:694
 msgid "Whether this tag affects line wrap mode"
 msgstr "Ar žymė veikia laužymo veikseną"
 
-#: ../gtk/gtktexttag.c:650
+#: ../gtk/gtktexttag.c:697
 msgid "Tabs set"
 msgstr "Nustatyta tabuliacija"
 
-#: ../gtk/gtktexttag.c:651
+#: ../gtk/gtktexttag.c:698
 msgid "Whether this tag affects tabs"
 msgstr "Ar ši žymė veikia tabuliaciją"
 
-#: ../gtk/gtktexttag.c:654
+#: ../gtk/gtktexttag.c:701
 msgid "Invisible set"
 msgstr "Nustatytas nematomumas"
 
-#: ../gtk/gtktexttag.c:655
+#: ../gtk/gtktexttag.c:702
 msgid "Whether this tag affects text visibility"
 msgstr "Ar žymė veikia teksto matomumą"
 
-#: ../gtk/gtktexttag.c:658
+#: ../gtk/gtktexttag.c:705
 msgid "Paragraph background set"
 msgstr "Pastraipos fonas nustatytas"
 
-#: ../gtk/gtktexttag.c:659
+#: ../gtk/gtktexttag.c:706
 msgid "Whether this tag affects the paragraph background color"
 msgstr "Ar ši žyma keičia pastraipos fono spalvą"
 
-#: ../gtk/gtktextview.c:657
+#: ../gtk/gtktextview.c:656
 msgid "Pixels Above Lines"
 msgstr "Pikseliai virš eilučių"
 
-#: ../gtk/gtktextview.c:667
+#: ../gtk/gtktextview.c:666
 msgid "Pixels Below Lines"
 msgstr "Pikseliai žemiau eilučių"
 
-#: ../gtk/gtktextview.c:677
+#: ../gtk/gtktextview.c:676
 msgid "Pixels Inside Wrap"
 msgstr "Pikseliai tarp eilučių"
 
-#: ../gtk/gtktextview.c:695
+#: ../gtk/gtktextview.c:694
 msgid "Wrap Mode"
 msgstr "Laužymo veiksena"
 
-#: ../gtk/gtktextview.c:713
+#: ../gtk/gtktextview.c:712
 msgid "Left Margin"
 msgstr "Kairė paraštė"
 
-#: ../gtk/gtktextview.c:723
+#: ../gtk/gtktextview.c:722
 msgid "Right Margin"
 msgstr "Dešinė paraštė"
 
-#: ../gtk/gtktextview.c:751
+#: ../gtk/gtktextview.c:750
 msgid "Cursor Visible"
 msgstr "Žymeklis matomas"
 
-#: ../gtk/gtktextview.c:752
+#: ../gtk/gtktextview.c:751
 msgid "If the insertion cursor is shown"
 msgstr "Jei įterpimo žymeklis yra rodomas"
 
-#: ../gtk/gtktextview.c:759
+#: ../gtk/gtktextview.c:758
 msgid "Buffer"
 msgstr "Buferis"
 
-#: ../gtk/gtktextview.c:760
+#: ../gtk/gtktextview.c:759
 msgid "The buffer which is displayed"
 msgstr "Išvedamas buferis"
 
-#: ../gtk/gtktextview.c:768
+#: ../gtk/gtktextview.c:767
 msgid "Whether entered text overwrites existing contents"
 msgstr "Ar įvedamas tekstas pakeičia esamas vertes"
 
-#: ../gtk/gtktextview.c:775
+#: ../gtk/gtktextview.c:774
 msgid "Accepts tab"
 msgstr "Leisti tabuliaciją"
 
-#: ../gtk/gtktextview.c:776
+#: ../gtk/gtktextview.c:775
 msgid "Whether Tab will result in a tab character being entered"
 msgstr "Ar Tab klavišas turi įvesti tabuliacijos simbolį"
 
-#: ../gtk/gtktextview.c:811
+#: ../gtk/gtktextview.c:810
 msgid "Error underline color"
 msgstr "Klaidinga pabraukimo spalva"
 
-#: ../gtk/gtktextview.c:812
+#: ../gtk/gtktextview.c:811
 msgid "Color with which to draw error-indication underlines"
 msgstr "Spalva, kuria spalvinti klaidas rodančius pabraukimus"
 
-#: ../gtk/gtkthemingengine.c:249
+#: ../gtk/gtkthemingengine.c:259
 msgid "Theming engine name"
 msgstr "Temų variklio pavadinimas"
 
@@ -6439,95 +6433,100 @@ msgstr "Ar šio veiksmo tarpinės turi atrodyti kaip perjungimo veiksmų tarpin
 msgid "Whether the toggle action should be active"
 msgstr "Ar paspaudimo mygtukas turi būti aktyvus"
 
-#: ../gtk/gtktogglebutton.c:178 ../gtk/gtktoggletoolbutton.c:128
+#: ../gtk/gtktogglebutton.c:179
+#: ../gtk/gtktoggletoolbutton.c:128
 msgid "If the toggle button should be pressed in"
 msgstr "Ar paspaudimo mygtukas turi būti paspaustas"
 
-#: ../gtk/gtktogglebutton.c:186
+#: ../gtk/gtktogglebutton.c:187
 msgid "If the toggle button is in an \"in between\" state"
 msgstr "At paspaudimo mygtukas yra \"tarpinėje\" būsenoje"
 
-#: ../gtk/gtktogglebutton.c:193
+#: ../gtk/gtktogglebutton.c:194
 msgid "Draw Indicator"
 msgstr "Braižymo indikatorius"
 
-#: ../gtk/gtktogglebutton.c:194
+#: ../gtk/gtktogglebutton.c:195
 msgid "If the toggle part of the button is displayed"
 msgstr "Ar rodoma mygtukio perjungimo padėtis"
 
-#: ../gtk/gtktoolbar.c:492 ../gtk/gtktoolpalette.c:1069
+#: ../gtk/gtktoolbar.c:499
+#: ../gtk/gtktoolpalette.c:1038
 msgid "Toolbar Style"
 msgstr "Įrankinės stilius"
 
-#: ../gtk/gtktoolbar.c:493
+#: ../gtk/gtktoolbar.c:500
 msgid "How to draw the toolbar"
 msgstr "Kaip piešti įrankių juostą"
 
-#: ../gtk/gtktoolbar.c:500
+#: ../gtk/gtktoolbar.c:507
 msgid "Show Arrow"
 msgstr "Rodyti rodyklę"
 
-#: ../gtk/gtktoolbar.c:501
+#: ../gtk/gtktoolbar.c:508
 msgid "If an arrow should be shown if the toolbar doesn't fit"
 msgstr "Ar rodyklė turi būti rodoma, jei įrankių juosta netelpa"
 
-#: ../gtk/gtktoolbar.c:522
+#: ../gtk/gtktoolbar.c:529
 msgid "Size of icons in this toolbar"
 msgstr "Piktogramų dydis šioje įrankių juostoje"
 
-#: ../gtk/gtktoolbar.c:537 ../gtk/gtktoolpalette.c:1055
+#: ../gtk/gtktoolbar.c:544
+#: ../gtk/gtktoolpalette.c:1024
 msgid "Icon size set"
 msgstr "Piktogramų dydis nustatytas"
 
-#: ../gtk/gtktoolbar.c:538 ../gtk/gtktoolpalette.c:1056
+#: ../gtk/gtktoolbar.c:545
+#: ../gtk/gtktoolpalette.c:1025
 msgid "Whether the icon-size property has been set"
 msgstr "Ar icon-size savybė nurodyta ar ne"
 
-#: ../gtk/gtktoolbar.c:547
+#: ../gtk/gtktoolbar.c:554
 msgid "Whether the item should receive extra space when the toolbar grows"
 msgstr "Ar elementas turi gauti papildomą erdvę, plečiantis įrankių juostai"
 
-#: ../gtk/gtktoolbar.c:555 ../gtk/gtktoolitemgroup.c:1651
+#: ../gtk/gtktoolbar.c:562
+#: ../gtk/gtktoolitemgroup.c:1646
 msgid "Whether the item should be the same size as other homogeneous items"
 msgstr "Ar elementas turėtų būti to paties dydžio kaip kiti panašūs elementai"
 
-#: ../gtk/gtktoolbar.c:562
+#: ../gtk/gtktoolbar.c:569
 msgid "Spacer size"
 msgstr "Tarpo dydis"
 
-#: ../gtk/gtktoolbar.c:563
+#: ../gtk/gtktoolbar.c:570
 msgid "Size of spacers"
 msgstr "Dydis tarpais"
 
-#: ../gtk/gtktoolbar.c:572
+#: ../gtk/gtktoolbar.c:579
 msgid "Amount of border space between the toolbar shadow and the buttons"
 msgstr "Tarpas tarp įrankių juostos šešėlių ir mygtukų"
 
-#: ../gtk/gtktoolbar.c:580
+#: ../gtk/gtktoolbar.c:587
 msgid "Maximum child expand"
 msgstr "Maksimalus vaikinio elemento išsiplėtimas"
 
-#: ../gtk/gtktoolbar.c:581
+#: ../gtk/gtktoolbar.c:588
 msgid "Maximum amount of space an expandable item will be given"
 msgstr "Maksimali erdvė kiek gali plėstis išplėčiamas elementas"
 
-#: ../gtk/gtktoolbar.c:589
+#: ../gtk/gtktoolbar.c:596
 msgid "Space style"
 msgstr "Tarpo stilius"
 
-#: ../gtk/gtktoolbar.c:590
+#: ../gtk/gtktoolbar.c:597
 msgid "Whether spacers are vertical lines or just blank"
 msgstr "Ar tarpai yra vertikalios linijos ar tik tuščia vieta"
 
-#: ../gtk/gtktoolbar.c:597
+#: ../gtk/gtktoolbar.c:604
 msgid "Button relief"
 msgstr "Mygtuko reljefas"
 
-#: ../gtk/gtktoolbar.c:598
+#: ../gtk/gtktoolbar.c:605
 msgid "Type of bevel around toolbar buttons"
 msgstr "Rėmelis, apie įrankių juostos mygtukus, tipas"
 
-#: ../gtk/gtktoolbar.c:605
+#: ../gtk/gtktoolbar.c:612
 msgid "Style of bevel around the toolbar"
 msgstr "Rėmelio apie įrankių juostą stilius"
 
@@ -6536,12 +6535,8 @@ msgid "Text to show in the item."
 msgstr "Tekstas rodomas ant elemento."
 
 #: ../gtk/gtktoolbutton.c:240
-msgid ""
-"If set, an underline in the label property indicates that the next character "
-"should be used for the mnemonic accelerator key in the overflow menu"
-msgstr ""
-"Jei įjungta, pabraukimo simbolis žymės savybėse rodo, kad po jo esantis "
-"simbolis naudojamas kaip mnemoninis spartusis klavišas"
+msgid "If set, an underline in the label property indicates that the next character should be used for the mnemonic accelerator key in the overflow menu"
+msgstr "Jei įjungta, pabraukimo simbolis žymės savybėse rodo, kad po jo esantis simbolis naudojamas kaip mnemoninis spartusis klavišas"
 
 #: ../gtk/gtktoolbutton.c:247
 msgid "Widget to use as the item label"
@@ -6580,92 +6575,87 @@ msgid "Spacing in pixels between the icon and label"
 msgstr "Protarpis pikseliais tarp piktogramos ir užrašo"
 
 #: ../gtk/gtktoolitem.c:209
-msgid ""
-"Whether the toolbar item is considered important. When TRUE, toolbar buttons "
-"show text in GTK_TOOLBAR_BOTH_HORIZ mode"
-msgstr ""
-"Ar įrankių juostos elementas yra laikomas svarbiu. Jei reikšmė TEIGIAMA, "
-"įrankių juostos mygtukai GTK_TOOLBAR_BOTH_HORIZ veiksenoje rodys tekstą"
+msgid "Whether the toolbar item is considered important. When TRUE, toolbar buttons show text in GTK_TOOLBAR_BOTH_HORIZ mode"
+msgstr "Ar įrankių juostos elementas yra laikomas svarbiu. Jei reikšmė TEIGIAMA, įrankių juostos mygtukai GTK_TOOLBAR_BOTH_HORIZ veiksenoje rodys tekstą"
 
-#: ../gtk/gtktoolitemgroup.c:1598
+#: ../gtk/gtktoolitemgroup.c:1593
 msgid "The human-readable title of this item group"
 msgstr "Žmogui suprantama šios elementų grupės antraštė"
 
-#: ../gtk/gtktoolitemgroup.c:1605
+#: ../gtk/gtktoolitemgroup.c:1600
 msgid "A widget to display in place of the usual label"
 msgstr "Elementas rodomas vietoje įprasto užrašo"
 
-#: ../gtk/gtktoolitemgroup.c:1611
+#: ../gtk/gtktoolitemgroup.c:1606
 msgid "Collapsed"
 msgstr "Suskleista"
 
-#: ../gtk/gtktoolitemgroup.c:1612
+#: ../gtk/gtktoolitemgroup.c:1607
 msgid "Whether the group has been collapsed and items are hidden"
 msgstr "Ar grupė yra suskleista, o joje esantys elementai paslėpti"
 
-#: ../gtk/gtktoolitemgroup.c:1618
+#: ../gtk/gtktoolitemgroup.c:1613
 msgid "ellipsize"
 msgstr "elipsuoti"
 
-#: ../gtk/gtktoolitemgroup.c:1619
+#: ../gtk/gtktoolitemgroup.c:1614
 msgid "Ellipsize for item group headers"
 msgstr "Elipsuoti elementų grupės antraštę"
 
-#: ../gtk/gtktoolitemgroup.c:1625
+#: ../gtk/gtktoolitemgroup.c:1620
 msgid "Header Relief"
 msgstr "Antraštės reljefas"
 
-#: ../gtk/gtktoolitemgroup.c:1626
+#: ../gtk/gtktoolitemgroup.c:1621
 msgid "Relief of the group header button"
 msgstr "Grupės antraštės mygtuko reljefas"
 
-#: ../gtk/gtktoolitemgroup.c:1641
+#: ../gtk/gtktoolitemgroup.c:1636
 msgid "Header Spacing"
 msgstr "Antraštės protarpis"
 
-#: ../gtk/gtktoolitemgroup.c:1642
+#: ../gtk/gtktoolitemgroup.c:1637
 msgid "Spacing between expander arrow and caption"
 msgstr "Tarpas tarp išskleidimo rodyklės ir antraštės"
 
-#: ../gtk/gtktoolitemgroup.c:1658
+#: ../gtk/gtktoolitemgroup.c:1653
 msgid "Whether the item should receive extra space when the group grows"
 msgstr "Ar elementas turi gauti papildomos erdvės, plečiantis grupei"
 
-#: ../gtk/gtktoolitemgroup.c:1665
+#: ../gtk/gtktoolitemgroup.c:1660
 msgid "Whether the item should fill the available space"
 msgstr "Ar elementas turi užpildyti visą jam skirtą vietą"
 
-#: ../gtk/gtktoolitemgroup.c:1671
+#: ../gtk/gtktoolitemgroup.c:1666
 msgid "New Row"
 msgstr "Nauja eilutė"
 
-#: ../gtk/gtktoolitemgroup.c:1672
+#: ../gtk/gtktoolitemgroup.c:1667
 msgid "Whether the item should start a new row"
 msgstr "Ar elementas turėtų pradėti naują eilutę"
 
-#: ../gtk/gtktoolitemgroup.c:1679
+#: ../gtk/gtktoolitemgroup.c:1674
 msgid "Position of the item within this group"
 msgstr "Elemento padėtis šioje grupėje"
 
-#: ../gtk/gtktoolpalette.c:1040
+#: ../gtk/gtktoolpalette.c:1009
 msgid "Size of icons in this tool palette"
 msgstr "Piktogramų dydis šioje įrankinėje"
 
-#: ../gtk/gtktoolpalette.c:1070
+#: ../gtk/gtktoolpalette.c:1039
 msgid "Style of items in the tool palette"
 msgstr "Elementų dydis įrankinėje"
 
-#: ../gtk/gtktoolpalette.c:1086
+#: ../gtk/gtktoolpalette.c:1055
 msgid "Exclusive"
 msgstr "Vienintelė"
 
-#: ../gtk/gtktoolpalette.c:1087
+#: ../gtk/gtktoolpalette.c:1056
 msgid "Whether the item group should be the only expanded at a given time"
 msgstr "Ar išskleidus elementų grupę, kitos turėtų susiskleisti"
 
-#: ../gtk/gtktoolpalette.c:1102
-msgid ""
-"Whether the item group should receive extra space when the palette grows"
+#: ../gtk/gtktoolpalette.c:1071
+msgid "Whether the item group should receive extra space when the palette grows"
 msgstr "Ar elementų grupė turi gauti papildomos erdvės, plečiantis įrankinei"
 
 #: ../gtk/gtktrayicon-x11.c:138
@@ -6825,10 +6815,8 @@ msgid "Hover Expand"
 msgstr "Išplėtimas užvedant"
 
 #: ../gtk/gtktreeview.c:1109
-msgid ""
-"Whether rows should be expanded/collapsed when the pointer moves over them"
-msgstr ""
-"Ar eilutės turėtų būti išplėstos/sutrauktos, kai virš jų užvedamas žymeklis"
+msgid "Whether rows should be expanded/collapsed when the pointer moves over them"
+msgstr "Ar eilutės turėtų būti išplėstos/sutrauktos, kai virš jų užvedamas žymeklis"
 
 #: ../gtk/gtktreeview.c:1123
 msgid "Show Expanders"
@@ -6851,8 +6839,7 @@ msgid "Rubber Banding"
 msgstr "„Guminis rišimas“"
 
 #: ../gtk/gtktreeview.c:1149
-msgid ""
-"Whether to enable selection of multiple items by dragging the mouse pointer"
+msgid "Whether to enable selection of multiple items by dragging the mouse pointer"
 msgstr "Ar įjungti keleto elementų pasirinkimą tempiant pelės žymeklį"
 
 #: ../gtk/gtktreeview.c:1156
@@ -6955,108 +6942,111 @@ msgstr "Medžio linijų raštas"
 msgid "Dash pattern used to draw the tree view lines"
 msgstr "Punktyras medžio laukelio linijoms piešti"
 
-#: ../gtk/gtktreeviewcolumn.c:247
+#: ../gtk/gtktreeviewcolumn.c:249
 msgid "Whether to display the column"
 msgstr "Ar rodyti stulpelį"
 
-#: ../gtk/gtktreeviewcolumn.c:254 ../gtk/gtkwindow.c:647
+#: ../gtk/gtktreeviewcolumn.c:256
+#: ../gtk/gtkwindow.c:648
 msgid "Resizable"
 msgstr "Keičiamo dydžio"
 
-#: ../gtk/gtktreeviewcolumn.c:255
+#: ../gtk/gtktreeviewcolumn.c:257
 msgid "Column is user-resizable"
 msgstr "Vartotojas gali keisti stulpelio plotį"
 
-#: ../gtk/gtktreeviewcolumn.c:263
+#: ../gtk/gtktreeviewcolumn.c:265
+#| msgid "Current width of the column"
+msgid "Current X position of the column"
+msgstr "Dabartinė stulpelio X padėtis"
+
+#: ../gtk/gtktreeviewcolumn.c:275
 msgid "Current width of the column"
 msgstr "Dabartinis stulpelio plotis"
 
-#: ../gtk/gtktreeviewcolumn.c:280
+#: ../gtk/gtktreeviewcolumn.c:292
 msgid "Sizing"
 msgstr "Keičiama"
 
-#: ../gtk/gtktreeviewcolumn.c:281
+#: ../gtk/gtktreeviewcolumn.c:293
 msgid "Resize mode of the column"
 msgstr "Stulpelio dydžio keitimo veiksena"
 
-#: ../gtk/gtktreeviewcolumn.c:289
+#: ../gtk/gtktreeviewcolumn.c:301
 msgid "Fixed Width"
 msgstr "Fiksuoto pločio"
 
-#: ../gtk/gtktreeviewcolumn.c:290
+#: ../gtk/gtktreeviewcolumn.c:302
 msgid "Current fixed width of the column"
 msgstr "Esamas fiksuotas stulpelio plotis"
 
-#: ../gtk/gtktreeviewcolumn.c:300
+#: ../gtk/gtktreeviewcolumn.c:312
 msgid "Minimum allowed width of the column"
 msgstr "Mažiausias leistinas stulpelio plotis"
 
-#: ../gtk/gtktreeviewcolumn.c:309
+#: ../gtk/gtktreeviewcolumn.c:321
 msgid "Maximum Width"
 msgstr "Didžiausias plotis "
 
-#: ../gtk/gtktreeviewcolumn.c:310
+#: ../gtk/gtktreeviewcolumn.c:322
 msgid "Maximum allowed width of the column"
 msgstr "Didžiausias leistinas stulpelio plotis"
 
-#: ../gtk/gtktreeviewcolumn.c:320
+#: ../gtk/gtktreeviewcolumn.c:332
 msgid "Title to appear in column header"
 msgstr "Pavadinimas išvedama stulpelio antraštėje"
 
-#: ../gtk/gtktreeviewcolumn.c:328
+#: ../gtk/gtktreeviewcolumn.c:340
 msgid "Column gets share of extra width allocated to the widget"
 msgstr "Stulpelis gauna papildomos erdvės dalį atsiradusią objekte"
 
-#: ../gtk/gtktreeviewcolumn.c:335
+#: ../gtk/gtktreeviewcolumn.c:347
 msgid "Clickable"
 msgstr "Spragtelimas"
 
-#: ../gtk/gtktreeviewcolumn.c:336
+#: ../gtk/gtktreeviewcolumn.c:348
 msgid "Whether the header can be clicked"
 msgstr "Ar antraštė gali būti spragtelta"
 
-#: ../gtk/gtktreeviewcolumn.c:344
+#: ../gtk/gtktreeviewcolumn.c:356
 msgid "Widget"
 msgstr "Objektas"
 
-#: ../gtk/gtktreeviewcolumn.c:345
+#: ../gtk/gtktreeviewcolumn.c:357
 msgid "Widget to put in column header button instead of column title"
-msgstr ""
-"Objektas patalpinamas stulpelio antraštės mygtuke vietoj stulpelio antraštės"
+msgstr "Objektas patalpinamas stulpelio antraštės mygtuke vietoj stulpelio antraštės"
 
-#: ../gtk/gtktreeviewcolumn.c:353
+#: ../gtk/gtktreeviewcolumn.c:365
 msgid "X Alignment of the column header text or widget"
 msgstr "Stulpelio antraštės teksto ar objekto X lygiavimas"
 
-#: ../gtk/gtktreeviewcolumn.c:363
+#: ../gtk/gtktreeviewcolumn.c:375
 msgid "Whether the column can be reordered around the headers"
 msgstr "Ar gali būti keista stulpelių tvarka antraštėje"
 
-#: ../gtk/gtktreeviewcolumn.c:370
+#: ../gtk/gtktreeviewcolumn.c:382
 msgid "Sort indicator"
 msgstr "Rikiavimo žymė"
 
-#: ../gtk/gtktreeviewcolumn.c:371
+#: ../gtk/gtktreeviewcolumn.c:383
 msgid "Whether to show a sort indicator"
 msgstr "Ar rodyti rūšiavimo indikatorių"
 
-#: ../gtk/gtktreeviewcolumn.c:378
+#: ../gtk/gtktreeviewcolumn.c:390
 msgid "Sort order"
 msgstr "Rikiavimo tvarka"
 
-#: ../gtk/gtktreeviewcolumn.c:379
+#: ../gtk/gtktreeviewcolumn.c:391
 msgid "Sort direction the sort indicator should indicate"
 msgstr "Rūšiavimo kryptis kurią turi rodyti rūšiavimo indikatorius"
 
-#: ../gtk/gtktreeviewcolumn.c:395
+#: ../gtk/gtktreeviewcolumn.c:407
 msgid "Sort column ID"
 msgstr "Stulpelio, pagal kurį rikiuojama, ID"
 
-#: ../gtk/gtktreeviewcolumn.c:396
+#: ../gtk/gtktreeviewcolumn.c:408
 msgid "Logical sort column ID this column sorts on when selected for sorting"
-msgstr ""
-"Loginio rikiavimo stulpelio ID, pagal kurį rikiuojamas šis stulpelis, jį "
-"pažymėjus rikiavimui"
+msgstr "Loginio rikiavimo stulpelio ID, pagal kurį rikiuojamas šis stulpelis, jį pažymėjus rikiavimui"
 
 #: ../gtk/gtkuimanager.c:480
 msgid "Whether tearoff menu items should be added to menus"
@@ -7082,620 +7072,610 @@ msgstr "Naudoti simbolines piktogramas"
 msgid "Whether to use symbolic icons"
 msgstr "Ar naudoti simbolines piktogramas"
 
-#: ../gtk/gtkwidget.c:929
+#: ../gtk/gtkwidget.c:948
 msgid "Widget name"
 msgstr "Objekto vardas"
 
-#: ../gtk/gtkwidget.c:930
+#: ../gtk/gtkwidget.c:949
 msgid "The name of the widget"
 msgstr "Objekto pavadinimas"
 
-#: ../gtk/gtkwidget.c:936
+#: ../gtk/gtkwidget.c:955
 msgid "Parent widget"
 msgstr "Pirminis objektas"
 
-#: ../gtk/gtkwidget.c:937
+#: ../gtk/gtkwidget.c:956
 msgid "The parent widget of this widget. Must be a Container widget"
 msgstr "Šio objekto pirminis objektas. Turi būti konteinerio tipo"
 
-#: ../gtk/gtkwidget.c:944
+#: ../gtk/gtkwidget.c:963
 msgid "Width request"
 msgstr "Pločio užklausa"
 
-#: ../gtk/gtkwidget.c:945
-msgid ""
-"Override for width request of the widget, or -1 if natural request should be "
-"used"
-msgstr ""
-"Blokuoti objekto pločio nustatymą, arba -1 jei jis neturi būti blokuotas"
+#: ../gtk/gtkwidget.c:964
+msgid "Override for width request of the widget, or -1 if natural request should be used"
+msgstr "Blokuoti objekto pločio nustatymą, arba -1 jei jis neturi būti blokuotas"
 
-#: ../gtk/gtkwidget.c:953
+#: ../gtk/gtkwidget.c:972
 msgid "Height request"
 msgstr "Aukščio užklausa"
 
-#: ../gtk/gtkwidget.c:954
-msgid ""
-"Override for height request of the widget, or -1 if natural request should "
-"be used"
-msgstr ""
-"Blokuoti objekto aukščio nustatymą, arba -1, jei jis neturi būti blokuotas"
+#: ../gtk/gtkwidget.c:973
+msgid "Override for height request of the widget, or -1 if natural request should be used"
+msgstr "Blokuoti objekto aukščio nustatymą, arba -1, jei jis neturi būti blokuotas"
 
-#: ../gtk/gtkwidget.c:963
+#: ../gtk/gtkwidget.c:982
 msgid "Whether the widget is visible"
 msgstr "Ar objektas yra matomas"
 
-#: ../gtk/gtkwidget.c:970
+#: ../gtk/gtkwidget.c:989
 msgid "Whether the widget responds to input"
 msgstr "Ar objektas reaguoja į įvedimą"
 
-#: ../gtk/gtkwidget.c:976
+#: ../gtk/gtkwidget.c:995
 msgid "Application paintable"
 msgstr "Programa braižoma"
 
-#: ../gtk/gtkwidget.c:977
+#: ../gtk/gtkwidget.c:996
 msgid "Whether the application will paint directly on the widget"
 msgstr "Ar programa gali braižyti tiesiai ant objekto"
 
-#: ../gtk/gtkwidget.c:983
+#: ../gtk/gtkwidget.c:1002
 msgid "Can focus"
 msgstr "Gali būti aktyvinamas"
 
-#: ../gtk/gtkwidget.c:984
+#: ../gtk/gtkwidget.c:1003
 msgid "Whether the widget can accept the input focus"
 msgstr "Ar objektas gali apdoroti įvedimo aktyvinimą"
 
-#: ../gtk/gtkwidget.c:990
+#: ../gtk/gtkwidget.c:1009
 msgid "Has focus"
 msgstr "Turi aktyvinimą"
 
-#: ../gtk/gtkwidget.c:991
+#: ../gtk/gtkwidget.c:1010
 msgid "Whether the widget has the input focus"
 msgstr "Ar objektas turi įvedimo aktyvinimą"
 
-#: ../gtk/gtkwidget.c:997
+#: ../gtk/gtkwidget.c:1016
 msgid "Is focus"
 msgstr "Yra aktyvinimas"
 
-#: ../gtk/gtkwidget.c:998
+#: ../gtk/gtkwidget.c:1017
 msgid "Whether the widget is the focus widget within the toplevel"
 msgstr "Ar objektas yra aktyvinamas objektas kai yra viršutiniame lygmenyje"
 
-#: ../gtk/gtkwidget.c:1004
+#: ../gtk/gtkwidget.c:1023
 msgid "Can default"
 msgstr "Gali būti įprasta"
 
-#: ../gtk/gtkwidget.c:1005
+#: ../gtk/gtkwidget.c:1024
 msgid "Whether the widget can be the default widget"
 msgstr "Ar objektas gali būti numatytuoju"
 
-#: ../gtk/gtkwidget.c:1011
+#: ../gtk/gtkwidget.c:1030
 msgid "Has default"
 msgstr "Nustatytas numatytas"
 
-#: ../gtk/gtkwidget.c:1012
+#: ../gtk/gtkwidget.c:1031
 msgid "Whether the widget is the default widget"
 msgstr "Ar objektas yra nustatytas kaip numatytas"
 
-#: ../gtk/gtkwidget.c:1018
+#: ../gtk/gtkwidget.c:1037
 msgid "Receives default"
 msgstr "Gauna numatytąjį"
 
-#: ../gtk/gtkwidget.c:1019
+#: ../gtk/gtkwidget.c:1038
 msgid "If TRUE, the widget will receive the default action when it is focused"
 msgstr "Jei TRUE, objektas parinks standartinį veiksmą aktyvinimo metu"
 
-#: ../gtk/gtkwidget.c:1025
+#: ../gtk/gtkwidget.c:1044
 msgid "Composite child"
 msgstr "Susietas vaikinis objektas"
 
-#: ../gtk/gtkwidget.c:1026
+#: ../gtk/gtkwidget.c:1045
 msgid "Whether the widget is part of a composite widget"
 msgstr "Ar objektas yra susieto objekto dalis"
 
-#: ../gtk/gtkwidget.c:1032
+#: ../gtk/gtkwidget.c:1051
 msgid "Style"
 msgstr "Stilius"
 
-#: ../gtk/gtkwidget.c:1033
-msgid ""
-"The style of the widget, which contains information about how it will look "
-"(colors etc)"
-msgstr ""
-"Objekto stilius, kuris saugo infomaciją apie tai kaip objektas turi atrodyti "
-"(spalva ir pan)"
+#: ../gtk/gtkwidget.c:1052
+msgid "The style of the widget, which contains information about how it will look (colors etc)"
+msgstr "Objekto stilius, kuris saugo infomaciją apie tai kaip objektas turi atrodyti (spalva ir pan)"
 
-#: ../gtk/gtkwidget.c:1039
+#: ../gtk/gtkwidget.c:1058
 msgid "Events"
 msgstr "Įvykiai"
 
-#: ../gtk/gtkwidget.c:1040
+#: ../gtk/gtkwidget.c:1059
 msgid "The event mask that decides what kind of GdkEvents this widget gets"
 msgstr "Įvykių kaukė, kuri lemia kokio tipo GdkEvents šis objektas apdoros"
 
-#: ../gtk/gtkwidget.c:1047
+#: ../gtk/gtkwidget.c:1066
 msgid "No show all"
 msgstr "Nerodyti visko"
 
-#: ../gtk/gtkwidget.c:1048
+#: ../gtk/gtkwidget.c:1067
 msgid "Whether gtk_widget_show_all() should not affect this widget"
 msgstr "Ar gtk_widget_show_all() turi nepaveikti šio objekto"
 
-#: ../gtk/gtkwidget.c:1071
+#: ../gtk/gtkwidget.c:1090
 msgid "Whether this widget has a tooltip"
 msgstr "Ar šis objektas turi paaiškinimą"
 
-#: ../gtk/gtkwidget.c:1127
+#: ../gtk/gtkwidget.c:1146
 msgid "Window"
 msgstr "Langas"
 
-#: ../gtk/gtkwidget.c:1128
+#: ../gtk/gtkwidget.c:1147
 msgid "The widget's window if it is realized"
 msgstr "Objekto langas (jei jis realizuotas)"
 
-#: ../gtk/gtkwidget.c:1142
+#: ../gtk/gtkwidget.c:1161
 msgid "Double Buffered"
 msgstr "Dvigubo buferio"
 
-#: ../gtk/gtkwidget.c:1143
+#: ../gtk/gtkwidget.c:1162
 msgid "Whether the widget is double buffered"
 msgstr "Ar elementas turi dvigubą buferį"
 
-#: ../gtk/gtkwidget.c:1158
+#: ../gtk/gtkwidget.c:1177
 msgid "How to position in extra horizontal space"
 msgstr "Kaip pozicionuoti papildomą horizontalų plotą"
 
-#: ../gtk/gtkwidget.c:1174
+#: ../gtk/gtkwidget.c:1193
 msgid "How to position in extra vertical space"
 msgstr "Kaip pozicionuoti papildomą vertikalų plotą"
 
-#: ../gtk/gtkwidget.c:1193
+#: ../gtk/gtkwidget.c:1212
 msgid "Margin on Left"
 msgstr "Kairė paraštė"
 
-#: ../gtk/gtkwidget.c:1194
+#: ../gtk/gtkwidget.c:1213
 msgid "Pixels of extra space on the left side"
 msgstr "Papildomo ploto pikseliai kairėje pusėje"
 
-#: ../gtk/gtkwidget.c:1214
+#: ../gtk/gtkwidget.c:1233
 msgid "Margin on Right"
 msgstr "Paraštė dešinėje"
 
-#: ../gtk/gtkwidget.c:1215
+#: ../gtk/gtkwidget.c:1234
 msgid "Pixels of extra space on the right side"
 msgstr "Tuščia erdvė pikseliais dešinėje pusėje"
 
-#: ../gtk/gtkwidget.c:1235
+#: ../gtk/gtkwidget.c:1254
 msgid "Margin on Top"
 msgstr "Viršutinė paraštė"
 
-#: ../gtk/gtkwidget.c:1236
+#: ../gtk/gtkwidget.c:1255
 msgid "Pixels of extra space on the top side"
 msgstr "Tuščia erdvė pikseliais viršuje"
 
-#: ../gtk/gtkwidget.c:1256
+#: ../gtk/gtkwidget.c:1275
 msgid "Margin on Bottom"
 msgstr "Paraštė apačioje"
 
-#: ../gtk/gtkwidget.c:1257
+#: ../gtk/gtkwidget.c:1276
 msgid "Pixels of extra space on the bottom side"
 msgstr "Papildomo ploto pikseliai apačioje"
 
-#: ../gtk/gtkwidget.c:1274
+#: ../gtk/gtkwidget.c:1293
 msgid "All Margins"
 msgstr "Visos paraštės"
 
-#: ../gtk/gtkwidget.c:1275
+#: ../gtk/gtkwidget.c:1294
 msgid "Pixels of extra space on all four sides"
 msgstr "Papildomo ploto pikseliai visose pusėse"
 
-#: ../gtk/gtkwidget.c:1308
+#: ../gtk/gtkwidget.c:1327
 msgid "Horizontal Expand"
 msgstr "Horizontalus plėtimasis"
 
-#: ../gtk/gtkwidget.c:1309
+#: ../gtk/gtkwidget.c:1328
 msgid "Whether widget wants more horizontal space"
 msgstr "Ar elementas pageidauja daugiau vietos horizontaliai"
 
-#: ../gtk/gtkwidget.c:1323
+#: ../gtk/gtkwidget.c:1342
 msgid "Horizontal Expand Set"
 msgstr "Horizontalaus plėtimosi aibė"
 
-#: ../gtk/gtkwidget.c:1324
+#: ../gtk/gtkwidget.c:1343
 msgid "Whether to use the hexpand property"
 msgstr "Ar naudoti plėtimosi savybę"
 
-#: ../gtk/gtkwidget.c:1338
+#: ../gtk/gtkwidget.c:1357
 msgid "Vertical Expand"
 msgstr "Vertikalus plėtimasis"
 
-#: ../gtk/gtkwidget.c:1339
+#: ../gtk/gtkwidget.c:1358
 msgid "Whether widget wants more vertical space"
 msgstr "Ar elementas pageidauja daugiau vertikalaus ploto"
 
-#: ../gtk/gtkwidget.c:1353
+#: ../gtk/gtkwidget.c:1372
 msgid "Vertical Expand Set"
 msgstr "Vertikalaus plėtimosi aibė"
 
-#: ../gtk/gtkwidget.c:1354
+#: ../gtk/gtkwidget.c:1373
 msgid "Whether to use the vexpand property"
 msgstr "Ar naudoti vertikalaus plėtimosi savybę"
 
-#: ../gtk/gtkwidget.c:1368
+#: ../gtk/gtkwidget.c:1387
 msgid "Expand Both"
 msgstr "Išplėsti abiejomis kryptimis"
 
-#: ../gtk/gtkwidget.c:1369
+#: ../gtk/gtkwidget.c:1388
 msgid "Whether widget wants to expand in both directions"
 msgstr "Ar elementas pageidauja plėstis abiejomis kruptimis"
 
-#: ../gtk/gtkwidget.c:3006
+#: ../gtk/gtkwidget.c:3027
 msgid "Interior Focus"
 msgstr "Vidinis aktyvinimas"
 
-#: ../gtk/gtkwidget.c:3007
+#: ../gtk/gtkwidget.c:3028
 msgid "Whether to draw the focus indicator inside widgets"
 msgstr "Ar rodyti aktyvinimo indikatorių objektų viduje"
 
-#: ../gtk/gtkwidget.c:3013
+#: ../gtk/gtkwidget.c:3034
 msgid "Focus linewidth"
 msgstr "Aktyvinimo eilutės plotis"
 
-#: ../gtk/gtkwidget.c:3014
+#: ../gtk/gtkwidget.c:3035
 msgid "Width, in pixels, of the focus indicator line"
 msgstr "Aktyvinimo indikatoriaus linijos plotis, pikseliais"
 
-#: ../gtk/gtkwidget.c:3020
+#: ../gtk/gtkwidget.c:3041
 msgid "Focus line dash pattern"
 msgstr "Aktyvinti eilutės požymius"
 
-#: ../gtk/gtkwidget.c:3021
+#: ../gtk/gtkwidget.c:3042
 msgid "Dash pattern used to draw the focus indicator"
 msgstr "Brūkšnelių raštas naudojamas aktyvinimo indikatoriaus piešimui"
 
-#: ../gtk/gtkwidget.c:3026
+#: ../gtk/gtkwidget.c:3047
 msgid "Focus padding"
 msgstr "Aktyvinimo apvalkalas"
 
-#: ../gtk/gtkwidget.c:3027
+#: ../gtk/gtkwidget.c:3048
 msgid "Width, in pixels, between focus indicator and the widget 'box'"
-msgstr ""
-"Atstumas tarp aktyvinimo indikatoriaus ir objekto „dėžutės“, pikseliais"
+msgstr "Atstumas tarp aktyvinimo indikatoriaus ir objekto „dėžutės“, pikseliais"
 
-#: ../gtk/gtkwidget.c:3032
+#: ../gtk/gtkwidget.c:3053
 msgid "Cursor color"
 msgstr "Žymeklio spalva"
 
-#: ../gtk/gtkwidget.c:3033
+#: ../gtk/gtkwidget.c:3054
 msgid "Color with which to draw insertion cursor"
 msgstr "Spalva, kuria piešiamas įterpimo žymeklis"
 
-#: ../gtk/gtkwidget.c:3038
+#: ../gtk/gtkwidget.c:3059
 msgid "Secondary cursor color"
 msgstr "Antrinė žymeklio spalva"
 
-#: ../gtk/gtkwidget.c:3039
-msgid ""
-"Color with which to draw the secondary insertion cursor when editing mixed "
-"right-to-left and left-to-right text"
-msgstr ""
-"Spalva, kuria žymimas antras įterpimo žymeklis, kai dirbama maišytame "
-"redagavimo veiksenoje"
+#: ../gtk/gtkwidget.c:3060
+msgid "Color with which to draw the secondary insertion cursor when editing mixed right-to-left and left-to-right text"
+msgstr "Spalva, kuria žymimas antras įterpimo žymeklis, kai dirbama maišytame redagavimo veiksenoje"
 
-#: ../gtk/gtkwidget.c:3044
+#: ../gtk/gtkwidget.c:3065
 msgid "Cursor line aspect ratio"
 msgstr "Žymeklio eilutės mastelis"
 
-#: ../gtk/gtkwidget.c:3045
+#: ../gtk/gtkwidget.c:3066
 msgid "Aspect ratio with which to draw insertion cursor"
 msgstr "Piešiamo įterpimo žymeklio mastelis"
 
-#: ../gtk/gtkwidget.c:3051
+#: ../gtk/gtkwidget.c:3072
 msgid "Window dragging"
 msgstr "Lango tempimas"
 
-#: ../gtk/gtkwidget.c:3052
+#: ../gtk/gtkwidget.c:3073
 msgid "Whether windows can be dragged by clicking on empty areas"
 msgstr "Ar langai gali būti tempiami paspaudžiant tuščiose vietose"
 
-#: ../gtk/gtkwidget.c:3065
+#: ../gtk/gtkwidget.c:3086
 msgid "Unvisited Link Color"
 msgstr "Neaplankytų saitų spalva"
 
-#: ../gtk/gtkwidget.c:3066
+#: ../gtk/gtkwidget.c:3087
 msgid "Color of unvisited links"
 msgstr "Neaplankytų saitų spalva"
 
-#: ../gtk/gtkwidget.c:3079
+#: ../gtk/gtkwidget.c:3100
 msgid "Visited Link Color"
 msgstr "Aplankytų saitų spalva"
 
-#: ../gtk/gtkwidget.c:3080
+#: ../gtk/gtkwidget.c:3101
 msgid "Color of visited links"
 msgstr "Aplankytų saitų spalva"
 
-#: ../gtk/gtkwidget.c:3094
+#: ../gtk/gtkwidget.c:3115
 msgid "Wide Separators"
 msgstr "Platūs skirtukai"
 
-#: ../gtk/gtkwidget.c:3095
-msgid ""
-"Whether separators have configurable width and should be drawn using a box "
-"instead of a line"
-msgstr ""
-"Ar skirtukų plotis konfigūruojamas ir turėtų būti brėžiamas naudojant "
-"dėžutę, vietoje linijos"
+#: ../gtk/gtkwidget.c:3116
+msgid "Whether separators have configurable width and should be drawn using a box instead of a line"
+msgstr "Ar skirtukų plotis konfigūruojamas ir turėtų būti brėžiamas naudojant dėžutę, vietoje linijos"
 
-#: ../gtk/gtkwidget.c:3109
+#: ../gtk/gtkwidget.c:3130
 msgid "Separator Width"
 msgstr "Skirtukų plotis"
 
-#: ../gtk/gtkwidget.c:3110
+#: ../gtk/gtkwidget.c:3131
 msgid "The width of separators if wide-separators is TRUE"
 msgstr "Skirtukų plotis, jei „wide-separators“ reikšmė TEIGIAMA"
 
-#: ../gtk/gtkwidget.c:3124
+#: ../gtk/gtkwidget.c:3145
 msgid "Separator Height"
 msgstr "Skirtukų aukštis"
 
-#: ../gtk/gtkwidget.c:3125
+#: ../gtk/gtkwidget.c:3146
 msgid "The height of separators if \"wide-separators\" is TRUE"
 msgstr "Skirtukų aukštis, jei „wide-separators“ reikšmė TEIGIAMA"
 
-#: ../gtk/gtkwidget.c:3139
+#: ../gtk/gtkwidget.c:3160
 msgid "Horizontal Scroll Arrow Length"
 msgstr "Horizontalios slinkimo rodyklės ilgis"
 
-#: ../gtk/gtkwidget.c:3140
+#: ../gtk/gtkwidget.c:3161
 msgid "The length of horizontal scroll arrows"
 msgstr "Horizontalių slinkimo rodyklių ilgis"
 
-#: ../gtk/gtkwidget.c:3154
+#: ../gtk/gtkwidget.c:3175
 msgid "Vertical Scroll Arrow Length"
 msgstr "Horizontalios slinkimo rodyklės ilgis"
 
-#: ../gtk/gtkwidget.c:3155
+#: ../gtk/gtkwidget.c:3176
 msgid "The length of vertical scroll arrows"
 msgstr "Horizontalių slinkimo rodyklių ilgis"
 
-#: ../gtk/gtkwindow.c:605
+#: ../gtk/gtkwindow.c:606
 msgid "Window Type"
 msgstr "Lango tipas"
 
-#: ../gtk/gtkwindow.c:606
+#: ../gtk/gtkwindow.c:607
 msgid "The type of the window"
 msgstr "Lango tipas"
 
-#: ../gtk/gtkwindow.c:614
+#: ../gtk/gtkwindow.c:615
 msgid "Window Title"
 msgstr "Lango antraštė"
 
-#: ../gtk/gtkwindow.c:615
+#: ../gtk/gtkwindow.c:616
 msgid "The title of the window"
 msgstr "Lango antraštė"
 
-#: ../gtk/gtkwindow.c:622
+#: ../gtk/gtkwindow.c:623
 msgid "Window Role"
 msgstr "Lango paskirtis"
 
-#: ../gtk/gtkwindow.c:623
+#: ../gtk/gtkwindow.c:624
 msgid "Unique identifier for the window to be used when restoring a session"
 msgstr "Unikalus lango identifikatorius, naudojamas atstatant sesiją"
 
-#: ../gtk/gtkwindow.c:639
+#: ../gtk/gtkwindow.c:640
 msgid "Startup ID"
 msgstr "Paleidimo ID"
 
-#: ../gtk/gtkwindow.c:640
+#: ../gtk/gtkwindow.c:641
 msgid "Unique startup identifier for the window used by startup-notification"
-msgstr ""
-"Unikalus lango, kurį naudoja „startup-notification“, paleidimo "
-"identifikatorius"
+msgstr "Unikalus lango, kurį naudoja „startup-notification“, paleidimo identifikatorius"
 
-#: ../gtk/gtkwindow.c:648
+#: ../gtk/gtkwindow.c:649
 msgid "If TRUE, users can resize the window"
 msgstr "Jei TRUE, naudotojai gali keisti lango dydį"
 
-#: ../gtk/gtkwindow.c:655
+#: ../gtk/gtkwindow.c:656
 msgid "Modal"
 msgstr "Modalinis"
 
-#: ../gtk/gtkwindow.c:656
-msgid ""
-"If TRUE, the window is modal (other windows are not usable while this one is "
-"up)"
-msgstr ""
-"Jei TEIGIAMA, langas yra modalinis (kiti langai bus nepasiekiami, kol "
-"atidarytas šis)"
+#: ../gtk/gtkwindow.c:657
+msgid "If TRUE, the window is modal (other windows are not usable while this one is up)"
+msgstr "Jei TEIGIAMA, langas yra modalinis (kiti langai bus nepasiekiami, kol atidarytas šis)"
 
-#: ../gtk/gtkwindow.c:663
+#: ../gtk/gtkwindow.c:664
 msgid "Window Position"
 msgstr "Lango padėtis"
 
-#: ../gtk/gtkwindow.c:664
+#: ../gtk/gtkwindow.c:665
 msgid "The initial position of the window"
 msgstr "Pradinė lango padėtis"
 
-#: ../gtk/gtkwindow.c:672
+#: ../gtk/gtkwindow.c:673
 msgid "Default Width"
 msgstr "Numatytasis plotis"
 
-#: ../gtk/gtkwindow.c:673
+#: ../gtk/gtkwindow.c:674
 msgid "The default width of the window, used when initially showing the window"
 msgstr "Numatytasis lango plotis, naudojamas parodant langą pirmą kartą"
 
-#: ../gtk/gtkwindow.c:682
+#: ../gtk/gtkwindow.c:683
 msgid "Default Height"
 msgstr "Numatytasis aukštis"
 
-#: ../gtk/gtkwindow.c:683
-msgid ""
-"The default height of the window, used when initially showing the window"
+#: ../gtk/gtkwindow.c:684
+msgid "The default height of the window, used when initially showing the window"
 msgstr "Standartinis lango aukštis, naudojamas formuojant langą"
 
-#: ../gtk/gtkwindow.c:692
+#: ../gtk/gtkwindow.c:693
 msgid "Destroy with Parent"
 msgstr "Uždaryti kartu su pirminiu"
 
-#: ../gtk/gtkwindow.c:693
+#: ../gtk/gtkwindow.c:694
 msgid "If this window should be destroyed when the parent is destroyed"
 msgstr "Ar langas turi būti uždarytas, kai uždaromas pirminis langas"
 
-#: ../gtk/gtkwindow.c:701
+#: ../gtk/gtkwindow.c:702
 msgid "Icon for this window"
 msgstr "Šio lango piktograma"
 
-#: ../gtk/gtkwindow.c:707
+#: ../gtk/gtkwindow.c:708
 msgid "Mnemonics Visible"
 msgstr "Mnemonikos matomos"
 
-#: ../gtk/gtkwindow.c:708
+#: ../gtk/gtkwindow.c:709
 msgid "Whether mnemonics are currently visible in this window"
 msgstr "Ar mnemonikos šiuo metu šiame lange yra matomos "
 
-#: ../gtk/gtkwindow.c:724
+#: ../gtk/gtkwindow.c:725
 msgid "Name of the themed icon for this window"
 msgstr "Šio lango temomis keičiamos piktogramos pavadinimas"
 
-#: ../gtk/gtkwindow.c:739
+#: ../gtk/gtkwindow.c:740
 msgid "Is Active"
 msgstr "Yra aktyvus"
 
-#: ../gtk/gtkwindow.c:740
+#: ../gtk/gtkwindow.c:741
 msgid "Whether the toplevel is the current active window"
 msgstr "Ar pagrindinis lygis yra esamas aktyvus langas"
 
-#: ../gtk/gtkwindow.c:747
+#: ../gtk/gtkwindow.c:748
 msgid "Focus in Toplevel"
 msgstr "Aktyvinti viršuje"
 
-#: ../gtk/gtkwindow.c:748
+#: ../gtk/gtkwindow.c:749
 msgid "Whether the input focus is within this GtkWindow"
 msgstr "Ar įvedimo aktyvinimas naudojamas šiame GtkWindow"
 
-#: ../gtk/gtkwindow.c:755
+#: ../gtk/gtkwindow.c:756
 msgid "Type hint"
 msgstr "Tipo užuomina"
 
-#: ../gtk/gtkwindow.c:756
-msgid ""
-"Hint to help the desktop environment understand what kind of window this is "
-"and how to treat it."
-msgstr ""
-"Nuoroda, kuri padeda darbalaukio aplinkai įvertinti kokio tipo langas tai "
-"yra ir kaip su juo elgtis."
+#: ../gtk/gtkwindow.c:757
+msgid "Hint to help the desktop environment understand what kind of window this is and how to treat it."
+msgstr "Nuoroda, kuri padeda darbalaukio aplinkai įvertinti kokio tipo langas tai yra ir kaip su juo elgtis."
 
-#: ../gtk/gtkwindow.c:764
+#: ../gtk/gtkwindow.c:765
 msgid "Skip taskbar"
 msgstr "Nenaudoti užduočių juostos"
 
-#: ../gtk/gtkwindow.c:765
+#: ../gtk/gtkwindow.c:766
 msgid "TRUE if the window should not be in the task bar."
 msgstr "TRUE jei lango neturėtų matytis užduočių juostoje."
 
-#: ../gtk/gtkwindow.c:772
+#: ../gtk/gtkwindow.c:773
 msgid "Skip pager"
 msgstr "Nenaudoti gido"
 
-#: ../gtk/gtkwindow.c:773
+#: ../gtk/gtkwindow.c:774
 msgid "TRUE if the window should not be in the pager."
 msgstr "TEIGIAMA, jei langas neturi būti rodomas gide."
 
-#: ../gtk/gtkwindow.c:780
+#: ../gtk/gtkwindow.c:781
 msgid "Urgent"
 msgstr "Skubu"
 
-#: ../gtk/gtkwindow.c:781
+#: ../gtk/gtkwindow.c:782
 msgid "TRUE if the window should be brought to the user's attention."
 msgstr "TEIGIAMA, jei langas turėtų atkreipti naudotojo dėmesį."
 
-#: ../gtk/gtkwindow.c:795
+#: ../gtk/gtkwindow.c:796
 msgid "Accept focus"
 msgstr "Priimti aktyvinimą"
 
-#: ../gtk/gtkwindow.c:796
+#: ../gtk/gtkwindow.c:797
 msgid "TRUE if the window should receive the input focus."
 msgstr "TEIGIAMA, jei langas turėtų būti aktyvinamas."
 
-#: ../gtk/gtkwindow.c:810
+#: ../gtk/gtkwindow.c:811
 msgid "Focus on map"
 msgstr "Aktyvinti parodžius (map)"
 
-#: ../gtk/gtkwindow.c:811
+#: ../gtk/gtkwindow.c:812
 msgid "TRUE if the window should receive the input focus when mapped."
 msgstr "TEIGIAMA, jei langas turėtų būti aktyvinamas jį parodžius (mapped)."
 
-#: ../gtk/gtkwindow.c:825
+#: ../gtk/gtkwindow.c:826
 msgid "Decorated"
 msgstr "Su dekoracijomis"
 
-#: ../gtk/gtkwindow.c:826
+#: ../gtk/gtkwindow.c:827
 msgid "Whether the window should be decorated by the window manager"
 msgstr "Ar langų tvarkyklė turi apipavidalinti langą"
 
-#: ../gtk/gtkwindow.c:840
+#: ../gtk/gtkwindow.c:841
 msgid "Deletable"
 msgstr "Ištrinamas"
 
-#: ../gtk/gtkwindow.c:841
+#: ../gtk/gtkwindow.c:842
 msgid "Whether the window frame should have a close button"
 msgstr "Ar lango rėmelyje turėtų būti užvėrimo mygtukas"
 
-#: ../gtk/gtkwindow.c:860
+#: ../gtk/gtkwindow.c:861
 msgid "Resize grip"
 msgstr "Dydžio keitimas rankena"
 
-#: ../gtk/gtkwindow.c:861
+#: ../gtk/gtkwindow.c:862
 msgid "Specifies whether the window should have a resize grip"
 msgstr "Nurodo, ar langas turi turėti dydžio keitimo rankeną"
 
-#: ../gtk/gtkwindow.c:875
+#: ../gtk/gtkwindow.c:876
 msgid "Resize grip is visible"
 msgstr "Didžio keitimo valdiklis matomas"
 
-#: ../gtk/gtkwindow.c:876
+#: ../gtk/gtkwindow.c:877
 msgid "Specifies whether the window's resize grip is visible."
 msgstr "Nurodo, ar lango dydžio keitimo rankena yra matoma."
 
-#: ../gtk/gtkwindow.c:892
+#: ../gtk/gtkwindow.c:893
 msgid "Gravity"
 msgstr "Trauka"
 
-#: ../gtk/gtkwindow.c:893
+#: ../gtk/gtkwindow.c:894
 msgid "The window gravity of the window"
 msgstr "Lango traukos dydis"
 
-#: ../gtk/gtkwindow.c:910
+#: ../gtk/gtkwindow.c:911
 msgid "Transient for Window"
 msgstr "Trumpalaikis langui"
 
-#: ../gtk/gtkwindow.c:911
+#: ../gtk/gtkwindow.c:912
 msgid "The transient parent of the dialog"
 msgstr "Trumpalaikis dialogo tėvas"
 
-#: ../gtk/gtkwindow.c:926
+#: ../gtk/gtkwindow.c:927
 msgid "Opacity for Window"
 msgstr "Lango nepermatomumas"
 
-#: ../gtk/gtkwindow.c:927
+#: ../gtk/gtkwindow.c:928
 msgid "The opacity of the window, from 0 to 1"
 msgstr "Lango nepermatomumas, nuo 0 iki 1"
 
-#: ../gtk/gtkwindow.c:937 ../gtk/gtkwindow.c:938
+#: ../gtk/gtkwindow.c:938
+#: ../gtk/gtkwindow.c:939
 msgid "Width of resize grip"
 msgstr "Didžio keitimo valdiklio plotis"
 
-#: ../gtk/gtkwindow.c:943 ../gtk/gtkwindow.c:944
+#: ../gtk/gtkwindow.c:944
+#: ../gtk/gtkwindow.c:945
 msgid "Height of resize grip"
 msgstr "Dydžio keitimo rankenos aukštis"
 
-#: ../gtk/gtkwindow.c:966
+#: ../gtk/gtkwindow.c:967
 msgid "GtkApplication"
 msgstr "GtkApplication"
 
-#: ../gtk/gtkwindow.c:967
+#: ../gtk/gtkwindow.c:968
 msgid "The GtkApplication for the window"
 msgstr "Lango GtkApplication"
 
+#: ../modules/printbackends/cups/gtkprintercups.c:95
+msgid "Color Profile Title"
+msgstr "Spalvų profilio pavadinimas"
+
+#: ../modules/printbackends/cups/gtkprintercups.c:96
+#| msgid "The title of the color selection dialog"
+msgid "The title of the color profile to use"
+msgstr "Naudotino spalvų profilio pavadinimas"
+
+#~ msgid "Background color as a (possibly unallocated) GdkColor"
+#~ msgstr "Fono spalva kaip (greičiausiai nerezervuota) GdkColor"
+
+#~ msgid "Foreground color as a (possibly unallocated) GdkColor"
+#~ msgstr "Priekinio plano spalva kaip (gal nerezervuota) GdkColor"
+
+#~ msgid "Paragraph background color as a (possibly unallocated) GdkColor"
+#~ msgstr "Pastraipos fono spalva kaip (greičiausiai nepriskirta) GdkColor"
+
 #~ msgid "the GdkScreen for the renderer"
 #~ msgstr "GdkScreen atvaizduokliui"
 
index 2afbe8896692bb71ce91df43c138d86b6c8edb64..50be22e3e86f6dc29e53c59d95fb1a964a60c193 100644 (file)
 #
 # Raivis Dejus <orvils@gmail.com>, 2009.
 # Rudolfs <rudolfs.mazurs@gmail.com>, 2011.
+# Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: gtk+-properties.HEAD\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
-"cgi?product=gtk%2b&component=general\n"
-"POT-Creation-Date: 2011-02-02 17:07+0000\n"
-"PO-Revision-Date: 2011-02-07 00:22+0200\n"
-"Last-Translator: Rudolfs <rudolfs.mazurs@gmail.com>\n"
+"cgi?product=gtk%2b&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-07-09 10:54+0000\n"
+"PO-Revision-Date: 2011-07-10 23:27+0300\n"
+"Last-Translator: Rūdofls Mazurs <rudolfs.mazurs@gmail.com>\n"
 "Language-Team: Latvian <locale@laka.lv>\n"
+"Language: lv\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: lv\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n"
 "X-Generator: Lokalize 1.1\n"
-"Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
-"2);\n"
 
 #: ../gdk/gdkapplaunchcontext.c:129 ../gdk/gdkcursor.c:136
 #: ../gdk/gdkdevicemanager.c:146
-#, fuzzy
 msgid "Display"
-msgstr "Noklusētais Displejs"
+msgstr "Displejs"
 
 #: ../gdk/gdkcursor.c:128
-#, fuzzy
 msgid "Cursor type"
-msgstr "Kursora Mirgošana"
+msgstr "Kursora tips"
 
 #: ../gdk/gdkcursor.c:129
-#, fuzzy
 #| msgid "Secondary storage type"
 msgid "Standard cursor type"
-msgstr "Sekundārās glabātuves tips"
+msgstr "Standarta kursora tips"
 
 #: ../gdk/gdkcursor.c:137
-#, fuzzy
 #| msgid "Display the cell"
 msgid "Display of this cursor"
-msgstr "Parādīt šūnu"
+msgstr "Šī kursora attēlojums"
 
 #: ../gdk/gdkdevice.c:111
-#, fuzzy
 msgid "Device Display"
-msgstr "Noklusētais Displejs"
+msgstr "Ierīces displejs"
 
 #: ../gdk/gdkdevice.c:112
-#, fuzzy
 msgid "Display which the device belongs to"
-msgstr "Rādīt šūnu jūtīgumu"
+msgstr "Displejs, kuram pieder ierīce"
 
 #: ../gdk/gdkdevice.c:126
-#, fuzzy
 msgid "Device manager"
-msgstr "Neseno failu pārvaldnieks"
+msgstr "Ierīču pārvaldnieks"
 
 #: ../gdk/gdkdevice.c:127
 msgid "Device manager which the device belongs to"
-msgstr ""
+msgstr "Ierīces pārvaldnieks, kuram pieder ierīce"
 
 #: ../gdk/gdkdevice.c:141 ../gdk/gdkdevice.c:142
-#, fuzzy
 msgid "Device name"
-msgstr "Logdaļas nosaukums"
+msgstr "Ierīces nosaukums"
 
 #: ../gdk/gdkdevice.c:156
-#, fuzzy
 msgid "Device type"
-msgstr "Līknes tips"
+msgstr "Ierīces tips"
 
 #: ../gdk/gdkdevice.c:157
 msgid "Device role in the device manager"
-msgstr ""
+msgstr "Ierīces loma ierīču pārvaldniekā"
 
 #: ../gdk/gdkdevice.c:173
 msgid "Associated device"
-msgstr ""
+msgstr "Asociētā ierīce"
 
 #: ../gdk/gdkdevice.c:174
 msgid "Associated pointer or keyboard with this device"
-msgstr ""
+msgstr "Asociētais rādītājs vai tastatūra šai ierīcei"
 
 #: ../gdk/gdkdevice.c:187
 msgid "Input source"
-msgstr ""
+msgstr "Ievades avots"
 
 #: ../gdk/gdkdevice.c:188
-#, fuzzy
 msgid "Source type for the device"
-msgstr "Koka skata modelis"
+msgstr "Avota tips šai ierīcei"
 
 #: ../gdk/gdkdevice.c:203 ../gdk/gdkdevice.c:204
-#, fuzzy
 msgid "Input mode for the device"
-msgstr "Koka skata modelis"
+msgstr "Ievades režīms ierīcei"
 
 #: ../gdk/gdkdevice.c:219
-#, fuzzy
 msgid "Whether the device has a cursor"
-msgstr "Vai logdaļai ir ievades fokuss"
+msgstr "Vai ierīcei ir kursors"
 
 #: ../gdk/gdkdevice.c:220
-#, fuzzy
 msgid "Whether there is a visible cursor following device motion"
-msgstr "Vai ir iestatīti neredzamais simbols"
+msgstr "Vai ir redzams kursors, kas seko ierīces kustībai"
 
 #: ../gdk/gdkdevice.c:234 ../gdk/gdkdevice.c:235
-#, fuzzy
 msgid "Number of axes in the device"
-msgstr "Lapu skaits dokumentā."
+msgstr "Ašu skaits ierīcē"
 
 #: ../gdk/gdkdevicemanager.c:147
-#, fuzzy
 msgid "Display for the device manager"
-msgstr "Parādīt šūnu"
+msgstr "Ierīču pārvaldnieka displejs"
 
-#: ../gdk/gdkdisplaymanager.c:117
+#: ../gdk/gdkdisplaymanager.c:162
+#: ../gdk/gdkdisplaymanager.c:154
 msgid "Default Display"
-msgstr "Noklusētais Displejs"
+msgstr "Noklusētais displejs"
 
-#: ../gdk/gdkdisplaymanager.c:118
+#: ../gdk/gdkdisplaymanager.c:163
+#: ../gdk/gdkdisplaymanager.c:155
 msgid "The default display for GDK"
 msgstr "Noklusētais GDK displejs"
 
-#: ../gdk/gdkscreen.c:89
+#: ../gdk/gdkscreen.c:92
 msgid "Font options"
-msgstr "Fonta iespējas"
+msgstr "Fonta opcijas"
 
-#: ../gdk/gdkscreen.c:90
+#: ../gdk/gdkscreen.c:93
 msgid "The default font options for the screen"
-msgstr "Noklusētā ekrāna fonta iespējas"
+msgstr "Ekrāna noklusētā fonta opcijas"
 
-#: ../gdk/gdkscreen.c:97
+#: ../gdk/gdkscreen.c:100
 msgid "Font resolution"
 msgstr "Fonta izšķirtspēja"
 
-#: ../gdk/gdkscreen.c:98
+#: ../gdk/gdkscreen.c:101
 msgid "The resolution for fonts on the screen"
 msgstr "Ekrāna fontu izšķirtspēja"
 
-#: ../gdk/gdkwindow.c:373 ../gdk/gdkwindow.c:374
-#, fuzzy
+#: ../gdk/gdkwindow.c:376 ../gdk/gdkwindow.c:377
+#: ../gdk/gdkwindow.c:373
+#: ../gdk/gdkwindow.c:374
 msgid "Cursor"
-msgstr "Kursora Mirgošana"
+msgstr "Kursors"
 
-#: ../gdk/x11/gdkdevice-xi.c:133 ../gdk/x11/gdkdevice-xi.c:134
-#: ../gdk/x11/gdkdevice-xi2.c:124
+#: ../gdk/x11/gdkdevice-xi.c:140 ../gdk/x11/gdkdevice-xi.c:141
+#: ../gdk/x11/gdkdevice-xi2.c:130
 msgid "Device ID"
-msgstr ""
+msgstr "Ierīces ID"
 
-#: ../gdk/x11/gdkdevice-xi2.c:125
+#: ../gdk/x11/gdkdevice-xi2.c:131
 msgid "Device identifier"
-msgstr ""
+msgstr "Ierīces identifikators"
 
-#: ../gdk/x11/gdkdevicemanager-xi2.c:112
-#, fuzzy
+#: ../gdk/x11/gdkdevicemanager-xi2.c:119
+#: ../gdk/x11/gdkdevicemanager-xi2.c:118
 #| msgid "mode"
 msgid "Opcode"
-msgstr "režīms"
+msgstr "Operācijas kods"
 
-#: ../gdk/x11/gdkdevicemanager-xi2.c:113
+#: ../gdk/x11/gdkdevicemanager-xi2.c:120
 msgid "Opcode for XInput2 requests"
-msgstr ""
+msgstr "Operācijas kods XInput2 pieprasījumiem"
 
-#: ../gdk/x11/gdkdevicemanager-xi.c:95
-#, fuzzy
+#: ../gdk/x11/gdkdevicemanager-xi.c:100
 msgid "Event base"
-msgstr "Notikumi"
+msgstr "Notikuma bāze"
 
-#: ../gdk/x11/gdkdevicemanager-xi.c:96
+#: ../gdk/x11/gdkdevicemanager-xi.c:101
 msgid "Event base for XInput events"
-msgstr ""
+msgstr "Notikuma bāze XInput notikumiem"
 
-#: ../gtk/gtkaboutdialog.c:276
+#: ../gtk/gtkaboutdialog.c:275
 msgid "Program name"
 msgstr "Programmas nosaukums"
 
+#: ../gtk/gtkaboutdialog.c:276
 #: ../gtk/gtkaboutdialog.c:277
 msgid ""
 "The name of the program. If this is not set, it defaults to "
 "g_get_application_name()"
 msgstr ""
-"Programmas nosaukums. Ja šis nav uzstadīts, tad pēc noklusējuma "
+"Programmas nosaukums. Ja šis nav iestatīts, tad pēc noklusējuma "
 "g_get_application_name()"
 
-#: ../gtk/gtkaboutdialog.c:291
+#: ../gtk/gtkaboutdialog.c:290
 msgid "Program version"
 msgstr "Programmas versija"
 
+#: ../gtk/gtkaboutdialog.c:291
 #: ../gtk/gtkaboutdialog.c:292
 msgid "The version of the program"
 msgstr "Programmas versija"
 
-#: ../gtk/gtkaboutdialog.c:306
+#: ../gtk/gtkaboutdialog.c:305
 msgid "Copyright string"
 msgstr "Autortiesību virkne"
 
+#: ../gtk/gtkaboutdialog.c:306
 #: ../gtk/gtkaboutdialog.c:307
 msgid "Copyright information for the program"
 msgstr "Programmas autortiesību informācija"
 
-#: ../gtk/gtkaboutdialog.c:324
+#: ../gtk/gtkaboutdialog.c:323
 msgid "Comments string"
 msgstr "Komentārs"
 
+#: ../gtk/gtkaboutdialog.c:324
 #: ../gtk/gtkaboutdialog.c:325
 msgid "Comments about the program"
 msgstr "Komentāri par programmu"
 
-#: ../gtk/gtkaboutdialog.c:375
-#, fuzzy
+#: ../gtk/gtkaboutdialog.c:374
 msgid "License Type"
-msgstr "Ziņojuma Tips"
+msgstr "Licences tips"
 
+#: ../gtk/gtkaboutdialog.c:375
 #: ../gtk/gtkaboutdialog.c:376
-#, fuzzy
 msgid "The license type of the program"
-msgstr "Programmas versija"
+msgstr "Programmas licences tips"
 
-#: ../gtk/gtkaboutdialog.c:392
+#: ../gtk/gtkaboutdialog.c:391
 msgid "Website URL"
 msgstr "Mājas lapas URL"
 
+#: ../gtk/gtkaboutdialog.c:392
 #: ../gtk/gtkaboutdialog.c:393
 msgid "The URL for the link to the website of the program"
-msgstr "URL saitei uz programmas mājas lapu"
+msgstr "URL saitei uz programmas tīmekļa vietni"
 
-#: ../gtk/gtkaboutdialog.c:407
+#: ../gtk/gtkaboutdialog.c:406
 msgid "Website label"
 msgstr "Mājas lapas iezīme"
 
+#: ../gtk/gtkaboutdialog.c:407
 #: ../gtk/gtkaboutdialog.c:408
-#, fuzzy
 #| msgid "The URL for the link to the website of the program"
 msgid "The label for the link to the website of the program"
-msgstr "URL saitei uz programmas mājas lapu"
+msgstr "Iezīme saitei uz programmas tīmekļa vietni"
 
-#: ../gtk/gtkaboutdialog.c:424
+#: ../gtk/gtkaboutdialog.c:423
 msgid "Authors"
 msgstr "Autori"
 
+#: ../gtk/gtkaboutdialog.c:424
 #: ../gtk/gtkaboutdialog.c:425
 msgid "List of authors of the program"
 msgstr "Programmas autoru saraksts"
 
-#: ../gtk/gtkaboutdialog.c:441
+#: ../gtk/gtkaboutdialog.c:440
 msgid "Documenters"
 msgstr "Dokumentētāji"
 
+#: ../gtk/gtkaboutdialog.c:441
 #: ../gtk/gtkaboutdialog.c:442
 msgid "List of people documenting the program"
-msgstr "Cilvēku saraksts, kuri dokumentējuši programmu"
+msgstr "Saraksts ar cilvēkiem, kuri dokumentējuši programmu"
 
-#: ../gtk/gtkaboutdialog.c:458
+#: ../gtk/gtkaboutdialog.c:457
 msgid "Artists"
 msgstr "Izpildītāji"
 
+#: ../gtk/gtkaboutdialog.c:458
 #: ../gtk/gtkaboutdialog.c:459
 msgid "List of people who have contributed artwork to the program"
-msgstr "Cilvēku saraksts, kas ziedojuši mākslas darbus programmai"
+msgstr "Saraksts ar cilvēkiem, kas ziedojuši mākslas darbus programmai"
 
-#: ../gtk/gtkaboutdialog.c:476
+#: ../gtk/gtkaboutdialog.c:475
 msgid "Translator credits"
 msgstr "Tūlkotājs"
 
+#: ../gtk/gtkaboutdialog.c:476
 #: ../gtk/gtkaboutdialog.c:477
-msgid ""
-"Credits to the translators. This string should be marked as translatable"
-msgstr "Tūlkotāju kredīti. Šai virknei vajadzētu būt atzīmētai kā tūlkojamai"
+msgid "Credits to the translators. This string should be marked as translatable"
+msgstr "Atzinība tulkotājiem. Šai virknei vajadzētu būt atzīmētai kā tulkojamai"
 
-#: ../gtk/gtkaboutdialog.c:492
+#: ../gtk/gtkaboutdialog.c:491
 msgid "Logo"
 msgstr "Logo"
 
+#: ../gtk/gtkaboutdialog.c:492
 #: ../gtk/gtkaboutdialog.c:493
 msgid ""
 "A logo for the about box. If this is not set, it defaults to "
 "gtk_window_get_default_icon_list()"
 msgstr ""
-"Tēmas ramja logo. Ja šis nav iestatīts, tas ir noklusēts pēc "
+"Logo 'Par' kastei. Ja šis nav iestatīts, tas ir noklusēts pēc "
 "gtk_window_get_default_icon_list()"
 
-#: ../gtk/gtkaboutdialog.c:508
+#: ../gtk/gtkaboutdialog.c:507
 msgid "Logo Icon Name"
 msgstr "Fonta Nosaukums"
 
+#: ../gtk/gtkaboutdialog.c:508
 #: ../gtk/gtkaboutdialog.c:509
 msgid "A named icon to use as the logo for the about box."
-msgstr "Nosaukta ikona, ko lietot kā logo tēmas rāmī."
+msgstr "Nosaukta ikona, ko lietot kā logo 'Par' kastē."
 
-#: ../gtk/gtkaboutdialog.c:522
+#: ../gtk/gtkaboutdialog.c:521
 msgid "Wrap license"
 msgstr "Apliekt licenci"
 
+#: ../gtk/gtkaboutdialog.c:522
 #: ../gtk/gtkaboutdialog.c:523
 msgid "Whether to wrap the license text."
-msgstr "Vai apliekt licences tekstu."
+msgstr "Vai aplauzt licences tekstu."
 
+#: ../gtk/gtkaccellabel.c:185
 #: ../gtk/gtkaccellabel.c:187
 msgid "Accelerator Closure"
-msgstr "Paātrinātāja Slēgšana"
+msgstr "Paātrinātāja slēgšana"
 
+#: ../gtk/gtkaccellabel.c:186
 #: ../gtk/gtkaccellabel.c:188
 msgid "The closure to be monitored for accelerator changes"
 msgstr "Slēgšana, kura jānovēro pēc paātrinātāja izmaiņām"
 
+#: ../gtk/gtkaccellabel.c:192
 #: ../gtk/gtkaccellabel.c:194
 msgid "Accelerator Widget"
-msgstr "Paātrinātāja Logdaļa"
+msgstr "Paātrinātāja logdaļa"
 
+#: ../gtk/gtkaccellabel.c:193
 #: ../gtk/gtkaccellabel.c:195
 msgid "The widget to be monitored for accelerator changes"
-msgstr "Logdaļa, kura tiks pārraudzīta paātrinātāja izmaiņu dēļ"
+msgstr "Logdaļa, kura jānovēro pēc paātrinātāja izmaiņām"
 
 #: ../gtk/gtkaction.c:222 ../gtk/gtkactiongroup.c:228 ../gtk/gtkprinter.c:125
-#: ../gtk/gtktextmark.c:89 ../gtk/gtkthemingengine.c:248
+#: ../gtk/gtktextmark.c:126 ../gtk/gtkthemingengine.c:258
+#: ../gtk/gtktextmark.c:89
+#: ../gtk/gtkthemingengine.c:248
 msgid "Name"
 msgstr "Nosaukums"
 
@@ -325,23 +328,30 @@ msgstr "Nosaukums"
 msgid "A unique name for the action."
 msgstr "Unikāls darbības nosaukums."
 
-#: ../gtk/gtkaction.c:241 ../gtk/gtkbutton.c:227 ../gtk/gtkexpander.c:287
-#: ../gtk/gtkframe.c:133 ../gtk/gtklabel.c:567 ../gtk/gtkmenuitem.c:328
-#: ../gtk/gtktoolbutton.c:201 ../gtk/gtktoolitemgroup.c:1596
+#: ../gtk/gtkaction.c:241 ../gtk/gtkbutton.c:228 ../gtk/gtkexpander.c:290
+#: ../gtk/gtkframe.c:171 ../gtk/gtklabel.c:744 ../gtk/gtkmenuitem.c:384
+#: ../gtk/gtktoolbutton.c:232 ../gtk/gtktoolitemgroup.c:1592
+#: ../gtk/gtkbutton.c:227
+#: ../gtk/gtkexpander.c:287
+#: ../gtk/gtkframe.c:133
+#: ../gtk/gtklabel.c:567
+#: ../gtk/gtkmenuitem.c:328
+#: ../gtk/gtktoolbutton.c:201
+#: ../gtk/gtktoolitemgroup.c:1596
 msgid "Label"
-msgstr "iezīme"
+msgstr "Iezīme"
 
 #: ../gtk/gtkaction.c:242
 msgid "The label used for menu items and buttons that activate this action."
-msgstr "Etiķete, izmantota izvēlņu pogām, kas iedarbina šo darbību."
+msgstr "Iezīme, ko izmanto izvēļņu vienumiem un pogām, kas aktivizē šo darbību."
 
 #: ../gtk/gtkaction.c:258
 msgid "Short label"
-msgstr "Īsa etiķete"
+msgstr "Īsa iezīme"
 
 #: ../gtk/gtkaction.c:259
 msgid "A shorter label that may be used on toolbar buttons."
-msgstr "Īsāka etiķete, kas var tikt izmantota rīkjoslas pogām."
+msgstr "Īsāka iezīme, kas var tikt izmantota rīkjoslas pogām."
 
 #: ../gtk/gtkaction.c:267
 msgid "Tooltip"
@@ -357,38 +367,55 @@ msgstr "Krājuma ikona"
 
 #: ../gtk/gtkaction.c:284
 msgid "The stock icon displayed in widgets representing this action."
-msgstr "Attēlota krajuma ikona logdaļā, pārstāvot šo darbību."
+msgstr "Krājuma ikona, kas attēlota logdaļā, reprezentējot šo darbību."
 
-#: ../gtk/gtkaction.c:304 ../gtk/gtkstatusicon.c:244
+#: ../gtk/gtkaction.c:304 ../gtk/gtkstatusicon.c:275
+#: ../gtk/gtkstatusicon.c:245
 msgid "GIcon"
-msgstr "GIkona"
+msgstr "GIcon"
 
-#: ../gtk/gtkaction.c:305 ../gtk/gtkcellrendererpixbuf.c:215
-#: ../gtk/gtkimage.c:329 ../gtk/gtkstatusicon.c:245
+#: ../gtk/gtkaction.c:305 ../gtk/gtkcellrendererpixbuf.c:235
+#: ../gtk/gtkimage.c:330 ../gtk/gtkstatusicon.c:276
+#: ../gtk/gtkcellrendererpixbuf.c:215
+#: ../gtk/gtkimage.c:329
+#: ../gtk/gtkstatusicon.c:246
 msgid "The GIcon being displayed"
-msgstr "GIkona, ko attēlo"
-
-#: ../gtk/gtkaction.c:325 ../gtk/gtkcellrendererpixbuf.c:180
-#: ../gtk/gtkimage.c:311 ../gtk/gtkprinter.c:174 ../gtk/gtkstatusicon.c:228
-#: ../gtk/gtkwindow.c:718
+msgstr "GIcon, ko attēlo"
+
+#: ../gtk/gtkaction.c:325 ../gtk/gtkcellrendererpixbuf.c:200
+#: ../gtk/gtkimage.c:312 ../gtk/gtkprinter.c:174 ../gtk/gtkstatusicon.c:259
+#: ../gtk/gtkwindow.c:724
+#: ../gtk/gtkcellrendererpixbuf.c:180
+#: ../gtk/gtkimage.c:311
+#: ../gtk/gtkstatusicon.c:229
+#: ../gtk/gtkwindow.c:722
+#: ../gtk/gtkaction.c:326
+#: ../gtk/gtkcellrendererpixbuf.c:181
+#: ../gtk/gtkstatusicon.c:230
 msgid "Icon Name"
 msgstr "Ikonas nosaukums"
 
-#: ../gtk/gtkaction.c:326 ../gtk/gtkcellrendererpixbuf.c:181
-#: ../gtk/gtkimage.c:312 ../gtk/gtkstatusicon.c:229
+#: ../gtk/gtkaction.c:326 ../gtk/gtkcellrendererpixbuf.c:201
+#: ../gtk/gtkimage.c:313 ../gtk/gtkstatusicon.c:260
+#: ../gtk/gtkcellrendererpixbuf.c:181
+#: ../gtk/gtkimage.c:312
+#: ../gtk/gtkstatusicon.c:230
 msgid "The name of the icon from the icon theme"
 msgstr "Ikonas nosaukums no ikonas tēmas"
 
-#: ../gtk/gtkaction.c:333 ../gtk/gtktoolitem.c:195
+#: ../gtk/gtkaction.c:333 ../gtk/gtktoolitem.c:194
+#: ../gtk/gtktoolitem.c:195
 msgid "Visible when horizontal"
 msgstr "Redzams, kad horizontāls"
 
-#: ../gtk/gtkaction.c:334 ../gtk/gtktoolitem.c:196
+#: ../gtk/gtkaction.c:334 ../gtk/gtktoolitem.c:195
+#: ../gtk/gtkaction.c:333
+#: ../gtk/gtktoolitem.c:196
 msgid ""
 "Whether the toolbar item is visible when the toolbar is in a horizontal "
 "orientation."
 msgstr ""
-"Vai rīkjoslas rīks ir redzams, kad rīkjoslaatrodas horizontālā stāvoklī."
+"Vai rīkjoslas rīks ir redzams, kad rīkjosla atrodas horizontālā stāvoklī."
 
 #: ../gtk/gtkaction.c:349
 msgid "Visible when overflown"
@@ -402,18 +429,21 @@ msgstr ""
 "Kad PATIESS, rīkjoslas rīka starpnieki šai darbībai tiek pārstāvēti "
 "rīkjoslas pārklājuma izvēlnē."
 
-#: ../gtk/gtkaction.c:357 ../gtk/gtktoolitem.c:202
+#: ../gtk/gtkaction.c:357 ../gtk/gtktoolitem.c:201
+#: ../gtk/gtktoolitem.c:202
 msgid "Visible when vertical"
 msgstr "Redzams, kad vertikāls"
 
-#: ../gtk/gtkaction.c:358 ../gtk/gtktoolitem.c:203
+#: ../gtk/gtkaction.c:358 ../gtk/gtktoolitem.c:202
+#: ../gtk/gtkaction.c:357
+#: ../gtk/gtktoolitem.c:203
 msgid ""
 "Whether the toolbar item is visible when the toolbar is in a vertical "
 "orientation."
-msgstr ""
-"Vai rīkjoslas rīks ir redzams, kad rīkjosla atrodas vertikālā stāvoklī."
+msgstr "Vai rīkjoslas rīks ir redzams, kad rīkjosla atrodas vertikālā stāvoklī."
 
-#: ../gtk/gtkaction.c:365 ../gtk/gtktoolitem.c:209
+#: ../gtk/gtkaction.c:365 ../gtk/gtktoolitem.c:208
+#: ../gtk/gtktoolitem.c:209
 msgid "Is important"
 msgstr "Ir svarīgs"
 
@@ -422,7 +452,7 @@ msgid ""
 "Whether the action is considered important. When TRUE, toolitem proxies for "
 "this action show text in GTK_TOOLBAR_BOTH_HORIZ mode."
 msgstr ""
-"Vai darbība tiek uzskatīta par nopietnu. Ja PATIES, rīka instrumenta "
+"Vai darbība tiek uzskatīta par svarīgu. Ja PATIES, rīka instrumenta "
 "starpnieks šai darbībai rāda tekstu GTK_TOOLBAR_BOTH_HORIZ režīmā."
 
 #: ../gtk/gtkaction.c:374
@@ -431,20 +461,24 @@ msgstr "Slēpt, ja tukšs"
 
 #: ../gtk/gtkaction.c:375
 msgid "When TRUE, empty menu proxies for this action are hidden."
-msgstr "Ja PATIESS, tukši izvēlņu starpnieki šai darbībai ir slēpti."
+msgstr "Ja PATIESS, tukši izvēļņu starpnieki šai darbībai ir slēpti."
 
 #: ../gtk/gtkaction.c:381 ../gtk/gtkactiongroup.c:235
-#: ../gtk/gtkcellrenderer.c:288 ../gtk/gtkwidget.c:943
+#: ../gtk/gtkcellrenderer.c:290 ../gtk/gtkwidget.c:988
+#: ../gtk/gtkwidget.c:971
 msgid "Sensitive"
-msgstr "Jūtīga"
+msgstr "Jutīga"
 
 #: ../gtk/gtkaction.c:382
 msgid "Whether the action is enabled."
-msgstr "Vai darbība ir ieslēgta."
+msgstr "Vai darbība ir aktivēta."
 
 #: ../gtk/gtkaction.c:388 ../gtk/gtkactiongroup.c:242
-#: ../gtk/gtkstatusicon.c:279 ../gtk/gtktreeviewcolumn.c:246
-#: ../gtk/gtkwidget.c:936
+#: ../gtk/gtkstatusicon.c:310 ../gtk/gtktreeviewcolumn.c:248
+#: ../gtk/gtkwidget.c:981
+#: ../gtk/gtkstatusicon.c:280
+#: ../gtk/gtktreeviewcolumn.c:246
+#: ../gtk/gtkwidget.c:964
 msgid "Visible"
 msgstr "Redzams"
 
@@ -461,14 +495,16 @@ msgid ""
 "The GtkActionGroup this GtkAction is associated with, or NULL (for internal "
 "use)."
 msgstr ""
-"GtkActionGroup šis GtkAction ir saistīts ar, vai NULLE (iekšējai "
+"GtkActionGroup ar ko šis GtkAction ir saistīts, vai NULLE (iekšējai "
 "izmantošanai)."
 
-#: ../gtk/gtkaction.c:414 ../gtk/gtkimagemenuitem.c:183
+#: ../gtk/gtkaction.c:414 ../gtk/gtkimagemenuitem.c:194
+#: ../gtk/gtkimagemenuitem.c:183
 msgid "Always show image"
 msgstr "Vienmēr rādīt attēlu"
 
-#: ../gtk/gtkaction.c:415 ../gtk/gtkimagemenuitem.c:184
+#: ../gtk/gtkaction.c:415 ../gtk/gtkimagemenuitem.c:195
+#: ../gtk/gtkimagemenuitem.c:184
 msgid "Whether the image will always be shown"
 msgstr "Vai attēls vienmēr būs redzams"
 
@@ -478,32 +514,33 @@ msgstr "Darbības grupas nosaukums."
 
 #: ../gtk/gtkactiongroup.c:236
 msgid "Whether the action group is enabled."
-msgstr "Vai darbības grupa ir ieslēgta."
+msgstr "Vai darbības grupa ir aktivēta."
 
 #: ../gtk/gtkactiongroup.c:243
 msgid "Whether the action group is visible."
-msgstr "Vai darības gurpa ir redzama."
+msgstr "Vai darbības grupa ir redzama."
 
 #: ../gtk/gtkactivatable.c:289
-#, fuzzy
 msgid "Related Action"
-msgstr "Darbība"
+msgstr "Saistīta darbība"
 
 #: ../gtk/gtkactivatable.c:290
 msgid "The action this activatable will activate and receive updates from"
-msgstr ""
+msgstr "Darbība, ko šis aktivējamais aktivēs un no kā saņems atjauninājumus"
 
 #: ../gtk/gtkactivatable.c:312
 msgid "Use Action Appearance"
-msgstr ""
+msgstr "Izmantot darbības izskatu"
 
 #: ../gtk/gtkactivatable.c:313
-#, fuzzy
 msgid "Whether to use the related actions appearance properties"
-msgstr "Vai lietot iezīmes tekstu veidojot krājuma izvēlnes elementus"
+msgstr "Vai lietot saistītās darbību izskata īpašības"
 
-#: ../gtk/gtkadjustment.c:123 ../gtk/gtkcellrendererprogress.c:126
-#: ../gtk/gtkscalebutton.c:217 ../gtk/gtkspinbutton.c:381
+#: ../gtk/gtkadjustment.c:123 ../gtk/gtkcellrendererprogress.c:138
+#: ../gtk/gtkscalebutton.c:218 ../gtk/gtkspinbutton.c:384
+#: ../gtk/gtkcellrendererprogress.c:126
+#: ../gtk/gtkscalebutton.c:217
+#: ../gtk/gtkspinbutton.c:381
 msgid "Value"
 msgstr "Vērtība"
 
@@ -541,7 +578,7 @@ msgstr "Lapas atkāpe"
 
 #: ../gtk/gtkadjustment.c:195
 msgid "The page increment of the adjustment"
-msgstr "Lapas uzstadījuma atkāpe"
+msgstr "Lapas iestatījuma atkāpe"
 
 #: ../gtk/gtkadjustment.c:214
 msgid "Page Size"
@@ -549,31 +586,33 @@ msgstr "Lapas izmērs"
 
 #: ../gtk/gtkadjustment.c:215
 msgid "The page size of the adjustment"
-msgstr "Lapas izmēta iestatījum"
+msgstr "Lapas iestatījuma izmērs"
 
 #: ../gtk/gtkalignment.c:137
 msgid "Horizontal alignment"
-msgstr "Horizontālā centrēšana"
+msgstr "Horizontālā līdzināšana"
 
-#: ../gtk/gtkalignment.c:138 ../gtk/gtkbutton.c:278
+#: ../gtk/gtkalignment.c:138 ../gtk/gtkbutton.c:279
+#: ../gtk/gtkbutton.c:278
 msgid ""
 "Horizontal position of child in available space. 0.0 is left aligned, 1.0 is "
 "right aligned"
 msgstr ""
-"Horizontālā bērna pozīcija pieejamajā telpā. 0.0 ir pa kreisi centrēts, 1.0 "
-"pa labi centrēts"
+"Horizontālā bērna pozīcija pieejamajā telpā. 0.0 ir pa kreisi līdzināts, 1.0 "
+"pa labi līdzināts"
 
 #: ../gtk/gtkalignment.c:147
 msgid "Vertical alignment"
-msgstr "Vertikālā centrāšana"
+msgstr "Vertikālā līdzināšana"
 
-#: ../gtk/gtkalignment.c:148 ../gtk/gtkbutton.c:297
+#: ../gtk/gtkalignment.c:148 ../gtk/gtkbutton.c:298
+#: ../gtk/gtkbutton.c:297
 msgid ""
 "Vertical position of child in available space. 0.0 is top aligned, 1.0 is "
 "bottom aligned"
 msgstr ""
-"Vertikālā bērna pozīcija pieejamajā telpā. 0.0 ir pret augšu centrēts, 1.0 "
-"pret apakšu centrēts"
+"Vertikālā bērna pozīcija pieejamajā telpā. 0.0 ir pret augšu līdzināts, 1.0 "
+"pret apakšu līdzināts"
 
 #: ../gtk/gtkalignment.c:156
 msgid "Horizontal scale"
@@ -631,151 +670,160 @@ msgstr "Labais papildinājums"
 msgid "The padding to insert at the right of the widget."
 msgstr "Papildinājums, ko ievietot labajā logdaļas pusē."
 
-#: ../gtk/gtkappchooserbutton.c:558
+#: ../gtk/gtkappchooserbutton.c:555
 msgid "Include an 'Other...' item"
-msgstr ""
+msgstr "Iekļaut 'Citi...' vienumu"
 
-#: ../gtk/gtkappchooserbutton.c:559
+#: ../gtk/gtkappchooserbutton.c:556
 msgid ""
 "Whether the combobox should include an item that triggers a "
 "GtkAppChooserDialog"
 msgstr ""
+"Vai kombinētajā lodziņā vajadzētu iekļaut vienumu, kas izsauc "
+"GtkAppChooserDialog"
 
-#: ../gtk/gtkappchooserbutton.c:571 ../gtk/gtkappchooserdialog.c:707
-#, fuzzy
+#: ../gtk/gtkappchooserbutton.c:568 ../gtk/gtkappchooserdialog.c:722
 #| msgid "Show Heading"
 msgid "Heading"
-msgstr "Rādīt galveni"
+msgstr "Virsraksts"
 
-#: ../gtk/gtkappchooserbutton.c:572 ../gtk/gtkappchooserdialog.c:708
-#, fuzzy
+#: ../gtk/gtkappchooserbutton.c:569 ../gtk/gtkappchooserdialog.c:723
 #| msgid "The padding to insert at the top of the widget."
 msgid "The text to show at the top of the dialog"
-msgstr "Papildinājums, ko ievietot logdaļas augšpusē."
+msgstr "Teksts, ko rādīt dialoglodziņa augšpusē"
 
+#: ../gtk/gtkappchooser.c:61
 #: ../gtk/gtkappchooser.c:58
-#, fuzzy
 #| msgid "Font style"
 msgid "Content type"
-msgstr "Fonta stils"
+msgstr "Satura tips"
 
+#: ../gtk/gtkappchooser.c:62
 #: ../gtk/gtkappchooser.c:59
-#, fuzzy
 #| msgid "The contents of the entry"
 msgid "The content type used by the open with object"
-msgstr "Ieraksta saturs"
+msgstr "Satura tips, ko izmanto 'atvērt ar objektu'"
 
-#: ../gtk/gtkappchooserdialog.c:693
-#, fuzzy
+#: ../gtk/gtkappchooserdialog.c:708
 #| msgid "Filter"
 msgid "GFile"
-msgstr "Filtrs"
+msgstr "GFile"
 
-#: ../gtk/gtkappchooserdialog.c:694
-#, fuzzy
+#: ../gtk/gtkappchooserdialog.c:709
 #| msgid "The title of the file chooser dialog."
 msgid "The GFile used by the app chooser dialog"
-msgstr "Failu izvēles loga nosaukums."
+msgstr "GFile, ko izmanto lietotnes selektora dialoglodziņš"
 
-#: ../gtk/gtkappchooserwidget.c:1013
+#: ../gtk/gtkappchooserwidget.c:1016
+#: ../gtk/gtkappchooserwidget.c:1015
 msgid "Show default app"
-msgstr ""
+msgstr "Rādīt noklusēto lietotni"
 
-#: ../gtk/gtkappchooserwidget.c:1014
-#, fuzzy
+#: ../gtk/gtkappchooserwidget.c:1017
 #| msgid "Whether the widget is the default widget"
 msgid "Whether the widget should show the default application"
-msgstr "Vai logdaļa ir noklusētā logdaļa"
+msgstr "Vai logdaļai jārāda noklusētā lietotne"
 
-#: ../gtk/gtkappchooserwidget.c:1027
+#: ../gtk/gtkappchooserwidget.c:1030
+#: ../gtk/gtkappchooserwidget.c:1029
 msgid "Show recommended apps"
-msgstr ""
+msgstr "Rādīt ieteicamās lietotnes"
 
-#: ../gtk/gtkappchooserwidget.c:1028
-#, fuzzy
+#: ../gtk/gtkappchooserwidget.c:1031
 #| msgid "Whether images should be shown on buttons"
 msgid "Whether the widget should show recommended applications"
-msgstr "Vai uz pogām rādīt attēlus"
+msgstr "Vai logdaļām vajadzētu rādīt ieteicamās lietotnes"
 
-#: ../gtk/gtkappchooserwidget.c:1041
+#: ../gtk/gtkappchooserwidget.c:1044
+#: ../gtk/gtkappchooserwidget.c:1043
 msgid "Show fallback apps"
-msgstr ""
+msgstr "Rādīt atkāpšanās lietotnes"
 
-#: ../gtk/gtkappchooserwidget.c:1042
-#, fuzzy
+#: ../gtk/gtkappchooserwidget.c:1045
 msgid "Whether the widget should show fallback applications"
-msgstr "Vai visiem bērniem jabūt pēc viena izmēra"
+msgstr "Vai logdaļām vajadzētu rādīt atkāpšanās lietotnes"
 
-#: ../gtk/gtkappchooserwidget.c:1054
-#, fuzzy
+#: ../gtk/gtkappchooserwidget.c:1057
+#: ../gtk/gtkappchooserwidget.c:1056
 #| msgid "Show Tooltips"
 msgid "Show other apps"
-msgstr "Rādīt paskaidres"
+msgstr "Rādīt citas lietotnes"
 
-#: ../gtk/gtkappchooserwidget.c:1055
-#, fuzzy
+#: ../gtk/gtkappchooserwidget.c:1058
 #| msgid "Whether the widget has the input focus"
 msgid "Whether the widget should show other applications"
-msgstr "Vai logdaļai ir ievades fokuss"
+msgstr "Vai logdaļai vajadzētu rādīt citas lietotnes"
 
-#: ../gtk/gtkappchooserwidget.c:1068
-#, fuzzy
+#: ../gtk/gtkappchooserwidget.c:1071
+#: ../gtk/gtkappchooserwidget.c:1070
 #| msgid "Show Day Names"
 msgid "Show all apps"
-msgstr "Rādīt dienu nosaukumus"
+msgstr "Rādīt visas lietotnes"
 
-#: ../gtk/gtkappchooserwidget.c:1069
-#, fuzzy
+#: ../gtk/gtkappchooserwidget.c:1072
 msgid "Whether the widget should show all applications"
-msgstr "Vai visiem bērniem jabūt pēc viena izmēra"
+msgstr "Vai logdaļai vajadzētu rādīt visas lietotnes"
 
-#: ../gtk/gtkappchooserwidget.c:1082
+#: ../gtk/gtkappchooserwidget.c:1085
+#: ../gtk/gtkappchooserwidget.c:1084
 msgid "Widget's default text"
-msgstr ""
+msgstr "Logdaļas noklusētais teksts"
 
-#: ../gtk/gtkappchooserwidget.c:1083
+#: ../gtk/gtkappchooserwidget.c:1086
 msgid "The default text appearing when there are no applications"
-msgstr ""
+msgstr "Noklusētais teksts, kas parādās, kad nav lietotņu"
 
+#: ../gtk/gtkarrow.c:112
 #: ../gtk/gtkarrow.c:110
 msgid "Arrow direction"
 msgstr "Bultas virziens"
 
+#: ../gtk/gtkarrow.c:113
 #: ../gtk/gtkarrow.c:111
 msgid "The direction the arrow should point"
 msgstr "Virziens, kurā bultai būtu jārāda"
 
+#: ../gtk/gtkarrow.c:121
 #: ../gtk/gtkarrow.c:119
 msgid "Arrow shadow"
 msgstr "Bultas ēna"
 
+#: ../gtk/gtkarrow.c:122
 #: ../gtk/gtkarrow.c:120
 msgid "Appearance of the shadow surrounding the arrow"
 msgstr "Ēnas parādīšanās ap bultu"
 
-#: ../gtk/gtkarrow.c:127 ../gtk/gtkmenu.c:796 ../gtk/gtkmenuitem.c:391
+#: ../gtk/gtkarrow.c:129 ../gtk/gtkcombobox.c:986 ../gtk/gtkmenu.c:798
+#: ../gtk/gtkmenuitem.c:447
+#: ../gtk/gtkarrow.c:127
+#: ../gtk/gtkcombobox.c:985
+#: ../gtk/gtkmenu.c:796
+#: ../gtk/gtkmenuitem.c:391
 msgid "Arrow Scaling"
 msgstr "Bultiņu mērogs"
 
+#: ../gtk/gtkarrow.c:130
 #: ../gtk/gtkarrow.c:128
 msgid "Amount of space used up by arrow"
 msgstr "Bultiņu izmantotās vietas daudzums"
 
-#: ../gtk/gtkaspectframe.c:109 ../gtk/gtkwidget.c:1131
+#: ../gtk/gtkaspectframe.c:109 ../gtk/gtkwidget.c:1176
+#: ../gtk/gtkwidget.c:1159
 msgid "Horizontal Alignment"
-msgstr "Horizontālā Centrēšana"
+msgstr "Horizontālā līdzināšana"
 
 #: ../gtk/gtkaspectframe.c:110
 msgid "X alignment of the child"
-msgstr "Bērna X cenrēšana"
+msgstr "Bērna X līdzināšana"
 
-#: ../gtk/gtkaspectframe.c:116 ../gtk/gtkwidget.c:1147
+#: ../gtk/gtkaspectframe.c:116 ../gtk/gtkwidget.c:1192
+#: ../gtk/gtkwidget.c:1175
 msgid "Vertical Alignment"
-msgstr "Vertikālā Centrēšana"
+msgstr "Vertikālā līdzināšana"
 
 #: ../gtk/gtkaspectframe.c:117
 msgid "Y alignment of the child"
-msgstr "Bērna Y centrēšana"
+msgstr "Bērna Y līdzināšana"
 
 #: ../gtk/gtkaspectframe.c:123
 msgid "Ratio"
@@ -783,7 +831,7 @@ msgstr "Proporcija"
 
 #: ../gtk/gtkaspectframe.c:124
 msgid "Aspect ratio if obey_child is FALSE"
-msgstr "Skata proporcija, ja obey_child ir FALSE"
+msgstr "Skata proporcija, ja obey_child ir APLAMS"
 
 #: ../gtk/gtkaspectframe.c:130
 msgid "Obey child"
@@ -791,123 +839,158 @@ msgstr "Pakļauties bērnam"
 
 #: ../gtk/gtkaspectframe.c:131
 msgid "Force aspect ratio to match that of the frame's child"
-msgstr "Likt skata proporcijai sakrist ar to, kas rāmja bērnam"
+msgstr "Likt skata proporcijai sakrist ar to, kas ietvara bērnam"
 
+#: ../gtk/gtkassistant.c:311
 #: ../gtk/gtkassistant.c:326
 msgid "Header Padding"
 msgstr "Galvenes papildinājums"
 
+#: ../gtk/gtkassistant.c:312
 #: ../gtk/gtkassistant.c:327
 msgid "Number of pixels around the header."
 msgstr "Pikseļu skaits ap galveni."
 
+#: ../gtk/gtkassistant.c:319
 #: ../gtk/gtkassistant.c:334
 msgid "Content Padding"
 msgstr "Satura papildinājums"
 
+#: ../gtk/gtkassistant.c:320
 #: ../gtk/gtkassistant.c:335
 msgid "Number of pixels around the content pages."
 msgstr "Pikseļu skaits ap saturs lapām."
 
+#: ../gtk/gtkassistant.c:336
 #: ../gtk/gtkassistant.c:351
 msgid "Page type"
 msgstr "Lapas tips"
 
-#: ../gtk/gtkassistant.c:352
+#: ../gtk/gtkassistant.c:337
 msgid "The type of the assistant page"
-msgstr ""
+msgstr "Palīga lapas tips"
 
+#: ../gtk/gtkassistant.c:352
 #: ../gtk/gtkassistant.c:369
 msgid "Page title"
-msgstr "Lapas virstaksts"
+msgstr "Lapas virsraksts"
 
-#: ../gtk/gtkassistant.c:370
+#: ../gtk/gtkassistant.c:353
 msgid "The title of the assistant page"
 msgstr "Palīga lapas visraksts"
 
+#: ../gtk/gtkassistant.c:370
 #: ../gtk/gtkassistant.c:386
 msgid "Header image"
 msgstr "Galvenes attēls"
 
-#: ../gtk/gtkassistant.c:387
+#: ../gtk/gtkassistant.c:371
 msgid "Header image for the assistant page"
-msgstr ""
+msgstr "Palīga lapas galvenes attēls"
 
+#: ../gtk/gtkassistant.c:387
 #: ../gtk/gtkassistant.c:403
 msgid "Sidebar image"
 msgstr "Sānu joslas attēls"
 
-#: ../gtk/gtkassistant.c:404
+#: ../gtk/gtkassistant.c:388
 msgid "Sidebar image for the assistant page"
-msgstr ""
+msgstr "Palīga lapas sānu joslas attēls"
 
+#: ../gtk/gtkassistant.c:404
 #: ../gtk/gtkassistant.c:419
 msgid "Page complete"
 msgstr "Pabeigta lapa"
 
+#: ../gtk/gtkassistant.c:405
 #: ../gtk/gtkassistant.c:420
 msgid "Whether all required fields on the page have been filled out"
-msgstr ""
+msgstr "Vai visi uz lapas esošie pieprasītie lauki ir aizpildīti"
 
+#: ../gtk/gtkbbox.c:159
 #: ../gtk/gtkbbox.c:152
 msgid "Minimum child width"
 msgstr "Minimālais bērna platums"
 
+#: ../gtk/gtkbbox.c:160
 #: ../gtk/gtkbbox.c:153
 msgid "Minimum width of buttons inside the box"
 msgstr "Minimālais pogu platums kastītē"
 
+#: ../gtk/gtkbbox.c:168
 #: ../gtk/gtkbbox.c:161
 msgid "Minimum child height"
 msgstr "Minimālais bērna augstums"
 
+#: ../gtk/gtkbbox.c:169
 #: ../gtk/gtkbbox.c:162
 msgid "Minimum height of buttons inside the box"
 msgstr "Minimālais pogu augstums kastītē"
 
+#: ../gtk/gtkbbox.c:177
 #: ../gtk/gtkbbox.c:170
 msgid "Child internal width padding"
 msgstr "Bērna iekšējā platuma papildināšana"
 
+#: ../gtk/gtkbbox.c:178
 #: ../gtk/gtkbbox.c:171
 msgid "Amount to increase child's size on either side"
 msgstr "Apmērs, par kādu palielināt bērna izmēru uz katru pusi"
 
+#: ../gtk/gtkbbox.c:186
 #: ../gtk/gtkbbox.c:179
 msgid "Child internal height padding"
 msgstr "Bērna iekšējā augstuma papildināšana"
 
+#: ../gtk/gtkbbox.c:187
 #: ../gtk/gtkbbox.c:180
 msgid "Amount to increase child's size on the top and bottom"
 msgstr "Apmērs, par kādu palielināt bērna izmēru uz augšu un apakšu"
 
+#: ../gtk/gtkbbox.c:195
 #: ../gtk/gtkbbox.c:188
 msgid "Layout style"
 msgstr "Izkārtojuma stils"
 
+#: ../gtk/gtkbbox.c:196
 #: ../gtk/gtkbbox.c:189
-#, fuzzy
 msgid ""
 "How to lay out the buttons in the box. Possible values are: spread, edge, "
 "start and end"
 msgstr ""
-"Kā izkārtot pogas kastītē. Iespējamās vērtības ir default, spread, edge, "
-"start un end"
+"Kā izkārtot pogas kastītē. Iespējamās vērtības ir  spread, edge, start un "
+"end"
 
+#: ../gtk/gtkbbox.c:204
 #: ../gtk/gtkbbox.c:197
 msgid "Secondary"
 msgstr "Sekundārs"
 
+#: ../gtk/gtkbbox.c:205
 #: ../gtk/gtkbbox.c:198
 msgid ""
 "If TRUE, the child appears in a secondary group of children, suitable for, e."
 "g., help buttons"
 msgstr ""
-"Ja TRUE, bērns parādās sekundārajā atvasinājumu grupā, piemērots, piem., "
+"Ja PATIESS, bērns parādās sekundārajā atvasinājumu grupā, piemērots, piem., "
 "palīdzības pogām"
 
-#: ../gtk/gtkbox.c:241 ../gtk/gtkcellareabox.c:318 ../gtk/gtkexpander.c:311
-#: ../gtk/gtkiconview.c:642 ../gtk/gtktreeviewcolumn.c:271
+#: ../gtk/gtkbbox.c:212
+#| msgid "Homogeneous"
+msgid "Non-Homogeneous"
+msgstr "Neviendabīgs"
+
+#: ../gtk/gtkbbox.c:213
+#| msgid "If TRUE, the child can be made smaller than its requisition"
+msgid "If TRUE, the child will not be subject to homogeneous sizing"
+msgstr "Ja PATIESS, bērns netiks pakļauts viendabīgai izmēra maiņai"
+
+#: ../gtk/gtkbox.c:241 ../gtk/gtkcellareabox.c:317 ../gtk/gtkexpander.c:314
+#: ../gtk/gtkiconview.c:644 ../gtk/gtktreeviewcolumn.c:283
+#: ../gtk/gtkcellareabox.c:318
+#: ../gtk/gtkexpander.c:311
+#: ../gtk/gtkiconview.c:645
+#: ../gtk/gtktreeviewcolumn.c:271
 msgid "Spacing"
 msgstr "Atstarpe"
 
@@ -915,26 +998,35 @@ msgstr "Atstarpe"
 msgid "The amount of space between children"
 msgstr "Atstarpes lielums starp bērniem"
 
-#: ../gtk/gtkbox.c:251 ../gtk/gtktable.c:193 ../gtk/gtktoolbar.c:551
+#: ../gtk/gtkbox.c:251 ../gtk/gtktable.c:227 ../gtk/gtktoolbar.c:561
+#: ../gtk/gtktoolitemgroup.c:1645
+#: ../gtk/gtktable.c:193
+#: ../gtk/gtktoolbar.c:551
 #: ../gtk/gtktoolitemgroup.c:1649
 msgid "Homogeneous"
 msgstr "Viendabīgs"
 
 #: ../gtk/gtkbox.c:252
 msgid "Whether the children should all be the same size"
-msgstr "Vai visiem bērniem jabūt pēc viena izmēra"
-
-#: ../gtk/gtkbox.c:272 ../gtk/gtkcellareabox.c:338 ../gtk/gtktoolbar.c:543
-#: ../gtk/gtktoolitemgroup.c:1656 ../gtk/gtktoolpalette.c:1101
+msgstr "Vai visiem bērniem jābūt ar vienādu izmēru"
+
+#: ../gtk/gtkbox.c:272 ../gtk/gtkcellareabox.c:337 ../gtk/gtktoolbar.c:553
+#: ../gtk/gtktoolitemgroup.c:1652 ../gtk/gtktoolpalette.c:1070
+#: ../gtk/gtktreeviewcolumn.c:339
+#: ../gtk/gtkcellareabox.c:338
+#: ../gtk/gtktoolbar.c:543
+#: ../gtk/gtktoolitemgroup.c:1656
+#: ../gtk/gtktoolpalette.c:1101
 #: ../gtk/gtktreeviewcolumn.c:327
 msgid "Expand"
-msgstr "Paplašināt"
+msgstr "Izvērst"
 
 #: ../gtk/gtkbox.c:273
 msgid "Whether the child should receive extra space when the parent grows"
 msgstr "Vai bērnam būtu jāsaņem papildus vieta, ja vecāks pieaug"
 
-#: ../gtk/gtkbox.c:289 ../gtk/gtktoolitemgroup.c:1663
+#: ../gtk/gtkbox.c:289 ../gtk/gtktoolitemgroup.c:1659
+#: ../gtk/gtktoolitemgroup.c:1663
 msgid "Fill"
 msgstr "Aizpildīt"
 
@@ -946,7 +1038,7 @@ msgstr ""
 "Vai papildus piešķirtā vieta bērnam būtu jāpiešķir bērnam vai jālieto kā "
 "papildināšana"
 
-#: ../gtk/gtkbox.c:297 ../gtk/gtktrayicon-x11.c:166
+#: ../gtk/gtkbox.c:297 ../gtk/gtktrayicon-x11.c:169
 msgid "Padding"
 msgstr "Papildināšana"
 
@@ -966,317 +1058,381 @@ msgstr ""
 "GtkPackType norāda, vai bērns pieblīvēts ar atsauci uz sākuma vai beigu "
 "vecāku"
 
-#: ../gtk/gtkbox.c:311 ../gtk/gtknotebook.c:760 ../gtk/gtkpaned.c:326
+#: ../gtk/gtkbox.c:311 ../gtk/gtknotebook.c:771 ../gtk/gtkpaned.c:349
+#: ../gtk/gtktoolitemgroup.c:1673
+#: ../gtk/gtknotebook.c:760
+#: ../gtk/gtkpaned.c:326
 #: ../gtk/gtktoolitemgroup.c:1677
 msgid "Position"
-msgstr "Pozīcija"
+msgstr "Novietojums"
 
-#: ../gtk/gtkbox.c:312 ../gtk/gtknotebook.c:761
+#: ../gtk/gtkbox.c:312 ../gtk/gtknotebook.c:772
+#: ../gtk/gtknotebook.c:761
 msgid "The index of the child in the parent"
 msgstr "Bērna indekss vecākā"
 
 #: ../gtk/gtkbuilder.c:319
 msgid "Translation Domain"
-msgstr "Tulkošanas sfēra"
+msgstr "Tulkošanas domēns"
 
 #: ../gtk/gtkbuilder.c:320
 msgid "The translation domain used by gettext"
-msgstr ""
+msgstr "Tulkošanas domēns, kuru izmanto gettext"
 
-#: ../gtk/gtkbutton.c:228
+#: ../gtk/gtkbutton.c:229
 msgid ""
 "Text of the label widget inside the button, if the button contains a label "
 "widget"
 msgstr "Iezīmes logdaļas teksts pogā, ja poga satur iezīmes logdaļu"
 
-#: ../gtk/gtkbutton.c:235 ../gtk/gtkexpander.c:295 ../gtk/gtklabel.c:588
-#: ../gtk/gtkmenuitem.c:343 ../gtk/gtktoolbutton.c:208
+#: ../gtk/gtkbutton.c:236 ../gtk/gtkexpander.c:298 ../gtk/gtklabel.c:765
+#: ../gtk/gtkmenuitem.c:399 ../gtk/gtktoolbutton.c:239
+#: ../gtk/gtkbutton.c:235
+#: ../gtk/gtkexpander.c:295
+#: ../gtk/gtklabel.c:588
+#: ../gtk/gtkmenuitem.c:343
+#: ../gtk/gtktoolbutton.c:208
+#: ../gtk/gtkexpander.c:296
+#: ../gtk/gtklabel.c:589
+#: ../gtk/gtkmenuitem.c:344
 msgid "Use underline"
 msgstr "Lietot pasvītrošanu"
 
-#: ../gtk/gtkbutton.c:236 ../gtk/gtkexpander.c:296 ../gtk/gtklabel.c:589
+#: ../gtk/gtkbutton.c:237 ../gtk/gtkexpander.c:299 ../gtk/gtklabel.c:766
+#: ../gtk/gtkmenuitem.c:400
+#: ../gtk/gtkbutton.c:236
+#: ../gtk/gtkexpander.c:296
+#: ../gtk/gtklabel.c:589
 #: ../gtk/gtkmenuitem.c:344
 msgid ""
 "If set, an underline in the text indicates the next character should be used "
 "for the mnemonic accelerator key"
 msgstr ""
-"Ja iestādīts, zemsvītra tekstā nozīmē, ka nākamā rakstzīme būtu jālieto kā "
+"Ja iestatīts, zemsvītra tekstā nozīmē, ka nākamā rakstzīme būtu jālieto kā "
 "piekļuves paātrinātāja taustiņš"
 
-#: ../gtk/gtkbutton.c:243 ../gtk/gtkimagemenuitem.c:164
+#: ../gtk/gtkbutton.c:244 ../gtk/gtkimagemenuitem.c:175
+#: ../gtk/gtkbutton.c:243
+#: ../gtk/gtkimagemenuitem.c:164
 msgid "Use stock"
-msgstr "Lietot krajumu"
+msgstr "Lietot krājumu"
 
-#: ../gtk/gtkbutton.c:244
-msgid ""
-"If set, the label is used to pick a stock item instead of being displayed"
+#: ../gtk/gtkbutton.c:245
+msgid "If set, the label is used to pick a stock item instead of being displayed"
 msgstr ""
 "Ja iestatīts, iezīme tiek lietota, lai izvēlētos krājuma priekšmetu tā "
 "vietā, lai parādītu"
 
-#: ../gtk/gtkbutton.c:251 ../gtk/gtkcombobox.c:791
+#: ../gtk/gtkbutton.c:252 ../gtk/gtkcombobox.c:792
+#: ../gtk/gtkfilechooserbutton.c:426
+#: ../gtk/gtkbutton.c:251
+#: ../gtk/gtkcombobox.c:791
 #: ../gtk/gtkfilechooserbutton.c:383
+#: ../gtk/gtkfilechooserbutton.c:384
 msgid "Focus on click"
 msgstr "Fokuss uz klikšķa"
 
-#: ../gtk/gtkbutton.c:252 ../gtk/gtkfilechooserbutton.c:384
+#: ../gtk/gtkbutton.c:253 ../gtk/gtkfilechooserbutton.c:427
+#: ../gtk/gtkbutton.c:252
+#: ../gtk/gtkfilechooserbutton.c:384
 msgid "Whether the button grabs focus when it is clicked with the mouse"
 msgstr "Vai poga sagrābj fokusu, kad uz to klikšķina ar peli"
 
+#: ../gtk/gtkbutton.c:260
 #: ../gtk/gtkbutton.c:259
 msgid "Border relief"
 msgstr "Robežas reljefs"
 
-#: ../gtk/gtkbutton.c:260
+#: ../gtk/gtkbutton.c:261
 msgid "The border relief style"
 msgstr "Robežas reljefa stils"
 
+#: ../gtk/gtkbutton.c:278
+#: ../gtk/gtkalignment.c:138
 #: ../gtk/gtkbutton.c:277
 msgid "Horizontal alignment for child"
 msgstr "Horizontālais bērna izlīdzinājums"
 
+#: ../gtk/gtkbutton.c:297
+#: ../gtk/gtkalignment.c:148
 #: ../gtk/gtkbutton.c:296
 msgid "Vertical alignment for child"
 msgstr "Vertikālais bērna izlīdzinājums"
 
-#: ../gtk/gtkbutton.c:313 ../gtk/gtkimagemenuitem.c:149
+#: ../gtk/gtkbutton.c:314 ../gtk/gtkimagemenuitem.c:160
+#: ../gtk/gtkbutton.c:313
+#: ../gtk/gtkimagemenuitem.c:149
 msgid "Image widget"
 msgstr "Attēla logdaļa"
 
-#: ../gtk/gtkbutton.c:314
+#: ../gtk/gtkbutton.c:315
 msgid "Child widget to appear next to the button text"
 msgstr "Bērna logdaļa, kurai jāparādās blakus pogas tekstam"
 
+#: ../gtk/gtkbutton.c:329
 #: ../gtk/gtkbutton.c:328
 msgid "Image position"
-msgstr "Attēla pozīcija"
+msgstr "Attēla novietojums"
 
-#: ../gtk/gtkbutton.c:329
+#: ../gtk/gtkbutton.c:330
 msgid "The position of the image relative to the text"
 msgstr "Attēla pozīcija attiecībā pret tekstu"
 
+#: ../gtk/gtkbutton.c:450
 #: ../gtk/gtkbutton.c:449
 msgid "Default Spacing"
-msgstr "Noklusētā Atstarpe"
+msgstr "Noklusētā atstarpe"
 
-#: ../gtk/gtkbutton.c:450
-#, fuzzy
+#: ../gtk/gtkbutton.c:451
 msgid "Extra space to add for GTK_CAN_DEFAULT buttons"
-msgstr "Papildus atstarpe, ko pievienot CAN_DEFAULT pogām"
+msgstr "Papildus atstarpe, ko pievienot GTK_CAN_DEFAULT pogām"
 
+#: ../gtk/gtkbutton.c:465
 #: ../gtk/gtkbutton.c:464
 msgid "Default Outside Spacing"
-msgstr "NoklusÄ\93\81 Ä\80\93\81 Atstarpe"
+msgstr "NoklusÄ\93\81 Ä\81\93\81 atstarpe"
 
-#: ../gtk/gtkbutton.c:465
-#, fuzzy
+#: ../gtk/gtkbutton.c:466
 msgid ""
 "Extra space to add for GTK_CAN_DEFAULT buttons that is always drawn outside "
 "the border"
 msgstr ""
-"Papildus vieta, ko atvēlēt CAN_DEFAULT pogām, kas vienmēr tiek zīmētas ārpus "
-"robežas"
+"Papildus vieta, ko atvēlēt GTK_CAN_DEFAULT pogām, kas vienmēr tiek zīmētas "
+"ārpus robežas"
 
+#: ../gtk/gtkbutton.c:471
 #: ../gtk/gtkbutton.c:470
 msgid "Child X Displacement"
-msgstr "Bērna X Pārvietošana"
+msgstr "Bērna X pārvietošana"
 
-#: ../gtk/gtkbutton.c:471
-msgid ""
-"How far in the x direction to move the child when the button is depressed"
+#: ../gtk/gtkbutton.c:472
+msgid "How far in the x direction to move the child when the button is depressed"
 msgstr "Cik tālu x virzienā pārvietot bērnu, kad poga tiek nospiesta"
 
+#: ../gtk/gtkbutton.c:479
 #: ../gtk/gtkbutton.c:478
 msgid "Child Y Displacement"
-msgstr "Bērna Y Pārvietošana"
+msgstr "Bērna Y pārvietošana"
 
-#: ../gtk/gtkbutton.c:479
-msgid ""
-"How far in the y direction to move the child when the button is depressed"
+#: ../gtk/gtkbutton.c:480
+msgid "How far in the y direction to move the child when the button is depressed"
 msgstr "Cik tālu y virzienā pārvietot bērnu, kad poga tiek nospiesta"
 
+#: ../gtk/gtkbutton.c:496
 #: ../gtk/gtkbutton.c:495
 msgid "Displace focus"
 msgstr "Pārvietot fokusu"
 
-#: ../gtk/gtkbutton.c:496
+#: ../gtk/gtkbutton.c:497
 msgid ""
 "Whether the child_displacement_x/_y properties should also affect the focus "
 "rectangle"
 msgstr ""
 "Vai child_displacement_x/_y iespējām vajadzētu iespaidot fokusa taisnstūri"
 
-#: ../gtk/gtkbutton.c:509 ../gtk/gtkentry.c:788 ../gtk/gtkentry.c:1833
+#: ../gtk/gtkbutton.c:510 ../gtk/gtkentry.c:794 ../gtk/gtkentry.c:1869
+#: ../gtk/gtkbutton.c:509
+#: ../gtk/gtkentry.c:787
+#: ../gtk/gtkentry.c:1832
 msgid "Inner Border"
 msgstr "Iekšējā robeža"
 
-#: ../gtk/gtkbutton.c:510
+#: ../gtk/gtkbutton.c:511
 msgid "Border between button edges and child."
-msgstr ""
+msgstr "Robeža starp pogas malām un bērnu."
 
+#: ../gtk/gtkbutton.c:524
 #: ../gtk/gtkbutton.c:523
 msgid "Image spacing"
 msgstr "Attēla atstarpe"
 
-#: ../gtk/gtkbutton.c:524
+#: ../gtk/gtkbutton.c:525
 msgid "Spacing in pixels between the image and label"
 msgstr "Atstarpe pikseļos atarp attēlu un etiķeti"
 
+#: ../gtk/gtkcalendar.c:471
 #: ../gtk/gtkcalendar.c:468
 msgid "Year"
 msgstr "Gads"
 
+#: ../gtk/gtkcalendar.c:472
 #: ../gtk/gtkcalendar.c:469
 msgid "The selected year"
 msgstr "Izvēlētais gads"
 
+#: ../gtk/gtkcalendar.c:485
 #: ../gtk/gtkcalendar.c:482
 msgid "Month"
 msgstr "Mēnesis"
 
+#: ../gtk/gtkcalendar.c:486
 #: ../gtk/gtkcalendar.c:483
 msgid "The selected month (as a number between 0 and 11)"
 msgstr "Izvēlētais mēnesis (kā skaitlis starp 0 un 11)"
 
+#: ../gtk/gtkcalendar.c:500
 #: ../gtk/gtkcalendar.c:497
 msgid "Day"
 msgstr "Diena"
 
+#: ../gtk/gtkcalendar.c:501
 #: ../gtk/gtkcalendar.c:498
 msgid ""
 "The selected day (as a number between 1 and 31, or 0 to unselect the "
 "currently selected day)"
 msgstr ""
-"Izvēlētā diena (kā skaitlis starp 1 un 31, vai 0, lai atstatītu patreiz "
-"ustrādīto dienu)"
+"Izvēlētā diena (kā skaitlis starp 1 un 31, vai 0, lai noņemtu izvēli pašlaik "
+"izvēlētajai dienai)"
 
+#: ../gtk/gtkcalendar.c:515
 #: ../gtk/gtkcalendar.c:512
 msgid "Show Heading"
-msgstr "Rādīt galveni"
+msgstr "Rādīt virsrakstu"
 
+#: ../gtk/gtkcalendar.c:516
 #: ../gtk/gtkcalendar.c:513
 msgid "If TRUE, a heading is displayed"
-msgstr "Ja PATIESS, tiek rādīta galvene"
+msgstr "Ja PATIESS, tiek rādīts virsraksts"
 
+#: ../gtk/gtkcalendar.c:530
 #: ../gtk/gtkcalendar.c:527
 msgid "Show Day Names"
 msgstr "Rādīt dienu nosaukumus"
 
+#: ../gtk/gtkcalendar.c:531
 #: ../gtk/gtkcalendar.c:528
 msgid "If TRUE, day names are displayed"
 msgstr "Ja PATIESS, tiek rādīti dienu nosaukumi"
 
+#: ../gtk/gtkcalendar.c:544
 #: ../gtk/gtkcalendar.c:541
 msgid "No Month Change"
 msgstr "Nevar mainīt mēnesi"
 
+#: ../gtk/gtkcalendar.c:545
 #: ../gtk/gtkcalendar.c:542
 msgid "If TRUE, the selected month cannot be changed"
-msgstr "Ja APTIESS, izvēlētais mēnesis nevar tikt mainīts"
+msgstr "Ja PATIESS, izvēlētais mēnesis nevar tikt mainīts"
 
+#: ../gtk/gtkcalendar.c:559
 #: ../gtk/gtkcalendar.c:556
 msgid "Show Week Numbers"
 msgstr "Rādīt nedēļu numurus"
 
+#: ../gtk/gtkcalendar.c:560
 #: ../gtk/gtkcalendar.c:557
 msgid "If TRUE, week numbers are displayed"
 msgstr "Ja PATIESS, tiek attēloti nedēļu numuri"
 
+#: ../gtk/gtkcalendar.c:575
 #: ../gtk/gtkcalendar.c:572
 msgid "Details Width"
 msgstr "Papildus informācijas platums"
 
+#: ../gtk/gtkcalendar.c:576
 #: ../gtk/gtkcalendar.c:573
 msgid "Details width in characters"
-msgstr "Papildus informācijas platums rakszīmēs"
+msgstr "Papildus informācijas platums rakstzīmēs"
 
+#: ../gtk/gtkcalendar.c:591
 #: ../gtk/gtkcalendar.c:588
 msgid "Details Height"
 msgstr "Papildus informācijas augstums"
 
+#: ../gtk/gtkcalendar.c:592
 #: ../gtk/gtkcalendar.c:589
 msgid "Details height in rows"
 msgstr "Papildus informācijas augstums rindās"
 
+#: ../gtk/gtkcalendar.c:608
 #: ../gtk/gtkcalendar.c:605
 msgid "Show Details"
 msgstr "Rādīt papildus informāciju"
 
+#: ../gtk/gtkcalendar.c:609
 #: ../gtk/gtkcalendar.c:606
 msgid "If TRUE, details are shown"
 msgstr "Ja PATIESS, tiks rādīta papildus informācija"
 
+#: ../gtk/gtkcalendar.c:621
 #: ../gtk/gtkcalendar.c:618
-#, fuzzy
 msgid "Inner border"
 msgstr "Iekšējā robeža"
 
+#: ../gtk/gtkcalendar.c:622
 #: ../gtk/gtkcalendar.c:619
-#, fuzzy
 msgid "Inner border space"
-msgstr "Iekšējā robeža"
+msgstr "Iekšējās robežas atstarpe"
 
+#: ../gtk/gtkcalendar.c:633
 #: ../gtk/gtkcalendar.c:630
-#, fuzzy
 msgid "Vertical separation"
-msgstr "Vertikālās iespējas"
+msgstr "Vertikālā atdalīšana"
 
+#: ../gtk/gtkcalendar.c:634
 #: ../gtk/gtkcalendar.c:631
-#, fuzzy
 msgid "Space between day headers and main area"
-msgstr "Atstarpes ap izvērsēja bultu"
+msgstr "Atstarpe starp galveni un galveno laukumu"
 
+#: ../gtk/gtkcalendar.c:645
 #: ../gtk/gtkcalendar.c:642
-#, fuzzy
 msgid "Horizontal separation"
-msgstr "Horizontālās iespējas"
+msgstr "Horizontālā atdalīšana"
 
+#: ../gtk/gtkcalendar.c:646
 #: ../gtk/gtkcalendar.c:643
-#, fuzzy
 msgid "Space between week headers and main area"
-msgstr "Atstarpe starp elementiem un galveno loga apgabalu"
-
-#: ../gtk/gtkcellareabox.c:319 ../gtk/gtktreeviewcolumn.c:272
+msgstr "Atstarpe starp nedēļas galvenēm un galveno laukumu"
+
+#: ../gtk/gtkcellareabox.c:318 ../gtk/gtktreeviewcolumn.c:284
+#: ../gtk/gtkbox.c:241
+#: ../gtk/gtkexpander.c:311
+#: ../gtk/gtkiconview.c:645
+#: ../gtk/gtktreeviewcolumn.c:271
+#: ../gtk/gtkcellareabox.c:319
+#: ../gtk/gtktreeviewcolumn.c:272
 msgid "Space which is inserted between cells"
-msgstr "Laukums, kas ievietots starp šūnām"
+msgstr "Atstarpe, kas ievietota starp šūnām"
 
+#: ../gtk/gtkcellareabox.c:338
+#: ../gtk/gtkbox.c:272
+#: ../gtk/gtktoolbar.c:543
+#: ../gtk/gtktoolitemgroup.c:1656
+#: ../gtk/gtktoolpalette.c:1101
+#: ../gtk/gtktreeviewcolumn.c:327
 #: ../gtk/gtkcellareabox.c:339
-#, fuzzy
 #| msgid "Whether the widget responds to input"
 msgid "Whether the cell expands"
-msgstr "Vai logdaļa atbild uz ievadi"
+msgstr "Vai šūna izvēršas"
 
-#: ../gtk/gtkcellareabox.c:354
-#, fuzzy
+#: ../gtk/gtkcellareabox.c:353
 #| msgid "xalign"
 msgid "Align"
-msgstr "xcentr"
+msgstr "Līdzināt"
 
+#: ../gtk/gtkcellareabox.c:354
 #: ../gtk/gtkcellareabox.c:355
-#, fuzzy
 msgid "Whether cell should align with adjacent rows"
-msgstr "Vai izvēlnes priekšmetu rādīt ar numuru"
+msgstr "Vai šūnai vajadzētu līdzināties ar blakus rindām"
 
-#: ../gtk/gtkcellareabox.c:371
-#, fuzzy
+#: ../gtk/gtkcellareabox.c:370
 #| msgid "Pixel size"
 msgid "Fixed Size"
-msgstr "Pikseļu izmērs"
+msgstr "Fiksēts izmērs"
 
+#: ../gtk/gtkcellareabox.c:371
 #: ../gtk/gtkcellareabox.c:372
-#, fuzzy
 #| msgid "Whether the children should all be the same size"
 msgid "Whether cells should be the same size in all rows"
-msgstr "Vai visiem bērniem jabūt pēc viena izmēra"
+msgstr "Vai šūnām jābūt ar tādu pašu izmēru kā visām rindām"
 
-#: ../gtk/gtkcellareabox.c:388
-#, fuzzy
+#: ../gtk/gtkcellareabox.c:387
 #| msgid "Pack type"
 msgid "Pack Type"
 msgstr "Vienības tips"
 
+#: ../gtk/gtkcellareabox.c:388
 #: ../gtk/gtkcellareabox.c:389
-#, fuzzy
 #| msgid ""
 #| "A GtkPackType indicating whether the child is packed with reference to "
 #| "the start or end of the parent"
@@ -1284,945 +1440,1279 @@ msgid ""
 "A GtkPackType indicating whether the cell is packed with reference to the "
 "start or end of the cell area"
 msgstr ""
-"GtkPackType norāda, vai bērns pieblīvēts ar atsauci uz sākuma vai beigu "
-"vecāku"
+"GtkPackType norāda, vai šūna pieblīvēta ar atsauci uz sākuma vai beigu šūnas "
+"laukumu"
 
-#: ../gtk/gtkcellarea.c:770
+#: ../gtk/gtkcellarea.c:803
 msgid "Focus Cell"
-msgstr ""
+msgstr "Fokusa šūna"
 
-#: ../gtk/gtkcellarea.c:771
-#, fuzzy
+#: ../gtk/gtkcellarea.c:804
 #| msgid "The item which is currently active"
 msgid "The cell which currently has focus"
-msgstr "Šobrīd aktīvais objekts"
+msgstr "Šūna, uz kuru šobrīd ir fokuss"
 
-#: ../gtk/gtkcellarea.c:789
+#: ../gtk/gtkcellarea.c:822
 msgid "Edited Cell"
-msgstr ""
+msgstr "Rediģēta šūna"
 
-#: ../gtk/gtkcellarea.c:790
-#, fuzzy
+#: ../gtk/gtkcellarea.c:823
 #| msgid "The item which is currently active"
 msgid "The cell which is currently being edited"
-msgstr "Šobrīd aktīvais objekts"
+msgstr "Šūna, kura pašlaik tiek rediģēta"
 
-#: ../gtk/gtkcellarea.c:808
-#, fuzzy
+#: ../gtk/gtkcellarea.c:841
 #| msgid "Widget"
 msgid "Edit Widget"
-msgstr "Logdaļa"
+msgstr "Rediģēt logdaļu"
 
-#: ../gtk/gtkcellarea.c:809
-#, fuzzy
+#: ../gtk/gtkcellarea.c:842
 #| msgid "The current page in the document"
 msgid "The widget currently editing the edited cell"
-msgstr "Pašreizējā lapa dokumentā"
+msgstr "Logdaļa, kas pašlaik rediģē rediģēto šūnu"
 
+#: ../gtk/gtkcellareacontext.c:119
 #: ../gtk/gtkcellareacontext.c:127
 msgid "Area"
-msgstr ""
+msgstr "Laukums"
 
+#: ../gtk/gtkcellareacontext.c:120
 #: ../gtk/gtkcellareacontext.c:128
 msgid "The Cell Area this context was created for"
-msgstr ""
+msgstr "Šūnas laukums, kam tika izveidots šis konteksts"
 
-#: ../gtk/gtkcellareacontext.c:144 ../gtk/gtkcellareacontext.c:163
+#: ../gtk/gtkcellareacontext.c:136 ../gtk/gtkcellareacontext.c:155
+#: ../gtk/gtktreeviewcolumn.c:311
+#: ../gtk/gtkcellareacontext.c:144
+#: ../gtk/gtkcellareacontext.c:163
 #: ../gtk/gtktreeviewcolumn.c:299
 msgid "Minimum Width"
-msgstr "Minimālais Platums"
+msgstr "Minimālais platums"
 
-#: ../gtk/gtkcellareacontext.c:145 ../gtk/gtkcellareacontext.c:164
-#, fuzzy
+#: ../gtk/gtkcellareacontext.c:137 ../gtk/gtkcellareacontext.c:156
+#: ../gtk/gtkcellareacontext.c:145
+#: ../gtk/gtkcellareacontext.c:164
 #| msgid "Minimum child width"
 msgid "Minimum cached width"
-msgstr "Minimālais bērna platums"
+msgstr "Minimālais kešotais platums"
 
-#: ../gtk/gtkcellareacontext.c:182 ../gtk/gtkcellareacontext.c:201
-#, fuzzy
+#: ../gtk/gtkcellareacontext.c:174 ../gtk/gtkcellareacontext.c:193
+#: ../gtk/gtkcellareacontext.c:182
+#: ../gtk/gtkcellareacontext.c:201
 #| msgid "Minimum child height"
 msgid "Minimum Height"
-msgstr "Minimālais bērna augstums"
+msgstr "Minimālais augstums"
 
-#: ../gtk/gtkcellareacontext.c:183 ../gtk/gtkcellareacontext.c:202
-#, fuzzy
+#: ../gtk/gtkcellareacontext.c:175 ../gtk/gtkcellareacontext.c:194
+#: ../gtk/gtkcellareacontext.c:183
+#: ../gtk/gtkcellareacontext.c:202
 #| msgid "Minimum child height"
 msgid "Minimum cached height"
-msgstr "Minimālais bērna augstums"
+msgstr "Minimālais kešotais augstums"
 
 #: ../gtk/gtkcelleditable.c:53
-#, fuzzy
 msgid "Editing Canceled"
-msgstr "Rediģē"
+msgstr "Rediģēšana atcelta"
 
 #: ../gtk/gtkcelleditable.c:54
 msgid "Indicates that editing has been canceled"
-msgstr ""
+msgstr "Norāda, ka rediģēšana tika atcelta"
 
+#: ../gtk/gtkcellrendereraccel.c:152
 #: ../gtk/gtkcellrendereraccel.c:137
 msgid "Accelerator key"
 msgstr "Paātrinātāja taustiņš"
 
+#: ../gtk/gtkcellrendereraccel.c:153
 #: ../gtk/gtkcellrendereraccel.c:138
 msgid "The keyval of the accelerator"
-msgstr "Paātrinātāja atslēgvērtība"
+msgstr "Paātrinātāja atslēgas vērtība"
 
+#: ../gtk/gtkcellrendereraccel.c:169
 #: ../gtk/gtkcellrendereraccel.c:154
 msgid "Accelerator modifiers"
 msgstr "Paātrinātāja modifikatori"
 
+#: ../gtk/gtkcellrendereraccel.c:170
 #: ../gtk/gtkcellrendereraccel.c:155
 msgid "The modifier mask of the accelerator"
-msgstr ""
+msgstr "Modifikatora maska paātrinātājam"
 
+#: ../gtk/gtkcellrendereraccel.c:187
 #: ../gtk/gtkcellrendereraccel.c:172
 msgid "Accelerator keycode"
 msgstr "Paātrinātāja taustiņkods"
 
+#: ../gtk/gtkcellrendereraccel.c:188
 #: ../gtk/gtkcellrendereraccel.c:173
 msgid "The hardware keycode of the accelerator"
-msgstr ""
+msgstr "Aparatūras taustiņkods paātrinātājam"
 
+#: ../gtk/gtkcellrendereraccel.c:207
 #: ../gtk/gtkcellrendereraccel.c:192
 msgid "Accelerator Mode"
 msgstr "Paātrinātāja režīms"
 
+#: ../gtk/gtkcellrendereraccel.c:208
 #: ../gtk/gtkcellrendereraccel.c:193
 msgid "The type of accelerators"
 msgstr "Paātrinātāja tips"
 
-#: ../gtk/gtkcellrenderer.c:272
+#: ../gtk/gtkcellrenderer.c:274
 msgid "mode"
 msgstr "režīms"
 
-#: ../gtk/gtkcellrenderer.c:273
+#: ../gtk/gtkcellrenderer.c:275
 msgid "Editable mode of the CellRenderer"
-msgstr "Rediģēšanas režīms ŠūnasAttēlotājam"
+msgstr "Rediģēšanas režīms CellRenderer"
 
-#: ../gtk/gtkcellrenderer.c:281
+#: ../gtk/gtkcellrenderer.c:283
 msgid "visible"
 msgstr "redzams"
 
-#: ../gtk/gtkcellrenderer.c:282
+#: ../gtk/gtkcellrenderer.c:284
 msgid "Display the cell"
-msgstr "Parādīt šūnu"
+msgstr "Rādīt šūnu"
 
-#: ../gtk/gtkcellrenderer.c:289
+#: ../gtk/gtkcellrenderer.c:291
 msgid "Display the cell sensitive"
-msgstr "Rādīt šūnu jūtīgumu"
+msgstr "Rādīt šūnu jutīgumu"
 
-#: ../gtk/gtkcellrenderer.c:296
+#: ../gtk/gtkcellrenderer.c:298
 msgid "xalign"
-msgstr "xcentr"
+msgstr "xlīdz"
 
-#: ../gtk/gtkcellrenderer.c:297
+#: ../gtk/gtkcellrenderer.c:299
 msgid "The x-align"
-msgstr "X-izlīdzināšana"
+msgstr "X līdzināšana"
 
-#: ../gtk/gtkcellrenderer.c:306
+#: ../gtk/gtkcellrenderer.c:308
 msgid "yalign"
-msgstr "ycentr"
+msgstr "ylīdz"
 
-#: ../gtk/gtkcellrenderer.c:307
+#: ../gtk/gtkcellrenderer.c:309
 msgid "The y-align"
-msgstr "Y-izlīdzināšana"
+msgstr "Y līdzināšana"
 
-#: ../gtk/gtkcellrenderer.c:316
+#: ../gtk/gtkcellrenderer.c:318
 msgid "xpad"
 msgstr "xpapild"
 
-#: ../gtk/gtkcellrenderer.c:317
+#: ../gtk/gtkcellrenderer.c:319
 msgid "The xpad"
 msgstr "Xpapild"
 
-#: ../gtk/gtkcellrenderer.c:326
+#: ../gtk/gtkcellrenderer.c:328
 msgid "ypad"
 msgstr "ypapild"
 
-#: ../gtk/gtkcellrenderer.c:327
+#: ../gtk/gtkcellrenderer.c:329
 msgid "The ypad"
 msgstr "Ypapild"
 
-#: ../gtk/gtkcellrenderer.c:336
+#: ../gtk/gtkcellrenderer.c:338
 msgid "width"
 msgstr "platums"
 
-#: ../gtk/gtkcellrenderer.c:337
+#: ../gtk/gtkcellrenderer.c:339
 msgid "The fixed width"
 msgstr "Fiksēts platums"
 
-#: ../gtk/gtkcellrenderer.c:346
+#: ../gtk/gtkcellrenderer.c:348
 msgid "height"
 msgstr "augstums"
 
-#: ../gtk/gtkcellrenderer.c:347
+#: ../gtk/gtkcellrenderer.c:349
 msgid "The fixed height"
 msgstr "Fiksēts augstums"
 
-#: ../gtk/gtkcellrenderer.c:356
+#: ../gtk/gtkcellrenderer.c:358
 msgid "Is Expander"
-msgstr "Ir Paplašinātājs"
+msgstr "Ir izvērsējs"
 
-#: ../gtk/gtkcellrenderer.c:357
+#: ../gtk/gtkcellrenderer.c:359
 msgid "Row has children"
 msgstr "Rindai ir bērni"
 
-#: ../gtk/gtkcellrenderer.c:365
+#: ../gtk/gtkcellrenderer.c:367
 msgid "Is Expanded"
-msgstr "Ir Paplašināta"
+msgstr "Ir izvērsts"
 
-#: ../gtk/gtkcellrenderer.c:366
+#: ../gtk/gtkcellrenderer.c:368
 msgid "Row is an expander row, and is expanded"
-msgstr "Rinda tagad ir paplašinātājs un ir paplašināta"
+msgstr "Rinda ir izvērsējs un ir izvērsta"
 
-#: ../gtk/gtkcellrenderer.c:373
+#: ../gtk/gtkcellrenderer.c:375
 msgid "Cell background color name"
 msgstr "Šūnas fona krāsas nosaukums"
 
-#: ../gtk/gtkcellrenderer.c:374
+#: ../gtk/gtkcellrenderer.c:376
 msgid "Cell background color as a string"
 msgstr "Šūnas fona krāsa kā virkne"
 
-#: ../gtk/gtkcellrenderer.c:381
+#: ../gtk/gtkcellrenderer.c:383
 msgid "Cell background color"
 msgstr "Šūnas fona krāsa"
 
-#: ../gtk/gtkcellrenderer.c:382
+#: ../gtk/gtkcellrenderer.c:384
 msgid "Cell background color as a GdkColor"
 msgstr "Šūnas fona krāsa kā GdkColor"
 
-#: ../gtk/gtkcellrenderer.c:395
-#, fuzzy
+#: ../gtk/gtkcellrenderer.c:397
 #| msgid "Cell background color"
 msgid "Cell background RGBA color"
-msgstr "Šūnas fona krāsa"
+msgstr "Šūnas fona RGBA krāsa"
 
-#: ../gtk/gtkcellrenderer.c:396
-#, fuzzy
+#: ../gtk/gtkcellrenderer.c:398
 #| msgid "Cell background color as a GdkColor"
 msgid "Cell background color as a GdkRGBA"
-msgstr "Šūnas fona krāsa kā GdkColor"
+msgstr "Šūnas fona krāsa kā GdkRGBA"
 
-#: ../gtk/gtkcellrenderer.c:403
+#: ../gtk/gtkcellrenderer.c:405
 msgid "Editing"
 msgstr "Rediģē"
 
-#: ../gtk/gtkcellrenderer.c:404
+#: ../gtk/gtkcellrenderer.c:406
 msgid "Whether the cell renderer is currently in editing mode"
 msgstr "Vai šūnu attēlotājs atrodas rediģēšanas režīmā"
 
-#: ../gtk/gtkcellrenderer.c:412
+#: ../gtk/gtkcellrenderer.c:414
 msgid "Cell background set"
-msgstr "Šūnas fona iestādījums"
+msgstr "Šūnas fona iestatījums"
 
-#: ../gtk/gtkcellrenderer.c:413
+#: ../gtk/gtkcellrenderer.c:415
 msgid "Whether this tag affects the cell background color"
 msgstr "Vai šis birka ietekmē šūnas fona krāsu"
 
+#: ../gtk/gtkcellrenderercombo.c:130
 #: ../gtk/gtkcellrenderercombo.c:109
 msgid "Model"
 msgstr "Modelis"
 
+#: ../gtk/gtkcellrenderercombo.c:131
 #: ../gtk/gtkcellrenderercombo.c:110
 msgid "The model containing the possible values for the combo box"
-msgstr "Modelis, kas satur lauku sarakstā iespējamās vērtības"
+msgstr "Modelis, kas satur iespējamās vērtības kombinētajam lodziņam"
 
+#: ../gtk/gtkcellrenderercombo.c:153
 #: ../gtk/gtkcellrenderercombo.c:132
 msgid "Text Column"
 msgstr "Teksta kolonna"
 
+#: ../gtk/gtkcellrenderercombo.c:154
 #: ../gtk/gtkcellrenderercombo.c:133
 msgid "A column in the data source model to get the strings from"
 msgstr "Kolonna datu avota modelī, no kuras iegūt virknes"
 
-#: ../gtk/gtkcellrenderercombo.c:150 ../gtk/gtkcombobox.c:858
+#: ../gtk/gtkcellrenderercombo.c:171 ../gtk/gtkcombobox.c:859
+#: ../gtk/gtkcellrenderercombo.c:150
+#: ../gtk/gtkcombobox.c:858
 msgid "Has Entry"
 msgstr "Ir ieraksts"
 
+#: ../gtk/gtkcellrenderercombo.c:172
 #: ../gtk/gtkcellrenderercombo.c:151
 msgid "If FALSE, don't allow to enter strings other than the chosen ones"
-msgstr "Ja APLAMS, neļaut ievadīt virknes savādākas nekā izvēlētās"
+msgstr "Ja APLAMS, neļaut ievadīt virknes citādākas nekā izvēlētās"
 
+#: ../gtk/gtkcellrendererpixbuf.c:140
 #: ../gtk/gtkcellrendererpixbuf.c:120
 msgid "Pixbuf Object"
-msgstr "Pixbuf Objekts"
+msgstr "Pixbuf objekts"
 
+#: ../gtk/gtkcellrendererpixbuf.c:141
 #: ../gtk/gtkcellrendererpixbuf.c:121
 msgid "The pixbuf to render"
 msgstr "Pixbuf, ko atveidot"
 
+#: ../gtk/gtkcellrendererpixbuf.c:148
 #: ../gtk/gtkcellrendererpixbuf.c:128
 msgid "Pixbuf Expander Open"
-msgstr "Pixbuf Paplašinātājs Atvērts"
+msgstr "Pixbuf izvērsējs atvērts"
 
+#: ../gtk/gtkcellrendererpixbuf.c:149
 #: ../gtk/gtkcellrendererpixbuf.c:129
 msgid "Pixbuf for open expander"
-msgstr "Pixbuf atvērtam paplašinātājam"
+msgstr "Pixbuf atvērtam izvērsējam"
 
+#: ../gtk/gtkcellrendererpixbuf.c:156
 #: ../gtk/gtkcellrendererpixbuf.c:136
 msgid "Pixbuf Expander Closed"
-msgstr "Pixbuf Paplašinātājs Aizvērts"
+msgstr "Pixbuf izvērsējs aizvērts"
 
+#: ../gtk/gtkcellrendererpixbuf.c:157
 #: ../gtk/gtkcellrendererpixbuf.c:137
 msgid "Pixbuf for closed expander"
-msgstr "Pixbuf aizvērtam paplašinātājam"
-
-#: ../gtk/gtkcellrendererpixbuf.c:144 ../gtk/gtkimage.c:253
-#: ../gtk/gtkstatusicon.c:220
+msgstr "Pixbuf aizvērtam izvērsējam"
+
+#: ../gtk/gtkcellrendererpixbuf.c:164 ../gtk/gtkimage.c:254
+#: ../gtk/gtkstatusicon.c:251
+#: ../gtk/gtkcellrendererpixbuf.c:144
+#: ../gtk/gtkimage.c:253
+#: ../gtk/gtkstatusicon.c:221
+#: ../gtk/gtkstatusicon.c:222
 msgid "Stock ID"
 msgstr "Krājuma ID"
 
+#: ../gtk/gtkcellrendererpixbuf.c:165
 #: ../gtk/gtkcellrendererpixbuf.c:145
 msgid "The stock ID of the stock icon to render"
 msgstr "Krāvuma ID krāvuma ikonai, ko attēlot"
 
-#: ../gtk/gtkcellrendererpixbuf.c:152 ../gtk/gtkcellrendererspinner.c:151
-#: ../gtk/gtkrecentmanager.c:309 ../gtk/gtkstatusicon.c:261
+#: ../gtk/gtkcellrendererpixbuf.c:172 ../gtk/gtkcellrendererspinner.c:151
+#: ../gtk/gtkrecentmanager.c:309 ../gtk/gtkstatusicon.c:292
+#: ../gtk/gtkcellrendererpixbuf.c:152
+#: ../gtk/gtkstatusicon.c:262
 msgid "Size"
 msgstr "Izmērs"
 
+#: ../gtk/gtkcellrendererpixbuf.c:173
 #: ../gtk/gtkcellrendererpixbuf.c:153
 msgid "The GtkIconSize value that specifies the size of the rendered icon"
-msgstr "GtkIconSize vertība, kas norāda renderētās ikonas izmēru"
+msgstr "GtkIconSize vērtība, kas norāda renderētās ikonas izmēru"
 
+#: ../gtk/gtkcellrendererpixbuf.c:182
 #: ../gtk/gtkcellrendererpixbuf.c:162
 msgid "Detail"
 msgstr "Papildus informācija"
 
+#: ../gtk/gtkcellrendererpixbuf.c:183
 #: ../gtk/gtkcellrendererpixbuf.c:163
 msgid "Render detail to pass to the theme engine"
-msgstr "Attēlot papildus informāciju, ko pievadīt tēmas dzinējam"
+msgstr "Attēlot papildus informāciju, ko padot tēmas dzinējam"
 
+#: ../gtk/gtkcellrendererpixbuf.c:216
 #: ../gtk/gtkcellrendererpixbuf.c:196
 msgid "Follow State"
 msgstr "Sekot stāvoklim"
 
+#: ../gtk/gtkcellrendererpixbuf.c:217
 #: ../gtk/gtkcellrendererpixbuf.c:197
 msgid "Whether the rendered pixbuf should be colorized according to the state"
 msgstr ""
 "Vai renderētajam pikseļu buferim vajadzētu būt krāsotam atbilstoši stāvoklim"
 
-#: ../gtk/gtkcellrendererpixbuf.c:214 ../gtk/gtkimage.c:328
-#: ../gtk/gtkwindow.c:695
+#: ../gtk/gtkcellrendererpixbuf.c:234 ../gtk/gtkimage.c:329
+#: ../gtk/gtkwindow.c:701
+#: ../gtk/gtkaction.c:305
+#: ../gtk/gtkcellrendererpixbuf.c:215
+#: ../gtk/gtkstatusicon.c:246
+#: ../gtk/gtkcellrendererpixbuf.c:214
+#: ../gtk/gtkimage.c:328
+#: ../gtk/gtkwindow.c:699
 msgid "Icon"
 msgstr "Ikona"
 
+#: ../gtk/gtkcellrendererprogress.c:139
 #: ../gtk/gtkcellrendererprogress.c:127
 msgid "Value of the progress bar"
 msgstr "Progresa joslas vērtība"
 
-#: ../gtk/gtkcellrendererprogress.c:144 ../gtk/gtkcellrenderertext.c:255
-#: ../gtk/gtkentry.c:831 ../gtk/gtkentrybuffer.c:352
-#: ../gtk/gtkmessagedialog.c:227 ../gtk/gtkprogressbar.c:177
+#: ../gtk/gtkcellrendererprogress.c:156 ../gtk/gtkcellrenderertext.c:254
+#: ../gtk/gtkentry.c:837 ../gtk/gtkentrybuffer.c:352
+#: ../gtk/gtkmessagedialog.c:227 ../gtk/gtkprogressbar.c:176
+#: ../gtk/gtktextbuffer.c:221
+#: ../gtk/gtkcellrendererprogress.c:144
+#: ../gtk/gtkcellrenderertext.c:255
+#: ../gtk/gtkentry.c:830
+#: ../gtk/gtkprogressbar.c:177
 #: ../gtk/gtktextbuffer.c:210
 msgid "Text"
 msgstr "Teksts"
 
+#: ../gtk/gtkcellrendererprogress.c:157
 #: ../gtk/gtkcellrendererprogress.c:145
 msgid "Text on the progress bar"
 msgstr "Progresa joslas teksts"
 
-#: ../gtk/gtkcellrendererprogress.c:168 ../gtk/gtkcellrendererspinner.c:137
+#: ../gtk/gtkcellrendererprogress.c:180 ../gtk/gtkcellrendererspinner.c:137
+#: ../gtk/gtkcellrendererprogress.c:168
 msgid "Pulse"
 msgstr "Pulss"
 
+#: ../gtk/gtkcellrendererprogress.c:181
 #: ../gtk/gtkcellrendererprogress.c:169
 msgid ""
 "Set this to positive values to indicate that some progress is made, but you "
 "don't know how much."
 msgstr ""
+"Iestatiet šim pozitīvas vērtības, lai norādītu, ka notiek progress, bet jūs "
+"nezināt, cik daudz."
 
+#: ../gtk/gtkcellrendererprogress.c:197
 #: ../gtk/gtkcellrendererprogress.c:185
 msgid "Text x alignment"
-msgstr "Teksta centrēšana pret x asi"
+msgstr "Teksta līdzināšana pret x asi"
 
+#: ../gtk/gtkcellrendererprogress.c:198
 #: ../gtk/gtkcellrendererprogress.c:186
 msgid ""
 "The horizontal text alignment, from 0 (left) to 1 (right). Reversed for RTL "
 "layouts."
 msgstr ""
-"Horizontālā teksta izlīdzināšana, no 0 (pa kreisi) līdz 1 (pa labi). Pretējs "
+"Horizontālā teksta līdzināšana, no 0 (pa kreisi) līdz 1 (pa labi). Pretējs "
 "RTL izkārtojumiem."
 
+#: ../gtk/gtkcellrendererprogress.c:214
 #: ../gtk/gtkcellrendererprogress.c:202
+#: ../gtk/gtkprogressbar.c:153
+#: ../gtk/gtkrange.c:424
 msgid "Text y alignment"
-msgstr "Teksta centrēšana pret y asi"
+msgstr "Teksta līdzināšana pret y asi"
 
+#: ../gtk/gtkcellrendererprogress.c:215
 #: ../gtk/gtkcellrendererprogress.c:203
+#: ../gtk/gtkprogressbar.c:154
 msgid "The vertical text alignment, from 0 (top) to 1 (bottom)."
-msgstr "Vertikālā teksta izlīdzināšana, no 0 (augšas) līdz 1 (apakšai)."
+msgstr "Vertikālā teksta līdzināšana, no 0 (augšas) līdz 1 (apakšai)."
 
-#: ../gtk/gtkcellrendererprogress.c:214 ../gtk/gtkprogressbar.c:153
+#: ../gtk/gtkcellrendererprogress.c:226 ../gtk/gtkprogressbar.c:152
+#: ../gtk/gtkrange.c:426
+#: ../gtk/gtkcellrendererprogress.c:214
+#: ../gtk/gtkprogressbar.c:153
 #: ../gtk/gtkrange.c:424
 msgid "Inverted"
 msgstr "Apgriezts"
 
-#: ../gtk/gtkcellrendererprogress.c:215 ../gtk/gtkprogressbar.c:154
-#, fuzzy
+#: ../gtk/gtkcellrendererprogress.c:227 ../gtk/gtkprogressbar.c:153
+#: ../gtk/gtkcellrendererprogress.c:214
+#: ../gtk/gtkrange.c:424
+#: ../gtk/gtkcellrendererprogress.c:215
+#: ../gtk/gtkprogressbar.c:154
 msgid "Invert the direction in which the progress bar grows"
-msgstr "Progresjoslas novietojums un pieauguma virziens"
-
-#: ../gtk/gtkcellrendererspin.c:91 ../gtk/gtkrange.c:416
-#: ../gtk/gtkscalebutton.c:236 ../gtk/gtkspinbutton.c:320
+msgstr "Pagriezt virzienu, kurā pieaug progresa josla"
+
+#: ../gtk/gtkcellrendererspin.c:113 ../gtk/gtkrange.c:418
+#: ../gtk/gtkscalebutton.c:237 ../gtk/gtkspinbutton.c:323
+#: ../gtk/gtkcellrendererspin.c:91
+#: ../gtk/gtkrange.c:416
+#: ../gtk/gtkscalebutton.c:236
+#: ../gtk/gtkspinbutton.c:320
 msgid "Adjustment"
 msgstr "Noregulējums"
 
-#: ../gtk/gtkcellrendererspin.c:92 ../gtk/gtkspinbutton.c:321
-#, fuzzy
+#: ../gtk/gtkcellrendererspin.c:114 ../gtk/gtkspinbutton.c:324
+#: ../gtk/gtkcellrendererspin.c:92
+#: ../gtk/gtkspinbutton.c:321
 msgid "The adjustment that holds the value of the spin button"
-msgstr "Noregulēšana, kas pārvalda giešanās pogas vērtību"
+msgstr "Noregulēšana, kas satur griešanās pogas vērtību"
 
+#: ../gtk/gtkcellrendererspin.c:129
 #: ../gtk/gtkcellrendererspin.c:107
 msgid "Climb rate"
 msgstr "Kāpinājuma koeficients"
 
-#: ../gtk/gtkcellrendererspin.c:108 ../gtk/gtkspinbutton.c:329
+#: ../gtk/gtkcellrendererspin.c:130 ../gtk/gtkspinbutton.c:332
+#: ../gtk/gtkcellrendererspin.c:108
+#: ../gtk/gtkspinbutton.c:329
 msgid "The acceleration rate when you hold down a button"
 msgstr "Paātrinājuma koeficients, kad jūs turat nospiestu pogu"
 
-#: ../gtk/gtkcellrendererspin.c:121 ../gtk/gtkscale.c:253
+#: ../gtk/gtkcellrendererspin.c:143 ../gtk/gtkscale.c:254
+#: ../gtk/gtkspinbutton.c:341
+#: ../gtk/gtkcellrendererspin.c:121
+#: ../gtk/gtkscale.c:252
 #: ../gtk/gtkspinbutton.c:338
 msgid "Digits"
 msgstr "Cipari"
 
-#: ../gtk/gtkcellrendererspin.c:122 ../gtk/gtkspinbutton.c:339
+#: ../gtk/gtkcellrendererspin.c:144 ../gtk/gtkspinbutton.c:342
+#: ../gtk/gtkcellrendererspin.c:122
+#: ../gtk/gtkspinbutton.c:339
 msgid "The number of decimal places to display"
 msgstr "Parādāmo decimālo vietu skaits"
 
-#: ../gtk/gtkcellrendererspinner.c:119 ../gtk/gtkcheckmenuitem.c:106
-#: ../gtk/gtkmenu.c:586 ../gtk/gtkspinner.c:118 ../gtk/gtkswitch.c:752
-#: ../gtk/gtktoggleaction.c:133 ../gtk/gtktogglebutton.c:125
+#: ../gtk/gtkcellrendererspinner.c:119 ../gtk/gtkcheckmenuitem.c:123
+#: ../gtk/gtkmenu.c:588 ../gtk/gtkspinner.c:115 ../gtk/gtkswitch.c:784
+#: ../gtk/gtktoggleaction.c:133 ../gtk/gtktogglebutton.c:178
+#: ../gtk/gtktoggletoolbutton.c:127
+#: ../gtk/gtkcheckmenuitem.c:106
+#: ../gtk/gtkmenu.c:586
+#: ../gtk/gtkspinner.c:118
+#: ../gtk/gtkswitch.c:801
+#: ../gtk/gtktogglebutton.c:125
 #: ../gtk/gtktoggletoolbutton.c:112
 msgid "Active"
 msgstr "Aktīvs"
 
 #: ../gtk/gtkcellrendererspinner.c:120
-#, fuzzy
 msgid "Whether the spinner is active (ie. shown) in the cell"
-msgstr "Vai izvelētais fonta stils tiek rādīts etiķetē"
+msgstr "Vai ritenītis ir aktīvs (t.i. redzams) šūnā"
 
 #: ../gtk/gtkcellrendererspinner.c:138
-#, fuzzy
 msgid "Pulse of the spinner"
-msgstr "Printera nosaukums"
+msgstr "Ritenīša pulss"
 
 #: ../gtk/gtkcellrendererspinner.c:152
-#, fuzzy
 msgid "The GtkIconSize value that specifies the size of the rendered spinner"
-msgstr "GtkIconSize vertība, kas norāda renderētās ikonas izmēru"
-
+msgstr "GtkIconSize vērtība, kas norāda renderētā ritenīša izmēru"
+
+#: ../gtk/gtkcellrenderertext.c:255
+#: ../gtk/gtkcellrendererprogress.c:144
+#: ../gtk/gtkentry.c:830
+#: ../gtk/gtkentrybuffer.c:352
+#: ../gtk/gtkmessagedialog.c:227
+#: ../gtk/gtkprogressbar.c:177
+#: ../gtk/gtktextbuffer.c:210
 #: ../gtk/gtkcellrenderertext.c:256
 msgid "Text to render"
 msgstr "Teksts, ko atveidot"
 
-#: ../gtk/gtkcellrenderertext.c:263
+#: ../gtk/gtkcellrenderertext.c:262
 msgid "Markup"
 msgstr "Marķēt"
 
+#: ../gtk/gtkcellrenderertext.c:263
 #: ../gtk/gtkcellrenderertext.c:264
 msgid "Marked up text to render"
 msgstr "Marķēt tekstu, ko renderēt"
 
-#: ../gtk/gtkcellrenderertext.c:271 ../gtk/gtklabel.c:574
+#: ../gtk/gtkcellrenderertext.c:270 ../gtk/gtklabel.c:751
+#: ../gtk/gtkcellrenderertext.c:271
+#: ../gtk/gtklabel.c:574
 msgid "Attributes"
 msgstr "Atribūti"
 
+#: ../gtk/gtkcellrenderertext.c:271
+#: ../gtk/gtklabel.c:574
 #: ../gtk/gtkcellrenderertext.c:272
 msgid "A list of style attributes to apply to the text of the renderer"
 msgstr "Stila atribūtu saraksts, kurus pielietot atveidotāja tekstam"
 
-#: ../gtk/gtkcellrenderertext.c:279
+#: ../gtk/gtkcellrenderertext.c:278
 msgid "Single Paragraph Mode"
 msgstr "Viena paragrāfa režīms"
 
+#: ../gtk/gtkcellrenderertext.c:279
 #: ../gtk/gtkcellrenderertext.c:280
-#, fuzzy
 msgid "Whether to keep all text in a single paragraph"
-msgstr "Vai atstāt, vai nē tekstu vienā paragrāfā"
+msgstr "Vai paturēt tekstu vienā rindkopā"
 
-#: ../gtk/gtkcellrenderertext.c:288 ../gtk/gtkcellview.c:189
+#: ../gtk/gtkcellrenderertext.c:287 ../gtk/gtkcellview.c:191
+#: ../gtk/gtktexttag.c:199
+#: ../gtk/gtkcellrenderertext.c:288
+#: ../gtk/gtkcellview.c:189
 #: ../gtk/gtktexttag.c:196
 msgid "Background color name"
 msgstr "Fona krāsas nosaukums"
 
-#: ../gtk/gtkcellrenderertext.c:289 ../gtk/gtkcellview.c:190
+#: ../gtk/gtkcellrenderertext.c:288 ../gtk/gtkcellview.c:192
+#: ../gtk/gtktexttag.c:200
+#: ../gtk/gtkcellview.c:189
+#: ../gtk/gtktexttag.c:196
+#: ../gtk/gtkcellrenderertext.c:289
+#: ../gtk/gtkcellview.c:190
 #: ../gtk/gtktexttag.c:197
 msgid "Background color as a string"
 msgstr "Fona krāsa kā virkne"
 
-#: ../gtk/gtkcellrenderertext.c:296 ../gtk/gtkcellview.c:196
+#: ../gtk/gtkcellrenderertext.c:295 ../gtk/gtkcellview.c:198
+#: ../gtk/gtktexttag.c:207
+#: ../gtk/gtkcellrenderertext.c:296
+#: ../gtk/gtkcellview.c:196
 #: ../gtk/gtktexttag.c:204
 msgid "Background color"
 msgstr "Fona krāsa"
 
-#: ../gtk/gtkcellrenderertext.c:297 ../gtk/gtkcellview.c:197
+#: ../gtk/gtkcellrenderertext.c:296 ../gtk/gtkcellview.c:199
+#: ../gtk/gtktexttag.c:208
+#: ../gtk/gtkcellview.c:196
+#: ../gtk/gtktexttag.c:204
+#: ../gtk/gtkcellrenderertext.c:297
+#: ../gtk/gtkcellview.c:197
 msgid "Background color as a GdkColor"
 msgstr "Fona krāsa kā GdkColor"
 
-#: ../gtk/gtkcellrenderertext.c:311
-#, fuzzy
+#: ../gtk/gtkcellrenderertext.c:310
 #| msgid "Background color name"
 msgid "Background color as RGBA"
-msgstr "Fona krāsas nosaukums"
+msgstr "Fona krāsa kā RGBA"
 
-#: ../gtk/gtkcellrenderertext.c:312 ../gtk/gtkcellview.c:211
-#, fuzzy
+#: ../gtk/gtkcellrenderertext.c:311 ../gtk/gtkcellview.c:213
+#: ../gtk/gtktexttag.c:223
+#: ../gtk/gtkcellrenderertext.c:312
+#: ../gtk/gtkcellview.c:211
 #| msgid "Background color as a GdkColor"
 msgid "Background color as a GdkRGBA"
-msgstr "Fona krāsa kā GdkColor"
+msgstr "Fona krāsa kā GdkRGBA"
 
-#: ../gtk/gtkcellrenderertext.c:318 ../gtk/gtktexttag.c:220
+#: ../gtk/gtkcellrenderertext.c:317 ../gtk/gtktexttag.c:238
+#: ../gtk/gtkcellrenderertext.c:318
+#: ../gtk/gtktexttag.c:220
 msgid "Foreground color name"
 msgstr "Priekšplāna krāsas nosaukums"
 
-#: ../gtk/gtkcellrenderertext.c:319 ../gtk/gtktexttag.c:221
+#: ../gtk/gtkcellrenderertext.c:318 ../gtk/gtktexttag.c:239
+#: ../gtk/gtktexttag.c:220
+#: ../gtk/gtkcellrenderertext.c:319
+#: ../gtk/gtktexttag.c:221
 msgid "Foreground color as a string"
 msgstr "Priekšplāna krāsa kā virkne"
 
-#: ../gtk/gtkcellrenderertext.c:326 ../gtk/gtktexttag.c:228
-#: ../gtk/gtktrayicon-x11.c:134
+#: ../gtk/gtkcellrenderertext.c:325 ../gtk/gtktexttag.c:246
+#: ../gtk/gtktrayicon-x11.c:137
+#: ../gtk/gtkcellrenderertext.c:326
+#: ../gtk/gtktexttag.c:228
+#: ../gtk/gtkcellrenderertext.c:351
+#: ../gtk/gtktextview.c:685
 msgid "Foreground color"
 msgstr "Priekšplāna krāsa"
 
+#: ../gtk/gtkcellrenderertext.c:326 ../gtk/gtktexttag.c:247
+#: ../gtk/gtktexttag.c:228
+#: ../gtk/gtktrayicon-x11.c:137
 #: ../gtk/gtkcellrenderertext.c:327
 msgid "Foreground color as a GdkColor"
 msgstr "Priekšplāna krāsa kā GdkColor"
 
-#: ../gtk/gtkcellrenderertext.c:341
-#, fuzzy
+#: ../gtk/gtkcellrenderertext.c:340
 #| msgid "Foreground color name"
 msgid "Foreground color as RGBA"
-msgstr "Priekšplāna krāsas nosaukums"
+msgstr "Priekšplāna krāsa kā RGBA"
 
+#: ../gtk/gtkcellrenderertext.c:341 ../gtk/gtktexttag.c:262
 #: ../gtk/gtkcellrenderertext.c:342
-#, fuzzy
+#: ../gtk/gtkcellrenderertext.c:359
 #| msgid "Foreground color as a GdkColor"
 msgid "Foreground color as a GdkRGBA"
-msgstr "Priekšplāna krāsa kā GdkColor"
-
-#: ../gtk/gtkcellrenderertext.c:350 ../gtk/gtkentry.c:755
-#: ../gtk/gtktexttag.c:245 ../gtk/gtktextview.c:684
+msgstr "Priekšplāna krāsa kā GdkRGBA"
+
+#: ../gtk/gtkcellrenderertext.c:349 ../gtk/gtkentry.c:761
+#: ../gtk/gtktexttag.c:278 ../gtk/gtktextview.c:686
+#: ../gtk/gtkcellrenderertext.c:350
+#: ../gtk/gtkentry.c:754
+#: ../gtk/gtktexttag.c:245
+#: ../gtk/gtktextview.c:684
+#: ../gtk/gtkcellrenderertext.c:376
 msgid "Editable"
 msgstr "Rediģējams"
 
-#: ../gtk/gtkcellrenderertext.c:351 ../gtk/gtktexttag.c:246
+#: ../gtk/gtkcellrenderertext.c:350 ../gtk/gtktexttag.c:279
+#: ../gtk/gtktextview.c:687
+#: ../gtk/gtkentry.c:754
+#: ../gtk/gtktexttag.c:245
+#: ../gtk/gtktextview.c:684
+#: ../gtk/gtkcellrenderertext.c:351
+#: ../gtk/gtktexttag.c:246
 #: ../gtk/gtktextview.c:685
 msgid "Whether the text can be modified by the user"
 msgstr "Vai tekstu var modificēt lietotājs"
 
-#: ../gtk/gtkcellrenderertext.c:358 ../gtk/gtkcellrenderertext.c:366
-#: ../gtk/gtktexttag.c:261 ../gtk/gtktexttag.c:269
+#: ../gtk/gtkcellrenderertext.c:357 ../gtk/gtkcellrenderertext.c:365
+#: ../gtk/gtktexttag.c:294 ../gtk/gtktexttag.c:302
+#: ../gtk/gtkcellrenderertext.c:392
+#: ../gtk/gtkcellrenderertext.c:393
 msgid "Font"
 msgstr "Fonts"
 
-#: ../gtk/gtkcellrenderertext.c:359 ../gtk/gtktexttag.c:262
+#: ../gtk/gtkcellrenderertext.c:358 ../gtk/gtktexttag.c:295
+#: ../gtk/gtkcellrenderertext.c:366
+#: ../gtk/gtktexttag.c:261
+#: ../gtk/gtktexttag.c:269
+#: ../gtk/gtkcellrenderertext.c:359
+#: ../gtk/gtktexttag.c:262
 msgid "Font description as a string, e.g. \"Sans Italic 12\""
 msgstr "Fonta apraksts kā virkne, piem.,  \"Sans Italic 12\""
 
-#: ../gtk/gtkcellrenderertext.c:367 ../gtk/gtktexttag.c:270
+#: ../gtk/gtkcellrenderertext.c:366 ../gtk/gtktexttag.c:303
+#: ../gtk/gtkcellrenderertext.c:358
+#: ../gtk/gtktexttag.c:261
+#: ../gtk/gtktexttag.c:269
+#: ../gtk/gtkcellrenderertext.c:367
+#: ../gtk/gtktexttag.c:270
+#: ../gtk/gtkcellrenderertext.c:401
+#: ../gtk/gtkcellrenderertext.c:402
 msgid "Font description as a PangoFontDescription struct"
 msgstr "Fonta apraksts kā PangoFontDescription struktūra"
 
-#: ../gtk/gtkcellrenderertext.c:375 ../gtk/gtktexttag.c:277
+#: ../gtk/gtkcellrenderertext.c:374 ../gtk/gtktexttag.c:310
+#: ../gtk/gtkcellrenderertext.c:375
+#: ../gtk/gtktexttag.c:277
 msgid "Font family"
 msgstr "Fonta saime"
 
-#: ../gtk/gtkcellrenderertext.c:376 ../gtk/gtktexttag.c:278
+#: ../gtk/gtkcellrenderertext.c:375 ../gtk/gtktexttag.c:311
+#: ../gtk/gtktexttag.c:277
+#: ../gtk/gtkcellrenderertext.c:376
+#: ../gtk/gtktexttag.c:278
 msgid "Name of the font family, e.g. Sans, Helvetica, Times, Monospace"
 msgstr "Fonta saimes nosaukums, piem., Sans, Helvetica, Times, Monospace"
 
-#: ../gtk/gtkcellrenderertext.c:383 ../gtk/gtkcellrenderertext.c:384
+#: ../gtk/gtkcellrenderertext.c:382 ../gtk/gtkcellrenderertext.c:383
+#: ../gtk/gtktexttag.c:318
+#: ../gtk/gtkcellrenderertext.c:384
 #: ../gtk/gtktexttag.c:285
 msgid "Font style"
 msgstr "Fonta stils"
 
-#: ../gtk/gtkcellrenderertext.c:392 ../gtk/gtkcellrenderertext.c:393
+#: ../gtk/gtkcellrenderertext.c:391 ../gtk/gtkcellrenderertext.c:392
+#: ../gtk/gtktexttag.c:327
+#: ../gtk/gtkcellrenderertext.c:393
 #: ../gtk/gtktexttag.c:294
 msgid "Font variant"
 msgstr "Fonta variants"
 
-#: ../gtk/gtkcellrenderertext.c:401 ../gtk/gtkcellrenderertext.c:402
+#: ../gtk/gtkcellrenderertext.c:400 ../gtk/gtkcellrenderertext.c:401
+#: ../gtk/gtktexttag.c:336
+#: ../gtk/gtkcellrenderertext.c:402
 #: ../gtk/gtktexttag.c:303
 msgid "Font weight"
-msgstr "Fonta platums"
+msgstr "Fonta treknums"
 
-#: ../gtk/gtkcellrenderertext.c:411 ../gtk/gtkcellrenderertext.c:412
+#: ../gtk/gtkcellrenderertext.c:410 ../gtk/gtkcellrenderertext.c:411
+#: ../gtk/gtktexttag.c:347
+#: ../gtk/gtkcellrenderertext.c:412
 #: ../gtk/gtktexttag.c:314
 msgid "Font stretch"
 msgstr "Fonta izstiepums"
 
-#: ../gtk/gtkcellrenderertext.c:420 ../gtk/gtkcellrenderertext.c:421
+#: ../gtk/gtkcellrenderertext.c:419 ../gtk/gtkcellrenderertext.c:420
+#: ../gtk/gtktexttag.c:356
+#: ../gtk/gtkcellrenderertext.c:421
 #: ../gtk/gtktexttag.c:323
 msgid "Font size"
 msgstr "Fonta izmērs"
 
-#: ../gtk/gtkcellrenderertext.c:430 ../gtk/gtktexttag.c:343
+#: ../gtk/gtkcellrenderertext.c:429 ../gtk/gtktexttag.c:376
+#: ../gtk/gtkcellrenderertext.c:430
+#: ../gtk/gtktexttag.c:343
 msgid "Font points"
 msgstr "Fonta punkti"
 
-#: ../gtk/gtkcellrenderertext.c:431 ../gtk/gtktexttag.c:344
+#: ../gtk/gtkcellrenderertext.c:430 ../gtk/gtktexttag.c:377
+#: ../gtk/gtktexttag.c:343
+#: ../gtk/gtkcellrenderertext.c:431
+#: ../gtk/gtktexttag.c:344
 msgid "Font size in points"
 msgstr "Fonta izmērs punktos"
 
-#: ../gtk/gtkcellrenderertext.c:440 ../gtk/gtktexttag.c:333
+#: ../gtk/gtkcellrenderertext.c:439 ../gtk/gtktexttag.c:366
+#: ../gtk/gtkcellrenderertext.c:440
+#: ../gtk/gtktexttag.c:333
 msgid "Font scale"
 msgstr "Fonta mērogs"
 
+#: ../gtk/gtkcellrenderertext.c:440
+#: ../gtk/gtktexttag.c:333
 #: ../gtk/gtkcellrenderertext.c:441
 msgid "Font scaling factor"
-msgstr "Fonta mērogojuma faktors"
+msgstr "Fonta mēroga koeficients"
 
-#: ../gtk/gtkcellrenderertext.c:450 ../gtk/gtktexttag.c:412
+#: ../gtk/gtkcellrenderertext.c:449 ../gtk/gtktexttag.c:445
+#: ../gtk/gtkcellrenderertext.c:450
+#: ../gtk/gtktexttag.c:412
 msgid "Rise"
 msgstr "Pacelt"
 
+#: ../gtk/gtkcellrenderertext.c:450
+#: ../gtk/gtktexttag.c:412
 #: ../gtk/gtkcellrenderertext.c:451
 msgid ""
 "Offset of text above the baseline (below the baseline if rise is negative)"
 msgstr "Teksta nobīde no bāzes līnijas (zem līnijas, ja pacēlums ir negatīvs)"
 
-#: ../gtk/gtkcellrenderertext.c:462 ../gtk/gtktexttag.c:452
+#: ../gtk/gtkcellrenderertext.c:461 ../gtk/gtktexttag.c:485
+#: ../gtk/gtkcellrenderertext.c:462
+#: ../gtk/gtktexttag.c:452
 msgid "Strikethrough"
-msgstr "Caursvītrot"
+msgstr "rsvītrot"
 
-#: ../gtk/gtkcellrenderertext.c:463 ../gtk/gtktexttag.c:453
+#: ../gtk/gtkcellrenderertext.c:462 ../gtk/gtktexttag.c:486
+#: ../gtk/gtktexttag.c:452
+#: ../gtk/gtkcellrenderertext.c:463
+#: ../gtk/gtktexttag.c:453
 msgid "Whether to strike through the text"
-msgstr "Vai caursvītrot tekstu"
+msgstr "Vai rsvītrot tekstu"
 
-#: ../gtk/gtkcellrenderertext.c:470 ../gtk/gtktexttag.c:460
+#: ../gtk/gtkcellrenderertext.c:469 ../gtk/gtktexttag.c:493
+#: ../gtk/gtkcellrenderertext.c:470
+#: ../gtk/gtktexttag.c:460
 msgid "Underline"
 msgstr "Pasvītrot"
 
-#: ../gtk/gtkcellrenderertext.c:471 ../gtk/gtktexttag.c:461
+#: ../gtk/gtkcellrenderertext.c:470 ../gtk/gtktexttag.c:494
+#: ../gtk/gtktexttag.c:460
+#: ../gtk/gtkcellrenderertext.c:471
+#: ../gtk/gtktexttag.c:461
 msgid "Style of underline for this text"
 msgstr "Pasvītrošanas stils šim tekstam"
 
-#: ../gtk/gtkcellrenderertext.c:479 ../gtk/gtktexttag.c:372
+#: ../gtk/gtkcellrenderertext.c:478 ../gtk/gtktexttag.c:405
+#: ../gtk/gtkcellrenderertext.c:479
+#: ../gtk/gtktexttag.c:372
 msgid "Language"
 msgstr "Valoda"
 
+#: ../gtk/gtkcellrenderertext.c:479
+#: ../gtk/gtktexttag.c:372
 #: ../gtk/gtkcellrenderertext.c:480
 msgid ""
 "The language this text is in, as an ISO code. Pango can use this as a hint "
 "when rendering the text. If you don't understand this parameter, you "
 "probably don't need it"
 msgstr ""
-"Valoda, kādā šis teksts ir, kā ISO kods. Pang var lietot šo kā padomu, kad "
+"Valoda, kādā šis teksts ir, kā ISO kods. Pango var lietot šo kā padomu, kad "
 "renderē tekstu. Ja jūs nesaprotat šo parametru, jums visdrīzāk to nevajag"
 
-#: ../gtk/gtkcellrenderertext.c:500 ../gtk/gtklabel.c:699
+#: ../gtk/gtkcellrenderertext.c:499 ../gtk/gtklabel.c:876
+#: ../gtk/gtkprogressbar.c:216
+#: ../gtk/gtkcellrenderertext.c:500
+#: ../gtk/gtklabel.c:699
 #: ../gtk/gtkprogressbar.c:217
 msgid "Ellipsize"
-msgstr "Eliptizēt"
+msgstr "Īsināt ar daudzpunkti"
 
+#: ../gtk/gtkcellrenderertext.c:500
+#: ../gtk/gtklabel.c:699
+#: ../gtk/gtkprogressbar.c:217
 #: ../gtk/gtkcellrenderertext.c:501
 msgid ""
 "The preferred place to ellipsize the string, if the cell renderer does not "
 "have enough room to display the entire string"
 msgstr ""
+"Vēlamā vieta, kur virkni īsināt ar daudzpunkti, ja šūna attēlotājam "
+"nepietiek vietas, lai attēlotu visu virkni"
 
-#: ../gtk/gtkcellrenderertext.c:520 ../gtk/gtkfilechooserbutton.c:411
+#: ../gtk/gtkcellrenderertext.c:519 ../gtk/gtkfilechooserbutton.c:454
+#: ../gtk/gtklabel.c:897
+#: ../gtk/gtkcellrenderertext.c:520
+#: ../gtk/gtkfilechooserbutton.c:411
 #: ../gtk/gtklabel.c:720
 msgid "Width In Characters"
-msgstr "Platums rakszīmēs"
+msgstr "Platums rakstzīmēs"
 
-#: ../gtk/gtkcellrenderertext.c:521 ../gtk/gtklabel.c:721
+#: ../gtk/gtkcellrenderertext.c:520 ../gtk/gtklabel.c:898
+#: ../gtk/gtkfilechooserbutton.c:411
+#: ../gtk/gtklabel.c:720
+#: ../gtk/gtkcellrenderertext.c:521
+#: ../gtk/gtklabel.c:721
 msgid "The desired width of the label, in characters"
-msgstr "Izvēlētais etiķetes platums rakstzīmēs"
+msgstr "Izvēlētais iezīmes platums, izteikts rakstzīmēs"
 
-#: ../gtk/gtkcellrenderertext.c:545 ../gtk/gtklabel.c:781
+#: ../gtk/gtkcellrenderertext.c:544 ../gtk/gtklabel.c:958
+#: ../gtk/gtkcellrenderertext.c:545
+#: ../gtk/gtklabel.c:781
 msgid "Maximum Width In Characters"
-msgstr "Maksimālais platums rakszīmēs"
+msgstr "Maksimālais platums, izteikts rakstzīmēs"
 
+#: ../gtk/gtkcellrenderertext.c:545
+#: ../gtk/gtklabel.c:781
 #: ../gtk/gtkcellrenderertext.c:546
-#, fuzzy
 msgid "The maximum width of the cell, in characters"
-msgstr "Vēlamais maksimālais etiķetes platums rakstīmēs"
+msgstr "Maksimālais šūnas platums, izteikts rakstzīmēs"
 
-#: ../gtk/gtkcellrenderertext.c:564 ../gtk/gtktexttag.c:469
+#: ../gtk/gtkcellrenderertext.c:563 ../gtk/gtktexttag.c:502
+#: ../gtk/gtkcellrenderertext.c:564
+#: ../gtk/gtktexttag.c:469
 msgid "Wrap mode"
 msgstr "Aplaušanas režīms"
 
+#: ../gtk/gtkcellrenderertext.c:564
+#: ../gtk/gtktexttag.c:469
 #: ../gtk/gtkcellrenderertext.c:565
 msgid ""
 "How to break the string into multiple lines, if the cell renderer does not "
 "have enough room to display the entire string"
 msgstr ""
-"Kā sadalīt virkni vairākās līnijās, ja šūnas renderējumam nav pietiekami "
+"Kā sadalīt virkni vairākās līnijās, ja šūnas attēlojumam nav pietiekami "
 "daudz vietas, lai attēlotu visu virkni"
 
-#: ../gtk/gtkcellrenderertext.c:584 ../gtk/gtkcombobox.c:680
+#: ../gtk/gtkcellrenderertext.c:583 ../gtk/gtkcombobox.c:681
+#: ../gtk/gtkcellrenderertext.c:584
+#: ../gtk/gtkcombobox.c:680
 msgid "Wrap width"
-msgstr "Apliekuma platums"
+msgstr "Aplaušanas platums"
 
+#: ../gtk/gtkcellrenderertext.c:584
+#: ../gtk/gtkcombobox.c:680
 #: ../gtk/gtkcellrenderertext.c:585
 msgid "The width at which the text is wrapped"
-msgstr "Platums, kurā teksts ir apliekts"
+msgstr "Platums, kurā teksts ir aplauzts"
 
-#: ../gtk/gtkcellrenderertext.c:605 ../gtk/gtktreeviewcolumn.c:352
+#: ../gtk/gtkcellrenderertext.c:604 ../gtk/gtktreeviewcolumn.c:364
+#: ../gtk/gtkcellrenderertext.c:605
+#: ../gtk/gtktreeviewcolumn.c:352
 msgid "Alignment"
-msgstr "Centrēšana"
+msgstr "Līdzināšana"
 
+#: ../gtk/gtkcellrenderertext.c:605
+#: ../gtk/gtktreeviewcolumn.c:352
 #: ../gtk/gtkcellrenderertext.c:606
 msgid "How to align the lines"
-msgstr "Kā izlīdzināt rindiņas"
+msgstr "Kā līdzināt rindiņas"
 
-#: ../gtk/gtkcellrenderertext.c:618 ../gtk/gtkcellview.c:312
+#: ../gtk/gtkcellrenderertext.c:617 ../gtk/gtkcellview.c:317
+#: ../gtk/gtktexttag.c:605
+#: ../gtk/gtkcellrenderertext.c:618
+#: ../gtk/gtkcellview.c:315
 #: ../gtk/gtktexttag.c:558
 msgid "Background set"
-msgstr "Fona iestādījums"
+msgstr "Fona iestatījums"
 
-#: ../gtk/gtkcellrenderertext.c:619 ../gtk/gtkcellview.c:313
+#: ../gtk/gtkcellrenderertext.c:618 ../gtk/gtkcellview.c:318
+#: ../gtk/gtktexttag.c:606
+#: ../gtk/gtkcellview.c:315
+#: ../gtk/gtktexttag.c:558
+#: ../gtk/gtkcellrenderertext.c:619
+#: ../gtk/gtkcellview.c:316
 #: ../gtk/gtktexttag.c:559
+#: ../gtk/gtkcellrenderertext.c:670
 msgid "Whether this tag affects the background color"
 msgstr "Vai šis birka ietekmē fona krāsu"
 
-#: ../gtk/gtkcellrenderertext.c:622 ../gtk/gtktexttag.c:566
+#: ../gtk/gtkcellrenderertext.c:621 ../gtk/gtktexttag.c:613
+#: ../gtk/gtkcellrenderertext.c:622
+#: ../gtk/gtktexttag.c:566
 msgid "Foreground set"
-msgstr "Priekšplāna iestādījums"
+msgstr "Priekšplāna iestatījums"
 
-#: ../gtk/gtkcellrenderertext.c:623 ../gtk/gtktexttag.c:567
+#: ../gtk/gtkcellrenderertext.c:622 ../gtk/gtktexttag.c:614
+#: ../gtk/gtktexttag.c:566
+#: ../gtk/gtkcellrenderertext.c:623
+#: ../gtk/gtktexttag.c:567
 msgid "Whether this tag affects the foreground color"
-msgstr "Vai šis birka ietekmē prikšplāna krāsu"
+msgstr "Vai šis birka ietekmē priekšplāna krāsu"
 
-#: ../gtk/gtkcellrenderertext.c:626 ../gtk/gtktexttag.c:570
+#: ../gtk/gtkcellrenderertext.c:625 ../gtk/gtktexttag.c:617
+#: ../gtk/gtkcellrenderertext.c:626
+#: ../gtk/gtktexttag.c:570
 msgid "Editability set"
-msgstr "Rediģējamības iestādījums"
+msgstr "Rediģējamības iestatījums"
 
-#: ../gtk/gtkcellrenderertext.c:627 ../gtk/gtktexttag.c:571
+#: ../gtk/gtkcellrenderertext.c:626 ../gtk/gtktexttag.c:618
+#: ../gtk/gtktexttag.c:570
+#: ../gtk/gtkcellrenderertext.c:627
+#: ../gtk/gtktexttag.c:571
+#: ../gtk/gtkcellrenderertext.c:658
 msgid "Whether this tag affects text editability"
 msgstr "Vai šis birka ietekmē teksta rediģējamību"
 
-#: ../gtk/gtkcellrenderertext.c:630 ../gtk/gtktexttag.c:574
+#: ../gtk/gtkcellrenderertext.c:629 ../gtk/gtktexttag.c:621
+#: ../gtk/gtkcellrenderertext.c:630
+#: ../gtk/gtktexttag.c:574
 msgid "Font family set"
-msgstr "Fonta saimess iestādījums"
+msgstr "Fonta saimes iestatījums"
 
-#: ../gtk/gtkcellrenderertext.c:631 ../gtk/gtktexttag.c:575
+#: ../gtk/gtkcellrenderertext.c:630 ../gtk/gtktexttag.c:622
+#: ../gtk/gtktexttag.c:574
+#: ../gtk/gtkcellrenderertext.c:631
+#: ../gtk/gtktexttag.c:575
 msgid "Whether this tag affects the font family"
 msgstr "Vai šis birka ietekmē fonta saimi"
 
-#: ../gtk/gtkcellrenderertext.c:634 ../gtk/gtktexttag.c:578
+#: ../gtk/gtkcellrenderertext.c:633 ../gtk/gtktexttag.c:625
+#: ../gtk/gtkcellrenderertext.c:634
+#: ../gtk/gtktexttag.c:578
 msgid "Font style set"
-msgstr "Fonta stila iestādījums"
+msgstr "Fonta stila iestatījums"
 
-#: ../gtk/gtkcellrenderertext.c:635 ../gtk/gtktexttag.c:579
+#: ../gtk/gtkcellrenderertext.c:634 ../gtk/gtktexttag.c:626
+#: ../gtk/gtktexttag.c:578
+#: ../gtk/gtkcellrenderertext.c:635
+#: ../gtk/gtktexttag.c:579
 msgid "Whether this tag affects the font style"
 msgstr "Vai šis birka ietekmē fonta stilu"
 
-#: ../gtk/gtkcellrenderertext.c:638 ../gtk/gtktexttag.c:582
+#: ../gtk/gtkcellrenderertext.c:637 ../gtk/gtktexttag.c:629
+#: ../gtk/gtkcellrenderertext.c:638
+#: ../gtk/gtktexttag.c:582
 msgid "Font variant set"
-msgstr "Fonta varianta iestādījums"
+msgstr "Fonta varianta iestatījums"
 
-#: ../gtk/gtkcellrenderertext.c:639 ../gtk/gtktexttag.c:583
+#: ../gtk/gtkcellrenderertext.c:638 ../gtk/gtktexttag.c:630
+#: ../gtk/gtktexttag.c:582
+#: ../gtk/gtkcellrenderertext.c:639
+#: ../gtk/gtktexttag.c:583
 msgid "Whether this tag affects the font variant"
 msgstr "Vai šis birka ietekmē fonta variantu"
 
-#: ../gtk/gtkcellrenderertext.c:642 ../gtk/gtktexttag.c:586
+#: ../gtk/gtkcellrenderertext.c:641 ../gtk/gtktexttag.c:633
+#: ../gtk/gtkcellrenderertext.c:642
+#: ../gtk/gtktexttag.c:586
 msgid "Font weight set"
-msgstr "Fonta platuma iestādījums"
+msgstr "Fonta platuma iestatījums"
 
-#: ../gtk/gtkcellrenderertext.c:643 ../gtk/gtktexttag.c:587
+#: ../gtk/gtkcellrenderertext.c:642 ../gtk/gtktexttag.c:634
+#: ../gtk/gtktexttag.c:586
+#: ../gtk/gtkcellrenderertext.c:643
+#: ../gtk/gtktexttag.c:587
+#: ../gtk/gtkcellrenderertext.c:662
 msgid "Whether this tag affects the font weight"
 msgstr "Vai šis birka ietekmē fonta platumu"
 
-#: ../gtk/gtkcellrenderertext.c:646 ../gtk/gtktexttag.c:590
+#: ../gtk/gtkcellrenderertext.c:645 ../gtk/gtktexttag.c:637
+#: ../gtk/gtkcellrenderertext.c:646
+#: ../gtk/gtktexttag.c:590
 msgid "Font stretch set"
-msgstr "Fonta izstiepšanās iestadījums"
+msgstr "Fonta izstiepšanās iestatījums"
 
-#: ../gtk/gtkcellrenderertext.c:647 ../gtk/gtktexttag.c:591
+#: ../gtk/gtkcellrenderertext.c:646 ../gtk/gtktexttag.c:638
+#: ../gtk/gtktexttag.c:590
+#: ../gtk/gtkcellrenderertext.c:647
+#: ../gtk/gtktexttag.c:591
 msgid "Whether this tag affects the font stretch"
 msgstr "Vai šis birka ietekmē fonta izstiepšanos"
 
-#: ../gtk/gtkcellrenderertext.c:650 ../gtk/gtktexttag.c:594
+#: ../gtk/gtkcellrenderertext.c:649 ../gtk/gtktexttag.c:641
+#: ../gtk/gtkcellrenderertext.c:650
+#: ../gtk/gtktexttag.c:594
 msgid "Font size set"
-msgstr "Fonta izmēra iestādījums"
+msgstr "Fonta izmēra iestatījums"
 
-#: ../gtk/gtkcellrenderertext.c:651 ../gtk/gtktexttag.c:595
+#: ../gtk/gtkcellrenderertext.c:650 ../gtk/gtktexttag.c:642
+#: ../gtk/gtktexttag.c:594
+#: ../gtk/gtkcellrenderertext.c:651
+#: ../gtk/gtktexttag.c:595
+#: ../gtk/gtkcellrenderertext.c:666
 msgid "Whether this tag affects the font size"
 msgstr "Vai šis birka ietekmē fonta izmēru"
 
-#: ../gtk/gtkcellrenderertext.c:654 ../gtk/gtktexttag.c:598
+#: ../gtk/gtkcellrenderertext.c:653 ../gtk/gtktexttag.c:645
+#: ../gtk/gtkcellrenderertext.c:654
+#: ../gtk/gtktexttag.c:598
 msgid "Font scale set"
-msgstr "Fonta mēroga iestādījums"
+msgstr "Fonta mēroga iestatījums"
 
-#: ../gtk/gtkcellrenderertext.c:655 ../gtk/gtktexttag.c:599
+#: ../gtk/gtkcellrenderertext.c:654 ../gtk/gtktexttag.c:646
+#: ../gtk/gtktexttag.c:598
+#: ../gtk/gtkcellrenderertext.c:655
+#: ../gtk/gtktexttag.c:599
 msgid "Whether this tag scales the font size by a factor"
 msgstr "Vai šis birka ietekmē fonta izmēru pēc koeficienta"
 
-#: ../gtk/gtkcellrenderertext.c:658 ../gtk/gtktexttag.c:618
+#: ../gtk/gtkcellrenderertext.c:657 ../gtk/gtktexttag.c:665
 msgid "Rise set"
 msgstr "Pacēluma iestādījums"
 
-#: ../gtk/gtkcellrenderertext.c:659 ../gtk/gtktexttag.c:619
+#: ../gtk/gtkcellrenderertext.c:658 ../gtk/gtktexttag.c:666
+#: ../gtk/gtktexttag.c:618
+#: ../gtk/gtkcellrenderertext.c:659
+#: ../gtk/gtktexttag.c:619
 msgid "Whether this tag affects the rise"
 msgstr "Vai šis birka ietekmē pacēlumu"
 
-#: ../gtk/gtkcellrenderertext.c:662 ../gtk/gtktexttag.c:634
+#: ../gtk/gtkcellrenderertext.c:661 ../gtk/gtktexttag.c:681
 msgid "Strikethrough set"
 msgstr "Caursvītrošanas iestādījums"
 
-#: ../gtk/gtkcellrenderertext.c:663 ../gtk/gtktexttag.c:635
+#: ../gtk/gtkcellrenderertext.c:662 ../gtk/gtktexttag.c:682
+#: ../gtk/gtktexttag.c:634
+#: ../gtk/gtkcellrenderertext.c:663
+#: ../gtk/gtktexttag.c:635
 msgid "Whether this tag affects strikethrough"
-msgstr "Vai šis birka ietekmē caursvītrošanu"
+msgstr "Vai šis birka ietekmē nosvītrošanu"
 
-#: ../gtk/gtkcellrenderertext.c:666 ../gtk/gtktexttag.c:642
+#: ../gtk/gtkcellrenderertext.c:665 ../gtk/gtktexttag.c:689
 msgid "Underline set"
 msgstr "Pasvītrošanas iestādījums"
 
-#: ../gtk/gtkcellrenderertext.c:667 ../gtk/gtktexttag.c:643
+#: ../gtk/gtkcellrenderertext.c:666 ../gtk/gtktexttag.c:690
+#: ../gtk/gtktexttag.c:642
+#: ../gtk/gtkcellrenderertext.c:667
+#: ../gtk/gtktexttag.c:643
 msgid "Whether this tag affects underlining"
 msgstr "Vai šis birka ietekmē pasvītrošanu"
 
-#: ../gtk/gtkcellrenderertext.c:670 ../gtk/gtktexttag.c:606
+#: ../gtk/gtkcellrenderertext.c:669 ../gtk/gtktexttag.c:653
 msgid "Language set"
 msgstr "Valodas iestādījums"
 
-#: ../gtk/gtkcellrenderertext.c:671 ../gtk/gtktexttag.c:607
+#: ../gtk/gtkcellrenderertext.c:670 ../gtk/gtktexttag.c:654
+#: ../gtk/gtktexttag.c:606
+#: ../gtk/gtkcellrenderertext.c:671
+#: ../gtk/gtktexttag.c:607
 msgid "Whether this tag affects the language the text is rendered as"
 msgstr "Vai šis birka ietekmē valodu, kādā teksts tiek atveidots"
 
-#: ../gtk/gtkcellrenderertext.c:674
+#: ../gtk/gtkcellrenderertext.c:673
 msgid "Ellipsize set"
 msgstr "Eliptizēšanas iestatījums"
 
+#: ../gtk/gtkcellrenderertext.c:674
 #: ../gtk/gtkcellrenderertext.c:675
 msgid "Whether this tag affects the ellipsize mode"
-msgstr "Vai šī birka ietekmē eliptizēšanas režīmu"
+msgstr "Vai šī birka ietekmē īsināšanas ar daudzpunkti režīmu"
 
-#: ../gtk/gtkcellrenderertext.c:678
+#: ../gtk/gtkcellrenderertext.c:677
 msgid "Align set"
 msgstr "Centrēšana"
 
+#: ../gtk/gtkcellrenderertext.c:678
 #: ../gtk/gtkcellrenderertext.c:679
 msgid "Whether this tag affects the alignment mode"
-msgstr "Vai šī birka ietekmē centrēšanas režīmu"
+msgstr "Vai šī birka ietekmē līdzināšanas režīmu"
 
+#: ../gtk/gtkcellrenderertoggle.c:140
 #: ../gtk/gtkcellrenderertoggle.c:128
 msgid "Toggle state"
-msgstr "Slēgt stāvokli"
+msgstr "Pārslēgt stāvokli"
 
+#: ../gtk/gtkcellrenderertoggle.c:141
 #: ../gtk/gtkcellrenderertoggle.c:129
 msgid "The toggle state of the button"
-msgstr "Slēgt pogas stāvokli"
+msgstr "Pārslēgt pogas stāvokli"
 
+#: ../gtk/gtkcellrenderertoggle.c:148
 #: ../gtk/gtkcellrenderertoggle.c:136
 msgid "Inconsistent state"
 msgstr "Nekonsekvents stāvoklis"
 
+#: ../gtk/gtkcellrenderertoggle.c:149
 #: ../gtk/gtkcellrenderertoggle.c:137
 msgid "The inconsistent state of the button"
 msgstr "Nekonsekvents pogas stāvoklis"
 
+#: ../gtk/gtkcellrenderertoggle.c:156
 #: ../gtk/gtkcellrenderertoggle.c:144
 msgid "Activatable"
 msgstr "Aktivizējams"
 
+#: ../gtk/gtkcellrenderertoggle.c:157
 #: ../gtk/gtkcellrenderertoggle.c:145
 msgid "The toggle button can be activated"
-msgstr "Slēgšanas poga var tikt aktivizēta"
+msgstr "Pārslēgšanas poga var tikt aktivizēta"
 
+#: ../gtk/gtkcellrenderertoggle.c:164
 #: ../gtk/gtkcellrenderertoggle.c:152
 msgid "Radio state"
 msgstr "Radio stāvoklis"
 
+#: ../gtk/gtkcellrenderertoggle.c:165
 #: ../gtk/gtkcellrenderertoggle.c:153
 msgid "Draw the toggle button as a radio button"
-msgstr "Zīmē slēgšanas pogu kā radio pogu"
+msgstr "Zīmēt pārslēgšanas pogu kā radio pogu"
 
+#: ../gtk/gtkcellrenderertoggle.c:172
 #: ../gtk/gtkcellrenderertoggle.c:160
 msgid "Indicator size"
 msgstr "Indikatora izmērs"
 
-#: ../gtk/gtkcellrenderertoggle.c:161 ../gtk/gtkcheckbutton.c:78
+#: ../gtk/gtkcellrenderertoggle.c:173 ../gtk/gtkcheckbutton.c:93
+#: ../gtk/gtkcheckmenuitem.c:147
+#: ../gtk/gtkcellrenderertoggle.c:161
+#: ../gtk/gtkcheckbutton.c:78
 #: ../gtk/gtkcheckmenuitem.c:130
 msgid "Size of check or radio indicator"
-msgstr "Ķeksīša vai radio indikātora izmērs"
+msgstr "Ķeksīša vai radio indikatora izmērs"
 
+#: ../gtk/gtkcellview.c:212
 #: ../gtk/gtkcellview.c:210
-#, fuzzy
 #| msgid "Background color"
 msgid "Background RGBA color"
-msgstr "Fona krāsa"
+msgstr "Fona RGBA krāsa"
 
+#: ../gtk/gtkcellview.c:227
 #: ../gtk/gtkcellview.c:225
 msgid "CellView model"
 msgstr "CellView modelis"
 
+#: ../gtk/gtkcellview.c:228
 #: ../gtk/gtkcellview.c:226
 msgid "The model for cell view"
 msgstr "Šūnu skata modelis"
 
-#: ../gtk/gtkcellview.c:241 ../gtk/gtkcombobox.c:941
-#: ../gtk/gtkentrycompletion.c:445 ../gtk/gtkiconview.c:764
-#: ../gtk/gtktreemenu.c:329 ../gtk/gtktreeviewcolumn.c:412
+#: ../gtk/gtkcellview.c:246 ../gtk/gtkcombobox.c:945
+#: ../gtk/gtkentrycompletion.c:448 ../gtk/gtkiconview.c:769
+#: ../gtk/gtktreemenu.c:329 ../gtk/gtktreeviewcolumn.c:427
+#: ../gtk/gtkcellview.c:244
+#: ../gtk/gtkcombobox.c:944
+#: ../gtk/gtkiconview.c:770
+#: ../gtk/gtktreeviewcolumn.c:415
+#: ../gtk/gtkcellview.c:245
+#: ../gtk/gtkentrycompletion.c:449
+#: ../gtk/gtkiconview.c:771
+#: ../gtk/gtktreemenu.c:330
+#: ../gtk/gtktreeviewcolumn.c:416
 msgid "Cell Area"
-msgstr ""
-
-#: ../gtk/gtkcellview.c:242 ../gtk/gtkcombobox.c:942
-#: ../gtk/gtkentrycompletion.c:446 ../gtk/gtkiconview.c:765
-#: ../gtk/gtktreemenu.c:330 ../gtk/gtktreeviewcolumn.c:413
+msgstr "Šūnas laukums"
+
+#: ../gtk/gtkcellview.c:247 ../gtk/gtkcombobox.c:946
+#: ../gtk/gtkentrycompletion.c:449 ../gtk/gtkiconview.c:770
+#: ../gtk/gtktreemenu.c:330 ../gtk/gtktreeviewcolumn.c:428
+#: ../gtk/gtkcellview.c:244
+#: ../gtk/gtkcombobox.c:944
+#: ../gtk/gtkentrycompletion.c:448
+#: ../gtk/gtktreemenu.c:329
+#: ../gtk/gtktreeviewcolumn.c:415
+#: ../gtk/gtkcellview.c:245
+#: ../gtk/gtkcombobox.c:945
+#: ../gtk/gtkiconview.c:771
+#: ../gtk/gtktreeviewcolumn.c:416
 msgid "The GtkCellArea used to layout cells"
-msgstr ""
+msgstr "GtkCellArea, ko izmanto, lai izkārtotu šūnas"
 
-#: ../gtk/gtkcellview.c:265
+#: ../gtk/gtkcellview.c:270
+#: ../gtk/gtkcellview.c:268
 msgid "Cell Area Context"
-msgstr ""
+msgstr "Sūnas laukuma konteksts"
 
-#: ../gtk/gtkcellview.c:266
+#: ../gtk/gtkcellview.c:271
+#: ../gtk/gtkcellview.c:269
 msgid "The GtkCellAreaContext used to compute the geometry of the cell view"
-msgstr ""
+msgstr "GtkCellAreaContext, ko izmanto, lai izrēķinātu šūnu skata ģeometriju"
 
-#: ../gtk/gtkcellview.c:283
-#, fuzzy
+#: ../gtk/gtkcellview.c:288
+#: ../gtk/gtkcellview.c:286
 #| msgid "Sensitive"
 msgid "Draw Sensitive"
-msgstr "Jūtīga"
+msgstr "Zīmēšanas jutīgums"
 
-#: ../gtk/gtkcellview.c:284
-#, fuzzy
+#: ../gtk/gtkcellview.c:289
+#: ../gtk/gtkcellview.c:287
 #| msgid "Whether tree lines should be drawn in the tree view"
 msgid "Whether to force cells to be drawn in a sensitive state"
-msgstr "Vai koka skatā zīmēt koka līnijas"
+msgstr "Vai piespiest šūnas zīmēt jutīgā stāvoklī"
 
-#: ../gtk/gtkcellview.c:302
-#, fuzzy
+#: ../gtk/gtkcellview.c:307
+#: ../gtk/gtkcellview.c:305
 #| msgid "Model"
 msgid "Fit Model"
-msgstr "Modelis"
+msgstr "Piemērot modeli"
 
-#: ../gtk/gtkcellview.c:303
+#: ../gtk/gtkcellview.c:308
+#: ../gtk/gtkcellview.c:306
 msgid "Whether to request enough space for every row in the model"
-msgstr ""
+msgstr "Vai pieprasīt pietiekami daudz vietas katrai rindai modelī"
 
-#: ../gtk/gtkcheckbutton.c:77 ../gtk/gtkcheckmenuitem.c:129
+#: ../gtk/gtkcheckbutton.c:92 ../gtk/gtkcheckmenuitem.c:146
+#: ../gtk/gtkcheckbutton.c:77
+#: ../gtk/gtkcheckmenuitem.c:129
 msgid "Indicator Size"
-msgstr "Indikātora Izmērs"
+msgstr "Indikatora izmērs"
 
-#: ../gtk/gtkcheckbutton.c:85 ../gtk/gtkexpander.c:345
+#: ../gtk/gtkcheckbutton.c:100 ../gtk/gtkexpander.c:364
+#: ../gtk/gtkcheckbutton.c:85
+#: ../gtk/gtkexpander.c:345
 msgid "Indicator Spacing"
-msgstr "Indikātora Atstarpe"
+msgstr "Indikatora atstarpe"
 
+#: ../gtk/gtkcheckbutton.c:101
 #: ../gtk/gtkcheckbutton.c:86
 msgid "Spacing around check or radio indicator"
-msgstr "Atstarpe apkārt ap ķeksīti vai radio indikātoru"
+msgstr "Atstarpe apkārt ap ķeksīti vai radio indikatoru"
 
+#: ../gtk/gtkcheckmenuitem.c:124
 #: ../gtk/gtkcheckmenuitem.c:107
 msgid "Whether the menu item is checked"
 msgstr "Vai izvēlnes priekšmets ir atķeksēts"
 
-#: ../gtk/gtkcheckmenuitem.c:114 ../gtk/gtktogglebutton.c:133
+#: ../gtk/gtkcheckmenuitem.c:131 ../gtk/gtktogglebutton.c:186
+#: ../gtk/gtkcheckmenuitem.c:114
+#: ../gtk/gtktogglebutton.c:133
 msgid "Inconsistent"
 msgstr "Nekonsekvents"
 
+#: ../gtk/gtkcheckmenuitem.c:132
 #: ../gtk/gtkcheckmenuitem.c:115
 msgid "Whether to display an \"inconsistent\" state"
 msgstr "Vai parādīt \"nekonsekventu\" stāvokli"
 
+#: ../gtk/gtkcheckmenuitem.c:139
 #: ../gtk/gtkcheckmenuitem.c:122
 msgid "Draw as radio menu item"
 msgstr "Zīmēt kā radio izvēlnes priekšmetu"
 
-#: ../gtk/gtkcheckmenuitem.c:123
+#: ../gtk/gtkcheckmenuitem.c:140
 msgid "Whether the menu item looks like a radio menu item"
 msgstr "Vai izvelnes sadaļa izskatās kā radio izvēlnes sadaļa"
 
@@ -2231,31 +2721,36 @@ msgid "Use alpha"
 msgstr "Lietot alfa"
 
 #: ../gtk/gtkcolorbutton.c:171
-#, fuzzy
 msgid "Whether to give the color an alpha value"
-msgstr "Vai piešķirt, vai nē, krāsai alfa vērtību"
+msgstr "Vai piešķirt, krāsai alfa vērtību"
 
-#: ../gtk/gtkcolorbutton.c:185 ../gtk/gtkfilechooserbutton.c:397
-#: ../gtk/gtkfontbutton.c:140 ../gtk/gtkprintjob.c:141
-#: ../gtk/gtkstatusicon.c:407 ../gtk/gtktreeviewcolumn.c:319
+#: ../gtk/gtkcolorbutton.c:185 ../gtk/gtkfilechooserbutton.c:440
+#: ../gtk/gtkfontbutton.c:151 ../gtk/gtkprintjob.c:141
+#: ../gtk/gtkstatusicon.c:438 ../gtk/gtktreeviewcolumn.c:331
+#: ../gtk/gtkfilechooserbutton.c:397
+#: ../gtk/gtkfontbutton.c:140
+#: ../gtk/gtkstatusicon.c:408
+#: ../gtk/gtktreeviewcolumn.c:319
 msgid "Title"
 msgstr "Virsraksts"
 
 #: ../gtk/gtkcolorbutton.c:186
 msgid "The title of the color selection dialog"
-msgstr "Krāsas izvēlnes loga nosaukums"
+msgstr "Krāsas izvēles loga nosaukums"
 
-#: ../gtk/gtkcolorbutton.c:200 ../gtk/gtkcolorsel.c:338
+#: ../gtk/gtkcolorbutton.c:200 ../gtk/gtkcolorsel.c:336
+#: ../gtk/gtkcolorsel.c:338
 msgid "Current Color"
-msgstr "Pašreizējā Krāsa"
+msgstr "Pašreizējā krāsa"
 
 #: ../gtk/gtkcolorbutton.c:201
 msgid "The selected color"
 msgstr "Izvēlētā krāsa"
 
-#: ../gtk/gtkcolorbutton.c:215 ../gtk/gtkcolorsel.c:345
+#: ../gtk/gtkcolorbutton.c:215 ../gtk/gtkcolorsel.c:343
+#: ../gtk/gtkcolorsel.c:345
 msgid "Current Alpha"
-msgstr "Pašreizējā Alpha"
+msgstr "Pašreizējā alfa"
 
 #: ../gtk/gtkcolorbutton.c:216
 msgid "The selected opacity value (0 fully transparent, 65535 fully opaque)"
@@ -2264,274 +2759,325 @@ msgstr ""
 "necaurredzams)"
 
 #: ../gtk/gtkcolorbutton.c:230
-#, fuzzy
 #| msgid "Current Color"
 msgid "Current RGBA Color"
-msgstr "Pašreizējā Krāsa"
+msgstr "Pašreizējā RGBA krāsa"
 
 #: ../gtk/gtkcolorbutton.c:231
-#, fuzzy
 #| msgid "The selected color"
 msgid "The selected RGBA color"
-msgstr "Izvēlētā krāsa"
+msgstr "Izvēlētā RGBA krāsa"
 
+#: ../gtk/gtkcolorsel.c:322
 #: ../gtk/gtkcolorsel.c:324
 msgid "Has Opacity Control"
-msgstr "Ir Necaurredzamības Kontrole"
+msgstr "Ir necaurredzamības kontrole"
 
+#: ../gtk/gtkcolorsel.c:323
 #: ../gtk/gtkcolorsel.c:325
 msgid "Whether the color selector should allow setting opacity"
-msgstr "Vai krāsu izvēlētājam būt jāļauj iestatīt necaurredzamība"
+msgstr "Vai krāsu selektoram būt jāļauj iestatīt necaurredzamība"
 
+#: ../gtk/gtkcolorsel.c:329
 #: ../gtk/gtkcolorsel.c:331
 msgid "Has palette"
 msgstr "Ir palete"
 
+#: ../gtk/gtkcolorsel.c:330
 #: ../gtk/gtkcolorsel.c:332
 msgid "Whether a palette should be used"
 msgstr "Vai būtu jālieto palete"
 
+#: ../gtk/gtkcolorsel.c:337
 #: ../gtk/gtkcolorsel.c:339
 msgid "The current color"
 msgstr "Pašreizējā krāsa"
 
+#: ../gtk/gtkcolorsel.c:344
 #: ../gtk/gtkcolorsel.c:346
 msgid "The current opacity value (0 fully transparent, 65535 fully opaque)"
 msgstr ""
 "Pašreizējā necaurredzamības vērtība (0 pilnībā caurspīdīgs, 65535 pilnībā "
 "necaurredzams)"
 
+#: ../gtk/gtkcolorsel.c:358
 #: ../gtk/gtkcolorsel.c:360
-#, fuzzy
 #| msgid "Current Alpha"
 msgid "Current RGBA"
-msgstr "Pašreizējā Alpha"
+msgstr "Pašreizējā RGBA"
 
+#: ../gtk/gtkcolorsel.c:359
 #: ../gtk/gtkcolorsel.c:361
-#, fuzzy
 #| msgid "The current color"
 msgid "The current RGBA color"
-msgstr "Pašreizējā krāsa"
+msgstr "Pašreizējā RGBA krāsa"
 
+#: ../gtk/gtkcolorseldialog.c:134
 #: ../gtk/gtkcolorseldialog.c:110
 msgid "Color Selection"
 msgstr "Krāsu izlase"
 
+#: ../gtk/gtkcolorseldialog.c:135
 #: ../gtk/gtkcolorseldialog.c:111
 msgid "The color selection embedded in the dialog."
 msgstr "Logā iekļautā krāsu izlase."
 
+#: ../gtk/gtkcolorseldialog.c:141
 #: ../gtk/gtkcolorseldialog.c:117
 msgid "OK Button"
-msgstr "Poga Labi"
+msgstr "Poga 'Labi'"
 
+#: ../gtk/gtkcolorseldialog.c:142
 #: ../gtk/gtkcolorseldialog.c:118
 msgid "The OK button of the dialog."
-msgstr "Loga Labi poga."
+msgstr "Dialoglodziņa 'Labi' poga."
 
+#: ../gtk/gtkcolorseldialog.c:148
 #: ../gtk/gtkcolorseldialog.c:124
 msgid "Cancel Button"
-msgstr "Atcelt poga"
+msgstr "Poga 'Atcelt'"
 
+#: ../gtk/gtkcolorseldialog.c:149
 #: ../gtk/gtkcolorseldialog.c:125
 msgid "The cancel button of the dialog."
-msgstr "Loga atcelt poga."
+msgstr "Dialoglodziņa 'Atcelt' poga."
 
+#: ../gtk/gtkcolorseldialog.c:155
 #: ../gtk/gtkcolorseldialog.c:131
 msgid "Help Button"
-msgstr "Palīdzības poga"
+msgstr "Poga 'Palīdzība'"
 
+#: ../gtk/gtkcolorseldialog.c:156
 #: ../gtk/gtkcolorseldialog.c:132
 msgid "The help button of the dialog."
-msgstr "Loga Palīdzības poga."
+msgstr "Dialoglodziņa 'Palīdzība' poga."
 
+#: ../gtk/gtkcombobox.c:664
 #: ../gtk/gtkcombobox.c:663
 msgid "ComboBox model"
-msgstr "ComboBox modelis"
+msgstr "Kombinētā lodziņa modelis"
 
-#: ../gtk/gtkcombobox.c:664
+#: ../gtk/gtkcombobox.c:665
 msgid "The model for the combo box"
 msgstr "Lauku saraksta modelis"
 
-#: ../gtk/gtkcombobox.c:681
+#: ../gtk/gtkcombobox.c:682
 msgid "Wrap width for laying out the items in a grid"
-msgstr ""
+msgstr "Aplaušanas platums, priekšmetu izklāšanai uz režģa"
 
-#: ../gtk/gtkcombobox.c:703 ../gtk/gtktreemenu.c:383
+#: ../gtk/gtkcombobox.c:704 ../gtk/gtktreemenu.c:383
+#: ../gtk/gtkcombobox.c:703
+#: ../gtk/gtktreemenu.c:384
 msgid "Row span column"
 msgstr "Rindas izvērsuma kolona"
 
-#: ../gtk/gtkcombobox.c:704 ../gtk/gtktreemenu.c:384
+#: ../gtk/gtkcombobox.c:705 ../gtk/gtktreemenu.c:384
+#: ../gtk/gtkcombobox.c:704
 msgid "TreeModel column containing the row span values"
 msgstr "TreeModel kolonna, kas satur rindas savienojuma vērtības"
 
-#: ../gtk/gtkcombobox.c:725 ../gtk/gtktreemenu.c:404
+#: ../gtk/gtkcombobox.c:726 ../gtk/gtktreemenu.c:404
+#: ../gtk/gtkcombobox.c:725
+#: ../gtk/gtktreemenu.c:405
 msgid "Column span column"
 msgstr "Kolonnas savienotājkolonna"
 
-#: ../gtk/gtkcombobox.c:726 ../gtk/gtktreemenu.c:405
+#: ../gtk/gtkcombobox.c:727 ../gtk/gtktreemenu.c:405
+#: ../gtk/gtkcombobox.c:726
 msgid "TreeModel column containing the column span values"
 msgstr "TreeModel kolonna, kas satur kolonnas savienojuma vērtības"
 
+#: ../gtk/gtkcombobox.c:748
 #: ../gtk/gtkcombobox.c:747
 msgid "Active item"
-msgstr "Aktīvais objekts"
+msgstr "Aktīvais priekšmets"
 
-#: ../gtk/gtkcombobox.c:748
+#: ../gtk/gtkcombobox.c:749
 msgid "The item which is currently active"
 msgstr "Šobrīd aktīvais objekts"
 
-#: ../gtk/gtkcombobox.c:767 ../gtk/gtkuimanager.c:225
+#: ../gtk/gtkcombobox.c:768 ../gtk/gtkuimanager.c:479
+#: ../gtk/gtkcombobox.c:767
+#: ../gtk/gtkuimanager.c:225
 msgid "Add tearoffs to menus"
 msgstr "Pievienot pārcēlienus izvēlnēm"
 
-#: ../gtk/gtkcombobox.c:768
+#: ../gtk/gtkcombobox.c:769
 msgid "Whether dropdowns should have a tearoff menu item"
 msgstr "Vai izkrītošajām izvēlnēm vajadzētu pārceļamās izvelnes elementu"
 
-#: ../gtk/gtkcombobox.c:783 ../gtk/gtkentry.c:780
+#: ../gtk/gtkcombobox.c:784 ../gtk/gtkentry.c:786
+#: ../gtk/gtkcombobox.c:783
+#: ../gtk/gtkentry.c:779
 msgid "Has Frame"
-msgstr "Ir Rāmis"
+msgstr "Ir ietvars"
 
-#: ../gtk/gtkcombobox.c:784
+#: ../gtk/gtkcombobox.c:785
 msgid "Whether the combo box draws a frame around the child"
 msgstr "Vai lauki sarakstā zīmē rāmi ap bērnu"
 
-#: ../gtk/gtkcombobox.c:792
+#: ../gtk/gtkcombobox.c:793
 msgid "Whether the combo box grabs focus when it is clicked with the mouse"
 msgstr "Vai lauki sarakstā sagrābj fokusu, kad ir noklikšķināta pele"
 
-#: ../gtk/gtkcombobox.c:807 ../gtk/gtkmenu.c:641
+#: ../gtk/gtkcombobox.c:808 ../gtk/gtkmenu.c:643
+#: ../gtk/gtkcombobox.c:807
+#: ../gtk/gtkmenu.c:641
 msgid "Tearoff Title"
-msgstr "Izslēgšanas Virsraksts"
+msgstr "Pārcelšanas virsraksts"
 
-#: ../gtk/gtkcombobox.c:808
+#: ../gtk/gtkcombobox.c:809
 msgid ""
 "A title that may be displayed by the window manager when the popup is torn-"
 "off"
-msgstr ""
+msgstr "Logu pārvaldnieks var parādīt virsrakstu, kad uzvedne ir pārcelta"
 
+#: ../gtk/gtkcombobox.c:826
 #: ../gtk/gtkcombobox.c:825
 msgid "Popup shown"
-msgstr "Uzlecošais loga parādīts"
+msgstr "Parādīts uznirstošais logs"
 
-#: ../gtk/gtkcombobox.c:826
+#: ../gtk/gtkcombobox.c:827
 msgid "Whether the combo's dropdown is shown"
-msgstr ""
+msgstr "Vai tiek rādīts kombinētā lodziņa izkrītošais saraksts"
 
+#: ../gtk/gtkcombobox.c:843
 #: ../gtk/gtkcombobox.c:842
 msgid "Button Sensitivity"
-msgstr "Pogu jūtība"
+msgstr "Pogu jutība"
 
-#: ../gtk/gtkcombobox.c:843
+#: ../gtk/gtkcombobox.c:844
 msgid "Whether the dropdown button is sensitive when the model is empty"
-msgstr ""
+msgstr "Vai izkrītošā poga ir ir jutīga, kad modelis ir tukšs"
 
-#: ../gtk/gtkcombobox.c:859
-#, fuzzy
+#: ../gtk/gtkcombobox.c:860
 #| msgid "Whether the combo box draws a frame around the child"
 msgid "Whether combo box has an entry"
-msgstr "Vai lauki sarakstā zīmē rāmi ap bērnu"
+msgstr "Vai kombinētajam lodziņam ir ieraksti"
 
+#: ../gtk/gtkcombobox.c:875
 #: ../gtk/gtkcombobox.c:874
-#, fuzzy
 #| msgid "Text Column"
 msgid "Entry Text Column"
-msgstr "Teksta kolonna"
+msgstr "Ievades teksta kolonna"
 
-#: ../gtk/gtkcombobox.c:875
+#: ../gtk/gtkcombobox.c:876
 msgid ""
 "The column in the combo box's model to associate with strings from the entry "
 "if the combo was created with #GtkComboBox:has-entry = %TRUE"
 msgstr ""
+"Kolonna kombinētā lodziņa modelī, ko asociēt ar virknēm no ieraksta, ja "
+"kombinētais lodziņš ir veidots ar #GtkComboBox:has-entry = %TRUE"
 
+#: ../gtk/gtkcombobox.c:893
 #: ../gtk/gtkcombobox.c:892
-#, fuzzy
 #| msgid "Columns"
 msgid "ID Column"
-msgstr "Kolonnas"
+msgstr "ID kolonna"
 
-#: ../gtk/gtkcombobox.c:893
+#: ../gtk/gtkcombobox.c:894
 msgid ""
 "The column in the combo box's model that provides string IDs for the values "
 "in the model"
 msgstr ""
+"Kolonna kombinētā lodziņa modelī, kas nodrošina virknes ID vērtībām modelī"
 
+#: ../gtk/gtkcombobox.c:909
 #: ../gtk/gtkcombobox.c:908
-#, fuzzy
 #| msgid "Active"
 msgid "Active id"
-msgstr "Aktīvs"
+msgstr "Aktīvais id"
 
-#: ../gtk/gtkcombobox.c:909
-#, fuzzy
+#: ../gtk/gtkcombobox.c:910
 #| msgid "The name of the icon from the icon theme"
 msgid "The value of the id column for the active row"
-msgstr "Ikonas nosaukums no ikonas tēmas"
+msgstr "ID kolonnas vērtība aktīvajai rindai"
 
+#: ../gtk/gtkcombobox.c:925
 #: ../gtk/gtkcombobox.c:924
-#, fuzzy
 #| msgid "Fixed Width"
 msgid "Popup Fixed Width"
-msgstr "Fiksēts Platums"
+msgstr "Uznirstošā loga fiksēts platums"
 
-#: ../gtk/gtkcombobox.c:925
+#: ../gtk/gtkcombobox.c:926
 msgid ""
 "Whether the popup's width should be a fixed width matching the allocated "
 "width of the combo box"
 msgstr ""
+"Vai uzvednes platumam vajadzētu būt fiksētam un tādam pašam, kā kombinētajam "
+"lodziņam."
 
-#: ../gtk/gtkcombobox.c:948
+#: ../gtk/gtkcombobox.c:952
+#: ../gtk/gtkcombobox.c:951
 msgid "Appears as list"
 msgstr "Parādās kā saraksts"
 
-#: ../gtk/gtkcombobox.c:949
+#: ../gtk/gtkcombobox.c:953
 msgid "Whether dropdowns should look like lists rather than menus"
 msgstr "Vai izkrītošajiem jāizskatās kā sarakstiem nevis kā izvēlnēm"
 
-#: ../gtk/gtkcombobox.c:965
+#: ../gtk/gtkcombobox.c:969
+#: ../gtk/gtkcombobox.c:968
 msgid "Arrow Size"
 msgstr "Bultas izmērs"
 
-#: ../gtk/gtkcombobox.c:966
+#: ../gtk/gtkcombobox.c:970
 msgid "The minimum size of the arrow in the combo box"
 msgstr "Minimālais izvēļu saraksta bultas izmērs"
 
-#: ../gtk/gtkcombobox.c:981 ../gtk/gtkentry.c:880 ../gtk/gtkhandlebox.c:190
-#: ../gtk/gtkmenubar.c:207 ../gtk/gtkstatusbar.c:180 ../gtk/gtktoolbar.c:601
+#: ../gtk/gtkcombobox.c:987
+#| msgid "Amount of space used up by arrow"
+msgid "The amount of space used by the arrow"
+msgstr "Bultiņas izmantotās vietas apjoms"
+
+#: ../gtk/gtkcombobox.c:1002 ../gtk/gtkentry.c:886 ../gtk/gtkhandlebox.c:218
+#: ../gtk/gtkmenubar.c:217 ../gtk/gtkstatusbar.c:182 ../gtk/gtktoolbar.c:611
 #: ../gtk/gtkviewport.c:153
+#: ../gtk/gtkcombobox.c:1001
+#: ../gtk/gtkentry.c:879
+#: ../gtk/gtkhandlebox.c:190
+#: ../gtk/gtkmenubar.c:207
+#: ../gtk/gtkstatusbar.c:180
+#: ../gtk/gtktoolbar.c:601
 msgid "Shadow type"
 msgstr "Ēnas tips"
 
-#: ../gtk/gtkcombobox.c:982
+#: ../gtk/gtkcombobox.c:1003
 msgid "Which kind of shadow to draw around the combo box"
 msgstr "Kāda tipa ēnu zīmēt ap izvēļņu sarakstu"
 
+#: ../gtk/gtkcontainer.c:457
 #: ../gtk/gtkcontainer.c:453
 msgid "Resize mode"
 msgstr "Izmēru maiņas režīms"
 
+#: ../gtk/gtkcontainer.c:458
 #: ../gtk/gtkcontainer.c:454
 msgid "Specify how resize events are handled"
-msgstr "Nosakiet, kā izmēru maiņas notikumi tiek izrīkoti"
+msgstr "Norādiet, kā izmēru maiņas notikumi tiek apstrādāti"
 
+#: ../gtk/gtkcontainer.c:465
 #: ../gtk/gtkcontainer.c:461
 msgid "Border width"
-msgstr "Ietvara platums"
+msgstr "Robežas platums"
 
+#: ../gtk/gtkcontainer.c:466
 #: ../gtk/gtkcontainer.c:462
 msgid "The width of the empty border outside the containers children"
 msgstr "Tukšās robežas platums ārpus saturētāja bērniem"
 
+#: ../gtk/gtkcontainer.c:474
 #: ../gtk/gtkcontainer.c:470
 msgid "Child"
 msgstr "Bērns"
 
+#: ../gtk/gtkcontainer.c:475
 #: ../gtk/gtkcontainer.c:471
 msgid "Can be used to add a new child to the container"
 msgstr "Var tikt lietots, lai pievienotu jaunu bērnu pie saturētāja"
 
-#: ../gtk/gtkdialog.c:289 ../gtk/gtkinfobar.c:426
+#: ../gtk/gtkdialog.c:289 ../gtk/gtkinfobar.c:427
+#: ../gtk/gtkinfobar.c:426
 msgid "Content area border"
 msgstr "Satura laukuma robeža"
 
@@ -2539,7 +3085,8 @@ msgstr "Satura laukuma robeža"
 msgid "Width of border around the main dialog area"
 msgstr "Robežas platums ap galveno dialoga laukumu"
 
-#: ../gtk/gtkdialog.c:307 ../gtk/gtkinfobar.c:443
+#: ../gtk/gtkdialog.c:307 ../gtk/gtkinfobar.c:444
+#: ../gtk/gtkinfobar.c:443
 msgid "Content area spacing"
 msgstr "Satura apgabala atstatums"
 
@@ -2547,15 +3094,19 @@ msgstr "Satura apgabala atstatums"
 msgid "Spacing between elements of the main dialog area"
 msgstr "Atstarpe starp elementiem un galveno loga apgabalu"
 
-#: ../gtk/gtkdialog.c:315 ../gtk/gtkinfobar.c:459
+#: ../gtk/gtkdialog.c:315 ../gtk/gtkinfobar.c:460
+#: ../gtk/gtkinfobar.c:459
+#: ../gtk/gtkdialog.c:316
 msgid "Button spacing"
 msgstr "Pogu atstarpe"
 
-#: ../gtk/gtkdialog.c:316 ../gtk/gtkinfobar.c:460
+#: ../gtk/gtkdialog.c:316 ../gtk/gtkinfobar.c:461
+#: ../gtk/gtkinfobar.c:460
 msgid "Spacing between buttons"
 msgstr "Atstarpe starp pogām"
 
-#: ../gtk/gtkdialog.c:324 ../gtk/gtkinfobar.c:475
+#: ../gtk/gtkdialog.c:324 ../gtk/gtkinfobar.c:476
+#: ../gtk/gtkinfobar.c:475
 msgid "Action area border"
 msgstr "Darbības laukuma robeža"
 
@@ -2563,78 +3114,104 @@ msgstr "Darbības laukuma robeža"
 msgid "Width of border around the button area at the bottom of the dialog"
 msgstr "Robežas platums ap pogu laukumu dialoga apakšā"
 
-#: ../gtk/gtkentry.c:727
-#, fuzzy
+#: ../gtk/gtkentry.c:733
+#: ../gtk/gtkentry.c:726
 msgid "Text Buffer"
-msgstr "Buferis"
+msgstr "Teksta buferis"
 
-#: ../gtk/gtkentry.c:728
+#: ../gtk/gtkentry.c:734
+#: ../gtk/gtkentry.c:727
+#: ../gtk/gtklabel.c:662
 msgid "Text buffer object which actually stores entry text"
-msgstr ""
+msgstr "Teksta bufera objekts, kas faktiski glabā ieraksta tekstu"
 
-#: ../gtk/gtkentry.c:735 ../gtk/gtklabel.c:662
+#: ../gtk/gtkentry.c:741 ../gtk/gtklabel.c:839
+#: ../gtk/gtkentry.c:734
+#: ../gtk/gtklabel.c:662
 msgid "Cursor Position"
-msgstr "Kursora Pozīcija"
+msgstr "Kursora pozīcija"
 
-#: ../gtk/gtkentry.c:736 ../gtk/gtklabel.c:663
+#: ../gtk/gtkentry.c:742 ../gtk/gtklabel.c:840
+#: ../gtk/gtkentry.c:735
+#: ../gtk/gtklabel.c:663
 msgid "The current position of the insertion cursor in chars"
-msgstr "Pašreizējā iespraušanas kursora pozīcijia rakstzīmēs"
+msgstr "Pašreizējā iespraušanas kursora pozīcija rakstzīmēs"
 
-#: ../gtk/gtkentry.c:745 ../gtk/gtklabel.c:672
+#: ../gtk/gtkentry.c:751 ../gtk/gtklabel.c:849
+#: ../gtk/gtkentry.c:744
+#: ../gtk/gtklabel.c:672
 msgid "Selection Bound"
-msgstr "Izvēles Ierobežojums"
+msgstr "Izvēles ierobežojums"
 
-#: ../gtk/gtkentry.c:746 ../gtk/gtklabel.c:673
+#: ../gtk/gtkentry.c:752 ../gtk/gtklabel.c:850
+#: ../gtk/gtkentry.c:745
+#: ../gtk/gtklabel.c:673
 msgid ""
 "The position of the opposite end of the selection from the cursor in chars"
-msgstr "Izvēles iespējamā beigu pozīcija no kursora rakstzīmēs"
+msgstr "Pozīcija uz otru izvēles galu no kursora rakstzīmēs"
 
-#: ../gtk/gtkentry.c:756
+#: ../gtk/gtkentry.c:762
+#: ../gtk/gtkentry.c:755
+#: ../gtk/gtkentrybuffer.c:382
 msgid "Whether the entry contents can be edited"
 msgstr "Vai ieraksta saturs var tikt rediģēts"
 
-#: ../gtk/gtkentry.c:763 ../gtk/gtkentrybuffer.c:382
+#: ../gtk/gtkentry.c:769 ../gtk/gtkentrybuffer.c:382
+#: ../gtk/gtkentry.c:762
 msgid "Maximum length"
 msgstr "Maksimālais garums"
 
-#: ../gtk/gtkentry.c:764 ../gtk/gtkentrybuffer.c:383
+#: ../gtk/gtkentry.c:770 ../gtk/gtkentrybuffer.c:383
+#: ../gtk/gtkentry.c:763
 msgid "Maximum number of characters for this entry. Zero if no maximum"
-msgstr "Maksimālais rakstzimju daudzums šim ierakstam. Nulle, ja nav maksimuma"
+msgstr "Maksimālais rakstzīmju daudzums šim ierakstam. Nulle, ja nav maksimuma"
 
-#: ../gtk/gtkentry.c:772
+#: ../gtk/gtkentry.c:778
+#: ../gtk/gtkentry.c:771
 msgid "Visibility"
 msgstr "Redzamība"
 
-#: ../gtk/gtkentry.c:773
+#: ../gtk/gtkentry.c:779
+#: ../gtk/gtkcombobox.c:783
+#: ../gtk/gtkentry.c:772
 msgid ""
 "FALSE displays the \"invisible char\" instead of the actual text (password "
 "mode)"
-msgstr ""
-"FALSE parāda \"neredzamo rakstzīmi\" īstā teksta vietā (paroles režīms)"
+msgstr "APLAMS parāda \"neredzamo rakstzīmi\" īstā teksta vietā (paroles režīms)"
 
-#: ../gtk/gtkentry.c:781
+#: ../gtk/gtkentry.c:787
+#: ../gtk/gtkbutton.c:509
+#: ../gtk/gtkentry.c:1832
+#: ../gtk/gtkentry.c:780
 msgid "FALSE removes outside bevel from entry"
-msgstr "FALSE izņem ārpuses konusu no ieraksta"
+msgstr "APLAMS izņem ārpuses apmali no ieraksta"
 
-#: ../gtk/gtkentry.c:789
-msgid ""
-"Border between text and frame. Overrides the inner-border style property"
+#: ../gtk/gtkentry.c:795
+#: ../gtk/gtkentry.c:788
+#: ../gtk/gtkentry.c:1361
+msgid "Border between text and frame. Overrides the inner-border style property"
 msgstr ""
+"Robeža starp tekstu un ietvaru. Pārraksta iekšējās robežas stila īpašības"
 
-#: ../gtk/gtkentry.c:796 ../gtk/gtkentry.c:1362
+#: ../gtk/gtkentry.c:802 ../gtk/gtkentry.c:1398
+#: ../gtk/gtkentry.c:795
+#: ../gtk/gtkentry.c:1361
 msgid "Invisible character"
 msgstr "Neredzamā rakstzīme"
 
-#: ../gtk/gtkentry.c:797 ../gtk/gtkentry.c:1363
+#: ../gtk/gtkentry.c:803 ../gtk/gtkentry.c:1399
+#: ../gtk/gtkentry.c:796
+#: ../gtk/gtkentry.c:1362
 msgid "The character to use when masking entry contents (in \"password mode\")"
 msgstr ""
 "Rakstzīme, ko izmanto, slēpjot ievades saturu (piem., \"paroles režīmā\")"
 
-#: ../gtk/gtkentry.c:804
+#: ../gtk/gtkentry.c:810
 msgid "Activates default"
 msgstr "Aktivizē noklusēto"
 
-#: ../gtk/gtkentry.c:805
+#: ../gtk/gtkentry.c:811
+#: ../gtk/gtkentry.c:804
 msgid ""
 "Whether to activate the default widget (such as the default button in a "
 "dialog) when Enter is pressed"
@@ -2642,280 +3219,356 @@ msgstr ""
 "Vai aktivizēt noklusēto logdaļu (tādu, kā noklusētā poga dialogā), kad tiek "
 "nospiests Ievades taustiņš"
 
-#: ../gtk/gtkentry.c:811
+#: ../gtk/gtkentry.c:817
 msgid "Width in chars"
 msgstr "Platums rakszīmēs"
 
-#: ../gtk/gtkentry.c:812
+#: ../gtk/gtkentry.c:818
 msgid "Number of characters to leave space for in the entry"
 msgstr "Rakstzīmju daudzums tam, cik lielu vietu atstāt ierakstam"
 
-#: ../gtk/gtkentry.c:821
+#: ../gtk/gtkentry.c:827
+#: ../gtk/gtkentry.c:820
 msgid "Scroll offset"
 msgstr "Ritināšanas nobīde"
 
-#: ../gtk/gtkentry.c:822
+#: ../gtk/gtkentry.c:828
+#: ../gtk/gtkentry.c:821
 msgid "Number of pixels of the entry scrolled off the screen to the left"
 msgstr "Pikseļu skaits par kādu ieraksts noritināts no ekrāna pa kreisi"
 
-#: ../gtk/gtkentry.c:832
+#: ../gtk/gtkentry.c:838
+#: ../gtk/gtkentry.c:831
 msgid "The contents of the entry"
 msgstr "Ieraksta saturs"
 
-#: ../gtk/gtkentry.c:847 ../gtk/gtkmisc.c:81
+#: ../gtk/gtkentry.c:853 ../gtk/gtkmisc.c:105
+#: ../gtk/gtkentry.c:846
+#: ../gtk/gtkmisc.c:81
 msgid "X align"
-msgstr "X centrēšana"
+msgstr "X līdzināšana"
 
-#: ../gtk/gtkentry.c:848 ../gtk/gtkmisc.c:82
+#: ../gtk/gtkentry.c:854 ../gtk/gtkmisc.c:106
+#: ../gtk/gtkentry.c:847
+#: ../gtk/gtkmisc.c:82
 msgid ""
 "The horizontal alignment, from 0 (left) to 1 (right). Reversed for RTL "
 "layouts."
 msgstr ""
-"Horizontāls novietojums, no 0 (pa kreisi) līdz 1 (pa labi). Apgriezts RTL "
+"Horizontāls līdzinājums, no 0 (pa kreisi) līdz 1 (pa labi). Apgriezts RTL "
 "izkārtojumiem."
 
-#: ../gtk/gtkentry.c:864
+#: ../gtk/gtkentry.c:870
+#: ../gtk/gtkentry.c:863
 msgid "Truncate multiline"
 msgstr "Apgriezt vairākas rindiņas"
 
-#: ../gtk/gtkentry.c:865
+#: ../gtk/gtkentry.c:871
+#: ../gtk/gtkentry.c:864
 msgid "Whether to truncate multiline pastes to one line."
 msgstr "Vai apgriezt vairāku rindiņu ievietojumus uz vienu rindiņu."
 
-#: ../gtk/gtkentry.c:881
+#: ../gtk/gtkentry.c:887
+#: ../gtk/gtkentry.c:880
 msgid "Which kind of shadow to draw around the entry when has-frame is set"
-msgstr ""
+msgstr "Kāda veida ēnas zīmēt ap ierakstu, kad ir iestatīts has-frame"
 
-#: ../gtk/gtkentry.c:896 ../gtk/gtktextview.c:764
+#: ../gtk/gtkentry.c:902 ../gtk/gtktextview.c:766
+#: ../gtk/gtkentry.c:895
+#: ../gtk/gtktextview.c:764
 msgid "Overwrite mode"
 msgstr "Pārrakstīšanas režīms"
 
-#: ../gtk/gtkentry.c:897
+#: ../gtk/gtkentry.c:903
+#: ../gtk/gtkentry.c:896
 msgid "Whether new text overwrites existing text"
 msgstr "Vai jaunais teksts pārraksta esošo"
 
-#: ../gtk/gtkentry.c:911 ../gtk/gtkentrybuffer.c:367
+#: ../gtk/gtkentry.c:917 ../gtk/gtkentrybuffer.c:367
+#: ../gtk/gtkentry.c:910
 msgid "Text length"
 msgstr "Teksta garums"
 
-#: ../gtk/gtkentry.c:912
+#: ../gtk/gtkentry.c:918
+#: ../gtk/gtkentry.c:911
 msgid "Length of the text currently in the entry"
-msgstr ""
+msgstr "Pašlaik ievadē esošā teksta garums"
 
-#: ../gtk/gtkentry.c:927
-#, fuzzy
+#: ../gtk/gtkentry.c:933
+#: ../gtk/gtkentry.c:926
 msgid "Invisible character set"
-msgstr "Neredzamā rakstzīme"
+msgstr "Neredzamā rakstzīme iestatīta"
 
-#: ../gtk/gtkentry.c:928
-#, fuzzy
+#: ../gtk/gtkentry.c:934
+#: ../gtk/gtkentry.c:927
 msgid "Whether the invisible character has been set"
-msgstr "Vai ir iestatīti neredzamais simbols"
+msgstr "Vai ir iestatīta neredzamā rakstzīme"
 
-#: ../gtk/gtkentry.c:946
+#: ../gtk/gtkentry.c:952
+#: ../gtk/gtkentry.c:945
 msgid "Caps Lock warning"
 msgstr "Caps Lock brīdinājums"
 
-#: ../gtk/gtkentry.c:947
+#: ../gtk/gtkentry.c:953
+#: ../gtk/gtkentry.c:946
 msgid "Whether password entries will show a warning when Caps Lock is on"
-msgstr ""
+msgstr "Vai paroles ievadei tiks rādīts brīdinājums, ka ir ieslēgts Caps Lock"
 
-#: ../gtk/gtkentry.c:961
+#: ../gtk/gtkentry.c:967
+#: ../gtk/gtkentry.c:960
 msgid "Progress Fraction"
 msgstr "Progresa daļa"
 
-#: ../gtk/gtkentry.c:962
+#: ../gtk/gtkentry.c:968
+#: ../gtk/gtkentry.c:961
 msgid "The current fraction of the task that's been completed"
-msgstr "Pašreizējā izpildītā uzdevuma daļa"
+msgstr "Pašlaik izpildītā uzdevuma daļa"
 
-#: ../gtk/gtkentry.c:979
+#: ../gtk/gtkentry.c:985
+#: ../gtk/gtkentry.c:978
 msgid "Progress Pulse Step"
-msgstr "Progresa impulsa solis"
+msgstr "Progresa pulsa solis"
 
-#: ../gtk/gtkentry.c:980
+#: ../gtk/gtkentry.c:986
+#: ../gtk/gtkentry.c:979
 msgid ""
 "The fraction of total entry width to move the progress bouncing block for "
 "each call to gtk_entry_progress_pulse()"
 msgstr ""
+"Daļa no kopējā ieraksta platuma, par kādu pārvietot progresa lēkājošo bloku "
+"katram izsaukumam uz gtk_entry_progress_pulse()"
 
-#: ../gtk/gtkentry.c:996
+#: ../gtk/gtkentry.c:1002
+msgid "Placeholder text"
+msgstr "Viettura teksts"
+
+#: ../gtk/gtkentry.c:1003
+msgid "Show text in the entry when it's empty and unfocused"
+msgstr "Rādīt tekstu ierakstā, kad tas ir tukšs un nefokusēts"
+
+#: ../gtk/gtkentry.c:1017
+#: ../gtk/gtkentry.c:995
 msgid "Primary pixbuf"
 msgstr "Primārais pixbuf"
 
-#: ../gtk/gtkentry.c:997
+#: ../gtk/gtkentry.c:1018
+#: ../gtk/gtkentry.c:996
 msgid "Primary pixbuf for the entry"
 msgstr "Elementa primārais pixbuf"
 
-#: ../gtk/gtkentry.c:1011
+#: ../gtk/gtkentry.c:1032
+#: ../gtk/gtkentry.c:1010
 msgid "Secondary pixbuf"
 msgstr "Sekundārais pixbuf"
 
-#: ../gtk/gtkentry.c:1012
+#: ../gtk/gtkentry.c:1033
+#: ../gtk/gtkentry.c:1011
 msgid "Secondary pixbuf for the entry"
 msgstr "Elementa sekundārais pixbuf"
 
-#: ../gtk/gtkentry.c:1026
+#: ../gtk/gtkentry.c:1047
+#: ../gtk/gtkentry.c:1025
 msgid "Primary stock ID"
 msgstr "Primārais krājuma ID"
 
-#: ../gtk/gtkentry.c:1027
+#: ../gtk/gtkentry.c:1048
+#: ../gtk/gtkentry.c:1026
 msgid "Stock ID for primary icon"
 msgstr "Krājuma ID primārai ikonai"
 
-#: ../gtk/gtkentry.c:1041
+#: ../gtk/gtkentry.c:1062
+#: ../gtk/gtkentry.c:1040
 msgid "Secondary stock ID"
 msgstr "Sekundārais krājuma ID"
 
-#: ../gtk/gtkentry.c:1042
+#: ../gtk/gtkentry.c:1063
+#: ../gtk/gtkentry.c:1041
 msgid "Stock ID for secondary icon"
 msgstr "Krājuma ID sekundārai ikonai"
 
-#: ../gtk/gtkentry.c:1056
+#: ../gtk/gtkentry.c:1077
+#: ../gtk/gtkentry.c:1055
 msgid "Primary icon name"
 msgstr "Primārās ikonas nosaukums"
 
-#: ../gtk/gtkentry.c:1057
+#: ../gtk/gtkentry.c:1078
+#: ../gtk/gtkentry.c:1056
 msgid "Icon name for primary icon"
 msgstr "Primārās ikonas nosaukums"
 
-#: ../gtk/gtkentry.c:1071
+#: ../gtk/gtkentry.c:1092
+#: ../gtk/gtkentry.c:1070
 msgid "Secondary icon name"
 msgstr "Sekundārās ikonas nosaukums"
 
-#: ../gtk/gtkentry.c:1072
+#: ../gtk/gtkentry.c:1093
+#: ../gtk/gtkentry.c:1071
 msgid "Icon name for secondary icon"
 msgstr "Sekundārās ikonas nosaukums"
 
-#: ../gtk/gtkentry.c:1086
+#: ../gtk/gtkentry.c:1107
+#: ../gtk/gtkentry.c:1085
 msgid "Primary GIcon"
 msgstr "Primārā GIcon"
 
-#: ../gtk/gtkentry.c:1087
+#: ../gtk/gtkentry.c:1108
+#: ../gtk/gtkentry.c:1086
 msgid "GIcon for primary icon"
 msgstr "Primārās ikonas GIcon"
 
-#: ../gtk/gtkentry.c:1101
+#: ../gtk/gtkentry.c:1122
+#: ../gtk/gtkentry.c:1100
 msgid "Secondary GIcon"
 msgstr "Sekundārā GIcon"
 
-#: ../gtk/gtkentry.c:1102
+#: ../gtk/gtkentry.c:1123
+#: ../gtk/gtkentry.c:1101
 msgid "GIcon for secondary icon"
 msgstr "Sekundārās ikonas GIcon"
 
-#: ../gtk/gtkentry.c:1116
+#: ../gtk/gtkentry.c:1137
+#: ../gtk/gtkentry.c:1115
 msgid "Primary storage type"
 msgstr "Primārās glabātuves tips"
 
-#: ../gtk/gtkentry.c:1117
+#: ../gtk/gtkentry.c:1138
+#: ../gtk/gtkentry.c:1116
 msgid "The representation being used for primary icon"
 msgstr "Primārās ikonas reprezentācija"
 
-#: ../gtk/gtkentry.c:1132
+#: ../gtk/gtkentry.c:1153
+#: ../gtk/gtkentry.c:1131
 msgid "Secondary storage type"
 msgstr "Sekundārās glabātuves tips"
 
-#: ../gtk/gtkentry.c:1133
+#: ../gtk/gtkentry.c:1154
+#: ../gtk/gtkentry.c:1132
 msgid "The representation being used for secondary icon"
 msgstr "Sekundārās ikonas reprezentācija"
 
-#: ../gtk/gtkentry.c:1154
+#: ../gtk/gtkentry.c:1175
 msgid "Primary icon activatable"
 msgstr "Aktivizējama primārā ikona"
 
-#: ../gtk/gtkentry.c:1155
+#: ../gtk/gtkentry.c:1176
 msgid "Whether the primary icon is activatable"
 msgstr "Vai primārā ikona ir aktivizējama"
 
-#: ../gtk/gtkentry.c:1175
+#: ../gtk/gtkentry.c:1196
+#: ../gtk/gtkentry.c:1174
 msgid "Secondary icon activatable"
 msgstr "Aktivizējama sekundārā ikona"
 
-#: ../gtk/gtkentry.c:1176
+#: ../gtk/gtkentry.c:1197
 msgid "Whether the secondary icon is activatable"
 msgstr "Vai sekundārā ikona ir aktivizējama"
 
-#: ../gtk/gtkentry.c:1198
+#: ../gtk/gtkentry.c:1219
 msgid "Primary icon sensitive"
 msgstr "Sensitīva primārā ikona"
 
-#: ../gtk/gtkentry.c:1199
+#: ../gtk/gtkentry.c:1220
+#: ../gtk/gtkentry.c:1198
 msgid "Whether the primary icon is sensitive"
 msgstr "Vai primārā ikona ir sensitīva"
 
-#: ../gtk/gtkentry.c:1220
+#: ../gtk/gtkentry.c:1241
 msgid "Secondary icon sensitive"
 msgstr "Sensitīva sekundārā ikona"
 
-#: ../gtk/gtkentry.c:1221
+#: ../gtk/gtkentry.c:1242
 msgid "Whether the secondary icon is sensitive"
 msgstr "Vai sekundārā ikona ir sensitīva"
 
-#: ../gtk/gtkentry.c:1237
+#: ../gtk/gtkentry.c:1258
+#: ../gtk/gtkentry.c:1236
 msgid "Primary icon tooltip text"
 msgstr "Primārās ikonas paskaidres teksts"
 
-#: ../gtk/gtkentry.c:1238 ../gtk/gtkentry.c:1274
+#: ../gtk/gtkentry.c:1259 ../gtk/gtkentry.c:1295
+#: ../gtk/gtkentry.c:1237
+#: ../gtk/gtkentry.c:1273
 msgid "The contents of the tooltip on the primary icon"
 msgstr "Primārās ikonas paskaidres teksts"
 
-#: ../gtk/gtkentry.c:1254
+#: ../gtk/gtkentry.c:1275
+#: ../gtk/gtkentry.c:1253
 msgid "Secondary icon tooltip text"
 msgstr "Sekundārās ikonas paskaidres teksts"
 
-#: ../gtk/gtkentry.c:1255 ../gtk/gtkentry.c:1293
+#: ../gtk/gtkentry.c:1276 ../gtk/gtkentry.c:1314
+#: ../gtk/gtkentry.c:1254
+#: ../gtk/gtkentry.c:1292
 msgid "The contents of the tooltip on the secondary icon"
 msgstr "Sekundārās ikonas paskaidres teksts"
 
-#: ../gtk/gtkentry.c:1273
+#: ../gtk/gtkentry.c:1294
+#: ../gtk/gtkentry.c:1272
 msgid "Primary icon tooltip markup"
-msgstr "Primārās ikonas paskaidres formatējums"
+msgstr "Primārās ikonas paskaidres marķējums"
 
-#: ../gtk/gtkentry.c:1292
+#: ../gtk/gtkentry.c:1313
+#: ../gtk/gtkentry.c:1291
 msgid "Secondary icon tooltip markup"
-msgstr "Sekundārās ikonas paskaidres formatējums"
+msgstr "Sekundārās ikonas paskaidres marķējums"
 
-#: ../gtk/gtkentry.c:1312 ../gtk/gtktextview.c:792
+#: ../gtk/gtkentry.c:1333 ../gtk/gtktextview.c:794
+#: ../gtk/gtkentry.c:1311
+#: ../gtk/gtktextview.c:792
 msgid "IM module"
-msgstr "IM modulis"
+msgstr "TZ modulis"
 
-#: ../gtk/gtkentry.c:1313 ../gtk/gtktextview.c:793
+#: ../gtk/gtkentry.c:1334 ../gtk/gtktextview.c:795
+#: ../gtk/gtkentry.c:1312
+#: ../gtk/gtktextview.c:793
 msgid "Which IM module should be used"
-msgstr "Kuru IM moduli izmantot"
+msgstr "Kuru TZ moduli izmantot"
 
-#: ../gtk/gtkentry.c:1327
+#: ../gtk/gtkentry.c:1348
+#| msgid "Completion Model"
+msgid "Completion"
+msgstr "Pabeigšana"
+
+#: ../gtk/gtkentry.c:1349
+msgid "The auxiliary completion object"
+msgstr "Pabeigšanas palīgobjekts"
+
+#: ../gtk/gtkentry.c:1363
+#: ../gtk/gtkentry.c:1326
 msgid "Icon Prelight"
 msgstr "Ikonas pirmsgaisma"
 
-#: ../gtk/gtkentry.c:1328
+#: ../gtk/gtkentry.c:1364
+#: ../gtk/gtkentry.c:1327
 msgid "Whether activatable icons should prelight when hovered"
 msgstr "Vai aktivizējamās ikonas izgaismot, kad virs tām ir peles kursors"
 
-#: ../gtk/gtkentry.c:1341
-#, fuzzy
+#: ../gtk/gtkentry.c:1377
+#: ../gtk/gtkentry.c:1340
 msgid "Progress Border"
-msgstr "Ieplakas Robeža"
+msgstr "Progresa robeža"
 
-#: ../gtk/gtkentry.c:1342
-#, fuzzy
+#: ../gtk/gtkentry.c:1378
+#: ../gtk/gtkentry.c:1341
 msgid "Border around the progress bar"
-msgstr "Progresa joslas teksts"
+msgstr "Robeža ap progresa joslu"
 
-#: ../gtk/gtkentry.c:1834
+#: ../gtk/gtkentry.c:1870
+#: ../gtk/gtkentry.c:1833
 msgid "Border between text and frame."
-msgstr "Robeža starp tekstu un rāmi."
+msgstr "Robeža starp tekstu un ietvaru."
 
 #: ../gtk/gtkentrybuffer.c:353
-#, fuzzy
 msgid "The contents of the buffer"
-msgstr "Ieraksta saturs"
+msgstr "Bufera saturs"
 
 #: ../gtk/gtkentrybuffer.c:368
 msgid "Length of the text currently in the buffer"
-msgstr ""
+msgstr "Garums tekstam, kas pašlaik ir buferī"
 
 #: ../gtk/gtkentrycompletion.c:320
 msgid "Completion Model"
-msgstr "Izpildes modelis"
+msgstr "Pabeigšanas modelis"
 
 #: ../gtk/gtkentrycompletion.c:321
 msgid "The model to find matches in"
@@ -2929,7 +3582,8 @@ msgstr "Minimālais atslēgas garums"
 msgid "Minimum length of the search key in order to look up matches"
 msgstr "Meklēšanas atslēgas minimālais garums, meklējot sakritības"
 
-#: ../gtk/gtkentrycompletion.c:344 ../gtk/gtkiconview.c:563
+#: ../gtk/gtkentrycompletion.c:344 ../gtk/gtkiconview.c:565
+#: ../gtk/gtkiconview.c:566
 msgid "Text column"
 msgstr "Teksta kolonna"
 
@@ -2939,7 +3593,7 @@ msgstr "Modeļa, kas satur virknes, kolonna."
 
 #: ../gtk/gtkentrycompletion.c:364
 msgid "Inline completion"
-msgstr "Iekšējā izpilde"
+msgstr "Iekļautā pabeigšana"
 
 #: ../gtk/gtkentrycompletion.c:365
 msgid "Whether the common prefix should be inserted automatically"
@@ -2947,31 +3601,31 @@ msgstr "Vai kopējais prefikss būtu jāievieto automātiski"
 
 #: ../gtk/gtkentrycompletion.c:379
 msgid "Popup completion"
-msgstr "Izlecošā izpilde"
+msgstr "Uznirstošā pabeigšana"
 
 #: ../gtk/gtkentrycompletion.c:380
 msgid "Whether the completions should be shown in a popup window"
-msgstr "Vai izlecošajā logā rādīt komponentus"
+msgstr "Vai uznirstošajā logā rādīt komponentes"
 
 #: ../gtk/gtkentrycompletion.c:395
 msgid "Popup set width"
-msgstr "Izlecošo logu kopas platums"
+msgstr "Uznirstošā loga iestatītais platums"
 
 #: ../gtk/gtkentrycompletion.c:396
 msgid "If TRUE, the popup window will have the same size as the entry"
-msgstr "Ja PATIESS, izlecošais logs būs tikpat liels, kā ieraksts"
+msgstr "Ja PATIESS, uznirstošais logs būs tikpat liels, kā ieraksts"
 
 #: ../gtk/gtkentrycompletion.c:414
 msgid "Popup single match"
-msgstr "Izlecoša vienreizēja sakritība"
+msgstr "Uznirstoša vienreizēja sakritība"
 
 #: ../gtk/gtkentrycompletion.c:415
 msgid "If TRUE, the popup window will appear for a single match."
-msgstr "Ja PATIESS, paradīsies izlecošais logs vienreizējai sakritībai."
+msgstr "Ja PATIESS, parādīsies uznirstošais logs vienreizējai sakritībai."
 
 #: ../gtk/gtkentrycompletion.c:429
 msgid "Inline selection"
-msgstr "Ieksējā izvēle"
+msgstr "Iekļautā izvēle"
 
 #: ../gtk/gtkentrycompletion.c:430
 msgid "Your description here"
@@ -2986,8 +3640,8 @@ msgid ""
 "Whether the event box is visible, as opposed to invisible and only used to "
 "trap events."
 msgstr ""
-"Vai notikumu ramis ir redzams, kā preteji neredzamam un izmantots tikai "
-"notikumu slazdošanai."
+"Vai notikumu kaste ir redzama, nevis neredzama un izmantota tikai notikumu "
+"slazdošanai."
 
 #: ../gtk/gtkeventbox.c:116
 msgid "Above child"
@@ -2998,81 +3652,114 @@ msgid ""
 "Whether the event-trapping window of the eventbox is above the window of the "
 "child widget as opposed to below it."
 msgstr ""
-"Vai notikumu slazdošanas logs notikumu rāmim ir virs bērna logdaļas loga kā "
-"pretēji zem tā."
+"Vai notikumu slazdošanas logs notikumu ietvaram ir virs bērna logdaļas loga, "
+"nevis zem tā."
 
+#: ../gtk/gtkexpander.c:282
 #: ../gtk/gtkexpander.c:279
 msgid "Expanded"
-msgstr "Izvērst"
+msgstr "Izvērsts"
 
+#: ../gtk/gtkexpander.c:283
 #: ../gtk/gtkexpander.c:280
 msgid "Whether the expander has been opened to reveal the child widget"
-msgstr "Vai paplašinātājs ir bijis atvērts, atklājot bērna logdaļu"
+msgstr "Vai izvērsējs ir bijis atvērts, atklājot bērna logdaļu"
 
+#: ../gtk/gtkexpander.c:291
 #: ../gtk/gtkexpander.c:288
 msgid "Text of the expander's label"
-msgstr "Izvērsēja etiķetes teksts"
+msgstr "Izvērsēja iezīmes teksts"
 
-#: ../gtk/gtkexpander.c:303 ../gtk/gtklabel.c:581
+#: ../gtk/gtkexpander.c:306 ../gtk/gtklabel.c:758
+#: ../gtk/gtkexpander.c:303
+#: ../gtk/gtklabel.c:581
 msgid "Use markup"
 msgstr "Lietot marķējumu"
 
-#: ../gtk/gtkexpander.c:304 ../gtk/gtklabel.c:582
+#: ../gtk/gtkexpander.c:307 ../gtk/gtklabel.c:759
+#: ../gtk/gtkexpander.c:304
+#: ../gtk/gtklabel.c:582
 msgid "The text of the label includes XML markup. See pango_parse_markup()"
 msgstr "Iezīmes teksts ietver XML marķējumu. Apskati pango_parse_markup()"
 
+#: ../gtk/gtkexpander.c:315
 #: ../gtk/gtkexpander.c:312
 msgid "Space to put between the label and the child"
-msgstr "Atstarpe, ko likt starp etiķeti un bērnu"
+msgstr "Atstarpe, ko likt starp iezīmi un bērnu"
 
-#: ../gtk/gtkexpander.c:321 ../gtk/gtkframe.c:168 ../gtk/gtktoolbutton.c:215
+#: ../gtk/gtkexpander.c:324 ../gtk/gtkframe.c:206 ../gtk/gtktoolbutton.c:246
+#: ../gtk/gtktoolitemgroup.c:1599
+#: ../gtk/gtkexpander.c:321
+#: ../gtk/gtkframe.c:168
+#: ../gtk/gtktoolbutton.c:215
 #: ../gtk/gtktoolitemgroup.c:1603
 msgid "Label widget"
 msgstr "Iezīmes logdaļa"
 
+#: ../gtk/gtkexpander.c:325
 #: ../gtk/gtkexpander.c:322
 msgid "A widget to display in place of the usual expander label"
-msgstr "Logrīks, ko rādīt parastas izvērsēja etiķetes vietā"
+msgstr "Logrīks, ko rādīt parastas izvērsēja iezīmes vietā"
 
+#: ../gtk/gtkexpander.c:332
 #: ../gtk/gtkexpander.c:329
-#, fuzzy
 msgid "Label fill"
-msgstr "Cilnes aizpildījums"
+msgstr "Iezīmes aizpildījums"
 
+#: ../gtk/gtkexpander.c:333
 #: ../gtk/gtkexpander.c:330
-#, fuzzy
 msgid "Whether the label widget should fill all available horizontal space"
-msgstr "Vai visiem bērniem jabūt pēc viena izmēra"
+msgstr "Vai iezīmes logdaļai vajadzētu aizpildīt visu redzamo horizontālo telpu"
+
+#: ../gtk/gtkexpander.c:348
+#| msgid "Resize mode"
+msgid "Resize tolevel"
+msgstr "Mainīt izmēru līdz līmenim"
 
-#: ../gtk/gtkexpander.c:336 ../gtk/gtktoolitemgroup.c:1631
+#: ../gtk/gtkexpander.c:349
+msgid ""
+"Whether the expander will resize the toplevel window upon expanding and "
+"collapsing"
+msgstr "Vai izvērsējs mainīs izmēru augšējā līmeņa logam, izvēršot vai sakļaujot"
+
+#: ../gtk/gtkexpander.c:355 ../gtk/gtktoolitemgroup.c:1627
 #: ../gtk/gtktreeview.c:1187
+#: ../gtk/gtkexpander.c:336
+#: ../gtk/gtktoolitemgroup.c:1631
 msgid "Expander Size"
-msgstr "Paplašinātāja Izmērs"
+msgstr "Izvērsēja izmērs"
 
-#: ../gtk/gtkexpander.c:337 ../gtk/gtktoolitemgroup.c:1632
+#: ../gtk/gtkexpander.c:356 ../gtk/gtktoolitemgroup.c:1628
 #: ../gtk/gtktreeview.c:1188
+#: ../gtk/gtkexpander.c:337
+#: ../gtk/gtktoolitemgroup.c:1632
 msgid "Size of the expander arrow"
-msgstr "Paplašinātāja bultas izmērs"
+msgstr "Izvērsēja bultas izmērs"
 
+#: ../gtk/gtkexpander.c:365
 #: ../gtk/gtkexpander.c:346
 msgid "Spacing around expander arrow"
 msgstr "Atstarpes ap izvērsēja bultu"
 
+#: ../gtk/gtkfilechooserbutton.c:409
 #: ../gtk/gtkfilechooserbutton.c:366
 msgid "Dialog"
 msgstr "Dialogs"
 
+#: ../gtk/gtkfilechooserbutton.c:410
 #: ../gtk/gtkfilechooserbutton.c:367
 msgid "The file chooser dialog to use."
 msgstr "Izmantojamais failu izvēlētāja dialogs."
 
+#: ../gtk/gtkfilechooserbutton.c:441
 #: ../gtk/gtkfilechooserbutton.c:398
 msgid "The title of the file chooser dialog."
 msgstr "Failu izvēles loga nosaukums."
 
+#: ../gtk/gtkfilechooserbutton.c:455
 #: ../gtk/gtkfilechooserbutton.c:412
 msgid "The desired width of the button widget, in characters."
-msgstr "Velamais pogas logdalas platums rakstzīmēs."
+msgstr "Vēlamais pogas logdaļas platums, izteikts rakstzīmēs."
 
 #: ../gtk/gtkfilechooser.c:747
 msgid "Action"
@@ -3097,42 +3784,43 @@ msgstr "Tikai lokāls"
 #: ../gtk/gtkfilechooser.c:761
 msgid "Whether the selected file(s) should be limited to local file: URLs"
 msgstr ""
-"Vai izvēlētajam failam(iem) vajadzetu tikt ierobežotiem ar vietējo failu: "
-"URLiem"
+"Vai izvēlētajam failam(-iem) vajadzētu tikt ierobežotiem ar vietējo failu: "
+"URL"
 
 #: ../gtk/gtkfilechooser.c:766
 msgid "Preview widget"
-msgstr "Pirmsapskates logdaļa"
+msgstr "Priekšskatījuma logdaļa"
 
 #: ../gtk/gtkfilechooser.c:767
 msgid "Application supplied widget for custom previews."
-msgstr "Ar aplikāciju apgādāta logdaļa uzstadītajām priekšapskatēm."
+msgstr "Lietotnes piegādāta logdaļa pielāgotiem priekšskatījumiem."
 
 #: ../gtk/gtkfilechooser.c:772
 msgid "Preview Widget Active"
-msgstr "Aktīva pirmsapskates logdaļa"
+msgstr "Aktīva priekšskatījuma logdaļa"
 
 #: ../gtk/gtkfilechooser.c:773
 msgid ""
 "Whether the application supplied widget for custom previews should be shown."
 msgstr ""
-"Vai ar aplikāciju apgadātā logdaļa jārāda priekš iestatītajām priekšapskatēm."
+"Vai vajadzētu rādīt lietotnes piegādātās logdaļas pielāgotiem "
+"priekšskatījumiem."
 
 #: ../gtk/gtkfilechooser.c:778
 msgid "Use Preview Label"
-msgstr "Lietot pirmsapskates etiķeti"
+msgstr "Lietot priekšskatījuma iezīmi"
 
 #: ../gtk/gtkfilechooser.c:779
 msgid "Whether to display a stock label with the name of the previewed file."
-msgstr "Vai attēlot krājuma etiķeti ar priekšapskatamā faila nosaukumu."
+msgstr "Vai attēlot krājuma iezīmi ar priekšskatītā faila nosaukumu."
 
 #: ../gtk/gtkfilechooser.c:784
 msgid "Extra widget"
-msgstr "Papildus logdaļa"
+msgstr "Papildu logdaļa"
 
 #: ../gtk/gtkfilechooser.c:785
 msgid "Application supplied widget for extra options."
-msgstr "Ar aplikāciju apgadāta logdaļa papildus iespējām."
+msgstr "Lietotnes piegādāta logdaļa papildu opcijām."
 
 #: ../gtk/gtkfilechooser.c:790 ../gtk/gtkrecentchooser.c:203
 msgid "Select Multiple"
@@ -3159,19 +3847,22 @@ msgid ""
 "Whether a file chooser in save mode will present an overwrite confirmation "
 "dialog if necessary."
 msgstr ""
+"Vai faila izvēlētājs saglabāšanas režīmā rādīs pārrakstīšanas "
+"apstiprināšanas dialogu, ja vajadzēs."
 
 #: ../gtk/gtkfilechooser.c:830
-#, fuzzy
 msgid "Allow folder creation"
-msgstr "Parādīt operācijas ar failiem"
+msgstr "Atļaut mapju izveidošanu"
 
 #: ../gtk/gtkfilechooser.c:831
 msgid ""
 "Whether a file chooser not in open mode will offer the user to create new "
 "folders."
 msgstr ""
+"Vai faila izvēlētājs ļaus lietotājam izveidot jaunas mapes, kad tas ir "
+"atvēršanas režīmā."
 
-#: ../gtk/gtkfixed.c:152 ../gtk/gtklayout.c:634
+#: ../gtk/gtkfixed.c:152 ../gtk/gtklayout.c:634 ../gtk/gtktreeviewcolumn.c:264
 msgid "X position"
 msgstr "X pozīcija"
 
@@ -3187,205 +3878,253 @@ msgstr "Y pozīcija"
 msgid "Y position of child widget"
 msgstr "Bērna logdaļas Y pozīcija"
 
+#: ../gtk/gtkfontbutton.c:152
 #: ../gtk/gtkfontbutton.c:141
 msgid "The title of the font selection dialog"
 msgstr "Fonta izvēles loga nosaukums"
 
-#: ../gtk/gtkfontbutton.c:156 ../gtk/gtkfontsel.c:219
+#: ../gtk/gtkfontbutton.c:167 ../gtk/gtkfontsel.c:238
+#: ../gtk/gtkfontbutton.c:156
+#: ../gtk/gtkfontsel.c:219
 msgid "Font name"
 msgstr "Fonta nosaukums"
 
+#: ../gtk/gtkfontbutton.c:168
 #: ../gtk/gtkfontbutton.c:157
 msgid "The name of the selected font"
 msgstr "Izvēlētā fonta nosaukums"
 
+#: ../gtk/gtkfontbutton.c:169
 #: ../gtk/gtkfontbutton.c:158
 msgid "Sans 12"
 msgstr "Sans 12"
 
+#: ../gtk/gtkfontbutton.c:184
 #: ../gtk/gtkfontbutton.c:173
 msgid "Use font in label"
-msgstr "Virsrakstā izmantojamais fonts"
+msgstr "Izmantot fontu iezīmē"
 
+#: ../gtk/gtkfontbutton.c:185
 #: ../gtk/gtkfontbutton.c:174
 msgid "Whether the label is drawn in the selected font"
-msgstr "Vai etiķete ir uzzīmēta ar izvelēto fontu"
+msgstr "Vai iezīme ir uzzīmēta ar izvēlēto fontu"
 
+#: ../gtk/gtkfontbutton.c:200
 #: ../gtk/gtkfontbutton.c:189
 msgid "Use size in label"
-msgstr "Lietot izmēru etiķetē"
+msgstr "Lietot izmēru iezīmē"
 
+#: ../gtk/gtkfontbutton.c:201
 #: ../gtk/gtkfontbutton.c:190
 msgid "Whether the label is drawn with the selected font size"
-msgstr "Vai etiķete ir uzzīmēta ar izvelēto fonta izmēru"
+msgstr "Vai iezīme ir uzzīmēta ar izvēlēto fonta izmēru"
 
+#: ../gtk/gtkfontbutton.c:217
 #: ../gtk/gtkfontbutton.c:206
 msgid "Show style"
 msgstr "Rādīt stilu"
 
+#: ../gtk/gtkfontbutton.c:218
 #: ../gtk/gtkfontbutton.c:207
 msgid "Whether the selected font style is shown in the label"
-msgstr "Vai izvelētais fonta stils tiek rādīts etiķetē"
+msgstr "Vai izvēlētais fonta stils tiek rādīts iezīmē"
 
+#: ../gtk/gtkfontbutton.c:233
 #: ../gtk/gtkfontbutton.c:222
 msgid "Show size"
 msgstr "Rādīt izmēru"
 
+#: ../gtk/gtkfontbutton.c:234
 #: ../gtk/gtkfontbutton.c:223
 msgid "Whether selected font size is shown in the label"
-msgstr "Vai izvēlētais fonta izmērs tiek attēlots etiķetē"
+msgstr "Vai izvēlētais fonta izmērs tiek attēlots iezīmē"
 
+#: ../gtk/gtkfontsel.c:239
 #: ../gtk/gtkfontsel.c:220
 msgid "The string that represents this font"
 msgstr "Virkne apzīmē šo fontu"
 
+#: ../gtk/gtkfontsel.c:245
 #: ../gtk/gtkfontsel.c:226
 msgid "Preview text"
-msgstr "Pirmsapskates teksts"
+msgstr "Priekšskatījuma teksts"
 
+#: ../gtk/gtkfontsel.c:246
 #: ../gtk/gtkfontsel.c:227
 msgid "The text to display in order to demonstrate the selected font"
 msgstr "Teksts, ko parādīt, lai demonstrētu izvēlēto fontu"
 
+#: ../gtk/gtkframe.c:172
 #: ../gtk/gtkframe.c:134
 msgid "Text of the frame's label"
-msgstr "Rāmja iezīmes teksts"
+msgstr "Ietvara iezīmes teksts"
 
+#: ../gtk/gtkframe.c:179
 #: ../gtk/gtkframe.c:141
 msgid "Label xalign"
-msgstr "Iezīmes x centrēšana"
+msgstr "Iezīmes x līdzināšana"
 
+#: ../gtk/gtkframe.c:180
 #: ../gtk/gtkframe.c:142
 msgid "The horizontal alignment of the label"
-msgstr "Iezīmes horizontālā izlīdzināšana"
+msgstr "Iezīmes horizontālā līdzināšana"
 
+#: ../gtk/gtkframe.c:188
 #: ../gtk/gtkframe.c:150
 msgid "Label yalign"
-msgstr "Iezīmes y centrēšana"
+msgstr "Iezīmes y līdzināšana"
 
+#: ../gtk/gtkframe.c:189
 #: ../gtk/gtkframe.c:151
 msgid "The vertical alignment of the label"
-msgstr "Iezīmes vertikālā izlīdzināšana"
+msgstr "Iezīmes vertikālā līdzināšana"
 
+#: ../gtk/gtkframe.c:197
 #: ../gtk/gtkframe.c:159
 msgid "Frame shadow"
-msgstr "Rāmja ēna"
+msgstr "Ietvara ēna"
 
+#: ../gtk/gtkframe.c:198
 #: ../gtk/gtkframe.c:160
 msgid "Appearance of the frame border"
-msgstr "Rāmja robežas izskats"
+msgstr "Ietvara robežas izskats"
 
+#: ../gtk/gtkframe.c:207
 #: ../gtk/gtkframe.c:169
 msgid "A widget to display in place of the usual frame label"
-msgstr "Logdaļa, ko attēlot parasta rāmja iezīmes vietā"
+msgstr "Logdaļa, ko attēlot parasta ietvara iezīmes vietā"
 
-#: ../gtk/gtkgrid.c:1269 ../gtk/gtktable.c:175
+#: ../gtk/gtkgrid.c:1298 ../gtk/gtktable.c:209
+#: ../gtk/gtkgrid.c:1277
+#: ../gtk/gtktable.c:175
 msgid "Row spacing"
 msgstr "Rindu atstarpe"
 
-#: ../gtk/gtkgrid.c:1270 ../gtk/gtktable.c:176
+#: ../gtk/gtkgrid.c:1299 ../gtk/gtktable.c:210
+#: ../gtk/gtkgrid.c:1278
+#: ../gtk/gtktable.c:176
 msgid "The amount of space between two consecutive rows"
 msgstr "Atstarpe starp divām sekojošām rindām"
 
-#: ../gtk/gtkgrid.c:1276 ../gtk/gtktable.c:184
+#: ../gtk/gtkgrid.c:1305 ../gtk/gtktable.c:218
+#: ../gtk/gtkgrid.c:1284
+#: ../gtk/gtktable.c:184
+#: ../gtk/gtktable.c:201
 msgid "Column spacing"
 msgstr "Kolonnu atstarpe"
 
-#: ../gtk/gtkgrid.c:1277 ../gtk/gtktable.c:185
+#: ../gtk/gtkgrid.c:1306 ../gtk/gtktable.c:219
+#: ../gtk/gtkgrid.c:1285
+#: ../gtk/gtktable.c:185
+#: ../gtk/gtkmenu.c:759
+#: ../gtk/gtktable.c:202
 msgid "The amount of space between two consecutive columns"
-msgstr "Atstarpe starp divām sekojošām koonnām"
+msgstr "Atstarpe starp divām sekojošām kolonnām"
 
-#: ../gtk/gtkgrid.c:1283
-#, fuzzy
+#: ../gtk/gtkgrid.c:1312
+#: ../gtk/gtkgrid.c:1291
+#: ../gtk/gtktable.c:215
 #| msgid "Homogeneous"
 msgid "Row Homogeneous"
-msgstr "Viendabīgs"
+msgstr "Rindu viendabīgums"
 
-#: ../gtk/gtkgrid.c:1284
-#, fuzzy
+#: ../gtk/gtkgrid.c:1313
+#: ../gtk/gtkgrid.c:1292
 #| msgid "If TRUE, the popup window will have the same size as the entry"
 msgid "If TRUE, the rows are all the same height"
-msgstr "Ja PATIESS, izlecošais logs būs tikpat liels, kā ieraksts"
+msgstr "Ja PATIESS, visas rindas ir ar vienādu augstumu"
 
-#: ../gtk/gtkgrid.c:1290
-#, fuzzy
+#: ../gtk/gtkgrid.c:1319
+#: ../gtk/gtklayout.c:660
+#: ../gtk/gtktreeviewcolumn.c:262
 #| msgid "Homogeneous"
 msgid "Column Homogeneous"
-msgstr "Viendabīgs"
+msgstr "Kolonnu viendabīgums"
 
-#: ../gtk/gtkgrid.c:1291
-#, fuzzy
+#: ../gtk/gtkgrid.c:1320
 #| msgid "If TRUE, the child expands and shrinks along with the paned widget"
 msgid "If TRUE, the columns are all the same width"
-msgstr "Ja PATIESS, bērns palielinās un saraujās līdz ar logdaļu"
+msgstr "Ja PATIESS, visas kolonnas ir ar vienādu platumu"
 
-#: ../gtk/gtkgrid.c:1297 ../gtk/gtktable.c:201
+#: ../gtk/gtkgrid.c:1326 ../gtk/gtktable.c:235
+#: ../gtk/gtklayout.c:669
 msgid "Left attachment"
-msgstr "Kreisā piesaiste"
+msgstr "Kreisā piesaistne"
 
-#: ../gtk/gtkgrid.c:1298 ../gtk/gtkmenu.c:759 ../gtk/gtktable.c:202
+#: ../gtk/gtkgrid.c:1327 ../gtk/gtkmenu.c:761 ../gtk/gtktable.c:236
+#: ../gtk/gtkgrid.c:1306
+#: ../gtk/gtkmenu.c:759
+#: ../gtk/gtktable.c:202
 msgid "The column number to attach the left side of the child to"
 msgstr "Kolonnas numurs, ko piesaistīt bērnam kreisajā pusē"
 
-#: ../gtk/gtkgrid.c:1304 ../gtk/gtktable.c:215
+#: ../gtk/gtkgrid.c:1333 ../gtk/gtktable.c:249
+#: ../gtk/gtkgrid.c:1312
+#: ../gtk/gtktable.c:215
 msgid "Top attachment"
-msgstr "Augšas piesaiste"
+msgstr "Augšas piesaistne"
 
-#: ../gtk/gtkgrid.c:1305
-#, fuzzy
+#: ../gtk/gtkgrid.c:1334
 #| msgid "The row number to attach the top of a child widget to"
 msgid "The row number to attach the top side of a child widget to"
 msgstr "Rindas numurs, ko piesaistīt bērna augšas logdaļai"
 
-#: ../gtk/gtkgrid.c:1311 ../gtk/gtklayout.c:660 ../gtk/gtktreeviewcolumn.c:262
+#: ../gtk/gtkgrid.c:1340 ../gtk/gtklayout.c:660 ../gtk/gtktreeviewcolumn.c:274
+#: ../gtk/gtkgrid.c:1319
+#: ../gtk/gtktreeviewcolumn.c:262
 msgid "Width"
 msgstr "Platums"
 
-#: ../gtk/gtkgrid.c:1312
-#, fuzzy
+#: ../gtk/gtkgrid.c:1341
 #| msgid "The number of columns in the table"
 msgid "The number of columns that a child spans"
-msgstr "Tabulas kolonnu skaits"
+msgstr "Kolonnu skaits, ko bērns izvērš"
 
-#: ../gtk/gtkgrid.c:1318 ../gtk/gtklayout.c:669
+#: ../gtk/gtkgrid.c:1347 ../gtk/gtklayout.c:669
+#: ../gtk/gtkgrid.c:1326
 msgid "Height"
 msgstr "Augstums"
 
-#: ../gtk/gtkgrid.c:1319
-#, fuzzy
+#: ../gtk/gtkgrid.c:1348
 #| msgid "The number of rows in the table"
 msgid "The number of rows that a child spans"
-msgstr "Tabulas rindu skaits"
+msgstr "Rindu skaits, ko bērns izvērš"
 
+#: ../gtk/gtkhandlebox.c:219
 #: ../gtk/gtkhandlebox.c:191
 msgid "Appearance of the shadow that surrounds the container"
-msgstr "Ēnas izskas, kas aptver saturētāju"
+msgstr "Ēnas izskats, kas aptver saturētāju"
 
+#: ../gtk/gtkhandlebox.c:227
 #: ../gtk/gtkhandlebox.c:199
 msgid "Handle position"
-msgstr "Roktura pozīcija"
+msgstr "Tura pozīcija"
 
+#: ../gtk/gtkhandlebox.c:228
 #: ../gtk/gtkhandlebox.c:200
 msgid "Position of the handle relative to the child widget"
-msgstr "Roktura pozīcija attiecībā pret bērna logdaļu"
+msgstr "Tura pozīcija attiecībā pret bērna logdaļu"
 
+#: ../gtk/gtkhandlebox.c:236
 #: ../gtk/gtkhandlebox.c:208
 msgid "Snap edge"
 msgstr "Aplauzt malas"
 
+#: ../gtk/gtkhandlebox.c:237
 #: ../gtk/gtkhandlebox.c:209
 msgid ""
 "Side of the handlebox that's lined up with the docking point to dock the "
 "handlebox"
 msgstr ""
-"Rokturkastes puse, kas nostādīta rindā ar noenkurošanās punktu doka "
-"rokturkastei"
+"Tura kastes puse, kas nostādīta rindā ar noenkurošanās punktu doka tura "
+"kastei"
 
+#: ../gtk/gtkhandlebox.c:245
 #: ../gtk/gtkhandlebox.c:217
 msgid "Snap edge set"
 msgstr "Aplauztu malu iestatījums"
 
-#: ../gtk/gtkhandlebox.c:218
+#: ../gtk/gtkhandlebox.c:246
 msgid ""
 "Whether to use the value from the snap_edge property or a value derived from "
 "handle_position"
@@ -3393,300 +4132,370 @@ msgstr ""
 "Vai lietot vērtību no snap_edge īpašības vai vērtību, kas atvasināta no from "
 "handle_position"
 
+#: ../gtk/gtkhandlebox.c:253
 #: ../gtk/gtkhandlebox.c:225
 msgid "Child Detached"
 msgstr "Bērns atvienojies"
 
+#: ../gtk/gtkhandlebox.c:254
 #: ../gtk/gtkhandlebox.c:226
 msgid ""
 "A boolean value indicating whether the handlebox's child is attached or "
 "detached."
 msgstr ""
+"Bula vērtība, kas norāda, vai tura kastes bērns ir piesaistīts vai "
+"atsaistīts"
 
-#: ../gtk/gtkiconview.c:526
+#: ../gtk/gtkiconview.c:528 ../gtk/gtktreeselection.c:131
 msgid "Selection mode"
 msgstr "Atlases režīms"
 
-#: ../gtk/gtkiconview.c:527
+#: ../gtk/gtkiconview.c:529
+#: ../gtk/gtkiconview.c:530
 msgid "The selection mode"
 msgstr "Atlases režīms"
 
-#: ../gtk/gtkiconview.c:545
+#: ../gtk/gtkiconview.c:547
 msgid "Pixbuf column"
 msgstr "Pikseļu bufera kolonna"
 
-#: ../gtk/gtkiconview.c:546
+#: ../gtk/gtkiconview.c:548
+#: ../gtk/gtkiconview.c:549
 msgid "Model column used to retrieve the icon pixbuf from"
 msgstr "Modeļa kolonna, izmantota, lai iegūtu ikonas pikseļu bufera formu"
 
-#: ../gtk/gtkiconview.c:564
+#: ../gtk/gtkiconview.c:566
+#: ../gtk/gtkentrycompletion.c:344
+#: ../gtk/gtkiconview.c:567
 msgid "Model column used to retrieve the text from"
 msgstr "Modeļa kolonna, izmantota, lai iegūtu tekstu no formas "
 
-#: ../gtk/gtkiconview.c:583
+#: ../gtk/gtkiconview.c:585
 msgid "Markup column"
 msgstr "Marķējuma kolonna"
 
-#: ../gtk/gtkiconview.c:584
+#: ../gtk/gtkiconview.c:586
+#: ../gtk/gtkiconview.c:587
 msgid "Model column used to retrieve the text if using Pango markup"
 msgstr ""
 "Modeļa kolonna, izmantota teksta iegūšana, ja tiek izmantots Pango marķējums"
 
-#: ../gtk/gtkiconview.c:591
+#: ../gtk/gtkiconview.c:593
 msgid "Icon View Model"
 msgstr "Ikonas skata modelis"
 
-#: ../gtk/gtkiconview.c:592
+#: ../gtk/gtkiconview.c:594
+#: ../gtk/gtkiconview.c:595
 msgid "The model for the icon view"
 msgstr "Ikonu skata modelis"
 
-#: ../gtk/gtkiconview.c:608
+#: ../gtk/gtkiconview.c:610
 msgid "Number of columns"
 msgstr "Kolonnu skaits"
 
-#: ../gtk/gtkiconview.c:609
+#: ../gtk/gtkiconview.c:611
+#: ../gtk/gtkiconview.c:612
 msgid "Number of columns to display"
-msgstr "Parādāmo kolonnu skaits"
+msgstr "Rādāmo kolonnu skaits"
 
-#: ../gtk/gtkiconview.c:626
+#: ../gtk/gtkiconview.c:628
 msgid "Width for each item"
 msgstr "Katra elementa platums"
 
-#: ../gtk/gtkiconview.c:627
+#: ../gtk/gtkiconview.c:629
+#: ../gtk/gtkiconview.c:630
 msgid "The width used for each item"
 msgstr "Platums, kas lietots katrai sadaļai"
 
-#: ../gtk/gtkiconview.c:643
+#: ../gtk/gtkiconview.c:645
+#: ../gtk/gtkbox.c:241
+#: ../gtk/gtkcellareabox.c:318
+#: ../gtk/gtkexpander.c:311
+#: ../gtk/gtktreeviewcolumn.c:271
+#: ../gtk/gtkiconview.c:646
 msgid "Space which is inserted between cells of an item"
 msgstr "Atstarpe, kas ievietota starp sadaļas šūnām"
 
-#: ../gtk/gtkiconview.c:658
+#: ../gtk/gtkiconview.c:660
 msgid "Row Spacing"
 msgstr "Rindu atstarpe"
 
-#: ../gtk/gtkiconview.c:659
+#: ../gtk/gtkiconview.c:661
+#: ../gtk/gtkiconview.c:662
 msgid "Space which is inserted between grid rows"
 msgstr "Atstarpe, kas ievietota starp režģa rindām"
 
-#: ../gtk/gtkiconview.c:674
+#: ../gtk/gtkiconview.c:676
 msgid "Column Spacing"
 msgstr "Kolonnu atstarpe"
 
-#: ../gtk/gtkiconview.c:675
+#: ../gtk/gtkiconview.c:677
+#: ../gtk/gtkiconview.c:678
 msgid "Space which is inserted between grid columns"
-msgstr ""
+msgstr "Atstarpe, kas ievietota starp režģa kolonnām"
 
-#: ../gtk/gtkiconview.c:690
+#: ../gtk/gtkiconview.c:692
 msgid "Margin"
 msgstr "Mala"
 
-#: ../gtk/gtkiconview.c:691
+#: ../gtk/gtkiconview.c:693
+#: ../gtk/gtkiconview.c:694
 msgid "Space which is inserted at the edges of the icon view"
 msgstr "Atstarpe, kas ievietota ikonas skata malās"
 
-#: ../gtk/gtkiconview.c:706
-#, fuzzy
+#: ../gtk/gtkiconview.c:708
 msgid "Item Orientation"
-msgstr "Novietojums"
+msgstr "Priekšmeta novietojums"
 
-#: ../gtk/gtkiconview.c:707
-msgid ""
-"How the text and icon of each item are positioned relative to each other"
-msgstr ""
-"Kā teksts un ikona katrai sadaļai ir relatīvi novietoti attiecība viens pret "
-"otru"
+#: ../gtk/gtkiconview.c:709
+#: ../gtk/gtkiconview.c:710
+msgid "How the text and icon of each item are positioned relative to each other"
+msgstr "Kā teksts un ikona katrai sadaļai ir novietoti attiecība viens pret otru"
 
-#: ../gtk/gtkiconview.c:723 ../gtk/gtktreeview.c:1022
+#: ../gtk/gtkiconview.c:725 ../gtk/gtktreeview.c:1022
+#: ../gtk/gtktreeviewcolumn.c:374
+#: ../gtk/gtkiconview.c:726
 #: ../gtk/gtktreeviewcolumn.c:362
 msgid "Reorderable"
-msgstr "Ierakstāms"
+msgstr "Pārkārtojams"
 
-#: ../gtk/gtkiconview.c:724 ../gtk/gtktreeview.c:1023
+#: ../gtk/gtkiconview.c:726 ../gtk/gtktreeview.c:1023
+#: ../gtk/gtktreeview.c:1022
+#: ../gtk/gtktreeviewcolumn.c:362
+#: ../gtk/gtkiconview.c:727
 msgid "View is reorderable"
-msgstr "Skats ir ierakstāms"
+msgstr "Skats ir pārkārtojams"
 
-#: ../gtk/gtkiconview.c:731 ../gtk/gtktreeview.c:1173
+#: ../gtk/gtkiconview.c:733 ../gtk/gtktreeview.c:1173
+#: ../gtk/gtkiconview.c:734
 msgid "Tooltip Column"
 msgstr "Paskaidres kolonna"
 
-#: ../gtk/gtkiconview.c:732
+#: ../gtk/gtkiconview.c:734
+#: ../gtk/gtktreeview.c:1173
+#: ../gtk/gtkiconview.c:735
 msgid "The column in the model containing the tooltip texts for the items"
 msgstr "Kolonna modelī, kura satur elementu tekstu paskaidres"
 
-#: ../gtk/gtkiconview.c:749
-#, fuzzy
+#: ../gtk/gtkiconview.c:751
 msgid "Item Padding"
-msgstr "Apakšas papildinājums"
+msgstr "Priekšmeta papildinājums"
 
-#: ../gtk/gtkiconview.c:750
+#: ../gtk/gtkiconview.c:752
+#: ../gtk/gtkiconview.c:753
 msgid "Padding around icon view items"
-msgstr ""
+msgstr "Papildinājums ap ikonu skata priekšmetiem"
 
-#: ../gtk/gtkiconview.c:778
+#: ../gtk/gtkiconview.c:783
 msgid "Selection Box Color"
 msgstr "Izvēles rāmja krāsa"
 
-#: ../gtk/gtkiconview.c:779
+#: ../gtk/gtkiconview.c:784
+#: ../gtk/gtkiconview.c:785
 msgid "Color of the selection box"
-msgstr "Izvēles rāmja krāsa"
+msgstr "Izvēles kastes krāsa"
 
-#: ../gtk/gtkiconview.c:785
+#: ../gtk/gtkiconview.c:790
 msgid "Selection Box Alpha"
 msgstr "Izvēles rāmis alfa"
 
-#: ../gtk/gtkiconview.c:786
+#: ../gtk/gtkiconview.c:791
+#: ../gtk/gtkiconview.c:792
 msgid "Opacity of the selection box"
-msgstr "Izvēles rāmja caurspīdīgums"
+msgstr "Izvēles kastes caurspīdīgums"
 
-#: ../gtk/gtkimage.c:236 ../gtk/gtkstatusicon.c:204
+#: ../gtk/gtkimage.c:237 ../gtk/gtkstatusicon.c:235
+#: ../gtk/gtkimage.c:236
+#: ../gtk/gtkstatusicon.c:205
+#: ../gtk/gtkstatusicon.c:206
 msgid "Pixbuf"
 msgstr "Pixbuf"
 
-#: ../gtk/gtkimage.c:237 ../gtk/gtkstatusicon.c:205
+#: ../gtk/gtkimage.c:238 ../gtk/gtkstatusicon.c:236
+#: ../gtk/gtkimage.c:237
+#: ../gtk/gtkstatusicon.c:206
 msgid "A GdkPixbuf to display"
 msgstr "GdkPixbuf, ko parādīt"
 
-#: ../gtk/gtkimage.c:244 ../gtk/gtkrecentmanager.c:294
-#: ../gtk/gtkstatusicon.c:212
+#: ../gtk/gtkimage.c:245 ../gtk/gtkrecentmanager.c:294
+#: ../gtk/gtkstatusicon.c:243
+#: ../gtk/gtkimage.c:244
+#: ../gtk/gtkstatusicon.c:213
+#: ../gtk/gtkstatusicon.c:214
 msgid "Filename"
 msgstr "Faila nosaukums"
 
-#: ../gtk/gtkimage.c:245 ../gtk/gtkstatusicon.c:213
+#: ../gtk/gtkimage.c:246 ../gtk/gtkstatusicon.c:244
+#: ../gtk/gtkimage.c:245
+#: ../gtk/gtkstatusicon.c:214
 msgid "Filename to load and display"
 msgstr "Faila nosaukums, kuru ielādēt un attēlot"
 
-#: ../gtk/gtkimage.c:254 ../gtk/gtkstatusicon.c:221
+#: ../gtk/gtkimage.c:255 ../gtk/gtkstatusicon.c:252
+#: ../gtk/gtkimage.c:254
+#: ../gtk/gtkstatusicon.c:222
 msgid "Stock ID for a stock image to display"
 msgstr "Krājuma ID, ko parādīt krājumā esošajam attēlam"
 
+#: ../gtk/gtkimage.c:262
 #: ../gtk/gtkimage.c:261
 msgid "Icon set"
 msgstr "Ikonu kopa"
 
-#: ../gtk/gtkimage.c:262
+#: ../gtk/gtkimage.c:263
 msgid "Icon set to display"
 msgstr "Ikonu kopa, ko attēlot"
 
-#: ../gtk/gtkimage.c:269 ../gtk/gtkscalebutton.c:227 ../gtk/gtktoolbar.c:518
+#: ../gtk/gtkimage.c:270 ../gtk/gtkscalebutton.c:228 ../gtk/gtktoolbar.c:528
+#: ../gtk/gtktoolpalette.c:1008
+#: ../gtk/gtkimage.c:269
+#: ../gtk/gtkscalebutton.c:227
+#: ../gtk/gtktoolbar.c:518
 #: ../gtk/gtktoolpalette.c:1039
 msgid "Icon size"
 msgstr "Ikonas izmērs"
 
-#: ../gtk/gtkimage.c:270
+#: ../gtk/gtkimage.c:271
 msgid "Symbolic size to use for stock icon, icon set or named icon"
 msgstr ""
 "Simbolisks izmērs, ko lieto krājuma ikonai, ikonu komplektam vai nosauktai "
 "ikonai"
 
+#: ../gtk/gtkimage.c:287
 #: ../gtk/gtkimage.c:286
 msgid "Pixel size"
 msgstr "Pikseļu izmērs"
 
-#: ../gtk/gtkimage.c:287
+#: ../gtk/gtkimage.c:288
 msgid "Pixel size to use for named icon"
 msgstr "Pikseļu izmērs, ko lietot nosauktai ikonai"
 
+#: ../gtk/gtkimage.c:296
 #: ../gtk/gtkimage.c:295
 msgid "Animation"
 msgstr "Animācija"
 
-#: ../gtk/gtkimage.c:296
+#: ../gtk/gtkimage.c:297
 msgid "GdkPixbufAnimation to display"
 msgstr "GdkPixbufAnimation, ko parādīt"
 
-#: ../gtk/gtkimage.c:336 ../gtk/gtkstatusicon.c:252
+#: ../gtk/gtkimage.c:337 ../gtk/gtkstatusicon.c:283
+#: ../gtk/gtkimage.c:336
+#: ../gtk/gtkstatusicon.c:253
+#: ../gtk/gtkstatusicon.c:254
 msgid "Storage type"
 msgstr "Glabātuves tips"
 
-#: ../gtk/gtkimage.c:337 ../gtk/gtkstatusicon.c:253
+#: ../gtk/gtkimage.c:338 ../gtk/gtkstatusicon.c:284
+#: ../gtk/gtkimage.c:337
+#: ../gtk/gtkstatusicon.c:254
 msgid "The representation being used for image data"
 msgstr "Attēla datiem lietotais attēlojums"
 
+#: ../gtk/gtkimage.c:356
 #: ../gtk/gtkimage.c:355
-#, fuzzy
 #| msgid "Use alpha"
 msgid "Use Fallback"
-msgstr "Lietot alfa"
+msgstr "Lietot atkāpšanos"
 
-#: ../gtk/gtkimage.c:356
-#, fuzzy
+#: ../gtk/gtkimage.c:357
 msgid "Whether to use icon names fallback"
-msgstr "Vai statusa ikona ir redzama"
+msgstr "Vai izmantot ikonu nosaukumu atkāpšanos"
 
+#: ../gtk/gtkimagemenuitem.c:161
 #: ../gtk/gtkimagemenuitem.c:150
 msgid "Child widget to appear next to the menu text"
 msgstr "Bērna logdaļa, kurai jāparādās blakus izvēlnes tekstam"
 
+#: ../gtk/gtkimagemenuitem.c:176
 #: ../gtk/gtkimagemenuitem.c:165
 msgid "Whether to use the label text to create a stock menu item"
 msgstr "Vai lietot iezīmes tekstu veidojot krājuma izvēlnes elementus"
 
-#: ../gtk/gtkimagemenuitem.c:198 ../gtk/gtkmenu.c:601
+#: ../gtk/gtkimagemenuitem.c:209 ../gtk/gtkmenu.c:603
+#: ../gtk/gtkimagemenuitem.c:198
+#: ../gtk/gtkmenu.c:601
 msgid "Accel Group"
 msgstr "Paātrinājuma grupa"
 
+#: ../gtk/gtkimagemenuitem.c:210
 #: ../gtk/gtkimagemenuitem.c:199
 msgid "The Accel Group to use for stock accelerator keys"
 msgstr "Paātrinājuma grupa, ko izmantot krājuma paātrinājuma taustiņiem"
 
-#: ../gtk/gtkinfobar.c:371 ../gtk/gtkmessagedialog.c:202
+#: ../gtk/gtkinfobar.c:372 ../gtk/gtkmessagedialog.c:202
+#: ../gtk/gtkinfobar.c:371
+#: ../gtk/gtkmessagedialog.c:203
 msgid "Message Type"
-msgstr "Ziņojuma Tips"
+msgstr "Ziņojuma tips"
 
-#: ../gtk/gtkinfobar.c:372 ../gtk/gtkmessagedialog.c:203
+#: ../gtk/gtkinfobar.c:373 ../gtk/gtkmessagedialog.c:203
+#: ../gtk/gtkinfobar.c:372
 msgid "The type of message"
 msgstr "Ziņojuma tips"
 
-#: ../gtk/gtkinfobar.c:427
-#, fuzzy
+#: ../gtk/gtkinfobar.c:428
 msgid "Width of border around the content area"
-msgstr "Robežas platums ap galveno dialoga laukumu"
+msgstr "Robežas platums ap satura laukumu"
 
-#: ../gtk/gtkinfobar.c:444
-#, fuzzy
+#: ../gtk/gtkinfobar.c:445
 msgid "Spacing between elements of the area"
-msgstr "Atstarpe starp elementiem un galveno loga apgabalu"
+msgstr "Atstarpe starp elementiem apgabalā"
 
-#: ../gtk/gtkinfobar.c:476
-#, fuzzy
+#: ../gtk/gtkinfobar.c:477
 msgid "Width of border around the action area"
-msgstr "Robežas platums ap galveno dialoga laukumu"
+msgstr "Robežas platums ap darbības laukumu"
 
-#: ../gtk/gtkinvisible.c:89 ../gtk/gtkmountoperation.c:175
-#: ../gtk/gtkstatusicon.c:271 ../gtk/gtkstylecontext.c:546
-#: ../gtk/gtkwindow.c:726
+#: ../gtk/gtkinvisible.c:103 ../gtk/gtkmountoperation.c:173
+#: ../gtk/gtkstatusicon.c:302 ../gtk/gtkstylecontext.c:431
+#: ../gtk/gtkwindow.c:732
+#: ../gtk/gtkinvisible.c:89
+#: ../gtk/gtkmountoperation.c:175
+#: ../gtk/gtkstatusicon.c:272
+#: ../gtk/gtkstylecontext.c:545
+#: ../gtk/gtkwindow.c:730
 msgid "Screen"
 msgstr "Ekrāns"
 
-#: ../gtk/gtkinvisible.c:90 ../gtk/gtkwindow.c:727
+#: ../gtk/gtkinvisible.c:104 ../gtk/gtkwindow.c:733
+#: ../gtk/gtkinvisible.c:90
+#: ../gtk/gtkwindow.c:731
 msgid "The screen where this window will be displayed"
 msgstr "Ekrāns, kurā šis logs tiks parādīts"
 
+#: ../gtk/gtklabel.c:745
 #: ../gtk/gtklabel.c:568
 msgid "The text of the label"
 msgstr "Iezīmes teksts"
 
+#: ../gtk/gtklabel.c:752
 #: ../gtk/gtklabel.c:575
 msgid "A list of style attributes to apply to the text of the label"
-msgstr "Stila atribūtu saraksts, kuru pieleietot iezīmes tekstam"
+msgstr "Stila atribūtu saraksts, kuru pielietot iezīmes tekstam"
 
-#: ../gtk/gtklabel.c:596 ../gtk/gtktexttag.c:353 ../gtk/gtktextview.c:701
+#: ../gtk/gtklabel.c:773 ../gtk/gtktexttag.c:386 ../gtk/gtktextview.c:703
+#: ../gtk/gtklabel.c:596
+#: ../gtk/gtktexttag.c:353
+#: ../gtk/gtktextview.c:701
 msgid "Justification"
 msgstr "Izlīdzināšana"
 
+#: ../gtk/gtklabel.c:774
 #: ../gtk/gtklabel.c:597
 msgid ""
 "The alignment of the lines in the text of the label relative to each other. "
 "This does NOT affect the alignment of the label within its allocation. See "
 "GtkMisc::xalign for that"
 msgstr ""
-"Līniju izlīdzināšana iezīmes tekstā attiecībā vienai pret otru. Šis "
-"NEietekmē iezīmes izlīdzināšanu tās iedalīšanā. Tam apskati GtkMisc::xalign"
+"Līniju līdzināšana iezīmes tekstā attiecībā vienai pret otru. Šis NEietekmē "
+"iezīmes līdzināšanu tās iedalīšanā. Tam apskati GtkMisc::xalign"
 
+#: ../gtk/gtklabel.c:782
 #: ../gtk/gtklabel.c:605
 msgid "Pattern"
 msgstr "Raksts"
 
+#: ../gtk/gtklabel.c:783
 #: ../gtk/gtklabel.c:606
 msgid ""
 "A string with _ characters in positions correspond to characters in the text "
@@ -3695,82 +4504,97 @@ msgstr ""
 "Virkne ar _ rakstzīmēm pozīcijās, kas atbilst pasvītrojamajām rakstzīmēm "
 "tekstā"
 
+#: ../gtk/gtklabel.c:790
 #: ../gtk/gtklabel.c:613
 msgid "Line wrap"
 msgstr "Rindiņu aplaušana"
 
+#: ../gtk/gtklabel.c:791
 #: ../gtk/gtklabel.c:614
 msgid "If set, wrap lines if the text becomes too wide"
 msgstr "Ja iestatīts, aplauzt rindiņas, ja teksts kļūst pārāk plašs"
 
+#: ../gtk/gtklabel.c:806
 #: ../gtk/gtklabel.c:629
 msgid "Line wrap mode"
 msgstr "Rindiņu aplaušanas režīms"
 
+#: ../gtk/gtklabel.c:807
 #: ../gtk/gtklabel.c:630
 msgid "If wrap is set, controls how linewrapping is done"
-msgstr ""
+msgstr "Ja aplaušana iestatīta, kontrolē, kā tiek veikta rindiņu aplaušana"
 
+#: ../gtk/gtklabel.c:814
 #: ../gtk/gtklabel.c:637
 msgid "Selectable"
 msgstr "Izvēlējams"
 
+#: ../gtk/gtklabel.c:815
 #: ../gtk/gtklabel.c:638
 msgid "Whether the label text can be selected with the mouse"
 msgstr "Vai iezīmes teksts var tikt izvēlēts ar peli"
 
+#: ../gtk/gtklabel.c:821
 #: ../gtk/gtklabel.c:644
 msgid "Mnemonic key"
 msgstr "Mnemonikas taustiņš"
 
+#: ../gtk/gtklabel.c:822
 #: ../gtk/gtklabel.c:645
 msgid "The mnemonic accelerator key for this label"
 msgstr "Mnemonikas paātrinātāja taustiņš šai iezīmei"
 
+#: ../gtk/gtklabel.c:830
 #: ../gtk/gtklabel.c:653
 msgid "Mnemonic widget"
 msgstr "Mnemonikas logdaļa"
 
+#: ../gtk/gtklabel.c:831
 #: ../gtk/gtklabel.c:654
 msgid "The widget to be activated when the label's mnemonic key is pressed"
-msgstr ""
-"Logdaļa, kura jāaktivizē, kad iezīmes mnemonikas taustiņš tiek nospiests"
+msgstr "Logdaļa, kura jāaktivizē, kad iezīmes mnemonikas taustiņš tiek nospiests"
 
+#: ../gtk/gtklabel.c:877
 #: ../gtk/gtklabel.c:700
 msgid ""
 "The preferred place to ellipsize the string, if the label does not have "
 "enough room to display the entire string"
 msgstr ""
+"Vēlamā vieta, kur virkni īsināt ar daudzpunkti, ja iezīmei nepietiek vietas, "
+"lai attēlotu visu virkni"
 
+#: ../gtk/gtklabel.c:918
 #: ../gtk/gtklabel.c:741
 msgid "Single Line Mode"
 msgstr "Vienas rindas režīms"
 
+#: ../gtk/gtklabel.c:919
 #: ../gtk/gtklabel.c:742
 msgid "Whether the label is in single line mode"
-msgstr "Vai etiķete ir vienas rindas režīmā"
+msgstr "Vai iezīme ir vienas rindas režīmā"
 
-#: ../gtk/gtklabel.c:759
+#: ../gtk/gtklabel.c:936
 msgid "Angle"
 msgstr "Leņķis"
 
+#: ../gtk/gtklabel.c:937
 #: ../gtk/gtklabel.c:760
 msgid "Angle at which the label is rotated"
-msgstr "Etiķetes rotācijas leņķis"
+msgstr "Iezīmes rotācijas leņķis"
 
-#: ../gtk/gtklabel.c:782
+#: ../gtk/gtklabel.c:959
 msgid "The desired maximum width of the label, in characters"
 msgstr "Vēlamais maksimālais etiķetes platums rakstīmēs"
 
+#: ../gtk/gtklabel.c:977
 #: ../gtk/gtklabel.c:800
-#, fuzzy
 msgid "Track visited links"
-msgstr "Aplūkoto saišu krāsa"
+msgstr "Izsekot apmeklētās saites"
 
+#: ../gtk/gtklabel.c:978
 #: ../gtk/gtklabel.c:801
-#, fuzzy
 msgid "Whether visited links should be tracked"
-msgstr "Vai rādīt privātos elementus"
+msgstr "Vai apmeklētās saites vajadzētu izsekot"
 
 #: ../gtk/gtklayout.c:661
 msgid "The width of the layout"
@@ -3796,112 +4620,194 @@ msgstr "Apmeklēts"
 msgid "Whether this link has been visited."
 msgstr "Vai šī saite ir apmeklēta."
 
+#: ../gtk/gtklockbutton.c:278
+msgid "Permission"
+msgstr "Atļauja"
+
+#: ../gtk/gtklockbutton.c:279
+msgid "The GPermission object controlling this button"
+msgstr "GPermission objekts, kas kontrolē šo pogu"
+
+#: ../gtk/gtklockbutton.c:286
+#| msgid "Text"
+msgid "Lock Text"
+msgstr "Slēgšanas teksts"
+
+#: ../gtk/gtklockbutton.c:287
+#| msgid "The text to display in order to demonstrate the selected font"
+msgid "The text to display when prompting the user to lock"
+msgstr "Teksts, ko parādīt, kad prasa lietotājam slēgt"
+
+#: ../gtk/gtklockbutton.c:295
+msgid "Unlock Text"
+msgstr "Atslēgšanas teksts"
+
+#: ../gtk/gtklockbutton.c:296
+#| msgid "The text to display in order to demonstrate the selected font"
+msgid "The text to display when prompting the user to unlock"
+msgstr "Teksts, ko parādīt, kad prasa lietotājam atslēgt"
+
+#: ../gtk/gtklockbutton.c:304
+#| msgid "Tooltip"
+msgid "Lock Tooltip"
+msgstr "Slēgšanas paskaidre"
+
+#: ../gtk/gtklockbutton.c:305
+msgid "The tooltip to display when prompting the user to lock"
+msgstr "Paskaidre, ko parādīt, kad prasa lietotājam slēgt"
+
+#: ../gtk/gtklockbutton.c:313
+#| msgid "Enable Tooltips"
+msgid "Unlock Tooltip"
+msgstr "Atslēgšanas paskaidre"
+
+#: ../gtk/gtklockbutton.c:314
+msgid "The tooltip to display when prompting the user to unlock"
+msgstr "Paskaidre, ko parādīt, kad prasa lietotājam atslēgt"
+
+#: ../gtk/gtklockbutton.c:322
+msgid "Not Authorized Tooltip"
+msgstr "Neautorizēta paskaidre"
+
+#: ../gtk/gtklockbutton.c:323
+msgid ""
+"The tooltip to display when prompting the user cannot obtain authorization"
+msgstr "Paskaidre, ko parādīt, kad lietotājs nevar saņemt autorizāciju"
+
+#: ../gtk/gtkmenubar.c:191
 #: ../gtk/gtkmenubar.c:181
 msgid "Pack direction"
 msgstr "Pakas virziens"
 
+#: ../gtk/gtkmenubar.c:192
 #: ../gtk/gtkmenubar.c:182
 msgid "The pack direction of the menubar"
 msgstr "Izvēlnes joslas pakas virziens"
 
+#: ../gtk/gtkmenubar.c:208
 #: ../gtk/gtkmenubar.c:198
 msgid "Child Pack direction"
-msgstr "Bērna kompleta virziens"
+msgstr "Bērna pakas virziens"
 
+#: ../gtk/gtkmenubar.c:209
 #: ../gtk/gtkmenubar.c:199
 msgid "The child pack direction of the menubar"
 msgstr "Izvēlnes joslas bērna pakas virziens"
 
-#: ../gtk/gtkmenubar.c:208
+#: ../gtk/gtkmenubar.c:218
 msgid "Style of bevel around the menubar"
 msgstr "Konusa stils ap izvēļņjoslu"
 
-#: ../gtk/gtkmenubar.c:215 ../gtk/gtktoolbar.c:568
+#: ../gtk/gtkmenubar.c:225 ../gtk/gtktoolbar.c:578
+#: ../gtk/gtkmenubar.c:215
+#: ../gtk/gtktoolbar.c:568
 msgid "Internal padding"
 msgstr "Iekšējā papildināšana"
 
+#: ../gtk/gtkmenubar.c:226
 #: ../gtk/gtkmenubar.c:216
 msgid "Amount of border space between the menubar shadow and the menu items"
-msgstr "Atstarpe starp izvēļņjoslas ēnu un izvēlnes priekšmetiem"
+msgstr "Atstarpe starp izvēlnes joslas ēnu un izvēlnes priekšmetiem"
 
+#: ../gtk/gtkmenu.c:589
 #: ../gtk/gtkmenu.c:587
 msgid "The currently selected menu item"
 msgstr "Pašreiz izvēlētais izvēlnes elements"
 
+#: ../gtk/gtkmenu.c:604
 #: ../gtk/gtkmenu.c:602
 msgid "The accel group holding accelerators for the menu"
 msgstr "Paātrinājuma grupa, kas satur izvēlnes paātrinātājus"
 
-#: ../gtk/gtkmenu.c:616 ../gtk/gtkmenuitem.c:313
+#: ../gtk/gtkmenu.c:618 ../gtk/gtkmenuitem.c:369
+#: ../gtk/gtkmenu.c:616
+#: ../gtk/gtkmenuitem.c:313
 msgid "Accel Path"
 msgstr "Paātrinātāja ceļš"
 
+#: ../gtk/gtkmenu.c:619
 #: ../gtk/gtkmenu.c:617
 msgid "An accel path used to conveniently construct accel paths of child items"
 msgstr ""
+"Paātrinātāja ceļš, ko izmanto, lai ērti veidotu paātrinātāja ceļus bērnu "
+"priekšmetiem"
 
+#: ../gtk/gtkmenu.c:635
 #: ../gtk/gtkmenu.c:633
 msgid "Attach Widget"
 msgstr "Pievienot logdaļu"
 
+#: ../gtk/gtkmenu.c:636
 #: ../gtk/gtkmenu.c:634
 msgid "The widget the menu is attached to"
 msgstr "Logdaļa, kurai ir piesaistīta izvēlne"
 
+#: ../gtk/gtkmenu.c:644
 #: ../gtk/gtkmenu.c:642
 msgid ""
 "A title that may be displayed by the window manager when this menu is torn-"
 "off"
-msgstr ""
-"Virsraksts, ko var parādīt logu pārvaldnieks, kad šī izvēlne ir izslēgta"
+msgstr "Virsraksts, ko var parādīt logu pārvaldnieks, kad šī izvēlne ir atrauta"
 
+#: ../gtk/gtkmenu.c:658
 #: ../gtk/gtkmenu.c:656
 msgid "Tearoff State"
 msgstr "Atrautības stāvoklis"
 
+#: ../gtk/gtkmenu.c:659
 #: ../gtk/gtkmenu.c:657
 msgid "A boolean that indicates whether the menu is torn-off"
 msgstr "Loģiskā vērtība, kas norāda vai izvēlne ir atrauta"
 
+#: ../gtk/gtkmenu.c:673
 #: ../gtk/gtkmenu.c:671
 msgid "Monitor"
 msgstr "Monitors"
 
+#: ../gtk/gtkmenu.c:674
 #: ../gtk/gtkmenu.c:672
 msgid "The monitor the menu will be popped up on"
-msgstr ""
+msgstr "Monitors, uz kura parādīsies izvēlne"
 
+#: ../gtk/gtkmenu.c:680
 #: ../gtk/gtkmenu.c:678
 msgid "Vertical Padding"
 msgstr "Vertikālā papildināšana"
 
+#: ../gtk/gtkmenu.c:681
 #: ../gtk/gtkmenu.c:679
 msgid "Extra space at the top and bottom of the menu"
-msgstr "Papildus vieta izvelnes augšā un apakšā"
+msgstr "Papildus vieta izvēlnes augšā un apakšā"
 
+#: ../gtk/gtkmenu.c:703
 #: ../gtk/gtkmenu.c:701
 msgid "Reserve Toggle Size"
-msgstr ""
+msgstr "Rezervēt pārslēgšanas izmēru"
 
+#: ../gtk/gtkmenu.c:704
 #: ../gtk/gtkmenu.c:702
-#, fuzzy
 msgid ""
 "A boolean that indicates whether the menu reserves space for toggles and "
 "icons"
-msgstr "Loģiskā vērtība, kas norāda vai izvēlne ir atrauta"
+msgstr ""
+"Loģiskā vērtība, kas norāda vai izvēlne rezervēs vietu pārslēgiem un ikonām"
 
+#: ../gtk/gtkmenu.c:710
 #: ../gtk/gtkmenu.c:708
 msgid "Horizontal Padding"
 msgstr "Horizontālā papildināšana"
 
+#: ../gtk/gtkmenu.c:711
 #: ../gtk/gtkmenu.c:709
 msgid "Extra space at the left and right edges of the menu"
 msgstr "Atstarpes apmērs, kādu pievienot pa labi un pa kreisi no izvēlnes"
 
+#: ../gtk/gtkmenu.c:719
 #: ../gtk/gtkmenu.c:717
 msgid "Vertical Offset"
 msgstr "Vertikālā nobīde"
 
+#: ../gtk/gtkmenu.c:720
 #: ../gtk/gtkmenu.c:718
 msgid ""
 "When the menu is a submenu, position it this number of pixels offset "
@@ -3910,10 +4816,12 @@ msgstr ""
 "Kad izvēlne ir apakšizvēlne, novieto to pēc šī pikseļu skaita vertikālās "
 "nobīdes"
 
+#: ../gtk/gtkmenu.c:728
 #: ../gtk/gtkmenu.c:726
 msgid "Horizontal Offset"
 msgstr "Horizontālā nobīde"
 
+#: ../gtk/gtkmenu.c:729
 #: ../gtk/gtkmenu.c:727
 msgid ""
 "When the menu is a submenu, position it this number of pixels offset "
@@ -3922,90 +4830,117 @@ msgstr ""
 "Kad izvēlne ir apakšizvēlne, novieto to pēc šī pikseļu skaita horizontālās "
 "nobīdes"
 
+#: ../gtk/gtkmenu.c:737
 #: ../gtk/gtkmenu.c:735
 msgid "Double Arrows"
 msgstr "Dubultās bultas"
 
+#: ../gtk/gtkmenu.c:738
 #: ../gtk/gtkmenu.c:736
 msgid "When scrolling, always show both arrows."
-msgstr ""
+msgstr "Kad ritina, vienmēr rādīt abas bultas."
 
+#: ../gtk/gtkmenu.c:751
 #: ../gtk/gtkmenu.c:749
 msgid "Arrow Placement"
 msgstr "Bultas novietojums"
 
+#: ../gtk/gtkmenu.c:752
 #: ../gtk/gtkmenu.c:750
 msgid "Indicates where scroll arrows should be placed"
-msgstr ""
+msgstr "Norāda, kur tiks novietotas ritināšanas bultas"
 
+#: ../gtk/gtkmenu.c:760
 #: ../gtk/gtkmenu.c:758
 msgid "Left Attach"
 msgstr "Kreisā piesaiste"
 
+#: ../gtk/gtkmenu.c:768
 #: ../gtk/gtkmenu.c:766
 msgid "Right Attach"
 msgstr "Labā piesaiste"
 
+#: ../gtk/gtkmenu.c:769
 #: ../gtk/gtkmenu.c:767
 msgid "The column number to attach the right side of the child to"
 msgstr "Kolonnas numurs, ko piesaistīt bērna labajai pusei"
 
+#: ../gtk/gtkmenu.c:776
 #: ../gtk/gtkmenu.c:774
 msgid "Top Attach"
 msgstr "Augšas piesaiste"
 
+#: ../gtk/gtkmenu.c:777
 #: ../gtk/gtkmenu.c:775
 msgid "The row number to attach the top of the child to"
 msgstr "Rindas numurs, ko piesaistīt bērna virsotnei"
 
+#: ../gtk/gtkmenu.c:784
 #: ../gtk/gtkmenu.c:782
 msgid "Bottom Attach"
 msgstr "Apakšas piesaiste"
 
-#: ../gtk/gtkmenu.c:783 ../gtk/gtktable.c:223
+#: ../gtk/gtkmenu.c:785 ../gtk/gtktable.c:257
+#: ../gtk/gtkmenu.c:783
+#: ../gtk/gtktable.c:223
 msgid "The row number to attach the bottom of the child to"
-msgstr "Rindas numurs, ko piesaistīt bērna apagšas logdaļai"
+msgstr "Rindas numurs, ko piesaistīt bērna apakšas logdaļai"
 
+#: ../gtk/gtkmenu.c:799
 #: ../gtk/gtkmenu.c:797
 msgid "Arbitrary constant to scale down the size of the scroll arrow"
-msgstr ""
+msgstr "Patvaļīga konstante, par kādu samazināt ritināšanas bultas izmēru"
 
+#: ../gtk/gtkmenuitem.c:337
 #: ../gtk/gtkmenuitem.c:281
 msgid "Right Justified"
 msgstr "Labā izlīdzināšana"
 
+#: ../gtk/gtkmenuitem.c:338
 #: ../gtk/gtkmenuitem.c:282
 msgid ""
 "Sets whether the menu item appears justified at the right side of a menu bar"
 msgstr ""
+"Iestata, vai izvēlnes priekšmets ir izlīdzināts pie izvēlnes joslas labās "
+"malas"
 
+#: ../gtk/gtkmenuitem.c:352
 #: ../gtk/gtkmenuitem.c:296
 msgid "Submenu"
 msgstr "Apakšizvēlne"
 
+#: ../gtk/gtkmenuitem.c:353
 #: ../gtk/gtkmenuitem.c:297
 msgid "The submenu attached to the menu item, or NULL if it has none"
 msgstr ""
+"Apakšizvēlne piesaistīta pie izvēlnes vienuma, vai NULL, ja tai tai tādu nav"
 
+#: ../gtk/gtkmenuitem.c:370
 #: ../gtk/gtkmenuitem.c:314
 msgid "Sets the accelerator path of the menu item"
-msgstr ""
+msgstr "Iestata paātrinātāja ceļu izvēlnes vienumam"
 
+#: ../gtk/gtkmenuitem.c:385
 #: ../gtk/gtkmenuitem.c:329
 msgid "The text for the child label"
-msgstr "Bērna etiķetes teksts"
+msgstr "Bērna iezīmes teksts"
 
+#: ../gtk/gtkmenuitem.c:448
 #: ../gtk/gtkmenuitem.c:392
 msgid "Amount of space used up by arrow, relative to the menu item's font size"
 msgstr ""
+"Bultas izmantotais vietas daudzums. relatīvs pret izvēlnes priekšmeta fonta "
+"izmēru"
 
+#: ../gtk/gtkmenuitem.c:461
 #: ../gtk/gtkmenuitem.c:405
 msgid "Width in Characters"
-msgstr "Platums rakszīmēs"
+msgstr "Platums rakstzīmēs"
 
+#: ../gtk/gtkmenuitem.c:462
 #: ../gtk/gtkmenuitem.c:406
 msgid "The minimum desired width of the menu item in characters"
-msgstr ""
+msgstr "Minimālais vēlamais izvēlnes priekšmetu platums, izteikts rakstzīmēs"
 
 #: ../gtk/gtkmenushell.c:420
 msgid "Take Focus"
@@ -4013,12 +4948,14 @@ msgstr "Paņemt fokusu"
 
 #: ../gtk/gtkmenushell.c:421
 msgid "A boolean that determines whether the menu grabs the keyboard focus"
-msgstr "Loģiska vērtība, kas nosaka, vai izvēlne sagrābj tatatūras fokusu"
+msgstr "Loģiska vērtība, kas nosaka, vai izvēlne sagrābj tastatūras fokusu"
 
+#: ../gtk/gtkmenutoolbutton.c:293
 #: ../gtk/gtkmenutoolbutton.c:257
 msgid "Menu"
 msgstr "Izvēlne"
 
+#: ../gtk/gtkmenutoolbutton.c:294
 #: ../gtk/gtkmenutoolbutton.c:258
 msgid "The dropdown menu"
 msgstr "Izkrītošā izvēlne"
@@ -4033,15 +4970,15 @@ msgstr "Robežas platums, kas apkārt iezīmei un attēlam ziņojuma dialogā"
 
 #: ../gtk/gtkmessagedialog.c:210
 msgid "Message Buttons"
-msgstr "Ziņojuma Pogas"
+msgstr "Ziņojuma pogas"
 
 #: ../gtk/gtkmessagedialog.c:211
 msgid "The buttons shown in the message dialog"
-msgstr "Ziņas dialogā parādītās pogas"
+msgstr "Ziņojumu dialogā parādītās pogas"
 
 #: ../gtk/gtkmessagedialog.c:228
 msgid "The primary text of the message dialog"
-msgstr "Ziņas loga primārais teksts"
+msgstr "Ziņojuma dialoga primārais teksts"
 
 #: ../gtk/gtkmessagedialog.c:243
 msgid "Use Markup"
@@ -4049,7 +4986,7 @@ msgstr "Lietot marķējumu"
 
 #: ../gtk/gtkmessagedialog.c:244
 msgid "The primary text of the title includes Pango markup."
-msgstr ""
+msgstr "Virsraksta primārais teksts iekļauj Pango marķējumu."
 
 #: ../gtk/gtkmessagedialog.c:258
 msgid "Secondary Text"
@@ -4057,15 +4994,15 @@ msgstr "Sekundārais teksts"
 
 #: ../gtk/gtkmessagedialog.c:259
 msgid "The secondary text of the message dialog"
-msgstr "Ziņas loga sekundārais teksts"
+msgstr "Ziņojuma dialoga sekundārais teksts"
 
 #: ../gtk/gtkmessagedialog.c:274
 msgid "Use Markup in secondary"
-msgstr "Izmantot formatējumu sekundārajā"
+msgstr "Lietot marķējumu sekundārajā"
 
 #: ../gtk/gtkmessagedialog.c:275
 msgid "The secondary text includes Pango markup."
-msgstr ""
+msgstr "Sekundārais teksts iekļauj Pango marķējumu."
 
 #: ../gtk/gtkmessagedialog.c:289
 msgid "Image"
@@ -4076,296 +5013,341 @@ msgid "The image"
 msgstr "Attēls"
 
 #: ../gtk/gtkmessagedialog.c:306
-#, fuzzy
 msgid "Message area"
-msgstr "Ziņojuma Tips"
+msgstr "Ziņojuma laukums"
 
 #: ../gtk/gtkmessagedialog.c:307
 msgid "GtkVBox that holds the dialog's primary and secondary labels"
-msgstr ""
+msgstr "GtkVBox, kas satur dialoga primārās un sekundārās iezīmes"
 
+#: ../gtk/gtkmisc.c:115
 #: ../gtk/gtkmisc.c:91
 msgid "Y align"
-msgstr "Y centrēšana"
+msgstr "Y līdzināšana"
 
+#: ../gtk/gtkmisc.c:116
 #: ../gtk/gtkmisc.c:92
 msgid "The vertical alignment, from 0 (top) to 1 (bottom)"
-msgstr "Vertikālā centrēšana, no 0 (augšas) līdz 1 (apakšai)"
+msgstr "Vertikālā līdzināšana, no 0 (augšas) līdz 1 (apakšai)"
 
+#: ../gtk/gtkmisc.c:125
 #: ../gtk/gtkmisc.c:101
 msgid "X pad"
 msgstr "X papild"
 
+#: ../gtk/gtkmisc.c:126
 #: ../gtk/gtkmisc.c:102
-msgid ""
-"The amount of space to add on the left and right of the widget, in pixels"
+msgid "The amount of space to add on the left and right of the widget, in pixels"
 msgstr ""
 "Atstarpes apmērs, kādu pievienot pa labi un pa kreisi no logdaļas, pikseļos"
 
+#: ../gtk/gtkmisc.c:135
 #: ../gtk/gtkmisc.c:111
 msgid "Y pad"
 msgstr "Y papild"
 
+#: ../gtk/gtkmisc.c:136
 #: ../gtk/gtkmisc.c:112
-msgid ""
-"The amount of space to add on the top and bottom of the widget, in pixels"
+msgid "The amount of space to add on the top and bottom of the widget, in pixels"
 msgstr ""
 "Atstarpes apmērs, kādu pievienot uz augšu un apakšu no logdaļas, pikseļos"
 
+#: ../gtk/gtkmountoperation.c:157
 #: ../gtk/gtkmountoperation.c:159
 msgid "Parent"
 msgstr "Vecāks"
 
+#: ../gtk/gtkmountoperation.c:158
 #: ../gtk/gtkmountoperation.c:160
 msgid "The parent window"
 msgstr "Vecāka logs"
 
+#: ../gtk/gtkmountoperation.c:165
 #: ../gtk/gtkmountoperation.c:167
 msgid "Is Showing"
 msgstr "Tiek rādīts"
 
+#: ../gtk/gtkmountoperation.c:166
 #: ../gtk/gtkmountoperation.c:168
 msgid "Are we showing a dialog"
-msgstr "Vai mēs rādam logu"
+msgstr "Vai mēs rādām dialogu"
 
+#: ../gtk/gtkmountoperation.c:174
 #: ../gtk/gtkmountoperation.c:176
 msgid "The screen where this window will be displayed."
 msgstr "Ekrāns, kurā šis logs tiks parādīts."
 
+#: ../gtk/gtknotebook.c:696
 #: ../gtk/gtknotebook.c:685
 msgid "Page"
 msgstr "Lapa"
 
+#: ../gtk/gtknotebook.c:697
 #: ../gtk/gtknotebook.c:686
 msgid "The index of the current page"
 msgstr "Pašreizējās lapas indekss"
 
+#: ../gtk/gtknotebook.c:705
 #: ../gtk/gtknotebook.c:694
 msgid "Tab Position"
-msgstr "Sadaļas Pozīcija"
+msgstr "Cilnes novietojums"
 
+#: ../gtk/gtknotebook.c:706
 #: ../gtk/gtknotebook.c:695
 msgid "Which side of the notebook holds the tabs"
-msgstr "Kurā piezīmjgrāmatas pusē tiek novietotas sadaļas"
+msgstr "Kurā bloknota pusē tiek novietotas cilnes"
 
+#: ../gtk/gtknotebook.c:713
 #: ../gtk/gtknotebook.c:702
 msgid "Show Tabs"
-msgstr "Parādīt Sadaļas"
+msgstr "Rādīt cilnes"
 
+#: ../gtk/gtknotebook.c:714
 #: ../gtk/gtknotebook.c:703
-#, fuzzy
 msgid "Whether tabs should be shown"
-msgstr "Vai sadaļām ir vai nav jābūt parādītām"
+msgstr "Vai jārāda cilnes"
 
+#: ../gtk/gtknotebook.c:720
 #: ../gtk/gtknotebook.c:709
 msgid "Show Border"
-msgstr "Rādīt Robežu"
+msgstr "Rādīt robežu"
 
+#: ../gtk/gtknotebook.c:721
 #: ../gtk/gtknotebook.c:710
-#, fuzzy
 msgid "Whether the border should be shown"
-msgstr "Vai ietvaram ir vai nav jābūt parādītam"
+msgstr "Vai būtu jārāda robežas"
 
+#: ../gtk/gtknotebook.c:727
 #: ../gtk/gtknotebook.c:716
 msgid "Scrollable"
 msgstr "Ritināma"
 
+#: ../gtk/gtknotebook.c:728
 #: ../gtk/gtknotebook.c:717
 msgid "If TRUE, scroll arrows are added if there are too many tabs to fit"
 msgstr ""
 "Ja TRUE, ritināšanas bultas tiek pievienotas, ja ir pārāk daudz ietilpināmo "
-"sadaļu"
+"ciļņu"
 
+#: ../gtk/gtknotebook.c:734
 #: ../gtk/gtknotebook.c:723
 msgid "Enable Popup"
-msgstr "Aktizvizēt Izlecēju"
+msgstr "Aktivēt uznirstošo logu"
 
+#: ../gtk/gtknotebook.c:735
 #: ../gtk/gtknotebook.c:724
 msgid ""
 "If TRUE, pressing the right mouse button on the notebook pops up a menu that "
 "you can use to go to a page"
 msgstr ""
-"Ja TRUE, nospiežot labo peles pogu uz piezīmjgrāmatas, tiek parādīta "
-"izlecējizvēlne, kuru varat lietot, lai pārietu uz lapu"
+"Ja TRUE, nospiežot labo peles pogu uz bloknota, tiek parādīta izvēlni, kuru "
+"varat lietot, lai pārietu uz lapu"
 
+#: ../gtk/gtknotebook.c:749
 #: ../gtk/gtknotebook.c:738
-#, fuzzy
 msgid "Group Name"
-msgstr "Grupas ID"
+msgstr "Grupas nosaukums"
 
+#: ../gtk/gtknotebook.c:750
 #: ../gtk/gtknotebook.c:739
-#, fuzzy
 msgid "Group name for tab drag and drop"
-msgstr "Darbības grupas nosaukums."
+msgstr "Grupas nosaukums cilnes vilkšanai un nomešanai"
 
+#: ../gtk/gtknotebook.c:757
 #: ../gtk/gtknotebook.c:746
 msgid "Tab label"
-msgstr "Sadaļas iezīme"
+msgstr "Cilnes iezīme"
 
+#: ../gtk/gtknotebook.c:758
 #: ../gtk/gtknotebook.c:747
 msgid "The string displayed on the child's tab label"
-msgstr "Virkne, kas parādīta bērna ciļnes etiķetē"
+msgstr "Virkne, kas parādīta bērna cilnes iezīmē"
 
+#: ../gtk/gtknotebook.c:764
 #: ../gtk/gtknotebook.c:753
 msgid "Menu label"
 msgstr "Izvēlnes iezīme"
 
+#: ../gtk/gtknotebook.c:765
 #: ../gtk/gtknotebook.c:754
 msgid "The string displayed in the child's menu entry"
 msgstr "Virkne, kas parādīta bērna izvēlnes ierakstā"
 
+#: ../gtk/gtknotebook.c:778
 #: ../gtk/gtknotebook.c:767
 msgid "Tab expand"
-msgstr "Sadaļas papildināšana"
+msgstr "Cilne izvērsta"
 
+#: ../gtk/gtknotebook.c:779
 #: ../gtk/gtknotebook.c:768
-#, fuzzy
 msgid "Whether to expand the child's tab"
-msgstr "Vai paplašināt bērna cilni vai nē"
+msgstr "Vai izvērst bērna cilni"
 
+#: ../gtk/gtknotebook.c:785
 #: ../gtk/gtknotebook.c:774
 msgid "Tab fill"
 msgstr "Cilnes aizpildījums"
 
+#: ../gtk/gtknotebook.c:786
 #: ../gtk/gtknotebook.c:775
-#, fuzzy
 msgid "Whether the child's tab should fill the allocated area"
-msgstr "Vai bērna cilnei jāaizpilda piešķirtais lauks vai nē"
+msgstr "Vai bērna cilnei jāaizpilda piešķirtais lauks"
 
+#: ../gtk/gtknotebook.c:793
 #: ../gtk/gtknotebook.c:782
 msgid "Tab reorderable"
 msgstr "Ierakstāma cilne"
 
+#: ../gtk/gtknotebook.c:794
 #: ../gtk/gtknotebook.c:783
-#, fuzzy
 msgid "Whether the tab is reorderable by user action"
-msgstr "Vai cilne ir ierakstāma ar lietotāja darbībām vai nē"
+msgstr "Vai cilne ir ierakstāma ar lietotāja darbībām"
 
+#: ../gtk/gtknotebook.c:800
 #: ../gtk/gtknotebook.c:789
 msgid "Tab detachable"
-msgstr "Atdalama cilne"
+msgstr "Atdalāma cilne"
 
+#: ../gtk/gtknotebook.c:801
 #: ../gtk/gtknotebook.c:790
 msgid "Whether the tab is detachable"
 msgstr "Vai cilne ir atdalāma"
 
-#: ../gtk/gtknotebook.c:805 ../gtk/gtkscrollbar.c:102
+#: ../gtk/gtknotebook.c:816 ../gtk/gtkscrollbar.c:102
+#: ../gtk/gtknotebook.c:805
 msgid "Secondary backward stepper"
 msgstr "Papildu atpakaļ ritinātājs"
 
+#: ../gtk/gtknotebook.c:817
 #: ../gtk/gtknotebook.c:806
 msgid ""
 "Display a second backward arrow button on the opposite end of the tab area"
 msgstr "Parādīt otru pretēji vērstu bultas pogu pretējā cilnes apgabala galā"
 
-#: ../gtk/gtknotebook.c:821 ../gtk/gtkscrollbar.c:109
+#: ../gtk/gtknotebook.c:832 ../gtk/gtkscrollbar.c:109
+#: ../gtk/gtknotebook.c:821
 msgid "Secondary forward stepper"
 msgstr "Papildu turp ritinātājs"
 
+#: ../gtk/gtknotebook.c:833
 #: ../gtk/gtknotebook.c:822
-msgid ""
-"Display a second forward arrow button on the opposite end of the tab area"
-msgstr ""
-"Parādīt otru uz priekšu vērstu bultas pogu pretējā cilnes apgabala galā"
+msgid "Display a second forward arrow button on the opposite end of the tab area"
+msgstr "Parādīt otru uz priekšu vērstu bultas pogu pretējā cilnes apgabala galā"
 
-#: ../gtk/gtknotebook.c:836 ../gtk/gtkscrollbar.c:88
+#: ../gtk/gtknotebook.c:847 ../gtk/gtkscrollbar.c:88
+#: ../gtk/gtknotebook.c:836
 msgid "Backward stepper"
 msgstr "Atpakaļ ritinātājs"
 
-#: ../gtk/gtknotebook.c:837 ../gtk/gtkscrollbar.c:89
+#: ../gtk/gtknotebook.c:848 ../gtk/gtkscrollbar.c:89
+#: ../gtk/gtknotebook.c:837
 msgid "Display the standard backward arrow button"
 msgstr "Parādīt standarta atpakaļvērstu bultu pogas"
 
-#: ../gtk/gtknotebook.c:851 ../gtk/gtkscrollbar.c:95
+#: ../gtk/gtknotebook.c:862 ../gtk/gtkscrollbar.c:95
+#: ../gtk/gtknotebook.c:851
 msgid "Forward stepper"
 msgstr "Turp ritinātājs"
 
-#: ../gtk/gtknotebook.c:852 ../gtk/gtkscrollbar.c:96
+#: ../gtk/gtknotebook.c:863 ../gtk/gtkscrollbar.c:96
+#: ../gtk/gtknotebook.c:852
 msgid "Display the standard forward arrow button"
-msgstr "Parādīt standarta uz prikšu vērstu bultu pogas"
+msgstr "Parādīt standarta uz priekšu vērstu bultu pogas"
 
+#: ../gtk/gtknotebook.c:877
 #: ../gtk/gtknotebook.c:866
 msgid "Tab overlap"
 msgstr "Cilnes pārklāšanās"
 
+#: ../gtk/gtknotebook.c:878
 #: ../gtk/gtknotebook.c:867
 msgid "Size of tab overlap area"
 msgstr "Cilnes pārklāšanās apgabala izmērs"
 
+#: ../gtk/gtknotebook.c:893
 #: ../gtk/gtknotebook.c:882
 msgid "Tab curvature"
 msgstr "Cilnes izliekums"
 
+#: ../gtk/gtknotebook.c:894
 #: ../gtk/gtknotebook.c:883
 msgid "Size of tab curvature"
 msgstr "Cilnes izliekuma izmērs"
 
+#: ../gtk/gtknotebook.c:910
 #: ../gtk/gtknotebook.c:899
 msgid "Arrow spacing"
 msgstr "Bultu atstarpe"
 
+#: ../gtk/gtknotebook.c:911
 #: ../gtk/gtknotebook.c:900
 msgid "Scroll arrow spacing"
-msgstr "Rutbultas atstarpe"
+msgstr "Ritināšanas bultas atstarpe"
+
+#: ../gtk/gtknotebook.c:927
+msgid "Initial gap"
+msgstr "Sākotnējā sprauga"
+
+#: ../gtk/gtknotebook.c:928
+msgid "Initial gap before the first tab"
+msgstr "Sākotnējā sprauga pirms pirmās cilnes"
 
+#: ../gtk/gtknumerableicon.c:653
 #: ../gtk/gtknumerableicon.c:652
-#, fuzzy
 #| msgid "Icon set"
 msgid "Icon's count"
-msgstr "Ikonu kopa"
+msgstr "Ikonu skaits"
 
-#: ../gtk/gtknumerableicon.c:653
-#, fuzzy
+#: ../gtk/gtknumerableicon.c:654
 #| msgid "The index of the current page"
 msgid "The count of the emblem currently displayed"
-msgstr "Pašreizējās lapas indekss"
+msgstr "Pašlaik attēloto emblēmu skaits"
 
+#: ../gtk/gtknumerableicon.c:660
 #: ../gtk/gtknumerableicon.c:659
-#, fuzzy
 #| msgid "Icon Name"
 msgid "Icon's label"
-msgstr "Ikonas nosaukums"
+msgstr "Ikonas iezīme"
 
-#: ../gtk/gtknumerableicon.c:660
-#, fuzzy
+#: ../gtk/gtknumerableicon.c:661
 #| msgid "The stock icon displayed on the item"
 msgid "The label to be displayed over the icon"
-msgstr "Priekšmeta krājuma ikona"
+msgstr "Iezīme, ko parāda virs ikonas"
 
+#: ../gtk/gtknumerableicon.c:667
 #: ../gtk/gtknumerableicon.c:666
-#, fuzzy
 #| msgid "Font style set"
 msgid "Icon's style context"
-msgstr "Fonta stila iestādījums"
+msgstr "Ikonas stila konteksts"
 
-#: ../gtk/gtknumerableicon.c:667
+#: ../gtk/gtknumerableicon.c:668
 msgid "The style context to theme the icon appearance"
-msgstr ""
+msgstr "Stila konteksts tēmai ikonu izskatam"
 
+#: ../gtk/gtknumerableicon.c:674
 #: ../gtk/gtknumerableicon.c:673
-#, fuzzy
 #| msgid "Background color"
 msgid "Background icon"
-msgstr "Fona krāsa"
+msgstr "Fona ikona"
 
-#: ../gtk/gtknumerableicon.c:674
+#: ../gtk/gtknumerableicon.c:675
 msgid "The icon for the number emblem background"
-msgstr ""
+msgstr "Ikona numura emblēmas fonam"
 
+#: ../gtk/gtknumerableicon.c:681
 #: ../gtk/gtknumerableicon.c:680
-#, fuzzy
 #| msgid "Background color name"
 msgid "Background icon name"
-msgstr "Fona krāsas nosaukums"
+msgstr "Fona ikonas nosaukums"
 
-#: ../gtk/gtknumerableicon.c:681
-#, fuzzy
+#: ../gtk/gtknumerableicon.c:682
 #| msgid "The icon name to use for the printer"
 msgid "The icon name for the number emblem background"
-msgstr "Printera ikonas nosaukums"
+msgstr "Ikonas nosaukums numura emblēmas fonam"
 
-#: ../gtk/gtkorientable.c:63 ../gtk/gtkstatusicon.c:311
-#: ../gtk/gtktrayicon-x11.c:125
+#: ../gtk/gtkorientable.c:63 ../gtk/gtkstatusicon.c:342
+#: ../gtk/gtktrayicon-x11.c:128
+#: ../gtk/gtkstatusicon.c:312
 msgid "Orientation"
 msgstr "Novietojums"
 
@@ -4373,68 +5355,81 @@ msgstr "Novietojums"
 msgid "The orientation of the orientable"
 msgstr "Novietojuma novietojums"
 
+#: ../gtk/gtkpaned.c:350
 #: ../gtk/gtkpaned.c:327
 msgid ""
 "Position of paned separator in pixels (0 means all the way to the left/top)"
 msgstr ""
-"Rūtveida atdalītāja pozīcija pikseļos (0 nozīmē līdz galam pa kresi/uz augšu)"
+"Rūtveida atdalītāja pozīcija pikseļos (0 nozīmē līdz galam pa kresi/uz "
+"augšu)"
 
+#: ../gtk/gtkpaned.c:359
 #: ../gtk/gtkpaned.c:336
 msgid "Position Set"
-msgstr "Pozīcijas Iestādījums"
+msgstr "Pozīcijas iestatījums"
 
+#: ../gtk/gtkpaned.c:360
 #: ../gtk/gtkpaned.c:337
 msgid "TRUE if the Position property should be used"
 msgstr "TRUE, ja jālieto Pozīcijas īpašība"
 
+#: ../gtk/gtkpaned.c:366
 #: ../gtk/gtkpaned.c:343
 msgid "Handle Size"
-msgstr "Roktura Izmērs"
+msgstr "Tura izmērs"
 
+#: ../gtk/gtkpaned.c:367
 #: ../gtk/gtkpaned.c:344
 msgid "Width of handle"
-msgstr "Platums rokturim"
+msgstr "Platums turim"
 
-#: ../gtk/gtkpaned.c:360
+#: ../gtk/gtkpaned.c:383
 msgid "Minimal Position"
 msgstr "Minimālā pozīcija"
 
+#: ../gtk/gtkpaned.c:384
 #: ../gtk/gtkpaned.c:361
 msgid "Smallest possible value for the \"position\" property"
 msgstr "Mazākā iespējamā vērtība \"novietojuma\" īpašībām"
 
+#: ../gtk/gtkpaned.c:401
 #: ../gtk/gtkpaned.c:378
 msgid "Maximal Position"
 msgstr "Maksimālā pozīcija"
 
+#: ../gtk/gtkpaned.c:402
 #: ../gtk/gtkpaned.c:379
 msgid "Largest possible value for the \"position\" property"
 msgstr "Lielākā iespējamā vērtība \"novietojuma\" īpašībām"
 
+#: ../gtk/gtkpaned.c:419
 #: ../gtk/gtkpaned.c:396
 msgid "Resize"
 msgstr "Mainīt izmēru"
 
+#: ../gtk/gtkpaned.c:420
 #: ../gtk/gtkpaned.c:397
 msgid "If TRUE, the child expands and shrinks along with the paned widget"
-msgstr "Ja PATIESS, bērns palielinās un saraujās līdz ar logdaļu"
+msgstr "Ja PATIESS, bērns palielinās un saraujas līdz ar logdaļu"
 
+#: ../gtk/gtkpaned.c:435
 #: ../gtk/gtkpaned.c:412
 msgid "Shrink"
-msgstr "Sašaurināt"
+msgstr "Samazināt"
 
+#: ../gtk/gtkpaned.c:436
 #: ../gtk/gtkpaned.c:413
 msgid "If TRUE, the child can be made smaller than its requisition"
-msgstr "Ja PATIESS, berns var tikt samazināts nekā tā revizīcija"
+msgstr "Ja PATIESS, bērns var tikt samazināts vairāk nekā tā prasīts"
 
-#: ../gtk/gtkplug.c:201 ../gtk/gtkstatusicon.c:295
+#: ../gtk/gtkplug.c:201 ../gtk/gtkstatusicon.c:326
+#: ../gtk/gtkstatusicon.c:296
 msgid "Embedded"
 msgstr "Iegults"
 
 #: ../gtk/gtkplug.c:202
-#, fuzzy
 msgid "Whether the plug is embedded"
-msgstr "Vai kontakts ir iegults"
+msgstr "Vai spraudnis ir iegults"
 
 #: ../gtk/gtkplug.c:216
 msgid "Socket Window"
@@ -4442,7 +5437,7 @@ msgstr "Loga ligzda"
 
 #: ../gtk/gtkplug.c:217
 msgid "The window of the socket the plug is embedded in"
-msgstr ""
+msgstr "Ligzdas logs, kurā ir iegults spraudnis"
 
 #: ../gtk/gtkprinter.c:126
 msgid "Name of the printer"
@@ -4450,7 +5445,7 @@ msgstr "Printera nosaukums"
 
 #: ../gtk/gtkprinter.c:132
 msgid "Backend"
-msgstr "Backends"
+msgstr "Aizmugure"
 
 #: ../gtk/gtkprinter.c:133
 msgid "Backend for the printer"
@@ -4478,7 +5473,7 @@ msgstr "Pieņem PostScript"
 
 #: ../gtk/gtkprinter.c:154
 msgid "TRUE if this printer can accept PostScript"
-msgstr ""
+msgstr "PATIESS, ja printeris pieņem PostScript"
 
 #: ../gtk/gtkprinter.c:160
 msgid "State Message"
@@ -4486,7 +5481,7 @@ msgstr "Stāvokļa ziņojums"
 
 #: ../gtk/gtkprinter.c:161
 msgid "String giving the current state of the printer"
-msgstr ""
+msgstr "Virkne, kas dod pašreizējo printera stāvokli"
 
 #: ../gtk/gtkprinter.c:167
 msgid "Location"
@@ -4494,7 +5489,7 @@ msgstr "Vieta"
 
 #: ../gtk/gtkprinter.c:168
 msgid "The location of the printer"
-msgstr "Printera atrašanās viets"
+msgstr "Printera atrašanās vieta"
 
 #: ../gtk/gtkprinter.c:175
 msgid "The icon name to use for the printer"
@@ -4510,11 +5505,11 @@ msgstr "Printerī sarindoto darbu skaits"
 
 #: ../gtk/gtkprinter.c:200
 msgid "Paused Printer"
-msgstr "Apturēts printeris"
+msgstr "Pauzēts printeris"
 
 #: ../gtk/gtkprinter.c:201
 msgid "TRUE if this printer is paused"
-msgstr "TRUE, ja printeris ir apturēts"
+msgstr "TRUE, ja printeris ir pauzēts"
 
 #: ../gtk/gtkprinter.c:214
 msgid "Accepting Jobs"
@@ -4522,15 +5517,16 @@ msgstr "Pieņem darbus"
 
 #: ../gtk/gtkprinter.c:215
 msgid "TRUE if this printer is accepting new jobs"
-msgstr ""
+msgstr "PATIESS, ja printeris pieņem jaunus darbus"
 
+#: ../gtk/gtkprinteroptionwidget.c:122
 #: ../gtk/gtkprinteroptionwidget.c:121
 msgid "Source option"
-msgstr "Avota iespējas"
+msgstr "Avota opcija"
 
-#: ../gtk/gtkprinteroptionwidget.c:122
+#: ../gtk/gtkprinteroptionwidget.c:123
 msgid "The PrinterOption backing this widget"
-msgstr ""
+msgstr "PrinterOption, kas atbalsta šo logdaļu"
 
 #: ../gtk/gtkprintjob.c:142
 msgid "Title of the print job"
@@ -4553,6 +5549,7 @@ msgid "Printer settings"
 msgstr "Printera iestatījumi"
 
 #: ../gtk/gtkprintjob.c:168 ../gtk/gtkprintjob.c:169
+#: ../gtk/gtkprintunixdialog.c:368
 #: ../gtk/gtkprintunixdialog.c:298
 msgid "Page Setup"
 msgstr "Lapas iestatījumi"
@@ -4566,6 +5563,9 @@ msgid ""
 "TRUE if the print job will continue to emit status-changed signals after the "
 "print data has been sent to the printer or print server."
 msgstr ""
+"PATIESS, ja drukāšanas darbs turpinās izmest status-changed signālus pēc "
+"tam, kad drukāšanas dati ir tikuši nosūtīti uz printeri vai printera "
+"serveri."
 
 #: ../gtk/gtkprintoperation.c:1078
 msgid "Default Page Setup"
@@ -4573,15 +5573,17 @@ msgstr "Noklusētais lapas iestatījums"
 
 #: ../gtk/gtkprintoperation.c:1079
 msgid "The GtkPageSetup used by default"
-msgstr ""
+msgstr "GtkPageSetup izmantots pēc noklusējuma"
 
-#: ../gtk/gtkprintoperation.c:1097 ../gtk/gtkprintunixdialog.c:316
+#: ../gtk/gtkprintoperation.c:1097 ../gtk/gtkprintunixdialog.c:386
+#: ../gtk/gtkprintunixdialog.c:316
 msgid "Print Settings"
 msgstr "Drukāšanas iestatījumi"
 
-#: ../gtk/gtkprintoperation.c:1098 ../gtk/gtkprintunixdialog.c:317
+#: ../gtk/gtkprintoperation.c:1098 ../gtk/gtkprintunixdialog.c:387
+#: ../gtk/gtkprintunixdialog.c:317
 msgid "The GtkPrintSettings used for initializing the dialog"
-msgstr ""
+msgstr "GtkPrintSettings izmantoti dialoga inicializēšanai"
 
 #: ../gtk/gtkprintoperation.c:1116
 msgid "Job Name"
@@ -4589,7 +5591,7 @@ msgstr "Darba nosaukums"
 
 #: ../gtk/gtkprintoperation.c:1117
 msgid "A string used for identifying the print job."
-msgstr ""
+msgstr "Virkne, ko izmanto darba identificēšanai."
 
 #: ../gtk/gtkprintoperation.c:1141
 msgid "Number of Pages"
@@ -4599,11 +5601,13 @@ msgstr "Lapu skaits"
 msgid "The number of pages in the document."
 msgstr "Lapu skaits dokumentā."
 
-#: ../gtk/gtkprintoperation.c:1163 ../gtk/gtkprintunixdialog.c:306
+#: ../gtk/gtkprintoperation.c:1163 ../gtk/gtkprintunixdialog.c:376
+#: ../gtk/gtkprintunixdialog.c:306
 msgid "Current Page"
 msgstr "Pašreizējā lapa"
 
-#: ../gtk/gtkprintoperation.c:1164 ../gtk/gtkprintunixdialog.c:307
+#: ../gtk/gtkprintoperation.c:1164 ../gtk/gtkprintunixdialog.c:377
+#: ../gtk/gtkprintunixdialog.c:307
 msgid "The current page in the document"
 msgstr "Pašreizējā lapa dokumentā"
 
@@ -4616,12 +5620,16 @@ msgid ""
 "TRUE if the origin of the context should be at the corner of the page and "
 "not the corner of the imageable area"
 msgstr ""
+"PATIESS, ja izcelsmes kontekstam jābūt lapas stūrī, nevis attēlojamā laukuma "
+"stūrī"
 
 #: ../gtk/gtkprintoperation.c:1207
 msgid ""
 "TRUE if the print operation will continue to report on the print job status "
 "after the print data has been sent to the printer or print server."
 msgstr ""
+"PATIESS, ja drukāšanas darbība turpinās ziņot drukāšanas darba statusu pēc "
+"tam, kad dati ir nosūtīti uz printeri vai printera serveri."
 
 #: ../gtk/gtkprintoperation.c:1224
 msgid "Unit"
@@ -4629,15 +5637,15 @@ msgstr "Vienība"
 
 #: ../gtk/gtkprintoperation.c:1225
 msgid "The unit in which distances can be measured in the context"
-msgstr ""
+msgstr "Vienība, kurā mēra attālumu šajā kontekstā"
 
 #: ../gtk/gtkprintoperation.c:1242
 msgid "Show Dialog"
-msgstr "Rādīt logu"
+msgstr "Rādīt dialogu"
 
 #: ../gtk/gtkprintoperation.c:1243
 msgid "TRUE if a progress dialog is shown while printing."
-msgstr ""
+msgstr "PATIESS, ja progresa dialogs tiek rādīts drukāšanas laikā."
 
 #: ../gtk/gtkprintoperation.c:1266
 msgid "Allow Async"
@@ -4645,7 +5653,7 @@ msgstr "Atļaut asinhr"
 
 #: ../gtk/gtkprintoperation.c:1267
 msgid "TRUE if print process may run asynchronous."
-msgstr ""
+msgstr "PATIESS, ja process var tikt izpildīts asinhroni."
 
 #: ../gtk/gtkprintoperation.c:1289 ../gtk/gtkprintoperation.c:1290
 msgid "Export filename"
@@ -4665,175 +5673,197 @@ msgstr "Statusa virkne"
 
 #: ../gtk/gtkprintoperation.c:1326
 msgid "A human-readable description of the status"
-msgstr ""
+msgstr "Cilvēkam lasāms statusa apraksts"
 
 #: ../gtk/gtkprintoperation.c:1344
 msgid "Custom tab label"
-msgstr "Pielāgota cilnes etiķete"
+msgstr "Pielāgota cilnes iezīme"
 
 #: ../gtk/gtkprintoperation.c:1345
 msgid "Label for the tab containing custom widgets."
-msgstr ""
+msgstr "Iezīme cilnei, kas satur pielāgotas logdaļas."
 
-#: ../gtk/gtkprintoperation.c:1360 ../gtk/gtkprintunixdialog.c:341
-#, fuzzy
+#: ../gtk/gtkprintoperation.c:1360 ../gtk/gtkprintunixdialog.c:411
+#: ../gtk/gtkprintunixdialog.c:341
 msgid "Support Selection"
-msgstr "Krāsu izlase"
+msgstr "Atbalstīt izvēli"
 
 #: ../gtk/gtkprintoperation.c:1361
 msgid "TRUE if the print operation will support print of selection."
-msgstr ""
+msgstr "PATIESS, ja drukāšanas darbība atbalstīs izvēles drukāšanu."
 
-#: ../gtk/gtkprintoperation.c:1377 ../gtk/gtkprintunixdialog.c:349
-#, fuzzy
+#: ../gtk/gtkprintoperation.c:1377 ../gtk/gtkprintunixdialog.c:419
+#: ../gtk/gtkprintunixdialog.c:349
 msgid "Has Selection"
 msgstr "Ir izvēle"
 
 #: ../gtk/gtkprintoperation.c:1378
 msgid "TRUE if a selection exists."
-msgstr ""
+msgstr "PATIESS, ja izvēle eksistē."
 
-#: ../gtk/gtkprintoperation.c:1393 ../gtk/gtkprintunixdialog.c:357
-#, fuzzy
+#: ../gtk/gtkprintoperation.c:1393 ../gtk/gtkprintunixdialog.c:427
+#: ../gtk/gtkprintunixdialog.c:357
 msgid "Embed Page Setup"
-msgstr "Lapas iestatījumi"
+msgstr "Iegult lapas iestatījumus"
 
 #: ../gtk/gtkprintoperation.c:1394
 msgid "TRUE if page setup combos are embedded in GtkPrintDialog"
 msgstr ""
+"PATIESS, ja lapas iestatījumu kombinācijas ir iegultas iekš GtkPrintDialog"
 
 #: ../gtk/gtkprintoperation.c:1415
-#, fuzzy
 msgid "Number of Pages To Print"
-msgstr "Lapu skaits"
+msgstr "Lapu skaits, ko drukāt"
 
 #: ../gtk/gtkprintoperation.c:1416
-#, fuzzy
 msgid "The number of pages that will be printed."
-msgstr "Lapu skaits dokumentā."
+msgstr "Lapu skaits, kas tiks izdrukāts."
 
+#: ../gtk/gtkprintunixdialog.c:369
 #: ../gtk/gtkprintunixdialog.c:299
 msgid "The GtkPageSetup to use"
-msgstr ""
+msgstr "GtkPageSetup, ko izmantot"
 
+#: ../gtk/gtkprintunixdialog.c:394
 #: ../gtk/gtkprintunixdialog.c:324
 msgid "Selected Printer"
 msgstr "Izvēlētais printeris"
 
+#: ../gtk/gtkprintunixdialog.c:395
 #: ../gtk/gtkprintunixdialog.c:325
 msgid "The GtkPrinter which is selected"
 msgstr "Izvēlētais GtkPrinter"
 
+#: ../gtk/gtkprintunixdialog.c:402
 #: ../gtk/gtkprintunixdialog.c:332
 msgid "Manual Capabilities"
-msgstr ""
+msgstr "Pašrocīgās iespējas"
 
+#: ../gtk/gtkprintunixdialog.c:403
 #: ../gtk/gtkprintunixdialog.c:333
 msgid "Capabilities the application can handle"
-msgstr ""
+msgstr "Iespējas, ko lietotne var pavilkt"
 
+#: ../gtk/gtkprintunixdialog.c:412
 #: ../gtk/gtkprintunixdialog.c:342
-#, fuzzy
 msgid "Whether the dialog supports selection"
-msgstr "Vai etiķete ir uzzīmēta ar izvelēto fontu"
+msgstr "Vai dialogs atbalsta izvēli"
 
+#: ../gtk/gtkprintunixdialog.c:420
 #: ../gtk/gtkprintunixdialog.c:350
-#, fuzzy
 msgid "Whether the application has a selection"
-msgstr "Vai darbība ir ieslēgta."
+msgstr "Vai lietotne atbalsta izvēli"
 
+#: ../gtk/gtkprintunixdialog.c:428
 #: ../gtk/gtkprintunixdialog.c:358
 msgid "TRUE if page setup combos are embedded in GtkPrintUnixDialog"
 msgstr ""
+"PATIESS, ja lapas iestatījumu kombinācijas ir iegultas iekš "
+"GtkPrintUnixDialog"
 
-#: ../gtk/gtkprogressbar.c:161
+#: ../gtk/gtkprogressbar.c:160
 msgid "Fraction"
 msgstr "Daļa"
 
+#: ../gtk/gtkprogressbar.c:161
 #: ../gtk/gtkprogressbar.c:162
 msgid "The fraction of total work that has been completed"
 msgstr "Kopējā darba izpildītā daļa"
 
-#: ../gtk/gtkprogressbar.c:169
+#: ../gtk/gtkprogressbar.c:168
 msgid "Pulse Step"
 msgstr "Impulsa Solis"
 
+#: ../gtk/gtkprogressbar.c:169
 #: ../gtk/gtkprogressbar.c:170
 msgid "The fraction of total progress to move the bouncing block when pulsed"
 msgstr ""
-"Daļiņa kopējā progrsa, par kādu pārvietot lēkājošo bloku, kad dod impulsu"
+"Daļiņa kopējā progresa, par kādu pārvietot lēkājošo bloku, kad dod impulsu"
 
+#: ../gtk/gtkprogressbar.c:177
+#: ../gtk/gtkcellrendererprogress.c:144
+#: ../gtk/gtkcellrenderertext.c:255
+#: ../gtk/gtkentry.c:830
+#: ../gtk/gtkentrybuffer.c:352
+#: ../gtk/gtkmessagedialog.c:227
+#: ../gtk/gtktextbuffer.c:210
 #: ../gtk/gtkprogressbar.c:178
 msgid "Text to be displayed in the progress bar"
 msgstr "Teksts, ko attēlot progresa joslā"
 
-#: ../gtk/gtkprogressbar.c:195
+#: ../gtk/gtkprogressbar.c:194
 msgid "Show text"
 msgstr "Parādīt tekstu"
 
+#: ../gtk/gtkprogressbar.c:195
 #: ../gtk/gtkprogressbar.c:196
 msgid "Whether the progress is shown as text."
 msgstr "Vai progress tiek parādīts kā teksts."
 
+#: ../gtk/gtkprogressbar.c:217
+#: ../gtk/gtkcellrenderertext.c:500
+#: ../gtk/gtklabel.c:699
 #: ../gtk/gtkprogressbar.c:218
 msgid ""
 "The preferred place to ellipsize the string, if the progress bar does not "
 "have enough room to display the entire string, if at all."
 msgstr ""
+"Vēlamā vieta, kur virkni īsināt ar daudzpunkti, ja progresa joslai nepietiek "
+"vietas, lai parādītu visu virkni, ja vispār."
 
-#: ../gtk/gtkprogressbar.c:225
-#, fuzzy
+#: ../gtk/gtkprogressbar.c:224
 msgid "X spacing"
-msgstr "XSpacing"
+msgstr "X atstarpes"
 
+#: ../gtk/gtkprogressbar.c:225
 #: ../gtk/gtkprogressbar.c:226
 msgid "Extra spacing applied to the width of a progress bar."
-msgstr ""
+msgstr "Papildu atstarpes, kas ir pielietotas progresa joslas platumam."
 
-#: ../gtk/gtkprogressbar.c:231
-#, fuzzy
+#: ../gtk/gtkprogressbar.c:230
 msgid "Y spacing"
-msgstr "YSpacing"
+msgstr "Y atstarpes"
 
+#: ../gtk/gtkprogressbar.c:231
 #: ../gtk/gtkprogressbar.c:232
 msgid "Extra spacing applied to the height of a progress bar."
-msgstr ""
+msgstr "Papildu atstarpes, kas ir pielietotas progresa joslas augstumam."
 
-#: ../gtk/gtkprogressbar.c:245
-#, fuzzy
+#: ../gtk/gtkprogressbar.c:244
 msgid "Minimum horizontal bar width"
 msgstr "Minimālais horizontālās joslas platums"
 
+#: ../gtk/gtkprogressbar.c:245
 #: ../gtk/gtkprogressbar.c:246
 msgid "The minimum horizontal width of the progress bar"
-msgstr "Minimalais horizontālās progresa joslas platums"
+msgstr "Minimālais horizontālās progresa joslas platums"
 
-#: ../gtk/gtkprogressbar.c:258
-#, fuzzy
+#: ../gtk/gtkprogressbar.c:257
 msgid "Minimum horizontal bar height"
 msgstr "Minimālais horizontālās joslas augstums"
 
+#: ../gtk/gtkprogressbar.c:258
 #: ../gtk/gtkprogressbar.c:259
 msgid "Minimum horizontal height of the progress bar"
-msgstr "Minimālais horizontālās joslas augstums"
+msgstr "Minimālais horizontālās progresa joslas augstums"
 
-#: ../gtk/gtkprogressbar.c:271
-#, fuzzy
+#: ../gtk/gtkprogressbar.c:270
 msgid "Minimum vertical bar width"
 msgstr "Minimālais vertikālās joslas platums"
 
+#: ../gtk/gtkprogressbar.c:271
 #: ../gtk/gtkprogressbar.c:272
 msgid "The minimum vertical width of the progress bar"
-msgstr "Minimālais vertikālās joslas platums"
+msgstr "Minimālais vertikālās progresa joslas platums"
 
-#: ../gtk/gtkprogressbar.c:284
-#, fuzzy
+#: ../gtk/gtkprogressbar.c:283
 msgid "Minimum vertical bar height"
 msgstr "Minimālais vertikālās joslas augstums"
 
+#: ../gtk/gtkprogressbar.c:284
 #: ../gtk/gtkprogressbar.c:285
 msgid "The minimum vertical height of the progress bar"
-msgstr "Minimālais vertikālās joslas augstums"
+msgstr "Minimālais vertikālās progresa joslas augstums"
 
 #: ../gtk/gtkradioaction.c:118
 msgid "The value"
@@ -4845,10 +5875,13 @@ msgid ""
 "is the current action of its group."
 msgstr ""
 "gtk_radio_action_get_current_value() atgrieztā vērtība, kad šī darbība ir "
-"patreizējā darbība tās grupai."
+"pašreizējā darbība tās grupai."
 
-#: ../gtk/gtkradioaction.c:135 ../gtk/gtkradiobutton.c:163
-#: ../gtk/gtkradiomenuitem.c:374 ../gtk/gtkradiotoolbutton.c:65
+#: ../gtk/gtkradioaction.c:135 ../gtk/gtkradiobutton.c:164
+#: ../gtk/gtkradiomenuitem.c:427 ../gtk/gtkradiotoolbutton.c:85
+#: ../gtk/gtkradiobutton.c:163
+#: ../gtk/gtkradiomenuitem.c:374
+#: ../gtk/gtkradiotoolbutton.c:65
 msgid "Group"
 msgstr "Grupa"
 
@@ -4865,150 +5898,182 @@ msgid ""
 "The value property of the currently active member of the group to which this "
 "action belongs."
 msgstr ""
+"Vērtības īpašība pašlaik aktīvajam grupas loceklim, kam šī darbība pieder."
 
-#: ../gtk/gtkradiobutton.c:164
+#: ../gtk/gtkradiobutton.c:165
 msgid "The radio button whose group this widget belongs to."
 msgstr "Radio poga, kuras grupai pieder šī logdaļa."
 
+#: ../gtk/gtkradiomenuitem.c:428
 #: ../gtk/gtkradiomenuitem.c:375
 msgid "The radio menu item whose group this widget belongs to."
 msgstr "Radio izvēlne, kuras grupai pieder šī logdaļa."
 
+#: ../gtk/gtkradiotoolbutton.c:86
 #: ../gtk/gtkradiotoolbutton.c:66
 msgid "The radio tool button whose group this button belongs to."
 msgstr "Radio rīka poga, kura grupai pieder šī radio poga."
 
+#: ../gtk/gtkrange.c:419
 #: ../gtk/gtkrange.c:417
 msgid "The GtkAdjustment that contains the current value of this range object"
 msgstr "GtkAdjustment, kas satur pašreizējo diapazona objekta vērtību"
 
+#: ../gtk/gtkrange.c:427
 #: ../gtk/gtkrange.c:425
 msgid "Invert direction slider moves to increase range value"
 msgstr "Apgriezt virziena slīdņa kustības, lai palielinātu diapazona vērtību"
 
+#: ../gtk/gtkrange.c:434
 #: ../gtk/gtkrange.c:432
 msgid "Lower stepper sensitivity"
-msgstr ""
+msgstr "Apakšējā ritinātāja jutība"
 
+#: ../gtk/gtkrange.c:435
 #: ../gtk/gtkrange.c:433
 msgid ""
 "The sensitivity policy for the stepper that points to the adjustment's lower "
 "side"
-msgstr ""
+msgstr "Jutīguma politika ritinātājam, kas norāda uz pieregulēšanas zemāko pusi"
 
+#: ../gtk/gtkrange.c:443
 #: ../gtk/gtkrange.c:441
 msgid "Upper stepper sensitivity"
-msgstr ""
+msgstr "Augšējā ritinātāja jutība"
 
+#: ../gtk/gtkrange.c:444
 #: ../gtk/gtkrange.c:442
 msgid ""
 "The sensitivity policy for the stepper that points to the adjustment's upper "
 "side"
-msgstr ""
+msgstr "Jutīguma politika ritinātājam, kas norāda uz pieregulēšanas augšējo pusi"
 
+#: ../gtk/gtkrange.c:461
 #: ../gtk/gtkrange.c:459
 msgid "Show Fill Level"
 msgstr "Rādīt aizpildījuma līmeni"
 
+#: ../gtk/gtkrange.c:462
 #: ../gtk/gtkrange.c:460
 msgid "Whether to display a fill level indicator graphics on trough."
-msgstr ""
+msgstr "Vai rādīt aizpildījuma līmeņa indikatora grafiku uz ieplakas."
 
+#: ../gtk/gtkrange.c:478
 #: ../gtk/gtkrange.c:476
 msgid "Restrict to Fill Level"
 msgstr "Ierobežot līdz aizpildījuma līmenim"
 
+#: ../gtk/gtkrange.c:479
 #: ../gtk/gtkrange.c:477
 msgid "Whether to restrict the upper boundary to the fill level."
-msgstr ""
+msgstr "Vai ierobežot augšējo robežu aizpildījuma līmenim."
 
+#: ../gtk/gtkrange.c:494
 #: ../gtk/gtkrange.c:492
 msgid "Fill Level"
-msgstr "Piepildīšanas Līmenis"
+msgstr "Aizpildījuma līmenis"
 
+#: ../gtk/gtkrange.c:495
 #: ../gtk/gtkrange.c:493
 msgid "The fill level."
 msgstr "Aizpildījuma līmenis."
 
+#: ../gtk/gtkrange.c:512
 #: ../gtk/gtkrange.c:510
-#, fuzzy
 #| msgid "Digits"
 msgid "Round Digits"
-msgstr "Cipari"
+msgstr "Apaļotie cipari"
 
+#: ../gtk/gtkrange.c:513
 #: ../gtk/gtkrange.c:511
-#, fuzzy
 #| msgid "The number of pages in the document."
 msgid "The number of digits to round the value to."
-msgstr "Lapu skaits dokumentā."
+msgstr "Ciparu skaits, uz ko noapaļot vērtību."
 
-#: ../gtk/gtkrange.c:519 ../gtk/gtkswitch.c:786
+#: ../gtk/gtkrange.c:521 ../gtk/gtkswitch.c:818
+#: ../gtk/gtkrange.c:519
+#: ../gtk/gtkswitch.c:836
 msgid "Slider Width"
 msgstr "Slīdņa platums"
 
+#: ../gtk/gtkrange.c:522
 #: ../gtk/gtkrange.c:520
 msgid "Width of scrollbar or scale thumb"
 msgstr "Ritjoslas vai mēroga šķirkļa platums"
 
+#: ../gtk/gtkrange.c:529
 #: ../gtk/gtkrange.c:527
 msgid "Trough Border"
-msgstr "Ieplakas Robeža"
+msgstr "Ieplakas robeža"
 
+#: ../gtk/gtkrange.c:530
 #: ../gtk/gtkrange.c:528
 msgid "Spacing between thumb/steppers and outer trough bevel"
-msgstr "Atstarpe starp šķirkli/ritinātājiem un ārējo ieplakas konusu"
+msgstr "Atstarpe starp šķirkli/ritinātājiem un ārējo ieplakas apmali"
 
+#: ../gtk/gtkrange.c:537
 #: ../gtk/gtkrange.c:535
 msgid "Stepper Size"
-msgstr "Ritinātāja Izmērs"
+msgstr "Ritinātāja izmērs"
 
+#: ../gtk/gtkrange.c:538
 #: ../gtk/gtkrange.c:536
 msgid "Length of step buttons at ends"
 msgstr "Garums ritinātāja pogām galos"
 
 #: ../gtk/gtkrange.c:551
+#: ../gtk/gtkrange.c:549
 msgid "Stepper Spacing"
-msgstr "Ritinātāja Atstarpe"
+msgstr "Ritinātāja atstarpe"
 
 #: ../gtk/gtkrange.c:552
+#: ../gtk/gtkrange.c:550
 msgid "Spacing between step buttons and thumb"
 msgstr "Atstarpe starp ritinātāja pogām un šķirkli"
 
 #: ../gtk/gtkrange.c:559
+#: ../gtk/gtkrange.c:557
 msgid "Arrow X Displacement"
-msgstr "Bultas X Novietošana"
+msgstr "Bultas X novietošana"
 
 #: ../gtk/gtkrange.c:560
-msgid ""
-"How far in the x direction to move the arrow when the button is depressed"
+#: ../gtk/gtkrange.c:558
+msgid "How far in the x direction to move the arrow when the button is depressed"
 msgstr "Cik tālu x virzienā pārvietot bultu, kad poga tiek nospiesta"
 
 #: ../gtk/gtkrange.c:567
+#: ../gtk/gtkrange.c:565
 msgid "Arrow Y Displacement"
-msgstr "Bultas Y Novietošana"
+msgstr "Bultas Y novietošana"
 
 #: ../gtk/gtkrange.c:568
-msgid ""
-"How far in the y direction to move the arrow when the button is depressed"
+#: ../gtk/gtkrange.c:566
+msgid "How far in the y direction to move the arrow when the button is depressed"
 msgstr "Cik tālu y virzienā pārvietot bultu, kad poga tiek nospiesta"
 
-#: ../gtk/gtkrange.c:586
+#: ../gtk/gtkrange.c:584
+#: ../gtk/gtkrange.c:582
 msgid "Trough Under Steppers"
-msgstr ""
+msgstr "Cauri zem ritinātājiem"
 
-#: ../gtk/gtkrange.c:587
+#: ../gtk/gtkrange.c:585
+#: ../gtk/gtkrange.c:583
 msgid ""
 "Whether to draw trough for full length of range or exclude the steppers and "
 "spacing"
 msgstr ""
+"Vai zīmēt cauri pilnam diapazona garumam, vai izslēgt ritinātājums un "
+"atstarpes"
 
-#: ../gtk/gtkrange.c:600
+#: ../gtk/gtkrange.c:598
+#: ../gtk/gtkrange.c:596
 msgid "Arrow scaling"
 msgstr "Bultas mērogošana"
 
-#: ../gtk/gtkrange.c:601
+#: ../gtk/gtkrange.c:599
+#: ../gtk/gtkrange.c:597
 msgid "Arrow scaling with regard to scroll button size"
-msgstr ""
+msgstr "Bultas mērogošana, attiecībā pret ritināšanas pogas izmēru"
 
 #: ../gtk/gtkrecentaction.c:635 ../gtk/gtkrecentchoosermenu.c:246
 msgid "Show Numbers"
@@ -5024,7 +6089,7 @@ msgstr "Neseno failu pārvaldnieks"
 
 #: ../gtk/gtkrecentchooser.c:133
 msgid "The RecentManager object to use"
-msgstr ""
+msgstr "RecentManager objekts, ko izmantot"
 
 #: ../gtk/gtkrecentchooser.c:147
 msgid "Show Private"
@@ -5056,7 +6121,7 @@ msgstr "Parādāmais nav atrasts"
 
 #: ../gtk/gtkrecentchooser.c:191
 msgid "Whether the items pointing to unavailable resources should be displayed"
-msgstr ""
+msgstr "Vai rādīt priekšmetus, kas norāda uz nepieejamiem resursiem"
 
 #: ../gtk/gtkrecentchooser.c:204
 msgid "Whether to allow multiple items to be selected"
@@ -5068,7 +6133,7 @@ msgstr "Tikai lokālos"
 
 #: ../gtk/gtkrecentchooser.c:218
 msgid "Whether the selected resource(s) should be limited to local file: URIs"
-msgstr ""
+msgstr "Vai izvēlētos resursus vajadzētu ierobežot uz lokālu failu URI"
 
 #: ../gtk/gtkrecentchooser.c:234
 msgid "Limit"
@@ -5084,116 +6149,137 @@ msgstr "Kārtošanas tips"
 
 #: ../gtk/gtkrecentchooser.c:250
 msgid "The sorting order of the items displayed"
-msgstr ""
+msgstr "Attēloto elementu kārtošanas secība"
 
 #: ../gtk/gtkrecentchooser.c:265
 msgid "The current filter for selecting which resources are displayed"
-msgstr ""
+msgstr "Pašreizējais filtrs, lai izvēlētos, kurus resursus rādīt"
 
 #: ../gtk/gtkrecentmanager.c:295
 msgid "The full path to the file to be used to store and read the list"
 msgstr ""
+"Pilns ceļš uz failu, kurš tiks izmantots sarakstu glabāšanai un lasīšanai"
 
 #: ../gtk/gtkrecentmanager.c:310
 msgid "The size of the recently used resources list"
-msgstr ""
+msgstr "Nesen izmantoto resursu saraksta izmērs"
 
-#: ../gtk/gtkscalebutton.c:218
+#: ../gtk/gtkscalebutton.c:219
 msgid "The value of the scale"
 msgstr "Mēroga vērtība"
 
-#: ../gtk/gtkscalebutton.c:228
+#: ../gtk/gtkscalebutton.c:229
 msgid "The icon size"
 msgstr "Ikonas izmērs"
 
-#: ../gtk/gtkscalebutton.c:237
+#: ../gtk/gtkscalebutton.c:238
 msgid ""
 "The GtkAdjustment that contains the current value of this scale button object"
 msgstr "GtkAdjustment, kas satur pašreizējo mēroga objekta vērtību"
 
+#: ../gtk/gtkscalebutton.c:266
 #: ../gtk/gtkscalebutton.c:265
 msgid "Icons"
 msgstr "Ikonas"
 
-#: ../gtk/gtkscalebutton.c:266
+#: ../gtk/gtkscalebutton.c:267
 msgid "List of icon names"
 msgstr "Ikonu nosaukumu saraksts"
 
-#: ../gtk/gtkscale.c:254
+#: ../gtk/gtkscale.c:255
+#: ../gtk/gtkscale.c:253
 msgid "The number of decimal places that are displayed in the value"
 msgstr "Decimālo vietu skaits, kas tiek parādīts pie vērtības"
 
-#: ../gtk/gtkscale.c:263
+#: ../gtk/gtkscale.c:264
+#: ../gtk/gtkscale.c:262
 msgid "Draw Value"
-msgstr "Zīmēt Vērtību"
+msgstr "Zīmēt vērtību"
 
-#: ../gtk/gtkscale.c:264
+#: ../gtk/gtkscale.c:265
+#: ../gtk/gtkscale.c:263
 msgid "Whether the current value is displayed as a string next to the slider"
-msgstr "Vai pašreizējā vērtība tiek parādīta kā virkne bakus slīdnim"
+msgstr "Vai pašreizējā vērtība tiek parādīta kā virkne blakus slīdnim"
 
-#: ../gtk/gtkscale.c:271
+#: ../gtk/gtkscale.c:272
+#: ../gtk/gtkscale.c:270
 msgid "Value Position"
-msgstr "Vērtības Pozīcija"
+msgstr "Vērtības novietojums"
 
-#: ../gtk/gtkscale.c:272
+#: ../gtk/gtkscale.c:273
+#: ../gtk/gtkscale.c:271
 msgid "The position in which the current value is displayed"
 msgstr "Pozīcija, kurā pašreizējā vērtība tiek parādīta"
 
-#: ../gtk/gtkscale.c:279
+#: ../gtk/gtkscale.c:280
+#: ../gtk/gtkscale.c:278
 msgid "Slider Length"
-msgstr "Slīdņa Garums"
+msgstr "Slīdņa garums"
 
-#: ../gtk/gtkscale.c:280
+#: ../gtk/gtkscale.c:281
+#: ../gtk/gtkscale.c:279
 msgid "Length of scale's slider"
 msgstr "Mēroga slīdņa garums"
 
-#: ../gtk/gtkscale.c:288
+#: ../gtk/gtkscale.c:289
+#: ../gtk/gtkscale.c:287
 msgid "Value spacing"
 msgstr "Vērtības atstarpe"
 
-#: ../gtk/gtkscale.c:289
+#: ../gtk/gtkscale.c:290
+#: ../gtk/gtkscale.c:288
 msgid "Space between value text and the slider/trough area"
 msgstr "Atstarpe starp vērtības tekstu un slīdņa/ieplakas laukumu"
 
+#: ../gtk/gtkscrollable.c:94
 #: ../gtk/gtkscrollable.c:86
 msgid "Horizontal adjustment"
 msgstr "Horizontālā noregulēšana"
 
+#: ../gtk/gtkscrollable.c:95
 #: ../gtk/gtkscrollable.c:87
 msgid ""
 "Horizontal adjustment that is shared between the scrollable widget and its "
 "controller"
 msgstr ""
+"Horizontālais noregulējums, kas tiek kopīgi lietots starp ritināmu logdaļu "
+"un tā kontrolieri"
 
+#: ../gtk/gtkscrollable.c:111
 #: ../gtk/gtkscrollable.c:103
 msgid "Vertical adjustment"
-msgstr "Vertikālais noregulēšana"
+msgstr "Vertikālais noregulējums"
 
+#: ../gtk/gtkscrollable.c:112
 #: ../gtk/gtkscrollable.c:104
 msgid ""
 "Vertical adjustment that is shared between the scrollable widget and its "
 "controller"
 msgstr ""
+"Vertikālais noregulējums, kas tiek kopīgi lietots starp ritināmu logdaļu un "
+"tā kontrolieri"
 
+#: ../gtk/gtkscrollable.c:128
 #: ../gtk/gtkscrollable.c:120
-#, fuzzy
 #| msgid "Horizontal Scrollbar Policy"
 msgid "Horizontal Scrollable Policy"
-msgstr "Horizontālās Ritjoslas Politika"
+msgstr "Horizontālās ritināmības politika"
 
-#: ../gtk/gtkscrollable.c:121 ../gtk/gtkscrollable.c:137
+#: ../gtk/gtkscrollable.c:129 ../gtk/gtkscrollable.c:145
+#: ../gtk/gtkscrollable.c:121
+#: ../gtk/gtkscrollable.c:137
 msgid "How the size of the content should be determined"
-msgstr ""
+msgstr "Kā vajadzētu noteikt satura izmēru"
 
+#: ../gtk/gtkscrollable.c:144
 #: ../gtk/gtkscrollable.c:136
-#, fuzzy
 #| msgid "Vertical Scrollbar Policy"
 msgid "Vertical Scrollable Policy"
-msgstr "Vertikālās Ritjoslas Politika"
+msgstr "Vertikālās ritināmības politika"
 
 #: ../gtk/gtkscrollbar.c:72
 msgid "Minimum Slider Length"
-msgstr "Minimālais Slīdņa Garums"
+msgstr "Minimālais slīdņa garums"
 
 #: ../gtk/gtkscrollbar.c:73
 msgid "Minimum length of scrollbar slider"
@@ -5205,7 +6291,7 @@ msgstr "Fiksēts slīdņa izmērs"
 
 #: ../gtk/gtkscrollbar.c:82
 msgid "Don't change slider size, just lock it to the minimum length"
-msgstr "Nemainīt slīdņa izmŗu, tikai ieslēgt to minimālajā garumā"
+msgstr "Nemainīt slīdņa izmēru, tikai ieslēgt to minimālajā garumā"
 
 #: ../gtk/gtkscrollbar.c:103
 msgid ""
@@ -5215,11 +6301,11 @@ msgstr "Parādīt otru atpakaļvērstās bultas pogu pretējā ritjoslas galā"
 #: ../gtk/gtkscrollbar.c:110
 msgid ""
 "Display a second forward arrow button on the opposite end of the scrollbar"
-msgstr ""
+msgstr "Parādīt otru uz priekšu vērstās bultas pogu pretējā ritjoslas galā"
 
 #: ../gtk/gtkscrolledwindow.c:296
 msgid "Horizontal Adjustment"
-msgstr "Horizontālais Noregulējums"
+msgstr "Horizontālais noregulējums"
 
 #: ../gtk/gtkscrolledwindow.c:297
 msgid "The GtkAdjustment for the horizontal position"
@@ -5227,7 +6313,7 @@ msgstr "Horizontālās pozīcijas GtkAdjustment"
 
 #: ../gtk/gtkscrolledwindow.c:303
 msgid "Vertical Adjustment"
-msgstr "Vertikālais Noregulējums"
+msgstr "Vertikālais noregulējums"
 
 #: ../gtk/gtkscrolledwindow.c:304
 msgid "The GtkAdjustment for the vertical position"
@@ -5235,7 +6321,7 @@ msgstr "Vertikālās pozīcijas GtkAdjustment"
 
 #: ../gtk/gtkscrolledwindow.c:310
 msgid "Horizontal Scrollbar Policy"
-msgstr "Horizontālās Ritjoslas Politika"
+msgstr "Horizontālās ritjoslas politika"
 
 #: ../gtk/gtkscrolledwindow.c:311
 msgid "When the horizontal scrollbar is displayed"
@@ -5243,7 +6329,7 @@ msgstr "Vai horizontālā ritjosla tiek attēlota"
 
 #: ../gtk/gtkscrolledwindow.c:318
 msgid "Vertical Scrollbar Policy"
-msgstr "Vertikālās Ritjoslas Politika"
+msgstr "Vertikālās ritjoslas politika"
 
 #: ../gtk/gtkscrolledwindow.c:319
 msgid "When the vertical scrollbar is displayed"
@@ -5251,13 +6337,15 @@ msgstr "Vai vertikālā ritjosla tiek attēlota"
 
 #: ../gtk/gtkscrolledwindow.c:327
 msgid "Window Placement"
-msgstr "Loga Novietojums"
+msgstr "Loga novietojums"
 
 #: ../gtk/gtkscrolledwindow.c:328
 msgid ""
 "Where the contents are located with respect to the scrollbars. This property "
 "only takes effect if \"window-placement-set\" is TRUE."
 msgstr ""
+"Kur tiek novietots saturs attiecībā pret ritjoslu. Šī īpašība stājas spēkā "
+"tikai tad, ja \"window-placement-set\" ir PATIESS."
 
 #: ../gtk/gtkscrolledwindow.c:345
 msgid "Window Placement Set"
@@ -5268,22 +6356,24 @@ msgid ""
 "Whether \"window-placement\" should be used to determine the location of the "
 "contents with respect to the scrollbars."
 msgstr ""
+"Vai \"window-placement\" vajadzētu tikt izmantotam, lai noteiktu satura "
+"atrašanās vietu attiecībā pret ritjoslām."
 
 #: ../gtk/gtkscrolledwindow.c:352
 msgid "Shadow Type"
-msgstr "Ēnas Tips"
+msgstr "Ēnas tips"
 
 #: ../gtk/gtkscrolledwindow.c:353
 msgid "Style of bevel around the contents"
-msgstr "Konusa stils ap saturu"
+msgstr "Apmales stils ap saturu"
 
 #: ../gtk/gtkscrolledwindow.c:367
 msgid "Scrollbars within bevel"
-msgstr "Ritjoslas izcilņos"
+msgstr "Ritjoslas apmalēs"
 
 #: ../gtk/gtkscrolledwindow.c:368
 msgid "Place scrollbars within the scrolled window's bevel"
-msgstr ""
+msgstr "Novietot ritjoslas ritinātu logu apmales"
 
 #: ../gtk/gtkscrolledwindow.c:374
 msgid "Scrollbar spacing"
@@ -5294,25 +6384,22 @@ msgid "Number of pixels between the scrollbars and the scrolled window"
 msgstr "Pikseļu skaits starp ritjoslām un ritināmo logu"
 
 #: ../gtk/gtkscrolledwindow.c:391
-#, fuzzy
 #| msgid "Minimum Width"
 msgid "Minimum Content Width"
-msgstr "Minimālais Platums"
+msgstr "Minimālais satura platums"
 
 #: ../gtk/gtkscrolledwindow.c:392
 msgid "The minimum width that the scrolled window will allocate to its content"
-msgstr ""
+msgstr "Minimālais platums, ko ritinātais logs piešķirs tā saturam"
 
 #: ../gtk/gtkscrolledwindow.c:406
-#, fuzzy
 #| msgid "Minimum child height"
 msgid "Minimum Content Height"
-msgstr "Minimālais bērna augstums"
+msgstr "Minimālais satura augstums"
 
 #: ../gtk/gtkscrolledwindow.c:407
-msgid ""
-"The minimum height that the scrolled window will allocate to its content"
-msgstr ""
+msgid "The minimum height that the scrolled window will allocate to its content"
+msgstr "Minimālais augstums, ko ritinātais logs piešķirs tā saturam"
 
 #: ../gtk/gtkseparatortoolitem.c:143
 msgid "Draw"
@@ -5320,25 +6407,29 @@ msgstr "Zīmēt"
 
 #: ../gtk/gtkseparatortoolitem.c:144
 msgid "Whether the separator is drawn, or just blank"
-msgstr "Vai atdalītājs ir kritums līnijas vai tikai tukšums"
+msgstr "Vai atdalītājs tiek zīmēts vai tikai tukšums"
 
-#: ../gtk/gtksettings.c:328
+#: ../gtk/gtksettings.c:321
+#: ../gtk/gtksettings.c:318
 msgid "Double Click Time"
-msgstr "Dubultklikšķa Laiks"
+msgstr "Dubultklikšķa laiks"
 
-#: ../gtk/gtksettings.c:329
+#: ../gtk/gtksettings.c:322
+#: ../gtk/gtksettings.c:319
 msgid ""
 "Maximum time allowed between two clicks for them to be considered a double "
 "click (in milliseconds)"
 msgstr ""
 "Maksimāli atļautais laiks starp diviem klikšķiem, lai to uzskatītu par "
-"dubūltklikšķi (milisekundēs)"
+"dubultklikšķi (milisekundēs)"
 
-#: ../gtk/gtksettings.c:336
+#: ../gtk/gtksettings.c:329
+#: ../gtk/gtksettings.c:326
 msgid "Double Click Distance"
-msgstr "Dubultklikšķa garums"
+msgstr "Dubultklikšķa attālums"
 
-#: ../gtk/gtksettings.c:337
+#: ../gtk/gtksettings.c:330
+#: ../gtk/gtksettings.c:327
 msgid ""
 "Maximum distance allowed between two clicks for them to be considered a "
 "double click (in pixels)"
@@ -5346,35 +6437,43 @@ msgstr ""
 "Maksimāli atļautais garums starp diviem klikšķiem, lai to uzskatītu par "
 "dubultklikšķi (pikseļos)"
 
-#: ../gtk/gtksettings.c:353
+#: ../gtk/gtksettings.c:346
+#: ../gtk/gtksettings.c:343
 msgid "Cursor Blink"
-msgstr "Kursora Mirgošana"
+msgstr "Kursora mirgošana"
 
-#: ../gtk/gtksettings.c:354
+#: ../gtk/gtksettings.c:347
+#: ../gtk/gtksettings.c:344
 msgid "Whether the cursor should blink"
 msgstr "Vai kursoram būtu jāmirgo"
 
-#: ../gtk/gtksettings.c:361
+#: ../gtk/gtksettings.c:354
+#: ../gtk/gtksettings.c:351
 msgid "Cursor Blink Time"
-msgstr "Kursora Mirgošanas Laiks"
+msgstr "Kursora mirgošanas laiks"
 
-#: ../gtk/gtksettings.c:362
+#: ../gtk/gtksettings.c:355
+#: ../gtk/gtksettings.c:352
 msgid "Length of the cursor blink cycle, in milliseconds"
 msgstr "Kursora mirgošanas cikla garums, milisekundēs"
 
-#: ../gtk/gtksettings.c:381
+#: ../gtk/gtksettings.c:374
+#: ../gtk/gtksettings.c:371
 msgid "Cursor Blink Timeout"
 msgstr "Kursora mirgošanas noildze"
 
-#: ../gtk/gtksettings.c:382
+#: ../gtk/gtksettings.c:375
+#: ../gtk/gtksettings.c:372
 msgid "Time after which the cursor stops blinking, in seconds"
-msgstr ""
+msgstr "Laiks, pēc kura kursors beidz mirgot, sekundēs"
 
-#: ../gtk/gtksettings.c:389
+#: ../gtk/gtksettings.c:382
+#: ../gtk/gtksettings.c:379
 msgid "Split Cursor"
-msgstr "Sadalītais Kursors"
+msgstr "Sadalītais kursors"
 
-#: ../gtk/gtksettings.c:390
+#: ../gtk/gtksettings.c:383
+#: ../gtk/gtksettings.c:380
 msgid ""
 "Whether two cursors should be displayed for mixed left-to-right and right-to-"
 "left text"
@@ -5382,178 +6481,217 @@ msgstr ""
 "Vai attēlot divus kursorus miksētiem no labās puses uz kreiso un otrādi "
 "tekstiem"
 
-#: ../gtk/gtksettings.c:397
+#: ../gtk/gtksettings.c:390
+#: ../gtk/gtksettings.c:387
 msgid "Theme Name"
-msgstr "Tēmas Nosaukums"
+msgstr "Tēmas nosaukums"
 
-#: ../gtk/gtksettings.c:398
-#, fuzzy
+#: ../gtk/gtksettings.c:391
+#: ../gtk/gtksettings.c:388
 #| msgid "Name of theme RC file to load"
 msgid "Name of theme to load"
-msgstr "Tēmas RC faila nosaukums, ko ielādēt"
+msgstr "Tēmas nosaukums, ko ielādēt"
 
-#: ../gtk/gtksettings.c:406
+#: ../gtk/gtksettings.c:399
+#: ../gtk/gtksettings.c:396
 msgid "Icon Theme Name"
-msgstr "Ikonas tēmas nosaukums"
+msgstr "Ikonu tēmas nosaukums"
 
-#: ../gtk/gtksettings.c:407
+#: ../gtk/gtksettings.c:400
+#: ../gtk/gtksettings.c:397
 msgid "Name of icon theme to use"
-msgstr "Ikonas tēmas nosaukums, ko lietot"
+msgstr "Ikonu tēmas nosaukums, ko lietot"
 
-#: ../gtk/gtksettings.c:415
+#: ../gtk/gtksettings.c:408
+#: ../gtk/gtksettings.c:405
 msgid "Fallback Icon Theme Name"
-msgstr "Atkāpes ikonas tēmas nosaukums"
+msgstr "Atkāpes ikonu tēmas nosaukums"
 
-#: ../gtk/gtksettings.c:416
+#: ../gtk/gtksettings.c:409
+#: ../gtk/gtksettings.c:406
 msgid "Name of a icon theme to fall back to"
-msgstr "Ikonas tēmas nosaukums, no kuras atkāpties"
+msgstr "Ikonu tēmas nosaukums, no kuras atkāpties"
 
-#: ../gtk/gtksettings.c:424
+#: ../gtk/gtksettings.c:417
+#: ../gtk/gtksettings.c:414
 msgid "Key Theme Name"
-msgstr "Atslēgas Tēmas Nosaukums"
+msgstr "Atslēgu tēmas nosaukums"
 
-#: ../gtk/gtksettings.c:425
-#, fuzzy
+#: ../gtk/gtksettings.c:418
+#: ../gtk/gtksettings.c:415
 #| msgid "Name of key theme RC file to load"
 msgid "Name of key theme to load"
-msgstr "Taustiņa tēmas RC faila nosaukums, ko ielādēt"
+msgstr "Atslēgu tēmu nosaukums, ko ielādēt"
 
-#: ../gtk/gtksettings.c:433
+#: ../gtk/gtksettings.c:426
+#: ../gtk/gtksettings.c:423
 msgid "Menu bar accelerator"
 msgstr "Izvēlnes joslas paātrinātājs"
 
-#: ../gtk/gtksettings.c:434
+#: ../gtk/gtksettings.c:427
+#: ../gtk/gtksettings.c:424
 msgid "Keybinding to activate the menu bar"
 msgstr "Taustiņsasaiste, lai aktivizētu izvēlnes joslu"
 
-#: ../gtk/gtksettings.c:442
+#: ../gtk/gtksettings.c:435
+#: ../gtk/gtksettings.c:432
 msgid "Drag threshold"
 msgstr "Vilkšanas aizture"
 
-#: ../gtk/gtksettings.c:443
+#: ../gtk/gtksettings.c:436
+#: ../gtk/gtksettings.c:433
 msgid "Number of pixels the cursor can move before dragging"
 msgstr "Pikseļu skaits, ko kursors var pakustēties, pirms vilkšanas"
 
-#: ../gtk/gtksettings.c:451
+#: ../gtk/gtksettings.c:444
+#: ../gtk/gtksettings.c:441
 msgid "Font Name"
-msgstr "Fonta Nosaukums"
+msgstr "Fonta nosaukums"
 
-#: ../gtk/gtksettings.c:452
+#: ../gtk/gtksettings.c:445
+#: ../gtk/gtksettings.c:442
 msgid "Name of default font to use"
 msgstr "Noklusētā fonta nosaukums"
 
-#: ../gtk/gtksettings.c:474
+#: ../gtk/gtksettings.c:467
+#: ../gtk/gtksettings.c:464
 msgid "Icon Sizes"
-msgstr "Ikonu Izmēri"
+msgstr "Ikonu izmēri"
 
-#: ../gtk/gtksettings.c:475
+#: ../gtk/gtksettings.c:468
+#: ../gtk/gtksettings.c:465
 msgid "List of icon sizes (gtk-menu=16,16:gtk-button=20,20..."
 msgstr "Ikonas izmēru saraksts (gtk-menu=16,16;gtk-button=20,20..."
 
-#: ../gtk/gtksettings.c:483
+#: ../gtk/gtksettings.c:476
+#: ../gtk/gtksettings.c:473
 msgid "GTK Modules"
 msgstr "GTK moduļi"
 
-#: ../gtk/gtksettings.c:484
+#: ../gtk/gtksettings.c:477
+#: ../gtk/gtksettings.c:474
 msgid "List of currently active GTK modules"
-msgstr "Patreiz aktīvo GTK moduļu saraksts"
+msgstr "Pašlaik aktīvo GTK moduļu saraksts"
 
-#: ../gtk/gtksettings.c:493
+#: ../gtk/gtksettings.c:485
+#: ../gtk/gtksettings.c:482
 msgid "Xft Antialias"
-msgstr "Xtf kropļojumu novēršana"
+msgstr "Xft nogludināšana"
 
-#: ../gtk/gtksettings.c:494
+#: ../gtk/gtksettings.c:486
+#: ../gtk/gtksettings.c:483
 msgid "Whether to antialias Xft fonts; 0=no, 1=yes, -1=default"
-msgstr "Vai ovērst Xft fontu kropļojumus; 0=nē, 1=jā, -1=pēc noklusējuma"
+msgstr "Vai nogludināt Xft fontus; 0=nē, 1=jā, -1=pēc noklusējuma"
 
-#: ../gtk/gtksettings.c:503
+#: ../gtk/gtksettings.c:495
+#: ../gtk/gtksettings.c:492
 msgid "Xft Hinting"
-msgstr "Xft norādīšana"
+msgstr "Xft suflēšana"
 
-#: ../gtk/gtksettings.c:504
+#: ../gtk/gtksettings.c:496
+#: ../gtk/gtksettings.c:493
 msgid "Whether to hint Xft fonts; 0=no, 1=yes, -1=default"
-msgstr "Vai norādīt Xft fontus; 0=nē, 1=jā, -1=pēc noklusējuma"
+msgstr "Vai suflēt Xft fontus; 0=nē, 1=jā, -1=pēc noklusējuma"
 
-#: ../gtk/gtksettings.c:513
+#: ../gtk/gtksettings.c:505
+#: ../gtk/gtksettings.c:502
 msgid "Xft Hint Style"
-msgstr "Xft norāžu stils"
+msgstr "Xft suflēšanas stils"
 
-#: ../gtk/gtksettings.c:514
+#: ../gtk/gtksettings.c:506
+#: ../gtk/gtksettings.c:503
 msgid ""
 "What degree of hinting to use; hintnone, hintslight, hintmedium, or hintfull"
 msgstr ""
-"Kādu norāžu pakāpi izmantot; nekādu norāžu, vieglas norādes, vidējas "
-"norādes, pilnas norādes"
+"Kādu suflēšanas pakāpi izmantot; nekādu suflēšanu, vieglas suflēšanu, vidēju "
+"suflēšanu, pilnu suflēšanu"
 
-#: ../gtk/gtksettings.c:523
+#: ../gtk/gtksettings.c:515
+#: ../gtk/gtksettings.c:512
 msgid "Xft RGBA"
 msgstr "Xft RGBA"
 
-#: ../gtk/gtksettings.c:524
+#: ../gtk/gtksettings.c:516
+#: ../gtk/gtksettings.c:513
 msgid "Type of subpixel antialiasing; none, rgb, bgr, vrgb, vbgr"
-msgstr "Apakšpikseļu kropļojumu novēršanas tips; nekāds, rgb, bgr, vrgb, vbgr"
+msgstr "Apakšpikseļu gludināšanas tips; nekāds, rgb, bgr, vrgb, vbgr"
 
-#: ../gtk/gtksettings.c:533
+#: ../gtk/gtksettings.c:525
+#: ../gtk/gtksettings.c:522
 msgid "Xft DPI"
 msgstr "Xft DPI"
 
-#: ../gtk/gtksettings.c:534
+#: ../gtk/gtksettings.c:526
+#: ../gtk/gtksettings.c:523
 msgid "Resolution for Xft, in 1024 * dots/inch. -1 to use default value"
 msgstr ""
-"Izšķirtspēja priekš Xft 1024 punktos/collās. -1, lai izmantotu noklusēto "
-"vērtību"
+"Xft izšķirtspēja 1024 * punktos/collās. -1, lai izmantotu noklusēto vērtību"
 
-#: ../gtk/gtksettings.c:543
+#: ../gtk/gtksettings.c:535
+#: ../gtk/gtksettings.c:532
 msgid "Cursor theme name"
 msgstr "Kursora tēmas nosaukums"
 
-#: ../gtk/gtksettings.c:544
+#: ../gtk/gtksettings.c:536
+#: ../gtk/gtksettings.c:533
 msgid "Name of the cursor theme to use, or NULL to use the default theme"
 msgstr ""
+"Nosaukums kursora tēmai, ko izmantot; vai NULL, lai izmantotu noklusēto tēmu"
 
-#: ../gtk/gtksettings.c:552
+#: ../gtk/gtksettings.c:544
+#: ../gtk/gtksettings.c:541
 msgid "Cursor theme size"
-msgstr "Kursora tēmas nosaukums"
+msgstr "Kursora tēmas izmērs"
 
-#: ../gtk/gtksettings.c:553
+#: ../gtk/gtksettings.c:545
+#: ../gtk/gtksettings.c:542
 msgid "Size to use for cursors, or 0 to use the default size"
-msgstr ""
+msgstr "Izmērs, ko izmatot kursoriem; vai 0, lai izmantotu noklusēto izmēru"
 
-#: ../gtk/gtksettings.c:563
+#: ../gtk/gtksettings.c:554
+#: ../gtk/gtksettings.c:551
 msgid "Alternative button order"
-msgstr "Izvēles pogu kārtība"
+msgstr "Cita pogu secība"
 
-#: ../gtk/gtksettings.c:564
+#: ../gtk/gtksettings.c:555
+#: ../gtk/gtksettings.c:552
 msgid "Whether buttons in dialogs should use the alternative button order"
-msgstr "Vai pogām dialogos vajadzētu izmantot izvēles pogu kārtību"
+msgstr "Vai pogām dialogos vajadzētu izmantot citu pogu secību"
 
-#: ../gtk/gtksettings.c:581
+#: ../gtk/gtksettings.c:572
+#: ../gtk/gtksettings.c:569
 msgid "Alternative sort indicator direction"
-msgstr ""
+msgstr "Citas kārtošanas indikatora virziens"
 
-#: ../gtk/gtksettings.c:582
+#: ../gtk/gtksettings.c:573
+#: ../gtk/gtksettings.c:570
 msgid ""
 "Whether the direction of the sort indicators in list and tree views is "
 "inverted compared to the default (where down means ascending)"
 msgstr ""
+"Vai kārtošanas indikatoru virziens saraksta un koka skatos ir apgriezts, "
+"salīdzinot ar noklusēto (kur 'uz leju' nozīmē augoši)"
 
-#: ../gtk/gtksettings.c:590
+#: ../gtk/gtksettings.c:581
+#: ../gtk/gtksettings.c:578
 msgid "Show the 'Input Methods' menu"
-msgstr "Parādīt 'Ievades Metodes' izvēlni"
+msgstr "Rādīt 'Ievades metodes' izvēlni"
 
-#: ../gtk/gtksettings.c:591
+#: ../gtk/gtksettings.c:582
+#: ../gtk/gtksettings.c:579
 msgid ""
 "Whether the context menus of entries and text views should offer to change "
 "the input method"
 msgstr ""
-"Vai ierakstu labā klikšķa izvēlnēs vajadzētu piedāvāt izvēlēties ievades "
-"metodi"
+"Vai ierakstu labā klikšķa izvēlnēs vajadzētu piedāvāt mainīt ievades metodi"
 
-#: ../gtk/gtksettings.c:599
+#: ../gtk/gtksettings.c:590
+#: ../gtk/gtksettings.c:587
 msgid "Show the 'Insert Unicode Control Character' menu"
-msgstr ""
+msgstr "Rādīt 'Ievietot unikoda kontroles rakstzīmi' izvēlni"
 
-#: ../gtk/gtksettings.c:600
+#: ../gtk/gtksettings.c:591
+#: ../gtk/gtksettings.c:588
 msgid ""
 "Whether the context menus of entries and text views should offer to insert "
 "control characters"
@@ -5561,373 +6699,459 @@ msgstr ""
 "Vai ierakstu labā klikšķa izvēlnēs vajadzētu piedāvāt kontroles simbolu "
 "ievietošanu"
 
-#: ../gtk/gtksettings.c:608
+#: ../gtk/gtksettings.c:599
+#: ../gtk/gtksettings.c:596
 msgid "Start timeout"
 msgstr "Sākuma noildze"
 
-#: ../gtk/gtksettings.c:609
+#: ../gtk/gtksettings.c:600
+#: ../gtk/gtksettings.c:597
 msgid "Starting value for timeouts, when button is pressed"
-msgstr ""
+msgstr "Sākuma vērtība noildzēm, kad ir piespiesta poga"
 
-#: ../gtk/gtksettings.c:618
+#: ../gtk/gtksettings.c:609
+#: ../gtk/gtksettings.c:606
 msgid "Repeat timeout"
 msgstr "Atkārtotā noildze"
 
-#: ../gtk/gtksettings.c:619
+#: ../gtk/gtksettings.c:610
+#: ../gtk/gtksettings.c:607
 msgid "Repeat value for timeouts, when button is pressed"
-msgstr ""
+msgstr "Atkārtotā vērtība noildzēm, kad ir piespiesta poga"
 
-#: ../gtk/gtksettings.c:628
+#: ../gtk/gtksettings.c:619
+#: ../gtk/gtksettings.c:616
 msgid "Expand timeout"
 msgstr "Izvēršanas noildze"
 
-#: ../gtk/gtksettings.c:629
+#: ../gtk/gtksettings.c:620
+#: ../gtk/gtksettings.c:617
 msgid "Expand value for timeouts, when a widget is expanding a new region"
-msgstr ""
+msgstr "Izvēršanas vērtība noildzēm, kad logdaļa izvērš jaunu apgabalu"
 
-#: ../gtk/gtksettings.c:664
+#: ../gtk/gtksettings.c:655
+#: ../gtk/gtksettings.c:652
 msgid "Color scheme"
 msgstr "Krāsu palete"
 
-#: ../gtk/gtksettings.c:665
+#: ../gtk/gtksettings.c:656
+#: ../gtk/gtksettings.c:653
 msgid "A palette of named colors for use in themes"
-msgstr ""
+msgstr "Palete ar nosauktām krāsām, ko izmantot tēmās"
 
-#: ../gtk/gtksettings.c:674
+#: ../gtk/gtksettings.c:665
+#: ../gtk/gtksettings.c:662
 msgid "Enable Animations"
-msgstr "Aktivizēt Animācijas"
+msgstr "Aktivēt animācijas"
 
-#: ../gtk/gtksettings.c:675
+#: ../gtk/gtksettings.c:666
+#: ../gtk/gtksettings.c:663
 msgid "Whether to enable toolkit-wide animations."
-msgstr ""
+msgstr "Vai aktivēt rīkkopas animācijas."
 
-#: ../gtk/gtksettings.c:693
+#: ../gtk/gtksettings.c:684
+#: ../gtk/gtksettings.c:681
 msgid "Enable Touchscreen Mode"
-msgstr "Aktivizēt skārienjūtīgā ekrāna režīmu"
+msgstr "Aktivēt skārienjūtīgā ekrāna režīmu"
 
-#: ../gtk/gtksettings.c:694
+#: ../gtk/gtksettings.c:685
+#: ../gtk/gtksettings.c:682
 msgid "When TRUE, there are no motion notify events delivered on this screen"
-msgstr ""
+msgstr "Ja PATIESS, uz šo ekrānu netiek nogādāti notikumi par kustību"
 
-#: ../gtk/gtksettings.c:711
+#: ../gtk/gtksettings.c:702
+#: ../gtk/gtksettings.c:699
 msgid "Tooltip timeout"
 msgstr "Paskaidres noildze"
 
-#: ../gtk/gtksettings.c:712
+#: ../gtk/gtksettings.c:703
+#: ../gtk/gtksettings.c:700
 msgid "Timeout before tooltip is shown"
-msgstr ""
+msgstr "Noildze pirms tiek rādīta paskaidre"
 
-#: ../gtk/gtksettings.c:737
+#: ../gtk/gtksettings.c:728
+#: ../gtk/gtksettings.c:725
 msgid "Tooltip browse timeout"
-msgstr ""
+msgstr "Paskaidres pārlūkošanas noildze"
 
-#: ../gtk/gtksettings.c:738
+#: ../gtk/gtksettings.c:729
+#: ../gtk/gtksettings.c:726
 msgid "Timeout before tooltip is shown when browse mode is enabled"
-msgstr ""
+msgstr "Noildze, pirms tiek parādīta paskaidre, kad aktivēts pārlūkošanas režīms"
 
-#: ../gtk/gtksettings.c:759
+#: ../gtk/gtksettings.c:750
+#: ../gtk/gtksettings.c:747
 msgid "Tooltip browse mode timeout"
-msgstr ""
+msgstr "Paskadres pārlūkošanas režīma noildze"
 
-#: ../gtk/gtksettings.c:760
+#: ../gtk/gtksettings.c:751
+#: ../gtk/gtksettings.c:748
 msgid "Timeout after which browse mode is disabled"
-msgstr ""
+msgstr "Noildze, pēc kuras pārlūkošanas režīms ir deaktivēts"
 
-#: ../gtk/gtksettings.c:779
+#: ../gtk/gtksettings.c:770
+#: ../gtk/gtksettings.c:767
 msgid "Keynav Cursor Only"
-msgstr ""
+msgstr "Tikai taustnav kursors"
 
-#: ../gtk/gtksettings.c:780
+#: ../gtk/gtksettings.c:771
+#: ../gtk/gtksettings.c:768
 msgid "When TRUE, there are only cursor keys available to navigate widgets"
-msgstr ""
+msgstr "Kad PATIESS, pa logdaļu var pārvietoties tikai ar kursora taustiņiem"
 
-#: ../gtk/gtksettings.c:797
+#: ../gtk/gtksettings.c:788
+#: ../gtk/gtksettings.c:785
 msgid "Keynav Wrap Around"
-msgstr ""
+msgstr "Taustnav aplauzt apkārt"
 
-#: ../gtk/gtksettings.c:798
+#: ../gtk/gtksettings.c:789
+#: ../gtk/gtksettings.c:786
 msgid "Whether to wrap around when keyboard-navigating widgets"
-msgstr ""
+msgstr "Vai aplauzt apkārt, kad pārvietojas pa logdaļu ar tastatūru"
 
-#: ../gtk/gtksettings.c:818
+#: ../gtk/gtksettings.c:809
+#: ../gtk/gtksettings.c:806
 msgid "Error Bell"
 msgstr "Kļūdas zvans"
 
-#: ../gtk/gtksettings.c:819
+#: ../gtk/gtksettings.c:810
+#: ../gtk/gtksettings.c:807
 msgid "When TRUE, keyboard navigation and other errors will cause a beep"
-msgstr ""
+msgstr "Kad PATIESS, tastatūras pārvietošanās un citas kļūdas izraisīs pīkstienu"
 
-#: ../gtk/gtksettings.c:836
+#: ../gtk/gtksettings.c:827
+#: ../gtk/gtksettings.c:824
 msgid "Color Hash"
-msgstr "Krāsas hash"
+msgstr "Krāsas juceklis"
 
-#: ../gtk/gtksettings.c:837
+#: ../gtk/gtksettings.c:828
+#: ../gtk/gtksettings.c:825
 msgid "A hash table representation of the color scheme."
-msgstr ""
+msgstr "Krāsu shēmas attēlojums jucekļa tabulā"
 
-#: ../gtk/gtksettings.c:845
+#: ../gtk/gtksettings.c:836
+#: ../gtk/gtksettings.c:833
 msgid "Default file chooser backend"
 msgstr "Noklusētā failu izvēlētāja aizmugure"
 
-#: ../gtk/gtksettings.c:846
+#: ../gtk/gtksettings.c:837
+#: ../gtk/gtksettings.c:834
 msgid "Name of the GtkFileChooser backend to use by default"
-msgstr "GtkFileChooser aimugures nosaukums, ko lietot pēc noklusējuma"
+msgstr "GtkFileChooser aizmugures nosaukums, ko lietot pēc noklusējuma"
 
-#: ../gtk/gtksettings.c:863
+#: ../gtk/gtksettings.c:854
+#: ../gtk/gtksettings.c:851
 msgid "Default print backend"
 msgstr "Noklusētā printera aizmugure"
 
-#: ../gtk/gtksettings.c:864
+#: ../gtk/gtksettings.c:855
+#: ../gtk/gtksettings.c:852
 msgid "List of the GtkPrintBackend backends to use by default"
 msgstr "Saraksts ar pēc noklusējuma izmantojamajām GtkPrintBackend aizmugurēm"
 
-#: ../gtk/gtksettings.c:887
+#: ../gtk/gtksettings.c:878
+#: ../gtk/gtksettings.c:875
 msgid "Default command to run when displaying a print preview"
-msgstr ""
+msgstr "Noklusētā komanda, ko palaist, kad attēlo drukāšanas priekšskatījumu"
 
-#: ../gtk/gtksettings.c:888
+#: ../gtk/gtksettings.c:879
+#: ../gtk/gtksettings.c:876
 msgid "Command to run when displaying a print preview"
-msgstr ""
+msgstr "Komanda, ko palaist, kad attēlo drukāšanas priekšskatījumu"
 
-#: ../gtk/gtksettings.c:904
+#: ../gtk/gtksettings.c:895
+#: ../gtk/gtksettings.c:892
 msgid "Enable Mnemonics"
-msgstr "Aktivizēt mnemonikas"
+msgstr "Aktivēt mnemonikas"
 
-#: ../gtk/gtksettings.c:905
+#: ../gtk/gtksettings.c:896
+#: ../gtk/gtksettings.c:893
 msgid "Whether labels should have mnemonics"
-msgstr "Vai etiķetēm būtu jābūt mnemonikām"
+msgstr "Vai iezīmēm būtu jābūt mnemonikām"
 
-#: ../gtk/gtksettings.c:921
+#: ../gtk/gtksettings.c:912
+#: ../gtk/gtksettings.c:909
 msgid "Enable Accelerators"
-msgstr "Aktivizēt paātrinātājus"
+msgstr "Aktivēt paātrinātājus"
 
-#: ../gtk/gtksettings.c:922
+#: ../gtk/gtksettings.c:913
+#: ../gtk/gtksettings.c:910
 msgid "Whether menu items should have accelerators"
-msgstr "Vai izvēlņu elementiem vajadzētu būt paātrinātājiem"
+msgstr "Vai izvēļņu elementiem vajadzētu būt paātrinātājiem"
 
-#: ../gtk/gtksettings.c:939
+#: ../gtk/gtksettings.c:930
+#: ../gtk/gtksettings.c:927
 msgid "Recent Files Limit"
 msgstr "Neseno failu limits"
 
-#: ../gtk/gtksettings.c:940
+#: ../gtk/gtksettings.c:931
+#: ../gtk/gtksettings.c:928
 msgid "Number of recently used files"
 msgstr "Nesen izmantoto failu skaits"
 
-#: ../gtk/gtksettings.c:958
+#: ../gtk/gtksettings.c:949
+#: ../gtk/gtksettings.c:946
 msgid "Default IM module"
-msgstr "Noklusētais IM modulis"
+msgstr "Noklusētais TZ modulis"
 
-#: ../gtk/gtksettings.c:959
+#: ../gtk/gtksettings.c:950
+#: ../gtk/gtksettings.c:947
 msgid "Which IM module should be used by default"
-msgstr "Kuru IM moduli lietot pēc noklusējuma"
+msgstr "Kuru TZ moduli lietot pēc noklusējuma"
 
-#: ../gtk/gtksettings.c:977
+#: ../gtk/gtksettings.c:968
+#: ../gtk/gtksettings.c:965
 msgid "Recent Files Max Age"
 msgstr "Neseno failu maksimālais vecums"
 
-#: ../gtk/gtksettings.c:978
+#: ../gtk/gtksettings.c:969
+#: ../gtk/gtksettings.c:966
 msgid "Maximum age of recently used files, in days"
 msgstr "Maksimālais nesen izmantoto dokumentu vecums dienās"
 
-#: ../gtk/gtksettings.c:987
+#: ../gtk/gtksettings.c:978
+#: ../gtk/gtksettings.c:975
 msgid "Fontconfig configuration timestamp"
 msgstr "Fontconfig konfigurācijas laika spiedogs"
 
-#: ../gtk/gtksettings.c:988
+#: ../gtk/gtksettings.c:979
+#: ../gtk/gtksettings.c:976
 msgid "Timestamp of current fontconfig configuration"
 msgstr "Pašreizējās fontconfig konfigurācijas laika spiedogs"
 
-#: ../gtk/gtksettings.c:1010
+#: ../gtk/gtksettings.c:1001
+#: ../gtk/gtksettings.c:998
 msgid "Sound Theme Name"
 msgstr "Skaņu tēmas nosaukums"
 
-#: ../gtk/gtksettings.c:1011
+#: ../gtk/gtksettings.c:1002
+#: ../gtk/gtksettings.c:999
 msgid "XDG sound theme name"
 msgstr "XDG skaņu tēmas nosaukums"
 
 #. Translators: this means sounds that are played as feedback to user input
-#: ../gtk/gtksettings.c:1033
+#: ../gtk/gtksettings.c:1024
+#: ../gtk/gtksettings.c:1021
 msgid "Audible Input Feedback"
-msgstr "Dzirdami ievades papildinājumi"
+msgstr "Dzirdamie ievades papildinājumi"
 
-#: ../gtk/gtksettings.c:1034
+#: ../gtk/gtksettings.c:1025
+#: ../gtk/gtksettings.c:1022
 msgid "Whether to play event sounds as feedback to user input"
-msgstr "Vai kā papildus informāciju lietotāja ievadam atskaņot notikumu skaņas"
+msgstr "Vai, kā papildus informāciju lietotāja ievadam, atskaņot notikumu skaņas"
 
-#: ../gtk/gtksettings.c:1055
+#: ../gtk/gtksettings.c:1046
+#: ../gtk/gtksettings.c:1043
 msgid "Enable Event Sounds"
-msgstr "Aktivizēt notikumu skaņas"
+msgstr "Aktivēt notikumu skaņas"
 
-#: ../gtk/gtksettings.c:1056
+#: ../gtk/gtksettings.c:1047
+#: ../gtk/gtksettings.c:1044
 msgid "Whether to play any event sounds at all"
 msgstr "Vai vispār atskaņot kāda notikuma skaņas"
 
-#: ../gtk/gtksettings.c:1071
+#: ../gtk/gtksettings.c:1062
+#: ../gtk/gtksettings.c:1059
 msgid "Enable Tooltips"
-msgstr "Aktizvizēt paskaidres"
+msgstr "Aktivēt paskaidres"
 
-#: ../gtk/gtksettings.c:1072
+#: ../gtk/gtksettings.c:1063
+#: ../gtk/gtksettings.c:1060
 msgid "Whether tooltips should be shown on widgets"
 msgstr "Vai logdaļām rādīt paskaidres"
 
-#: ../gtk/gtksettings.c:1085
+#: ../gtk/gtksettings.c:1076
+#: ../gtk/gtksettings.c:1073
 msgid "Toolbar style"
 msgstr "Rīkjoslas stils"
 
-#: ../gtk/gtksettings.c:1086
-msgid ""
-"Whether default toolbars have text only, text and icons, icons only, etc."
+#: ../gtk/gtksettings.c:1077
+#: ../gtk/gtksettings.c:1074
+msgid "Whether default toolbars have text only, text and icons, icons only, etc."
 msgstr ""
 "Vai noklusētās rīkjoslas ir tikai ar tekstu, tekstu un ikonām, tikai ikonām, "
 "u.t.t."
 
-#: ../gtk/gtksettings.c:1100
-#, fuzzy
+#: ../gtk/gtksettings.c:1091
+#: ../gtk/gtksettings.c:1088
 msgid "Toolbar Icon Size"
 msgstr "Rīkjoslas ikonu izmērs"
 
-#: ../gtk/gtksettings.c:1101
-#, fuzzy
+#: ../gtk/gtksettings.c:1092
+#: ../gtk/gtksettings.c:1089
 msgid "The size of icons in default toolbars."
-msgstr "Ikonu izmērs noklusētajās rīkjoslās"
+msgstr "Ikonu izmērs noklusētajās rīkjoslās."
 
-#: ../gtk/gtksettings.c:1118
-#, fuzzy
+#: ../gtk/gtksettings.c:1109
+#: ../gtk/gtksettings.c:1106
 msgid "Auto Mnemonics"
-msgstr "Aktivizēt mnemonikas"
+msgstr "Automātiskās mnemonikas"
 
-#: ../gtk/gtksettings.c:1119
+#: ../gtk/gtksettings.c:1110
+#: ../gtk/gtksettings.c:1107
 msgid ""
 "Whether mnemonics should be automatically shown and hidden when the user "
 "presses the mnemonic activator."
 msgstr ""
+"Vai mnemonikas vajadzētu automātiski rādīt un slēpt, kad lietotājs piespiež "
+"mnemonikas aktivizētāju."
 
-#: ../gtk/gtksettings.c:1144
-#, fuzzy
+#: ../gtk/gtksettings.c:1135
+#: ../gtk/gtksettings.c:1132
 msgid "Application prefers a dark theme"
-msgstr "Aplikācija krāsojama"
+msgstr "Lietotne dod priekšroku tumšai tēmai"
 
-#: ../gtk/gtksettings.c:1145
-#, fuzzy
+#: ../gtk/gtksettings.c:1136
+#: ../gtk/gtksettings.c:1133
 msgid "Whether the application prefers to have a dark theme."
-msgstr "Vai darbība ir ieslēgta."
+msgstr "Vai lietotne dod priekšroku tumšai tēmai"
 
-#: ../gtk/gtksettings.c:1160
+#: ../gtk/gtksettings.c:1151
+#: ../gtk/gtksettings.c:1148
 msgid "Show button images"
 msgstr "Rādīt pogu attēlus"
 
-#: ../gtk/gtksettings.c:1161
+#: ../gtk/gtksettings.c:1152
+#: ../gtk/gtksettings.c:1149
 msgid "Whether images should be shown on buttons"
 msgstr "Vai uz pogām rādīt attēlus"
 
-#: ../gtk/gtksettings.c:1169 ../gtk/gtksettings.c:1263
+#: ../gtk/gtksettings.c:1160 ../gtk/gtksettings.c:1254
+#: ../gtk/gtksettings.c:1157
+#: ../gtk/gtksettings.c:1251
 msgid "Select on focus"
 msgstr "Izvēlēties pie fokusēšanas"
 
-#: ../gtk/gtksettings.c:1170
+#: ../gtk/gtksettings.c:1161
+#: ../gtk/gtksettings.c:1158
 msgid "Whether to select the contents of an entry when it is focused"
 msgstr "Vai izvēlēties ieraksta saturu, kad tas tiek fokusēts"
 
-#: ../gtk/gtksettings.c:1187
+#: ../gtk/gtksettings.c:1178
+#: ../gtk/gtksettings.c:1175
 msgid "Password Hint Timeout"
 msgstr "Paroles padoma noildze"
 
-#: ../gtk/gtksettings.c:1188
+#: ../gtk/gtksettings.c:1179
+#: ../gtk/gtksettings.c:1176
 msgid "How long to show the last input character in hidden entries"
-msgstr ""
+msgstr "Cik ilgi rādīt ievades rakstzīmes slēptajās ievadēs"
 
-#: ../gtk/gtksettings.c:1197
+#: ../gtk/gtksettings.c:1188
+#: ../gtk/gtksettings.c:1185
 msgid "Show menu images"
 msgstr "Rādīt izvēlnes attēlus"
 
-#: ../gtk/gtksettings.c:1198
+#: ../gtk/gtksettings.c:1189
+#: ../gtk/gtksettings.c:1186
 msgid "Whether images should be shown in menus"
 msgstr "Vai izvēlnēs rādīt attēlus"
 
-#: ../gtk/gtksettings.c:1206
+#: ../gtk/gtksettings.c:1197
+#: ../gtk/gtksettings.c:1194
 msgid "Delay before drop down menus appear"
-msgstr "Aizture pirms nolaižamā izvēlnes parādās"
+msgstr "Aizture pirms parādās nolaižamā izvēlnes"
 
-#: ../gtk/gtksettings.c:1207
+#: ../gtk/gtksettings.c:1198
+#: ../gtk/gtksettings.c:1195
 msgid "Delay before the submenus of a menu bar appear"
-msgstr "Aizture pirms apakšizvēlnes josla parādās"
+msgstr "Aizture pirms parādās apakšizvēlnes josla"
 
-#: ../gtk/gtksettings.c:1224
+#: ../gtk/gtksettings.c:1215
+#: ../gtk/gtksettings.c:1212
 msgid "Scrolled Window Placement"
-msgstr ""
+msgstr "Ritinātā loga novietojums"
 
-#: ../gtk/gtksettings.c:1225
+#: ../gtk/gtksettings.c:1216
+#: ../gtk/gtksettings.c:1213
 msgid ""
 "Where the contents of scrolled windows are located with respect to the "
 "scrollbars, if not overridden by the scrolled window's own placement."
 msgstr ""
+"Kur tiek novietots ritināmā loga saturs, attiecībā pret ritjoslām, ja nav "
+"pārrakstīts ar ritināmā loga paša novietojumu."
 
-#: ../gtk/gtksettings.c:1234
+#: ../gtk/gtksettings.c:1225
+#: ../gtk/gtksettings.c:1222
 msgid "Can change accelerators"
 msgstr "Var mainīt paātrinātājus"
 
-#: ../gtk/gtksettings.c:1235
+#: ../gtk/gtksettings.c:1226
+#: ../gtk/gtksettings.c:1223
 msgid ""
 "Whether menu accelerators can be changed by pressing a key over the menu item"
 msgstr ""
-"Vai izvēlņu paātrinātāji var tikt mainīti, nospiežot taustiņu virs izvēlnes "
+"Vai izvēļņu paātrinātāji var tikt mainīti, nospiežot taustiņu virs izvēlnes "
 "priekšmeta"
 
-#: ../gtk/gtksettings.c:1243
+#: ../gtk/gtksettings.c:1234
+#: ../gtk/gtksettings.c:1231
 msgid "Delay before submenus appear"
 msgstr "Aizture pirms parādās apakšizvēlne"
 
-#: ../gtk/gtksettings.c:1244
+#: ../gtk/gtksettings.c:1235
+#: ../gtk/gtksettings.c:1232
 msgid ""
 "Minimum time the pointer must stay over a menu item before the submenu appear"
 msgstr ""
 "Minimums laika, cik ilgi kursoram jāatrodas uz izvēlnes pirms parādās "
 "apakšizvēlne"
 
-#: ../gtk/gtksettings.c:1253
+#: ../gtk/gtksettings.c:1244
+#: ../gtk/gtksettings.c:1241
 msgid "Delay before hiding a submenu"
 msgstr "Aizture pirms apakšizvēlnes paslēpšanas"
 
-#: ../gtk/gtksettings.c:1254
+#: ../gtk/gtksettings.c:1245
+#: ../gtk/gtksettings.c:1242
 msgid ""
 "The time before hiding a submenu when the pointer is moving towards the "
 "submenu"
 msgstr ""
 "Laiks pirms apakšizvēlnes paslēpšanas, kad kursors virzās pie apakšizvēlnes"
 
-#: ../gtk/gtksettings.c:1264
+#: ../gtk/gtksettings.c:1255
+#: ../gtk/gtksettings.c:1252
 msgid "Whether to select the contents of a selectable label when it is focused"
-msgstr "Vai izvēlēties ieraksta saturu, kad tas tiek fokusēts"
+msgstr "Vai izvēlēties izvēlamas iezīmes saturu, kad tā tiek fokusēta"
 
-#: ../gtk/gtksettings.c:1272
+#: ../gtk/gtksettings.c:1263
+#: ../gtk/gtksettings.c:1260
 msgid "Custom palette"
 msgstr "Pašrocīgā palete"
 
-#: ../gtk/gtksettings.c:1273
+#: ../gtk/gtksettings.c:1264
+#: ../gtk/gtksettings.c:1261
 msgid "Palette to use in the color selector"
 msgstr "Palete, ko lietot krāsu izvēlētājā"
 
-#: ../gtk/gtksettings.c:1281
+#: ../gtk/gtksettings.c:1272
+#: ../gtk/gtksettings.c:1269
 msgid "IM Preedit style"
-msgstr "IM Pirmsrediģēšanas stils"
+msgstr "TZ pirmsrediģēšanas stils"
 
-#: ../gtk/gtksettings.c:1282
+#: ../gtk/gtksettings.c:1273
+#: ../gtk/gtksettings.c:1270
 msgid "How to draw the input method preedit string"
 msgstr "Kā zīmēt ievades metodes pirmsrediģēšanas virkni"
 
-#: ../gtk/gtksettings.c:1291
+#: ../gtk/gtksettings.c:1282
+#: ../gtk/gtksettings.c:1279
 msgid "IM Status style"
-msgstr "IM Statusa stils"
+msgstr "TZ statusa stils"
 
-#: ../gtk/gtksettings.c:1292
+#: ../gtk/gtksettings.c:1283
+#: ../gtk/gtksettings.c:1280
 msgid "How to draw the input method statusbar"
-msgstr "Kā zīmēt ievades metodes statusjoslu"
+msgstr "Kā zīmēt ievades metodes statusjoslu"
 
-#: ../gtk/gtksizegroup.c:351
+#: ../gtk/gtksizegroup.c:382 ../gtk/gtktreeselection.c:130
+#: ../gtk/gtksizegroup.c:301
 msgid "Mode"
 msgstr "Režīms"
 
-#: ../gtk/gtksizegroup.c:352
+#: ../gtk/gtksizegroup.c:383
+#: ../gtk/gtksizegroup.c:302
 msgid ""
 "The directions in which the size group affects the requested sizes of its "
 "component widgets"
@@ -5935,215 +7159,262 @@ msgstr ""
 "Virzieni, kādos izmēra grupa ietekmē pieprasītos izmērus tā komponentu "
 "logdaļām"
 
-#: ../gtk/gtksizegroup.c:368
+#: ../gtk/gtksizegroup.c:399
+#: ../gtk/gtksizegroup.c:318
 msgid "Ignore hidden"
 msgstr "Ignorēt slēpto"
 
-#: ../gtk/gtksizegroup.c:369
+#: ../gtk/gtksizegroup.c:400
+#: ../gtk/gtksizegroup.c:319
 msgid ""
 "If TRUE, unmapped widgets are ignored when determining the size of the group"
-msgstr ""
+msgstr "Ja PATIESS, nekartētās logdaļas tiek ignorētas, kad nosaka grupas izmēru"
 
+#: ../gtk/gtkspinbutton.c:331
 #: ../gtk/gtkspinbutton.c:328
 msgid "Climb Rate"
 msgstr "Kāpinājuma koeficients"
 
+#: ../gtk/gtkspinbutton.c:351
 #: ../gtk/gtkspinbutton.c:348
 msgid "Snap to Ticks"
 msgstr "Aizķerties pie tikšķiem"
 
+#: ../gtk/gtkspinbutton.c:352
 #: ../gtk/gtkspinbutton.c:349
 msgid ""
 "Whether erroneous values are automatically changed to a spin button's "
 "nearest step increment"
 msgstr ""
-"Vai kļūdainas vērtības tiek automāiski pārmainītas uz griešanās pogas tuvāko "
+"Vai kļūdainas vērtības tiek automātiski mainītas uz griešanās pogas tuvāko "
 "soļa palielinājumu"
 
+#: ../gtk/gtkspinbutton.c:359
 #: ../gtk/gtkspinbutton.c:356
 msgid "Numeric"
 msgstr "Skaitliska"
 
+#: ../gtk/gtkspinbutton.c:360
 #: ../gtk/gtkspinbutton.c:357
 msgid "Whether non-numeric characters should be ignored"
 msgstr "Vai neciparu rakstzīmes būtu jāignorē"
 
+#: ../gtk/gtkspinbutton.c:367
 #: ../gtk/gtkspinbutton.c:364
 msgid "Wrap"
 msgstr "Aplauzt"
 
+#: ../gtk/gtkspinbutton.c:368
 #: ../gtk/gtkspinbutton.c:365
 msgid "Whether a spin button should wrap upon reaching its limits"
-msgstr "Vai griešanās pogai būtu jaaplaužas, sasniedzot tās robežas"
+msgstr "Vai griešanās pogu būtu jāaplauž, sasniedzot tās robežas"
 
+#: ../gtk/gtkspinbutton.c:375
 #: ../gtk/gtkspinbutton.c:372
 msgid "Update Policy"
 msgstr "Atjaunināšanas politika"
 
+#: ../gtk/gtkspinbutton.c:376
 #: ../gtk/gtkspinbutton.c:373
 msgid ""
 "Whether the spin button should update always, or only when the value is legal"
 msgstr ""
-"Vai griešanās pogai būtu vienmēr jāatjauninās vai tikai, kad vētība ir "
+"Vai griešanās pogai būtu vienmēr jāatjauninās vai tikai, kad vērtība ir "
 "nepieļaujama"
 
+#: ../gtk/gtkspinbutton.c:385
 #: ../gtk/gtkspinbutton.c:382
 msgid "Reads the current value, or sets a new value"
 msgstr "Nolasa pašreizējo vērtību vai  iestata jaunu vērtību"
 
+#: ../gtk/gtkspinbutton.c:394
 #: ../gtk/gtkspinbutton.c:391
 msgid "Style of bevel around the spin button"
-msgstr "Izcilņa stils ap rotējošo pogu"
+msgstr "Apmales stils ap rotējošo pogu"
 
+#: ../gtk/gtkspinner.c:116
 #: ../gtk/gtkspinner.c:119
-#, fuzzy
 msgid "Whether the spinner is active"
-msgstr "Vai primārā ikona ir aktivizējama"
+msgstr "Vai ritenītis ir aktīvs"
 
+#: ../gtk/gtkstatusbar.c:183
 #: ../gtk/gtkstatusbar.c:181
 msgid "Style of bevel around the statusbar text"
-msgstr "Konusa stils ap statusjoslas tekstu"
+msgstr "Apmales stils ap statusa joslas tekstu"
 
-#: ../gtk/gtkstatusicon.c:262
+#: ../gtk/gtkstatusicon.c:293
+#: ../gtk/gtkstatusicon.c:263
 msgid "The size of the icon"
 msgstr "Ikonas izmērs"
 
-#: ../gtk/gtkstatusicon.c:272
+#: ../gtk/gtkstatusicon.c:303
+#: ../gtk/gtkstatusicon.c:273
 msgid "The screen where this status icon will be displayed"
 msgstr "Ekrāns, kurā tiks parādīta šī statusa ikona"
 
-#: ../gtk/gtkstatusicon.c:280
-#, fuzzy
+#: ../gtk/gtkstatusicon.c:311
+#: ../gtk/gtkstatusicon.c:281
 msgid "Whether the status icon is visible"
 msgstr "Vai statusa ikona ir redzama"
 
-#: ../gtk/gtkstatusicon.c:296
-#, fuzzy
+#: ../gtk/gtkstatusicon.c:327
+#: ../gtk/gtkstatusicon.c:297
 msgid "Whether the status icon is embedded"
 msgstr "Vai statusa ikona ir iegulta"
 
-#: ../gtk/gtkstatusicon.c:312 ../gtk/gtktrayicon-x11.c:126
+#: ../gtk/gtkstatusicon.c:343 ../gtk/gtktrayicon-x11.c:129
+#: ../gtk/gtkstatusicon.c:313
 msgid "The orientation of the tray"
 msgstr "Paplātes novietojums"
 
-#: ../gtk/gtkstatusicon.c:339 ../gtk/gtkwidget.c:1044
+#: ../gtk/gtkstatusicon.c:370 ../gtk/gtkwidget.c:1089
+#: ../gtk/gtkstatusicon.c:340
+#: ../gtk/gtkwidget.c:1072
 msgid "Has tooltip"
 msgstr "Ir paskaidre"
 
-#: ../gtk/gtkstatusicon.c:340
+#: ../gtk/gtkstatusicon.c:371
+#: ../gtk/gtkstatusicon.c:341
 msgid "Whether this tray icon has a tooltip"
 msgstr "Vai palodzes ikonai ir paskaidre"
 
-#: ../gtk/gtkstatusicon.c:365 ../gtk/gtkwidget.c:1065
+#: ../gtk/gtkstatusicon.c:396 ../gtk/gtkwidget.c:1110
+#: ../gtk/gtkstatusicon.c:366
+#: ../gtk/gtkwidget.c:1093
 msgid "Tooltip Text"
 msgstr "Paskaidres teksts"
 
-#: ../gtk/gtkstatusicon.c:366 ../gtk/gtkwidget.c:1066 ../gtk/gtkwidget.c:1087
+#: ../gtk/gtkstatusicon.c:397 ../gtk/gtkwidget.c:1111 ../gtk/gtkwidget.c:1132
+#: ../gtk/gtkstatusicon.c:367
+#: ../gtk/gtkwidget.c:1094
+#: ../gtk/gtkwidget.c:1115
 msgid "The contents of the tooltip for this widget"
-msgstr "Ieraksta saturs"
+msgstr "Paskaidres saturs šai logdaļai"
 
-#: ../gtk/gtkstatusicon.c:389 ../gtk/gtkwidget.c:1086
+#: ../gtk/gtkstatusicon.c:420 ../gtk/gtkwidget.c:1131
+#: ../gtk/gtkstatusicon.c:390
+#: ../gtk/gtkwidget.c:1114
 msgid "Tooltip markup"
-msgstr "Paskaidres formatējums"
+msgstr "Paskaidres marķējums"
 
-#: ../gtk/gtkstatusicon.c:390
+#: ../gtk/gtkstatusicon.c:421
+#: ../gtk/gtkstatusicon.c:391
 msgid "The contents of the tooltip for this tray icon"
 msgstr "Palodzes ikonas paskaidres saturs"
 
-#: ../gtk/gtkstatusicon.c:408
-#, fuzzy
+#: ../gtk/gtkstatusicon.c:439
+#: ../gtk/gtkstatusicon.c:409
 msgid "The title of this tray icon"
-msgstr "Ikonas izmērs"
+msgstr "Šīs paplātes ikonas virsraksts"
 
 #: ../gtk/gtkstyle.c:471
 msgid "Style context"
-msgstr ""
+msgstr "Stila konteksts"
 
 #: ../gtk/gtkstyle.c:472
 msgid "GtkStyleContext to get style from"
-msgstr ""
+msgstr "GtkStyleContext, no kā iegūt stilu"
 
-#: ../gtk/gtkstylecontext.c:547
+#: ../gtk/gtkstylecontext.c:432
+#: ../gtk/gtkstylecontext.c:546
 msgid "The associated GdkScreen"
-msgstr ""
+msgstr "Asociētais GdkScreen"
 
-#: ../gtk/gtkstylecontext.c:553
-#, fuzzy
+#: ../gtk/gtkstylecontext.c:438
+#: ../gtk/gtkstylecontext.c:552
 #| msgid "Fraction"
 msgid "Direction"
-msgstr "Daļa"
+msgstr "Virziens"
 
-#: ../gtk/gtkstylecontext.c:554 ../gtk/gtktexttag.c:236
+#: ../gtk/gtkstylecontext.c:439 ../gtk/gtktexttag.c:269
+#: ../gtk/gtkcellrenderertext.c:358
+#: ../gtk/gtkcellrenderertext.c:366
+#: ../gtk/gtktexttag.c:261
+#: ../gtk/gtkstylecontext.c:553
+#: ../gtk/gtktexttag.c:236
 msgid "Text direction"
 msgstr "Teksta virziens"
 
-#: ../gtk/gtkswitch.c:753
-#, fuzzy
+#: ../gtk/gtkswitch.c:785
+#: ../gtk/gtkswitch.c:802
 msgid "Whether the switch is on or off"
-msgstr "Vai kontakts ir iegults"
+msgstr "Vai slēdzis ir ieslēgts vai izslēgts"
 
-#: ../gtk/gtkswitch.c:787
-#, fuzzy
+#: ../gtk/gtkswitch.c:819
+#: ../gtk/gtkswitch.c:837
 #| msgid "The minimum value of the adjustment"
 msgid "The minimum width of the handle"
-msgstr "Iestatījuma minimālā vērtība"
+msgstr "Minimālais tura platums"
 
+#: ../gtk/gtktable.c:191
 #: ../gtk/gtktable.c:157
 msgid "Rows"
 msgstr "Rindas"
 
+#: ../gtk/gtktable.c:192
 #: ../gtk/gtktable.c:158
 msgid "The number of rows in the table"
 msgstr "Tabulas rindu skaits"
 
+#: ../gtk/gtktable.c:200
 #: ../gtk/gtktable.c:166
 msgid "Columns"
 msgstr "Kolonnas"
 
+#: ../gtk/gtktable.c:201
+#: ../gtk/gtkgrid.c:1305
 #: ../gtk/gtktable.c:167
 msgid "The number of columns in the table"
 msgstr "Tabulas kolonnu skaits"
 
+#: ../gtk/gtktable.c:228
 #: ../gtk/gtktable.c:194
 msgid "If TRUE, the table cells are all the same width/height"
-msgstr ""
+msgstr "Ja PATIESS, tabulas šūnas ir ar tādu pašu platumu/augstumu"
 
+#: ../gtk/gtktable.c:242
 #: ../gtk/gtktable.c:208
 msgid "Right attachment"
-msgstr "Labā piesaiste"
+msgstr "Labā piesaistne"
 
-#: ../gtk/gtktable.c:209
+#: ../gtk/gtktable.c:243
 msgid "The column number to attach the right side of a child widget to"
 msgstr "Kolonnas numurs, ko piesaistīt bērna logdaļas labajā pusē"
 
+#: ../gtk/gtktable.c:250
 #: ../gtk/gtktable.c:216
 msgid "The row number to attach the top of a child widget to"
 msgstr "Rindas numurs, ko piesaistīt bērna augšas logdaļai"
 
+#: ../gtk/gtktable.c:256
 #: ../gtk/gtktable.c:222
 msgid "Bottom attachment"
-msgstr "Apakšas piesaiste"
+msgstr "Apakšas piesaistne"
 
+#: ../gtk/gtktable.c:263
 #: ../gtk/gtktable.c:229
 msgid "Horizontal options"
-msgstr "Horizontālās iespējas"
+msgstr "Horizontālās opcijas"
 
+#: ../gtk/gtktable.c:264
 #: ../gtk/gtktable.c:230
 msgid "Options specifying the horizontal behaviour of the child"
-msgstr "Iespēja, kas nosaka horizontālo bērna uzvedību"
+msgstr "Opcija, kas nosaka horizontālo bērna uzvedību"
 
-#: ../gtk/gtktable.c:236
+#: ../gtk/gtktable.c:270
 msgid "Vertical options"
 msgstr "Vertikālās iespējas"
 
+#: ../gtk/gtktable.c:271
 #: ../gtk/gtktable.c:237
 msgid "Options specifying the vertical behaviour of the child"
-msgstr "Iespējas, kas nosaka vertikālo bērna uzvedību"
+msgstr "Opcijas, kas nosaka vertikālo bērna uzvedību"
 
-#: ../gtk/gtktable.c:243
+#: ../gtk/gtktable.c:277
 msgid "Horizontal padding"
 msgstr "Horizontālā papildināšana"
 
+#: ../gtk/gtktable.c:278
 #: ../gtk/gtktable.c:244
 msgid ""
 "Extra space to put between the child and its left and right neighbors, in "
@@ -6152,10 +7423,11 @@ msgstr ""
 "Papildus atstarpe, kuru novietot starp bērnu un tā labajiem un kreisajiem "
 "kaimiņiem, pikseļos"
 
-#: ../gtk/gtktable.c:250
+#: ../gtk/gtktable.c:284
 msgid "Vertical padding"
 msgstr "Vertikālā papildināšana"
 
+#: ../gtk/gtktable.c:285
 #: ../gtk/gtktable.c:251
 msgid ""
 "Extra space to put between the child and its upper and lower neighbors, in "
@@ -6164,138 +7436,175 @@ msgstr ""
 "Papildus vieta, ko novietot starp bērnu un tā augšējiem vai apakšējiem "
 "kaimiņiem, pikseļos"
 
+#: ../gtk/gtktextbuffer.c:203
 #: ../gtk/gtktextbuffer.c:192
 msgid "Tag Table"
 msgstr "Birkas tabula"
 
+#: ../gtk/gtktextbuffer.c:204
 #: ../gtk/gtktextbuffer.c:193
 msgid "Text Tag Table"
 msgstr "Teksta birkas tabula"
 
+#: ../gtk/gtktextbuffer.c:222
 #: ../gtk/gtktextbuffer.c:211
 msgid "Current text of the buffer"
 msgstr "Pašreizējais bufera teksts"
 
+#: ../gtk/gtktextbuffer.c:236
 #: ../gtk/gtktextbuffer.c:225
 msgid "Has selection"
 msgstr "Ir izvēle"
 
+#: ../gtk/gtktextbuffer.c:237
 #: ../gtk/gtktextbuffer.c:226
 msgid "Whether the buffer has some text currently selected"
-msgstr ""
+msgstr "Vai buferī ir kāds pašlaik izvēlēts teksts"
 
+#: ../gtk/gtktextbuffer.c:253
 #: ../gtk/gtktextbuffer.c:242
 msgid "Cursor position"
-msgstr "Kursora pozīcija"
+msgstr "Kursora novietojums"
 
+#: ../gtk/gtktextbuffer.c:254
 #: ../gtk/gtktextbuffer.c:243
 msgid ""
 "The position of the insert mark (as offset from the beginning of the buffer)"
-msgstr ""
+msgstr "Ievietošanas zīmes novietojums (kā nobīde no bufera sākuma)"
 
+#: ../gtk/gtktextbuffer.c:269
 #: ../gtk/gtktextbuffer.c:258
 msgid "Copy target list"
 msgstr "Kopēšanas mērķu saraksts"
 
+#: ../gtk/gtktextbuffer.c:270
 #: ../gtk/gtktextbuffer.c:259
 msgid ""
 "The list of targets this buffer supports for clipboard copying and DND source"
 msgstr ""
+"Saraksts ar mērķiem, ko šis buferis atbalsta starpliktuves kopēšanai un DND "
+"avotam"
 
+#: ../gtk/gtktextbuffer.c:285
 #: ../gtk/gtktextbuffer.c:274
 msgid "Paste target list"
 msgstr "Ielīmēšanas mērķu saraksts"
 
+#: ../gtk/gtktextbuffer.c:286
 #: ../gtk/gtktextbuffer.c:275
 msgid ""
 "The list of targets this buffer supports for clipboard pasting and DND "
 "destination"
 msgstr ""
+"Saraksts ar mērķiem, ko šis buferis atbalsta starpliktuves kopēšanai un DND "
+"mērķiem"
 
+#: ../gtk/gtktextmark.c:127
 #: ../gtk/gtktextmark.c:90
 msgid "Mark name"
 msgstr "Iezīmes nosaukums"
 
+#: ../gtk/gtktextmark.c:134
 #: ../gtk/gtktextmark.c:97
 msgid "Left gravity"
-msgstr ""
+msgstr "Kreisā gravitācija"
 
+#: ../gtk/gtktextmark.c:135
 #: ../gtk/gtktextmark.c:98
 msgid "Whether the mark has left gravity"
-msgstr ""
+msgstr "Vai iezīmei ir kreisā gravitācija"
 
+#: ../gtk/gtktexttag.c:189
 #: ../gtk/gtktexttag.c:186
 msgid "Tag name"
 msgstr "Birkas nosaukums"
 
+#: ../gtk/gtktexttag.c:190
 #: ../gtk/gtktexttag.c:187
 msgid "Name used to refer to the text tag. NULL for anonymous tags"
 msgstr ""
 "Lietojamais nosaukums, ar kuru atsaukties uz teksta birku. NULL anonīmajām "
 "birkām"
 
-#: ../gtk/gtktexttag.c:205
-msgid "Background color as a (possibly unallocated) GdkColor"
-msgstr "Fona krāsa kā (iespējams, nepiešķirta) GdkColor"
+#: ../gtk/gtktexttag.c:222
+#| msgid "Background color"
+msgid "Background rgba"
+msgstr "Fona rgba"
 
+#: ../gtk/gtktexttag.c:230
 #: ../gtk/gtktexttag.c:212
 msgid "Background full height"
-msgstr "Fona aizpildījuma garums"
+msgstr "Fona pilns augstums"
 
+#: ../gtk/gtktexttag.c:231
 #: ../gtk/gtktexttag.c:213
 msgid ""
 "Whether the background color fills the entire line height or only the height "
 "of the tagged characters"
 msgstr ""
 "Vai fona krāsa tiek aizpildīta visas līnijas garumā vai tikai atzīmēto "
-"rakstzimju garumā"
-
-#: ../gtk/gtktexttag.c:229
-msgid "Foreground color as a (possibly unallocated) GdkColor"
-msgstr "Priekšplāna krāsa kā (iespējams, nepiešķirta) GdkColor"
-
+"rakstzīmju garumā"
+
+#: ../gtk/gtktexttag.c:261
+#: ../gtk/gtkcellrenderertext.c:358
+#: ../gtk/gtkcellrenderertext.c:366
+#: ../gtk/gtktexttag.c:269
+#| msgid "Foreground color"
+msgid "Foreground rgba"
+msgstr "Priekšplāna rgba"
+
+#: ../gtk/gtktexttag.c:270
+#: ../gtk/gtkcellrenderertext.c:367
 #: ../gtk/gtktexttag.c:237
 msgid "Text direction, e.g. right-to-left or left-to-right"
 msgstr "Teksta virziens, t.i., no labās puses uz kreiso vai no kreisās uz labo"
 
+#: ../gtk/gtktexttag.c:319
 #: ../gtk/gtktexttag.c:286
 msgid "Font style as a PangoStyle, e.g. PANGO_STYLE_ITALIC"
 msgstr "Fonta stils kā PangoStyle, piem., PANGO_STYLE_ITALIC"
 
-#: ../gtk/gtktexttag.c:295
+#: ../gtk/gtktexttag.c:328
 msgid "Font variant as a PangoVariant, e.g. PANGO_VARIANT_SMALL_CAPS"
 msgstr "Fonta variants kā PangoVariant, piem., PANGO_VARIANT_SMALL_CAPS"
 
+#: ../gtk/gtktexttag.c:337
 #: ../gtk/gtktexttag.c:304
 msgid ""
 "Font weight as an integer, see predefined values in PangoWeight; for "
 "example, PANGO_WEIGHT_BOLD"
 msgstr ""
-"Fonta svars kā veselums, apskati pirmsnoteiktās vērtības iekš PangoWeight; "
-"piemēram, PANGO_WEIGHT_BOLD"
+"Fonta svars kā veselums, apskati iepriekš noteiktās vērtības iekš "
+"PangoWeight; piemēram, PANGO_WEIGHT_BOLD"
 
+#: ../gtk/gtktexttag.c:348
 #: ../gtk/gtktexttag.c:315
 msgid "Font stretch as a PangoStretch, e.g. PANGO_STRETCH_CONDENSED"
 msgstr "Fonta izstiepums kā PangoStretch, piem., PANGO_STRETCH_CONDENSED"
 
+#: ../gtk/gtktexttag.c:357
 #: ../gtk/gtktexttag.c:324
 msgid "Font size in Pango units"
 msgstr "Fonta izmērs Pango vienībās"
 
+#: ../gtk/gtktexttag.c:367
 #: ../gtk/gtktexttag.c:334
 msgid ""
 "Font size as a scale factor relative to the default font size. This properly "
 "adapts to theme changes etc. so is recommended. Pango predefines some scales "
 "such as PANGO_SCALE_X_LARGE"
 msgstr ""
-"Fonta izmērs kā mērogojams faktors attiecībā pret noklusēto fotna izmēru. Šī "
+"Fonta izmērs kā mērogojams faktors attiecībā pret noklusēto fonta izmēru. Šī "
 "īpašība piemērojas tēmas izmaiņām utt., tāpēc tiek rekomendēts. Pango "
-"pirmsnosaka dažus mērogus, tādas kā PANGO_SCALE_X_LARGE"
+"iepriekš nosaka dažus mērogus, tādas kā PANGO_SCALE_X_LARGE"
 
-#: ../gtk/gtktexttag.c:354 ../gtk/gtktextview.c:702
+#: ../gtk/gtktexttag.c:387 ../gtk/gtktextview.c:704
+#: ../gtk/gtktexttag.c:354
+#: ../gtk/gtktextview.c:702
 msgid "Left, right, or center justification"
 msgstr "Pa labi, kreisi vai centrēts izlīdzinājums"
 
+#: ../gtk/gtktexttag.c:406
 #: ../gtk/gtktexttag.c:373
 msgid ""
 "The language this text is in, as an ISO code. Pango can use this as a hint "
@@ -6305,31 +7614,42 @@ msgstr ""
 "renderē tekstu. Ja tas nav iestatīts, tad piemērotākais pēc noklusējuma tiks "
 "izmantots."
 
+#: ../gtk/gtktexttag.c:413
 #: ../gtk/gtktexttag.c:380
 msgid "Left margin"
 msgstr "Kreisā mala"
 
-#: ../gtk/gtktexttag.c:381 ../gtk/gtktextview.c:711
+#: ../gtk/gtktexttag.c:414 ../gtk/gtktextview.c:713
+#: ../gtk/gtktexttag.c:381
+#: ../gtk/gtktextview.c:711
 msgid "Width of the left margin in pixels"
 msgstr "Atkāpe no kreisās malas pikseļos"
 
+#: ../gtk/gtktexttag.c:423
 #: ../gtk/gtktexttag.c:390
+#: ../gtk/gtktextview.c:655
 msgid "Right margin"
 msgstr "Labā mala"
 
-#: ../gtk/gtktexttag.c:391 ../gtk/gtktextview.c:721
+#: ../gtk/gtktexttag.c:424 ../gtk/gtktextview.c:723
+#: ../gtk/gtktexttag.c:391
+#: ../gtk/gtktextview.c:721
 msgid "Width of the right margin in pixels"
 msgstr "Atkāpe no labās puses pikseļos"
 
-#: ../gtk/gtktexttag.c:401 ../gtk/gtktextview.c:730
+#: ../gtk/gtktexttag.c:434 ../gtk/gtktextview.c:732
+#: ../gtk/gtktexttag.c:401
+#: ../gtk/gtktextview.c:730
 msgid "Indent"
 msgstr "Atkāpe"
 
-#: ../gtk/gtktexttag.c:402 ../gtk/gtktextview.c:731
+#: ../gtk/gtktexttag.c:435 ../gtk/gtktextview.c:733
+#: ../gtk/gtktexttag.c:402
+#: ../gtk/gtktextview.c:731
 msgid "Amount to indent the paragraph, in pixels"
 msgstr "Daudzums pikseļos, kādā veidot atkāpi rindkopai"
 
-#: ../gtk/gtktexttag.c:413
+#: ../gtk/gtktexttag.c:446
 msgid ""
 "Offset of text above the baseline (below the baseline if rise is negative) "
 "in Pango units"
@@ -6337,232 +7657,293 @@ msgstr ""
 "Teksta nobīde virs bāzes līnijas (zem līnijas, ja pacēlums ir negatīvs) "
 "Pango vienībās"
 
+#: ../gtk/gtktexttag.c:455
 #: ../gtk/gtktexttag.c:422
 msgid "Pixels above lines"
 msgstr "Pikseļi virs rindiņām"
 
-#: ../gtk/gtktexttag.c:423 ../gtk/gtktextview.c:655
+#: ../gtk/gtktexttag.c:456 ../gtk/gtktextview.c:657
+#: ../gtk/gtktexttag.c:423
+#: ../gtk/gtktextview.c:655
 msgid "Pixels of blank space above paragraphs"
 msgstr "Tukšas vietas pikseļi virs rindkopām"
 
+#: ../gtk/gtktexttag.c:465
 #: ../gtk/gtktexttag.c:432
 msgid "Pixels below lines"
 msgstr "Pikseļi zem rindiņām"
 
-#: ../gtk/gtktexttag.c:433 ../gtk/gtktextview.c:665
+#: ../gtk/gtktexttag.c:466 ../gtk/gtktextview.c:667
+#: ../gtk/gtktexttag.c:433
+#: ../gtk/gtktextview.c:665
 msgid "Pixels of blank space below paragraphs"
 msgstr "Tukšas vietas pikseļi zem rindkopām"
 
+#: ../gtk/gtktexttag.c:475
 #: ../gtk/gtktexttag.c:442
 msgid "Pixels inside wrap"
-msgstr "Pikseļu iekšpusē iekļaušana"
+msgstr "Pikseļu iekšpus aplaušanas"
 
-#: ../gtk/gtktexttag.c:443 ../gtk/gtktextview.c:675
+#: ../gtk/gtktexttag.c:476 ../gtk/gtktextview.c:677
+#: ../gtk/gtktexttag.c:443
+#: ../gtk/gtktextview.c:675
 msgid "Pixels of blank space between wrapped lines in a paragraph"
 msgstr "Pikseļu daudzums atstarpē starp aplauztām rindiņām paragrāfā"
 
-#: ../gtk/gtktexttag.c:470 ../gtk/gtktextview.c:693
+#: ../gtk/gtktexttag.c:503 ../gtk/gtktextview.c:695
+#: ../gtk/gtktexttag.c:470
+#: ../gtk/gtktextview.c:693
 msgid ""
 "Whether to wrap lines never, at word boundaries, or at character boundaries"
 msgstr "Vai aplauzt rindiņas nekad, vārdu robežās vai rakstzīmju robežās"
 
-#: ../gtk/gtktexttag.c:479 ../gtk/gtktextview.c:740
+#: ../gtk/gtktexttag.c:512 ../gtk/gtktextview.c:742
+#: ../gtk/gtktexttag.c:479
+#: ../gtk/gtktextview.c:740
 msgid "Tabs"
-msgstr "Tabuācijas"
+msgstr "Tabulācijas"
 
-#: ../gtk/gtktexttag.c:480 ../gtk/gtktextview.c:741
+#: ../gtk/gtktexttag.c:513 ../gtk/gtktextview.c:743
+#: ../gtk/gtktexttag.c:480
+#: ../gtk/gtktextview.c:741
 msgid "Custom tabs for this text"
 msgstr "Pašrocīgas tabulācijas šim tekstam"
 
+#: ../gtk/gtktexttag.c:531
 #: ../gtk/gtktexttag.c:498
 msgid "Invisible"
 msgstr "Neredzams"
 
+#: ../gtk/gtktexttag.c:532
 #: ../gtk/gtktexttag.c:499
 msgid "Whether this text is hidden."
 msgstr "Vai šis teksts ir slēpts."
 
-#: ../gtk/gtktexttag.c:513
+#: ../gtk/gtktexttag.c:546
 msgid "Paragraph background color name"
 msgstr "Paragrāfa fona krāsas nosaukums"
 
+#: ../gtk/gtktexttag.c:547
 #: ../gtk/gtktexttag.c:514
 msgid "Paragraph background color as a string"
-msgstr "Paragrāfa fona krāsa kā virkne"
+msgstr "Rindkopas fona krāsa kā virkne"
 
+#: ../gtk/gtktexttag.c:561
 #: ../gtk/gtktexttag.c:529
 msgid "Paragraph background color"
-msgstr "Paragrāfa fona krāsa"
-
-#: ../gtk/gtktexttag.c:530
-msgid "Paragraph background color as a (possibly unallocated) GdkColor"
-msgstr "Paragrāfa fona krāsa kā (iespējams nenovietota) GdkColor"
+msgstr "Rindkopas fona krāsa"
 
+#: ../gtk/gtktexttag.c:562
+#| msgid "Paragraph background color as a string"
+msgid "Paragraph background color as a GdkColor"
+msgstr "Rindkopas fona krāsa kā GdkColor"
+
+#: ../gtk/gtktexttag.c:576
+#| msgid "Paragraph background color"
+msgid "Paragraph background rgba"
+msgstr "Rindkopas fons"
+
+#: ../gtk/gtktexttag.c:577
+#| msgid "Paragraph background color as a string"
+msgid "Paragraph background rgba as a GdkRGBA"
+msgstr "Paragrāfa fona rgba kā GdkRGBA"
+
+#: ../gtk/gtktexttag.c:595
+#: ../gtk/gtkcellrenderertext.c:651
 #: ../gtk/gtktexttag.c:548
 msgid "Margin Accumulates"
-msgstr ""
+msgstr "Malu akumulācija"
 
+#: ../gtk/gtktexttag.c:596
 #: ../gtk/gtktexttag.c:549
 msgid "Whether left and right margins accumulate."
-msgstr ""
+msgstr "Vai kreisā un labā mala akumulējas."
 
-#: ../gtk/gtktexttag.c:562
+#: ../gtk/gtktexttag.c:609
 msgid "Background full height set"
 msgstr "Fona pilna augstuma iestādījums"
 
+#: ../gtk/gtktexttag.c:610
 #: ../gtk/gtktexttag.c:563
 msgid "Whether this tag affects background height"
 msgstr "Vai šis birka ietekmē fona augstumu"
 
+#: ../gtk/gtktexttag.c:649
 #: ../gtk/gtktexttag.c:602
 msgid "Justification set"
-msgstr "Izlīdzinājuma iestādījums"
+msgstr "Izlīdzinājuma iestatījums"
 
+#: ../gtk/gtktexttag.c:650
 #: ../gtk/gtktexttag.c:603
 msgid "Whether this tag affects paragraph justification"
 msgstr "Vai šis birka ietekmē rindkopu izlīdzināšanu"
 
-#: ../gtk/gtktexttag.c:610
+#: ../gtk/gtktexttag.c:657
 msgid "Left margin set"
 msgstr "Kreisās malas iestādījums"
 
+#: ../gtk/gtktexttag.c:658
 #: ../gtk/gtktexttag.c:611
 msgid "Whether this tag affects the left margin"
 msgstr "Vai šis birka ietekmē kreiso malu"
 
-#: ../gtk/gtktexttag.c:614
+#: ../gtk/gtktexttag.c:661
 msgid "Indent set"
 msgstr "Atkāpes iestādījums"
 
+#: ../gtk/gtktexttag.c:662
 #: ../gtk/gtktexttag.c:615
 msgid "Whether this tag affects indentation"
 msgstr "Vai šis birka ietekmē atkāpes"
 
-#: ../gtk/gtktexttag.c:622
+#: ../gtk/gtktexttag.c:669
 msgid "Pixels above lines set"
 msgstr "Pikseļu virs rindiņām iestādījums"
 
-#: ../gtk/gtktexttag.c:623 ../gtk/gtktexttag.c:627
+#: ../gtk/gtktexttag.c:670 ../gtk/gtktexttag.c:674
+#: ../gtk/gtktexttag.c:623
+#: ../gtk/gtktexttag.c:627
 msgid "Whether this tag affects the number of pixels above lines"
 msgstr "Vai šis birka ietekmē pikseļu skaitu virs rindiņām"
 
-#: ../gtk/gtktexttag.c:626
+#: ../gtk/gtktexttag.c:673
 msgid "Pixels below lines set"
 msgstr "Pikseļu zem rindiņām iestādījums"
 
-#: ../gtk/gtktexttag.c:630
+#: ../gtk/gtktexttag.c:677
 msgid "Pixels inside wrap set"
 msgstr "Pikseļu iekšpusē iekļaušanas iestādījums"
 
+#: ../gtk/gtktexttag.c:678
 #: ../gtk/gtktexttag.c:631
 msgid "Whether this tag affects the number of pixels between wrapped lines"
 msgstr "Vai šis birka ietekmē pikseļu daudzumu starp aplauztām rindiņām"
 
-#: ../gtk/gtktexttag.c:638
+#: ../gtk/gtktexttag.c:685
 msgid "Right margin set"
 msgstr "Labās malas iestādījums"
 
+#: ../gtk/gtktexttag.c:686
 #: ../gtk/gtktexttag.c:639
 msgid "Whether this tag affects the right margin"
 msgstr "Vai šis birka ietekmē labo malu"
 
-#: ../gtk/gtktexttag.c:646
+#: ../gtk/gtktexttag.c:693
 msgid "Wrap mode set"
 msgstr "Aplaušanas režīma iestādījums"
 
+#: ../gtk/gtktexttag.c:694
 #: ../gtk/gtktexttag.c:647
 msgid "Whether this tag affects line wrap mode"
 msgstr "Vai šis birka ietekmē rindiņu aplaušanas režīmu"
 
-#: ../gtk/gtktexttag.c:650
+#: ../gtk/gtktexttag.c:697
 msgid "Tabs set"
 msgstr "Tabulācijas iestādījums"
 
+#: ../gtk/gtktexttag.c:698
 #: ../gtk/gtktexttag.c:651
 msgid "Whether this tag affects tabs"
 msgstr "Vai šis birka ietekmē tabulācijas"
 
-#: ../gtk/gtktexttag.c:654
+#: ../gtk/gtktexttag.c:701
 msgid "Invisible set"
 msgstr "Neredzamības iestādījums"
 
+#: ../gtk/gtktexttag.c:702
 #: ../gtk/gtktexttag.c:655
 msgid "Whether this tag affects text visibility"
 msgstr "Vai šis birka ietekmē teksta redzamību"
 
-#: ../gtk/gtktexttag.c:658
+#: ../gtk/gtktexttag.c:705
 msgid "Paragraph background set"
 msgstr "Paragrāfa fona iestatījums"
 
+#: ../gtk/gtktexttag.c:706
 #: ../gtk/gtktexttag.c:659
 msgid "Whether this tag affects the paragraph background color"
-msgstr "Vai šī birka ietekmē paragrāfa fona krāsu"
+msgstr "Vai šī birka ietekmē rindkopas fona krāsu"
 
+#: ../gtk/gtktextview.c:656
 #: ../gtk/gtktextview.c:654
 msgid "Pixels Above Lines"
-msgstr "Pikseļi Virs Rindiņām"
+msgstr "Pikseļi virs rindiņām"
 
+#: ../gtk/gtktextview.c:666
 #: ../gtk/gtktextview.c:664
 msgid "Pixels Below Lines"
-msgstr "Pikseļi Zem Rindiņām"
+msgstr "Pikseļi zem rindiņām"
 
+#: ../gtk/gtktextview.c:676
 #: ../gtk/gtktextview.c:674
 msgid "Pixels Inside Wrap"
-msgstr "Pikseļu Iekšpusē Iekļaušana"
+msgstr "Pikseļu iekšpus aplaušanas"
 
+#: ../gtk/gtktextview.c:694
 #: ../gtk/gtktextview.c:692
 msgid "Wrap Mode"
-msgstr "Aplaušanas Režīms"
+msgstr "Aplaušanas režīms"
 
+#: ../gtk/gtktextview.c:712
 #: ../gtk/gtktextview.c:710
 msgid "Left Margin"
-msgstr "Kreisā Mala"
+msgstr "Kreisā mala"
 
+#: ../gtk/gtktextview.c:722
 #: ../gtk/gtktextview.c:720
 msgid "Right Margin"
-msgstr "Labā Mala"
+msgstr "Labā mala"
 
+#: ../gtk/gtktextview.c:750
 #: ../gtk/gtktextview.c:748
 msgid "Cursor Visible"
-msgstr "Kursors Redzams"
+msgstr "Kursors redzams"
 
+#: ../gtk/gtktextview.c:751
 #: ../gtk/gtktextview.c:749
 msgid "If the insertion cursor is shown"
 msgstr "Vai ievietošanas kursors tiek parādīts"
 
+#: ../gtk/gtktextview.c:758
 #: ../gtk/gtktextview.c:756
 msgid "Buffer"
 msgstr "Buferis"
 
+#: ../gtk/gtktextview.c:759
 #: ../gtk/gtktextview.c:757
 msgid "The buffer which is displayed"
 msgstr "Attēlotais buferis"
 
+#: ../gtk/gtktextview.c:767
 #: ../gtk/gtktextview.c:765
 msgid "Whether entered text overwrites existing contents"
 msgstr "Vai ievadītais teksts pārrakstīsies pāri esošajam saturam"
 
+#: ../gtk/gtktextview.c:774
 #: ../gtk/gtktextview.c:772
 msgid "Accepts tab"
 msgstr "Pieņem cilni"
 
+#: ../gtk/gtktextview.c:775
 #: ../gtk/gtktextview.c:773
 msgid "Whether Tab will result in a tab character being entered"
 msgstr "Vai cilnis parādīsies, kad cilnī ievadīs rakstzīmi"
 
+#: ../gtk/gtktextview.c:810
 #: ../gtk/gtktextview.c:808
 msgid "Error underline color"
 msgstr "Kļūdas pasvītrojuma krāsa"
 
+#: ../gtk/gtktextview.c:811
 #: ../gtk/gtktextview.c:809
 msgid "Color with which to draw error-indication underlines"
-msgstr ""
+msgstr "Krāsa, kādā zīmēt kļūdu norādošu pasvītrojumu"
 
+#: ../gtk/gtkthemingengine.c:259
 #: ../gtk/gtkthemingengine.c:249
-#, fuzzy
 #| msgid "Theme Name"
 msgid "Theming engine name"
-msgstr "Tēmas Nosaukums"
+msgstr "Tēmas dzinēja nosaukums"
 
 #: ../gtk/gtktoggleaction.c:118
 msgid "Create the same proxies as a radio action"
@@ -6573,345 +7954,385 @@ msgid "Whether the proxies for this action look like radio action proxies"
 msgstr "Vai starpnieki šai darbībai izskatās pēc radio darbību starpniekiem"
 
 #: ../gtk/gtktoggleaction.c:134
-#, fuzzy
 msgid "Whether the toggle action should be active"
-msgstr "Vai atlasei būtu jaseko norādei"
+msgstr "Vai pārslēgšanas darbībai jābūt aktīvai"
 
-#: ../gtk/gtktogglebutton.c:126 ../gtk/gtktoggletoolbutton.c:113
-#, fuzzy
+#: ../gtk/gtktogglebutton.c:179 ../gtk/gtktoggletoolbutton.c:128
+#: ../gtk/gtktogglebutton.c:126
+#: ../gtk/gtktoggletoolbutton.c:113
 msgid "If the toggle button should be pressed in"
-msgstr "Ja slēgšanas pogai jābūt nospiestai vai nav"
+msgstr "Vai pārslēgšanas pogai jābūt nospiestai"
 
+#: ../gtk/gtktogglebutton.c:187
 #: ../gtk/gtktogglebutton.c:134
 msgid "If the toggle button is in an \"in between\" state"
 msgstr "Ja slēgšanas poga ir \"starp\" stāvoklī"
 
+#: ../gtk/gtktogglebutton.c:194
 #: ../gtk/gtktogglebutton.c:141
 msgid "Draw Indicator"
-msgstr "Zīmēt Indikatoru"
+msgstr "Zīmēt indikatoru"
 
+#: ../gtk/gtktogglebutton.c:195
 #: ../gtk/gtktogglebutton.c:142
 msgid "If the toggle part of the button is displayed"
-msgstr "Ja pogas slēdzamā daļa tiek parādīta"
+msgstr "Ja pogas pārslēgšanas daļa tiek parādīta"
 
-#: ../gtk/gtktoolbar.c:489 ../gtk/gtktoolpalette.c:1069
+#: ../gtk/gtktoolbar.c:499 ../gtk/gtktoolpalette.c:1038
+#: ../gtk/gtktoolbar.c:489
+#: ../gtk/gtktoolpalette.c:1069
 msgid "Toolbar Style"
-msgstr "Rīkjoslas Stils"
+msgstr "Rīkjoslas stils"
 
+#: ../gtk/gtktoolbar.c:500
 #: ../gtk/gtktoolbar.c:490
 msgid "How to draw the toolbar"
 msgstr "Kā zīmēt rīkjoslu"
 
+#: ../gtk/gtktoolbar.c:507
 #: ../gtk/gtktoolbar.c:497
 msgid "Show Arrow"
 msgstr "Rādīt bultu"
 
+#: ../gtk/gtktoolbar.c:508
 #: ../gtk/gtktoolbar.c:498
 msgid "If an arrow should be shown if the toolbar doesn't fit"
 msgstr "Vai jārāda bulta, ja rīkjosla neietilpst"
 
+#: ../gtk/gtktoolbar.c:529
 #: ../gtk/gtktoolbar.c:519
 msgid "Size of icons in this toolbar"
 msgstr "Šīs rīkjoslas ikonu izmērs"
 
-#: ../gtk/gtktoolbar.c:534 ../gtk/gtktoolpalette.c:1055
+#: ../gtk/gtktoolbar.c:544 ../gtk/gtktoolpalette.c:1024
+#: ../gtk/gtktoolbar.c:534
+#: ../gtk/gtktoolpalette.c:1055
 msgid "Icon size set"
-msgstr "Ikonu izmēra kopa"
+msgstr "Ikonu izmēra iestatīšana"
 
-#: ../gtk/gtktoolbar.c:535 ../gtk/gtktoolpalette.c:1056
+#: ../gtk/gtktoolbar.c:545 ../gtk/gtktoolpalette.c:1025
+#: ../gtk/gtktoolbar.c:535
+#: ../gtk/gtktoolpalette.c:1056
 msgid "Whether the icon-size property has been set"
 msgstr "Vai ir iestatīta ikonu izmēra vērtība"
 
-#: ../gtk/gtktoolbar.c:544
+#: ../gtk/gtktoolbar.c:554
 msgid "Whether the item should receive extra space when the toolbar grows"
 msgstr "Vai priekšmetam būtu jāsaņem papildus vieta, kad rīkjosla aug"
 
-#: ../gtk/gtktoolbar.c:552 ../gtk/gtktoolitemgroup.c:1650
+#: ../gtk/gtktoolbar.c:562 ../gtk/gtktoolitemgroup.c:1646
+#: ../gtk/gtktoolbar.c:552
+#: ../gtk/gtktoolitemgroup.c:1650
 msgid "Whether the item should be the same size as other homogeneous items"
-msgstr "Vai prieksmetam vajadzētu būt vienādā izmērā ar līdzīgiem priekšmetiem"
+msgstr "Vai priekšmetam vajadzētu būt vienādā izmērā ar līdzīgiem priekšmetiem"
 
+#: ../gtk/gtktoolbar.c:569
 #: ../gtk/gtktoolbar.c:559
 msgid "Spacer size"
 msgstr "Starpinātāja izmērs"
 
+#: ../gtk/gtktoolbar.c:570
 #: ../gtk/gtktoolbar.c:560
 msgid "Size of spacers"
 msgstr "Starpinātāju izmērs"
 
-#: ../gtk/gtktoolbar.c:569
+#: ../gtk/gtktoolbar.c:579
 msgid "Amount of border space between the toolbar shadow and the buttons"
 msgstr "Robežas atstarpes apjoms starp rīkjoslas ēnu un pogām"
 
+#: ../gtk/gtktoolbar.c:587
 #: ../gtk/gtktoolbar.c:577
 msgid "Maximum child expand"
-msgstr "Maksimālā bērna izplešana"
+msgstr "Maksimālā bērna izvēršana"
 
-#: ../gtk/gtktoolbar.c:578
+#: ../gtk/gtktoolbar.c:588
 msgid "Maximum amount of space an expandable item will be given"
-msgstr ""
+msgstr "Maksimālais vietas daudzums, kas tiks dots izvēršamam priekšmetam"
 
+#: ../gtk/gtktoolbar.c:596
 #: ../gtk/gtktoolbar.c:586
 msgid "Space style"
 msgstr "Atstarpes stils"
 
-#: ../gtk/gtktoolbar.c:587
+#: ../gtk/gtktoolbar.c:597
 msgid "Whether spacers are vertical lines or just blank"
 msgstr "Vai atstarpes ir virtikālas līnijas vai tikai tukšumi"
 
+#: ../gtk/gtktoolbar.c:604
 #: ../gtk/gtktoolbar.c:594
 msgid "Button relief"
 msgstr "Pogas reljefs"
 
+#: ../gtk/gtktoolbar.c:605
 #: ../gtk/gtktoolbar.c:595
 msgid "Type of bevel around toolbar buttons"
-msgstr "Konusa tips ap rīkjoslas pogām"
+msgstr "Apmales tips ap rīkjoslas pogām"
 
+#: ../gtk/gtktoolbar.c:612
 #: ../gtk/gtktoolbar.c:602
 msgid "Style of bevel around the toolbar"
-msgstr "Konusa tips ap rīkjoslu"
+msgstr "Apmales tips ap rīkjoslu"
 
+#: ../gtk/gtktoolbutton.c:233
 #: ../gtk/gtktoolbutton.c:202
 msgid "Text to show in the item."
 msgstr "Teksts, ko rādīt priekšmetā."
 
+#: ../gtk/gtktoolbutton.c:240
 #: ../gtk/gtktoolbutton.c:209
 msgid ""
 "If set, an underline in the label property indicates that the next character "
 "should be used for the mnemonic accelerator key in the overflow menu"
 msgstr ""
-"Ja iestatīts, zemsvītra etiķetē norāda, ka nākamais simbols tiks izmantots "
-"kā mnemoniska paātrinājuma atslēga pārpildes izvēlnē"
+"Ja iestatīts, zemsvītra iezīmē norāda, ka nākamais simbols tiks izmantots kā "
+"mnemoniska paātrinājuma atslēga pārpildes izvēlnē"
 
+#: ../gtk/gtktoolbutton.c:247
 #: ../gtk/gtktoolbutton.c:216
 msgid "Widget to use as the item label"
-msgstr "Logdaļa, ko lietot kā priekšmeta etiķeti"
+msgstr "Logdaļa, ko lietot kā priekšmeta iezīmi"
 
+#: ../gtk/gtktoolbutton.c:253
 #: ../gtk/gtktoolbutton.c:222
 msgid "Stock Id"
 msgstr "Krājuma ID"
 
+#: ../gtk/gtktoolbutton.c:254
 #: ../gtk/gtktoolbutton.c:223
 msgid "The stock icon displayed on the item"
 msgstr "Priekšmeta krājuma ikona"
 
-#: ../gtk/gtktoolbutton.c:239
+#: ../gtk/gtktoolbutton.c:270
 msgid "Icon name"
 msgstr "Ikonas nosaukums"
 
-#: ../gtk/gtktoolbutton.c:240
+#: ../gtk/gtktoolbutton.c:271
 msgid "The name of the themed icon displayed on the item"
 msgstr "Priekšmeta tēmas ikonas nosaukums"
 
-#: ../gtk/gtktoolbutton.c:246
+#: ../gtk/gtktoolbutton.c:277
 msgid "Icon widget"
 msgstr "Ikonas logdaļa"
 
-#: ../gtk/gtktoolbutton.c:247
+#: ../gtk/gtktoolbutton.c:278
 msgid "Icon widget to display in the item"
 msgstr "Ikonas logdaļa, ko attēlot priekšmetā"
 
+#: ../gtk/gtktoolbutton.c:291
 #: ../gtk/gtktoolbutton.c:260
 msgid "Icon spacing"
-msgstr "Ikonu atstarpes"
+msgstr "Ikonas atstarpe"
 
+#: ../gtk/gtktoolbutton.c:292
 #: ../gtk/gtktoolbutton.c:261
 msgid "Spacing in pixels between the icon and label"
-msgstr ""
+msgstr "Atstarpe starp ikonu un iezīmi, pikseļos"
 
+#: ../gtk/gtktoolitem.c:209
+#: ../gtk/gtkaction.c:365
 #: ../gtk/gtktoolitem.c:210
 msgid ""
 "Whether the toolbar item is considered important. When TRUE, toolbar buttons "
 "show text in GTK_TOOLBAR_BOTH_HORIZ mode"
 msgstr ""
-"Vai rīksjoslas sadaļa ir jāuzskata par nopietnu. Ja PATIESS, rīkjoslas "
-"pogas, rada tekstu GTK_TOOLBAR_BOTH_HORIZ režīmā"
+"Vai rīkjoslas sadaļa ir jāuzskata par svarīgu. Ja PATIESS, rīkjoslas pogas, "
+"rada tekstu GTK_TOOLBAR_BOTH_HORIZ režīmā"
 
+#: ../gtk/gtktoolitemgroup.c:1593
 #: ../gtk/gtktoolitemgroup.c:1597
-#, fuzzy
 msgid "The human-readable title of this item group"
-msgstr "Ikonas izmērs"
+msgstr "Cilvēkam lasāmas šīs priekšmetu grupas virsraksts"
 
+#: ../gtk/gtktoolitemgroup.c:1600
 #: ../gtk/gtktoolitemgroup.c:1604
-#, fuzzy
 msgid "A widget to display in place of the usual label"
-msgstr "Logdaļa, ko attēlot parasta rāmja iezīmes vietā"
+msgstr "Logdaļa, ko attēlot parastās iezīmes vietā"
 
+#: ../gtk/gtktoolitemgroup.c:1606
 #: ../gtk/gtktoolitemgroup.c:1610
 msgid "Collapsed"
-msgstr ""
+msgstr "Sakļauts"
 
+#: ../gtk/gtktoolitemgroup.c:1607
 #: ../gtk/gtktoolitemgroup.c:1611
-#, fuzzy
 msgid "Whether the group has been collapsed and items are hidden"
-msgstr "Vai paplašinātājs ir bijis atvērts, atklājot bērna logdaļu"
+msgstr "Vai grupa ir sakļauta un priekšmeti paslēpti"
 
+#: ../gtk/gtktoolitemgroup.c:1613
 #: ../gtk/gtktoolitemgroup.c:1617
-#, fuzzy
 msgid "ellipsize"
-msgstr "Eliptizēt"
+msgstr "īsināt ar daudzpunkti"
 
+#: ../gtk/gtktoolitemgroup.c:1614
 #: ../gtk/gtktoolitemgroup.c:1618
 msgid "Ellipsize for item group headers"
-msgstr ""
+msgstr "Īsināt ar daudzpunkti priekšmeta grupas galvenei"
 
+#: ../gtk/gtktoolitemgroup.c:1620
 #: ../gtk/gtktoolitemgroup.c:1624
-#, fuzzy
 msgid "Header Relief"
-msgstr "Galvenes attēls"
+msgstr "Galvenes reljefs"
 
+#: ../gtk/gtktoolitemgroup.c:1621
 #: ../gtk/gtktoolitemgroup.c:1625
-#, fuzzy
 msgid "Relief of the group header button"
-msgstr "Rādīt kolonnas galvenes pogas"
+msgstr "Grupas galvenes pogas reljefs"
 
+#: ../gtk/gtktoolitemgroup.c:1636
 #: ../gtk/gtktoolitemgroup.c:1640
-#, fuzzy
 msgid "Header Spacing"
-msgstr "Galvenes papildinājums"
+msgstr "Galvenes atstarpes"
 
+#: ../gtk/gtktoolitemgroup.c:1637
 #: ../gtk/gtktoolitemgroup.c:1641
-#, fuzzy
 msgid "Spacing between expander arrow and caption"
-msgstr "Atstarpes ap izvērsēja bultu"
+msgstr "Atstarpes starp izvērsēja bultu un parakstu"
 
+#: ../gtk/gtktoolitemgroup.c:1653
 #: ../gtk/gtktoolitemgroup.c:1657
-#, fuzzy
 msgid "Whether the item should receive extra space when the group grows"
-msgstr "Vai priekšmetam būtu jāsaņem papildus vieta, kad rīkjosla aug"
+msgstr "Vai priekšmetam būtu jāsaņem papildus vieta, kad grupa aug"
 
+#: ../gtk/gtktoolitemgroup.c:1660
 #: ../gtk/gtktoolitemgroup.c:1664
-#, fuzzy
 msgid "Whether the item should fill the available space"
-msgstr "Vai visiem bērniem jabūt pēc viena izmēra"
+msgstr "Vai priekšmetiem būtu jāaizņem pieejamā vieta"
 
+#: ../gtk/gtktoolitemgroup.c:1666
 #: ../gtk/gtktoolitemgroup.c:1670
 msgid "New Row"
-msgstr ""
+msgstr "Jauna rinda"
 
+#: ../gtk/gtktoolitemgroup.c:1667
 #: ../gtk/gtktoolitemgroup.c:1671
-#, fuzzy
 msgid "Whether the item should start a new row"
-msgstr "Vai izvēlnes priekšmetu rādīt ar numuru"
+msgstr "Vai priekšmetam vajadzētu sākt jaunu rindu"
 
+#: ../gtk/gtktoolitemgroup.c:1674
 #: ../gtk/gtktoolitemgroup.c:1678
-#, fuzzy
 msgid "Position of the item within this group"
-msgstr "Atzīmes pozīcija uz mērjoslas"
+msgstr "Priekšmeta novietojums šajā grupā"
 
+#: ../gtk/gtktoolpalette.c:1009
 #: ../gtk/gtktoolpalette.c:1040
-#, fuzzy
 msgid "Size of icons in this tool palette"
-msgstr "Šīs rīkjoslas ikonu izmērs"
+msgstr "Ikonu izmērs rīku paletē"
 
-#: ../gtk/gtktoolpalette.c:1070
-#, fuzzy
+#: ../gtk/gtktoolpalette.c:1039
+#: ../gtk/gtkimage.c:269
+#: ../gtk/gtkscalebutton.c:227
+#: ../gtk/gtktoolbar.c:518
 msgid "Style of items in the tool palette"
-msgstr "Konusa tips ap rīkjoslu"
+msgstr "Priekšmetu stils rīku paletē"
 
+#: ../gtk/gtktoolpalette.c:1055
+#: ../gtk/gtktoolbar.c:534
 #: ../gtk/gtktoolpalette.c:1086
 msgid "Exclusive"
-msgstr ""
+msgstr "Ekskluzīvs"
 
+#: ../gtk/gtktoolpalette.c:1056
+#: ../gtk/gtktoolbar.c:535
 #: ../gtk/gtktoolpalette.c:1087
-#, fuzzy
 msgid "Whether the item group should be the only expanded at a given time"
-msgstr "Vai izvēlnes priekšmetu rādīt ar numuru"
+msgstr ""
+"Vai priekšmetu grupai vajadzētu būt vienīgajai izvērstai vienā laika momentā"
 
+#: ../gtk/gtktoolpalette.c:1071
 #: ../gtk/gtktoolpalette.c:1102
-#, fuzzy
-msgid ""
-"Whether the item group should receive extra space when the palette grows"
-msgstr "Vai bērnam būtu jāsaņem papildus vieta, ja vecāks pieaug"
+msgid "Whether the item group should receive extra space when the palette grows"
+msgstr "Vai priekšmetu grupai būtu jāsaņem papildus vieta, kad palete aug"
 
-#: ../gtk/gtktrayicon-x11.c:135
-#, fuzzy
+#: ../gtk/gtktrayicon-x11.c:138
 msgid "Foreground color for symbolic icons"
-msgstr "Priekšplāna krāsa kā virkne"
+msgstr "Priekšplāna krāsa simboliskām ikonām"
 
-#: ../gtk/gtktrayicon-x11.c:142
-#, fuzzy
+#: ../gtk/gtktrayicon-x11.c:145
 msgid "Error color"
-msgstr "Kursora krāsa"
+msgstr "Kļūdas krāsa"
 
-#: ../gtk/gtktrayicon-x11.c:143
+#: ../gtk/gtktrayicon-x11.c:146
 msgid "Error color for symbolic icons"
-msgstr ""
+msgstr "Kļūdas krāsas simboliskām ikonām"
 
-#: ../gtk/gtktrayicon-x11.c:150
-#, fuzzy
+#: ../gtk/gtktrayicon-x11.c:153
 msgid "Warning color"
-msgstr "Fona krāsa"
+msgstr "Brīdinājuma krāsa"
 
-#: ../gtk/gtktrayicon-x11.c:151
+#: ../gtk/gtktrayicon-x11.c:154
 msgid "Warning color for symbolic icons"
-msgstr ""
+msgstr "Brīdinājuma krāsa simboliskām ikonām"
 
-#: ../gtk/gtktrayicon-x11.c:158
-#, fuzzy
+#: ../gtk/gtktrayicon-x11.c:161
 msgid "Success color"
-msgstr "Kursora krāsa"
+msgstr "Veiksmes krāsa"
 
-#: ../gtk/gtktrayicon-x11.c:159
+#: ../gtk/gtktrayicon-x11.c:162
 msgid "Success color for symbolic icons"
-msgstr ""
+msgstr "Veiksmes krāsa simboliskām ikonām"
 
-#: ../gtk/gtktrayicon-x11.c:167
-#, fuzzy
+#: ../gtk/gtktrayicon-x11.c:170
 msgid "Padding that should be put around icons in the tray"
-msgstr "Vai pie elementa rādīt ikonu"
+msgstr "Papildinājums, ko vajadzētu novietot ap ikonām paplātē"
+
+#: ../gtk/gtktrayicon-x11.c:179
+#| msgid "Icon Sizes"
+msgid "Icon Size"
+msgstr "Ikonu izmēri"
+
+#: ../gtk/gtktrayicon-x11.c:180
+msgid "The pixel size that icons should be forced to, or zero"
+msgstr "Pikseļu izmērs, kuros ikonām jāiekļaujas, vai nulle"
 
 #: ../gtk/gtktreemenu.c:287
-#, fuzzy
 #| msgid "TreeView Model"
 msgid "TreeMenu model"
-msgstr "TreeView Modelis"
+msgstr "TreeMenu modelis"
 
 #: ../gtk/gtktreemenu.c:288
-#, fuzzy
 #| msgid "The model for the tree view"
 msgid "The model for the tree menu"
-msgstr "Koka skata modelis"
+msgstr "Koka izvēlnes modelis"
 
 #: ../gtk/gtktreemenu.c:310
 msgid "TreeMenu root row"
-msgstr ""
+msgstr "TreeMenu saknes rinda"
 
 #: ../gtk/gtktreemenu.c:311
 msgid "The TreeMenu will display children of the specified root"
-msgstr ""
+msgstr "TreeMenu attēlos bērnus norādītajai saknei"
 
 #: ../gtk/gtktreemenu.c:344
-#, fuzzy
 #| msgid "Tearoff Title"
 msgid "Tearoff"
-msgstr "Izslēgšanas Virsraksts"
+msgstr "Noplēšams"
 
 #: ../gtk/gtktreemenu.c:345
-#, fuzzy
 msgid "Whether the menu has a tearoff item"
-msgstr "Vai logdaļai ir ievades fokuss"
+msgstr "Vai izvēlnei ir noplēšams priekšmets"
 
 #: ../gtk/gtktreemenu.c:361
-#, fuzzy
 #| msgid "Wrap width"
 msgid "Wrap Width"
-msgstr "Apliekuma platums"
+msgstr "Aplaušanas platums"
 
 #: ../gtk/gtktreemenu.c:362
 msgid "Wrap width for laying out items in a grid"
-msgstr ""
+msgstr "Aplaušanas platums režģī izkārtotajiem priekšmetiem"
 
+#: ../gtk/gtktreemodelsort.c:419
 #: ../gtk/gtktreemodelsort.c:312
 msgid "TreeModelSort Model"
-msgstr "TreeModelSort Modelis"
+msgstr "TreeModelSort modelis"
 
+#: ../gtk/gtktreemodelsort.c:420
 #: ../gtk/gtktreemodelsort.c:313
 msgid "The model for the TreeModelSort to sort"
-msgstr "Modelis KokaModelisKārtot, ko kārtot"
+msgstr "Modelis TreeModelSort, ko kārtot"
 
 #: ../gtk/gtktreeview.c:985
 msgid "TreeView Model"
-msgstr "TreeView Modelis"
+msgstr "TreeView modelis"
 
 #: ../gtk/gtktreeview.c:986
 msgid "The model for the tree view"
@@ -6927,7 +8348,7 @@ msgstr "Rādīt kolonnas galvenes pogas"
 
 #: ../gtk/gtktreeview.c:1006
 msgid "Headers Clickable"
-msgstr "Galvenes Klikšķināmas"
+msgstr "Galvenes klikšķināmas"
 
 #: ../gtk/gtktreeview.c:1007
 msgid "Column headers respond to click events"
@@ -6935,35 +8356,35 @@ msgstr "Kolonnu galvenes atbild klikšķu notikumiem"
 
 #: ../gtk/gtktreeview.c:1014
 msgid "Expander Column"
-msgstr "Paplašinātāja Kolonna"
+msgstr "Izvērsēja kolonna"
 
 #: ../gtk/gtktreeview.c:1015
 msgid "Set the column for the expander column"
-msgstr "Iestatīt kolonnu kā paplašinātāja kolonnu"
+msgstr "Iestatīt kolonnu kā izvērsēja kolonnu"
 
 #: ../gtk/gtktreeview.c:1030
 msgid "Rules Hint"
-msgstr "Robežsvītru Mājiens"
+msgstr "Robežsvītru mājiens"
 
 #: ../gtk/gtktreeview.c:1031
 msgid "Set a hint to the theme engine to draw rows in alternating colors"
-msgstr "Iestatīt mājienu tēmu dzinējam zīmēt rindas mainīgās krāsās"
+msgstr "Iestatīt mājienu tēmu dzinējam, lai tas zīmētu rindas mainīgās krāsās"
 
 #: ../gtk/gtktreeview.c:1038
 msgid "Enable Search"
-msgstr "Aktivizēt Meklēšanu"
+msgstr "Aktivizēt meklēšanu"
 
 #: ../gtk/gtktreeview.c:1039
 msgid "View allows user to search through columns interactively"
-msgstr "Skats ļauj lietotājam caurmeklēt kolonnu interaktīvi"
+msgstr "Skats ļauj lietotājam meklēt cauri kolonnām interaktīvi"
 
 #: ../gtk/gtktreeview.c:1046
 msgid "Search Column"
-msgstr "Meklēšanas Kolonna"
+msgstr "Meklēšanas kolonna"
 
 #: ../gtk/gtktreeview.c:1047
 msgid "Model column to search through during interactive search"
-msgstr ""
+msgstr "Modeļa kolonna, kurai meklēt cauri interaktīvās meklēšanas laikā"
 
 #: ../gtk/gtktreeview.c:1067
 msgid "Fixed Height Mode"
@@ -6971,56 +8392,55 @@ msgstr "Fiksēta augstuma režīms"
 
 #: ../gtk/gtktreeview.c:1068
 msgid "Speeds up GtkTreeView by assuming that all rows have the same height"
-msgstr ""
-"Paātrina GtkTreeView, pieņemot, ka visām rindām piemīt vienāds augstums"
+msgstr "Paātrina GtkTreeView, pieņemot, ka visām rindām piemīt vienāds augstums"
 
 #: ../gtk/gtktreeview.c:1088
 msgid "Hover Selection"
-msgstr "Svārstību atlase"
+msgstr "Virs-novietošanas atlase"
 
 #: ../gtk/gtktreeview.c:1089
 msgid "Whether the selection should follow the pointer"
-msgstr "Vai atlasei būtu jaseko norādei"
+msgstr "Vai atlasei būtu jāseko rādītājam"
 
 #: ../gtk/gtktreeview.c:1108
 msgid "Hover Expand"
-msgstr "Svārstību paplašināšanās"
+msgstr "Virs-novietošanas izvēršana"
 
 #: ../gtk/gtktreeview.c:1109
 msgid ""
 "Whether rows should be expanded/collapsed when the pointer moves over them"
 msgstr ""
-"Vai rindām vajadzētu paplašināties/adalīties, kad peles kursors tām pāriet "
+"Vai rindām vajadzētu izvērsties/sakļauties, kad peles kursors tām pāriet "
 "pāri"
 
 #: ../gtk/gtktreeview.c:1123
 msgid "Show Expanders"
-msgstr "Rādīt izpletējus"
+msgstr "Rādīt izvērsējus"
 
 #: ../gtk/gtktreeview.c:1124
 msgid "View has expanders"
-msgstr "Skatam ir izpletēji"
+msgstr "Skatam ir izvērsēji"
 
 #: ../gtk/gtktreeview.c:1138
 msgid "Level Indentation"
-msgstr "Līmeņa atvirze"
+msgstr "Līmeņa atkāpe"
 
 #: ../gtk/gtktreeview.c:1139
 msgid "Extra indentation for each level"
-msgstr ""
+msgstr "Papildu atkāpe katram līmenim"
 
 #: ../gtk/gtktreeview.c:1148
 msgid "Rubber Banding"
-msgstr "Gumijas sasaiste"
+msgstr "Elastīgā sasaiste"
 
 #: ../gtk/gtktreeview.c:1149
 msgid ""
 "Whether to enable selection of multiple items by dragging the mouse pointer"
-msgstr ""
+msgstr "Vai aktivēt izvēlēšanos no vairākiem priekšmetiem, velkot peles rādītāju"
 
 #: ../gtk/gtktreeview.c:1156
 msgid "Enable Grid Lines"
-msgstr "Aktivizēt režģa līnijas"
+msgstr "Aktivēt režģa līnijas"
 
 #: ../gtk/gtktreeview.c:1157
 msgid "Whether grid lines should be drawn in the tree view"
@@ -7028,7 +8448,7 @@ msgstr "Vai zīmēt koka režģa līnijas koka skatā"
 
 #: ../gtk/gtktreeview.c:1165
 msgid "Enable Tree Lines"
-msgstr "Aktivizēt koka līnijas"
+msgstr "Aktivēt koka līnijas"
 
 #: ../gtk/gtktreeview.c:1166
 msgid "Whether tree lines should be drawn in the tree view"
@@ -7036,11 +8456,11 @@ msgstr "Vai koka skatā zīmēt koka līnijas"
 
 #: ../gtk/gtktreeview.c:1174
 msgid "The column in the model containing the tooltip texts for the rows"
-msgstr ""
+msgstr "Kolonna modelī, kas satur paskaidres tekstu rindām"
 
 #: ../gtk/gtktreeview.c:1196
 msgid "Vertical Separator Width"
-msgstr "Verikālā Atdalītāja Platums"
+msgstr "Vertikālā atdalītāja platums"
 
 #: ../gtk/gtktreeview.c:1197
 msgid "Vertical space between cells.  Must be an even number"
@@ -7048,7 +8468,7 @@ msgstr "Vertikālā atstarpe starp šūnām. Jābūt pāra skaitlim"
 
 #: ../gtk/gtktreeview.c:1205
 msgid "Horizontal Separator Width"
-msgstr "Horizontālā Atdalītāja Platums"
+msgstr "Horizontālā atdalītāja platums"
 
 #: ../gtk/gtktreeview.c:1206
 msgid "Horizontal space between cells.  Must be an even number"
@@ -7056,7 +8476,7 @@ msgstr "Horizontālā atstarpe starp šūnām. Jābūt pāra skaitlim"
 
 #: ../gtk/gtktreeview.c:1214
 msgid "Allow Rules"
-msgstr "Atļaut Robežsvītras"
+msgstr "Atļaut robežsvītras"
 
 #: ../gtk/gtktreeview.c:1215
 msgid "Allow drawing of alternating color rows"
@@ -7064,15 +8484,15 @@ msgstr "Atļaut zīmēt mainīgu krāsu rindas"
 
 #: ../gtk/gtktreeview.c:1221
 msgid "Indent Expanders"
-msgstr "Atkāpes Paplašinātājiem"
+msgstr "Atkāpes izvērsējiem"
 
 #: ../gtk/gtktreeview.c:1222
 msgid "Make the expanders indented"
-msgstr "Salikt atkāpes paplašinātājiem"
+msgstr "Pielikt atkāpes izvērsējiem"
 
 #: ../gtk/gtktreeview.c:1228
 msgid "Even Row Color"
-msgstr "Pāra Rindas Krāsa"
+msgstr "Pāra rindu krāsa"
 
 #: ../gtk/gtktreeview.c:1229
 msgid "Color to use for even rows"
@@ -7080,7 +8500,7 @@ msgstr "Krāsa, kādu lietot pāra rindām"
 
 #: ../gtk/gtktreeview.c:1235
 msgid "Odd Row Color"
-msgstr "Nepāra Rindas Krāsa"
+msgstr "Nepāra rindu krāsa"
 
 #: ../gtk/gtktreeview.c:1236
 msgid "Color to use for odd rows"
@@ -7108,7 +8528,7 @@ msgstr "Režģa līniju raksts"
 
 #: ../gtk/gtktreeview.c:1257
 msgid "Dash pattern used to draw the tree view grid lines"
-msgstr "Svītru raksts, ko lietot zīmejot koka režģa līnijas"
+msgstr "Svītru raksts, ko lietot zīmējot koka režģa līnijas"
 
 #: ../gtk/gtktreeview.c:1263
 msgid "Tree line pattern"
@@ -7116,117 +8536,152 @@ msgstr "Koka līniju raksts"
 
 #: ../gtk/gtktreeview.c:1264
 msgid "Dash pattern used to draw the tree view lines"
-msgstr "Svītru raksts, ko lietot zīmejot koka aplūkošanas līnijas"
+msgstr "Svītru raksts, ko lietot zīmējot koka skata līnijas"
 
+#: ../gtk/gtktreeviewcolumn.c:249
 #: ../gtk/gtktreeviewcolumn.c:247
 msgid "Whether to display the column"
-msgstr "Vai parādīt kolonnu"
+msgstr "Vai rādīt kolonnu"
 
-#: ../gtk/gtktreeviewcolumn.c:254 ../gtk/gtkwindow.c:642
+#: ../gtk/gtktreeviewcolumn.c:256 ../gtk/gtkwindow.c:648
+#: ../gtk/gtktreeviewcolumn.c:254
+#: ../gtk/gtkwindow.c:646
 msgid "Resizable"
-msgstr "Maināma"
+msgstr "Maināma izmēra"
 
+#: ../gtk/gtktreeviewcolumn.c:257
 #: ../gtk/gtktreeviewcolumn.c:255
 msgid "Column is user-resizable"
 msgstr "Kolonnas lielums ir lietotājam maināms"
 
+#: ../gtk/gtktreeviewcolumn.c:265
+#| msgid "Current width of the column"
+msgid "Current X position of the column"
+msgstr "Pašreizējais kolonnas X pozīcija"
+
+#: ../gtk/gtktreeviewcolumn.c:275
 #: ../gtk/gtktreeviewcolumn.c:263
 msgid "Current width of the column"
 msgstr "Pašreizējais kolonnas platums"
 
+#: ../gtk/gtktreeviewcolumn.c:292
 #: ../gtk/gtktreeviewcolumn.c:280
 msgid "Sizing"
 msgstr "Lielums"
 
+#: ../gtk/gtktreeviewcolumn.c:293
 #: ../gtk/gtktreeviewcolumn.c:281
 msgid "Resize mode of the column"
 msgstr "Kolonnas izmēra maiņas režīms"
 
+#: ../gtk/gtktreeviewcolumn.c:301
 #: ../gtk/gtktreeviewcolumn.c:289
 msgid "Fixed Width"
-msgstr "Fiksēts Platums"
+msgstr "Fiksēts platums"
 
+#: ../gtk/gtktreeviewcolumn.c:302
 #: ../gtk/gtktreeviewcolumn.c:290
 msgid "Current fixed width of the column"
 msgstr "Pašreizējais fiksētais kolonnas platums"
 
+#: ../gtk/gtktreeviewcolumn.c:312
 #: ../gtk/gtktreeviewcolumn.c:300
 msgid "Minimum allowed width of the column"
 msgstr "Kolonnas minimāli atļautais platums"
 
+#: ../gtk/gtktreeviewcolumn.c:321
 #: ../gtk/gtktreeviewcolumn.c:309
 msgid "Maximum Width"
-msgstr "Maksimālais Platums"
+msgstr "Maksimālais platums"
 
+#: ../gtk/gtktreeviewcolumn.c:322
 #: ../gtk/gtktreeviewcolumn.c:310
 msgid "Maximum allowed width of the column"
 msgstr "Kolonnas maksimāli atļautais platums"
 
+#: ../gtk/gtktreeviewcolumn.c:332
 #: ../gtk/gtktreeviewcolumn.c:320
 msgid "Title to appear in column header"
 msgstr "Virsraksts, kas parādās kolonnas galvenē"
 
+#: ../gtk/gtktreeviewcolumn.c:340
 #: ../gtk/gtktreeviewcolumn.c:328
 msgid "Column gets share of extra width allocated to the widget"
-msgstr "Klonna iegūst papildus brīvo platumu no logdaļas"
+msgstr "Kolonna iegūst papildus brīvo platumu no logdaļas"
 
+#: ../gtk/gtktreeviewcolumn.c:347
 #: ../gtk/gtktreeviewcolumn.c:335
 msgid "Clickable"
 msgstr "Klikšķināms"
 
+#: ../gtk/gtktreeviewcolumn.c:348
 #: ../gtk/gtktreeviewcolumn.c:336
 msgid "Whether the header can be clicked"
 msgstr "Vai galvene var tikt klikšķināta"
 
+#: ../gtk/gtktreeviewcolumn.c:356
 #: ../gtk/gtktreeviewcolumn.c:344
 msgid "Widget"
 msgstr "Logdaļa"
 
+#: ../gtk/gtktreeviewcolumn.c:357
 #: ../gtk/gtktreeviewcolumn.c:345
 msgid "Widget to put in column header button instead of column title"
 msgstr "Logdaļa, ko likt kolonnas galvenes pogā kolonnas nosaukuma vietā"
 
+#: ../gtk/gtktreeviewcolumn.c:365
 #: ../gtk/gtktreeviewcolumn.c:353
 msgid "X Alignment of the column header text or widget"
-msgstr "X Centrējums kolonnas galvenes tekstam vai logdaļai"
+msgstr "X līdzinājums kolonnas galvenes tekstam vai logdaļai"
 
+#: ../gtk/gtktreeviewcolumn.c:375
 #: ../gtk/gtktreeviewcolumn.c:363
 msgid "Whether the column can be reordered around the headers"
 msgstr "Vai kolonna var tikt pārkārtota ap galvenēm"
 
+#: ../gtk/gtktreeviewcolumn.c:382
 #: ../gtk/gtktreeviewcolumn.c:370
 msgid "Sort indicator"
-msgstr "Kārtošanas indikātors"
+msgstr "Kārtošanas indikators"
 
+#: ../gtk/gtktreeviewcolumn.c:383
 #: ../gtk/gtktreeviewcolumn.c:371
 msgid "Whether to show a sort indicator"
-msgstr "Vai rādīt kārtošanas indikātoru"
+msgstr "Vai rādīt kārtošanas indikatoru"
 
+#: ../gtk/gtktreeviewcolumn.c:390
 #: ../gtk/gtktreeviewcolumn.c:378
 msgid "Sort order"
 msgstr "Kārtošanas secība"
 
+#: ../gtk/gtktreeviewcolumn.c:391
 #: ../gtk/gtktreeviewcolumn.c:379
 msgid "Sort direction the sort indicator should indicate"
-msgstr "Kārtošanas virziens, kurā kārtošanas indikātoram būtu jārāda"
+msgstr "Kārtošanas virziens, kurā kārtošanas indikatoram būtu jārāda"
 
+#: ../gtk/gtktreeviewcolumn.c:407
 #: ../gtk/gtktreeviewcolumn.c:395
-#, fuzzy
 msgid "Sort column ID"
-msgstr "Teksta kolonna"
+msgstr "Kārtošanas kolonnas ID"
 
+#: ../gtk/gtktreeviewcolumn.c:408
 #: ../gtk/gtktreeviewcolumn.c:396
 msgid "Logical sort column ID this column sorts on when selected for sorting"
 msgstr ""
+"Loģiskās kārtošanas kolonnas ID, ko šī kolonna kārtos, kad tiek izvēlēta "
+"kārtošanai"
 
+#: ../gtk/gtkuimanager.c:480
 #: ../gtk/gtkuimanager.c:226
 msgid "Whether tearoff menu items should be added to menus"
 msgstr "Vai pārceļamo izvēlni vajadzētu pievienot izvēlnēm"
 
+#: ../gtk/gtkuimanager.c:487
 #: ../gtk/gtkuimanager.c:233
 msgid "Merged UI definition"
 msgstr "Apvienotā UI definīcija"
 
+#: ../gtk/gtkuimanager.c:488
 #: ../gtk/gtkuimanager.c:234
 msgid "An XML string describing the merged UI"
 msgstr "XML virkne, kas apraksta apvienoto UI"
@@ -7236,37 +8691,45 @@ msgid "Determines how the shadowed box around the viewport is drawn"
 msgstr "Nosaka, kā ēnota kaste ap skatpunktu tiek zīmēta"
 
 #: ../gtk/gtkvolumebutton.c:156
-#, fuzzy
 msgid "Use symbolic icons"
-msgstr "Priekšplāna krāsa kā virkne"
+msgstr "Izmantot simboliskās ikonas"
 
 #: ../gtk/gtkvolumebutton.c:157
-#, fuzzy
 #| msgid "Whether the cursor should blink"
 msgid "Whether to use symbolic icons"
-msgstr "Vai kursoram būtu jāmirgo"
+msgstr "Vai izmantot simboliskās ikonas"
 
-#: ../gtk/gtkwidget.c:903
+#: ../gtk/gtkwidget.c:948
+#: ../gtk/gtkwidget.c:931
 msgid "Widget name"
 msgstr "Logdaļas nosaukums"
 
-#: ../gtk/gtkwidget.c:904
+#: ../gtk/gtkwidget.c:949
+#: ../gtk/gtkwidget.c:932
 msgid "The name of the widget"
 msgstr "Logdaļas nosaukums"
 
-#: ../gtk/gtkwidget.c:910
+#: ../gtk/gtkwidget.c:955
+#: ../gtk/gtkwidget.c:938
 msgid "Parent widget"
 msgstr "Vecāka logdaļa"
 
-#: ../gtk/gtkwidget.c:911
+#: ../gtk/gtkwidget.c:956
+#: ../gtk/gtkwidget.c:939
 msgid "The parent widget of this widget. Must be a Container widget"
-msgstr "Vecāka logdaļa šai logdaļai. Jābūt Saturētāja logdaļai"
+msgstr "Vecāka logdaļa šai logdaļai. Jābūt saturētāja logdaļai"
 
-#: ../gtk/gtkwidget.c:918
+#: ../gtk/gtkwidget.c:963
+#: ../gtk/gtkwidget.c:946
 msgid "Width request"
 msgstr "Platuma pieprasījums"
 
-#: ../gtk/gtkwidget.c:919
+#: ../gtk/gtkwidget.c:964
+#: ../gtk/gtkaction.c:388
+#: ../gtk/gtkactiongroup.c:242
+#: ../gtk/gtkstatusicon.c:280
+#: ../gtk/gtktreeviewcolumn.c:246
+#: ../gtk/gtkwidget.c:947
 msgid ""
 "Override for width request of the widget, or -1 if natural request should be "
 "used"
@@ -7274,11 +8737,11 @@ msgstr ""
 "Neievērot logdaļas platuma pieprasījumu, vai -1, ja jālieto būtu dabīgais "
 "pieprasījums"
 
-#: ../gtk/gtkwidget.c:927
+#: ../gtk/gtkwidget.c:972
 msgid "Height request"
 msgstr "Augstuma pieprasījums"
 
-#: ../gtk/gtkwidget.c:928
+#: ../gtk/gtkwidget.c:973
 msgid ""
 "Override for height request of the widget, or -1 if natural request should "
 "be used"
@@ -7286,83 +8749,102 @@ msgstr ""
 "Pārrakstīt logdaļas augstuma pieprasījumu, vai -1 ja vajadzētu lietot "
 "dabisko pieprasījumu"
 
-#: ../gtk/gtkwidget.c:937
+#: ../gtk/gtkwidget.c:982
+#: ../gtk/gtkwidget.c:965
 msgid "Whether the widget is visible"
 msgstr "Vai logdaļa ir redzama"
 
-#: ../gtk/gtkwidget.c:944
+#: ../gtk/gtkwidget.c:989
 msgid "Whether the widget responds to input"
 msgstr "Vai logdaļa atbild uz ievadi"
 
-#: ../gtk/gtkwidget.c:950
+#: ../gtk/gtkwidget.c:995
+#: ../gtk/gtkwidget.c:978
 msgid "Application paintable"
-msgstr "Aplikācija krāsojama"
+msgstr "Lietotne krāsojama"
 
-#: ../gtk/gtkwidget.c:951
+#: ../gtk/gtkwidget.c:996
+#: ../gtk/gtkwidget.c:979
 msgid "Whether the application will paint directly on the widget"
-msgstr "Vai aplikācija krāsos tieši uz logdaļas"
+msgstr "Vai lietotne krāsos tieši uz logdaļas"
 
-#: ../gtk/gtkwidget.c:957
+#: ../gtk/gtkwidget.c:1002
+#: ../gtk/gtkwidget.c:985
 msgid "Can focus"
 msgstr "Var fokusēt"
 
-#: ../gtk/gtkwidget.c:958
+#: ../gtk/gtkwidget.c:1003
+#: ../gtk/gtkwidget.c:986
 msgid "Whether the widget can accept the input focus"
 msgstr "Vai logdaļa var pieņemt ievades fokusu"
 
-#: ../gtk/gtkwidget.c:964
+#: ../gtk/gtkwidget.c:1009
+#: ../gtk/gtkwidget.c:992
 msgid "Has focus"
 msgstr "Ir fokuss"
 
-#: ../gtk/gtkwidget.c:965
+#: ../gtk/gtkwidget.c:1010
+#: ../gtk/gtkwidget.c:993
 msgid "Whether the widget has the input focus"
 msgstr "Vai logdaļai ir ievades fokuss"
 
-#: ../gtk/gtkwidget.c:971
+#: ../gtk/gtkwidget.c:1016
+#: ../gtk/gtkwidget.c:999
 msgid "Is focus"
 msgstr "Ir fokuss"
 
-#: ../gtk/gtkwidget.c:972
+#: ../gtk/gtkwidget.c:1017
+#: ../gtk/gtkwidget.c:1000
 msgid "Whether the widget is the focus widget within the toplevel"
-msgstr "Vai logdaļa ir fokusēta logdaļa augšlīmenī"
+msgstr "Vai logdaļa ir fokusēta logdaļas augšējā līmenī"
 
-#: ../gtk/gtkwidget.c:978
+#: ../gtk/gtkwidget.c:1023
+#: ../gtk/gtkwidget.c:1006
 msgid "Can default"
 msgstr "Var būt noklusētā"
 
-#: ../gtk/gtkwidget.c:979
+#: ../gtk/gtkwidget.c:1024
+#: ../gtk/gtkwidget.c:1007
 msgid "Whether the widget can be the default widget"
 msgstr "Vai logdaļa var būt noklusētā logdaļa"
 
-#: ../gtk/gtkwidget.c:985
+#: ../gtk/gtkwidget.c:1030
+#: ../gtk/gtkwidget.c:1013
 msgid "Has default"
 msgstr "Ir noklusētā"
 
-#: ../gtk/gtkwidget.c:986
+#: ../gtk/gtkwidget.c:1031
+#: ../gtk/gtkwidget.c:1014
 msgid "Whether the widget is the default widget"
 msgstr "Vai logdaļa ir noklusētā logdaļa"
 
-#: ../gtk/gtkwidget.c:992
+#: ../gtk/gtkwidget.c:1037
+#: ../gtk/gtkwidget.c:1020
 msgid "Receives default"
 msgstr "Saņem noklusēto"
 
-#: ../gtk/gtkwidget.c:993
+#: ../gtk/gtkwidget.c:1038
+#: ../gtk/gtkwidget.c:1021
 msgid "If TRUE, the widget will receive the default action when it is focused"
 msgstr "Ja TRUE, logdaļa saņems noklusēto darbību, kad tā tiek fokusēta"
 
-#: ../gtk/gtkwidget.c:999
+#: ../gtk/gtkwidget.c:1044
+#: ../gtk/gtkwidget.c:1027
 msgid "Composite child"
 msgstr "Jauktais bērns"
 
-#: ../gtk/gtkwidget.c:1000
+#: ../gtk/gtkwidget.c:1045
+#: ../gtk/gtkwidget.c:1028
 msgid "Whether the widget is part of a composite widget"
 msgstr "Vai logdaļa ir daļa no saliktas logdaļas"
 
-#: ../gtk/gtkwidget.c:1006
+#: ../gtk/gtkwidget.c:1051
+#: ../gtk/gtkwidget.c:1034
 msgid "Style"
 msgstr "Stils"
 
-#: ../gtk/gtkwidget.c:1007
+#: ../gtk/gtkwidget.c:1052
+#: ../gtk/gtkwidget.c:1035
 msgid ""
 "The style of the widget, which contains information about how it will look "
 "(colors etc)"
@@ -7370,199 +8852,219 @@ msgstr ""
 "Logdaļas stils, kas satur informāciju par to, kā tā izskatīsies (krāsas, "
 "utt.)"
 
-#: ../gtk/gtkwidget.c:1013
+#: ../gtk/gtkwidget.c:1058
+#: ../gtk/gtkwidget.c:1041
 msgid "Events"
 msgstr "Notikumi"
 
-#: ../gtk/gtkwidget.c:1014
+#: ../gtk/gtkwidget.c:1059
+#: ../gtk/gtkwidget.c:1042
 msgid "The event mask that decides what kind of GdkEvents this widget gets"
-msgstr "Notikuma maska, kas izlemj, kāda veida GdkEvents ir šī logdaļa saņem"
+msgstr "Notikuma maska, kas nosaka, kāda veida GdkEvents ir šī logdaļa saņem"
 
-#: ../gtk/gtkwidget.c:1021
+#: ../gtk/gtkwidget.c:1066
+#: ../gtk/gtkwidget.c:1049
 msgid "No show all"
 msgstr "Nerādīt visu"
 
-#: ../gtk/gtkwidget.c:1022
+#: ../gtk/gtkwidget.c:1067
+#: ../gtk/gtkwidget.c:1050
 msgid "Whether gtk_widget_show_all() should not affect this widget"
 msgstr "Vai gtk_widget_show_all() nevajadzētu ietekmēt šo logdaļu"
 
-#: ../gtk/gtkwidget.c:1045
+#: ../gtk/gtkwidget.c:1090
+#: ../gtk/gtkwidget.c:1073
 msgid "Whether this widget has a tooltip"
 msgstr "Vai logdaļai ir paskaidre"
 
-#: ../gtk/gtkwidget.c:1101
+#: ../gtk/gtkwidget.c:1146
+#: ../gtk/gtkwidget.c:1129
 msgid "Window"
 msgstr "Logs"
 
-#: ../gtk/gtkwidget.c:1102
+#: ../gtk/gtkwidget.c:1147
+#: ../gtk/gtkwidget.c:1130
 msgid "The widget's window if it is realized"
-msgstr ""
+msgstr "Logdaļas logs, ja realizēts"
 
-#: ../gtk/gtkwidget.c:1116
-#, fuzzy
+#: ../gtk/gtkwidget.c:1161
+#: ../gtk/gtkwidget.c:1144
 msgid "Double Buffered"
-msgstr "Buferis"
+msgstr "Dubulti buferēts"
 
-#: ../gtk/gtkwidget.c:1117
-#, fuzzy
+#: ../gtk/gtkwidget.c:1162
+#: ../gtk/gtkwidget.c:1145
 msgid "Whether the widget is double buffered"
-msgstr "Vai kontakts ir iegults"
+msgstr "Vai logdaļa tiek buferēta dubulti"
 
-#: ../gtk/gtkwidget.c:1132
+#: ../gtk/gtkwidget.c:1177
+#: ../gtk/gtkwidget.c:1160
 msgid "How to position in extra horizontal space"
-msgstr ""
+msgstr "Kā novietot papildu horizontālo vietu"
 
-#: ../gtk/gtkwidget.c:1148
+#: ../gtk/gtkwidget.c:1193
 msgid "How to position in extra vertical space"
-msgstr ""
+msgstr "Kā novietot papildu vertikālo vietu"
 
-#: ../gtk/gtkwidget.c:1167
-#, fuzzy
+#: ../gtk/gtkwidget.c:1212
+#: ../gtk/gtkwidget.c:1195
 msgid "Margin on Left"
-msgstr "Mala"
+msgstr "Mala pa kreisi"
 
-#: ../gtk/gtkwidget.c:1168
+#: ../gtk/gtkwidget.c:1213
+#: ../gtk/gtkwidget.c:1196
 msgid "Pixels of extra space on the left side"
-msgstr ""
+msgstr "Papildu vietas pikseļi kreisajā pusē"
 
-#: ../gtk/gtkwidget.c:1188
+#: ../gtk/gtkwidget.c:1233
+#: ../gtk/gtkwidget.c:1216
 msgid "Margin on Right"
-msgstr ""
+msgstr "Mala pa labi"
 
-#: ../gtk/gtkwidget.c:1189
-#, fuzzy
+#: ../gtk/gtkwidget.c:1234
+#: ../gtk/gtkwidget.c:1217
 msgid "Pixels of extra space on the right side"
-msgstr "Tukšas vietas pikseļi virs rindkopām"
+msgstr "Papildu vietas pikseļi labajā pusē"
 
-#: ../gtk/gtkwidget.c:1209
-#, fuzzy
+#: ../gtk/gtkwidget.c:1254
+#: ../gtk/gtkwidget.c:1237
 msgid "Margin on Top"
-msgstr "Mala"
+msgstr "Mala augšpusē"
 
-#: ../gtk/gtkwidget.c:1210
-#, fuzzy
+#: ../gtk/gtkwidget.c:1255
+#: ../gtk/gtkwidget.c:1238
 msgid "Pixels of extra space on the top side"
-msgstr "Tukšas vietas pikseļi virs rindkopām"
+msgstr "Papildu vietas pikseļi virspusē"
 
-#: ../gtk/gtkwidget.c:1230
+#: ../gtk/gtkwidget.c:1275
+#: ../gtk/gtkwidget.c:1258
 msgid "Margin on Bottom"
-msgstr ""
+msgstr "Mala apakšā"
 
-#: ../gtk/gtkwidget.c:1231
+#: ../gtk/gtkwidget.c:1276
+#: ../gtk/gtkwidget.c:1259
 msgid "Pixels of extra space on the bottom side"
-msgstr ""
+msgstr "Papildu vietas pikseļi apakšpusē"
 
-#: ../gtk/gtkwidget.c:1248
-#, fuzzy
+#: ../gtk/gtkwidget.c:1293
 msgid "All Margins"
-msgstr "Mala"
+msgstr "Visas malas"
 
-#: ../gtk/gtkwidget.c:1249
+#: ../gtk/gtkwidget.c:1294
+#: ../gtk/gtkwidget.c:1277
 msgid "Pixels of extra space on all four sides"
-msgstr ""
+msgstr "Papildu vietas pikseļi visās četrās pusēs"
 
-#: ../gtk/gtkwidget.c:1282
-#, fuzzy
+#: ../gtk/gtkwidget.c:1327
+#: ../gtk/gtkwidget.c:1310
 #| msgid "Horizontal padding"
 msgid "Horizontal Expand"
-msgstr "Horizontālā papildināšana"
+msgstr "Horizontāli izvērsts"
 
-#: ../gtk/gtkwidget.c:1283
-#, fuzzy
+#: ../gtk/gtkwidget.c:1328
+#: ../gtk/gtkwidget.c:1311
 msgid "Whether widget wants more horizontal space"
-msgstr "Vai visiem bērniem jabūt pēc viena izmēra"
+msgstr "Vai logdaļai vajag vairāk horizontālās vietas"
 
-#: ../gtk/gtkwidget.c:1297
-#, fuzzy
+#: ../gtk/gtkwidget.c:1342
+#: ../gtk/gtkwidget.c:1325
 #| msgid "Horizontal alignment"
 msgid "Horizontal Expand Set"
-msgstr "Horizontālā centrēšana"
+msgstr "Horizontālais izvērsums iestatīts"
 
-#: ../gtk/gtkwidget.c:1298
-#, fuzzy
+#: ../gtk/gtkwidget.c:1343
+#: ../gtk/gtkwidget.c:1326
 msgid "Whether to use the hexpand property"
-msgstr "Vai lietot iezīmes tekstu veidojot krājuma izvēlnes elementus"
+msgstr "Vai izmantot hexpand īpašību"
 
-#: ../gtk/gtkwidget.c:1312
-#, fuzzy
+#: ../gtk/gtkwidget.c:1357
+#: ../gtk/gtkwidget.c:1340
 #| msgid "Vertical padding"
 msgid "Vertical Expand"
-msgstr "Vertikālā papildināšana"
+msgstr "Vertikāli izvērsts"
 
-#: ../gtk/gtkwidget.c:1313
-#, fuzzy
+#: ../gtk/gtkwidget.c:1358
+#: ../gtk/gtkwidget.c:1341
 #| msgid "Whether the widget is visible"
 msgid "Whether widget wants more vertical space"
-msgstr "Vai logdaļa ir redzama"
+msgstr "Vai logdaļai vajag vairāk vertikālās vietas"
 
-#: ../gtk/gtkwidget.c:1327
-#, fuzzy
+#: ../gtk/gtkwidget.c:1372
+#: ../gtk/gtkwidget.c:1355
 #| msgid "Vertical alignment"
 msgid "Vertical Expand Set"
-msgstr "Vertikālā centrāšana"
+msgstr "Vertikālais izvērsums iestatīts"
 
-#: ../gtk/gtkwidget.c:1328
-#, fuzzy
+#: ../gtk/gtkwidget.c:1373
+#: ../gtk/gtkwidget.c:1356
 msgid "Whether to use the vexpand property"
-msgstr "Vai lietot iezīmes tekstu veidojot krājuma izvēlnes elementus"
+msgstr "Vai izmantot vexpand īpašību"
 
-#: ../gtk/gtkwidget.c:1342
-#, fuzzy
+#: ../gtk/gtkwidget.c:1387
+#: ../gtk/gtkwidget.c:1370
 #| msgid "Expand timeout"
 msgid "Expand Both"
-msgstr "Izvēršanas noildze"
+msgstr "Izvērst abus"
 
-#: ../gtk/gtkwidget.c:1343
-#, fuzzy
+#: ../gtk/gtkwidget.c:1388
+#: ../gtk/gtkwidget.c:1371
 #| msgid "Whether the widget has the input focus"
 msgid "Whether widget wants to expand in both directions"
-msgstr "Vai logdaļai ir ievades fokuss"
+msgstr "Vai izvērst logdaļu abos virzienos"
 
-#: ../gtk/gtkwidget.c:2980
+#: ../gtk/gtkwidget.c:3027
+#: ../gtk/gtkwidget.c:3008
 msgid "Interior Focus"
-msgstr "Iekšējais Fokuss"
+msgstr "Iekšējais fokuss"
 
-#: ../gtk/gtkwidget.c:2981
+#: ../gtk/gtkwidget.c:3028
+#: ../gtk/gtkwidget.c:3009
 msgid "Whether to draw the focus indicator inside widgets"
-msgstr "Vai zīmēt fokusa indikātoru logdaļu iekšpusē"
+msgstr "Vai zīmēt fokusa indikatoru logdaļu iekšpusē"
 
-#: ../gtk/gtkwidget.c:2987
+#: ../gtk/gtkwidget.c:3034
+#: ../gtk/gtkwidget.c:3015
 msgid "Focus linewidth"
 msgstr "Fokusa līnijas platums"
 
-#: ../gtk/gtkwidget.c:2988
+#: ../gtk/gtkwidget.c:3035
+#: ../gtk/gtkwidget.c:3016
 msgid "Width, in pixels, of the focus indicator line"
-msgstr "Fokusa indikātora līnijas platums pikseļos"
+msgstr "Fokusa indikatora līnijas platums pikseļos"
 
-#: ../gtk/gtkwidget.c:2994
+#: ../gtk/gtkwidget.c:3041
+#: ../gtk/gtkwidget.c:3022
 msgid "Focus line dash pattern"
-msgstr "Fokusēr līnijas svītras rakstu"
+msgstr "Fokusēt līnijas svītras rakstu"
 
-#: ../gtk/gtkwidget.c:2995
+#: ../gtk/gtkwidget.c:3042
+#: ../gtk/gtkwidget.c:3023
 msgid "Dash pattern used to draw the focus indicator"
-msgstr "Lietotais svītras raksts, lai zīmētu fokusa indikātoru"
+msgstr "Lietotais svītras raksts, lai zīmētu fokusa indikatoru"
 
-#: ../gtk/gtkwidget.c:3000
+#: ../gtk/gtkwidget.c:3047
 msgid "Focus padding"
 msgstr "Fokusa papildināšana"
 
-#: ../gtk/gtkwidget.c:3001
+#: ../gtk/gtkwidget.c:3048
+#: ../gtk/gtkwidget.c:3029
 msgid "Width, in pixels, between focus indicator and the widget 'box'"
-msgstr "Platums pikseļos starp fokusa indikātoru un logdaļas 'rāmīti'"
+msgstr "Platums pikseļos starp fokusa indikatoru un logdaļas 'kasti'"
 
-#: ../gtk/gtkwidget.c:3006
+#: ../gtk/gtkwidget.c:3053
 msgid "Cursor color"
 msgstr "Kursora krāsa"
 
-#: ../gtk/gtkwidget.c:3007
+#: ../gtk/gtkwidget.c:3054
 msgid "Color with which to draw insertion cursor"
 msgstr "Krāsa, ar kuru zīmēt ievietošanas kursoru"
 
-#: ../gtk/gtkwidget.c:3012
+#: ../gtk/gtkwidget.c:3059
+#: ../gtk/gtkwidget.c:3040
 msgid "Secondary cursor color"
 msgstr "Otrā kursora krāsa"
 
-#: ../gtk/gtkwidget.c:3013
+#: ../gtk/gtkwidget.c:3060
 msgid ""
 "Color with which to draw the secondary insertion cursor when editing mixed "
 "right-to-left and left-to-right text"
@@ -7570,330 +9072,406 @@ msgstr ""
 "Krāsa, kādā zīmēt sekundāro ievietojuma kursoru, kad rediģē jaukto no-labās-"
 "uz-kreiso un no-kreisās-uz-labo tekstu"
 
-#: ../gtk/gtkwidget.c:3018
+#: ../gtk/gtkwidget.c:3065
+#: ../gtk/gtkwidget.c:3046
 msgid "Cursor line aspect ratio"
 msgstr "Kursora līnijas skata proporcija"
 
-#: ../gtk/gtkwidget.c:3019
+#: ../gtk/gtkwidget.c:3066
 msgid "Aspect ratio with which to draw insertion cursor"
 msgstr "Skata proporcija, ar kuru zīmēt ievietojuma kursoru"
 
-#: ../gtk/gtkwidget.c:3025
-#, fuzzy
+#: ../gtk/gtkwidget.c:3072
 msgid "Window dragging"
-msgstr "Loga Pozīcija"
+msgstr "Loga vilkšana"
 
-#: ../gtk/gtkwidget.c:3026
+#: ../gtk/gtkwidget.c:3073
 msgid "Whether windows can be dragged by clicking on empty areas"
-msgstr ""
+msgstr "Vai logu var vilkt, klikšķinot uz tukša laukuma"
 
-#: ../gtk/gtkwidget.c:3039
+#: ../gtk/gtkwidget.c:3086
+#: ../gtk/gtkwidget.c:3067
 msgid "Unvisited Link Color"
 msgstr "Neaplūkoto saišu krāsa"
 
-#: ../gtk/gtkwidget.c:3040
+#: ../gtk/gtkwidget.c:3087
+#: ../gtk/gtkwidget.c:3068
 msgid "Color of unvisited links"
 msgstr "Neaplūkoto saišu krāsa"
 
-#: ../gtk/gtkwidget.c:3053
+#: ../gtk/gtkwidget.c:3100
+#: ../gtk/gtkwidget.c:3081
 msgid "Visited Link Color"
 msgstr "Aplūkoto saišu krāsa"
 
-#: ../gtk/gtkwidget.c:3054
+#: ../gtk/gtkwidget.c:3101
+#: ../gtk/gtkwidget.c:3082
 msgid "Color of visited links"
 msgstr "Aplūkoto saišu krāsa"
 
-#: ../gtk/gtkwidget.c:3068
+#: ../gtk/gtkwidget.c:3115
+#: ../gtk/gtkwidget.c:3096
 msgid "Wide Separators"
 msgstr "Platais atdalītājs"
 
-#: ../gtk/gtkwidget.c:3069
+#: ../gtk/gtkwidget.c:3116
+#: ../gtk/gtkwidget.c:3097
 msgid ""
 "Whether separators have configurable width and should be drawn using a box "
 "instead of a line"
 msgstr ""
+"Vai atdalītājam ir konfigurējams platums un vajadzētu tikt zīmētam, "
+"izmantojot kasti, nevis līniju"
 
-#: ../gtk/gtkwidget.c:3083
+#: ../gtk/gtkwidget.c:3130
+#: ../gtk/gtkwidget.c:3111
 msgid "Separator Width"
 msgstr "Atdalītāja platums"
 
-#: ../gtk/gtkwidget.c:3084
+#: ../gtk/gtkwidget.c:3131
+#: ../gtk/gtkwidget.c:3112
 msgid "The width of separators if wide-separators is TRUE"
-msgstr ""
+msgstr "Atdalītāja platums, ja wide-separators ir PATIESS"
 
-#: ../gtk/gtkwidget.c:3098
+#: ../gtk/gtkwidget.c:3145
+#: ../gtk/gtkwidget.c:3126
 msgid "Separator Height"
 msgstr "Atdalītāja augstums"
 
-#: ../gtk/gtkwidget.c:3099
+#: ../gtk/gtkwidget.c:3146
+#: ../gtk/gtkwidget.c:3127
 msgid "The height of separators if \"wide-separators\" is TRUE"
-msgstr ""
+msgstr "Atdalītāja augstums, ja wide-separators ir PATIESS"
 
-#: ../gtk/gtkwidget.c:3113
+#: ../gtk/gtkwidget.c:3160
+#: ../gtk/gtkwidget.c:3141
 msgid "Horizontal Scroll Arrow Length"
 msgstr "Horizontālo ritjoslu garums"
 
-#: ../gtk/gtkwidget.c:3114
+#: ../gtk/gtkwidget.c:3161
+#: ../gtk/gtkwidget.c:3142
 msgid "The length of horizontal scroll arrows"
 msgstr "Horizontālo ritjoslu garums"
 
-#: ../gtk/gtkwidget.c:3128
+#: ../gtk/gtkwidget.c:3175
+#: ../gtk/gtkwidget.c:3156
 msgid "Vertical Scroll Arrow Length"
 msgstr "Vertikālo ritjoslu garums"
 
-#: ../gtk/gtkwidget.c:3129
+#: ../gtk/gtkwidget.c:3176
+#: ../gtk/gtkwidget.c:3157
 msgid "The length of vertical scroll arrows"
 msgstr "Vertikālo ritjoslu garums"
 
-#: ../gtk/gtkwindow.c:600
+#: ../gtk/gtkwindow.c:606
+#: ../gtk/gtkwindow.c:604
 msgid "Window Type"
-msgstr "Loga Tips"
+msgstr "Loga tips"
 
-#: ../gtk/gtkwindow.c:601
+#: ../gtk/gtkwindow.c:607
+#: ../gtk/gtkwindow.c:605
 msgid "The type of the window"
 msgstr "Loga tips"
 
-#: ../gtk/gtkwindow.c:609
+#: ../gtk/gtkwindow.c:615
+#: ../gtk/gtkwindow.c:613
 msgid "Window Title"
-msgstr "Loga Virsraksts"
+msgstr "Loga virsraksts"
 
-#: ../gtk/gtkwindow.c:610
+#: ../gtk/gtkwindow.c:616
+#: ../gtk/gtkwindow.c:614
 msgid "The title of the window"
-msgstr "Loga visraksts"
+msgstr "Loga virsraksts"
 
-#: ../gtk/gtkwindow.c:617
+#: ../gtk/gtkwindow.c:623
+#: ../gtk/gtkwindow.c:621
 msgid "Window Role"
 msgstr "Loga loma"
 
-#: ../gtk/gtkwindow.c:618
+#: ../gtk/gtkwindow.c:624
+#: ../gtk/gtkwindow.c:622
 msgid "Unique identifier for the window to be used when restoring a session"
 msgstr "Unikāls identifikators logam, ko izmanto atjaunojot sesiju"
 
-#: ../gtk/gtkwindow.c:634
+#: ../gtk/gtkwindow.c:640
+#: ../gtk/gtkwindow.c:638
 msgid "Startup ID"
 msgstr "Sākuma ID"
 
-#: ../gtk/gtkwindow.c:635
+#: ../gtk/gtkwindow.c:641
+#: ../gtk/gtkwindow.c:639
 msgid "Unique startup identifier for the window used by startup-notification"
-msgstr ""
+msgstr "Unikāls sākuma identifikators logam, ko izmanto startup-notification"
 
-#: ../gtk/gtkwindow.c:643
+#: ../gtk/gtkwindow.c:649
+#: ../gtk/gtkwindow.c:647
 msgid "If TRUE, users can resize the window"
-msgstr "Ja TRUE, lietotāji var mainīt loga izmēru"
+msgstr "Ja PATIESS, lietotāji var mainīt loga izmēru"
 
-#: ../gtk/gtkwindow.c:650
+#: ../gtk/gtkwindow.c:656
+#: ../gtk/gtkwindow.c:654
 msgid "Modal"
 msgstr "Modāls"
 
-#: ../gtk/gtkwindow.c:651
+#: ../gtk/gtkwindow.c:657
+#: ../gtk/gtkwindow.c:655
 msgid ""
 "If TRUE, the window is modal (other windows are not usable while this one is "
 "up)"
 msgstr ""
-"Ja TRUE, tad logs ir modāls (citi logi nav lietojami kamēr šis ir virspusē)"
+"Ja PATIESS, tad logs ir modāls (citi logi nav lietojami kamēr šis ir "
+"virspusē)"
 
-#: ../gtk/gtkwindow.c:658
+#: ../gtk/gtkwindow.c:664
+#: ../gtk/gtkwindow.c:662
 msgid "Window Position"
-msgstr "Loga Pozīcija"
+msgstr "Loga novietojums"
 
-#: ../gtk/gtkwindow.c:659
+#: ../gtk/gtkwindow.c:665
+#: ../gtk/gtkwindow.c:663
 msgid "The initial position of the window"
-msgstr "Sākotnējā loga pozīcija"
+msgstr "Sākotnējais loga novietojums"
 
-#: ../gtk/gtkwindow.c:667
+#: ../gtk/gtkwindow.c:673
+#: ../gtk/gtkwindow.c:671
 msgid "Default Width"
-msgstr "Noklusētais Platums"
+msgstr "Noklusētais platums"
 
-#: ../gtk/gtkwindow.c:668
+#: ../gtk/gtkwindow.c:674
+#: ../gtk/gtkwindow.c:672
 msgid "The default width of the window, used when initially showing the window"
 msgstr "Noklusētais loga platums, ko izmanto, kad pirmo reizi parāda logu"
 
-#: ../gtk/gtkwindow.c:677
+#: ../gtk/gtkwindow.c:683
+#: ../gtk/gtkwindow.c:681
 msgid "Default Height"
-msgstr "Noklusētais Augstums"
+msgstr "Noklusētais augstums"
 
-#: ../gtk/gtkwindow.c:678
-msgid ""
-"The default height of the window, used when initially showing the window"
+#: ../gtk/gtkwindow.c:684
+#: ../gtk/gtkwindow.c:682
+msgid "The default height of the window, used when initially showing the window"
 msgstr "Noklusētais loga augstums, ko izmanto, kad pirmo reizi parāda logu"
 
-#: ../gtk/gtkwindow.c:687
+#: ../gtk/gtkwindow.c:693
+#: ../gtk/gtkwindow.c:691
 msgid "Destroy with Parent"
-msgstr "Iznīcināt ar Vecāku"
+msgstr "Iznīcināt ar vecāku"
 
-#: ../gtk/gtkwindow.c:688
+#: ../gtk/gtkwindow.c:694
+#: ../gtk/gtkwindow.c:692
 msgid "If this window should be destroyed when the parent is destroyed"
 msgstr "Vai šis logs būtu jāiznīcina, kad tiek iznīcināts vecāks"
 
-#: ../gtk/gtkwindow.c:696
+#: ../gtk/gtkwindow.c:702
+#: ../gtk/gtkwindow.c:700
 msgid "Icon for this window"
 msgstr "Ikona šim logam"
 
-#: ../gtk/gtkwindow.c:702
-#, fuzzy
+#: ../gtk/gtkwindow.c:708
+#: ../gtk/gtkwindow.c:706
 msgid "Mnemonics Visible"
-msgstr "Mnemonikas taustiņš"
+msgstr "Mnemonikas redzamas"
 
-#: ../gtk/gtkwindow.c:703
-#, fuzzy
+#: ../gtk/gtkwindow.c:709
+#: ../gtk/gtkwindow.c:707
 msgid "Whether mnemonics are currently visible in this window"
-msgstr "Vai augšlīmenis ir pašreizējais aktīvais logs"
+msgstr "Vai mnemonikas ir pašlaik redzamas šajā logā"
 
-#: ../gtk/gtkwindow.c:719
+#: ../gtk/gtkwindow.c:725
+#: ../gtk/gtkwindow.c:723
 msgid "Name of the themed icon for this window"
 msgstr "Šī loga tēmas ikonas tēmas nosaukums"
 
-#: ../gtk/gtkwindow.c:734
+#: ../gtk/gtkwindow.c:740
+#: ../gtk/gtkwindow.c:738
 msgid "Is Active"
-msgstr "Ir Aktīvs"
+msgstr "Ir aktīvs"
 
-#: ../gtk/gtkwindow.c:735
+#: ../gtk/gtkwindow.c:741
+#: ../gtk/gtkwindow.c:739
 msgid "Whether the toplevel is the current active window"
-msgstr "Vai augšlīmenis ir pašreizējais aktīvais logs"
+msgstr "Vai augšējais līmenis ir pašreizējais aktīvais logs"
 
-#: ../gtk/gtkwindow.c:742
+#: ../gtk/gtkwindow.c:748
+#: ../gtk/gtkwindow.c:746
 msgid "Focus in Toplevel"
-msgstr "Fokusēties Augšlīmenī"
+msgstr "Fokusēties augšējā līmenī"
 
-#: ../gtk/gtkwindow.c:743
+#: ../gtk/gtkwindow.c:749
+#: ../gtk/gtkwindow.c:747
 msgid "Whether the input focus is within this GtkWindow"
 msgstr "Vai ievades fokuss ir iekš šī GtkWindow"
 
-#: ../gtk/gtkwindow.c:750
+#: ../gtk/gtkwindow.c:756
+#: ../gtk/gtkwindow.c:754
 msgid "Type hint"
 msgstr "Tipa padoms"
 
-#: ../gtk/gtkwindow.c:751
+#: ../gtk/gtkwindow.c:757
+#: ../gtk/gtkwindow.c:755
 msgid ""
 "Hint to help the desktop environment understand what kind of window this is "
 "and how to treat it."
 msgstr ""
-"Padoms, lai palīdzētu dabvirsmas videi saprast, kas šis ir par logu un kā ar "
-"to apieties."
+"Padoms, lai palīdzētu darbvirsmas videi saprast, kas šis ir par logu un kā "
+"ar to apieties."
 
-#: ../gtk/gtkwindow.c:759
+#: ../gtk/gtkwindow.c:765
+#: ../gtk/gtkwindow.c:763
 msgid "Skip taskbar"
-msgstr "Izlaist uzdevumjoslu"
+msgstr "Izlaist uzdevumjoslu"
 
-#: ../gtk/gtkwindow.c:760
+#: ../gtk/gtkwindow.c:766
+#: ../gtk/gtkwindow.c:764
 msgid "TRUE if the window should not be in the task bar."
 msgstr "TRUE, ja logam nebūtu jābūt uzdevumu joslā."
 
-#: ../gtk/gtkwindow.c:767
+#: ../gtk/gtkwindow.c:773
+#: ../gtk/gtkwindow.c:771
 msgid "Skip pager"
 msgstr "Izlaist peidžeri"
 
-#: ../gtk/gtkwindow.c:768
+#: ../gtk/gtkwindow.c:774
+#: ../gtk/gtkwindow.c:772
 msgid "TRUE if the window should not be in the pager."
 msgstr "TRUE, ja logam nevajadzētu atrasties peidžerī."
 
-#: ../gtk/gtkwindow.c:775
+#: ../gtk/gtkwindow.c:781
+#: ../gtk/gtkwindow.c:779
 msgid "Urgent"
 msgstr "Steidzams"
 
-#: ../gtk/gtkwindow.c:776
+#: ../gtk/gtkwindow.c:782
+#: ../gtk/gtkwindow.c:780
 msgid "TRUE if the window should be brought to the user's attention."
-msgstr "PATIESS, ja logam vajadzētu piesaistīt lietotaja uzmanību."
+msgstr "PATIESS, ja logam vajadzētu piesaistīt lietotāja uzmanību."
 
-#: ../gtk/gtkwindow.c:790
+#: ../gtk/gtkwindow.c:796
+#: ../gtk/gtkwindow.c:794
 msgid "Accept focus"
 msgstr "Pieņemt fokusu"
 
-#: ../gtk/gtkwindow.c:791
+#: ../gtk/gtkwindow.c:797
+#: ../gtk/gtkwindow.c:795
 msgid "TRUE if the window should receive the input focus."
 msgstr "PATIESS, ja logam būtu jāsaņem ievades fokuss."
 
-#: ../gtk/gtkwindow.c:805
+#: ../gtk/gtkwindow.c:811
+#: ../gtk/gtkwindow.c:809
 msgid "Focus on map"
 msgstr "Fokuss uz kartes"
 
-#: ../gtk/gtkwindow.c:806
+#: ../gtk/gtkwindow.c:812
+#: ../gtk/gtkwindow.c:810
 msgid "TRUE if the window should receive the input focus when mapped."
 msgstr "PATIESS, ja logam būtu jāsaņem ievades fokuss, kad tas tiek kartēts."
 
-#: ../gtk/gtkwindow.c:820
+#: ../gtk/gtkwindow.c:826
+#: ../gtk/gtkwindow.c:824
 msgid "Decorated"
 msgstr "Rotāts"
 
-#: ../gtk/gtkwindow.c:821
+#: ../gtk/gtkwindow.c:827
+#: ../gtk/gtkwindow.c:825
 msgid "Whether the window should be decorated by the window manager"
 msgstr "Vai loga pārvaldniekam būtu jādekorē logs"
 
-#: ../gtk/gtkwindow.c:835
+#: ../gtk/gtkwindow.c:841
+#: ../gtk/gtkwindow.c:839
 msgid "Deletable"
 msgstr "Dzēšams"
 
-#: ../gtk/gtkwindow.c:836
+#: ../gtk/gtkwindow.c:842
+#: ../gtk/gtkwindow.c:840
 msgid "Whether the window frame should have a close button"
 msgstr "Vai loga ietvaram vajadzīga loga aizvēršanas poga"
 
-#: ../gtk/gtkwindow.c:855
-#, fuzzy
+#: ../gtk/gtkwindow.c:861
+#: ../gtk/gtkwindow.c:859
 #| msgid "Has Resize Grip"
 msgid "Resize grip"
-msgstr "Ir izmēra maiņas rokturis"
+msgstr "Izmēra maiņas rokturis"
 
-#: ../gtk/gtkwindow.c:856
-#, fuzzy
+#: ../gtk/gtkwindow.c:862
+#: ../gtk/gtkwindow.c:860
 #| msgid "Whether the window frame should have a close button"
 msgid "Specifies whether the window should have a resize grip"
-msgstr "Vai loga ietvaram vajadzīga loga aizvēršanas poga"
+msgstr "Vai logam vajadzīgs izmēra maiņas rokturis"
 
-#: ../gtk/gtkwindow.c:870
+#: ../gtk/gtkwindow.c:876
+#: ../gtk/gtkwindow.c:874
 msgid "Resize grip is visible"
-msgstr ""
+msgstr "Izmēra maiņas rokturis redzams"
 
-#: ../gtk/gtkwindow.c:871
-#, fuzzy
+#: ../gtk/gtkwindow.c:877
+#: ../gtk/gtkwindow.c:875
 #| msgid "Whether the action group is visible."
 msgid "Specifies whether the window's resize grip is visible."
-msgstr "Vai darības gurpa ir redzama."
+msgstr "Vai loga izmēra maiņas rokturis ir redzams."
 
-#: ../gtk/gtkwindow.c:887
+#: ../gtk/gtkwindow.c:893
+#: ../gtk/gtkwindow.c:891
 msgid "Gravity"
 msgstr "Gravitācija"
 
-#: ../gtk/gtkwindow.c:888
+#: ../gtk/gtkwindow.c:894
+#: ../gtk/gtkwindow.c:892
 msgid "The window gravity of the window"
 msgstr "Loga gravitācija"
 
-#: ../gtk/gtkwindow.c:905
+#: ../gtk/gtkwindow.c:911
+#: ../gtk/gtkwindow.c:909
 msgid "Transient for Window"
-msgstr ""
+msgstr "Pārejošs logam"
 
-#: ../gtk/gtkwindow.c:906
+#: ../gtk/gtkwindow.c:912
+#: ../gtk/gtkwindow.c:910
 msgid "The transient parent of the dialog"
-msgstr ""
+msgstr "Pārejošs dialoglodziņa vecāks"
 
-#: ../gtk/gtkwindow.c:921
+#: ../gtk/gtkwindow.c:927
+#: ../gtk/gtkwindow.c:925
 msgid "Opacity for Window"
-msgstr "Loga caurspīdība"
+msgstr "Loga necaurspīdība"
 
-#: ../gtk/gtkwindow.c:922
+#: ../gtk/gtkwindow.c:928
+#: ../gtk/gtkwindow.c:926
 msgid "The opacity of the window, from 0 to 1"
-msgstr "Loga caurspīdīgums no 0 līdz 1"
+msgstr "Loga necaurspīdīgums no 0 līdz 1"
 
-#: ../gtk/gtkwindow.c:932 ../gtk/gtkwindow.c:933
+#: ../gtk/gtkwindow.c:938 ../gtk/gtkwindow.c:939
+#: ../gtk/gtkwindow.c:936
+#: ../gtk/gtkwindow.c:937
 msgid "Width of resize grip"
-msgstr ""
+msgstr "Izmēra maiņas roktura platums"
 
-#: ../gtk/gtkwindow.c:938 ../gtk/gtkwindow.c:939
-#, fuzzy
+#: ../gtk/gtkwindow.c:944 ../gtk/gtkwindow.c:945
+#: ../gtk/gtkwindow.c:942
+#: ../gtk/gtkwindow.c:943
 #| msgid "Has Resize Grip"
 msgid "Height of resize grip"
-msgstr "Ir izmēra maiņas rokturis"
+msgstr "Izmēra maiņas roktura augstums"
 
-#: ../gtk/gtkwindow.c:961
-#, fuzzy
+#: ../gtk/gtkwindow.c:967
+#: ../gtk/gtkwindow.c:965
 #| msgid "Application paintable"
 msgid "GtkApplication"
-msgstr "Aplikācija krāsojama"
+msgstr "GtkApplication"
 
-#: ../gtk/gtkwindow.c:962
-#, fuzzy
+#: ../gtk/gtkwindow.c:968
+#: ../gtk/gtkwindow.c:966
 #| msgid "The initial position of the window"
 msgid "The GtkApplication for the window"
-msgstr "Sākotnējā loga pozīcija"
+msgstr "GtkApplication logam"
+
+#~ msgid "Background color as a (possibly unallocated) GdkColor"
+#~ msgstr "Fona krāsa kā (iespējams, nepiešķirta) GdkColor"
+
+#~ msgid "Foreground color as a (possibly unallocated) GdkColor"
+#~ msgstr "Priekšplāna krāsa kā (iespējams, nepiešķirta) GdkColor"
+
+#~ msgid "Paragraph background color as a (possibly unallocated) GdkColor"
+#~ msgstr "Paragrāfa fona krāsa kā (iespējams nenovietota) GdkColor"
 
 #~ msgid ""
 #~ "The label for the link to the website of the program. If this is not set, "
index cb671390648b4abdb5720d1fd54461a5c1bd186c..264d7cb7625dbf7adcfce0f1306d7dc1d6889a68 100644 (file)
@@ -1,7 +1,7 @@
 # Files from the Gtk distribution which have already been
 # marked to allow runtime translation of messages
-gdk/gdk.c
 gdk/gdkapplaunchcontext.c
+gdk/gdk.c
 gdk/gdkcursor.c
 gdk/gdkdevice.c
 gdk/gdkdevicemanager.c
@@ -12,11 +12,13 @@ gdk/gdkwindow.c
 gdk/keyname-table.h
 gdk/win32/gdkmain-win32.c
 gdk/x11/gdkapplaunchcontext-x11.c
-gdk/x11/gdkdevice-xi.c
-gdk/x11/gdkdevice-xi2.c
-gdk/x11/gdkdevicemanager-xi.c
 gdk/x11/gdkdevicemanager-xi2.c
+gdk/x11/gdkdevicemanager-xi.c
+gdk/x11/gdkdevice-xi2.c
+gdk/x11/gdkdevice-xi.c
 gdk/x11/gdkmain-x11.c
+gtk/a11y/gtkspinneraccessible.c
+gtk/a11y/gtkswitchaccessible.c
 gtk/gtkaboutdialog.c
 gtk/gtkaccelgroup.c
 gtk/gtkaccellabel.c
@@ -27,13 +29,13 @@ gtk/gtkactiongroup.c
 gtk/gtkactivatable.c
 gtk/gtkadjustment.c
 gtk/gtkalignment.c
-gtk/gtkarrow.c
-gtk/gtkaspectframe.c
 gtk/gtkanimationdescription.c
-gtk/gtkappchooser.c
 gtk/gtkappchooserbutton.c
+gtk/gtkappchooser.c
 gtk/gtkappchooserdialog.c
 gtk/gtkappchooserwidget.c
+gtk/gtkarrow.c
+gtk/gtkaspectframe.c
 gtk/gtkassistant.c
 gtk/gtkbbox.c
 gtk/gtkbin.c
@@ -44,8 +46,8 @@ gtk/gtkbuilder.c
 gtk/gtkbuilderparser.c
 gtk/gtkbutton.c
 gtk/gtkcalendar.c
-gtk/gtkcellarea.c
 gtk/gtkcellareabox.c
+gtk/gtkcellarea.c
 gtk/gtkcellareacontext.c
 gtk/gtkcelleditable.c
 gtk/gtkcelllayout.c
@@ -68,14 +70,15 @@ gtk/gtkcolorsel.c
 gtk/gtkcolorseldialog.c
 gtk/gtkcombobox.c
 gtk/gtkcontainer.c
+gtk/gtkcssprovider.c
 gtk/gtkcustompaperunixdialog.c
 gtk/gtkdialog.c
 gtk/gtkdnd.c
 gtk/gtkdnd-quartz.c
 gtk/gtkdrawingarea.c
 gtk/gtkeditable.c
-gtk/gtkentry.c
 gtk/gtkentrybuffer.c
+gtk/gtkentry.c
 gtk/gtkentrycompletion.c
 gtk/gtkeventbox.c
 gtk/gtkexpander.c
@@ -135,6 +138,7 @@ gtk/gtkmountoperation-x11.c
 gtk/gtknotebook.c
 gtk/gtknumerableicon.c
 gtk/gtkorientable.c
+gtk/gtkoverlay.c
 gtk/gtkpagesetup.c
 gtk/gtkpagesetupunixdialog.c
 gtk/gtkpaned.c
@@ -143,6 +147,7 @@ gtk/gtkpathbar.c
 gtk/gtkplug.c
 gtk/gtkprintbackend.c
 gtk/gtkprinter.c
+gtk/gtkprinteroption.c
 gtk/gtkprinteroptionwidget.c
 gtk/gtkprintjob.c
 gtk/gtkprintoperation.c
@@ -244,6 +249,7 @@ modules/input/imti-et.c
 modules/input/imviqr.c
 modules/input/imxim.c
 modules/printbackends/cups/gtkprintbackendcups.c
+modules/printbackends/cups/gtkprintercups.c
 modules/printbackends/file/gtkprintbackendfile.c
 modules/printbackends/lpr/gtkprintbackendlpr.c
 modules/printbackends/papi/gtkprintbackendpapi.c
index f04d64f3fbc879b435d1bb9c12bb85da58235dc0..8491c163b943ebee344eff7109d0efc40626f881 100644 (file)
--- a/po/de.po
+++ b/po/de.po
 # Karsten Weiss <karsten@addx.au.s.shuttle.de>, 1999.
 # Matthias Warkus <mawarkus@gnome.org>, 2001, 2002.
 # Christian Neumair <chris@gnome-de.org>, 2002-2004.
-# Hendrik Richter <hendrikr@gnome.org>, 2004, 2005, 2006, 2007, 2008, 2009.
+# Hendrik Richter <hendrikr@gnome.org>, 2004-2009.
 # Hendrik Brandt <heb@gnome-de.org>, 2004-2005.
 # Andre Klapper <ak-47@gmx.net>, 2008.
-# Mario Blättermann <mariobl@gnome.org>, 2009, 2010, 2011.
+# Mario Blättermann <mariobl@freenet.de>, 2009-2011.
 # Jakob Kramer <jakob.kramer@gmx.de>, 2010.
 # Paul Seyfert <pseyfert@mathphys.fsk.uni-heidelberg.de>, 2011.
-# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2009, 2010, 2011.
+# Christian Kirbach <Christian.Kirbach@googlemail.com>, 2009-2011.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: GTK+ master\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%"
-"2b&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-03-31 07:41+0000\n"
-"PO-Revision-Date: 2011-03-31 09:50+0100\n"
-"Last-Translator: Mario Blättermann <mariobl@gnome.org>\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk"
+"%2b&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-07-13 18:20+0000\n"
+"PO-Revision-Date: 2011-07-13 20:22+0100\n"
+"Last-Translator: Mario Blättermann <mariobl@freenet.de>\n"
 "Language-Team: Deutsch <gnome-de@gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -93,7 +93,7 @@ msgstr "Zu übergebende GDK-Fehlerdiagnoseoptionen"
 #. Placeholder in --gdk-no-debug=FLAGS in --help output
 #. Placeholder in --gtk-debug=FLAGS in --help output
 #. Placeholder in --gtk-no-debug=FLAGS in --help output
-#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:570 ../gtk/gtkmain.c:573
+#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:569 ../gtk/gtkmain.c:572
 msgid "FLAGS"
 msgstr "OPTIONEN"
 
@@ -477,10 +477,28 @@ msgid_plural "Opening %d Items"
 msgstr[0] "%d Objekt wird geöffnet"
 msgstr[1] "%d Objekte werden geöffnet"
 
+#: ../gtk/a11y/gtkspinneraccessible.c:42
+msgctxt "throbbing progress animation widget"
+msgid "Spinner"
+msgstr "Spinner"
+
+#: ../gtk/a11y/gtkspinneraccessible.c:43
+msgid "Provides visual indication of progress"
+msgstr "Ermöglicht die visuelle Darstellung des Fortschritts"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:65
+msgctxt "light switch widget"
+msgid "Switch"
+msgstr "Schalter"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:66
+msgid "Switches between on and off states"
+msgstr "Schaltet zwischen »an« und »aus« um"
+
 #. Translators: this is the license preamble; the string at the end
 #. * contains the URL of the license.
 #.
-#: ../gtk/gtkaboutdialog.c:104
+#: ../gtk/gtkaboutdialog.c:103
 #, c-format
 msgid ""
 "This program comes with ABSOLUTELY NO WARRANTY; for details, visit <a href="
@@ -489,50 +507,50 @@ msgstr ""
 "Dieses Programm kommt OHNE JEDWEDE GARANTIE; für Details, besuchen Sie <a "
 "href=\"%s\">%s</a>"
 
-#: ../gtk/gtkaboutdialog.c:346
+#: ../gtk/gtkaboutdialog.c:345
 msgid "License"
 msgstr "Lizenz"
 
-#: ../gtk/gtkaboutdialog.c:347
+#: ../gtk/gtkaboutdialog.c:346
 msgid "The license of the program"
 msgstr "Die Lizenz des Programms"
 
 #. Add the credits button
-#: ../gtk/gtkaboutdialog.c:739
+#: ../gtk/gtkaboutdialog.c:738
 msgid "C_redits"
 msgstr "_Mitwirkende"
 
 #. Add the license button
-#: ../gtk/gtkaboutdialog.c:752
+#: ../gtk/gtkaboutdialog.c:751
 msgid "_License"
 msgstr "_Lizenz"
 
-#: ../gtk/gtkaboutdialog.c:957
+#: ../gtk/gtkaboutdialog.c:956
 msgid "Could not show link"
 msgstr "Link konnte nicht angezeigt werden"
 
-#: ../gtk/gtkaboutdialog.c:994
+#: ../gtk/gtkaboutdialog.c:993
 msgid "Homepage"
 msgstr "Homepage"
 
-#: ../gtk/gtkaboutdialog.c:1048
+#: ../gtk/gtkaboutdialog.c:1047
 #, c-format
 msgid "About %s"
 msgstr "Info zu %s"
 
-#: ../gtk/gtkaboutdialog.c:2374
+#: ../gtk/gtkaboutdialog.c:2371
 msgid "Created by"
 msgstr "Erstellt von"
 
-#: ../gtk/gtkaboutdialog.c:2377
+#: ../gtk/gtkaboutdialog.c:2374
 msgid "Documented by"
 msgstr "Dokumentation von"
 
-#: ../gtk/gtkaboutdialog.c:2387
+#: ../gtk/gtkaboutdialog.c:2384
 msgid "Translated by"
 msgstr "Übersetzung von"
 
-#: ../gtk/gtkaboutdialog.c:2392
+#: ../gtk/gtkaboutdialog.c:2389
 msgid "Artwork by"
 msgstr "Grafiken von"
 
@@ -541,7 +559,7 @@ msgstr "Grafiken von"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:158
+#: ../gtk/gtkaccellabel.c:156
 msgctxt "keyboard label"
 msgid "Shift"
 msgstr "Umschalt"
@@ -551,7 +569,7 @@ msgstr "Umschalt"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:164
+#: ../gtk/gtkaccellabel.c:162
 msgctxt "keyboard label"
 msgid "Ctrl"
 msgstr "Strg"
@@ -561,7 +579,7 @@ msgstr "Strg"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:170
+#: ../gtk/gtkaccellabel.c:168
 msgctxt "keyboard label"
 msgid "Alt"
 msgstr "Alt"
@@ -571,7 +589,7 @@ msgstr "Alt"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:786
+#: ../gtk/gtkaccellabel.c:787
 msgctxt "keyboard label"
 msgid "Super"
 msgstr "Super"
@@ -581,7 +599,7 @@ msgstr "Super"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:799
+#: ../gtk/gtkaccellabel.c:800
 msgctxt "keyboard label"
 msgid "Hyper"
 msgstr "Hyper"
@@ -591,22 +609,22 @@ msgstr "Hyper"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:813
+#: ../gtk/gtkaccellabel.c:814
 msgctxt "keyboard label"
 msgid "Meta"
 msgstr "Meta"
 
-#: ../gtk/gtkaccellabel.c:829
+#: ../gtk/gtkaccellabel.c:830
 msgctxt "keyboard label"
 msgid "Space"
 msgstr "Leertaste"
 
-#: ../gtk/gtkaccellabel.c:832
+#: ../gtk/gtkaccellabel.c:833
 msgctxt "keyboard label"
 msgid "Backslash"
 msgstr "Backslash"
 
-#: ../gtk/gtkappchooserbutton.c:264
+#: ../gtk/gtkappchooserbutton.c:268
 msgid "Other application..."
 msgstr "Andere Anwendung …"
 
@@ -637,7 +655,7 @@ msgstr "Anwendung konnte nicht gefunden werden"
 msgid "Select an application to open \"%s\""
 msgstr "Anwendung zum Öffnen von »%s« auswählen"
 
-#: ../gtk/gtkappchooserdialog.c:356 ../gtk/gtkappchooserwidget.c:642
+#: ../gtk/gtkappchooserdialog.c:356 ../gtk/gtkappchooserwidget.c:643
 #, c-format
 msgid "No applications available to open \"%s\""
 msgstr "Keine Anwendung zum Öffnen von »%s« verfügbar"
@@ -673,22 +691,34 @@ msgstr "Weitere Anwendungen anzeigen"
 msgid "_Select"
 msgstr "Aus_wählen"
 
-#: ../gtk/gtkappchooserwidget.c:591
+#: ../gtk/gtkappchooserwidget.c:592
 msgid "Default Application"
 msgstr "Standard-Anwendung"
 
-#: ../gtk/gtkappchooserwidget.c:729
+#: ../gtk/gtkappchooserwidget.c:730
 msgid "Recommended Applications"
 msgstr "Empfohlene Anwendungen"
 
-#: ../gtk/gtkappchooserwidget.c:744
+#: ../gtk/gtkappchooserwidget.c:745
 msgid "Related Applications"
 msgstr "Zugehörige Anwendungen"
 
-#: ../gtk/gtkappchooserwidget.c:758
+#: ../gtk/gtkappchooserwidget.c:759
 msgid "Other Applications"
 msgstr "Weitere Anwendungen"
 
+#: ../gtk/gtkassistant.c:1000
+msgid "C_ontinue"
+msgstr "F_ortsetzen"
+
+#: ../gtk/gtkassistant.c:1003
+msgid "Go _Back"
+msgstr "_Zurück gehen"
+
+#: ../gtk/gtkassistant.c:1007
+msgid "_Finish"
+msgstr "_Fertigstellen"
+
 #: ../gtk/gtkbuilderparser.c:342
 #, c-format
 msgid "Invalid type function on line %d: '%s'"
@@ -719,7 +749,7 @@ msgstr "Unverwalteter Tag: »%s«"
 #. * text direction of RTL and specify "calendar:YM", then the year
 #. * will appear to the right of the month.
 #.
-#: ../gtk/gtkcalendar.c:871
+#: ../gtk/gtkcalendar.c:874
 msgid "calendar:MY"
 msgstr "calendar:MY"
 
@@ -727,7 +757,7 @@ msgstr "calendar:MY"
 #. * first day of the week to calendar:week_start:1 if you want Monday
 #. * to be the first day of the week, and so on.
 #.
-#: ../gtk/gtkcalendar.c:909
+#: ../gtk/gtkcalendar.c:912
 msgid "calendar:week_start:0"
 msgstr "calendar:week_start:1"
 
@@ -736,7 +766,7 @@ msgstr "calendar:week_start:1"
 #. *
 #. * If you don't understand this, leave it as "2000"
 #.
-#: ../gtk/gtkcalendar.c:1910
+#: ../gtk/gtkcalendar.c:1913
 msgctxt "year measurement template"
 msgid "2000"
 msgstr "2000"
@@ -751,7 +781,7 @@ msgstr "2000"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1941 ../gtk/gtkcalendar.c:2638
+#: ../gtk/gtkcalendar.c:1944 ../gtk/gtkcalendar.c:2641
 #, c-format
 msgctxt "calendar:day:digits"
 msgid "%d"
@@ -767,7 +797,7 @@ msgstr "%d"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1973 ../gtk/gtkcalendar.c:2499
+#: ../gtk/gtkcalendar.c:1976 ../gtk/gtkcalendar.c:2502
 #, c-format
 msgctxt "calendar:week:digits"
 msgid "%d"
@@ -783,7 +813,7 @@ msgstr "%d"
 #. *
 #. * "%Y" is appropriate for most locales.
 #.
-#: ../gtk/gtkcalendar.c:2268
+#: ../gtk/gtkcalendar.c:2271
 msgctxt "calendar year format"
 msgid "%Y"
 msgstr "%Y"
@@ -791,7 +821,7 @@ msgstr "%Y"
 #. This label is displayed in a treeview cell displaying
 #. * a disabled accelerator key combination.
 #.
-#: ../gtk/gtkcellrendereraccel.c:271
+#: ../gtk/gtkcellrendereraccel.c:286
 msgctxt "Accelerator"
 msgid "Disabled"
 msgstr "Deaktiviert"
@@ -800,7 +830,7 @@ msgstr "Deaktiviert"
 #. * an accelerator key combination that is not valid according
 #. * to gtk_accelerator_valid().
 #.
-#: ../gtk/gtkcellrendereraccel.c:281
+#: ../gtk/gtkcellrendereraccel.c:296
 msgctxt "Accelerator"
 msgid "Invalid"
 msgstr "Ungültig"
@@ -809,11 +839,11 @@ msgstr "Ungültig"
 #. * an accelerator when the cell is clicked to change the
 #. * acelerator.
 #.
-#: ../gtk/gtkcellrendereraccel.c:417 ../gtk/gtkcellrendereraccel.c:729
+#: ../gtk/gtkcellrendereraccel.c:432 ../gtk/gtkcellrendereraccel.c:745
 msgid "New accelerator..."
 msgstr "Neue Tastenkombination …"
 
-#: ../gtk/gtkcellrendererprogress.c:362 ../gtk/gtkcellrendererprogress.c:452
+#: ../gtk/gtkcellrendererprogress.c:374 ../gtk/gtkcellrendererprogress.c:464
 #, c-format
 msgctxt "progress bar label"
 msgid "%d %%"
@@ -823,11 +853,7 @@ msgstr "%d %%"
 msgid "Pick a Color"
 msgstr "Wählen Sie eine Farbe"
 
-#: ../gtk/gtkcolorbutton.c:372
-msgid "Received invalid color data\n"
-msgstr "Ungültige Farbdaten erhalten\n"
-
-#: ../gtk/gtkcolorsel.c:415
+#: ../gtk/gtkcolorsel.c:416
 msgid ""
 "Select the color you want from the outer ring. Select the darkness or "
 "lightness of that color using the inner triangle."
@@ -836,7 +862,7 @@ msgstr ""
 "Helligkeit dieser Farbe mit dem inneren Dreieck."
 
 # gtk/gtkcolor
-#: ../gtk/gtkcolorsel.c:441
+#: ../gtk/gtkcolorsel.c:442
 msgid ""
 "Click the eyedropper, then click a color anywhere on your screen to select "
 "that color."
@@ -844,67 +870,67 @@ msgstr ""
 "Klicken Sie auf die Pipette und dann Sie auf eine Farbe irgendwo auf Ihrem "
 "Bildschirm, um sie auszuwählen"
 
-#: ../gtk/gtkcolorsel.c:451
+#: ../gtk/gtkcolorsel.c:452
 msgid "_Hue:"
 msgstr "_Ton:"
 
-#: ../gtk/gtkcolorsel.c:452
+#: ../gtk/gtkcolorsel.c:453
 msgid "Position on the color wheel."
 msgstr "Die Position auf dem Farbrad."
 
-#: ../gtk/gtkcolorsel.c:454
+#: ../gtk/gtkcolorsel.c:455
 msgid "_Saturation:"
 msgstr "_Sättigung:"
 
-#: ../gtk/gtkcolorsel.c:455
+#: ../gtk/gtkcolorsel.c:456
 msgid "Intensity of the color."
 msgstr "Intensität der Farbe."
 
-#: ../gtk/gtkcolorsel.c:456
+#: ../gtk/gtkcolorsel.c:457
 msgid "_Value:"
 msgstr "_Wert:"
 
-#: ../gtk/gtkcolorsel.c:457
+#: ../gtk/gtkcolorsel.c:458
 msgid "Brightness of the color."
 msgstr "Die Helligkeit der Farbe."
 
-#: ../gtk/gtkcolorsel.c:458
+#: ../gtk/gtkcolorsel.c:459
 msgid "_Red:"
 msgstr "_Rot:"
 
-#: ../gtk/gtkcolorsel.c:459
+#: ../gtk/gtkcolorsel.c:460
 msgid "Amount of red light in the color."
 msgstr "Der Rotanteil der Farbe."
 
-#: ../gtk/gtkcolorsel.c:460
+#: ../gtk/gtkcolorsel.c:461
 msgid "_Green:"
 msgstr "_Grün:"
 
-#: ../gtk/gtkcolorsel.c:461
+#: ../gtk/gtkcolorsel.c:462
 msgid "Amount of green light in the color."
 msgstr "Der Grünanteil der Farbe."
 
-#: ../gtk/gtkcolorsel.c:462
+#: ../gtk/gtkcolorsel.c:463
 msgid "_Blue:"
 msgstr "_Blau:"
 
-#: ../gtk/gtkcolorsel.c:463
+#: ../gtk/gtkcolorsel.c:464
 msgid "Amount of blue light in the color."
 msgstr "Der Blauanteil der Farbe."
 
-#: ../gtk/gtkcolorsel.c:466
+#: ../gtk/gtkcolorsel.c:467
 msgid "Op_acity:"
 msgstr "_Deckkraft:"
 
-#: ../gtk/gtkcolorsel.c:473 ../gtk/gtkcolorsel.c:483
+#: ../gtk/gtkcolorsel.c:475 ../gtk/gtkcolorsel.c:485
 msgid "Transparency of the color."
 msgstr "Transparenz der Farbe."
 
-#: ../gtk/gtkcolorsel.c:490
+#: ../gtk/gtkcolorsel.c:492
 msgid "Color _name:"
 msgstr "Farb_name:"
 
-#: ../gtk/gtkcolorsel.c:504
+#: ../gtk/gtkcolorsel.c:507
 msgid ""
 "You can enter an HTML-style hexadecimal color value, or simply a color name "
 "such as 'orange' in this entry."
@@ -912,25 +938,25 @@ msgstr ""
 "Sie können in diesem Feld einen hexadezimalen Farbwert wie bei HTML oder "
 "einen Farbnamen wie »orange« eingeben."
 
-#: ../gtk/gtkcolorsel.c:536
+#: ../gtk/gtkcolorsel.c:539
 msgid "_Palette:"
 msgstr "_Palette:"
 
-#: ../gtk/gtkcolorsel.c:565
+#: ../gtk/gtkcolorsel.c:569
 msgid "Color Wheel"
 msgstr "Farbrad"
 
-#: ../gtk/gtkcolorsel.c:1038
+#: ../gtk/gtkcolorsel.c:1042
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now. You can drag this color to a palette entry, or select this color as "
 "current by dragging it to the other color swatch alongside."
 msgstr ""
 "Die zuvor gewählte Farbe im Vergleich mit der Farbe, die Sie nun auswählen. "
-"Sie können diese Farbe auf einen Paletteneintrag ziehen, oder sie als "
-"aktuell auswählen, indem Sie sie auf den anderen Farbfleck daneben ziehen."
+"Sie können diese Farbe auf einen Paletteneintrag ziehen, oder sie als aktuell "
+"auswählen, indem Sie sie auf den anderen Farbfleck daneben ziehen."
 
-#: ../gtk/gtkcolorsel.c:1044
+#: ../gtk/gtkcolorsel.c:1048
 msgid ""
 "The color you've chosen. You can drag this color to a palette entry to save "
 "it for use in the future."
@@ -938,31 +964,31 @@ msgstr ""
 "Die von Ihnen gewählte Farbe. Sie können diese Farbe auf einen "
 "Paletteneintrag ziehen, um sie für späteren Gebrauch zu speichern."
 
-#: ../gtk/gtkcolorsel.c:1050
+#: ../gtk/gtkcolorsel.c:1054
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now."
 msgstr ""
 "Die vorher gewählte Farbe, für Vergleichszwecke zur aktuell gewählten Farbe."
 
-#: ../gtk/gtkcolorsel.c:1054
+#: ../gtk/gtkcolorsel.c:1058
 msgid "The color you've chosen."
 msgstr "Die von Ihnen gewählte Farbe."
 
-#: ../gtk/gtkcolorsel.c:1456
+#: ../gtk/gtkcolorsel.c:1460
 msgid "_Save color here"
 msgstr "Farbe hier _speichern"
 
-#: ../gtk/gtkcolorsel.c:1661
+#: ../gtk/gtkcolorsel.c:1665
 msgid ""
 "Click this palette entry to make it the current color. To change this entry, "
 "drag a color swatch here or right-click it and select \"Save color here.\""
 msgstr ""
-"Klicken Sie auf diesen Paletteneintrag, um ihn zur aktuellen Farbe zu "
-"machen. Ziehen Sie einen Farbfleck auf diesen Eintrag oder klicken Sie mit "
-"rechts darauf und wählen Sie »Farbe hier speichern«, um ihn zu ändern."
+"Klicken Sie auf diesen Paletteneintrag, um ihn zur aktuellen Farbe zu machen. "
+"Ziehen Sie einen Farbfleck auf diesen Eintrag oder klicken Sie mit rechts "
+"darauf und wählen Sie »Farbe hier speichern«, um ihn zu ändern."
 
-#: ../gtk/gtkcolorseldialog.c:189
+#: ../gtk/gtkcolorseldialog.c:213
 msgid "Color Selection"
 msgstr "Farbwahl"
 
@@ -977,96 +1003,134 @@ msgid "default:mm"
 msgstr "default:mm"
 
 #. And show the custom paper dialog
-#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3255
+#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3325
 msgid "Manage Custom Sizes"
 msgstr "Benutzerdefinierte Größen verwalten"
 
-#: ../gtk/gtkcustompaperunixdialog.c:532 ../gtk/gtkpagesetupunixdialog.c:788
+#: ../gtk/gtkcustompaperunixdialog.c:533 ../gtk/gtkpagesetupunixdialog.c:783
 msgid "inch"
 msgstr "Zoll"
 
-#: ../gtk/gtkcustompaperunixdialog.c:534 ../gtk/gtkpagesetupunixdialog.c:786
+#: ../gtk/gtkcustompaperunixdialog.c:535 ../gtk/gtkpagesetupunixdialog.c:781
 msgid "mm"
 msgstr "mm"
 
 # CHECK
-#: ../gtk/gtkcustompaperunixdialog.c:579
+#: ../gtk/gtkcustompaperunixdialog.c:580
 msgid "Margins from Printer..."
 msgstr "Ränder des Druckers …"
 
-#: ../gtk/gtkcustompaperunixdialog.c:745
+#: ../gtk/gtkcustompaperunixdialog.c:746
 #, c-format
 msgid "Custom Size %d"
 msgstr "Benutzerdefinierte Größe %d"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1057
+#: ../gtk/gtkcustompaperunixdialog.c:1084
 msgid "_Width:"
 msgstr "_Breite:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1069
+#: ../gtk/gtkcustompaperunixdialog.c:1097
 msgid "_Height:"
 msgstr "_Höhe:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1081
+#: ../gtk/gtkcustompaperunixdialog.c:1110
 msgid "Paper Size"
 msgstr "Papiergröße"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1090
+#: ../gtk/gtkcustompaperunixdialog.c:1119
 msgid "_Top:"
 msgstr "_Oben:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1102
+#: ../gtk/gtkcustompaperunixdialog.c:1132
 msgid "_Bottom:"
 msgstr "_Unten:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1114
+#: ../gtk/gtkcustompaperunixdialog.c:1145
 msgid "_Left:"
 msgstr "_Links:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1126
+#: ../gtk/gtkcustompaperunixdialog.c:1158
 msgid "_Right:"
 msgstr "_Rechts:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1167
+#: ../gtk/gtkcustompaperunixdialog.c:1200
 msgid "Paper Margins"
 msgstr "Papierränder"
 
-#: ../gtk/gtkentry.c:8757 ../gtk/gtktextview.c:8272
+#: ../gtk/gtkentry.c:8949 ../gtk/gtktextview.c:8277
 msgid "Input _Methods"
 msgstr "Eingabe_methoden"
 
-#: ../gtk/gtkentry.c:8771 ../gtk/gtktextview.c:8286
+#: ../gtk/gtkentry.c:8963 ../gtk/gtktextview.c:8291
 msgid "_Insert Unicode Control Character"
 msgstr "_Unicode-Steuerzeichen einfügen"
 
-#: ../gtk/gtkentry.c:10179
+#: ../gtk/gtkentry.c:10434
 msgid "Caps Lock and Num Lock are on"
 msgstr "Feststelltaste und Nummernblock-Feststelltaste sind aktiviert"
 
-#: ../gtk/gtkentry.c:10181
+#: ../gtk/gtkentry.c:10436
 msgid "Num Lock is on"
 msgstr "Nummernblock-Feststelltaste ist aktiviert"
 
-#: ../gtk/gtkentry.c:10183
+#: ../gtk/gtkentry.c:10438
 msgid "Caps Lock is on"
 msgstr "Feststelltaste ist aktiviert"
 
+#. *
+#. * SECTION:gtkfilechooserbutton
+#. * @Short_description: A button to launch a file selection dialog
+#. * @Title: GtkFileChooserButton
+#. * @See_also:#GtkFileChooserDialog
+#. *
+#. * The #GtkFileChooserButton is a widget that lets the user select a
+#. * file.  It implements the #GtkFileChooser interface.  Visually, it is a
+#. * file name with a button to bring up a #GtkFileChooserDialog.
+#. * The user can then use that dialog to change the file associated with
+#. * that button.  This widget does not support setting the
+#. * #GtkFileChooser:select-multiple property to %TRUE.
+#. *
+#. * <example>
+#. * <title>Create a button to let the user select a file in /etc</title>
+#. * <programlisting>
+#. * {
+#. *   GtkWidget *button;
+#. *
+#. *   button = gtk_file_chooser_button_new (_("Select a file"),
+#. *                                         GTK_FILE_CHOOSER_ACTION_OPEN);
+#. *   gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button),
+#. *                                        "/etc");
+#. * }
+#. * </programlisting>
+#. * </example>
+#. *
+#. * The #GtkFileChooserButton supports the #GtkFileChooserAction<!-- -->s
+#. * %GTK_FILE_CHOOSER_ACTION_OPEN and %GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
+#. *
+#. * <important>
+#. * The #GtkFileChooserButton will ellipsize the label,
+#. * and thus will thus request little horizontal space.  To give the button
+#. * more space, you should call gtk_widget_get_preferred_size(),
+#. * gtk_file_chooser_button_set_width_chars(), or pack the button in
+#. * such a way that other interface elements give space to the widget.
+#. * </important>
+#.
 #. **************** *
 #. *  Private Macros  *
 #. * ****************
-#: ../gtk/gtkfilechooserbutton.c:62
+#: ../gtk/gtkfilechooserbutton.c:105
 msgid "Select a File"
 msgstr "Datei auswählen"
 
-#: ../gtk/gtkfilechooserbutton.c:63 ../gtk/gtkfilechooserdefault.c:1865
+#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1809
 msgid "Desktop"
 msgstr "Desktop"
 
-#: ../gtk/gtkfilechooserbutton.c:64
+#: ../gtk/gtkfilechooserbutton.c:107
 msgid "(None)"
 msgstr "(keine)"
 
-#: ../gtk/gtkfilechooserbutton.c:1997
+#: ../gtk/gtkfilechooserbutton.c:2046
 msgid "Other..."
 msgstr "Andere …"
 
@@ -1111,8 +1175,8 @@ msgstr "Datei in %s konnte nicht erstellt werden, weil dies kein Ordner ist."
 
 #: ../gtk/gtkfilechooserdefault.c:1035
 msgid ""
-"You may only select folders.  The item that you selected is not a folder; "
-"try using a different item."
+"You may only select folders.  The item that you selected is not a folder; try "
+"using a different item."
 msgstr ""
 "Sie dürfen nur Ordner auswählen. Das von Ihnen ausgewählte Objekt ist kein "
 "Ordner. Versuchen Sie, ein anderes Objekt auszuwählen."
@@ -1129,181 +1193,189 @@ msgstr "Der Ordnerinhalt konnte nicht angezeigt werden"
 #. * is a hostname. Nautilus and the panel contain the same string
 #. * to translate.
 #.
-#: ../gtk/gtkfilechooserdefault.c:1608
+#: ../gtk/gtkfilechooserdefault.c:1581
 #, c-format
 msgid "%1$s on %2$s"
 msgstr "%1$s, %2$s"
 
-#: ../gtk/gtkfilechooserdefault.c:1784
+#: ../gtk/gtkfilechooserdefault.c:1730
 msgid "Search"
 msgstr "Suchen"
 
-#: ../gtk/gtkfilechooserdefault.c:1808 ../gtk/gtkfilechooserdefault.c:9494
+#: ../gtk/gtkfilechooserdefault.c:1754 ../gtk/gtkfilechooserdefault.c:4871
 msgid "Recently Used"
 msgstr "Zuletzt verwendet"
 
-#: ../gtk/gtkfilechooserdefault.c:2464
+#: ../gtk/gtkfilechooserdefault.c:2353
 msgid "Select which types of files are shown"
 msgstr "Wählen Sie die anzuzeigenden Dateitypen"
 
-#: ../gtk/gtkfilechooserdefault.c:2823
+#: ../gtk/gtkfilechooserdefault.c:2712
 #, c-format
 msgid "Add the folder '%s' to the bookmarks"
 msgstr "Ordner »%s« zu den Lesezeichen hinzufügen"
 
-#: ../gtk/gtkfilechooserdefault.c:2867
+#: ../gtk/gtkfilechooserdefault.c:2756
 #, c-format
 msgid "Add the current folder to the bookmarks"
 msgstr "Aktuellen Ordner zu den Lesezeichen hinzufügen"
 
-#: ../gtk/gtkfilechooserdefault.c:2869
+#: ../gtk/gtkfilechooserdefault.c:2758
 #, c-format
 msgid "Add the selected folders to the bookmarks"
 msgstr "Ausgewählte Ordner zu den Lesezeichen hinzufügen"
 
-#: ../gtk/gtkfilechooserdefault.c:2907
+#: ../gtk/gtkfilechooserdefault.c:2796
 #, c-format
 msgid "Remove the bookmark '%s'"
 msgstr "Lesezeichen »%s« entfernen"
 
-#: ../gtk/gtkfilechooserdefault.c:2909
+#: ../gtk/gtkfilechooserdefault.c:2798
 #, c-format
 msgid "Bookmark '%s' cannot be removed"
 msgstr "Lesezeichen »%s« kann nicht entfernt werden"
 
-#: ../gtk/gtkfilechooserdefault.c:2916 ../gtk/gtkfilechooserdefault.c:3800
+#: ../gtk/gtkfilechooserdefault.c:2805 ../gtk/gtkfilechooserdefault.c:3690
 msgid "Remove the selected bookmark"
 msgstr "Ausgewähltes Lesezeichen entfernen"
 
-#: ../gtk/gtkfilechooserdefault.c:3479
+#: ../gtk/gtkfilechooserdefault.c:3369
 msgid "Remove"
 msgstr "Entfernen"
 
-#: ../gtk/gtkfilechooserdefault.c:3488
+#: ../gtk/gtkfilechooserdefault.c:3378
 msgid "Rename..."
 msgstr "Umbenennen …"
 
 #. Accessible object name for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3652
+#: ../gtk/gtkfilechooserdefault.c:3542
 msgid "Places"
 msgstr "Orte"
 
 #. Column header for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3709
+#: ../gtk/gtkfilechooserdefault.c:3599
 msgid "_Places"
 msgstr "_Orte"
 
-#: ../gtk/gtkfilechooserdefault.c:3788
+#: ../gtk/gtkfilechooserdefault.c:3678
 msgid "Add the selected folder to the Bookmarks"
 msgstr "Den ausgewählten Ordner zu den Lesezeichen hinzufügen"
 
-#: ../gtk/gtkfilechooserdefault.c:3935
+#: ../gtk/gtkfilechooserdefault.c:3825
 msgid "Could not select file"
 msgstr "Datei konnte nicht ausgewählt werden"
 
-#: ../gtk/gtkfilechooserdefault.c:4108
+#: ../gtk/gtkfilechooserdefault.c:3998
 msgid "_Add to Bookmarks"
 msgstr "Zu Lesezeichen _hinzufügen"
 
-#: ../gtk/gtkfilechooserdefault.c:4121
+#: ../gtk/gtkfilechooserdefault.c:4011
 msgid "Show _Hidden Files"
 msgstr "_Verborgene Dateien anzeigen"
 
-#: ../gtk/gtkfilechooserdefault.c:4128
+#: ../gtk/gtkfilechooserdefault.c:4018
 msgid "Show _Size Column"
 msgstr "Spalte »_Größe« anzeigen"
 
-#: ../gtk/gtkfilechooserdefault.c:4353
+#: ../gtk/gtkfilechooserdefault.c:4243
 msgid "Files"
 msgstr "Dateien"
 
-#: ../gtk/gtkfilechooserdefault.c:4404
+#: ../gtk/gtkfilechooserdefault.c:4294
 msgid "Name"
 msgstr "Name"
 
-#: ../gtk/gtkfilechooserdefault.c:4427
+#: ../gtk/gtkfilechooserdefault.c:4317
 msgid "Size"
 msgstr "Größe"
 
 # CHECK
-#: ../gtk/gtkfilechooserdefault.c:4441
+#: ../gtk/gtkfilechooserdefault.c:4331
 msgid "Modified"
 msgstr "Letzte Änderung"
 
 #. Label
-#: ../gtk/gtkfilechooserdefault.c:4696 ../gtk/gtkprinteroptionwidget.c:793
+#: ../gtk/gtkfilechooserdefault.c:4412 ../gtk/gtkprinteroptionwidget.c:799
 msgid "_Name:"
 msgstr "_Name:"
 
-#: ../gtk/gtkfilechooserdefault.c:4739
-msgid "_Browse for other folders"
-msgstr "Ordner-_Browser"
-
-#: ../gtk/gtkfilechooserdefault.c:5009
+#: ../gtk/gtkfilechooserdefault.c:4709
 msgid "Type a file name"
 msgstr "Geben Sie einen Dateinamen an"
 
+#: ../gtk/gtkfilechooserdefault.c:4756 ../gtk/gtkfilechooserdefault.c:4767
+msgid "Please select a folder below"
+msgstr "Wählen Sie nachfolgend einen Ordner"
+
+#: ../gtk/gtkfilechooserdefault.c:4762
+msgid "Please type a file name"
+msgstr "Geben Sie einen Dateinamen ein"
+
 #. Create Folder
-#: ../gtk/gtkfilechooserdefault.c:5052
+#: ../gtk/gtkfilechooserdefault.c:4833
 msgid "Create Fo_lder"
 msgstr "Ordner anle_gen"
 
-#: ../gtk/gtkfilechooserdefault.c:5062
+#: ../gtk/gtkfilechooserdefault.c:4881
+msgid "Search:"
+msgstr "Suchen:"
+
+#: ../gtk/gtkfilechooserdefault.c:4928
 msgid "_Location:"
 msgstr "_Ort:"
 
-#: ../gtk/gtkfilechooserdefault.c:5267
+#: ../gtk/gtkfilechooserdefault.c:5245
 msgid "Save in _folder:"
 msgstr "In _Ordner speichern:"
 
-#: ../gtk/gtkfilechooserdefault.c:5269
+#: ../gtk/gtkfilechooserdefault.c:5247
 msgid "Create in _folder:"
 msgstr "In _Ordner anlegen"
 
-#: ../gtk/gtkfilechooserdefault.c:6352
+#: ../gtk/gtkfilechooserdefault.c:6341
 #, c-format
 msgid "Could not read the contents of %s"
 msgstr "Inhalt von %s konnte nicht gelesen werden"
 
-#: ../gtk/gtkfilechooserdefault.c:6356
+#: ../gtk/gtkfilechooserdefault.c:6345
 msgid "Could not read the contents of the folder"
 msgstr "Inhalt des Ordners konnte nicht gelesen werden"
 
-#: ../gtk/gtkfilechooserdefault.c:6449 ../gtk/gtkfilechooserdefault.c:6517
-#: ../gtk/gtkfilechooserdefault.c:6669
+#: ../gtk/gtkfilechooserdefault.c:6438 ../gtk/gtkfilechooserdefault.c:6506
+#: ../gtk/gtkfilechooserdefault.c:6658
 msgid "Unknown"
 msgstr "Unbekannt"
 
-#: ../gtk/gtkfilechooserdefault.c:6464
+#: ../gtk/gtkfilechooserdefault.c:6453
 msgid "%H:%M"
 msgstr "%H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:6466
+#: ../gtk/gtkfilechooserdefault.c:6455
 msgid "Yesterday at %H:%M"
 msgstr "Gestern um %H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:7135
+#: ../gtk/gtkfilechooserdefault.c:7140
 msgid "Cannot change to folder because it is not local"
 msgstr ""
 "Es konnte nicht in den angegebenen Ordner gewechselt werden, weil dieser "
 "nicht lokal ist."
 
-#: ../gtk/gtkfilechooserdefault.c:7732 ../gtk/gtkfilechooserdefault.c:7753
+#: ../gtk/gtkfilechooserdefault.c:7740 ../gtk/gtkfilechooserdefault.c:7761
 #, c-format
 msgid "Shortcut %s already exists"
 msgstr "Das Lesezeichen %s existiert bereits"
 
-#: ../gtk/gtkfilechooserdefault.c:7843
+#: ../gtk/gtkfilechooserdefault.c:7851
 #, c-format
 msgid "Shortcut %s does not exist"
 msgstr "Das Lesezeichen %s existiert nicht"
 
-#: ../gtk/gtkfilechooserdefault.c:8102 ../gtk/gtkprintunixdialog.c:480
+#: ../gtk/gtkfilechooserdefault.c:8097 ../gtk/gtkprintunixdialog.c:550
 #, c-format
 msgid "A file named \"%s\" already exists.  Do you want to replace it?"
 msgstr "Eine Datei namens »%s« existiert bereits. Möchten Sie diese ersetzen?"
 
-#: ../gtk/gtkfilechooserdefault.c:8105 ../gtk/gtkprintunixdialog.c:484
+#: ../gtk/gtkfilechooserdefault.c:8100 ../gtk/gtkprintunixdialog.c:554
 #, c-format
 msgid ""
 "The file already exists in \"%s\".  Replacing it will overwrite its contents."
@@ -1311,15 +1383,15 @@ msgstr ""
 "Die Datei existiert bereits in »%s«. Durch ihr Ersetzen wird sämtlicher "
 "Inhalt überschrieben."
 
-#: ../gtk/gtkfilechooserdefault.c:8110 ../gtk/gtkprintunixdialog.c:491
+#: ../gtk/gtkfilechooserdefault.c:8105 ../gtk/gtkprintunixdialog.c:561
 msgid "_Replace"
 msgstr "_Ersetzen"
 
-#: ../gtk/gtkfilechooserdefault.c:8836
+#: ../gtk/gtkfilechooserdefault.c:8900
 msgid "Could not start the search process"
 msgstr "Der Suchprozess konnte nicht gestartet werden"
 
-#: ../gtk/gtkfilechooserdefault.c:8837
+#: ../gtk/gtkfilechooserdefault.c:8901
 msgid ""
 "The program was not able to create a connection to the indexer daemon.  "
 "Please make sure it is running."
@@ -1327,36 +1399,34 @@ msgstr ""
 "Es konnte keine Verbindung zum Indexer-Dienst hergestellt werden. Bitte "
 "stellen Sie sicher, dass er läuft."
 
-#: ../gtk/gtkfilechooserdefault.c:8851
+#: ../gtk/gtkfilechooserdefault.c:8915
 msgid "Could not send the search request"
 msgstr "Die Suchanfrage konnte nicht gestellt werden"
 
-#: ../gtk/gtkfilechooserdefault.c:9070
-msgid "Search:"
-msgstr "Suchen:"
-
-#: ../gtk/gtkfilechooserdefault.c:9678
+#: ../gtk/gtkfilechooserdefault.c:9707
 #, c-format
 msgid "Could not mount %s"
 msgstr "%s konnte nicht eingebunden werden"
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry, when the user enters an invalid path.
-#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1179
+#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1174
+#: ../gtk/gtkfilesystem.c:721
+#, c-format
 msgid "Invalid path"
 msgstr "Ungültiger Pfad"
 
 #. translators: this text is shown when there are no completions
 #. * for something the user typed in a file chooser entry
 #.
-#: ../gtk/gtkfilechooserentry.c:1111
+#: ../gtk/gtkfilechooserentry.c:1106
 msgid "No match"
 msgstr "Kein Treffer"
 
 #. translators: this text is shown when there is exactly one completion
 #. * for something the user typed in a file chooser entry
 #.
-#: ../gtk/gtkfilechooserentry.c:1122
+#: ../gtk/gtkfilechooserentry.c:1117
 msgid "Sole completion"
 msgstr "Einzelabschluss"
 
@@ -1364,13 +1434,13 @@ msgstr "Einzelabschluss"
 #. * entry is a complete filename, but could be continued to find
 #. * a longer match
 #.
-#: ../gtk/gtkfilechooserentry.c:1138
+#: ../gtk/gtkfilechooserentry.c:1133
 msgid "Complete, but not unique"
 msgstr "Komplett, aber nicht eindeutig"
 
 #. Translators: this text is shown while the system is searching
 #. * for possible completions for filenames in a file chooser entry.
-#: ../gtk/gtkfilechooserentry.c:1170
+#: ../gtk/gtkfilechooserentry.c:1165
 msgid "Completing..."
 msgstr "Aufgabe wird abgeschlossen …"
 
@@ -1378,7 +1448,7 @@ msgstr "Aufgabe wird abgeschlossen …"
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user enters something like
 #. * "sftp://blahblah" in an app that only supports local filenames.
-#: ../gtk/gtkfilechooserentry.c:1192 ../gtk/gtkfilechooserentry.c:1217
+#: ../gtk/gtkfilechooserentry.c:1187 ../gtk/gtkfilechooserentry.c:1212
 msgid "Only local files may be selected"
 msgstr "Nur lokale Dateien können ausgewählt werden"
 
@@ -1386,14 +1456,14 @@ msgstr "Nur lokale Dateien können ausgewählt werden"
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user hasn't entered the first '/'
 #. * after a hostname and yet hits Tab (such as "sftp://blahblah[Tab]")
-#: ../gtk/gtkfilechooserentry.c:1201
+#: ../gtk/gtkfilechooserentry.c:1196
 msgid "Incomplete hostname; end it with '/'"
 msgstr "Unvollständiger Rechnername; er muss mit »/« enden"
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry when the user enters a path that does not exist
 #. * and then hits Tab
-#: ../gtk/gtkfilechooserentry.c:1212
+#: ../gtk/gtkfilechooserentry.c:1207
 msgid "Path does not exist"
 msgstr "Der Pfad existiert nicht"
 
@@ -1406,77 +1476,56 @@ msgstr "Der Pfad existiert nicht"
 msgid "File System"
 msgstr "Dateisystem"
 
-#: ../gtk/gtkfontbutton.c:142 ../gtk/gtkfontbutton.c:266
+#: ../gtk/gtkfontbutton.c:153 ../gtk/gtkfontbutton.c:277
 msgid "Pick a Font"
 msgstr "Wählen Sie eine Schrift"
 
 #. Initialize fields
-#: ../gtk/gtkfontbutton.c:260
+#: ../gtk/gtkfontbutton.c:271
 msgid "Sans 12"
 msgstr "Sans 12"
 
-#: ../gtk/gtkfontbutton.c:785
+#: ../gtk/gtkfontbutton.c:796
 msgid "Font"
 msgstr "Schrift"
 
 #. This is the default text shown in the preview entry, though the user
 #. can set it. Remember that some fonts only have capital letters.
-#: ../gtk/gtkfontsel.c:100
+#: ../gtk/gtkfontsel.c:119
 msgid "abcdefghijk ABCDEFGHIJK"
 msgstr "abcdefghijk ABCDEFGHIJK"
 
-#: ../gtk/gtkfontsel.c:366
+#: ../gtk/gtkfontsel.c:388
 msgid "_Family:"
 msgstr "_Familie:"
 
-#: ../gtk/gtkfontsel.c:372
+#: ../gtk/gtkfontsel.c:395
 msgid "_Style:"
 msgstr "_Stil:"
 
-#: ../gtk/gtkfontsel.c:378
+#: ../gtk/gtkfontsel.c:402
 msgid "Si_ze:"
 msgstr "_Größe:"
 
 #. create the text entry widget
-#: ../gtk/gtkfontsel.c:554
+#: ../gtk/gtkfontsel.c:579
 msgid "_Preview:"
 msgstr "_Vorschau:"
 
-#: ../gtk/gtkfontsel.c:1653
+#: ../gtk/gtkfontsel.c:1701
 msgid "Font Selection"
 msgstr "Schriftwahl"
 
-#. Remove this icon source so we don't keep trying to
-#. * load it.
-#.
-#: ../gtk/gtkiconfactory.c:1358
-#, c-format
-msgid "Error loading icon: %s"
-msgstr "Fehler beim Laden des Symbols: %s"
-
-#: ../gtk/gtkicontheme.c:1336
-#, c-format
-msgid ""
-"Could not find the icon '%s'. The '%s' theme\n"
-"was not found either, perhaps you need to install it.\n"
-"You can get a copy from:\n"
-"\t%s"
-msgstr ""
-"Das Symbol »%s« konnte nicht gefunden werden,\n"
-"ebenso wenig wie das Thema »%s«. Möglicherweise müssen Sie es installieren.\n"
-"Sie können sich eine Kopie herunterladen unter:\n"
-"\t%s"
-
-#: ../gtk/gtkicontheme.c:1518
+#: ../gtk/gtkicontheme.c:1605
 #, c-format
 msgid "Icon '%s' not present in theme"
 msgstr "Symbol »%s« nicht im Thema vorhanden"
 
-#: ../gtk/gtkicontheme.c:3038
+#: ../gtk/gtkicontheme.c:3115
 msgid "Failed to load icon"
 msgstr "Symbol konnte nicht geladen werden"
 
-#: ../gtk/gtkimmodule.c:526
+#: ../gtk/gtkimmodule.c:525
 msgid "Simple"
 msgstr "Einfach"
 
@@ -1497,45 +1546,79 @@ msgid "System (%s)"
 msgstr "System (%s)"
 
 #. Open Link
-#: ../gtk/gtklabel.c:6247
+#: ../gtk/gtklabel.c:6309
 msgid "_Open Link"
 msgstr "Link ö_ffnen"
 
 #. Copy Link Address
-#: ../gtk/gtklabel.c:6259
+#: ../gtk/gtklabel.c:6321
 msgid "Copy _Link Address"
 msgstr "Link-Adresse _kopieren"
 
-#: ../gtk/gtklinkbutton.c:482
+#: ../gtk/gtklinkbutton.c:484
 msgid "Copy URL"
 msgstr "URL kopieren"
 
-#: ../gtk/gtklinkbutton.c:645
+#: ../gtk/gtklinkbutton.c:647
 msgid "Invalid URI"
 msgstr "Ungültige Adresse"
 
+#: ../gtk/gtklockbutton.c:288
+msgid "Lock"
+msgstr "Sperren"
+
+#: ../gtk/gtklockbutton.c:297
+msgid "Unlock"
+msgstr "Entsperren"
+
+#: ../gtk/gtklockbutton.c:306
+msgid ""
+"Dialog is unlocked.\n"
+"Click to prevent further changes"
+msgstr ""
+"Dialog ist entsperrt.\n"
+"Klicken Sie, um Ände-\n"
+"rungen zu verhindern"
+
+#: ../gtk/gtklockbutton.c:315
+msgid ""
+"Dialog is locked.\n"
+"Click to make changes"
+msgstr ""
+"Dialog ist gesperrt.\n"
+"Klicken Sie für\n"
+"Änderungen"
+
+#: ../gtk/gtklockbutton.c:324
+msgid ""
+"System policy prevents changes.\n"
+"Contact your system administrator"
+msgstr ""
+"Die Systemrichtlinien verhindern Änderungen.\n"
+"Bitte kontaktieren Sie Ihren Systemadministrator für Hilfe."
+
 #. Description of --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:563
+#: ../gtk/gtkmain.c:562
 msgid "Load additional GTK+ modules"
 msgstr "Zusätzliche GTK+-Module laden"
 
 #. Placeholder in --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:564
+#: ../gtk/gtkmain.c:563
 msgid "MODULES"
 msgstr "MODULE"
 
 #. Description of --g-fatal-warnings in --help output
-#: ../gtk/gtkmain.c:566
+#: ../gtk/gtkmain.c:565
 msgid "Make all warnings fatal"
 msgstr "Alle Warnungen als fatal betrachten"
 
 #. Description of --gtk-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:569
+#: ../gtk/gtkmain.c:568
 msgid "GTK+ debugging flags to set"
 msgstr "Zu übergebende GTK+-Fehlerdiagnoseoptionen"
 
 #. Description of --gtk-no-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:572
+#: ../gtk/gtkmain.c:571
 msgid "GTK+ debugging flags to unset"
 msgstr "Nicht zu übergebende GTK+-Fehlerdiagnoseoptionen"
 
@@ -1544,69 +1627,69 @@ msgstr "Nicht zu übergebende GTK+-Fehlerdiagnoseoptionen"
 #. * Do *not* translate it to "predefinito:LTR", if it
 #. * it isn't default:LTR or default:RTL it will not work
 #.
-#: ../gtk/gtkmain.c:846
+#: ../gtk/gtkmain.c:848
 msgid "default:LTR"
 msgstr "default:LTR"
 
-#: ../gtk/gtkmain.c:910
+#: ../gtk/gtkmain.c:914
 #, c-format
 msgid "Cannot open display: %s"
 msgstr "Anzeige kann nicht geöffnet werden: %s"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "GTK+ Options"
 msgstr "GTK+-Optionen"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "Show GTK+ Options"
 msgstr "GTK+-Optionen anzeigen"
 
-#: ../gtk/gtkmountoperation.c:491
+#: ../gtk/gtkmountoperation.c:489
 msgid "Co_nnect"
 msgstr "_Verbinden"
 
-#: ../gtk/gtkmountoperation.c:558
+#: ../gtk/gtkmountoperation.c:559
 msgid "Connect _anonymously"
 msgstr "_Anonym verbinden"
 
-#: ../gtk/gtkmountoperation.c:567
+#: ../gtk/gtkmountoperation.c:568
 msgid "Connect as u_ser:"
 msgstr "Als _Benutzer verbinden:"
 
-#: ../gtk/gtkmountoperation.c:605
+#: ../gtk/gtkmountoperation.c:602
 msgid "_Username:"
 msgstr "_Benutzername:"
 
-#: ../gtk/gtkmountoperation.c:610
+#: ../gtk/gtkmountoperation.c:607
 msgid "_Domain:"
 msgstr "_Domäne:"
 
-#: ../gtk/gtkmountoperation.c:616
+#: ../gtk/gtkmountoperation.c:613
 msgid "_Password:"
 msgstr "_Passwort:"
 
-#: ../gtk/gtkmountoperation.c:634
+#: ../gtk/gtkmountoperation.c:631
 msgid "Forget password _immediately"
 msgstr "Passwort sofort _vergessen"
 
-#: ../gtk/gtkmountoperation.c:644
+#: ../gtk/gtkmountoperation.c:641
 msgid "Remember password until you _logout"
 msgstr "Passwort erst beim Ab_melden vergessen"
 
-#: ../gtk/gtkmountoperation.c:654
+#: ../gtk/gtkmountoperation.c:651
 msgid "Remember _forever"
 msgstr "_Nie vergessen"
 
-#: ../gtk/gtkmountoperation.c:883
+#: ../gtk/gtkmountoperation.c:880
 #, c-format
 msgid "Unknown Application (PID %d)"
 msgstr "Unbekannte Anwendung (Kennung %d)"
 
-#: ../gtk/gtkmountoperation.c:1066
+#: ../gtk/gtkmountoperation.c:1063
 msgid "Unable to end process"
 msgstr "Prozess kann nicht beendet werden"
 
-#: ../gtk/gtkmountoperation.c:1103
+#: ../gtk/gtkmountoperation.c:1100
 msgid "_End Process"
 msgstr "Prozess b_eenden"
 
@@ -1618,32 +1701,32 @@ msgstr ""
 "implementiert."
 
 #. translators: this string is a name for the 'less' command
-#: ../gtk/gtkmountoperation-x11.c:859
+#: ../gtk/gtkmountoperation-x11.c:959
 msgid "Terminal Pager"
 msgstr "Terminal-Pager"
 
-#: ../gtk/gtkmountoperation-x11.c:860
+#: ../gtk/gtkmountoperation-x11.c:960
 msgid "Top Command"
 msgstr "Oberster Befehl"
 
-#: ../gtk/gtkmountoperation-x11.c:861
+#: ../gtk/gtkmountoperation-x11.c:961
 msgid "Bourne Again Shell"
 msgstr "Bourne-Again-Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:862
+#: ../gtk/gtkmountoperation-x11.c:962
 msgid "Bourne Shell"
 msgstr "Bourne-Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:863
+#: ../gtk/gtkmountoperation-x11.c:963
 msgid "Z Shell"
 msgstr "Z-Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:960
+#: ../gtk/gtkmountoperation-x11.c:1060
 #, c-format
 msgid "Cannot end process with PID %d: %s"
 msgstr "Prozess mit Kennung %d kann nicht abgewürgt werden: %s"
 
-#: ../gtk/gtknotebook.c:4805 ../gtk/gtknotebook.c:7461
+#: ../gtk/gtknotebook.c:4922 ../gtk/gtknotebook.c:7611
 #, c-format
 msgid "Page %u"
 msgstr "Seite %u"
@@ -1651,7 +1734,7 @@ msgstr "Seite %u"
 #. Translators: the format here is used to build the string that will be rendered
 #. * in the number emblem.
 #.
-#: ../gtk/gtknumerableicon.c:481
+#: ../gtk/gtknumerableicon.c:482
 #, c-format
 msgctxt "Number format"
 msgid "%d"
@@ -1662,16 +1745,16 @@ msgstr "%d"
 msgid "Not a valid page setup file"
 msgstr "Keine gültige Seiteneinstellungs-Datei"
 
-#: ../gtk/gtkpagesetupunixdialog.c:177
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "Any Printer"
 msgstr "Beliebiger Drucker"
 
 # CHECK
-#: ../gtk/gtkpagesetupunixdialog.c:177
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "For portable documents"
 msgstr "Für portable Dokumente"
 
-#: ../gtk/gtkpagesetupunixdialog.c:807
+#: ../gtk/gtkpagesetupunixdialog.c:802
 #, c-format
 msgid ""
 "Margins:\n"
@@ -1686,37 +1769,37 @@ msgstr ""
 " Oben: %s %s\n"
 " Unten: %s %s"
 
-#: ../gtk/gtkpagesetupunixdialog.c:856 ../gtk/gtkprintunixdialog.c:3306
+#: ../gtk/gtkpagesetupunixdialog.c:851 ../gtk/gtkprintunixdialog.c:3376
 msgid "Manage Custom Sizes..."
 msgstr "Benutzerdefinierte Größen verwalten …"
 
-#: ../gtk/gtkpagesetupunixdialog.c:907
+#: ../gtk/gtkpagesetupunixdialog.c:902
 msgid "_Format for:"
 msgstr "_Format für:"
 
 # Auch wenn im Original die Tastenkürzel kollidieren (_Preferences),
 # wir verwenden Ei_genschaften.
-#: ../gtk/gtkpagesetupunixdialog.c:929 ../gtk/gtkprintunixdialog.c:3478
+#: ../gtk/gtkpagesetupunixdialog.c:925 ../gtk/gtkprintunixdialog.c:3556
 msgid "_Paper size:"
 msgstr "Ei_genschaften:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:960
+#: ../gtk/gtkpagesetupunixdialog.c:958
 msgid "_Orientation:"
 msgstr "_Ausrichtung:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:1024 ../gtk/gtkprintunixdialog.c:3540
+#: ../gtk/gtkpagesetupunixdialog.c:1023 ../gtk/gtkprintunixdialog.c:3620
 msgid "Page Setup"
 msgstr "Seite einrichten"
 
-#: ../gtk/gtkpathbar.c:157
+#: ../gtk/gtkpathbar.c:156
 msgid "Up Path"
 msgstr "Pfad aufwärts"
 
-#: ../gtk/gtkpathbar.c:159
+#: ../gtk/gtkpathbar.c:158
 msgid "Down Path"
 msgstr "Pfad abwärts"
 
-#: ../gtk/gtkpathbar.c:1518
+#: ../gtk/gtkpathbar.c:1516
 msgid "File System Root"
 msgstr "Dateisystem-Wurzel"
 
@@ -1724,15 +1807,15 @@ msgstr "Dateisystem-Wurzel"
 msgid "Authentication"
 msgstr "Legitimation"
 
-#: ../gtk/gtkprinteroptionwidget.c:686
+#: ../gtk/gtkprinteroptionwidget.c:692
 msgid "Not available"
 msgstr "Nicht verfügbar"
 
-#: ../gtk/gtkprinteroptionwidget.c:786
+#: ../gtk/gtkprinteroptionwidget.c:792
 msgid "Select a folder"
 msgstr "Ordner auswählen"
 
-#: ../gtk/gtkprinteroptionwidget.c:805
+#: ../gtk/gtkprinteroptionwidget.c:812
 msgid "_Save in folder:"
 msgstr "In _Ordner speichern:"
 
@@ -1832,7 +1915,7 @@ msgstr "Kein Papier mehr"
 
 #. Translators: this is a printer status.
 #: ../gtk/gtkprintoperation-win32.c:615
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2002
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2022
 msgid "Paused"
 msgstr "Pausiert"
 
@@ -1877,49 +1960,49 @@ msgstr "Ungültiger Handle für PrintDlgEx"
 msgid "Unspecified error"
 msgstr "Unbekannter Fehler"
 
-#: ../gtk/gtkprintunixdialog.c:618
+#: ../gtk/gtkprintunixdialog.c:688
 msgid "Getting printer information failed"
 msgstr "Holen der Informationen über Drucker ist gescheitert"
 
-#: ../gtk/gtkprintunixdialog.c:1873
+#: ../gtk/gtkprintunixdialog.c:1942
 msgid "Getting printer information..."
 msgstr "Informationen über Drucker werden geholt …"
 
-#: ../gtk/gtkprintunixdialog.c:2147
+#: ../gtk/gtkprintunixdialog.c:2216
 msgid "Printer"
 msgstr "Drucker"
 
 #. Translators: this is the header for the location column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2157
+#: ../gtk/gtkprintunixdialog.c:2226
 msgid "Location"
 msgstr "Standort"
 
 #. Translators: this is the header for the printer status column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2168
+#: ../gtk/gtkprintunixdialog.c:2237
 msgid "Status"
 msgstr "Status"
 
-#: ../gtk/gtkprintunixdialog.c:2194
+#: ../gtk/gtkprintunixdialog.c:2263
 msgid "Range"
 msgstr "Seiten"
 
-#: ../gtk/gtkprintunixdialog.c:2198
+#: ../gtk/gtkprintunixdialog.c:2267
 msgid "_All Pages"
 msgstr "_Alle Seiten"
 
-#: ../gtk/gtkprintunixdialog.c:2205
+#: ../gtk/gtkprintunixdialog.c:2274
 msgid "C_urrent Page"
 msgstr "Aktue_lle Seite"
 
-#: ../gtk/gtkprintunixdialog.c:2215
+#: ../gtk/gtkprintunixdialog.c:2284
 msgid "Se_lection"
 msgstr "Au_swahl"
 
-#: ../gtk/gtkprintunixdialog.c:2224
+#: ../gtk/gtkprintunixdialog.c:2293
 msgid "Pag_es:"
 msgstr "_Seiten:"
 
-#: ../gtk/gtkprintunixdialog.c:2225
+#: ../gtk/gtkprintunixdialog.c:2294
 msgid ""
 "Specify one or more page ranges,\n"
 " e.g. 1-3,7,11"
@@ -1927,28 +2010,28 @@ msgstr ""
 "Geben Sie einen oder mehrere Druckbereiche ein,\n"
 "z.B. 5-11,19,85"
 
-#: ../gtk/gtkprintunixdialog.c:2235
+#: ../gtk/gtkprintunixdialog.c:2304
 msgid "Pages"
 msgstr "Seiten"
 
-#: ../gtk/gtkprintunixdialog.c:2248
+#: ../gtk/gtkprintunixdialog.c:2317
 msgid "Copies"
 msgstr "Kopien"
 
 #. FIXME chpe: too much space between Copies and spinbutton, put those 2 in a hbox and make it span 2 columns
-#: ../gtk/gtkprintunixdialog.c:2253
+#: ../gtk/gtkprintunixdialog.c:2322
 msgid "Copie_s:"
 msgstr "_Kopien:"
 
-#: ../gtk/gtkprintunixdialog.c:2271
+#: ../gtk/gtkprintunixdialog.c:2341
 msgid "C_ollate"
 msgstr "_Zusammentragen"
 
-#: ../gtk/gtkprintunixdialog.c:2279
+#: ../gtk/gtkprintunixdialog.c:2349
 msgid "_Reverse"
 msgstr "_Rückwärts"
 
-#: ../gtk/gtkprintunixdialog.c:2299
+#: ../gtk/gtkprintunixdialog.c:2369
 msgid "General"
 msgstr "Allgemein"
 
@@ -1958,170 +2041,170 @@ msgstr "Allgemein"
 #. Translators: These strings name the possible arrangements of
 #. * multiple pages on a sheet when printing
 #.
-#: ../gtk/gtkprintunixdialog.c:3039
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3535
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, top to bottom"
 msgstr "Links nach rechts, oben nach unten"
 
-#: ../gtk/gtkprintunixdialog.c:3039
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3535
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, bottom to top"
 msgstr "Links nach rechts, unten nach oben"
 
-#: ../gtk/gtkprintunixdialog.c:3040
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3536
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, top to bottom"
 msgstr "Rechts nach links, oben nach unten"
 
-#: ../gtk/gtkprintunixdialog.c:3040
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3536
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, bottom to top"
 msgstr "Rechts nach links, unten nach oben"
 
-#: ../gtk/gtkprintunixdialog.c:3041
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3537
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, left to right"
 msgstr "Oben nach unten, links nach rechts"
 
-#: ../gtk/gtkprintunixdialog.c:3041
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3537
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, right to left"
 msgstr "Oben nach unten, rechts nach links"
 
-#: ../gtk/gtkprintunixdialog.c:3042
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, left to right"
 msgstr "Unten nach oben, links nach rechts"
 
-#: ../gtk/gtkprintunixdialog.c:3042
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, right to left"
 msgstr "Unten nach oben, rechts nach links"
 
 #. Translators, this string is used to label the option in the print
 #. * dialog that controls in what order multiple pages are arranged
 #.
-#: ../gtk/gtkprintunixdialog.c:3046 ../gtk/gtkprintunixdialog.c:3059
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3570
+#: ../gtk/gtkprintunixdialog.c:3116 ../gtk/gtkprintunixdialog.c:3129
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3609
 msgid "Page Ordering"
 msgstr "Reihenfolge"
 
-#: ../gtk/gtkprintunixdialog.c:3075
+#: ../gtk/gtkprintunixdialog.c:3145
 msgid "Left to right"
 msgstr "Links nach rechts"
 
-#: ../gtk/gtkprintunixdialog.c:3076
+#: ../gtk/gtkprintunixdialog.c:3146
 msgid "Right to left"
 msgstr "Rechts nach links"
 
-#: ../gtk/gtkprintunixdialog.c:3088
+#: ../gtk/gtkprintunixdialog.c:3158
 msgid "Top to bottom"
 msgstr "Oben nach unten"
 
-#: ../gtk/gtkprintunixdialog.c:3089
+#: ../gtk/gtkprintunixdialog.c:3159
 msgid "Bottom to top"
 msgstr "Unten nach oben"
 
-#: ../gtk/gtkprintunixdialog.c:3329
+#: ../gtk/gtkprintunixdialog.c:3399
 msgid "Layout"
 msgstr "Layout"
 
-#: ../gtk/gtkprintunixdialog.c:3333
+#: ../gtk/gtkprintunixdialog.c:3403
 msgid "T_wo-sided:"
 msgstr "_Beidseitig"
 
-#: ../gtk/gtkprintunixdialog.c:3348
+#: ../gtk/gtkprintunixdialog.c:3419
 msgid "Pages per _side:"
 msgstr "Seiten pro _Blatt:"
 
-#: ../gtk/gtkprintunixdialog.c:3365
+#: ../gtk/gtkprintunixdialog.c:3437
 msgid "Page or_dering:"
 msgstr "_Reihenfolge:"
 
-#: ../gtk/gtkprintunixdialog.c:3381
+#: ../gtk/gtkprintunixdialog.c:3454
 msgid "_Only print:"
 msgstr "Be_schränken auf:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3396
+#: ../gtk/gtkprintunixdialog.c:3470
 msgid "All sheets"
 msgstr "Alle Seiten"
 
-#: ../gtk/gtkprintunixdialog.c:3397
+#: ../gtk/gtkprintunixdialog.c:3471
 msgid "Even sheets"
 msgstr "Gerade Seiten"
 
-#: ../gtk/gtkprintunixdialog.c:3398
+#: ../gtk/gtkprintunixdialog.c:3472
 msgid "Odd sheets"
 msgstr "Ungerade Seiten"
 
-#: ../gtk/gtkprintunixdialog.c:3401
+#: ../gtk/gtkprintunixdialog.c:3475
 msgid "Sc_ale:"
 msgstr "S_kalierung:"
 
-#: ../gtk/gtkprintunixdialog.c:3428
+#: ../gtk/gtkprintunixdialog.c:3503
 msgid "Paper"
 msgstr "Papier"
 
-#: ../gtk/gtkprintunixdialog.c:3432
+#: ../gtk/gtkprintunixdialog.c:3507
 msgid "Paper _type:"
 msgstr "Papier_typ:"
 
-#: ../gtk/gtkprintunixdialog.c:3447
+#: ../gtk/gtkprintunixdialog.c:3523
 msgid "Paper _source:"
 msgstr "Papiere_inzug:"
 
-#: ../gtk/gtkprintunixdialog.c:3462
+#: ../gtk/gtkprintunixdialog.c:3539
 msgid "Output t_ray:"
 msgstr "Ausgabes_chacht:"
 
-#: ../gtk/gtkprintunixdialog.c:3502
+#: ../gtk/gtkprintunixdialog.c:3581
 msgid "Or_ientation:"
 msgstr "_Ausrichtung:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3517
+#: ../gtk/gtkprintunixdialog.c:3597
 msgid "Portrait"
 msgstr "Hochformat"
 
-#: ../gtk/gtkprintunixdialog.c:3518
+#: ../gtk/gtkprintunixdialog.c:3598
 msgid "Landscape"
 msgstr "Querformat"
 
-#: ../gtk/gtkprintunixdialog.c:3519
+#: ../gtk/gtkprintunixdialog.c:3599
 msgid "Reverse portrait"
 msgstr "Kopfstehendes Hochformat"
 
-#: ../gtk/gtkprintunixdialog.c:3520
+#: ../gtk/gtkprintunixdialog.c:3600
 msgid "Reverse landscape"
 msgstr "Kopfstehendes Querformat"
 
-#: ../gtk/gtkprintunixdialog.c:3565
+#: ../gtk/gtkprintunixdialog.c:3645
 msgid "Job Details"
 msgstr "Druckauftrag"
 
-#: ../gtk/gtkprintunixdialog.c:3571
+#: ../gtk/gtkprintunixdialog.c:3651
 msgid "Pri_ority:"
 msgstr "_Priorität:"
 
 # CHECK
-#: ../gtk/gtkprintunixdialog.c:3586
+#: ../gtk/gtkprintunixdialog.c:3667
 msgid "_Billing info:"
 msgstr "_Abrechnungsinfo:"
 
 # CHECK
-#: ../gtk/gtkprintunixdialog.c:3604
+#: ../gtk/gtkprintunixdialog.c:3686
 msgid "Print Document"
 msgstr "Druckauftrag ausführen"
 
 #. Translators: this is one of the choices for the print at option
 #. * in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3613
+#: ../gtk/gtkprintunixdialog.c:3695
 msgid "_Now"
 msgstr "_Jetzt"
 
-#: ../gtk/gtkprintunixdialog.c:3624
+#: ../gtk/gtkprintunixdialog.c:3706
 msgid "A_t:"
 msgstr "_Um:"
 
@@ -2129,7 +2212,7 @@ msgstr "_Um:"
 #. * You can remove the am/pm values below for your locale if they are not
 #. * supported.
 #.
-#: ../gtk/gtkprintunixdialog.c:3630
+#: ../gtk/gtkprintunixdialog.c:3712
 msgid ""
 "Specify the time of print,\n"
 " e.g. 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"
@@ -2137,118 +2220,107 @@ msgstr ""
 "Geben Sie an, wann der Druckauftrag\n"
 "starten soll, z.B.: 15:30, 14:50:45"
 
-#: ../gtk/gtkprintunixdialog.c:3640
+#: ../gtk/gtkprintunixdialog.c:3722
 msgid "Time of print"
 msgstr "Uhrzeit des Druckauftrags"
 
-#: ../gtk/gtkprintunixdialog.c:3656
+#: ../gtk/gtkprintunixdialog.c:3738
 msgid "On _hold"
 msgstr "In _Warteschleife stellen"
 
-#: ../gtk/gtkprintunixdialog.c:3657
+#: ../gtk/gtkprintunixdialog.c:3739
 msgid "Hold the job until it is explicitly released"
 msgstr "Hält den Druckauftrag an, bis er explizit freigegeben wird"
 
-#: ../gtk/gtkprintunixdialog.c:3677
+#: ../gtk/gtkprintunixdialog.c:3759
 msgid "Add Cover Page"
 msgstr "Deckblatt hinzufügen"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3686
+#: ../gtk/gtkprintunixdialog.c:3768
 msgid "Be_fore:"
 msgstr "Be_vor:"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3704
+#: ../gtk/gtkprintunixdialog.c:3787
 msgid "_After:"
 msgstr "_Nach:"
 
 #. Translators: this is the tab label for the notebook tab containing
 #. * job-specific options in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3722
+#: ../gtk/gtkprintunixdialog.c:3806
 msgid "Job"
 msgstr "Auftrag"
 
-#: ../gtk/gtkprintunixdialog.c:3788
+#: ../gtk/gtkprintunixdialog.c:3872
 msgid "Advanced"
 msgstr "Erweitert"
 
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3826
+#: ../gtk/gtkprintunixdialog.c:3910
 msgid "Image Quality"
 msgstr "Druckqualität"
 
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3830
+#: ../gtk/gtkprintunixdialog.c:3914
 msgid "Color"
 msgstr "Farbe"
 
 # CHECK
 #. Translators: this will appear as tab label in print dialog.
 #. It's a typographical term, as in "Binding and finishing"
-#: ../gtk/gtkprintunixdialog.c:3835
+#: ../gtk/gtkprintunixdialog.c:3919
 msgid "Finishing"
 msgstr "Nachbearbeitung"
 
-#: ../gtk/gtkprintunixdialog.c:3845
+#: ../gtk/gtkprintunixdialog.c:3929
 msgid "Some of the settings in the dialog conflict"
 msgstr "Einige Einstellungen in diesem Dialog stehen in Konflikt zueinander"
 
-#: ../gtk/gtkprintunixdialog.c:3868
+#: ../gtk/gtkprintunixdialog.c:3952
 msgid "Print"
 msgstr "Drucken"
 
-#: ../gtk/gtkrc.c:948
-#, c-format
-msgid "Unable to locate image file in pixmap_path: \"%s\""
-msgstr "Bilddatei konnte nicht in pixmap_path gefunden werden: »%s«"
-
-#: ../gtk/gtkrecentaction.c:165 ../gtk/gtkrecentaction.c:173
-#: ../gtk/gtkrecentchoosermenu.c:608 ../gtk/gtkrecentchoosermenu.c:616
-#, c-format
-msgid "This function is not implemented for widgets of class '%s'"
-msgstr "Diese Funktion ist für Widgets der Klasse »%s« nicht implementiert"
-
-#: ../gtk/gtkrecentchooserdefault.c:483
+#: ../gtk/gtkrecentchooserdefault.c:485
 msgid "Select which type of documents are shown"
 msgstr "Wählen Sie die anzuzeigenden Dokumententypen"
 
-#: ../gtk/gtkrecentchooserdefault.c:1137 ../gtk/gtkrecentchooserdefault.c:1174
+#: ../gtk/gtkrecentchooserdefault.c:1142 ../gtk/gtkrecentchooserdefault.c:1179
 #, c-format
 msgid "No item for URI '%s' found"
 msgstr "Es konnte kein Eintrag für die Adresse »%s« gefunden werden"
 
-#: ../gtk/gtkrecentchooserdefault.c:1301
+#: ../gtk/gtkrecentchooserdefault.c:1306
 msgid "Untitled filter"
 msgstr "Namenloser Filter"
 
-#: ../gtk/gtkrecentchooserdefault.c:1654
+#: ../gtk/gtkrecentchooserdefault.c:1659
 msgid "Could not remove item"
 msgstr "Eintrag konnte nicht entfernt werden"
 
-#: ../gtk/gtkrecentchooserdefault.c:1698
+#: ../gtk/gtkrecentchooserdefault.c:1703
 msgid "Could not clear list"
 msgstr "Liste konnte nicht geleert werden"
 
-#: ../gtk/gtkrecentchooserdefault.c:1782
+#: ../gtk/gtkrecentchooserdefault.c:1787
 msgid "Copy _Location"
 msgstr "O_rt kopieren"
 
-#: ../gtk/gtkrecentchooserdefault.c:1795
+#: ../gtk/gtkrecentchooserdefault.c:1800
 msgid "_Remove From List"
 msgstr "Von Liste _entfernen"
 
-#: ../gtk/gtkrecentchooserdefault.c:1804
+#: ../gtk/gtkrecentchooserdefault.c:1809
 msgid "_Clear List"
 msgstr "_Liste leeren"
 
 # CHECK
-#: ../gtk/gtkrecentchooserdefault.c:1818
+#: ../gtk/gtkrecentchooserdefault.c:1823
 msgid "Show _Private Resources"
 msgstr "_Private Ressourcen anzeigen"
 
@@ -2313,16 +2385,8 @@ msgstr "Es konnte kein Eintrag mit der Adresse »%s« gefunden werden"
 #: ../gtk/gtkrecentmanager.c:2442
 #, c-format
 msgid "No registered application with name '%s' for item with URI '%s' found"
-msgstr "Keine registrierte Anwendung namens »%s« für Objektadresse »%s« gefunden"
-
-#: ../gtk/gtkspinner.c:287
-msgctxt "throbbing progress animation widget"
-msgid "Spinner"
-msgstr "Spinner"
-
-#: ../gtk/gtkspinner.c:288
-msgid "Provides visual indication of progress"
-msgstr "Ermöglicht die visuelle Darstellung des Fortschritts"
+msgstr ""
+"Keine registrierte Anwendung namens »%s« für Objektadresse »%s« gefunden"
 
 #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
 #: ../gtk/gtkstock.c:313
@@ -2837,7 +2901,7 @@ msgstr "_Wegzoomen"
 #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
 #. * the state
 #.
-#: ../gtk/gtkswitch.c:338 ../gtk/gtkswitch.c:398 ../gtk/gtkswitch.c:605
+#: ../gtk/gtkswitch.c:336 ../gtk/gtkswitch.c:396 ../gtk/gtkswitch.c:603
 msgctxt "switch"
 msgid "ON"
 msgstr "AN"
@@ -2845,20 +2909,11 @@ msgstr "AN"
 #. Translators: if the "off" state label requires more than three
 #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
 #.
-#: ../gtk/gtkswitch.c:346 ../gtk/gtkswitch.c:399 ../gtk/gtkswitch.c:634
+#: ../gtk/gtkswitch.c:344 ../gtk/gtkswitch.c:397 ../gtk/gtkswitch.c:632
 msgctxt "switch"
 msgid "OFF"
 msgstr "AUS"
 
-#: ../gtk/gtkswitch.c:1061
-msgctxt "light switch widget"
-msgid "Switch"
-msgstr "Schalter"
-
-#: ../gtk/gtkswitch.c:1062
-msgid "Switches between on and off states"
-msgstr "Schaltet zwischen »an« und »aus« um"
-
 #: ../gtk/gtktextbufferrichtext.c:651
 #, c-format
 msgid "Unknown error when trying to deserialize %s"
@@ -2935,8 +2990,8 @@ msgstr "»%s« ist kein gültiger Attributsname"
 msgid ""
 "\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\""
 msgstr ""
-"»%s« konnte für das Attribut »%s« nicht in einen Wert vom Typ »%s« konvertiert "
-"werden"
+"»%s« konnte für das Attribut »%s« nicht in einen Wert vom Typ »%s« "
+"konvertiert werden"
 
 #: ../gtk/gtktextbufferserialize.c:1211
 #, c-format
@@ -3018,17 +3073,17 @@ msgstr "ZWJ-_Verbinder mit Breite null"
 msgid "ZWNJ Zero width _non-joiner"
 msgstr "ZWNJ-_Trenner mit Breite null"
 
-#: ../gtk/gtkuimanager.c:1506
+#: ../gtk/gtkuimanager.c:1760
 #, c-format
 msgid "Unexpected start tag '%s' on line %d char %d"
 msgstr "Unerwarteter, öffnender Tag »%s« in Zeile %d, Zeichen %d"
 
-#: ../gtk/gtkuimanager.c:1596
+#: ../gtk/gtkuimanager.c:1850
 #, c-format
 msgid "Unexpected character data on line %d char %d"
 msgstr "Unerwartete Zeichendaten in Zeile %d, Zeichen %d"
 
-#: ../gtk/gtkuimanager.c:2428
+#: ../gtk/gtkuimanager.c:2682
 msgid "Empty"
 msgstr "Leer"
 
@@ -3900,11 +3955,6 @@ msgctxt "paper size"
 msgid "ROC 8k"
 msgstr "ROC 8k"
 
-#: ../gtk/updateiconcache.c:492 ../gtk/updateiconcache.c:552
-#, c-format
-msgid "different idatas found for symlinked '%s' and '%s'\n"
-msgstr "Unterschiedliche idatas für Symlinks »%s« und »%s« gefunden\n"
-
 #: ../gtk/updateiconcache.c:1370
 #, c-format
 msgid "Failed to write header\n"
@@ -4066,256 +4116,256 @@ msgstr "Vietnamesisch (VIQR)"
 msgid "X Input Method"
 msgstr "X-Eingabemethode"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:814
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1024
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:828
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1038
 msgid "Username:"
 msgstr "Benutzername:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:815
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1033
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:829
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1047
 msgid "Password:"
 msgstr "Passwort:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:854
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1046
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1060
 #, c-format
 msgid "Authentication is required to print document '%s' on printer %s"
 msgstr "Das Drucken von Dokument »%s« auf Drucker %s erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:856
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:870
 #, c-format
 msgid "Authentication is required to print a document on %s"
 msgstr "Das Drucken eines Dokuments auf %s erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:860
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
 #, c-format
 msgid "Authentication is required to get attributes of job '%s'"
 msgstr ""
 "Das Auslesen von Attributen des Druckauftrags »%s« erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:862
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:876
 msgid "Authentication is required to get attributes of a job"
 msgstr "Das Auslesen von Attributen eines Druckauftrags erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:866
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:880
 #, c-format
 msgid "Authentication is required to get attributes of printer %s"
 msgstr "Das Auslesen von Attributen des Druckers %s erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:882
 msgid "Authentication is required to get attributes of a printer"
 msgstr "Das Auslesen von Attributen eines Druckers erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:871
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:885
 #, c-format
 msgid "Authentication is required to get default printer of %s"
 msgstr "Das Feststellen des Vorgabedruckers auf %s erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:888
 #, c-format
 msgid "Authentication is required to get printers from %s"
 msgstr "Das Auslesen von Druckern auf %s erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:879
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:893
 #, c-format
 msgid "Authentication is required to get a file from %s"
 msgstr "Der Zugriff auf eine Datei von %s erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:881
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:895
 #, c-format
 msgid "Authentication is required on %s"
 msgstr "Der Zugriff auf %s erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1018
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1032
 msgid "Domain:"
 msgstr "Domäne:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1048
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1062
 #, c-format
 msgid "Authentication is required to print document '%s'"
 msgstr "Das Drucken eines Dokuments »%s« erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1053
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1067
 #, c-format
 msgid "Authentication is required to print this document on printer %s"
 msgstr "Das Drucken dieses Dokuments auf Drucker %s erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1055
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1069
 msgid "Authentication is required to print this document"
 msgstr "Das Drucken dieses Dokuments erfordert Legitimation"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1676
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
 #, c-format
 msgid "Printer '%s' is low on toner."
 msgstr "Drucker »%s« hat nur noch wenig Toner."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1677
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
 #, c-format
 msgid "Printer '%s' has no toner left."
 msgstr "Drucker »%s« hat keinen Toner mehr."
 
 #. Translators: "Developer" like on photo development context
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1679
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1693
 #, c-format
 msgid "Printer '%s' is low on developer."
 msgstr "Drucker »%s« hat nur noch wenig Entwickler."
 
 #. Translators: "Developer" like on photo development context
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1681
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1695
 #, c-format
 msgid "Printer '%s' is out of developer."
 msgstr "Drucker »%s« hat keinen Entwickler mehr."
 
 #. Translators: "marker" is one color bin of the printer
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1683
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1697
 #, c-format
 msgid "Printer '%s' is low on at least one marker supply."
 msgstr ""
 "Drucker »%s« hat nur noch wenig Farbe für mindestens einen Farbbehälter."
 
 #. Translators: "marker" is one color bin of the printer
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1685
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1699
 #, c-format
 msgid "Printer '%s' is out of at least one marker supply."
 msgstr "Drucker »%s« hat keine Farbe mehr für mindestens einen Farbbehälter."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1686
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1700
 #, c-format
 msgid "The cover is open on printer '%s'."
 msgstr "Die Abdeckung des Druckers »%s« ist geöffnet."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1687
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1701
 #, c-format
 msgid "The door is open on printer '%s'."
 msgstr "Die Klappe des Druckers »%s« ist geöffnet."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1688
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1702
 #, c-format
 msgid "Printer '%s' is low on paper."
 msgstr "Der Drucker »%s« hat nur noch wenig Papier."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1689
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1703
 #, c-format
 msgid "Printer '%s' is out of paper."
 msgstr "Der Drucker »%s« hat kein Papier mehr."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1704
 #, c-format
 msgid "Printer '%s' is currently offline."
 msgstr "Der Drucker »%s« ist momentan nicht betriebsbereit."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1705
 #, c-format
 msgid "There is a problem on printer '%s'."
 msgstr "Es besteht ein Problem mit dem Drucker »%s«."
 
 #. Translators: this is a printer status.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1999
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2019
 msgid "Paused ; Rejecting Jobs"
 msgstr "Pausiert; Aufträge werden abgewiesen"
 
 #. Translators: this is a printer status.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2005
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2025
 msgid "Rejecting Jobs"
 msgstr "Aufträge werden abgewiesen"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2778
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798
 msgid "Two Sided"
 msgstr "Beidseitig"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2779
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2799
 msgid "Paper Type"
 msgstr "Papierart"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2780
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800
 msgid "Paper Source"
 msgstr "Papiereinzug"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2781
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2801
 msgid "Output Tray"
 msgstr "Ausgabeschacht"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2782
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
 msgid "Resolution"
 msgstr "Auflösung"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2783
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2803
 msgid "GhostScript pre-filtering"
 msgstr "GhostScript-Vorfilterung"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2792
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812
 msgid "One Sided"
 msgstr "Einseitig"
 
 #. Translators: this is an option of "Two Sided"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2794
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814
 msgid "Long Edge (Standard)"
 msgstr "Langer Rand (Vorgabe)"
 
 #. Translators: this is an option of "Two Sided"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2796
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816
 msgid "Short Edge (Flip)"
 msgstr "Kurzer Rand (Umdrehen)"
 
 #. Translators: this is an option of "Paper Source"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2808
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2820
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2828
 msgid "Auto Select"
 msgstr "Automatische Auswahl"
 
 #. Translators: this is an option of "Paper Source"
 #. Translators: this is an option of "Resolution"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2804
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2806
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2810
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3306
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2822
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2824
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2826
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2830
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3326
 msgid "Printer Default"
 msgstr "Vorgabe-Drucker"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2832
 msgid "Embed GhostScript fonts only"
 msgstr "Nur GhostScript-Schriften einbinden"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2834
 msgid "Convert to PS level 1"
 msgstr "Zu PS Level 1 konvertieren"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2836
 msgid "Convert to PS level 2"
 msgstr "Zu PS Level 2 konvertieren"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2838
 msgid "No pre-filtering"
 msgstr "Keine Vorfilterung"
 
 #. Translators: "Miscellaneous" is the label for a button, that opens
 #. up an extra panel of settings in a print dialog.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2827
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2847
 msgid "Miscellaneous"
 msgstr "Erweitert"
 
 #. Translators: These strings name the possible values of the
 #. * job priority option in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Urgent"
 msgstr "Dringend"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "High"
 msgstr "Hoch"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Medium"
 msgstr "Mittel"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Low"
 msgstr "Niedrig"
 
@@ -4323,14 +4373,14 @@ msgstr "Niedrig"
 #. Translators, this string is used to label the pages-per-sheet option
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3554
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3593
 msgid "Pages per Sheet"
 msgstr "Seiten pro Blatt"
 
 #. Translators, this string is used to label the job priority option
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3591
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3630
 msgid "Job Priority"
 msgstr "Priorität"
 
@@ -4338,52 +4388,52 @@ msgstr "Priorität"
 #. Translators, this string is used to label the billing info entry
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3602
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3641
 msgid "Billing Info"
 msgstr "Abrechnungsinfo"
 
 #. Translators, these strings are names for various 'standard' cover
 #. * pages that the printing system may support.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "None"
 msgstr "Keine"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Classified"
 msgstr "Klassifiziert"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Confidential"
 msgstr "Vertraulich"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Secret"
 msgstr "Geheim"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Standard"
 msgstr "Standard"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Top Secret"
 msgstr "Streng geheim"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Unclassified"
 msgstr "Unklassifiziert"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3652
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3691
 msgid "Before"
 msgstr "Vorne"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3667
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3706
 msgid "After"
 msgstr "Hinten"
 
@@ -4391,14 +4441,14 @@ msgstr "Hinten"
 #. * a print job is printed. Possible values are 'now', a specified time,
 #. * or 'on hold'
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3726
 msgid "Print at"
 msgstr "Drucken um"
 
 #. Translators: this is the name of the option that allows the user
 #. * to specify a time when a print job will be printed.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3698
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
 msgid "Print at time"
 msgstr "Drucken zu Uhrzeit"
 
@@ -4406,11 +4456,36 @@ msgstr "Drucken zu Uhrzeit"
 #. * size. The two placeholders are replaced with the width and height
 #. * in points. E.g: "Custom 230.4x142.9"
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3733
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772
 #, c-format
 msgid "Custom %sx%s"
 msgstr "Benutzerdefiniert %s×%s"
 
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3853
+msgid "Printer Profile"
+msgstr "Druckerfarbprofil"
+
+#. TRANSLATORS: this is when color profile information is unavailable
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860
+msgid "Unavailable"
+msgstr "Nicht verfügbar"
+
+#. TRANSLATORS: when we're running an old CUPS, and
+#. * it hasn't registered the device with colord
+#: ../modules/printbackends/cups/gtkprintercups.c:222
+msgid "Color management unavailable"
+msgstr "Farbverwaltung ist nicht verfügbar"
+
+#. TRANSLATORS: when there is no color profile available
+#: ../modules/printbackends/cups/gtkprintercups.c:234
+msgid "No profile available"
+msgstr "Kein Profil verfügbar"
+
+#. TRANSLATORS: when the color profile has no title
+#: ../modules/printbackends/cups/gtkprintercups.c:245
+msgid "Unspecified profile"
+msgstr "Nicht angegebenes Profil"
+
 #. default filename used for print-to-file
 #: ../modules/printbackends/file/gtkprintbackendfile.c:250
 #, c-format
@@ -4511,6 +4586,36 @@ msgstr ""
 "Bild »%s« konnte nicht geladen werden: Grund unbekannt, vermutlich eine "
 "defekte Bilddatei"
 
+#~ msgid "Received invalid color data\n"
+#~ msgstr "Ungültige Farbdaten erhalten\n"
+
+#~ msgid "Error loading icon: %s"
+#~ msgstr "Fehler beim Laden des Symbols: %s"
+
+#~ msgid ""
+#~ "Could not find the icon '%s'. The '%s' theme\n"
+#~ "was not found either, perhaps you need to install it.\n"
+#~ "You can get a copy from:\n"
+#~ "\t%s"
+#~ msgstr ""
+#~ "Das Symbol »%s« konnte nicht gefunden werden,\n"
+#~ "ebenso wenig wie das Thema »%s«. Möglicherweise müssen Sie es "
+#~ "installieren.\n"
+#~ "Sie können sich eine Kopie herunterladen unter:\n"
+#~ "\t%s"
+
+#~ msgid "Unable to locate image file in pixmap_path: \"%s\""
+#~ msgstr "Bilddatei konnte nicht in pixmap_path gefunden werden: »%s«"
+
+#~ msgid "This function is not implemented for widgets of class '%s'"
+#~ msgstr "Diese Funktion ist für Widgets der Klasse »%s« nicht implementiert"
+
+#~ msgid "different idatas found for symlinked '%s' and '%s'\n"
+#~ msgstr "Unterschiedliche idatas für Symlinks »%s« und »%s« gefunden\n"
+
+#~ msgid "_Browse for other folders"
+#~ msgstr "Ordner-_Browser"
+
 #~ msgid "_Add"
 #~ msgstr "_Hinzufügen"
 
@@ -4561,11 +4666,11 @@ msgstr ""
 #~ msgstr "Bildlader-Modul konnte nicht geladen werden: %s: %s"
 
 #~ msgid ""
-#~ "Image-loading module %s does not export the proper interface; perhaps "
-#~ "it's from a different GTK version?"
+#~ "Image-loading module %s does not export the proper interface; perhaps it's "
+#~ "from a different GTK version?"
 #~ msgstr ""
-#~ "Bildlader-Modul %s exportiert nicht die richtige Schnittstelle; "
-#~ "vielleicht stammt es aus einer anderen GTK-Version?"
+#~ "Bildlader-Modul %s exportiert nicht die richtige Schnittstelle; vielleicht "
+#~ "stammt es aus einer anderen GTK-Version?"
 
 #~ msgid "Image type '%s' is not supported"
 #~ msgstr "Bildtyp »%s« wird nicht unterstützt"
@@ -4582,8 +4687,7 @@ msgstr ""
 #~ msgid "Error writing to image file: %s"
 #~ msgstr "Fehler beim Schreiben einer Bilddatei (%s)"
 
-#~ msgid ""
-#~ "This build of gdk-pixbuf does not support saving the image format: %s"
+#~ msgid "This build of gdk-pixbuf does not support saving the image format: %s"
 #~ msgstr ""
 #~ "Diese Fassung von gdk-pixbuf unterstützt das Speichern in diesem "
 #~ "Bildformat nicht: %s"
@@ -4968,8 +5072,7 @@ msgstr ""
 #~ msgstr "PNM-Bildlader unterstützt dieses PNM-Unterformat nicht"
 
 #~ msgid "Raw PNM formats require exactly one whitespace before sample data"
-#~ msgstr ""
-#~ "Rohe PNM-Formate verlangen genau einen Leerraum vor den Sample-Daten"
+#~ msgstr "Rohe PNM-Formate verlangen genau einen Leerraum vor den Sample-Daten"
 
 #~ msgid "Cannot allocate memory for loading PNM image"
 #~ msgstr ""
@@ -5173,8 +5276,8 @@ msgstr ""
 
 #~ msgid "Cannot allocate memory for loading XPM image"
 #~ msgstr ""
-#~ "Der zum Laden eines XPM-Bildes verwendete Speicher konnte nicht "
-#~ "zugewiesen werden"
+#~ "Der zum Laden eines XPM-Bildes verwendete Speicher konnte nicht zugewiesen "
+#~ "werden"
 
 #~ msgid "Cannot read XPM colormap"
 #~ msgstr "XPM-Farbtabelle konnte nicht gelesen werden"
@@ -6152,8 +6255,7 @@ msgstr ""
 #~ msgid "Invalid filename: %s"
 #~ msgstr "Ungültiger Dateiname: %s"
 
-#~ msgid ""
-#~ "Could not add a bookmark for '%s' because it is an invalid path name."
+#~ msgid "Could not add a bookmark for '%s' because it is an invalid path name."
 #~ msgstr ""
 #~ "Es konnte kein Lesezeichen für »%s« hinzugefügt werden, da dies ein "
 #~ "ungültiger Pfadname ist."
@@ -6181,8 +6283,8 @@ msgstr ""
 #~ "The name \"%s\" is not valid because it contains the character \"%s\". "
 #~ "Please use a different name."
 #~ msgstr ""
-#~ "Der Name »%s« ist ungültig, da er das Zeichen »%s« enthält. Bitte verwenden "
-#~ "Sie einen anderen Namen."
+#~ "Der Name »%s« ist ungültig, da er das Zeichen »%s« enthält. Bitte "
+#~ "verwenden Sie einen anderen Namen."
 
 #~ msgid "Bookmark saving failed: %s"
 #~ msgstr "Speichern des Lesezeichens gescheitert: %s"
@@ -6240,7 +6342,8 @@ msgstr ""
 
 #~ msgid ""
 #~ "Line %d, column %d: expected \"%s\" or \"%s\", but found \"%s\" instead"
-#~ msgstr "Zeile %d, Spalte %d: »%s« oder »%s« wurde erwartet, aber »%s« gefunden"
+#~ msgstr ""
+#~ "Zeile %d, Spalte %d: »%s« oder »%s« wurde erwartet, aber »%s« gefunden"
 
 #~ msgid "Error creating directory '%s': %s"
 #~ msgstr "Fehler beim Anlegen des Ordners »%s«: %s"
index 333cb1d86a83e319dd26dd1ce94602177034c103..ee35915a51ca2803c4416720fe2e20b900d39faf 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -9,24 +9,24 @@
 # Pablo Gonzalo del Campo <pablodc@bigfoot.com>, 2002, 2003.
 # Juan Manuel García Molina <juanma_gm@wanadoo.es>, 2003.
 # Francisco Javier F. Serrador <serrador@cvs.gnome.org>, 2003 - 2006.
-# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011.
 # Jorge González <jorgegonz@svn.gnome.org>, 2007, 2008, 2009, 2010, 2011.
+# Daniel Mustieles <daniel.mustieles@gmail.com>, 2011.
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: gtk+.master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk"
 "%2b&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-06-16 07:20+0000\n"
-"PO-Revision-Date: 2011-06-19 17:15+0200\n"
-"Last-Translator: Jorge González <jorgegonz@svn.gnome.org>\n"
-"Language-Team: Español; Castellano <gnome-es-list@gnome.org>\n"
+"POT-Creation-Date: 2011-07-10 12:45+0000\n"
+"PO-Revision-Date: 2011-07-10 21:04+0200\n"
+"Last-Translator: Daniel Mustieles <daniel.mustieles@gmail.com>\n"
+"Language-Team: Español <gnome-es-list@gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bits\n"
+"Content-Transfer-Encoding: 8bit\n"
 "Language: \n"
 "X-Generator: KBabel 1.11.4\n"
-"Plural-Forms: nplurals=2; plural=(n!=1);\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 
 #: ../gdk/gdk.c:135
 #, c-format
@@ -77,7 +77,7 @@ msgstr "Opciones de depuración GTK+ que establecer"
 #. Placeholder in --gdk-no-debug=FLAGS in --help output
 #. Placeholder in --gtk-debug=FLAGS in --help output
 #. Placeholder in --gtk-no-debug=FLAGS in --help output
-#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:570 ../gtk/gtkmain.c:573
+#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:569 ../gtk/gtkmain.c:572
 msgid "FLAGS"
 msgstr "OPCIONES"
 
@@ -461,6 +461,24 @@ msgid_plural "Opening %d Items"
 msgstr[0] "Aberiendo %d elemento"
 msgstr[1] "Abriendo %d elementos"
 
+#: ../gtk/a11y/gtkspinneraccessible.c:42
+msgctxt "throbbing progress animation widget"
+msgid "Spinner"
+msgstr "Marcador incrementable"
+
+#: ../gtk/a11y/gtkspinneraccessible.c:43
+msgid "Provides visual indication of progress"
+msgstr "Proporciona una indicación visual del progreso"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:65
+msgctxt "light switch widget"
+msgid "Switch"
+msgstr "Interruptor"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:66
+msgid "Switches between on and off states"
+msgstr "Cambia entre los estados encendido y apagado"
+
 #. Translators: this is the license preamble; the string at the end
 #. * contains the URL of the license.
 #.
@@ -673,21 +691,15 @@ msgstr "Aplicaciones relacionadas"
 msgid "Other Applications"
 msgstr "Otras aplicaciones"
 
-#: ../gtk/gtkassistant.c:919
-#| msgctxt "Stock label"
-#| msgid "C_onnect"
+#: ../gtk/gtkassistant.c:1000
 msgid "C_ontinue"
 msgstr "C_onectar"
 
-#: ../gtk/gtkassistant.c:922
-#| msgctxt "Stock label, navigation"
-#| msgid "_Back"
+#: ../gtk/gtkassistant.c:1003
 msgid "Go _Back"
 msgstr "A_trás"
 
-#: ../gtk/gtkassistant.c:926
-#| msgctxt "print operation status"
-#| msgid "Finished"
+#: ../gtk/gtkassistant.c:1007
 msgid "_Finish"
 msgstr "_Terminar"
 
@@ -722,7 +734,7 @@ msgstr "Etiqueta no soportada: «%s»"
 #. * text direction of RTL and specify "calendar:YM", then the year
 #. * will appear to the right of the month.
 #.
-#: ../gtk/gtkcalendar.c:870
+#: ../gtk/gtkcalendar.c:874
 msgid "calendar:MY"
 msgstr "calendar:MY"
 
@@ -730,7 +742,7 @@ msgstr "calendar:MY"
 #. * first day of the week to calendar:week_start:1 if you want Monday
 #. * to be the first day of the week, and so on.
 #.
-#: ../gtk/gtkcalendar.c:908
+#: ../gtk/gtkcalendar.c:912
 msgid "calendar:week_start:0"
 msgstr "calendar:week_start:1"
 
@@ -739,7 +751,7 @@ msgstr "calendar:week_start:1"
 #. *
 #. * If you don't understand this, leave it as "2000"
 #.
-#: ../gtk/gtkcalendar.c:1909
+#: ../gtk/gtkcalendar.c:1913
 msgctxt "year measurement template"
 msgid "2000"
 msgstr "2000"
@@ -754,7 +766,7 @@ msgstr "2000"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1940 ../gtk/gtkcalendar.c:2637
+#: ../gtk/gtkcalendar.c:1944 ../gtk/gtkcalendar.c:2641
 #, c-format
 msgctxt "calendar:day:digits"
 msgid "%d"
@@ -770,7 +782,7 @@ msgstr "%d"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1972 ../gtk/gtkcalendar.c:2498
+#: ../gtk/gtkcalendar.c:1976 ../gtk/gtkcalendar.c:2502
 #, c-format
 msgctxt "calendar:week:digits"
 msgid "%d"
@@ -786,7 +798,7 @@ msgstr "%Id"
 #. *
 #. * "%Y" is appropriate for most locales.
 #.
-#: ../gtk/gtkcalendar.c:2267
+#: ../gtk/gtkcalendar.c:2271
 msgctxt "calendar year format"
 msgid "%Y"
 msgstr "%Y"
@@ -826,7 +838,7 @@ msgstr "%d %%"
 msgid "Pick a Color"
 msgstr "Escoja un color"
 
-#: ../gtk/gtkcolorsel.c:417
+#: ../gtk/gtkcolorsel.c:416
 msgid ""
 "Select the color you want from the outer ring. Select the darkness or "
 "lightness of that color using the inner triangle."
@@ -834,7 +846,7 @@ msgstr ""
 "Seleccionar el color que desea desde el anillo exterior. Seleccionar la "
 "oscuridad o luminosidad de ese color usando el triángulo interior."
 
-#: ../gtk/gtkcolorsel.c:443
+#: ../gtk/gtkcolorsel.c:442
 msgid ""
 "Click the eyedropper, then click a color anywhere on your screen to select "
 "that color."
@@ -842,67 +854,67 @@ msgstr ""
 "Pulse en el gotero, luego pulse sobre cualquier color que haya en su "
 "pantalla para seleccionar ese color."
 
-#: ../gtk/gtkcolorsel.c:453
+#: ../gtk/gtkcolorsel.c:452
 msgid "_Hue:"
 msgstr "_Matiz:"
 
-#: ../gtk/gtkcolorsel.c:454
+#: ../gtk/gtkcolorsel.c:453
 msgid "Position on the color wheel."
 msgstr "Posición en la rueda de colores."
 
-#: ../gtk/gtkcolorsel.c:456
+#: ../gtk/gtkcolorsel.c:455
 msgid "_Saturation:"
 msgstr "_Saturación:"
 
-#: ../gtk/gtkcolorsel.c:457
+#: ../gtk/gtkcolorsel.c:456
 msgid "Intensity of the color."
 msgstr "Intensidad del color."
 
-#: ../gtk/gtkcolorsel.c:458
+#: ../gtk/gtkcolorsel.c:457
 msgid "_Value:"
 msgstr "_Valor:"
 
-#: ../gtk/gtkcolorsel.c:459
+#: ../gtk/gtkcolorsel.c:458
 msgid "Brightness of the color."
 msgstr "Brillo del color."
 
-#: ../gtk/gtkcolorsel.c:460
+#: ../gtk/gtkcolorsel.c:459
 msgid "_Red:"
 msgstr "_Rojo:"
 
-#: ../gtk/gtkcolorsel.c:461
+#: ../gtk/gtkcolorsel.c:460
 msgid "Amount of red light in the color."
 msgstr "Cantidad de luz roja en el color."
 
-#: ../gtk/gtkcolorsel.c:462
+#: ../gtk/gtkcolorsel.c:461
 msgid "_Green:"
 msgstr "_Verde:"
 
-#: ../gtk/gtkcolorsel.c:463
+#: ../gtk/gtkcolorsel.c:462
 msgid "Amount of green light in the color."
 msgstr "Cantidad de luz verde en el color."
 
-#: ../gtk/gtkcolorsel.c:464
+#: ../gtk/gtkcolorsel.c:463
 msgid "_Blue:"
 msgstr "_Azul:"
 
-#: ../gtk/gtkcolorsel.c:465
+#: ../gtk/gtkcolorsel.c:464
 msgid "Amount of blue light in the color."
 msgstr "Cantidad de luz azul en el color."
 
-#: ../gtk/gtkcolorsel.c:468
+#: ../gtk/gtkcolorsel.c:467
 msgid "Op_acity:"
 msgstr "_Opacidad:"
 
-#: ../gtk/gtkcolorsel.c:476 ../gtk/gtkcolorsel.c:486
+#: ../gtk/gtkcolorsel.c:475 ../gtk/gtkcolorsel.c:485
 msgid "Transparency of the color."
 msgstr "Transparencia del color."
 
-#: ../gtk/gtkcolorsel.c:493
+#: ../gtk/gtkcolorsel.c:492
 msgid "Color _name:"
 msgstr "_Nombre del color:"
 
-#: ../gtk/gtkcolorsel.c:508
+#: ../gtk/gtkcolorsel.c:507
 msgid ""
 "You can enter an HTML-style hexadecimal color value, or simply a color name "
 "such as 'orange' in this entry."
@@ -910,15 +922,15 @@ msgstr ""
 "Puede introducir en esta entrada un valor de color en estilo HTML "
 "hexadecimal, o simplemente un nombre de color como «orange»."
 
-#: ../gtk/gtkcolorsel.c:540
+#: ../gtk/gtkcolorsel.c:539
 msgid "_Palette:"
 msgstr "_Paleta:"
 
-#: ../gtk/gtkcolorsel.c:570
+#: ../gtk/gtkcolorsel.c:569
 msgid "Color Wheel"
 msgstr "Rueda de color"
 
-#: ../gtk/gtkcolorsel.c:1043
+#: ../gtk/gtkcolorsel.c:1042
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now. You can drag this color to a palette entry, or select this color as "
@@ -929,7 +941,7 @@ msgstr ""
 "seleccionar este color como actual arrastrándolo al otro color a lo largo de "
 "la muestra."
 
-#: ../gtk/gtkcolorsel.c:1049
+#: ../gtk/gtkcolorsel.c:1048
 msgid ""
 "The color you've chosen. You can drag this color to a palette entry to save "
 "it for use in the future."
@@ -937,7 +949,7 @@ msgstr ""
 "El color elegido. Puede arrastrar este color a una entrada de la paleta para "
 "guardarlo para usarlo en el futuro."
 
-#: ../gtk/gtkcolorsel.c:1055
+#: ../gtk/gtkcolorsel.c:1054
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now."
@@ -945,15 +957,15 @@ msgstr ""
 "El color anteriormente seleccionado, para compararlo con el color que está "
 "seleccionando ahora"
 
-#: ../gtk/gtkcolorsel.c:1059
+#: ../gtk/gtkcolorsel.c:1058
 msgid "The color you've chosen."
 msgstr "El color que ha elegido."
 
-#: ../gtk/gtkcolorsel.c:1461
+#: ../gtk/gtkcolorsel.c:1460
 msgid "_Save color here"
 msgstr "_Guardar color aquí"
 
-#: ../gtk/gtkcolorsel.c:1666
+#: ../gtk/gtkcolorsel.c:1665
 msgid ""
 "Click this palette entry to make it the current color. To change this entry, "
 "drag a color swatch here or right-click it and select \"Save color here.\""
@@ -1030,23 +1042,23 @@ msgstr "_Derecho:"
 msgid "Paper Margins"
 msgstr "Márgenes del papel"
 
-#: ../gtk/gtkentry.c:8928 ../gtk/gtktextview.c:8274
+#: ../gtk/gtkentry.c:8949 ../gtk/gtktextview.c:8277
 msgid "Input _Methods"
 msgstr "_Métodos de entrada"
 
-#: ../gtk/gtkentry.c:8942 ../gtk/gtktextview.c:8288
+#: ../gtk/gtkentry.c:8963 ../gtk/gtktextview.c:8291
 msgid "_Insert Unicode Control Character"
 msgstr "_Insertar un carácter de control Unicode"
 
-#: ../gtk/gtkentry.c:10413
+#: ../gtk/gtkentry.c:10434
 msgid "Caps Lock and Num Lock are on"
 msgstr "Bloq Mayús y Bloq Num están activados"
 
-#: ../gtk/gtkentry.c:10415
+#: ../gtk/gtkentry.c:10436
 msgid "Num Lock is on"
 msgstr "Bloq Num está activado"
 
-#: ../gtk/gtkentry.c:10417
+#: ../gtk/gtkentry.c:10438
 msgid "Caps Lock is on"
 msgstr "Bloq Mayús está activado"
 
@@ -1095,7 +1107,7 @@ msgstr "Bloq Mayús está activado"
 msgid "Select a File"
 msgstr "Seleccionar un archivo"
 
-#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1871
+#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1809
 msgid "Desktop"
 msgstr "Escritorio"
 
@@ -1108,27 +1120,27 @@ msgstr "(Ninguno)"
 msgid "Other..."
 msgstr "Otra…"
 
-#: ../gtk/gtkfilechooserdefault.c:147
+#: ../gtk/gtkfilechooserdefault.c:148
 msgid "Type name of new folder"
 msgstr "Teclee el nombre de la carpeta nueva"
 
-#: ../gtk/gtkfilechooserdefault.c:965
+#: ../gtk/gtkfilechooserdefault.c:960
 msgid "Could not retrieve information about the file"
 msgstr "No se pudo obtener la información acerca del archivo"
 
-#: ../gtk/gtkfilechooserdefault.c:976
+#: ../gtk/gtkfilechooserdefault.c:971
 msgid "Could not add a bookmark"
 msgstr "No se pudo añadir un marcador"
 
-#: ../gtk/gtkfilechooserdefault.c:987
+#: ../gtk/gtkfilechooserdefault.c:982
 msgid "Could not remove bookmark"
 msgstr "No se pudo quitar el marcador"
 
-#: ../gtk/gtkfilechooserdefault.c:998
+#: ../gtk/gtkfilechooserdefault.c:993
 msgid "The folder could not be created"
 msgstr "No se pudo crear la carpeta"
 
-#: ../gtk/gtkfilechooserdefault.c:1011
+#: ../gtk/gtkfilechooserdefault.c:1006
 msgid ""
 "The folder could not be created, as a file with the same name already "
 "exists.  Try using a different name for the folder, or rename the file first."
@@ -1136,16 +1148,16 @@ msgstr ""
 "No se pudo crear la carpeta, debido a que ya existe un archivo con el mismo "
 "nombre. Intenta usar un nombre distinto o renombre el archivo primero."
 
-#: ../gtk/gtkfilechooserdefault.c:1025
+#: ../gtk/gtkfilechooserdefault.c:1020
 msgid "You need to choose a valid filename."
 msgstr "Debe elegir un nombre de archivo válido."
 
-#: ../gtk/gtkfilechooserdefault.c:1028
+#: ../gtk/gtkfilechooserdefault.c:1023
 #, c-format
 msgid "Cannot create a file under %s as it is not a folder"
 msgstr "No se puede crear un archivo bajo %s ya que no es una carpeta"
 
-#: ../gtk/gtkfilechooserdefault.c:1040
+#: ../gtk/gtkfilechooserdefault.c:1035
 msgid ""
 "You may only select folders.  The item that you selected is not a folder; "
 "try using a different item."
@@ -1153,11 +1165,11 @@ msgstr ""
 "Sólo puede seleccionar carpetas. El elemento que ha seleccionado no es una "
 "carpeta; intentélo seleccionar un elemento diferente."
 
-#: ../gtk/gtkfilechooserdefault.c:1050
+#: ../gtk/gtkfilechooserdefault.c:1045
 msgid "Invalid file name"
 msgstr "Nombre de archivo no válido"
 
-#: ../gtk/gtkfilechooserdefault.c:1060
+#: ../gtk/gtkfilechooserdefault.c:1055
 msgid "The folder contents could not be displayed"
 msgstr "No se pudo mostrar el contenido de la carpeta"
 
@@ -1165,196 +1177,203 @@ msgstr "No se pudo mostrar el contenido de la carpeta"
 #. * is a hostname. Nautilus and the panel contain the same string
 #. * to translate.
 #.
-#: ../gtk/gtkfilechooserdefault.c:1614
+#: ../gtk/gtkfilechooserdefault.c:1581
 #, c-format
 msgid "%1$s on %2$s"
 msgstr "%1$s en %2$s"
 
-#: ../gtk/gtkfilechooserdefault.c:1790
+#: ../gtk/gtkfilechooserdefault.c:1730
 msgid "Search"
 msgstr "Buscar"
 
-#: ../gtk/gtkfilechooserdefault.c:1814 ../gtk/gtkfilechooserdefault.c:9539
+#: ../gtk/gtkfilechooserdefault.c:1754 ../gtk/gtkfilechooserdefault.c:4871
 msgid "Recently Used"
 msgstr "Usados recientemente"
 
-#: ../gtk/gtkfilechooserdefault.c:2470
+#: ../gtk/gtkfilechooserdefault.c:2353
 msgid "Select which types of files are shown"
 msgstr "Seleccionar qué tipos de archivos se muestran"
 
-#: ../gtk/gtkfilechooserdefault.c:2829
+#: ../gtk/gtkfilechooserdefault.c:2712
 #, c-format
 msgid "Add the folder '%s' to the bookmarks"
 msgstr "Añadir la carpeta «%s» a los marcadores"
 
-#: ../gtk/gtkfilechooserdefault.c:2873
+#: ../gtk/gtkfilechooserdefault.c:2756
 #, c-format
 msgid "Add the current folder to the bookmarks"
 msgstr "Añadir la carpeta actual a los marcadores"
 
-#: ../gtk/gtkfilechooserdefault.c:2875
+#: ../gtk/gtkfilechooserdefault.c:2758
 #, c-format
 msgid "Add the selected folders to the bookmarks"
 msgstr "Añadir las carpetas seleccionadas a los marcadores"
 
-#: ../gtk/gtkfilechooserdefault.c:2913
+#: ../gtk/gtkfilechooserdefault.c:2796
 #, c-format
 msgid "Remove the bookmark '%s'"
 msgstr "Quitar el marcador «%s»"
 
-#: ../gtk/gtkfilechooserdefault.c:2915
+#: ../gtk/gtkfilechooserdefault.c:2798
 #, c-format
 msgid "Bookmark '%s' cannot be removed"
 msgstr "No se puede quitar el marcador «%s»"
 
-#: ../gtk/gtkfilechooserdefault.c:2922 ../gtk/gtkfilechooserdefault.c:3807
+#: ../gtk/gtkfilechooserdefault.c:2805 ../gtk/gtkfilechooserdefault.c:3690
 msgid "Remove the selected bookmark"
 msgstr "Quitar el marcador seleccionado"
 
-#: ../gtk/gtkfilechooserdefault.c:3486
+#: ../gtk/gtkfilechooserdefault.c:3369
 msgid "Remove"
 msgstr "Quitar"
 
-#: ../gtk/gtkfilechooserdefault.c:3495
+#: ../gtk/gtkfilechooserdefault.c:3378
 msgid "Rename..."
 msgstr "Renombrar…"
 
 #. Accessible object name for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3659
+#: ../gtk/gtkfilechooserdefault.c:3542
 msgid "Places"
 msgstr "Lugares"
 
 #. Column header for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3716
+#: ../gtk/gtkfilechooserdefault.c:3599
 msgid "_Places"
 msgstr "_Lugares"
 
-#: ../gtk/gtkfilechooserdefault.c:3795
+#: ../gtk/gtkfilechooserdefault.c:3678
 msgid "Add the selected folder to the Bookmarks"
 msgstr "Añade la carpeta seleccionada a los marcadores"
 
-#: ../gtk/gtkfilechooserdefault.c:3942
+#: ../gtk/gtkfilechooserdefault.c:3825
 msgid "Could not select file"
 msgstr "No se pudo seleccionar el archivo"
 
-#: ../gtk/gtkfilechooserdefault.c:4115
+#: ../gtk/gtkfilechooserdefault.c:3998
 msgid "_Add to Bookmarks"
 msgstr "_Añadir a los marcadores"
 
-#: ../gtk/gtkfilechooserdefault.c:4128
+#: ../gtk/gtkfilechooserdefault.c:4011
 msgid "Show _Hidden Files"
 msgstr "Mostrar archivos _ocultos"
 
-#: ../gtk/gtkfilechooserdefault.c:4135
+#: ../gtk/gtkfilechooserdefault.c:4018
 msgid "Show _Size Column"
 msgstr "Mostrar columna de _tamaño"
 
-#: ../gtk/gtkfilechooserdefault.c:4360
+#: ../gtk/gtkfilechooserdefault.c:4243
 msgid "Files"
 msgstr "Archivos"
 
-#: ../gtk/gtkfilechooserdefault.c:4411
+#: ../gtk/gtkfilechooserdefault.c:4294
 msgid "Name"
 msgstr "Nombre"
 
-#: ../gtk/gtkfilechooserdefault.c:4434
+#: ../gtk/gtkfilechooserdefault.c:4317
 msgid "Size"
 msgstr "Tamaño"
 
-#: ../gtk/gtkfilechooserdefault.c:4448
+#: ../gtk/gtkfilechooserdefault.c:4331
 msgid "Modified"
 msgstr "Modificado"
 
 #. Label
-#: ../gtk/gtkfilechooserdefault.c:4702 ../gtk/gtkprinteroptionwidget.c:799
+#: ../gtk/gtkfilechooserdefault.c:4412 ../gtk/gtkprinteroptionwidget.c:799
 msgid "_Name:"
 msgstr "_Nombre:"
 
-#. Expander
-#: ../gtk/gtkfilechooserdefault.c:4745
-msgid "_Browse for other folders"
-msgstr "_Buscar otras carpetas"
-
-#: ../gtk/gtkfilechooserdefault.c:5018
+#: ../gtk/gtkfilechooserdefault.c:4709
 msgid "Type a file name"
 msgstr "Teclee un nombre de archivo"
 
+#: ../gtk/gtkfilechooserdefault.c:4756 ../gtk/gtkfilechooserdefault.c:4767
+msgid "Please select a folder below"
+msgstr "Seleccionar una carpeta a continuación"
+
+#: ../gtk/gtkfilechooserdefault.c:4762
+msgid "Please type a file name"
+msgstr "Escriba un nombre de archivo"
+
 # C en conflicto con Cancelar
 #. Create Folder
-#: ../gtk/gtkfilechooserdefault.c:5061
+#: ../gtk/gtkfilechooserdefault.c:4833
 msgid "Create Fo_lder"
 msgstr "Crear car_peta"
 
-#: ../gtk/gtkfilechooserdefault.c:5071
+#: ../gtk/gtkfilechooserdefault.c:4881
+msgid "Search:"
+msgstr "Buscar:"
+
+#: ../gtk/gtkfilechooserdefault.c:4928
 msgid "_Location:"
 msgstr "_Lugar:"
 
 # El acelerador c entra en conflicto con cancelar
-#: ../gtk/gtkfilechooserdefault.c:5278
+#: ../gtk/gtkfilechooserdefault.c:5245
 msgid "Save in _folder:"
 msgstr "_Guardar en la carpeta:"
 
-#: ../gtk/gtkfilechooserdefault.c:5280
+#: ../gtk/gtkfilechooserdefault.c:5247
 msgid "Create in _folder:"
 msgstr "Crear en la _carpeta:"
 
-#: ../gtk/gtkfilechooserdefault.c:6402
+#: ../gtk/gtkfilechooserdefault.c:6341
 #, c-format
 msgid "Could not read the contents of %s"
 msgstr "No se pudo leer el contenido de %s"
 
-#: ../gtk/gtkfilechooserdefault.c:6406
+#: ../gtk/gtkfilechooserdefault.c:6345
 msgid "Could not read the contents of the folder"
 msgstr "No se pudo leer el contenido del la carpeta"
 
-#: ../gtk/gtkfilechooserdefault.c:6499 ../gtk/gtkfilechooserdefault.c:6567
-#: ../gtk/gtkfilechooserdefault.c:6719
+#: ../gtk/gtkfilechooserdefault.c:6438 ../gtk/gtkfilechooserdefault.c:6506
+#: ../gtk/gtkfilechooserdefault.c:6658
 msgid "Unknown"
 msgstr "Desconocido"
 
-#: ../gtk/gtkfilechooserdefault.c:6514
+#: ../gtk/gtkfilechooserdefault.c:6453
 msgid "%H:%M"
 msgstr "%H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:6516
+#: ../gtk/gtkfilechooserdefault.c:6455
 msgid "Yesterday at %H:%M"
 msgstr "Ayer a las %H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:7185
+#: ../gtk/gtkfilechooserdefault.c:7140
 msgid "Cannot change to folder because it is not local"
 msgstr "No se pudo cambiar a la carpeta porque no es local"
 
-#: ../gtk/gtkfilechooserdefault.c:7777 ../gtk/gtkfilechooserdefault.c:7798
+#: ../gtk/gtkfilechooserdefault.c:7740 ../gtk/gtkfilechooserdefault.c:7761
 #, c-format
 msgid "Shortcut %s already exists"
 msgstr "La combinación %s ya existe"
 
-#: ../gtk/gtkfilechooserdefault.c:7888
+#: ../gtk/gtkfilechooserdefault.c:7851
 #, c-format
 msgid "Shortcut %s does not exist"
 msgstr "La combinación %s no existe"
 
-#: ../gtk/gtkfilechooserdefault.c:8146 ../gtk/gtkprintunixdialog.c:550
+#: ../gtk/gtkfilechooserdefault.c:8097 ../gtk/gtkprintunixdialog.c:550
 #, c-format
 msgid "A file named \"%s\" already exists.  Do you want to replace it?"
 msgstr "Ya existe un archivo llamado «%s». ¿Quiere reemplazarlo?"
 
-#: ../gtk/gtkfilechooserdefault.c:8149 ../gtk/gtkprintunixdialog.c:554
+#: ../gtk/gtkfilechooserdefault.c:8100 ../gtk/gtkprintunixdialog.c:554
 #, c-format
 msgid ""
 "The file already exists in \"%s\".  Replacing it will overwrite its contents."
 msgstr ""
 "El archivo ya existe en «%s». Si lo reemplaza sobreescribirá su contenido."
 
-#: ../gtk/gtkfilechooserdefault.c:8154 ../gtk/gtkprintunixdialog.c:561
+#: ../gtk/gtkfilechooserdefault.c:8105 ../gtk/gtkprintunixdialog.c:561
 msgid "_Replace"
 msgstr "_Reemplazar"
 
-#: ../gtk/gtkfilechooserdefault.c:8881
+#: ../gtk/gtkfilechooserdefault.c:8858
 msgid "Could not start the search process"
 msgstr "No se ha podido iniciar el proceso de búsqueda"
 
-#: ../gtk/gtkfilechooserdefault.c:8882
+#: ../gtk/gtkfilechooserdefault.c:8859
 msgid ""
 "The program was not able to create a connection to the indexer daemon.  "
 "Please make sure it is running."
@@ -1362,15 +1381,11 @@ msgstr ""
 "El programa no fue capaz de crear una conexión con el demonio indexador. Por "
 "favor asegúrese de que se está ejecutando."
 
-#: ../gtk/gtkfilechooserdefault.c:8896
+#: ../gtk/gtkfilechooserdefault.c:8873
 msgid "Could not send the search request"
 msgstr "No se ha podido enviar la petición de búsqueda"
 
-#: ../gtk/gtkfilechooserdefault.c:9115
-msgid "Search:"
-msgstr "Buscar:"
-
-#: ../gtk/gtkfilechooserdefault.c:9723
+#: ../gtk/gtkfilechooserdefault.c:9665
 #, c-format
 msgid "Could not mount %s"
 msgstr "No se pudo montar %s"
@@ -1378,6 +1393,8 @@ msgstr "No se pudo montar %s"
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry, when the user enters an invalid path.
 #: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1174
+#: ../gtk/gtkfilesystem.c:721
+#, c-format
 msgid "Invalid path"
 msgstr "Ruta no válida"
 
@@ -1456,30 +1473,30 @@ msgstr "Tipografía"
 
 #. This is the default text shown in the preview entry, though the user
 #. can set it. Remember that some fonts only have capital letters.
-#: ../gtk/gtkfontsel.c:120
+#: ../gtk/gtkfontsel.c:119
 msgid "abcdefghijk ABCDEFGHIJK"
 msgstr ""
 "El veloz murciélago hindú comía feliz cardillo y kiwi. La cigüeña tocaba el "
 "saxofón detrás del palenque de paja."
 
-#: ../gtk/gtkfontsel.c:389
+#: ../gtk/gtkfontsel.c:388
 msgid "_Family:"
 msgstr "_Familia:"
 
-#: ../gtk/gtkfontsel.c:396
+#: ../gtk/gtkfontsel.c:395
 msgid "_Style:"
 msgstr "_Estilo:"
 
-#: ../gtk/gtkfontsel.c:403
+#: ../gtk/gtkfontsel.c:402
 msgid "Si_ze:"
 msgstr "_Tamaño:"
 
 #. create the text entry widget
-#: ../gtk/gtkfontsel.c:580
+#: ../gtk/gtkfontsel.c:579
 msgid "_Preview:"
 msgstr "_Vista previa:"
 
-#: ../gtk/gtkfontsel.c:1702
+#: ../gtk/gtkfontsel.c:1701
 msgid "Font Selection"
 msgstr "Selección de tipografías"
 
@@ -1492,7 +1509,7 @@ msgstr "El icono «%s» no está presente en el tema"
 msgid "Failed to load icon"
 msgstr "No se pudo cargar el icono"
 
-#: ../gtk/gtkimmodule.c:526
+#: ../gtk/gtkimmodule.c:525
 msgid "Simple"
 msgstr "Simple"
 
@@ -1514,20 +1531,20 @@ msgid "System (%s)"
 msgstr "Sistema (%s)"
 
 #. Open Link
-#: ../gtk/gtklabel.c:6302
+#: ../gtk/gtklabel.c:6309
 msgid "_Open Link"
 msgstr "_Abrir enlace"
 
 #. Copy Link Address
-#: ../gtk/gtklabel.c:6314
+#: ../gtk/gtklabel.c:6321
 msgid "Copy _Link Address"
 msgstr "Copiar la dirección del _enlace"
 
-#: ../gtk/gtklinkbutton.c:482
+#: ../gtk/gtklinkbutton.c:484
 msgid "Copy URL"
 msgstr "Copiar URL"
 
-#: ../gtk/gtklinkbutton.c:645
+#: ../gtk/gtklinkbutton.c:647
 msgid "Invalid URI"
 msgstr "URI inválida"
 
@@ -1564,27 +1581,27 @@ msgstr ""
 "Contacte con el administrador de su sistema"
 
 #. Description of --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:563
+#: ../gtk/gtkmain.c:562
 msgid "Load additional GTK+ modules"
 msgstr "Cargar módulos adicionales GTK+"
 
 #. Placeholder in --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:564
+#: ../gtk/gtkmain.c:563
 msgid "MODULES"
 msgstr "MÓDULOS"
 
 #. Description of --g-fatal-warnings in --help output
-#: ../gtk/gtkmain.c:566
+#: ../gtk/gtkmain.c:565
 msgid "Make all warnings fatal"
 msgstr "Hacer todas las advertencias fatales"
 
 #. Description of --gtk-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:569
+#: ../gtk/gtkmain.c:568
 msgid "GTK+ debugging flags to set"
 msgstr "Opciones de depuración GTK+ a poner"
 
 #. Description of --gtk-no-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:572
+#: ../gtk/gtkmain.c:571
 msgid "GTK+ debugging flags to unset"
 msgstr "Opciones de depuración GTK+ a quitar"
 
@@ -1593,20 +1610,20 @@ msgstr "Opciones de depuración GTK+ a quitar"
 #. * Do *not* translate it to "predefinito:LTR", if it
 #. * it isn't default:LTR or default:RTL it will not work
 #.
-#: ../gtk/gtkmain.c:846
+#: ../gtk/gtkmain.c:848
 msgid "default:LTR"
 msgstr "default:LTR"
 
-#: ../gtk/gtkmain.c:910
+#: ../gtk/gtkmain.c:914
 #, c-format
 msgid "Cannot open display: %s"
 msgstr "No se puede abrir el visor: %s"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "GTK+ Options"
 msgstr "Opciones GTK+"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "Show GTK+ Options"
 msgstr "Mostrar opciones GTK+"
 
@@ -1691,7 +1708,7 @@ msgstr "Shell Z"
 msgid "Cannot end process with PID %d: %s"
 msgstr "No se puede finalizar el proceso con PID %d: %s"
 
-#: ../gtk/gtknotebook.c:4919 ../gtk/gtknotebook.c:7608
+#: ../gtk/gtknotebook.c:4922 ../gtk/gtknotebook.c:7611
 #, c-format
 msgid "Page %u"
 msgstr "Página %u"
@@ -2343,15 +2360,6 @@ msgstr ""
 "No se encontró ninguna aplicación registrada con el nombre «%s» para el "
 "elemento con el URI «%s»"
 
-#: ../gtk/gtkspinner.c:287
-msgctxt "throbbing progress animation widget"
-msgid "Spinner"
-msgstr "Marcador incrementable"
-
-#: ../gtk/gtkspinner.c:288
-msgid "Provides visual indication of progress"
-msgstr "Proporciona una indicación visual del progreso"
-
 #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
 #: ../gtk/gtkstock.c:313
 msgctxt "Stock label"
@@ -2862,7 +2870,7 @@ msgstr "_Reducir"
 #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
 #. * the state
 #.
-#: ../gtk/gtkswitch.c:338 ../gtk/gtkswitch.c:398 ../gtk/gtkswitch.c:605
+#: ../gtk/gtkswitch.c:336 ../gtk/gtkswitch.c:396 ../gtk/gtkswitch.c:603
 msgctxt "switch"
 msgid "ON"
 msgstr "❙"
@@ -2870,20 +2878,11 @@ msgstr "❙"
 #. Translators: if the "off" state label requires more than three
 #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
 #.
-#: ../gtk/gtkswitch.c:346 ../gtk/gtkswitch.c:399 ../gtk/gtkswitch.c:634
+#: ../gtk/gtkswitch.c:344 ../gtk/gtkswitch.c:397 ../gtk/gtkswitch.c:632
 msgctxt "switch"
 msgid "OFF"
 msgstr "○"
 
-#: ../gtk/gtkswitch.c:1061
-msgctxt "light switch widget"
-msgid "Switch"
-msgstr "Interruptor"
-
-#: ../gtk/gtkswitch.c:1062
-msgid "Switches between on and off states"
-msgstr "Cambia entre los estados encendido y apagado"
-
 #: ../gtk/gtktextbufferrichtext.c:651
 #, c-format
 msgid "Unknown error when trying to deserialize %s"
@@ -4438,6 +4437,24 @@ msgstr "Perfil de la impresora"
 msgid "Unavailable"
 msgstr "No disponible"
 
+#. TRANSLATORS: when we're running an old CUPS, and
+#. * it hasn't registered the device with colord
+#: ../modules/printbackends/cups/gtkprintercups.c:222
+msgid "Color management unavailable"
+msgstr "Gestión del color no disponible"
+
+#. TRANSLATORS: when there is no color profile available
+#: ../modules/printbackends/cups/gtkprintercups.c:234
+#| msgid "Not available"
+msgid "No profile available"
+msgstr "No hay un perfil disponible"
+
+#. TRANSLATORS: when the color profile has no title
+#: ../modules/printbackends/cups/gtkprintercups.c:245
+#| msgid "Unspecified error"
+msgid "Unspecified profile"
+msgstr "Perfil no especificado"
+
 #. default filename used for print-to-file
 #: ../modules/printbackends/file/gtkprintbackendfile.c:250
 #, c-format
@@ -4538,6 +4555,9 @@ msgstr ""
 "No se ha podido cargar la imagen «%s»: el motivo es desconocido, "
 "probablemente el archivo gráfico esté corrupto"
 
+#~ msgid "_Browse for other folders"
+#~ msgstr "_Buscar otras carpetas"
+
 #~ msgid "Locked"
 #~ msgstr "Bloqueado"
 
index 5693f020949d6a00be31226f15e6762c45d7b837..5abcb69ed83f594c33ddc3bbe8e989d0167a4c68 100644 (file)
--- a/po/fa.po
+++ b/po/fa.po
@@ -12,7 +12,7 @@ msgstr ""
 "Project-Id-Version: gtk+ 2.6\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2b&keywords=I18N+L10N&component=general\n"
 "POT-Creation-Date: 2011-06-20 13:26+0000\n"
-"PO-Revision-Date: 2011-06-23 23:30+0330\n"
+"PO-Revision-Date: 2011-07-05 22:17+0330\n"
 "Last-Translator: Arash Mousavi <mousavi.arash@gmail.com>\n"
 "Language-Team: Persian <translate@ifsug.org>\n"
 "Language: fa\n"
@@ -387,7 +387,7 @@ msgstr "خواب زمستانی"
 #: ../gdk/keyname-table.h:4010
 msgctxt "keyboard label"
 msgid "XF86WLAN"
-msgstr ""
+msgstr "لن"
 
 #: ../gdk/keyname-table.h:4011
 msgctxt "keyboard label"
@@ -4081,7 +4081,7 @@ msgstr "تصدیق هویت برای چاپ یک سند روی %s لازم اس
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:874
 #, c-format
 msgid "Authentication is required to get attributes of job '%s'"
-msgstr "تصدیق هویت برای گرفتن خصیصه‌های کار '%s' لازم است."
+msgstr "تصدیق هویت برای گرفتن خصیصه‌های کار «%s» لازم است."
 
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:876
 msgid "Authentication is required to get attributes of a job"
@@ -4226,7 +4226,7 @@ msgstr "_خروجی کاغذ:"
 
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
 msgid "Resolution"
-msgstr "_دقت"
+msgstr "تفکیک‌پذیری"
 
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2803
 msgid "GhostScript pre-filtering"
@@ -4251,7 +4251,7 @@ msgstr "لبه کوتاه (برگشته)"
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2820
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2828
 msgid "Auto Select"
-msgstr "گزینش _خودکار"
+msgstr "گزینش خودکار"
 
 #. Translators: this is an option of "Paper Source"
 #. Translators: this is an option of "Resolution"
index 10e0edd3b13d0820c2b84fabbb872dfea36fb80b..d0d9e8f453a10948199e90fc4bc22ebd75f89bf7 100644 (file)
--- a/po/gl.po
+++ b/po/gl.po
@@ -21,8 +21,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gtk+-master-po-gl-77922___.merged\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-21 13:56+0200\n"
-"PO-Revision-Date: 2011-06-21 13:57+0200\n"
+"POT-Creation-Date: 2011-07-11 00:09+0200\n"
+"PO-Revision-Date: 2011-07-11 00:11+0200\n"
 "Last-Translator: Fran Diéguez <frandieguez@gnome.org>\n"
 "Language-Team: Galician <gnome-l10n-gl@gnome.org>\n"
 "Language: gl\n"
@@ -465,6 +465,24 @@ msgid_plural "Opening %d Items"
 msgstr[0] "Abrindo %d elemento"
 msgstr[1] "Abrindo %d elementos"
 
+#: ../gtk/a11y/gtkspinneraccessible.c:42
+msgctxt "throbbing progress animation widget"
+msgid "Spinner"
+msgstr "Axustador"
+
+#: ../gtk/a11y/gtkspinneraccessible.c:43
+msgid "Provides visual indication of progress"
+msgstr "Fornece un indicador visual de progreso"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:65
+msgctxt "light switch widget"
+msgid "Switch"
+msgstr "Interruptor"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:66
+msgid "Switches between on and off states"
+msgstr "Cambia entre os estados acendido e apagado"
+
 #. Translators: this is the license preamble; the string at the end
 #. * contains the URL of the license.
 #.
@@ -677,15 +695,15 @@ msgstr "Aplicativos relacionados"
 msgid "Other Applications"
 msgstr "Outros aplicativos"
 
-#: ../gtk/gtkassistant.c:919
+#: ../gtk/gtkassistant.c:1000
 msgid "C_ontinue"
 msgstr "C_ontinuar"
 
-#: ../gtk/gtkassistant.c:922
+#: ../gtk/gtkassistant.c:1003
 msgid "Go _Back"
 msgstr "_Atrás"
 
-#: ../gtk/gtkassistant.c:926
+#: ../gtk/gtkassistant.c:1007
 msgid "_Finish"
 msgstr "_Rematar"
 
@@ -721,7 +739,7 @@ msgstr "Etiqueta non compatíbel: «%s»"
 #. * text direction of RTL and specify "calendar:YM", then the year
 #. * will appear to the right of the month.
 #.
-#: ../gtk/gtkcalendar.c:870
+#: ../gtk/gtkcalendar.c:874
 msgid "calendar:MY"
 msgstr "calendar:MY"
 
@@ -729,7 +747,7 @@ msgstr "calendar:MY"
 #. * first day of the week to calendar:week_start:1 if you want Monday
 #. * to be the first day of the week, and so on.
 #.
-#: ../gtk/gtkcalendar.c:908
+#: ../gtk/gtkcalendar.c:912
 msgid "calendar:week_start:0"
 msgstr "calendar:week_start:1"
 
@@ -738,7 +756,7 @@ msgstr "calendar:week_start:1"
 #. *
 #. * If you don't understand this, leave it as "2000"
 #.
-#: ../gtk/gtkcalendar.c:1909
+#: ../gtk/gtkcalendar.c:1913
 msgctxt "year measurement template"
 msgid "2000"
 msgstr "2000"
@@ -753,7 +771,7 @@ msgstr "2000"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1940 ../gtk/gtkcalendar.c:2637
+#: ../gtk/gtkcalendar.c:1944 ../gtk/gtkcalendar.c:2641
 #, c-format
 msgctxt "calendar:day:digits"
 msgid "%d"
@@ -769,7 +787,7 @@ msgstr "%d"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1972 ../gtk/gtkcalendar.c:2498
+#: ../gtk/gtkcalendar.c:1976 ../gtk/gtkcalendar.c:2502
 #, c-format
 msgctxt "calendar:week:digits"
 msgid "%d"
@@ -785,7 +803,7 @@ msgstr "%d"
 #. *
 #. * "%Y" is appropriate for most locales.
 #.
-#: ../gtk/gtkcalendar.c:2267
+#: ../gtk/gtkcalendar.c:2271
 msgctxt "calendar year format"
 msgid "%Y"
 msgstr "%Y"
@@ -1029,23 +1047,23 @@ msgstr "_Dereito:"
 msgid "Paper Margins"
 msgstr "Marxes do papel"
 
-#: ../gtk/gtkentry.c:8928 ../gtk/gtktextview.c:8274
+#: ../gtk/gtkentry.c:8949 ../gtk/gtktextview.c:8277
 msgid "Input _Methods"
 msgstr "_Métodos de entrada"
 
-#: ../gtk/gtkentry.c:8942 ../gtk/gtktextview.c:8288
+#: ../gtk/gtkentry.c:8963 ../gtk/gtktextview.c:8291
 msgid "_Insert Unicode Control Character"
 msgstr "_Inserir un carácter de control Unicode"
 
-#: ../gtk/gtkentry.c:10413
+#: ../gtk/gtkentry.c:10434
 msgid "Caps Lock and Num Lock are on"
 msgstr "Bloq Maiús e Bloq Num estás activados"
 
-#: ../gtk/gtkentry.c:10415
+#: ../gtk/gtkentry.c:10436
 msgid "Num Lock is on"
 msgstr "Bloq Num está activado"
 
-#: ../gtk/gtkentry.c:10417
+#: ../gtk/gtkentry.c:10438
 msgid "Caps Lock is on"
 msgstr "Bloq Maiús está activado"
 
@@ -1094,7 +1112,7 @@ msgstr "Bloq Maiús está activado"
 msgid "Select a File"
 msgstr "Seleccionar un ficheiro"
 
-#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1871
+#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1809
 msgid "Desktop"
 msgstr "Escritorio"
 
@@ -1106,27 +1124,27 @@ msgstr "(Ningún)"
 msgid "Other..."
 msgstr "Outro…"
 
-#: ../gtk/gtkfilechooserdefault.c:147
+#: ../gtk/gtkfilechooserdefault.c:148
 msgid "Type name of new folder"
 msgstr "Escriba o nome do cartafol novo"
 
-#: ../gtk/gtkfilechooserdefault.c:965
+#: ../gtk/gtkfilechooserdefault.c:960
 msgid "Could not retrieve information about the file"
 msgstr "Non foi posíbel recuperar a información sobre o ficheiro"
 
-#: ../gtk/gtkfilechooserdefault.c:976
+#: ../gtk/gtkfilechooserdefault.c:971
 msgid "Could not add a bookmark"
 msgstr "Non foi posíbel engadir un marcador"
 
-#: ../gtk/gtkfilechooserdefault.c:987
+#: ../gtk/gtkfilechooserdefault.c:982
 msgid "Could not remove bookmark"
 msgstr "Non foi posíbel eliminar o marcador"
 
-#: ../gtk/gtkfilechooserdefault.c:998
+#: ../gtk/gtkfilechooserdefault.c:993
 msgid "The folder could not be created"
 msgstr "Non foi posíbel crear o cartafol"
 
-#: ../gtk/gtkfilechooserdefault.c:1011
+#: ../gtk/gtkfilechooserdefault.c:1006
 msgid ""
 "The folder could not be created, as a file with the same name already "
 "exists.  Try using a different name for the folder, or rename the file first."
@@ -1134,16 +1152,16 @@ msgstr ""
 "Non foi posíbel crear o cartafol: xa existe un ficheiro co mesmo nome. Tente "
 "usar un nome diferente para o cartafol ou renomee o ficheiro primeiro."
 
-#: ../gtk/gtkfilechooserdefault.c:1025
+#: ../gtk/gtkfilechooserdefault.c:1020
 msgid "You need to choose a valid filename."
 msgstr "Debe seleccionar un nome de ficheiro válido."
 
-#: ../gtk/gtkfilechooserdefault.c:1028
+#: ../gtk/gtkfilechooserdefault.c:1023
 #, c-format
 msgid "Cannot create a file under %s as it is not a folder"
 msgstr "Non é posíbel crear un ficheiro baixo %s xa que non é un cartafol"
 
-#: ../gtk/gtkfilechooserdefault.c:1040
+#: ../gtk/gtkfilechooserdefault.c:1035
 msgid ""
 "You may only select folders.  The item that you selected is not a folder; "
 "try using a different item."
@@ -1151,11 +1169,11 @@ msgstr ""
 "Debe seleccionar só cartafoles. O elemento que vostede seleccionou non é un "
 "cartafol. Tente usar un elemento diferente."
 
-#: ../gtk/gtkfilechooserdefault.c:1050
+#: ../gtk/gtkfilechooserdefault.c:1045
 msgid "Invalid file name"
 msgstr "O nome do ficheiro é incorrecto"
 
-#: ../gtk/gtkfilechooserdefault.c:1060
+#: ../gtk/gtkfilechooserdefault.c:1055
 msgid "The folder contents could not be displayed"
 msgstr "Non foi posíbel mostrar o contido do cartafol"
 
@@ -1163,194 +1181,201 @@ msgstr "Non foi posíbel mostrar o contido do cartafol"
 #. * is a hostname. Nautilus and the panel contain the same string
 #. * to translate.
 #.
-#: ../gtk/gtkfilechooserdefault.c:1614
+#: ../gtk/gtkfilechooserdefault.c:1581
 #, c-format
 msgid "%1$s on %2$s"
 msgstr "%1$s en %2$s"
 
-#: ../gtk/gtkfilechooserdefault.c:1790
+#: ../gtk/gtkfilechooserdefault.c:1730
 msgid "Search"
 msgstr "Buscar"
 
-#: ../gtk/gtkfilechooserdefault.c:1814 ../gtk/gtkfilechooserdefault.c:9539
+#: ../gtk/gtkfilechooserdefault.c:1754 ../gtk/gtkfilechooserdefault.c:4871
 msgid "Recently Used"
 msgstr "Usado recentemente"
 
-#: ../gtk/gtkfilechooserdefault.c:2470
+#: ../gtk/gtkfilechooserdefault.c:2353
 msgid "Select which types of files are shown"
 msgstr "Seleccione que tipos de ficheiros se mostran"
 
-#: ../gtk/gtkfilechooserdefault.c:2829
+#: ../gtk/gtkfilechooserdefault.c:2712
 #, c-format
 msgid "Add the folder '%s' to the bookmarks"
 msgstr "Engadirlle o cartafol «%s» aos marcadores"
 
-#: ../gtk/gtkfilechooserdefault.c:2873
+#: ../gtk/gtkfilechooserdefault.c:2756
 #, c-format
 msgid "Add the current folder to the bookmarks"
 msgstr "Engadirlle o cartafol actual aos marcadores"
 
-#: ../gtk/gtkfilechooserdefault.c:2875
+#: ../gtk/gtkfilechooserdefault.c:2758
 #, c-format
 msgid "Add the selected folders to the bookmarks"
 msgstr "Engadirlle os cartafoles seleccionados aos marcadores"
 
-#: ../gtk/gtkfilechooserdefault.c:2913
+#: ../gtk/gtkfilechooserdefault.c:2796
 #, c-format
 msgid "Remove the bookmark '%s'"
 msgstr "Eliminar o marcador «%s»"
 
-#: ../gtk/gtkfilechooserdefault.c:2915
+#: ../gtk/gtkfilechooserdefault.c:2798
 #, c-format
 msgid "Bookmark '%s' cannot be removed"
 msgstr "O marcador «%s» non pode ser eliminado"
 
-#: ../gtk/gtkfilechooserdefault.c:2922 ../gtk/gtkfilechooserdefault.c:3807
+#: ../gtk/gtkfilechooserdefault.c:2805 ../gtk/gtkfilechooserdefault.c:3690
 msgid "Remove the selected bookmark"
 msgstr "Eliminar o marcador seleccionado"
 
-#: ../gtk/gtkfilechooserdefault.c:3486
+#: ../gtk/gtkfilechooserdefault.c:3369
 msgid "Remove"
 msgstr "Eliminar"
 
-#: ../gtk/gtkfilechooserdefault.c:3495
+#: ../gtk/gtkfilechooserdefault.c:3378
 msgid "Rename..."
 msgstr "Renomear…"
 
 #. Accessible object name for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3659
+#: ../gtk/gtkfilechooserdefault.c:3542
 msgid "Places"
 msgstr "Lugares"
 
 #. Column header for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3716
+#: ../gtk/gtkfilechooserdefault.c:3599
 msgid "_Places"
 msgstr "_Lugares"
 
-#: ../gtk/gtkfilechooserdefault.c:3795
+#: ../gtk/gtkfilechooserdefault.c:3678
 msgid "Add the selected folder to the Bookmarks"
 msgstr "Engadir o cartafol seleccionado aos marcadores"
 
-#: ../gtk/gtkfilechooserdefault.c:3942
+#: ../gtk/gtkfilechooserdefault.c:3825
 msgid "Could not select file"
 msgstr "Non foi posíbel seleccionar o ficheiro"
 
-#: ../gtk/gtkfilechooserdefault.c:4115
+#: ../gtk/gtkfilechooserdefault.c:3998
 msgid "_Add to Bookmarks"
 msgstr "_Engadir aos marcadores"
 
-#: ../gtk/gtkfilechooserdefault.c:4128
+#: ../gtk/gtkfilechooserdefault.c:4011
 msgid "Show _Hidden Files"
 msgstr "Mostrar os ficheiros _ocultos"
 
-#: ../gtk/gtkfilechooserdefault.c:4135
+#: ../gtk/gtkfilechooserdefault.c:4018
 msgid "Show _Size Column"
 msgstr "Mostrar a columna de _tamaño"
 
-#: ../gtk/gtkfilechooserdefault.c:4360
+#: ../gtk/gtkfilechooserdefault.c:4243
 msgid "Files"
 msgstr "Ficheiros"
 
-#: ../gtk/gtkfilechooserdefault.c:4411
+#: ../gtk/gtkfilechooserdefault.c:4294
 msgid "Name"
 msgstr "Nome"
 
-#: ../gtk/gtkfilechooserdefault.c:4434
+#: ../gtk/gtkfilechooserdefault.c:4317
 msgid "Size"
 msgstr "Tamaño"
 
-#: ../gtk/gtkfilechooserdefault.c:4448
+#: ../gtk/gtkfilechooserdefault.c:4331
 msgid "Modified"
 msgstr "Modificado"
 
 #. Label
-#: ../gtk/gtkfilechooserdefault.c:4702 ../gtk/gtkprinteroptionwidget.c:799
+#: ../gtk/gtkfilechooserdefault.c:4412 ../gtk/gtkprinteroptionwidget.c:799
 msgid "_Name:"
 msgstr "_Nome:"
 
-#. Expander
-#: ../gtk/gtkfilechooserdefault.c:4745
-msgid "_Browse for other folders"
-msgstr "_Buscar outros cartafoles"
-
-#: ../gtk/gtkfilechooserdefault.c:5018
+#: ../gtk/gtkfilechooserdefault.c:4709
 msgid "Type a file name"
 msgstr "Teclee un nome de ficheiro"
 
+#: ../gtk/gtkfilechooserdefault.c:4756 ../gtk/gtkfilechooserdefault.c:4767
+msgid "Please select a folder below"
+msgstr "Seleccionar un cartafol de embaixo"
+
+#: ../gtk/gtkfilechooserdefault.c:4762
+msgid "Please type a file name"
+msgstr "Escriba o nome dun ficheiro"
+
 #. Create Folder
-#: ../gtk/gtkfilechooserdefault.c:5061
+#: ../gtk/gtkfilechooserdefault.c:4833
 msgid "Create Fo_lder"
 msgstr "Crear car_tafol"
 
-#: ../gtk/gtkfilechooserdefault.c:5071
+#: ../gtk/gtkfilechooserdefault.c:4881
+msgid "Search:"
+msgstr "Buscar:"
+
+#: ../gtk/gtkfilechooserdefault.c:4928
 msgid "_Location:"
 msgstr "_Localización:"
 
-#: ../gtk/gtkfilechooserdefault.c:5278
+#: ../gtk/gtkfilechooserdefault.c:5245
 msgid "Save in _folder:"
 msgstr "Gardar no _cartafol:"
 
-#: ../gtk/gtkfilechooserdefault.c:5280
+#: ../gtk/gtkfilechooserdefault.c:5247
 msgid "Create in _folder:"
 msgstr "Crear no _cartafol:"
 
-#: ../gtk/gtkfilechooserdefault.c:6402
+#: ../gtk/gtkfilechooserdefault.c:6341
 #, c-format
 msgid "Could not read the contents of %s"
 msgstr "Non foi posíbel ler os contidos do %s"
 
-#: ../gtk/gtkfilechooserdefault.c:6406
+#: ../gtk/gtkfilechooserdefault.c:6345
 msgid "Could not read the contents of the folder"
 msgstr "Non foi posíbel ler os contidos do cartafol"
 
-#: ../gtk/gtkfilechooserdefault.c:6499 ../gtk/gtkfilechooserdefault.c:6567
-#: ../gtk/gtkfilechooserdefault.c:6719
+#: ../gtk/gtkfilechooserdefault.c:6438 ../gtk/gtkfilechooserdefault.c:6506
+#: ../gtk/gtkfilechooserdefault.c:6658
 msgid "Unknown"
 msgstr "Descoñecido"
 
-#: ../gtk/gtkfilechooserdefault.c:6514
+#: ../gtk/gtkfilechooserdefault.c:6453
 msgid "%H:%M"
 msgstr "%H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:6516
+#: ../gtk/gtkfilechooserdefault.c:6455
 msgid "Yesterday at %H:%M"
 msgstr "Onte ás %H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:7185
+#: ../gtk/gtkfilechooserdefault.c:7140
 msgid "Cannot change to folder because it is not local"
 msgstr "Non é posíbel cambiar ao cartafol porque non é local"
 
-#: ../gtk/gtkfilechooserdefault.c:7777 ../gtk/gtkfilechooserdefault.c:7798
+#: ../gtk/gtkfilechooserdefault.c:7740 ../gtk/gtkfilechooserdefault.c:7761
 #, c-format
 msgid "Shortcut %s already exists"
 msgstr "O atallo %s xa existe"
 
-#: ../gtk/gtkfilechooserdefault.c:7888
+#: ../gtk/gtkfilechooserdefault.c:7851
 #, c-format
 msgid "Shortcut %s does not exist"
 msgstr "O atallo %s non existe"
 
-#: ../gtk/gtkfilechooserdefault.c:8146 ../gtk/gtkprintunixdialog.c:550
+#: ../gtk/gtkfilechooserdefault.c:8097 ../gtk/gtkprintunixdialog.c:550
 #, c-format
 msgid "A file named \"%s\" already exists.  Do you want to replace it?"
 msgstr "Xa existe un ficheiro con nome «%s». Quere substituílo?"
 
-#: ../gtk/gtkfilechooserdefault.c:8149 ../gtk/gtkprintunixdialog.c:554
+#: ../gtk/gtkfilechooserdefault.c:8100 ../gtk/gtkprintunixdialog.c:554
 #, c-format
 msgid ""
 "The file already exists in \"%s\".  Replacing it will overwrite its contents."
 msgstr ""
 "O ficheiro xa existe en «%s». Se o substitúe sobrescribirá os seus contidos."
 
-#: ../gtk/gtkfilechooserdefault.c:8154 ../gtk/gtkprintunixdialog.c:561
+#: ../gtk/gtkfilechooserdefault.c:8105 ../gtk/gtkprintunixdialog.c:561
 msgid "_Replace"
 msgstr "_Substituír"
 
-#: ../gtk/gtkfilechooserdefault.c:8881
+#: ../gtk/gtkfilechooserdefault.c:8858
 msgid "Could not start the search process"
 msgstr "Non foi posíbel iniciar o proceso de busca"
 
-#: ../gtk/gtkfilechooserdefault.c:8882
+#: ../gtk/gtkfilechooserdefault.c:8859
 msgid ""
 "The program was not able to create a connection to the indexer daemon.  "
 "Please make sure it is running."
@@ -1358,15 +1383,11 @@ msgstr ""
 "O programa non puido crear unha conexión co daemon indexador.  Asegúrese de "
 "que está en execución."
 
-#: ../gtk/gtkfilechooserdefault.c:8896
+#: ../gtk/gtkfilechooserdefault.c:8873
 msgid "Could not send the search request"
 msgstr "Non foi posíbel enviar a solicitude de busca"
 
-#: ../gtk/gtkfilechooserdefault.c:9115
-msgid "Search:"
-msgstr "Buscar:"
-
-#: ../gtk/gtkfilechooserdefault.c:9723
+#: ../gtk/gtkfilechooserdefault.c:9665
 #, c-format
 msgid "Could not mount %s"
 msgstr "Non foi posíbel montar %s"
@@ -1374,6 +1395,8 @@ msgstr "Non foi posíbel montar %s"
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry, when the user enters an invalid path.
 #: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1174
+#: ../gtk/gtkfilesystem.c:721
+#, c-format
 msgid "Invalid path"
 msgstr "Ruta incorrecta"
 
@@ -1507,20 +1530,20 @@ msgid "System (%s)"
 msgstr "Sistema (%s)"
 
 #. Open Link
-#: ../gtk/gtklabel.c:6302
+#: ../gtk/gtklabel.c:6309
 msgid "_Open Link"
 msgstr "_Abrir a ligazón"
 
 #. Copy Link Address
-#: ../gtk/gtklabel.c:6314
+#: ../gtk/gtklabel.c:6321
 msgid "Copy _Link Address"
 msgstr "Copiar o enderezo da _ligazón"
 
-#: ../gtk/gtklinkbutton.c:482
+#: ../gtk/gtklinkbutton.c:484
 msgid "Copy URL"
 msgstr "Copiar URL"
 
-#: ../gtk/gtklinkbutton.c:645
+#: ../gtk/gtklinkbutton.c:647
 msgid "Invalid URI"
 msgstr "URI incorrecto"
 
@@ -1586,20 +1609,20 @@ msgstr "Marcas de depuración GTK+ para desconfigurar"
 #. * Do *not* translate it to "predefinito:LTR", if it
 #. * it isn't default:LTR or default:RTL it will not work
 #.
-#: ../gtk/gtkmain.c:845
+#: ../gtk/gtkmain.c:848
 msgid "default:LTR"
 msgstr "default:LTR"
 
-#: ../gtk/gtkmain.c:909
+#: ../gtk/gtkmain.c:914
 #, c-format
 msgid "Cannot open display: %s"
 msgstr "Non é posíbel abrir a pantalla: %s"
 
-#: ../gtk/gtkmain.c:975
+#: ../gtk/gtkmain.c:980
 msgid "GTK+ Options"
 msgstr "Opcións GTK+"
 
-#: ../gtk/gtkmain.c:975
+#: ../gtk/gtkmain.c:980
 msgid "Show GTK+ Options"
 msgstr "Mostrar opcións GTK+"
 
@@ -1684,7 +1707,7 @@ msgstr "Intérprete de ordes Z"
 msgid "Cannot end process with PID %d: %s"
 msgstr "Non é posíbel finalizar o proceso co PID %d: %s"
 
-#: ../gtk/gtknotebook.c:4919 ../gtk/gtknotebook.c:7608
+#: ../gtk/gtknotebook.c:4922 ../gtk/gtknotebook.c:7611
 #, c-format
 msgid "Page %u"
 msgstr "Páxina %u"
@@ -2337,15 +2360,6 @@ msgstr ""
 "Non foi posíbel atopar ningún aplicativo rexistrado co nome «%s» para o "
 "elemento co URI «%s»"
 
-#: ../gtk/gtkspinner.c:286
-msgctxt "throbbing progress animation widget"
-msgid "Spinner"
-msgstr "Axustador"
-
-#: ../gtk/gtkspinner.c:287
-msgid "Provides visual indication of progress"
-msgstr "Fornece un indicador visual de progreso"
-
 #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
 #: ../gtk/gtkstock.c:313
 msgctxt "Stock label"
@@ -2854,7 +2868,7 @@ msgstr "Red_ucir"
 #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
 #. * the state
 #.
-#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:397 ../gtk/gtkswitch.c:604
+#: ../gtk/gtkswitch.c:336 ../gtk/gtkswitch.c:396 ../gtk/gtkswitch.c:603
 msgctxt "switch"
 msgid "ON"
 msgstr "❙"
@@ -2862,20 +2876,11 @@ msgstr "❙"
 #. Translators: if the "off" state label requires more than three
 #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
 #.
-#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:398 ../gtk/gtkswitch.c:633
+#: ../gtk/gtkswitch.c:344 ../gtk/gtkswitch.c:397 ../gtk/gtkswitch.c:632
 msgctxt "switch"
 msgid "OFF"
 msgstr "○"
 
-#: ../gtk/gtkswitch.c:1060
-msgctxt "light switch widget"
-msgid "Switch"
-msgstr "Interruptor"
-
-#: ../gtk/gtkswitch.c:1061
-msgid "Switches between on and off states"
-msgstr "Cambia entre os estados acendido e apagado"
-
 #: ../gtk/gtktextbufferrichtext.c:651
 #, c-format
 msgid "Unknown error when trying to deserialize %s"
@@ -4432,6 +4437,22 @@ msgstr "Perfil da impresora"
 msgid "Unavailable"
 msgstr "Non dispoñíbel"
 
+#. TRANSLATORS: when we're running an old CUPS, and
+#. * it hasn't registered the device with colord
+#: ../modules/printbackends/cups/gtkprintercups.c:222
+msgid "Color management unavailable"
+msgstr "Xestión de cor non dispoñíbel"
+
+#. TRANSLATORS: when there is no color profile available
+#: ../modules/printbackends/cups/gtkprintercups.c:234
+msgid "No profile available"
+msgstr "Non hai un perfil dispoñíbel"
+
+#. TRANSLATORS: when the color profile has no title
+#: ../modules/printbackends/cups/gtkprintercups.c:245
+msgid "Unspecified profile"
+msgstr "Perfil non especificado"
+
 #. default filename used for print-to-file
 #: ../modules/printbackends/file/gtkprintbackendfile.c:250
 #, c-format
@@ -4532,6 +4553,9 @@ msgstr ""
 "Produciuse un fallo ao cargar a imaxe «%s»: o motivo é descoñecido, é "
 "probábel que o ficheiro de imaxe estea corrupto"
 
+#~ msgid "_Browse for other folders"
+#~ msgstr "_Buscar outros cartafoles"
+
 #~ msgid "Locked"
 #~ msgstr "Bloqueado"
 
index 1c5f44eaa1c6d4c4865f82ef5e8832d0d112f771..859338f455376077fbfd0bc2ef574f7b87887aae 100644 (file)
--- a/po/he.po
+++ b/po/he.po
@@ -10,8 +10,8 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gtk+.HEAD.he\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-10 08:10+0300\n"
-"PO-Revision-Date: 2011-06-10 08:11+0300\n"
+"POT-Creation-Date: 2011-07-15 11:00+0300\n"
+"PO-Revision-Date: 2011-07-15 11:01+0200\n"
 "Last-Translator: Yaron Shahrabani <sh.yaron@gmail.com>\n"
 "Language-Team: Gezer (Hebrew)\n"
 "Language: he\n"
@@ -71,7 +71,7 @@ msgstr "GDK debugging flags to set"
 #. Placeholder in --gdk-no-debug=FLAGS in --help output
 #. Placeholder in --gtk-debug=FLAGS in --help output
 #. Placeholder in --gtk-no-debug=FLAGS in --help output
-#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:570 ../gtk/gtkmain.c:573
+#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:569 ../gtk/gtkmain.c:572
 msgid "FLAGS"
 msgstr "FLAGS"
 
@@ -457,6 +457,24 @@ msgid_plural "Opening %d Items"
 msgstr[0] "פותח פריט אחד"
 msgstr[1] "פותח %d פריטים"
 
+#: ../gtk/a11y/gtkspinneraccessible.c:42
+msgctxt "throbbing progress animation widget"
+msgid "Spinner"
+msgstr "הנפשת המתנה"
+
+#: ../gtk/a11y/gtkspinneraccessible.c:43
+msgid "Provides visual indication of progress"
+msgstr "אספקת חיווי חזותי של התהליך"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:65
+msgctxt "light switch widget"
+msgid "Switch"
+msgstr "החלפה"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:66
+msgid "Switches between on and off states"
+msgstr "החלפה בין המצבים פעיל ולא פעיל"
+
 #. Translators: this is the license preamble; the string at the end
 #. * contains the URL of the license.
 #.
@@ -668,6 +686,18 @@ msgstr "יישומים קשורים"
 msgid "Other Applications"
 msgstr "יישומים אחרים"
 
+#: ../gtk/gtkassistant.c:999
+msgid "C_ontinue"
+msgstr "הת_קדמות"
+
+#: ../gtk/gtkassistant.c:1002
+msgid "Go _Back"
+msgstr "ח_זרה"
+
+#: ../gtk/gtkassistant.c:1006
+msgid "_Finish"
+msgstr "_סיום"
+
 #: ../gtk/gtkbuilderparser.c:342
 #, c-format
 msgid "Invalid type function on line %d: '%s'"
@@ -698,7 +728,7 @@ msgstr "תגית בלתי מטופלת: '%s'"
 #. * text direction of RTL and specify "calendar:YM", then the year
 #. * will appear to the right of the month.
 #.
-#: ../gtk/gtkcalendar.c:870
+#: ../gtk/gtkcalendar.c:874
 msgid "calendar:MY"
 msgstr "calendar:YM"
 
@@ -706,7 +736,7 @@ msgstr "calendar:YM"
 #. * first day of the week to calendar:week_start:1 if you want Monday
 #. * to be the first day of the week, and so on.
 #.
-#: ../gtk/gtkcalendar.c:908
+#: ../gtk/gtkcalendar.c:912
 msgid "calendar:week_start:0"
 msgstr "calendar:week_start:0"
 
@@ -715,7 +745,7 @@ msgstr "calendar:week_start:0"
 #. *
 #. * If you don't understand this, leave it as "2000"
 #.
-#: ../gtk/gtkcalendar.c:1909
+#: ../gtk/gtkcalendar.c:1913
 msgctxt "year measurement template"
 msgid "2000"
 msgstr "2000"
@@ -730,7 +760,7 @@ msgstr "2000"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1940 ../gtk/gtkcalendar.c:2637
+#: ../gtk/gtkcalendar.c:1944 ../gtk/gtkcalendar.c:2641
 #, c-format
 msgctxt "calendar:day:digits"
 msgid "%d"
@@ -746,7 +776,7 @@ msgstr "%d"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1972 ../gtk/gtkcalendar.c:2498
+#: ../gtk/gtkcalendar.c:1976 ../gtk/gtkcalendar.c:2502
 #, c-format
 msgctxt "calendar:week:digits"
 msgid "%d"
@@ -762,7 +792,7 @@ msgstr "%d"
 #. *
 #. * "%Y" is appropriate for most locales.
 #.
-#: ../gtk/gtkcalendar.c:2267
+#: ../gtk/gtkcalendar.c:2271
 msgctxt "calendar year format"
 msgid "%Y"
 msgstr "%Y"
@@ -788,7 +818,7 @@ msgstr "בלתי תקני"
 #. * an accelerator when the cell is clicked to change the
 #. * acelerator.
 #.
-#: ../gtk/gtkcellrendereraccel.c:432 ../gtk/gtkcellrendereraccel.c:744
+#: ../gtk/gtkcellrendereraccel.c:432 ../gtk/gtkcellrendereraccel.c:745
 msgid "New accelerator..."
 msgstr "מאיץ חדש..."
 
@@ -802,7 +832,7 @@ msgstr "%d %%"
 msgid "Pick a Color"
 msgstr "בחירת צבע"
 
-#: ../gtk/gtkcolorsel.c:417
+#: ../gtk/gtkcolorsel.c:416
 msgid ""
 "Select the color you want from the outer ring. Select the darkness or "
 "lightness of that color using the inner triangle."
@@ -810,73 +840,73 @@ msgstr ""
 "יש לבחור את הצבע הרצוי מהטבעת החיצונית. ניתן לבחור כמה כהה או בהיר יהיה צבע "
 "זה בעזרת המשולש הפנימי."
 
-#: ../gtk/gtkcolorsel.c:443
+#: ../gtk/gtkcolorsel.c:442
 msgid ""
 "Click the eyedropper, then click a color anywhere on your screen to select "
 "that color."
 msgstr "יש ללחוץ על הטפטפת ואז ללחוץ על צבע כלשהו במסך לבחירת אותו הצבע."
 
-#: ../gtk/gtkcolorsel.c:453
+#: ../gtk/gtkcolorsel.c:452
 msgid "_Hue:"
 msgstr "_גוון:"
 
-#: ../gtk/gtkcolorsel.c:454
+#: ../gtk/gtkcolorsel.c:453
 msgid "Position on the color wheel."
 msgstr "מיקום על גלגל הצבעים."
 
-#: ../gtk/gtkcolorsel.c:456
+#: ../gtk/gtkcolorsel.c:455
 msgid "_Saturation:"
 msgstr "_רוויה:"
 
-#: ../gtk/gtkcolorsel.c:457
+#: ../gtk/gtkcolorsel.c:456
 msgid "Intensity of the color."
 msgstr "חוזק הצבע."
 
-#: ../gtk/gtkcolorsel.c:458
+#: ../gtk/gtkcolorsel.c:457
 msgid "_Value:"
 msgstr "_ערך:"
 
-#: ../gtk/gtkcolorsel.c:459
+#: ../gtk/gtkcolorsel.c:458
 msgid "Brightness of the color."
 msgstr "בהירות הצבע."
 
-#: ../gtk/gtkcolorsel.c:460
+#: ../gtk/gtkcolorsel.c:459
 msgid "_Red:"
 msgstr "_אדום:"
 
-#: ../gtk/gtkcolorsel.c:461
+#: ../gtk/gtkcolorsel.c:460
 msgid "Amount of red light in the color."
 msgstr "כמות האור האדום בצבע."
 
-#: ../gtk/gtkcolorsel.c:462
+#: ../gtk/gtkcolorsel.c:461
 msgid "_Green:"
 msgstr "_ירוק:"
 
-#: ../gtk/gtkcolorsel.c:463
+#: ../gtk/gtkcolorsel.c:462
 msgid "Amount of green light in the color."
 msgstr "כמות האור הירוק בצבע."
 
-#: ../gtk/gtkcolorsel.c:464
+#: ../gtk/gtkcolorsel.c:463
 msgid "_Blue:"
 msgstr "_כחול:"
 
-#: ../gtk/gtkcolorsel.c:465
+#: ../gtk/gtkcolorsel.c:464
 msgid "Amount of blue light in the color."
 msgstr "כמות האור הכחול בצבע."
 
-#: ../gtk/gtkcolorsel.c:468
+#: ../gtk/gtkcolorsel.c:467
 msgid "Op_acity:"
 msgstr "_אטימות:"
 
-#: ../gtk/gtkcolorsel.c:476 ../gtk/gtkcolorsel.c:486
+#: ../gtk/gtkcolorsel.c:475 ../gtk/gtkcolorsel.c:485
 msgid "Transparency of the color."
 msgstr "אטימות הצבע."
 
-#: ../gtk/gtkcolorsel.c:493
+#: ../gtk/gtkcolorsel.c:492
 msgid "Color _name:"
 msgstr "_שם הצבע:"
 
-#: ../gtk/gtkcolorsel.c:508
+#: ../gtk/gtkcolorsel.c:507
 msgid ""
 "You can enter an HTML-style hexadecimal color value, or simply a color name "
 "such as 'orange' in this entry."
@@ -884,15 +914,15 @@ msgstr ""
 "ניתן להזין ערך צבע הקסדצימלי בסגנון HTML, או פשוט לכתוב שם צבע באנגלית כמו "
 "'orange' ברשומה זו."
 
-#: ../gtk/gtkcolorsel.c:540
+#: ../gtk/gtkcolorsel.c:539
 msgid "_Palette:"
 msgstr "_פלטה:"
 
-#: ../gtk/gtkcolorsel.c:570
+#: ../gtk/gtkcolorsel.c:569
 msgid "Color Wheel"
 msgstr "גלגל הצבעים"
 
-#: ../gtk/gtkcolorsel.c:1043
+#: ../gtk/gtkcolorsel.c:1042
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now. You can drag this color to a palette entry, or select this color as "
@@ -901,27 +931,27 @@ msgstr ""
 "הצבע הקודם שנבחר, להשוואה עם הצבע הנבחר כעת. ניתן לגרור צבע זה לרשומה בפלטה, "
 "או לבחור צבע זה כנוכחי על־ידי גרירתו לפיסת הצבע השנייה שלצידו."
 
-#: ../gtk/gtkcolorsel.c:1049
+#: ../gtk/gtkcolorsel.c:1048
 msgid ""
 "The color you've chosen. You can drag this color to a palette entry to save "
 "it for use in the future."
 msgstr "הצבע שנבחר. ניתן לגרור צבע זה לרשומת פלטה כדי לשמור אותו לשימוש בעתיד."
 
-#: ../gtk/gtkcolorsel.c:1055
+#: ../gtk/gtkcolorsel.c:1054
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now."
 msgstr "הצבע הקודם שנבחר, להשוואה עם הצבע שנבחר כעת."
 
-#: ../gtk/gtkcolorsel.c:1059
+#: ../gtk/gtkcolorsel.c:1058
 msgid "The color you've chosen."
 msgstr "הצבע שנבחר."
 
-#: ../gtk/gtkcolorsel.c:1461
+#: ../gtk/gtkcolorsel.c:1460
 msgid "_Save color here"
 msgstr "_שמירת הצבע כאן"
 
-#: ../gtk/gtkcolorsel.c:1666
+#: ../gtk/gtkcolorsel.c:1665
 msgid ""
 "Click this palette entry to make it the current color. To change this entry, "
 "drag a color swatch here or right-click it and select \"Save color here.\""
@@ -944,7 +974,7 @@ msgid "default:mm"
 msgstr "default:mm"
 
 #. And show the custom paper dialog
-#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3322
+#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3325
 msgid "Manage Custom Sizes"
 msgstr "ניהול גדלים מותאמים"
 
@@ -997,23 +1027,23 @@ msgstr "_ימין:"
 msgid "Paper Margins"
 msgstr "שולי נייר"
 
-#: ../gtk/gtkentry.c:8928 ../gtk/gtktextview.c:8290
+#: ../gtk/gtkentry.c:8949 ../gtk/gtktextview.c:8277
 msgid "Input _Methods"
 msgstr "_שיטות קלט"
 
-#: ../gtk/gtkentry.c:8942 ../gtk/gtktextview.c:8304
+#: ../gtk/gtkentry.c:8963 ../gtk/gtktextview.c:8291
 msgid "_Insert Unicode Control Character"
 msgstr "_הזנת תו בקרה יוניקוד"
 
-#: ../gtk/gtkentry.c:10413
+#: ../gtk/gtkentry.c:10434
 msgid "Caps Lock and Num Lock are on"
 msgstr "ה־Caps Lock וה־Num Lock פעילים"
 
-#: ../gtk/gtkentry.c:10415
+#: ../gtk/gtkentry.c:10436
 msgid "Num Lock is on"
 msgstr "ה־Num Lock פעיל"
 
-#: ../gtk/gtkentry.c:10417
+#: ../gtk/gtkentry.c:10438
 msgid "Caps Lock is on"
 msgstr "ה־Caps Lock פעיל"
 
@@ -1062,7 +1092,7 @@ msgstr "ה־Caps Lock פעיל"
 msgid "Select a File"
 msgstr "נא לבחור קובץ"
 
-#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1871
+#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1811
 msgid "Desktop"
 msgstr "שולחן עבודה"
 
@@ -1074,27 +1104,27 @@ msgstr "(ללא)"
 msgid "Other..."
 msgstr "אחר..."
 
-#: ../gtk/gtkfilechooserdefault.c:147
+#: ../gtk/gtkfilechooserdefault.c:148
 msgid "Type name of new folder"
 msgstr "הזנת שם לתיקייה החדשה"
 
-#: ../gtk/gtkfilechooserdefault.c:965
+#: ../gtk/gtkfilechooserdefault.c:962
 msgid "Could not retrieve information about the file"
 msgstr "לא ניתן לקבל מידע על הקובץ"
 
-#: ../gtk/gtkfilechooserdefault.c:976
+#: ../gtk/gtkfilechooserdefault.c:973
 msgid "Could not add a bookmark"
 msgstr "לא ניתן להוסיף סימנייה"
 
-#: ../gtk/gtkfilechooserdefault.c:987
+#: ../gtk/gtkfilechooserdefault.c:984
 msgid "Could not remove bookmark"
 msgstr "לא ניתן להסיר את הסימנייה"
 
-#: ../gtk/gtkfilechooserdefault.c:998
+#: ../gtk/gtkfilechooserdefault.c:995
 msgid "The folder could not be created"
 msgstr "לא ניתן ליצור את התיקייה"
 
-#: ../gtk/gtkfilechooserdefault.c:1011
+#: ../gtk/gtkfilechooserdefault.c:1008
 msgid ""
 "The folder could not be created, as a file with the same name already "
 "exists.  Try using a different name for the folder, or rename the file first."
@@ -1102,27 +1132,27 @@ msgstr ""
 "לא ניתן לייצר את התיקייה מכיוון שקיים קובץ בעל שם דומה. יש לנסות ולבחור שם "
 "חדש לתיקייה, או לשנות את שם הקובץ."
 
-#: ../gtk/gtkfilechooserdefault.c:1025
+#: ../gtk/gtkfilechooserdefault.c:1022
 msgid "You need to choose a valid filename."
 msgstr "עליך לבחור בשם קובץ תקני."
 
-#: ../gtk/gtkfilechooserdefault.c:1028
+#: ../gtk/gtkfilechooserdefault.c:1025
 #, c-format
 msgid "Cannot create a file under %s as it is not a folder"
 msgstr "לא ניתן ליצור קובץ תחת %s כיוון שזו איננה תיקייה"
 
-#: ../gtk/gtkfilechooserdefault.c:1040
+#: ../gtk/gtkfilechooserdefault.c:1037
 msgid ""
 "You may only select folders.  The item that you selected is not a folder; "
 "try using a different item."
 msgstr ""
 "ניתן לבחור תיקיות בלבד.  הפריט שברחת אינו תיקייה; נא לנסות לבחור בפריט אחר."
 
-#: ../gtk/gtkfilechooserdefault.c:1050
+#: ../gtk/gtkfilechooserdefault.c:1047
 msgid "Invalid file name"
 msgstr "שם קובץ לא תקני"
 
-#: ../gtk/gtkfilechooserdefault.c:1060
+#: ../gtk/gtkfilechooserdefault.c:1057
 msgid "The folder contents could not be displayed"
 msgstr "לא ניתן להציג את תוכן התיקייה"
 
@@ -1130,209 +1160,212 @@ msgstr "לא ניתן להציג את תוכן התיקייה"
 #. * is a hostname. Nautilus and the panel contain the same string
 #. * to translate.
 #.
-#: ../gtk/gtkfilechooserdefault.c:1614
+#: ../gtk/gtkfilechooserdefault.c:1583
 #, c-format
 msgid "%1$s on %2$s"
 msgstr "‏%1$s ב־%2$s"
 
-#: ../gtk/gtkfilechooserdefault.c:1790
+#: ../gtk/gtkfilechooserdefault.c:1732
 msgid "Search"
 msgstr "חיפוש"
 
-#: ../gtk/gtkfilechooserdefault.c:1814 ../gtk/gtkfilechooserdefault.c:9537
+#: ../gtk/gtkfilechooserdefault.c:1756 ../gtk/gtkfilechooserdefault.c:4873
 msgid "Recently Used"
 msgstr "בשימוש לאחרונה"
 
-#: ../gtk/gtkfilechooserdefault.c:2470
+#: ../gtk/gtkfilechooserdefault.c:2355
 msgid "Select which types of files are shown"
 msgstr "בחירה בסוגי הקבצים שיוצגו"
 
-#: ../gtk/gtkfilechooserdefault.c:2829
+#: ../gtk/gtkfilechooserdefault.c:2714
 #, c-format
 msgid "Add the folder '%s' to the bookmarks"
 msgstr "הוסף את התיקייה '%s' לסימניות"
 
-#: ../gtk/gtkfilechooserdefault.c:2873
+#: ../gtk/gtkfilechooserdefault.c:2758
 #, c-format
 msgid "Add the current folder to the bookmarks"
 msgstr "הוסף את התיקייה הנוכחית לסימניות"
 
-#: ../gtk/gtkfilechooserdefault.c:2875
+#: ../gtk/gtkfilechooserdefault.c:2760
 #, c-format
 msgid "Add the selected folders to the bookmarks"
 msgstr "הוסף את התיקיות הנבחרות לסימניות"
 
-#: ../gtk/gtkfilechooserdefault.c:2913
+#: ../gtk/gtkfilechooserdefault.c:2798
 #, c-format
 msgid "Remove the bookmark '%s'"
 msgstr "הסרת הסימנייה '%s'"
 
-#: ../gtk/gtkfilechooserdefault.c:2915
+#: ../gtk/gtkfilechooserdefault.c:2800
 #, c-format
 msgid "Bookmark '%s' cannot be removed"
 msgstr "לא ניתן להסיר את הסימנייה '%s'"
 
-#: ../gtk/gtkfilechooserdefault.c:2922 ../gtk/gtkfilechooserdefault.c:3807
+#: ../gtk/gtkfilechooserdefault.c:2807 ../gtk/gtkfilechooserdefault.c:3692
 msgid "Remove the selected bookmark"
 msgstr "הסרת הסימנייה הנבחרת"
 
-#: ../gtk/gtkfilechooserdefault.c:3486
+#: ../gtk/gtkfilechooserdefault.c:3371
 msgid "Remove"
 msgstr "הסרה"
 
-#: ../gtk/gtkfilechooserdefault.c:3495
+#: ../gtk/gtkfilechooserdefault.c:3380
 msgid "Rename..."
 msgstr "שינוי שם..."
 
 #. Accessible object name for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3659
+#: ../gtk/gtkfilechooserdefault.c:3544
 msgid "Places"
 msgstr "מקומות"
 
 #. Column header for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3716
+#: ../gtk/gtkfilechooserdefault.c:3601
 msgid "_Places"
 msgstr "_מקומות"
 
-#: ../gtk/gtkfilechooserdefault.c:3795
+#: ../gtk/gtkfilechooserdefault.c:3680
 msgid "Add the selected folder to the Bookmarks"
 msgstr "הוספת התיקייה הנבחרת לסימניות"
 
-#: ../gtk/gtkfilechooserdefault.c:3942
+#: ../gtk/gtkfilechooserdefault.c:3827
 msgid "Could not select file"
 msgstr "לא ניתן לבחור את הקובץ"
 
-#: ../gtk/gtkfilechooserdefault.c:4115
+#: ../gtk/gtkfilechooserdefault.c:4000
 msgid "_Add to Bookmarks"
 msgstr "_הוספה לסימניות"
 
-#: ../gtk/gtkfilechooserdefault.c:4128
+#: ../gtk/gtkfilechooserdefault.c:4013
 msgid "Show _Hidden Files"
 msgstr "הצגת קבצים _נסתרים"
 
-#: ../gtk/gtkfilechooserdefault.c:4135
+#: ../gtk/gtkfilechooserdefault.c:4020
 msgid "Show _Size Column"
 msgstr "הצגת _רוחב העמודה"
 
 # hebrew note: "תיקייה" is "folder", but there is no better word for
 # "directory"
-#: ../gtk/gtkfilechooserdefault.c:4360
+#: ../gtk/gtkfilechooserdefault.c:4245
 msgid "Files"
 msgstr "קבצים"
 
-#: ../gtk/gtkfilechooserdefault.c:4411
+#: ../gtk/gtkfilechooserdefault.c:4296
 msgid "Name"
 msgstr "שם"
 
-#: ../gtk/gtkfilechooserdefault.c:4434
+#: ../gtk/gtkfilechooserdefault.c:4319
 msgid "Size"
 msgstr "גודל"
 
-#: ../gtk/gtkfilechooserdefault.c:4448
+#: ../gtk/gtkfilechooserdefault.c:4333
 msgid "Modified"
 msgstr "שונה"
 
 #. Label
-#: ../gtk/gtkfilechooserdefault.c:4702 ../gtk/gtkprinteroptionwidget.c:799
+#: ../gtk/gtkfilechooserdefault.c:4414 ../gtk/gtkprinteroptionwidget.c:799
 msgid "_Name:"
 msgstr "_שם:"
 
-#. Expander
-#: ../gtk/gtkfilechooserdefault.c:4743
-msgid "_Browse for other folders"
-msgstr "_דפדוף לתיקיות אחרות"
-
-#: ../gtk/gtkfilechooserdefault.c:5016
+#: ../gtk/gtkfilechooserdefault.c:4711
 msgid "Type a file name"
 msgstr "הזנת שם קובץ"
 
+#: ../gtk/gtkfilechooserdefault.c:4758 ../gtk/gtkfilechooserdefault.c:4769
+msgid "Please select a folder below"
+msgstr "נא לבחור תיקייה להלן"
+
+#: ../gtk/gtkfilechooserdefault.c:4764
+msgid "Please type a file name"
+msgstr "נא להזין שם קובץ"
+
 #. Create Folder
-#: ../gtk/gtkfilechooserdefault.c:5059
+#: ../gtk/gtkfilechooserdefault.c:4835
 msgid "Create Fo_lder"
 msgstr "יצירת _תיקייה"
 
-#: ../gtk/gtkfilechooserdefault.c:5069
+#: ../gtk/gtkfilechooserdefault.c:4883
+msgid "Search:"
+msgstr "חיפוש:"
+
+#: ../gtk/gtkfilechooserdefault.c:4930
 msgid "_Location:"
 msgstr "_מיקום:"
 
-#: ../gtk/gtkfilechooserdefault.c:5276
+#: ../gtk/gtkfilechooserdefault.c:5247
 msgid "Save in _folder:"
 msgstr "שמירה ב_תיקייה:"
 
-#: ../gtk/gtkfilechooserdefault.c:5278
+#: ../gtk/gtkfilechooserdefault.c:5249
 msgid "Create in _folder:"
 msgstr "יצירה ב_תיקייה:"
 
-#: ../gtk/gtkfilechooserdefault.c:6400
+#: ../gtk/gtkfilechooserdefault.c:6343
 #, c-format
 msgid "Could not read the contents of %s"
 msgstr "לא ניתן לקרוא את התוכן של %s"
 
-#: ../gtk/gtkfilechooserdefault.c:6404
+#: ../gtk/gtkfilechooserdefault.c:6347
 msgid "Could not read the contents of the folder"
 msgstr "לא ניתן לקרוא את תכני התיקייה"
 
-#: ../gtk/gtkfilechooserdefault.c:6497 ../gtk/gtkfilechooserdefault.c:6565
-#: ../gtk/gtkfilechooserdefault.c:6717
+#: ../gtk/gtkfilechooserdefault.c:6440 ../gtk/gtkfilechooserdefault.c:6508
+#: ../gtk/gtkfilechooserdefault.c:6660
 msgid "Unknown"
 msgstr "לא ידוע"
 
-#: ../gtk/gtkfilechooserdefault.c:6512
+#: ../gtk/gtkfilechooserdefault.c:6455
 msgid "%H:%M"
 msgstr "%H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:6514
+#: ../gtk/gtkfilechooserdefault.c:6457
 msgid "Yesterday at %H:%M"
 msgstr "אתמול ב־%H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:7183
+#: ../gtk/gtkfilechooserdefault.c:7142
 msgid "Cannot change to folder because it is not local"
 msgstr "לא ניתן לשנות תיקייה כיוון שהיא איננה מקומית"
 
-#: ../gtk/gtkfilechooserdefault.c:7775 ../gtk/gtkfilechooserdefault.c:7796
+#: ../gtk/gtkfilechooserdefault.c:7742 ../gtk/gtkfilechooserdefault.c:7763
 #, c-format
 msgid "Shortcut %s already exists"
 msgstr "הקיצור %s כבר קיים"
 
-#: ../gtk/gtkfilechooserdefault.c:7886
+#: ../gtk/gtkfilechooserdefault.c:7853
 #, c-format
 msgid "Shortcut %s does not exist"
 msgstr "הקיצור %s אינו קיים"
 
-#: ../gtk/gtkfilechooserdefault.c:8144 ../gtk/gtkprintunixdialog.c:550
+#: ../gtk/gtkfilechooserdefault.c:8099 ../gtk/gtkprintunixdialog.c:550
 #, c-format
 msgid "A file named \"%s\" already exists.  Do you want to replace it?"
 msgstr "קובץ בשם \"%s\" כבר קיים. האם ברצונך להחליפו?"
 
-#: ../gtk/gtkfilechooserdefault.c:8147 ../gtk/gtkprintunixdialog.c:554
+#: ../gtk/gtkfilechooserdefault.c:8102 ../gtk/gtkprintunixdialog.c:554
 #, c-format
 msgid ""
 "The file already exists in \"%s\".  Replacing it will overwrite its contents."
 msgstr "הקובץ כבר קיים ב-\"%s\". החלפתו תגרום לאיבוד תוכנו."
 
-#: ../gtk/gtkfilechooserdefault.c:8152 ../gtk/gtkprintunixdialog.c:561
+#: ../gtk/gtkfilechooserdefault.c:8107 ../gtk/gtkprintunixdialog.c:561
 msgid "_Replace"
 msgstr "ה_חלפה"
 
-#: ../gtk/gtkfilechooserdefault.c:8879
+#: ../gtk/gtkfilechooserdefault.c:8912
 msgid "Could not start the search process"
 msgstr "לא ניתן להתחיל את תהליך החיפוש"
 
-#: ../gtk/gtkfilechooserdefault.c:8880
+#: ../gtk/gtkfilechooserdefault.c:8913
 msgid ""
 "The program was not able to create a connection to the indexer daemon.  "
 "Please make sure it is running."
 msgstr "התנית לא הצליחה ליצור חיבור אל סוכן האינדקס. יש לוודא כי הוא פעיל."
 
-#: ../gtk/gtkfilechooserdefault.c:8894
+#: ../gtk/gtkfilechooserdefault.c:8927
 msgid "Could not send the search request"
 msgstr "לא ניתן לשלוח את בקשת החיפוש"
 
-#: ../gtk/gtkfilechooserdefault.c:9113
-msgid "Search:"
-msgstr "חיפוש:"
-
-#: ../gtk/gtkfilechooserdefault.c:9721
+#: ../gtk/gtkfilechooserdefault.c:9719
 #, c-format
 msgid "Could not mount %s"
 msgstr "לא ניתן לעגון את %s"
@@ -1340,6 +1373,8 @@ msgstr "לא ניתן לעגון את %s"
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry, when the user enters an invalid path.
 #: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1174
+#: ../gtk/gtkfilesystem.c:721
+#, c-format
 msgid "Invalid path"
 msgstr "נתיב לא תקין"
 
@@ -1420,11 +1455,11 @@ msgstr "גופן"
 
 #. This is the default text shown in the preview entry, though the user
 #. can set it. Remember that some fonts only have capital letters.
-#: ../gtk/gtkfontsel.c:120
+#: ../gtk/gtkfontsel.c:119
 msgid "abcdefghijk ABCDEFGHIJK"
 msgstr "abcdef ABCDEF אבגדהו"
 
-#: ../gtk/gtkfontsel.c:389
+#: ../gtk/gtkfontsel.c:388
 msgid "_Family:"
 msgstr "_משפחה:"
 
@@ -1432,16 +1467,16 @@ msgstr "_משפחה:"
 msgid "_Style:"
 msgstr "_סגנון:"
 
-#: ../gtk/gtkfontsel.c:401
+#: ../gtk/gtkfontsel.c:402
 msgid "Si_ze:"
 msgstr "_גודל:"
 
 #. create the text entry widget
-#: ../gtk/gtkfontsel.c:577
+#: ../gtk/gtkfontsel.c:579
 msgid "_Preview:"
 msgstr "_תצוגה מקדימה:"
 
-#: ../gtk/gtkfontsel.c:1698
+#: ../gtk/gtkfontsel.c:1701
 msgid "Font Selection"
 msgstr "בחירת גופן"
 
@@ -1454,7 +1489,7 @@ msgstr "הסמל '%s' לא קיים בערכת הנושא"
 msgid "Failed to load icon"
 msgstr "ארע כשל בטעינת סמל"
 
-#: ../gtk/gtkimmodule.c:526
+#: ../gtk/gtkimmodule.c:525
 msgid "Simple"
 msgstr "פשוט"
 
@@ -1477,20 +1512,20 @@ msgid "System (%s)"
 msgstr "מערכת (%s)"
 
 #. Open Link
-#: ../gtk/gtklabel.c:6302
+#: ../gtk/gtklabel.c:6309
 msgid "_Open Link"
 msgstr "_פתיחת קישור"
 
 #. Copy Link Address
-#: ../gtk/gtklabel.c:6314
+#: ../gtk/gtklabel.c:6321
 msgid "Copy _Link Address"
 msgstr "העתקת כתובת ה_קישור"
 
-#: ../gtk/gtklinkbutton.c:482
+#: ../gtk/gtklinkbutton.c:484
 msgid "Copy URL"
 msgstr "ה_עתקת כתובת"
 
-#: ../gtk/gtklinkbutton.c:645
+#: ../gtk/gtklinkbutton.c:647
 msgid "Invalid URI"
 msgstr "כתובת לא תקנית"
 
@@ -1527,27 +1562,27 @@ msgstr ""
 "נא ליצור קשר עם מנהל המערכת."
 
 #. Description of --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:563
+#: ../gtk/gtkmain.c:562
 msgid "Load additional GTK+ modules"
 msgstr "Load additional GTK+ modules"
 
 #. Placeholder in --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:564
+#: ../gtk/gtkmain.c:563
 msgid "MODULES"
 msgstr "MODULES"
 
 #. Description of --g-fatal-warnings in --help output
-#: ../gtk/gtkmain.c:566
+#: ../gtk/gtkmain.c:565
 msgid "Make all warnings fatal"
 msgstr "Make all warnings fatal"
 
 #. Description of --gtk-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:569
+#: ../gtk/gtkmain.c:568
 msgid "GTK+ debugging flags to set"
 msgstr "GTK+ debugging flags to set"
 
 #. Description of --gtk-no-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:572
+#: ../gtk/gtkmain.c:571
 msgid "GTK+ debugging flags to unset"
 msgstr "GTK+ debugging flags to unset"
 
@@ -1556,20 +1591,20 @@ msgstr "GTK+ debugging flags to unset"
 #. * Do *not* translate it to "predefinito:LTR", if it
 #. * it isn't default:LTR or default:RTL it will not work
 #.
-#: ../gtk/gtkmain.c:846
+#: ../gtk/gtkmain.c:848
 msgid "default:LTR"
 msgstr "default:RTL"
 
-#: ../gtk/gtkmain.c:910
+#: ../gtk/gtkmain.c:914
 #, c-format
 msgid "Cannot open display: %s"
 msgstr "Cannot open display: %s"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "GTK+ Options"
 msgstr "GTK+ Options"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "Show GTK+ Options"
 msgstr "Show GTK+ Options"
 
@@ -1577,48 +1612,48 @@ msgstr "Show GTK+ Options"
 msgid "Co_nnect"
 msgstr "_התחברות"
 
-#: ../gtk/gtkmountoperation.c:556
+#: ../gtk/gtkmountoperation.c:559
 msgid "Connect _anonymously"
 msgstr "התחברות כ_אנונימי"
 
-#: ../gtk/gtkmountoperation.c:565
+#: ../gtk/gtkmountoperation.c:568
 msgid "Connect as u_ser:"
 msgstr "התחברות כ_משתמש:"
 
-#: ../gtk/gtkmountoperation.c:599
+#: ../gtk/gtkmountoperation.c:602
 msgid "_Username:"
 msgstr "_שם משתמש:"
 
-#: ../gtk/gtkmountoperation.c:604
+#: ../gtk/gtkmountoperation.c:607
 msgid "_Domain:"
 msgstr "_מתחם:"
 
-#: ../gtk/gtkmountoperation.c:610
+#: ../gtk/gtkmountoperation.c:613
 msgid "_Password:"
 msgstr "_סיסמה:"
 
-#: ../gtk/gtkmountoperation.c:628
+#: ../gtk/gtkmountoperation.c:631
 msgid "Forget password _immediately"
 msgstr "_מחיקת הססמה מיד"
 
-#: ../gtk/gtkmountoperation.c:638
+#: ../gtk/gtkmountoperation.c:641
 msgid "Remember password until you _logout"
 msgstr "_שמירת הססמה עד הניתוק"
 
-#: ../gtk/gtkmountoperation.c:648
+#: ../gtk/gtkmountoperation.c:651
 msgid "Remember _forever"
 msgstr "שמירה ל_תמיד"
 
-#: ../gtk/gtkmountoperation.c:877
+#: ../gtk/gtkmountoperation.c:880
 #, c-format
 msgid "Unknown Application (PID %d)"
 msgstr "יישום בלתי מוכר (מזהה תהליך %d)"
 
-#: ../gtk/gtkmountoperation.c:1060
+#: ../gtk/gtkmountoperation.c:1063
 msgid "Unable to end process"
 msgstr "לא ניתן לסיים את התהליך"
 
-#: ../gtk/gtkmountoperation.c:1097
+#: ../gtk/gtkmountoperation.c:1100
 msgid "_End Process"
 msgstr "_סיום התהליך"
 
@@ -1628,32 +1663,32 @@ msgid "Cannot kill process with PID %d. Operation is not implemented."
 msgstr "לא ניתן לסיים את התהליך בעל המזהה %d. הפעולה אינה מוטמעת עדיין."
 
 #. translators: this string is a name for the 'less' command
-#: ../gtk/gtkmountoperation-x11.c:859
+#: ../gtk/gtkmountoperation-x11.c:959
 msgid "Terminal Pager"
 msgstr "מציג טקסט במסוף"
 
-#: ../gtk/gtkmountoperation-x11.c:860
+#: ../gtk/gtkmountoperation-x11.c:960
 msgid "Top Command"
 msgstr "פקודת Top"
 
-#: ../gtk/gtkmountoperation-x11.c:861
+#: ../gtk/gtkmountoperation-x11.c:961
 msgid "Bourne Again Shell"
 msgstr "מעטפת Bourne Again"
 
-#: ../gtk/gtkmountoperation-x11.c:862
+#: ../gtk/gtkmountoperation-x11.c:962
 msgid "Bourne Shell"
 msgstr "מעטפת Bourne"
 
-#: ../gtk/gtkmountoperation-x11.c:863
+#: ../gtk/gtkmountoperation-x11.c:963
 msgid "Z Shell"
 msgstr "מעטפת Z"
 
-#: ../gtk/gtkmountoperation-x11.c:960
+#: ../gtk/gtkmountoperation-x11.c:1060
 #, c-format
 msgid "Cannot end process with PID %d: %s"
 msgstr "לא ניתן לסיים את התהליך בעל המזהה %d: ‏%s"
 
-#: ../gtk/gtknotebook.c:4919 ../gtk/gtknotebook.c:7608
+#: ../gtk/gtknotebook.c:4922 ../gtk/gtknotebook.c:7611
 #, c-format
 msgid "Page %u"
 msgstr "עמוד %u"
@@ -1695,7 +1730,7 @@ msgstr ""
 " מעלה: %s %s\n"
 " מטה: %s %s"
 
-#: ../gtk/gtkpagesetupunixdialog.c:851 ../gtk/gtkprintunixdialog.c:3373
+#: ../gtk/gtkpagesetupunixdialog.c:851 ../gtk/gtkprintunixdialog.c:3376
 msgid "Manage Custom Sizes..."
 msgstr "ניהול גדלים _מותאמים..."
 
@@ -1703,15 +1738,15 @@ msgstr "ניהול גדלים _מותאמים..."
 msgid "_Format for:"
 msgstr "_תצורה עבור:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:924 ../gtk/gtkprintunixdialog.c:3545
+#: ../gtk/gtkpagesetupunixdialog.c:925 ../gtk/gtkprintunixdialog.c:3556
 msgid "_Paper size:"
 msgstr "_גודל הנייר:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:955
+#: ../gtk/gtkpagesetupunixdialog.c:958
 msgid "_Orientation:"
 msgstr "_כיווניות:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:1019 ../gtk/gtkprintunixdialog.c:3607
+#: ../gtk/gtkpagesetupunixdialog.c:1023 ../gtk/gtkprintunixdialog.c:3620
 msgid "Page Setup"
 msgstr "הגדרות עמוד"
 
@@ -1741,7 +1776,7 @@ msgstr "לא זמין"
 msgid "Select a folder"
 msgstr "בחירת תיקייה"
 
-#: ../gtk/gtkprinteroptionwidget.c:811
+#: ../gtk/gtkprinteroptionwidget.c:812
 msgid "_Save in folder:"
 msgstr "שמירה ב_תיקייה:"
 
@@ -1888,45 +1923,45 @@ msgstr "שגיאה בלתי מוגדרת"
 msgid "Getting printer information failed"
 msgstr "קבלת נתוני המדפסת נכשלה"
 
-#: ../gtk/gtkprintunixdialog.c:1940
+#: ../gtk/gtkprintunixdialog.c:1942
 msgid "Getting printer information..."
 msgstr "נתוני המדפסת מתקבלים..."
 
-#: ../gtk/gtkprintunixdialog.c:2214
+#: ../gtk/gtkprintunixdialog.c:2216
 msgid "Printer"
 msgstr "מדפסת"
 
 #. Translators: this is the header for the location column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2224
+#: ../gtk/gtkprintunixdialog.c:2226
 msgid "Location"
 msgstr "מיקום"
 
 #. Translators: this is the header for the printer status column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2235
+#: ../gtk/gtkprintunixdialog.c:2237
 msgid "Status"
 msgstr "מצב"
 
-#: ../gtk/gtkprintunixdialog.c:2261
+#: ../gtk/gtkprintunixdialog.c:2263
 msgid "Range"
 msgstr "טווח"
 
-#: ../gtk/gtkprintunixdialog.c:2265
+#: ../gtk/gtkprintunixdialog.c:2267
 msgid "_All Pages"
 msgstr "כל ה_דפים"
 
-#: ../gtk/gtkprintunixdialog.c:2272
+#: ../gtk/gtkprintunixdialog.c:2274
 msgid "C_urrent Page"
 msgstr "_הדף הנוכחי"
 
-#: ../gtk/gtkprintunixdialog.c:2282
+#: ../gtk/gtkprintunixdialog.c:2284
 msgid "Se_lection"
 msgstr "_בחירה"
 
-#: ../gtk/gtkprintunixdialog.c:2291
+#: ../gtk/gtkprintunixdialog.c:2293
 msgid "Pag_es:"
 msgstr "_דפים:"
 
-#: ../gtk/gtkprintunixdialog.c:2292
+#: ../gtk/gtkprintunixdialog.c:2294
 msgid ""
 "Specify one or more page ranges,\n"
 " e.g. 1-3,7,11"
@@ -1934,28 +1969,28 @@ msgstr ""
 "ניתן לציין טווח דפים אחד או יותר,\n"
 " לדוגמה: 1-3,7,11"
 
-#: ../gtk/gtkprintunixdialog.c:2302
+#: ../gtk/gtkprintunixdialog.c:2304
 msgid "Pages"
 msgstr "דפים"
 
-#: ../gtk/gtkprintunixdialog.c:2315
+#: ../gtk/gtkprintunixdialog.c:2317
 msgid "Copies"
 msgstr "עותקים"
 
 #. FIXME chpe: too much space between Copies and spinbutton, put those 2 in a hbox and make it span 2 columns
-#: ../gtk/gtkprintunixdialog.c:2320
+#: ../gtk/gtkprintunixdialog.c:2322
 msgid "Copie_s:"
 msgstr "_עותקים:"
 
-#: ../gtk/gtkprintunixdialog.c:2338
+#: ../gtk/gtkprintunixdialog.c:2341
 msgid "C_ollate"
 msgstr "_איסוף"
 
-#: ../gtk/gtkprintunixdialog.c:2346
+#: ../gtk/gtkprintunixdialog.c:2349
 msgid "_Reverse"
 msgstr "_החזרה"
 
-#: ../gtk/gtkprintunixdialog.c:2366
+#: ../gtk/gtkprintunixdialog.c:2369
 msgid "General"
 msgstr "כללי"
 
@@ -1965,42 +2000,42 @@ msgstr "כללי"
 #. Translators: These strings name the possible arrangements of
 #. * multiple pages on a sheet when printing
 #.
-#: ../gtk/gtkprintunixdialog.c:3106
+#: ../gtk/gtkprintunixdialog.c:3109
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, top to bottom"
 msgstr "שמאל לימין, מלמעלה למטה"
 
-#: ../gtk/gtkprintunixdialog.c:3106
+#: ../gtk/gtkprintunixdialog.c:3109
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, bottom to top"
 msgstr "שמאל לימין, מלמטה למעלה"
 
-#: ../gtk/gtkprintunixdialog.c:3107
+#: ../gtk/gtkprintunixdialog.c:3110
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, top to bottom"
 msgstr "ימין לשמאל, מלמעלה למטה"
 
-#: ../gtk/gtkprintunixdialog.c:3107
+#: ../gtk/gtkprintunixdialog.c:3110
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, bottom to top"
 msgstr "ימין לשמאל, מלמטה למעלה"
 
-#: ../gtk/gtkprintunixdialog.c:3108
+#: ../gtk/gtkprintunixdialog.c:3111
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, left to right"
 msgstr "מלמעלה למטה, משמאל לימין"
 
-#: ../gtk/gtkprintunixdialog.c:3108
+#: ../gtk/gtkprintunixdialog.c:3111
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, right to left"
 msgstr "מלמעלה למטה, מימין לשמאל"
 
-#: ../gtk/gtkprintunixdialog.c:3109
+#: ../gtk/gtkprintunixdialog.c:3112
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, left to right"
 msgstr "מלמטה למעלה, משמאל לימין"
 
-#: ../gtk/gtkprintunixdialog.c:3109
+#: ../gtk/gtkprintunixdialog.c:3112
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, right to left"
 msgstr "מלמטה למעלה, מימין לשמאל"
@@ -2008,125 +2043,125 @@ msgstr "מלמטה למעלה, מימין לשמאל"
 #. Translators, this string is used to label the option in the print
 #. * dialog that controls in what order multiple pages are arranged
 #.
-#: ../gtk/gtkprintunixdialog.c:3113 ../gtk/gtkprintunixdialog.c:3126
+#: ../gtk/gtkprintunixdialog.c:3116 ../gtk/gtkprintunixdialog.c:3129
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:3609
 msgid "Page Ordering"
 msgstr "סדר דפים"
 
-#: ../gtk/gtkprintunixdialog.c:3142
+#: ../gtk/gtkprintunixdialog.c:3145
 msgid "Left to right"
 msgstr "שמאל לימין"
 
-#: ../gtk/gtkprintunixdialog.c:3143
+#: ../gtk/gtkprintunixdialog.c:3146
 msgid "Right to left"
 msgstr "ימין לשמאל"
 
-#: ../gtk/gtkprintunixdialog.c:3155
+#: ../gtk/gtkprintunixdialog.c:3158
 msgid "Top to bottom"
 msgstr "מלמעלה למטה"
 
-#: ../gtk/gtkprintunixdialog.c:3156
+#: ../gtk/gtkprintunixdialog.c:3159
 msgid "Bottom to top"
 msgstr "מלמטה למעלה"
 
-#: ../gtk/gtkprintunixdialog.c:3396
+#: ../gtk/gtkprintunixdialog.c:3399
 msgid "Layout"
 msgstr "פריסה"
 
-#: ../gtk/gtkprintunixdialog.c:3400
+#: ../gtk/gtkprintunixdialog.c:3403
 msgid "T_wo-sided:"
 msgstr "ד_ו־צדדי:"
 
-#: ../gtk/gtkprintunixdialog.c:3415
+#: ../gtk/gtkprintunixdialog.c:3419
 msgid "Pages per _side:"
 msgstr "מספר _עמודים בכל צג:"
 
-#: ../gtk/gtkprintunixdialog.c:3432
+#: ../gtk/gtkprintunixdialog.c:3437
 msgid "Page or_dering:"
 msgstr "_סדר הדפים:"
 
-#: ../gtk/gtkprintunixdialog.c:3448
+#: ../gtk/gtkprintunixdialog.c:3454
 msgid "_Only print:"
 msgstr "ה_דפסה בלבד:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3463
+#: ../gtk/gtkprintunixdialog.c:3470
 msgid "All sheets"
 msgstr "כל הדפים"
 
-#: ../gtk/gtkprintunixdialog.c:3464
+#: ../gtk/gtkprintunixdialog.c:3471
 msgid "Even sheets"
 msgstr "דפים זוגיים"
 
-#: ../gtk/gtkprintunixdialog.c:3465
+#: ../gtk/gtkprintunixdialog.c:3472
 msgid "Odd sheets"
 msgstr "דפים אי זוגיים"
 
-#: ../gtk/gtkprintunixdialog.c:3468
+#: ../gtk/gtkprintunixdialog.c:3475
 msgid "Sc_ale:"
 msgstr "_התאמה:"
 
-#: ../gtk/gtkprintunixdialog.c:3495
+#: ../gtk/gtkprintunixdialog.c:3503
 msgid "Paper"
 msgstr "נייר"
 
-#: ../gtk/gtkprintunixdialog.c:3499
+#: ../gtk/gtkprintunixdialog.c:3507
 msgid "Paper _type:"
 msgstr "_סוג נייר:"
 
-#: ../gtk/gtkprintunixdialog.c:3514
+#: ../gtk/gtkprintunixdialog.c:3523
 msgid "Paper _source:"
 msgstr "מ_קור נייר:"
 
-#: ../gtk/gtkprintunixdialog.c:3529
+#: ../gtk/gtkprintunixdialog.c:3539
 msgid "Output t_ray:"
 msgstr "_מגש פלט:"
 
-#: ../gtk/gtkprintunixdialog.c:3569
+#: ../gtk/gtkprintunixdialog.c:3581
 msgid "Or_ientation:"
 msgstr "_כיווניות:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3584
+#: ../gtk/gtkprintunixdialog.c:3597
 msgid "Portrait"
 msgstr "לאורך"
 
-#: ../gtk/gtkprintunixdialog.c:3585
+#: ../gtk/gtkprintunixdialog.c:3598
 msgid "Landscape"
 msgstr "לרוחב"
 
-#: ../gtk/gtkprintunixdialog.c:3586
+#: ../gtk/gtkprintunixdialog.c:3599
 msgid "Reverse portrait"
 msgstr "לאורך הפוך"
 
-#: ../gtk/gtkprintunixdialog.c:3587
+#: ../gtk/gtkprintunixdialog.c:3600
 msgid "Reverse landscape"
 msgstr "לרוחב הפוך"
 
-#: ../gtk/gtkprintunixdialog.c:3632
+#: ../gtk/gtkprintunixdialog.c:3645
 msgid "Job Details"
 msgstr "פרטי המשימה"
 
-#: ../gtk/gtkprintunixdialog.c:3638
+#: ../gtk/gtkprintunixdialog.c:3651
 msgid "Pri_ority:"
 msgstr "_עדיפות:"
 
-#: ../gtk/gtkprintunixdialog.c:3653
+#: ../gtk/gtkprintunixdialog.c:3667
 msgid "_Billing info:"
 msgstr "_נתוני חיוב:"
 
-#: ../gtk/gtkprintunixdialog.c:3671
+#: ../gtk/gtkprintunixdialog.c:3686
 msgid "Print Document"
 msgstr "הדפסת מסמך"
 
 #. Translators: this is one of the choices for the print at option
 #. * in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3680
+#: ../gtk/gtkprintunixdialog.c:3695
 msgid "_Now"
 msgstr "_כעת"
 
-#: ../gtk/gtkprintunixdialog.c:3691
+#: ../gtk/gtkprintunixdialog.c:3706
 msgid "A_t:"
 msgstr "_ב:"
 
@@ -2134,7 +2169,7 @@ msgstr "_ב:"
 #. * You can remove the am/pm values below for your locale if they are not
 #. * supported.
 #.
-#: ../gtk/gtkprintunixdialog.c:3697
+#: ../gtk/gtkprintunixdialog.c:3712
 msgid ""
 "Specify the time of print,\n"
 " e.g. 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"
@@ -2142,68 +2177,68 @@ msgstr ""
 "ציון זמן ההדפסה,\n"
 "לדוגמה: 15:30, 2:35‎ pm,‏ 14:15:20, 11:46:30‎ am,‏ 4‎ pm"
 
-#: ../gtk/gtkprintunixdialog.c:3707
+#: ../gtk/gtkprintunixdialog.c:3722
 msgid "Time of print"
 msgstr "זמן ההדפסה"
 
-#: ../gtk/gtkprintunixdialog.c:3723
+#: ../gtk/gtkprintunixdialog.c:3738
 msgid "On _hold"
 msgstr "ב_המתנה"
 
-#: ../gtk/gtkprintunixdialog.c:3724
+#: ../gtk/gtkprintunixdialog.c:3739
 msgid "Hold the job until it is explicitly released"
 msgstr "החזקת המשימה עד שתשוחרר מפורשות"
 
-#: ../gtk/gtkprintunixdialog.c:3744
+#: ../gtk/gtkprintunixdialog.c:3759
 msgid "Add Cover Page"
 msgstr "הוספת עמוד שער"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3753
+#: ../gtk/gtkprintunixdialog.c:3768
 msgid "Be_fore:"
 msgstr "ל_פני:"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3771
+#: ../gtk/gtkprintunixdialog.c:3787
 msgid "_After:"
 msgstr "א_חרי:"
 
 #. Translators: this is the tab label for the notebook tab containing
 #. * job-specific options in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3789
+#: ../gtk/gtkprintunixdialog.c:3806
 msgid "Job"
 msgstr "משימה"
 
-#: ../gtk/gtkprintunixdialog.c:3855
+#: ../gtk/gtkprintunixdialog.c:3872
 msgid "Advanced"
 msgstr "מתקדם"
 
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3893
+#: ../gtk/gtkprintunixdialog.c:3910
 msgid "Image Quality"
 msgstr "איכות תמונה"
 
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3897
+#: ../gtk/gtkprintunixdialog.c:3914
 msgid "Color"
 msgstr "צבע"
 
 #. Translators: this will appear as tab label in print dialog.
 #. It's a typographical term, as in "Binding and finishing"
-#: ../gtk/gtkprintunixdialog.c:3902
+#: ../gtk/gtkprintunixdialog.c:3919
 msgid "Finishing"
 msgstr "גימור"
 
-#: ../gtk/gtkprintunixdialog.c:3912
+#: ../gtk/gtkprintunixdialog.c:3929
 msgid "Some of the settings in the dialog conflict"
 msgstr "חלק מההגדרות בתיבת הדו־שיח מתנגשות"
 
-#: ../gtk/gtkprintunixdialog.c:3935
+#: ../gtk/gtkprintunixdialog.c:3952
 msgid "Print"
 msgstr "הדפסה"
 
@@ -2305,15 +2340,6 @@ msgstr "לא ניתן למצוא פריט עם כתובת '%s'"
 msgid "No registered application with name '%s' for item with URI '%s' found"
 msgstr "לא נמצא יישום הרשום בשם '%s' עבור הפריט בעל הכתובת '%s'"
 
-#: ../gtk/gtkspinner.c:287
-msgctxt "throbbing progress animation widget"
-msgid "Spinner"
-msgstr "הנפשת המתנה"
-
-#: ../gtk/gtkspinner.c:288
-msgid "Provides visual indication of progress"
-msgstr "אספקת חיווי חזותי של התהליך"
-
 #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
 #: ../gtk/gtkstock.c:313
 msgctxt "Stock label"
@@ -2827,7 +2853,7 @@ msgstr "הת_רחקות"
 #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
 #. * the state
 #.
-#: ../gtk/gtkswitch.c:338 ../gtk/gtkswitch.c:398 ../gtk/gtkswitch.c:605
+#: ../gtk/gtkswitch.c:335 ../gtk/gtkswitch.c:395 ../gtk/gtkswitch.c:602
 msgctxt "switch"
 msgid "ON"
 msgstr "❙"
@@ -2835,20 +2861,11 @@ msgstr "❙"
 #. Translators: if the "off" state label requires more than three
 #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
 #.
-#: ../gtk/gtkswitch.c:346 ../gtk/gtkswitch.c:399 ../gtk/gtkswitch.c:634
+#: ../gtk/gtkswitch.c:343 ../gtk/gtkswitch.c:396 ../gtk/gtkswitch.c:631
 msgctxt "switch"
 msgid "OFF"
 msgstr "○"
 
-#: ../gtk/gtkswitch.c:1061
-msgctxt "light switch widget"
-msgid "Switch"
-msgstr "החלפה"
-
-#: ../gtk/gtkswitch.c:1062
-msgid "Switches between on and off states"
-msgstr "החלפה בין המצבים פעיל ולא פעיל"
-
 #: ../gtk/gtktextbufferrichtext.c:651
 #, c-format
 msgid "Unknown error when trying to deserialize %s"
@@ -4248,7 +4265,7 @@ msgstr "בחירה אוטומטית"
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2830
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:3326
 msgid "Printer Default"
-msgstr "×\91ר×\99רת ×\9e×\97×\93×\9c ×¢×\91×\95ר ×\94×\9e×\93פסת"
+msgstr "בררת מחדל עבור המדפסת"
 
 #. Translators: this is an option of "GhostScript"
 #: ../modules/printbackends/cups/gtkprintbackendcups.c:2832
@@ -4395,6 +4412,22 @@ msgstr "פרופיל מדפסת"
 msgid "Unavailable"
 msgstr "לא זמין"
 
+#. TRANSLATORS: when we're running an old CUPS, and
+#. * it hasn't registered the device with colord
+#: ../modules/printbackends/cups/gtkprintercups.c:222
+msgid "Color management unavailable"
+msgstr "ניהול צבעים אינו זמין"
+
+#. TRANSLATORS: when there is no color profile available
+#: ../modules/printbackends/cups/gtkprintercups.c:234
+msgid "No profile available"
+msgstr "אין פרופיל זמין"
+
+#. TRANSLATORS: when the color profile has no title
+#: ../modules/printbackends/cups/gtkprintercups.c:245
+msgid "Unspecified profile"
+msgstr "פרופיל בלתי מוגדר"
+
 #. default filename used for print-to-file
 #: ../modules/printbackends/file/gtkprintbackendfile.c:250
 #, c-format
@@ -4495,6 +4528,9 @@ msgid ""
 "Failed to load image '%s': reason not known, probably a corrupt image file"
 msgstr "נכשל בפתיחת התמונה '%s': הסיבה איננה ידועה, כנראה קובץ תמונה פגום"
 
+#~ msgid "_Browse for other folders"
+#~ msgstr "_דפדוף לתיקיות אחרות"
+
 #~ msgid "Locked"
 #~ msgstr "נעולה"
 
index dde87cca452ccedd52c49753d144ae02d775e88b..c42e63f2270e0eb77a4b9dd055f3326794ce957a 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -7,61 +7,60 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: gtk+ 2.9x\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%"
-"2b&component=general\n"
-"POT-Creation-Date: 2011-01-29 13:01+0000\n"
-"PO-Revision-Date: 2011-01-29 15:54+0100\n"
+"Project-Id-Version: gtk+ 3.1.x\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-07-23 15:11+0200\n"
+"PO-Revision-Date: 2011-07-23 15:18+0200\n"
 "Last-Translator: Luca Ferretti <lferrett@gnome.org>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
+"Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: it\n"
 "Plural-Forms: nplurals=2; plural=(n != 1)\n"
 
-#: ../gdk/gdk.c:151
+#: ../gdk/gdk.c:135
 #, c-format
 msgid "Error parsing option --gdk-debug"
 msgstr "Errore nell'analizzare l'opzione --gdk-debug"
 
-#: ../gdk/gdk.c:171
+#: ../gdk/gdk.c:155
 #, c-format
 msgid "Error parsing option --gdk-no-debug"
 msgstr "Errore nell'analizzare l'opzione --gdk-debug"
 
 #. Description of --class=CLASS in --help output
-#: ../gdk/gdk.c:199
+#: ../gdk/gdk.c:183
 msgid "Program class as used by the window manager"
 msgstr "Classe del programma come usato dal window manager"
 
 #. Placeholder in --class=CLASS in --help output
-#: ../gdk/gdk.c:200
+#: ../gdk/gdk.c:184
 msgid "CLASS"
 msgstr "CLASSE"
 
 #. Description of --name=NAME in --help output
-#: ../gdk/gdk.c:202
+#: ../gdk/gdk.c:186
 msgid "Program name as used by the window manager"
 msgstr "Nome del programma come usato dal window manager"
 
 #. Placeholder in --name=NAME in --help output
-#: ../gdk/gdk.c:203
+#: ../gdk/gdk.c:187
 msgid "NAME"
 msgstr "NOME"
 
 #. Description of --display=DISPLAY in --help output
-#: ../gdk/gdk.c:205
+#: ../gdk/gdk.c:189
 msgid "X display to use"
 msgstr "Display X da usare"
 
 #. Placeholder in --display=DISPLAY in --help output
-#: ../gdk/gdk.c:206
+#: ../gdk/gdk.c:190
 msgid "DISPLAY"
 msgstr "DISPLAY"
 
 #. Description of --gdk-debug=FLAGS in --help output
-#: ../gdk/gdk.c:209
+#: ../gdk/gdk.c:193
 msgid "GDK debugging flags to set"
 msgstr "Flag per il debug di GDK da attivare"
 
@@ -69,17 +68,28 @@ msgstr "Flag per il debug di GDK da attivare"
 #. Placeholder in --gdk-no-debug=FLAGS in --help output
 #. Placeholder in --gtk-debug=FLAGS in --help output
 #. Placeholder in --gtk-no-debug=FLAGS in --help output
-#: ../gdk/gdk.c:210 ../gdk/gdk.c:213 ../gtk/gtkmain.c:570 ../gtk/gtkmain.c:573
+#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:569 ../gtk/gtkmain.c:572
 msgid "FLAGS"
 msgstr "FLAG"
 
 #. Description of --gdk-no-debug=FLAGS in --help output
-#: ../gdk/gdk.c:212
+#: ../gdk/gdk.c:196
 msgid "GDK debugging flags to unset"
 msgstr "Flag per il debug di GDK da disattivare"
 
 # direi che non ha traduzione in italiano -Luca
-#: ../gdk/keyname-table.h:3940
+#.
+#. * Translators, the strings in the 'keyboard label' context are
+#. * display names for keyboard keys. Some of them have prefixes like
+#. * XF86 or ISO_ - these should be removed in the translation. Similarly,
+#. * underscores should be replaced by spaces. The prefix 'KP_' stands
+#. * for 'key pad' and you may want to include that in your translation.
+#. * Here are some examples of English translations:
+#. * XF86AudioMute - Audio mute
+#. * Scroll_lock   - Scroll lock
+#. * KP_Space      - Space (keypad)
+#.
+#: ../gdk/keyname-table.h:3951
 msgctxt "keyboard label"
 msgid "BackSpace"
 msgstr "Backspace"
@@ -87,21 +97,21 @@ msgstr "Backspace"
 # Notare la differenza tra
 # "Tabulazione" (il carattere di -) e
 # "Tab" (il tasto -) -Luca
-#: ../gdk/keyname-table.h:3941
+#: ../gdk/keyname-table.h:3952
 msgctxt "keyboard label"
 msgid "Tab"
 msgstr "Tab"
 
 # Notare che in italiano non esiste distinzione tra Return ed Enter
 # (per lo meno mi pare così, dovrei controllare sulla Olivetti) -Luca
-#: ../gdk/keyname-table.h:3942
+#: ../gdk/keyname-table.h:3953
 msgctxt "keyboard label"
 msgid "Return"
 msgstr "Invio"
 
 # Traduzione del tasto sulla Logitech e Microsoft IT
 # che ho sottomano -Luca
-#: ../gdk/keyname-table.h:3943
+#: ../gdk/keyname-table.h:3954
 msgctxt "keyboard label"
 msgid "Pause"
 msgstr "Pausa"
@@ -111,99 +121,100 @@ msgstr "Pausa"
 #   Bloc
 #   Scorr
 # Cmq direi di seguire la convenzione usata in originale con il _
-#: ../gdk/keyname-table.h:3944
+#: ../gdk/keyname-table.h:3955
 msgctxt "keyboard label"
 msgid "Scroll_Lock"
 msgstr "Bloc_Scorr"
 
 # Traduzione del tasto sulla Logitech e Microsoft IT
 # che ho sottomano -Luca
-#: ../gdk/keyname-table.h:3945
+#: ../gdk/keyname-table.h:3956
 msgctxt "keyboard label"
 msgid "Sys_Req"
 msgstr "R_Sist"
 
 # Traduzione del tasto sulla Logitech e Microsoft IT
 # che ho sottomano -Luca
-#: ../gdk/keyname-table.h:3946
+#: ../gdk/keyname-table.h:3957
 msgctxt "keyboard label"
 msgid "Escape"
 msgstr "Esc"
 
 # Ma che tasto è ????
-#: ../gdk/keyname-table.h:3947
+#: ../gdk/keyname-table.h:3958
 msgctxt "keyboard label"
 msgid "Multi_key"
 msgstr "Tasto_Multi"
 
-#: ../gdk/keyname-table.h:3948
+#: ../gdk/keyname-table.h:3959
 msgctxt "keyboard label"
 msgid "Home"
 msgstr "Home"
 
-#: ../gdk/keyname-table.h:3949
+#: ../gdk/keyname-table.h:3960
 msgctxt "keyboard label"
 msgid "Left"
 msgstr "Sinistra"
 
-#: ../gdk/keyname-table.h:3950
+#: ../gdk/keyname-table.h:3961
 msgctxt "keyboard label"
 msgid "Up"
 msgstr "Su"
 
-#: ../gdk/keyname-table.h:3951
+#: ../gdk/keyname-table.h:3962
 msgctxt "keyboard label"
 msgid "Right"
 msgstr "Destra"
 
-#: ../gdk/keyname-table.h:3952
+#: ../gdk/keyname-table.h:3963
 msgctxt "keyboard label"
 msgid "Down"
 msgstr "Giù"
 
-#: ../gdk/keyname-table.h:3953
+#: ../gdk/keyname-table.h:3964
 msgctxt "keyboard label"
 msgid "Page_Up"
 msgstr "Pag_Su"
 
-#: ../gdk/keyname-table.h:3954
+#: ../gdk/keyname-table.h:3965
 msgctxt "keyboard label"
 msgid "Page_Down"
 msgstr "Pag_Giù"
 
-#: ../gdk/keyname-table.h:3955
+#: ../gdk/keyname-table.h:3966
 msgctxt "keyboard label"
 msgid "End"
 msgstr "Fine"
 
-#: ../gdk/keyname-table.h:3956
+#: ../gdk/keyname-table.h:3967
 msgctxt "keyboard label"
 msgid "Begin"
 msgstr "Inizio"
 
-#: ../gdk/keyname-table.h:3957
+#: ../gdk/keyname-table.h:3968
 msgctxt "keyboard label"
 msgid "Print"
 msgstr "Stamp"
 
-#: ../gdk/keyname-table.h:3958
+#: ../gdk/keyname-table.h:3969
 msgctxt "keyboard label"
 msgid "Insert"
 msgstr "Ins"
 
-#: ../gdk/keyname-table.h:3959
+#: ../gdk/keyname-table.h:3970
 msgctxt "keyboard label"
 msgid "Num_Lock"
 msgstr "Bloc_Num"
 
 # Questo e i successivi si riferiscono ai tasti sul Tastierino Numerico
 # (da cui il prefisso usato TN). -Luca
-#: ../gdk/keyname-table.h:3960
+#. Translators: KP_ means 'key pad' here
+#: ../gdk/keyname-table.h:3972
 msgctxt "keyboard label"
 msgid "KP_Space"
 msgstr "TN_Spazio"
 
-#: ../gdk/keyname-table.h:3961
+#: ../gdk/keyname-table.h:3973
 msgctxt "keyboard label"
 msgid "KP_Tab"
 msgstr "TN_Tab"
@@ -213,83 +224,214 @@ msgstr "TN_Tab"
 #
 # Sulle tastiere Logitech e Microsoft IT che ho sottomano
 # entrambi sono tradotto come Invio. -Luca
-#: ../gdk/keyname-table.h:3962
+#: ../gdk/keyname-table.h:3974
 msgctxt "keyboard label"
 msgid "KP_Enter"
 msgstr "TN_Invio"
 
-#: ../gdk/keyname-table.h:3963
+#: ../gdk/keyname-table.h:3975
 msgctxt "keyboard label"
 msgid "KP_Home"
 msgstr "TN_Home"
 
-#: ../gdk/keyname-table.h:3964
+#: ../gdk/keyname-table.h:3976
 msgctxt "keyboard label"
 msgid "KP_Left"
 msgstr "TN_Sinistra"
 
-#: ../gdk/keyname-table.h:3965
+#: ../gdk/keyname-table.h:3977
 msgctxt "keyboard label"
 msgid "KP_Up"
 msgstr "TN_Su"
 
-#: ../gdk/keyname-table.h:3966
+#: ../gdk/keyname-table.h:3978
 msgctxt "keyboard label"
 msgid "KP_Right"
 msgstr "TN_Destra"
 
-#: ../gdk/keyname-table.h:3967
+#: ../gdk/keyname-table.h:3979
 msgctxt "keyboard label"
 msgid "KP_Down"
 msgstr "TN_Giù"
 
-#: ../gdk/keyname-table.h:3968
+#: ../gdk/keyname-table.h:3980
 msgctxt "keyboard label"
 msgid "KP_Page_Up"
 msgstr "TN_Pag_Su"
 
 # credo sia precedente, visto che c'è KP_Next,
 # ma non so a che tasto corrisponda....
-#: ../gdk/keyname-table.h:3969
+#: ../gdk/keyname-table.h:3981
 msgctxt "keyboard label"
 msgid "KP_Prior"
 msgstr "TN_Prec"
 
-#: ../gdk/keyname-table.h:3970
+#: ../gdk/keyname-table.h:3982
 msgctxt "keyboard label"
 msgid "KP_Page_Down"
 msgstr "TN_Pag_Giù"
 
-#: ../gdk/keyname-table.h:3971
+#: ../gdk/keyname-table.h:3983
 msgctxt "keyboard label"
 msgid "KP_Next"
 msgstr "TN_Succ"
 
-#: ../gdk/keyname-table.h:3972
+#: ../gdk/keyname-table.h:3984
 msgctxt "keyboard label"
 msgid "KP_End"
 msgstr "TN_Fine"
 
-#: ../gdk/keyname-table.h:3973
+#: ../gdk/keyname-table.h:3985
 msgctxt "keyboard label"
 msgid "KP_Begin"
 msgstr "TN_Inizio"
 
-#: ../gdk/keyname-table.h:3974
+#: ../gdk/keyname-table.h:3986
 msgctxt "keyboard label"
 msgid "KP_Insert"
 msgstr "TN_Ins"
 
-#: ../gdk/keyname-table.h:3975
+#: ../gdk/keyname-table.h:3987
 msgctxt "keyboard label"
 msgid "KP_Delete"
 msgstr "TN_Canc"
 
-#: ../gdk/keyname-table.h:3976
+#: ../gdk/keyname-table.h:3988
 msgctxt "keyboard label"
 msgid "Delete"
 msgstr "Canc"
 
+#. Translators: 'Mon' means Monitor here, and the XF86 prefix should be removed
+#: ../gdk/keyname-table.h:3990
+msgctxt "keyboard label"
+msgid "XF86MonBrightnessUp"
+msgstr ""
+
+#: ../gdk/keyname-table.h:3991
+msgctxt "keyboard label"
+msgid "XF86MonBrightnessDown"
+msgstr ""
+
+#: ../gdk/keyname-table.h:3992
+msgctxt "keyboard label"
+msgid "XF86AudioMute"
+msgstr ""
+
+#: ../gdk/keyname-table.h:3993
+msgctxt "keyboard label"
+msgid "XF86AudioLowerVolume"
+msgstr ""
+
+#: ../gdk/keyname-table.h:3994
+msgctxt "keyboard label"
+msgid "XF86AudioRaiseVolume"
+msgstr ""
+
+#: ../gdk/keyname-table.h:3995
+msgctxt "keyboard label"
+msgid "XF86AudioPlay"
+msgstr ""
+
+#: ../gdk/keyname-table.h:3996
+msgctxt "keyboard label"
+msgid "XF86AudioStop"
+msgstr ""
+
+#: ../gdk/keyname-table.h:3997
+msgctxt "keyboard label"
+msgid "XF86AudioNext"
+msgstr ""
+
+#: ../gdk/keyname-table.h:3998
+msgctxt "keyboard label"
+msgid "XF86AudioPrev"
+msgstr ""
+
+#: ../gdk/keyname-table.h:3999
+msgctxt "keyboard label"
+msgid "XF86AudioRecord"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4000
+msgctxt "keyboard label"
+msgid "XF86AudioPause"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4001
+msgctxt "keyboard label"
+msgid "XF86AudioRewind"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4002
+msgctxt "keyboard label"
+msgid "XF86AudioMedia"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4003
+msgctxt "keyboard label"
+msgid "XF86ScreenSaver"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4004
+msgctxt "keyboard label"
+msgid "XF86Battery"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4005
+msgctxt "keyboard label"
+msgid "XF86Launch1"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4006
+msgctxt "keyboard label"
+msgid "XF86Forward"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4007
+msgctxt "keyboard label"
+msgid "XF86Back"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4008
+msgctxt "keyboard label"
+msgid "XF86Sleep"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4009
+msgctxt "keyboard label"
+msgid "XF86Hibernate"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4010
+msgctxt "keyboard label"
+msgid "XF86WLAN"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4011
+msgctxt "keyboard label"
+msgid "XF86WebCam"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4012
+msgctxt "keyboard label"
+msgid "XF86Display"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4013
+msgctxt "keyboard label"
+msgid "XF86TouchpadToggle"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4014
+msgctxt "keyboard label"
+msgid "XF86WakeUp"
+msgstr ""
+
+#: ../gdk/keyname-table.h:4015
+msgctxt "keyboard label"
+msgid "XF86Suspend"
+msgstr ""
+
 #. Description of --sync in --help output
 #: ../gdk/win32/gdkmain-win32.c:55
 msgid "Don't batch GDI requests"
@@ -341,10 +483,30 @@ msgid_plural "Opening %d Items"
 msgstr[0] "Apertura di %d oggetto"
 msgstr[1] "Apertura di %d oggetti"
 
+#: ../gtk/a11y/gtkspinneraccessible.c:42
+msgctxt "throbbing progress animation widget"
+msgid "Spinner"
+msgstr "Spinner"
+
+#: ../gtk/a11y/gtkspinneraccessible.c:43
+msgid "Provides visual indication of progress"
+msgstr "Fornisce indicazioni visive sull'avanzamento"
+
+# per l'accessibilità
+#: ../gtk/a11y/gtkswitchaccessible.c:65
+msgctxt "light switch widget"
+msgid "Switch"
+msgstr "Interruttore"
+
+# per l'accessibilità
+#: ../gtk/a11y/gtkswitchaccessible.c:66
+msgid "Switches between on and off states"
+msgstr "Commuta tra gli stati acceso/attivato e spento/disattivato"
+
 #. Translators: this is the license preamble; the string at the end
 #. * contains the URL of the license.
 #.
-#: ../gtk/gtkaboutdialog.c:104
+#: ../gtk/gtkaboutdialog.c:103
 #, c-format
 msgid ""
 "This program comes with ABSOLUTELY NO WARRANTY; for details, visit <a href="
@@ -353,50 +515,50 @@ msgstr ""
 "Questo programma non fornisce ALCUNA GARANZIA. Per maggiori informazioni "
 "consultare <a href=\"%s\">%s</a>"
 
-#: ../gtk/gtkaboutdialog.c:346
+#: ../gtk/gtkaboutdialog.c:345
 msgid "License"
 msgstr "Licenza"
 
-#: ../gtk/gtkaboutdialog.c:347
+#: ../gtk/gtkaboutdialog.c:346
 msgid "The license of the program"
 msgstr "La licenza del programma"
 
 #. Add the credits button
-#: ../gtk/gtkaboutdialog.c:739
+#: ../gtk/gtkaboutdialog.c:738
 msgid "C_redits"
 msgstr "_Riconoscimenti"
 
 #. Add the license button
-#: ../gtk/gtkaboutdialog.c:752
+#: ../gtk/gtkaboutdialog.c:751
 msgid "_License"
 msgstr "_Licenza"
 
-#: ../gtk/gtkaboutdialog.c:957
+#: ../gtk/gtkaboutdialog.c:956
 msgid "Could not show link"
 msgstr "Impossibile mostrare il collegamento"
 
-#: ../gtk/gtkaboutdialog.c:994
+#: ../gtk/gtkaboutdialog.c:993
 msgid "Homepage"
 msgstr "Homepage"
 
-#: ../gtk/gtkaboutdialog.c:1048
+#: ../gtk/gtkaboutdialog.c:1047
 #, c-format
 msgid "About %s"
 msgstr "Informazioni su %s"
 
-#: ../gtk/gtkaboutdialog.c:2372
+#: ../gtk/gtkaboutdialog.c:2371
 msgid "Created by"
 msgstr "Creato da"
 
-#: ../gtk/gtkaboutdialog.c:2375
+#: ../gtk/gtkaboutdialog.c:2374
 msgid "Documented by"
 msgstr "Documentato da"
 
-#: ../gtk/gtkaboutdialog.c:2385
+#: ../gtk/gtkaboutdialog.c:2384
 msgid "Translated by"
 msgstr "Tradotto da"
 
-#: ../gtk/gtkaboutdialog.c:2390
+#: ../gtk/gtkaboutdialog.c:2389
 msgid "Artwork by"
 msgstr "Grafica di"
 
@@ -435,7 +597,7 @@ msgstr "Alt"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:768
+#: ../gtk/gtkaccellabel.c:789
 msgctxt "keyboard label"
 msgid "Super"
 msgstr "Super"
@@ -445,7 +607,7 @@ msgstr "Super"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:781
+#: ../gtk/gtkaccellabel.c:802
 msgctxt "keyboard label"
 msgid "Hyper"
 msgstr "Hyper"
@@ -455,69 +617,69 @@ msgstr "Hyper"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:795
+#: ../gtk/gtkaccellabel.c:816
 msgctxt "keyboard label"
 msgid "Meta"
 msgstr "Meta"
 
-#: ../gtk/gtkaccellabel.c:811
+#: ../gtk/gtkaccellabel.c:832
 msgctxt "keyboard label"
 msgid "Space"
 msgstr "Spazio"
 
-#: ../gtk/gtkaccellabel.c:814
+#: ../gtk/gtkaccellabel.c:835
 msgctxt "keyboard label"
 msgid "Backslash"
 msgstr "Backslash"
 
-#: ../gtk/gtkappchooserbutton.c:264
+#: ../gtk/gtkappchooserbutton.c:268
 msgid "Other application..."
 msgstr "Altra applicazione..."
 
-#: ../gtk/gtkappchooserdialog.c:128
+#: ../gtk/gtkappchooserdialog.c:130
 msgid "Failed to look for applications online"
 msgstr "Ricerca delle applicazioni online non riuscita"
 
-#: ../gtk/gtkappchooserdialog.c:165
+#: ../gtk/gtkappchooserdialog.c:171
 msgid "Find applications online"
 msgstr "Trova applicazioni online"
 
-#: ../gtk/gtkappchooserdialog.c:209
+#: ../gtk/gtkappchooserdialog.c:221
 msgid "Could not run application"
 msgstr "Impossibile eseguire l'applicazione"
 
-#: ../gtk/gtkappchooserdialog.c:222
+#: ../gtk/gtkappchooserdialog.c:234
 #, c-format
 msgid "Could not find '%s'"
 msgstr "Impossibile trovare «%s»"
 
-#: ../gtk/gtkappchooserdialog.c:225
+#: ../gtk/gtkappchooserdialog.c:237
 msgid "Could not find application"
 msgstr "Impossibile trovare l'applicazione"
 
 #. Translators: %s is a filename
-#: ../gtk/gtkappchooserdialog.c:335
+#: ../gtk/gtkappchooserdialog.c:355
 #, c-format
 msgid "Select an application to open \"%s\""
 msgstr "Selezionare un'applicazione per aprire «%s»"
 
-#: ../gtk/gtkappchooserdialog.c:336 ../gtk/gtkappchooserwidget.c:640
+#: ../gtk/gtkappchooserdialog.c:356 ../gtk/gtkappchooserwidget.c:643
 #, c-format
 msgid "No applications available to open \"%s\""
 msgstr "Nessuna applicazione disponibile per aprire «%s»"
 
 #. Translators: %s is a file type description
-#: ../gtk/gtkappchooserdialog.c:342
+#: ../gtk/gtkappchooserdialog.c:362
 #, c-format
 msgid "Select an application for \"%s\" files"
 msgstr "Selezionare un'applicazione per i file «%s»"
 
-#: ../gtk/gtkappchooserdialog.c:345
+#: ../gtk/gtkappchooserdialog.c:364
 #, c-format
 msgid "No applications available to open \"%s\" files"
 msgstr "Nessuna applicazione disponibile per aprire i file «%s»"
 
-#: ../gtk/gtkappchooserdialog.c:362
+#: ../gtk/gtkappchooserdialog.c:380
 msgid ""
 "Click \"Show other applications\", for more options, or \"Find applications "
 "online\" to install a new application"
@@ -525,34 +687,46 @@ msgstr ""
 "Fare clic su «Mostra altre applicazioni» per maggiori opzioni, oppure «Trova "
 "applicazioni online» per installare una nuova applicazione"
 
-#: ../gtk/gtkappchooserdialog.c:432
+#: ../gtk/gtkappchooserdialog.c:450
 msgid "Forget association"
 msgstr "Dimentica associazione"
 
-#: ../gtk/gtkappchooserdialog.c:497
+#: ../gtk/gtkappchooserdialog.c:515
 msgid "Show other applications"
 msgstr "Mostra altre applicazioni"
 
-#: ../gtk/gtkappchooserdialog.c:515
+#: ../gtk/gtkappchooserdialog.c:533
 msgid "_Select"
 msgstr "_Seleziona"
 
-#: ../gtk/gtkappchooserwidget.c:591
+#: ../gtk/gtkappchooserwidget.c:592
 msgid "Default Application"
 msgstr "Applicazione predefinita"
 
-#: ../gtk/gtkappchooserwidget.c:726
+#: ../gtk/gtkappchooserwidget.c:730
 msgid "Recommended Applications"
 msgstr "Applicazioni consigliate"
 
-#: ../gtk/gtkappchooserwidget.c:740
+#: ../gtk/gtkappchooserwidget.c:745
 msgid "Related Applications"
 msgstr "Applicazioni correlate"
 
-#: ../gtk/gtkappchooserwidget.c:754
+#: ../gtk/gtkappchooserwidget.c:759
 msgid "Other Applications"
 msgstr "Altre applicazioni"
 
+#: ../gtk/gtkassistant.c:999
+msgid "C_ontinue"
+msgstr "C_ontinua"
+
+#: ../gtk/gtkassistant.c:1002
+msgid "Go _Back"
+msgstr "Vai _indietro"
+
+#: ../gtk/gtkassistant.c:1006
+msgid "_Finish"
+msgstr "_Termina"
+
 #: ../gtk/gtkbuilderparser.c:342
 #, c-format
 msgid "Invalid type function on line %d: '%s'"
@@ -584,7 +758,7 @@ msgstr "Tag non gestito: \"%s\""
 #. * text direction of RTL and specify "calendar:YM", then the year
 #. * will appear to the right of the month.
 #.
-#: ../gtk/gtkcalendar.c:871
+#: ../gtk/gtkcalendar.c:873
 msgid "calendar:MY"
 msgstr "calendar:MY"
 
@@ -592,7 +766,7 @@ msgstr "calendar:MY"
 #. * first day of the week to calendar:week_start:1 if you want Monday
 #. * to be the first day of the week, and so on.
 #.
-#: ../gtk/gtkcalendar.c:909
+#: ../gtk/gtkcalendar.c:911
 msgid "calendar:week_start:0"
 msgstr "calendar:week_start:1"
 
@@ -601,7 +775,7 @@ msgstr "calendar:week_start:1"
 #. *
 #. * If you don't understand this, leave it as "2000"
 #.
-#: ../gtk/gtkcalendar.c:1910
+#: ../gtk/gtkcalendar.c:1912
 msgctxt "year measurement template"
 msgid "2000"
 msgstr "2000"
@@ -616,7 +790,7 @@ msgstr "2000"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1941 ../gtk/gtkcalendar.c:2638
+#: ../gtk/gtkcalendar.c:1943 ../gtk/gtkcalendar.c:2640
 #, c-format
 msgctxt "calendar:day:digits"
 msgid "%d"
@@ -632,7 +806,7 @@ msgstr "%d"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1973 ../gtk/gtkcalendar.c:2499
+#: ../gtk/gtkcalendar.c:1975 ../gtk/gtkcalendar.c:2501
 #, c-format
 msgctxt "calendar:week:digits"
 msgid "%d"
@@ -648,7 +822,7 @@ msgstr "%d"
 #. *
 #. * "%Y" is appropriate for most locales.
 #.
-#: ../gtk/gtkcalendar.c:2268
+#: ../gtk/gtkcalendar.c:2270
 msgctxt "calendar year format"
 msgid "%Y"
 msgstr "%Y"
@@ -656,7 +830,7 @@ msgstr "%Y"
 #. This label is displayed in a treeview cell displaying
 #. * a disabled accelerator key combination.
 #.
-#: ../gtk/gtkcellrendereraccel.c:271
+#: ../gtk/gtkcellrendereraccel.c:286
 msgctxt "Accelerator"
 msgid "Disabled"
 msgstr "Disabilitato"
@@ -665,7 +839,7 @@ msgstr "Disabilitato"
 #. * an accelerator key combination that is not valid according
 #. * to gtk_accelerator_valid().
 #.
-#: ../gtk/gtkcellrendereraccel.c:281
+#: ../gtk/gtkcellrendereraccel.c:296
 msgctxt "Accelerator"
 msgid "Invalid"
 msgstr "Non valido"
@@ -674,13 +848,13 @@ msgstr "Non valido"
 #. * an accelerator when the cell is clicked to change the
 #. * acelerator.
 #.
-#: ../gtk/gtkcellrendereraccel.c:417 ../gtk/gtkcellrendereraccel.c:729
+#: ../gtk/gtkcellrendereraccel.c:432 ../gtk/gtkcellrendereraccel.c:745
 msgid "New accelerator..."
 msgstr "Nuovo acceleratore..."
 
 # Nota: il segno di percentuale è attaccato al valore
 # nella convenzione italiana
-#: ../gtk/gtkcellrendererprogress.c:362 ../gtk/gtkcellrendererprogress.c:452
+#: ../gtk/gtkcellrendererprogress.c:374 ../gtk/gtkcellrendererprogress.c:464
 #, c-format
 msgctxt "progress bar label"
 msgid "%d %%"
@@ -690,11 +864,7 @@ msgstr "%d%%"
 msgid "Pick a Color"
 msgstr "Selezione colore"
 
-#: ../gtk/gtkcolorbutton.c:372
-msgid "Received invalid color data\n"
-msgstr "Ricevuti dati colore non validi\n"
-
-#: ../gtk/gtkcolorsel.c:415
+#: ../gtk/gtkcolorsel.c:416
 msgid ""
 "Select the color you want from the outer ring. Select the darkness or "
 "lightness of that color using the inner triangle."
@@ -702,7 +872,7 @@ msgstr ""
 "Selezionare la tonalità di colore tramite l'anello esterno e la luminosità "
 "tramite il triangolo interno."
 
-#: ../gtk/gtkcolorsel.c:441
+#: ../gtk/gtkcolorsel.c:442
 msgid ""
 "Click the eyedropper, then click a color anywhere on your screen to select "
 "that color."
@@ -710,67 +880,67 @@ msgstr ""
 "Fare clic sul contagocce, quindi fare clic su un punto qualsiasi dello "
 "schermo per selezionare il colore di quel punto."
 
-#: ../gtk/gtkcolorsel.c:451
+#: ../gtk/gtkcolorsel.c:452
 msgid "_Hue:"
 msgstr "_Tonalità:"
 
-#: ../gtk/gtkcolorsel.c:452
+#: ../gtk/gtkcolorsel.c:453
 msgid "Position on the color wheel."
 msgstr "Posizione sull'anello dei colori."
 
-#: ../gtk/gtkcolorsel.c:454
+#: ../gtk/gtkcolorsel.c:455
 msgid "_Saturation:"
 msgstr "_Saturazione:"
 
-#: ../gtk/gtkcolorsel.c:455
+#: ../gtk/gtkcolorsel.c:456
 msgid "Intensity of the color."
 msgstr "Intensità del colore."
 
-#: ../gtk/gtkcolorsel.c:456
+#: ../gtk/gtkcolorsel.c:457
 msgid "_Value:"
 msgstr "_Valore:"
 
-#: ../gtk/gtkcolorsel.c:457
+#: ../gtk/gtkcolorsel.c:458
 msgid "Brightness of the color."
 msgstr "Luminosità del colore."
 
-#: ../gtk/gtkcolorsel.c:458
+#: ../gtk/gtkcolorsel.c:459
 msgid "_Red:"
 msgstr "_Rosso:"
 
-#: ../gtk/gtkcolorsel.c:459
+#: ../gtk/gtkcolorsel.c:460
 msgid "Amount of red light in the color."
 msgstr "Quantità di luce rossa nel colore."
 
-#: ../gtk/gtkcolorsel.c:460
+#: ../gtk/gtkcolorsel.c:461
 msgid "_Green:"
 msgstr "_Verde:"
 
-#: ../gtk/gtkcolorsel.c:461
+#: ../gtk/gtkcolorsel.c:462
 msgid "Amount of green light in the color."
 msgstr "Quantità di luce verde nel colore."
 
-#: ../gtk/gtkcolorsel.c:462
+#: ../gtk/gtkcolorsel.c:463
 msgid "_Blue:"
 msgstr "_Blu:"
 
-#: ../gtk/gtkcolorsel.c:463
+#: ../gtk/gtkcolorsel.c:464
 msgid "Amount of blue light in the color."
 msgstr "Quantità di luce blu nel colore."
 
-#: ../gtk/gtkcolorsel.c:466
+#: ../gtk/gtkcolorsel.c:467
 msgid "Op_acity:"
 msgstr "_Opacità:"
 
-#: ../gtk/gtkcolorsel.c:473 ../gtk/gtkcolorsel.c:483
+#: ../gtk/gtkcolorsel.c:475 ../gtk/gtkcolorsel.c:485
 msgid "Transparency of the color."
 msgstr "Trasparenza del colore."
 
-#: ../gtk/gtkcolorsel.c:490
+#: ../gtk/gtkcolorsel.c:492
 msgid "Color _name:"
 msgstr "_Nome colore:"
 
-#: ../gtk/gtkcolorsel.c:504
+#: ../gtk/gtkcolorsel.c:507
 msgid ""
 "You can enter an HTML-style hexadecimal color value, or simply a color name "
 "such as 'orange' in this entry."
@@ -778,15 +948,15 @@ msgstr ""
 "È possibile inserire il valore esadecimale (in stile HTML) del colore o "
 "semplicemente il nome del colore come ad esempio \"orange\"."
 
-#: ../gtk/gtkcolorsel.c:536
+#: ../gtk/gtkcolorsel.c:539
 msgid "_Palette:"
 msgstr "_Tavolozza:"
 
-#: ../gtk/gtkcolorsel.c:565
+#: ../gtk/gtkcolorsel.c:569
 msgid "Color Wheel"
 msgstr "Anello dei colori"
 
-#: ../gtk/gtkcolorsel.c:1038
+#: ../gtk/gtkcolorsel.c:1042
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now. You can drag this color to a palette entry, or select this color as "
@@ -797,7 +967,7 @@ msgstr ""
 "della tavolozza o selezionarlo come corrente trascinandolo sul colore che si "
 "vuole sostituire."
 
-#: ../gtk/gtkcolorsel.c:1044
+#: ../gtk/gtkcolorsel.c:1048
 msgid ""
 "The color you've chosen. You can drag this color to a palette entry to save "
 "it for use in the future."
@@ -805,7 +975,7 @@ msgstr ""
 "Il colore selezionato. È possibile trascinarlo su una posizione della "
 "tavolozza per averlo disponibile in futuro."
 
-#: ../gtk/gtkcolorsel.c:1050
+#: ../gtk/gtkcolorsel.c:1054
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now."
@@ -813,16 +983,16 @@ msgstr ""
 "Il colore selezionato in precedenza, per confronto con il colore che si sta "
 "attualmente selezionando."
 
-#: ../gtk/gtkcolorsel.c:1054
+#: ../gtk/gtkcolorsel.c:1058
 msgid "The color you've chosen."
 msgstr "Il colore che si è scelto."
 
-#: ../gtk/gtkcolorsel.c:1456
+#: ../gtk/gtkcolorsel.c:1460
 msgid "_Save color here"
 msgstr "_Salva il colore in questa posizione"
 
 # bug nella stringa il punto finale andrebbe fuori dalle virgolette
-#: ../gtk/gtkcolorsel.c:1661
+#: ../gtk/gtkcolorsel.c:1665
 msgid ""
 "Click this palette entry to make it the current color. To change this entry, "
 "drag a color swatch here or right-click it and select \"Save color here.\""
@@ -832,7 +1002,7 @@ msgstr ""
 "o fare clic col pulsante destro per selezionare «Salva il colore in questa "
 "posizione»."
 
-#: ../gtk/gtkcolorseldialog.c:189
+#: ../gtk/gtkcolorseldialog.c:217
 msgid "Color Selection"
 msgstr "Selezione colore"
 
@@ -847,95 +1017,133 @@ msgid "default:mm"
 msgstr "default:mm"
 
 #. And show the custom paper dialog
-#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3255
+#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3325
 msgid "Manage Custom Sizes"
 msgstr "Gestisci dimensioni personalizzate"
 
-#: ../gtk/gtkcustompaperunixdialog.c:532 ../gtk/gtkpagesetupunixdialog.c:788
+#: ../gtk/gtkcustompaperunixdialog.c:533 ../gtk/gtkpagesetupunixdialog.c:783
 msgid "inch"
 msgstr "pollici"
 
-#: ../gtk/gtkcustompaperunixdialog.c:534 ../gtk/gtkpagesetupunixdialog.c:786
+#: ../gtk/gtkcustompaperunixdialog.c:535 ../gtk/gtkpagesetupunixdialog.c:781
 msgid "mm"
 msgstr "mm"
 
-#: ../gtk/gtkcustompaperunixdialog.c:579
+#: ../gtk/gtkcustompaperunixdialog.c:580
 msgid "Margins from Printer..."
 msgstr "Margini dalla stampante..."
 
-#: ../gtk/gtkcustompaperunixdialog.c:745
+#: ../gtk/gtkcustompaperunixdialog.c:746
 #, c-format
 msgid "Custom Size %d"
 msgstr "Dimensione personalizzata %d"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1057
+#: ../gtk/gtkcustompaperunixdialog.c:1084
 msgid "_Width:"
 msgstr "_Larghezza:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1069
+#: ../gtk/gtkcustompaperunixdialog.c:1097
 msgid "_Height:"
 msgstr "_Altezza:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1081
+#: ../gtk/gtkcustompaperunixdialog.c:1110
 msgid "Paper Size"
 msgstr "Dimensione carta"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1090
+#: ../gtk/gtkcustompaperunixdialog.c:1119
 msgid "_Top:"
 msgstr "_Superiore:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1102
+#: ../gtk/gtkcustompaperunixdialog.c:1132
 msgid "_Bottom:"
 msgstr "_Inferiore:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1114
+#: ../gtk/gtkcustompaperunixdialog.c:1145
 msgid "_Left:"
 msgstr "_Sinistro:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1126
+#: ../gtk/gtkcustompaperunixdialog.c:1158
 msgid "_Right:"
 msgstr "_Destro:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1167
+#: ../gtk/gtkcustompaperunixdialog.c:1200
 msgid "Paper Margins"
 msgstr "Margini carta"
 
-#: ../gtk/gtkentry.c:8755 ../gtk/gtktextview.c:8270
+#: ../gtk/gtkentry.c:8949 ../gtk/gtktextview.c:8277
 msgid "Input _Methods"
 msgstr "Met_odi di input"
 
-#: ../gtk/gtkentry.c:8769 ../gtk/gtktextview.c:8284
+#: ../gtk/gtkentry.c:8963 ../gtk/gtktextview.c:8291
 msgid "_Insert Unicode Control Character"
 msgstr "Inserisci carattere di controllo _Unicode"
 
-#: ../gtk/gtkentry.c:10173
+#: ../gtk/gtkentry.c:10434
 msgid "Caps Lock and Num Lock are on"
 msgstr "BlocMaiusc e BlocNum sono attivi"
 
-#: ../gtk/gtkentry.c:10175
+#: ../gtk/gtkentry.c:10436
 msgid "Num Lock is on"
 msgstr "BlocNum è attivo"
 
-#: ../gtk/gtkentry.c:10177
+#: ../gtk/gtkentry.c:10438
 msgid "Caps Lock is on"
 msgstr "BlocMaiusc è attivo"
 
+#. *
+#. * SECTION:gtkfilechooserbutton
+#. * @Short_description: A button to launch a file selection dialog
+#. * @Title: GtkFileChooserButton
+#. * @See_also:#GtkFileChooserDialog
+#. *
+#. * The #GtkFileChooserButton is a widget that lets the user select a
+#. * file.  It implements the #GtkFileChooser interface.  Visually, it is a
+#. * file name with a button to bring up a #GtkFileChooserDialog.
+#. * The user can then use that dialog to change the file associated with
+#. * that button.  This widget does not support setting the
+#. * #GtkFileChooser:select-multiple property to %TRUE.
+#. *
+#. * <example>
+#. * <title>Create a button to let the user select a file in /etc</title>
+#. * <programlisting>
+#. * {
+#. *   GtkWidget *button;
+#. *
+#. *   button = gtk_file_chooser_button_new (_("Select a file"),
+#. *                                         GTK_FILE_CHOOSER_ACTION_OPEN);
+#. *   gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button),
+#. *                                        "/etc");
+#. * }
+#. * </programlisting>
+#. * </example>
+#. *
+#. * The #GtkFileChooserButton supports the #GtkFileChooserAction<!-- -->s
+#. * %GTK_FILE_CHOOSER_ACTION_OPEN and %GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
+#. *
+#. * <important>
+#. * The #GtkFileChooserButton will ellipsize the label,
+#. * and thus will thus request little horizontal space.  To give the button
+#. * more space, you should call gtk_widget_get_preferred_size(),
+#. * gtk_file_chooser_button_set_width_chars(), or pack the button in
+#. * such a way that other interface elements give space to the widget.
+#. * </important>
+#.
 #. **************** *
 #. *  Private Macros  *
 #. * ****************
-#: ../gtk/gtkfilechooserbutton.c:62
+#: ../gtk/gtkfilechooserbutton.c:105
 msgid "Select a File"
 msgstr "Selezionare un file"
 
-#: ../gtk/gtkfilechooserbutton.c:63 ../gtk/gtkfilechooserdefault.c:1851
+#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1811
 msgid "Desktop"
 msgstr "Scrivania"
 
-#: ../gtk/gtkfilechooserbutton.c:64
+#: ../gtk/gtkfilechooserbutton.c:107
 msgid "(None)"
 msgstr "(Nessuno)"
 
-#: ../gtk/gtkfilechooserbutton.c:1997
+#: ../gtk/gtkfilechooserbutton.c:2046
 msgid "Other..."
 msgstr "Altro..."
 
@@ -943,23 +1151,23 @@ msgstr "Altro..."
 msgid "Type name of new folder"
 msgstr "Digitare il nome della nuova cartella"
 
-#: ../gtk/gtkfilechooserdefault.c:946
+#: ../gtk/gtkfilechooserdefault.c:962
 msgid "Could not retrieve information about the file"
 msgstr "Impossibile recuperare informazioni sul file"
 
-#: ../gtk/gtkfilechooserdefault.c:957
+#: ../gtk/gtkfilechooserdefault.c:973
 msgid "Could not add a bookmark"
 msgstr "Impossibile aggiungere un segnalibro"
 
-#: ../gtk/gtkfilechooserdefault.c:968
+#: ../gtk/gtkfilechooserdefault.c:984
 msgid "Could not remove bookmark"
 msgstr "Impossibile rimuovere il segnalibro"
 
-#: ../gtk/gtkfilechooserdefault.c:979
+#: ../gtk/gtkfilechooserdefault.c:995
 msgid "The folder could not be created"
 msgstr "La cartella non può essere creata"
 
-#: ../gtk/gtkfilechooserdefault.c:992
+#: ../gtk/gtkfilechooserdefault.c:1008
 msgid ""
 "The folder could not be created, as a file with the same name already "
 "exists.  Try using a different name for the folder, or rename the file first."
@@ -968,16 +1176,17 @@ msgstr ""
 "nome. Provare a usare un nome diverso per la cartella o rinominare prima il "
 "file."
 
-#: ../gtk/gtkfilechooserdefault.c:1006
+#: ../gtk/gtkfilechooserdefault.c:1022
 msgid "You need to choose a valid filename."
 msgstr "È necessario scegliere un nome file valido"
 
-#: ../gtk/gtkfilechooserdefault.c:1009
+#: ../gtk/gtkfilechooserdefault.c:1025
 #, c-format
 msgid "Cannot create a file under %s as it is not a folder"
-msgstr "Impossibile creare un file all'interno di «%s» poiché non è una cartella"
+msgstr ""
+"Impossibile creare un file all'interno di «%s» poiché non è una cartella"
 
-#: ../gtk/gtkfilechooserdefault.c:1021
+#: ../gtk/gtkfilechooserdefault.c:1037
 msgid ""
 "You may only select folders.  The item that you selected is not a folder; "
 "try using a different item."
@@ -985,11 +1194,11 @@ msgstr ""
 "È possibile selezionare soltanto cartelle. L'elemento selezionato non è una "
 "cartella, provare a usare un diverso elemento."
 
-#: ../gtk/gtkfilechooserdefault.c:1031
+#: ../gtk/gtkfilechooserdefault.c:1047
 msgid "Invalid file name"
 msgstr "Nome di file non valido"
 
-#: ../gtk/gtkfilechooserdefault.c:1041
+#: ../gtk/gtkfilechooserdefault.c:1057
 msgid "The folder contents could not be displayed"
 msgstr "Il contenuto della cartella non può essere visualizzato"
 
@@ -997,104 +1206,104 @@ msgstr "Il contenuto della cartella non può essere visualizzato"
 #. * is a hostname. Nautilus and the panel contain the same string
 #. * to translate.
 #.
-#: ../gtk/gtkfilechooserdefault.c:1594
+#: ../gtk/gtkfilechooserdefault.c:1583
 #, c-format
 msgid "%1$s on %2$s"
 msgstr "%1$s su %2$s"
 
-#: ../gtk/gtkfilechooserdefault.c:1770
+#: ../gtk/gtkfilechooserdefault.c:1732
 msgid "Search"
 msgstr "Ricerca"
 
-#: ../gtk/gtkfilechooserdefault.c:1794 ../gtk/gtkfilechooserdefault.c:9452
+#: ../gtk/gtkfilechooserdefault.c:1756 ../gtk/gtkfilechooserdefault.c:4873
 msgid "Recently Used"
 msgstr "Usati di recente"
 
-#: ../gtk/gtkfilechooserdefault.c:2450
+#: ../gtk/gtkfilechooserdefault.c:2355
 msgid "Select which types of files are shown"
 msgstr "Seleziona quali tipi di file mostrare"
 
-#: ../gtk/gtkfilechooserdefault.c:2809
+#: ../gtk/gtkfilechooserdefault.c:2714
 #, c-format
 msgid "Add the folder '%s' to the bookmarks"
 msgstr "Aggiunge la cartella «%s» ai segnalibri"
 
-#: ../gtk/gtkfilechooserdefault.c:2853
+#: ../gtk/gtkfilechooserdefault.c:2758
 #, c-format
 msgid "Add the current folder to the bookmarks"
 msgstr "Aggiunge la cartella corrente ai segnalibri"
 
-#: ../gtk/gtkfilechooserdefault.c:2855
+#: ../gtk/gtkfilechooserdefault.c:2760
 #, c-format
 msgid "Add the selected folders to the bookmarks"
 msgstr "Aggiunge le cartelle selezionate ai segnalibri"
 
-#: ../gtk/gtkfilechooserdefault.c:2893
+#: ../gtk/gtkfilechooserdefault.c:2798
 #, c-format
 msgid "Remove the bookmark '%s'"
 msgstr "Rimuove il segnalibro «%s»"
 
-#: ../gtk/gtkfilechooserdefault.c:2895
+#: ../gtk/gtkfilechooserdefault.c:2800
 #, c-format
 msgid "Bookmark '%s' cannot be removed"
 msgstr "Impossibile rimuovere il segnalibro «%s»"
 
-#: ../gtk/gtkfilechooserdefault.c:2902 ../gtk/gtkfilechooserdefault.c:3784
+#: ../gtk/gtkfilechooserdefault.c:2807 ../gtk/gtkfilechooserdefault.c:3692
 msgid "Remove the selected bookmark"
 msgstr "Rimuove il segnalibro selezionato"
 
-#: ../gtk/gtkfilechooserdefault.c:3465
+#: ../gtk/gtkfilechooserdefault.c:3371
 msgid "Remove"
 msgstr "Rimuovi"
 
-#: ../gtk/gtkfilechooserdefault.c:3474
+#: ../gtk/gtkfilechooserdefault.c:3380
 msgid "Rename..."
 msgstr "Rinomina..."
 
 #. Accessible object name for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3637
+#: ../gtk/gtkfilechooserdefault.c:3544
 msgid "Places"
 msgstr "Risorse"
 
 #. Column header for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3694
+#: ../gtk/gtkfilechooserdefault.c:3601
 msgid "_Places"
 msgstr "Ris_orse"
 
-#: ../gtk/gtkfilechooserdefault.c:3772
+#: ../gtk/gtkfilechooserdefault.c:3680
 msgid "Add the selected folder to the Bookmarks"
 msgstr "Aggiunge la cartella selezionata ai segnalibri"
 
-#: ../gtk/gtkfilechooserdefault.c:3919
+#: ../gtk/gtkfilechooserdefault.c:3827
 msgid "Could not select file"
 msgstr "Impossibile selezionare il file"
 
-#: ../gtk/gtkfilechooserdefault.c:4092
+#: ../gtk/gtkfilechooserdefault.c:4000
 msgid "_Add to Bookmarks"
 msgstr "A_ggiungi ai segnalibri"
 
-#: ../gtk/gtkfilechooserdefault.c:4105
+#: ../gtk/gtkfilechooserdefault.c:4013
 msgid "Show _Hidden Files"
 msgstr "Mostra _file nascosti"
 
-#: ../gtk/gtkfilechooserdefault.c:4112
+#: ../gtk/gtkfilechooserdefault.c:4020
 msgid "Show _Size Column"
 msgstr "Mostra _colonna dimensioni"
 
-#: ../gtk/gtkfilechooserdefault.c:4337
+#: ../gtk/gtkfilechooserdefault.c:4245
 msgid "Files"
 msgstr "File"
 
-#: ../gtk/gtkfilechooserdefault.c:4388
+#: ../gtk/gtkfilechooserdefault.c:4296
 msgid "Name"
 msgstr "Nome"
 
-#: ../gtk/gtkfilechooserdefault.c:4411
+#: ../gtk/gtkfilechooserdefault.c:4319
 msgid "Size"
 msgstr "Dimensione"
 
 # Visto che si applica a cartelle (f) e file (m) mi pare più corretto.
-#: ../gtk/gtkfilechooserdefault.c:4425
+#: ../gtk/gtkfilechooserdefault.c:4333
 msgid "Modified"
 msgstr "Data di modifica"
 
@@ -1103,24 +1312,33 @@ msgstr "Data di modifica"
 #
 # Da verificare nel printeroption!!   --Luca
 #. Label
-#: ../gtk/gtkfilechooserdefault.c:4680 ../gtk/gtkprinteroptionwidget.c:793
+#: ../gtk/gtkfilechooserdefault.c:4414 ../gtk/gtkprinteroptionwidget.c:799
 msgid "_Name:"
 msgstr "No_me:"
 
-#: ../gtk/gtkfilechooserdefault.c:4723
-msgid "_Browse for other folders"
-msgstr "_Esplora altre cartelle"
-
-#: ../gtk/gtkfilechooserdefault.c:4993
+#: ../gtk/gtkfilechooserdefault.c:4711
 msgid "Type a file name"
 msgstr "Digitare un nome di file"
 
+# sotto c'è un elenco, per cui...
+#: ../gtk/gtkfilechooserdefault.c:4758 ../gtk/gtkfilechooserdefault.c:4769
+msgid "Please select a folder below"
+msgstr "Seleziona una cartella dall'elenco"
+
+#: ../gtk/gtkfilechooserdefault.c:4764
+msgid "Please type a file name"
+msgstr "Digitare un nome di file"
+
 #. Create Folder
-#: ../gtk/gtkfilechooserdefault.c:5036
+#: ../gtk/gtkfilechooserdefault.c:4835
 msgid "Create Fo_lder"
 msgstr "_Crea cartella"
 
-#: ../gtk/gtkfilechooserdefault.c:5046
+#: ../gtk/gtkfilechooserdefault.c:4883
+msgid "Search:"
+msgstr "Cerca:"
+
+#: ../gtk/gtkfilechooserdefault.c:4930
 msgid "_Location:"
 msgstr "_Posizione:"
 
@@ -1132,56 +1350,56 @@ msgstr "_Posizione:"
 # a usare la C come tasto d'accesso.
 #
 #  --Luca
-#: ../gtk/gtkfilechooserdefault.c:5251
+#: ../gtk/gtkfilechooserdefault.c:5247
 msgid "Save in _folder:"
 msgstr "Salva nella _cartella:"
 
-#: ../gtk/gtkfilechooserdefault.c:5253
+#: ../gtk/gtkfilechooserdefault.c:5249
 msgid "Create in _folder:"
 msgstr "Crea nella _cartella:"
 
-#: ../gtk/gtkfilechooserdefault.c:6317
+#: ../gtk/gtkfilechooserdefault.c:6343
 #, c-format
 msgid "Could not read the contents of %s"
 msgstr "Impossibile leggere il contenuto di %s"
 
-#: ../gtk/gtkfilechooserdefault.c:6321
+#: ../gtk/gtkfilechooserdefault.c:6347
 msgid "Could not read the contents of the folder"
 msgstr "Impossibile leggere il contenuto della cartella"
 
-#: ../gtk/gtkfilechooserdefault.c:6414 ../gtk/gtkfilechooserdefault.c:6482
-#: ../gtk/gtkfilechooserdefault.c:6627
+#: ../gtk/gtkfilechooserdefault.c:6440 ../gtk/gtkfilechooserdefault.c:6508
+#: ../gtk/gtkfilechooserdefault.c:6660
 msgid "Unknown"
 msgstr "Sconosciuto"
 
-#: ../gtk/gtkfilechooserdefault.c:6429
+#: ../gtk/gtkfilechooserdefault.c:6455
 msgid "%H:%M"
 msgstr "%k.%M"
 
-#: ../gtk/gtkfilechooserdefault.c:6431
+#: ../gtk/gtkfilechooserdefault.c:6457
 msgid "Yesterday at %H:%M"
 msgstr "Ieri alle %k.%M"
 
-#: ../gtk/gtkfilechooserdefault.c:7093
+#: ../gtk/gtkfilechooserdefault.c:7142
 msgid "Cannot change to folder because it is not local"
 msgstr "Impossibile spostarsi in una cartella non locale"
 
-#: ../gtk/gtkfilechooserdefault.c:7690 ../gtk/gtkfilechooserdefault.c:7711
+#: ../gtk/gtkfilechooserdefault.c:7742 ../gtk/gtkfilechooserdefault.c:7763
 #, c-format
 msgid "Shortcut %s already exists"
 msgstr "La scorciatoia «%s» esiste già"
 
-#: ../gtk/gtkfilechooserdefault.c:7801
+#: ../gtk/gtkfilechooserdefault.c:7853
 #, c-format
 msgid "Shortcut %s does not exist"
 msgstr "La scorciatoia «%s» non esiste"
 
-#: ../gtk/gtkfilechooserdefault.c:8060 ../gtk/gtkprintunixdialog.c:480
+#: ../gtk/gtkfilechooserdefault.c:8099 ../gtk/gtkprintunixdialog.c:550
 #, c-format
 msgid "A file named \"%s\" already exists.  Do you want to replace it?"
 msgstr "Esiste già un file con nome «%s». Sostituirlo?"
 
-#: ../gtk/gtkfilechooserdefault.c:8063 ../gtk/gtkprintunixdialog.c:484
+#: ../gtk/gtkfilechooserdefault.c:8102 ../gtk/gtkprintunixdialog.c:554
 #, c-format
 msgid ""
 "The file already exists in \"%s\".  Replacing it will overwrite its contents."
@@ -1189,15 +1407,15 @@ msgstr ""
 "Il file esiste già in «%s». Scegliendo di sostituirlo il suo contenuto verrà "
 "sovrascritto."
 
-#: ../gtk/gtkfilechooserdefault.c:8068 ../gtk/gtkprintunixdialog.c:491
+#: ../gtk/gtkfilechooserdefault.c:8107 ../gtk/gtkprintunixdialog.c:561
 msgid "_Replace"
 msgstr "_Sostituisci"
 
-#: ../gtk/gtkfilechooserdefault.c:8794
+#: ../gtk/gtkfilechooserdefault.c:8912
 msgid "Could not start the search process"
 msgstr "Impossibile avviare il processo di ricerca"
 
-#: ../gtk/gtkfilechooserdefault.c:8795
+#: ../gtk/gtkfilechooserdefault.c:8913
 msgid ""
 "The program was not able to create a connection to the indexer daemon.  "
 "Please make sure it is running."
@@ -1205,36 +1423,34 @@ msgstr ""
 "Il programma non è stato in grado di creare una connessione al demone di "
 "indicizzazione. Assicurarsi che sia in esecuzione."
 
-#: ../gtk/gtkfilechooserdefault.c:8809
+#: ../gtk/gtkfilechooserdefault.c:8927
 msgid "Could not send the search request"
 msgstr "Impossibile inviare la richiesta di ricerca"
 
-#: ../gtk/gtkfilechooserdefault.c:9028
-msgid "Search:"
-msgstr "Cerca:"
-
-#: ../gtk/gtkfilechooserdefault.c:9629
+#: ../gtk/gtkfilechooserdefault.c:9719
 #, c-format
 msgid "Could not mount %s"
 msgstr "Impossibile montare «%s»"
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry, when the user enters an invalid path.
-#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1179
+#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1174
+#: ../gtk/gtkfilesystem.c:721
+#, c-format
 msgid "Invalid path"
 msgstr "Percorso non valido"
 
 #. translators: this text is shown when there are no completions
 #. * for something the user typed in a file chooser entry
 #.
-#: ../gtk/gtkfilechooserentry.c:1111
+#: ../gtk/gtkfilechooserentry.c:1106
 msgid "No match"
 msgstr "Nessuna corrispondenza"
 
 #. translators: this text is shown when there is exactly one completion
 #. * for something the user typed in a file chooser entry
 #.
-#: ../gtk/gtkfilechooserentry.c:1122
+#: ../gtk/gtkfilechooserentry.c:1117
 msgid "Sole completion"
 msgstr "Unico completamento"
 
@@ -1242,13 +1458,13 @@ msgstr "Unico completamento"
 #. * entry is a complete filename, but could be continued to find
 #. * a longer match
 #.
-#: ../gtk/gtkfilechooserentry.c:1138
+#: ../gtk/gtkfilechooserentry.c:1133
 msgid "Complete, but not unique"
 msgstr "Completo, ma non unico"
 
 #. Translators: this text is shown while the system is searching
 #. * for possible completions for filenames in a file chooser entry.
-#: ../gtk/gtkfilechooserentry.c:1170
+#: ../gtk/gtkfilechooserentry.c:1165
 msgid "Completing..."
 msgstr "Completamento..."
 
@@ -1256,7 +1472,7 @@ msgstr "Completamento..."
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user enters something like
 #. * "sftp://blahblah" in an app that only supports local filenames.
-#: ../gtk/gtkfilechooserentry.c:1192 ../gtk/gtkfilechooserentry.c:1217
+#: ../gtk/gtkfilechooserentry.c:1187 ../gtk/gtkfilechooserentry.c:1212
 msgid "Only local files may be selected"
 msgstr "È possibile selezionare solo i file locali"
 
@@ -1264,14 +1480,14 @@ msgstr "È possibile selezionare solo i file locali"
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user hasn't entered the first '/'
 #. * after a hostname and yet hits Tab (such as "sftp://blahblah[Tab]")
-#: ../gtk/gtkfilechooserentry.c:1201
+#: ../gtk/gtkfilechooserentry.c:1196
 msgid "Incomplete hostname; end it with '/'"
 msgstr "Nome host incompleto; terminarlo con \"/\""
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry when the user enters a path that does not exist
 #. * and then hits Tab
-#: ../gtk/gtkfilechooserentry.c:1212
+#: ../gtk/gtkfilechooserentry.c:1207
 msgid "Path does not exist"
 msgstr "Il percorso non esiste"
 
@@ -1284,16 +1500,16 @@ msgstr "Il percorso non esiste"
 msgid "File System"
 msgstr "File system"
 
-#: ../gtk/gtkfontbutton.c:142 ../gtk/gtkfontbutton.c:266
+#: ../gtk/gtkfontbutton.c:153 ../gtk/gtkfontbutton.c:277
 msgid "Pick a Font"
 msgstr "Selezione tipo di carattere"
 
 #. Initialize fields
-#: ../gtk/gtkfontbutton.c:260
+#: ../gtk/gtkfontbutton.c:271
 msgid "Sans 12"
 msgstr "Sans 12"
 
-#: ../gtk/gtkfontbutton.c:785
+#: ../gtk/gtkfontbutton.c:796
 msgid "Font"
 msgstr "Tipo di carattere"
 
@@ -1304,63 +1520,42 @@ msgstr "Tipo di carattere"
 #
 #. This is the default text shown in the preview entry, though the user
 #. can set it. Remember that some fonts only have capital letters.
-#: ../gtk/gtkfontsel.c:100
+#: ../gtk/gtkfontsel.c:119
 msgid "abcdefghijk ABCDEFGHIJK"
 msgstr "abcde ABCDE àèìòù €"
 
-#: ../gtk/gtkfontsel.c:366
+#: ../gtk/gtkfontsel.c:388
 msgid "_Family:"
 msgstr "_Famiglia:"
 
-#: ../gtk/gtkfontsel.c:372
+#: ../gtk/gtkfontsel.c:395
 msgid "_Style:"
 msgstr "_Stile:"
 
-#: ../gtk/gtkfontsel.c:378
+#: ../gtk/gtkfontsel.c:402
 msgid "Si_ze:"
 msgstr "_Dimensione:"
 
 # cambiato acceleratore per collisione con A_nnulla
 #. create the text entry widget
-#: ../gtk/gtkfontsel.c:554
+#: ../gtk/gtkfontsel.c:579
 msgid "_Preview:"
 msgstr "_Anteprima:"
 
-#: ../gtk/gtkfontsel.c:1651
+#: ../gtk/gtkfontsel.c:1705
 msgid "Font Selection"
 msgstr "Selezione tipo di carattere"
 
-#. Remove this icon source so we don't keep trying to
-#. * load it.
-#.
-#: ../gtk/gtkiconfactory.c:1358
-#, c-format
-msgid "Error loading icon: %s"
-msgstr "Errore nel caricare l'icona: %s"
-
-#: ../gtk/gtkicontheme.c:1355
-#, c-format
-msgid ""
-"Could not find the icon '%s'. The '%s' theme\n"
-"was not found either, perhaps you need to install it.\n"
-"You can get a copy from:\n"
-"\t%s"
-msgstr ""
-"Impossibile trovare l'icona «%s». Non è stato trovato\n"
-"il tema «%s» e potrebbe essere necessario installarlo.\n"
-"È possibile recuperarne una copia presso:\n"
-"\t%s"
-
-#: ../gtk/gtkicontheme.c:1537
+#: ../gtk/gtkicontheme.c:1605
 #, c-format
 msgid "Icon '%s' not present in theme"
 msgstr "Icona «%s» non presente nel tema"
 
-#: ../gtk/gtkicontheme.c:3057
+#: ../gtk/gtkicontheme.c:3115
 msgid "Failed to load icon"
 msgstr "Caricamento dell'icona non riuscito"
 
-#: ../gtk/gtkimmodule.c:526
+#: ../gtk/gtkimmodule.c:525
 msgid "Simple"
 msgstr "Semplice"
 
@@ -1381,45 +1576,77 @@ msgid "System (%s)"
 msgstr "Sistema (%s)"
 
 #. Open Link
-#: ../gtk/gtklabel.c:6239
+#: ../gtk/gtklabel.c:6309
 msgid "_Open Link"
 msgstr "_Apri collegamento"
 
 #. Copy Link Address
-#: ../gtk/gtklabel.c:6251
+#: ../gtk/gtklabel.c:6321
 msgid "Copy _Link Address"
 msgstr "_Copia indirizzo collegamento"
 
-#: ../gtk/gtklinkbutton.c:482
+#: ../gtk/gtklinkbutton.c:484
 msgid "Copy URL"
 msgstr "Copia URL"
 
-#: ../gtk/gtklinkbutton.c:645
+#: ../gtk/gtklinkbutton.c:647
 msgid "Invalid URI"
 msgstr "URI non valido"
 
+#: ../gtk/gtklockbutton.c:288
+msgid "Lock"
+msgstr "Blocca"
+
+#: ../gtk/gtklockbutton.c:297
+msgid "Unlock"
+msgstr "Sblocca"
+
+#: ../gtk/gtklockbutton.c:306
+msgid ""
+"Dialog is unlocked.\n"
+"Click to prevent further changes"
+msgstr ""
+"Il dialogo è sbloccato.\n"
+"Fare clic per impedire ulteriori modifiche"
+
+#: ../gtk/gtklockbutton.c:315
+msgid ""
+"Dialog is locked.\n"
+"Click to make changes"
+msgstr ""
+"Il dialogo è bloccato.\n"
+"Fare clic per apportare modifiche"
+
+#: ../gtk/gtklockbutton.c:324
+msgid ""
+"System policy prevents changes.\n"
+"Contact your system administrator"
+msgstr ""
+"La politica di sistema impedisce di modificare.\n"
+"Contattare l'amministratore di sistema"
+
 #. Description of --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:563
+#: ../gtk/gtkmain.c:562
 msgid "Load additional GTK+ modules"
 msgstr "Carica i moduli GTK+ addizionali"
 
 #. Placeholder in --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:564
+#: ../gtk/gtkmain.c:563
 msgid "MODULES"
 msgstr "MODULI"
 
 #. Description of --g-fatal-warnings in --help output
-#: ../gtk/gtkmain.c:566
+#: ../gtk/gtkmain.c:565
 msgid "Make all warnings fatal"
 msgstr "Rende tutti i warning critici"
 
 #. Description of --gtk-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:569
+#: ../gtk/gtkmain.c:568
 msgid "GTK+ debugging flags to set"
 msgstr "Flag per il debug di GTK+ da attivare"
 
 #. Description of --gtk-no-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:572
+#: ../gtk/gtkmain.c:571
 msgid "GTK+ debugging flags to unset"
 msgstr "Flag per il debug di GTK+ da disattivare"
 
@@ -1428,69 +1655,69 @@ msgstr "Flag per il debug di GTK+ da disattivare"
 #. * Do *not* translate it to "predefinito:LTR", if it
 #. * it isn't default:LTR or default:RTL it will not work
 #.
-#: ../gtk/gtkmain.c:835
+#: ../gtk/gtkmain.c:848
 msgid "default:LTR"
 msgstr "default:LTR"
 
-#: ../gtk/gtkmain.c:899
+#: ../gtk/gtkmain.c:914
 #, c-format
 msgid "Cannot open display: %s"
 msgstr "Impossibile aprire il display: %s"
 
-#: ../gtk/gtkmain.c:965
+#: ../gtk/gtkmain.c:980
 msgid "GTK+ Options"
 msgstr "Opzioni GTK+"
 
-#: ../gtk/gtkmain.c:965
+#: ../gtk/gtkmain.c:980
 msgid "Show GTK+ Options"
 msgstr "Mostra le opzioni GTK+"
 
-#: ../gtk/gtkmountoperation.c:491
+#: ../gtk/gtkmountoperation.c:489
 msgid "Co_nnect"
 msgstr "C_onnetti"
 
-#: ../gtk/gtkmountoperation.c:558
+#: ../gtk/gtkmountoperation.c:559
 msgid "Connect _anonymously"
 msgstr "Connetti in modo _anonimo"
 
-#: ../gtk/gtkmountoperation.c:567
+#: ../gtk/gtkmountoperation.c:568
 msgid "Connect as u_ser:"
 msgstr "Connetti come u_tente:"
 
-#: ../gtk/gtkmountoperation.c:605
+#: ../gtk/gtkmountoperation.c:602
 msgid "_Username:"
 msgstr "Nome _utente:"
 
-#: ../gtk/gtkmountoperation.c:610
+#: ../gtk/gtkmountoperation.c:607
 msgid "_Domain:"
 msgstr "_Dominio:"
 
-#: ../gtk/gtkmountoperation.c:616
+#: ../gtk/gtkmountoperation.c:613
 msgid "_Password:"
 msgstr "Pass_word:"
 
-#: ../gtk/gtkmountoperation.c:634
+#: ../gtk/gtkmountoperation.c:631
 msgid "Forget password _immediately"
 msgstr "Di_menticare la password immediatamente"
 
-#: ../gtk/gtkmountoperation.c:644
+#: ../gtk/gtkmountoperation.c:641
 msgid "Remember password until you _logout"
 msgstr "Ricordare la password _fino al termine sessione"
 
-#: ../gtk/gtkmountoperation.c:654
+#: ../gtk/gtkmountoperation.c:651
 msgid "Remember _forever"
 msgstr "_Ricordare per sempre"
 
-#: ../gtk/gtkmountoperation.c:883
+#: ../gtk/gtkmountoperation.c:880
 #, c-format
 msgid "Unknown Application (PID %d)"
 msgstr "Applicazione sconosciuta (PID %d)"
 
-#: ../gtk/gtkmountoperation.c:1066
+#: ../gtk/gtkmountoperation.c:1063
 msgid "Unable to end process"
 msgstr "Impossibile terminare il processo"
 
-#: ../gtk/gtkmountoperation.c:1103
+#: ../gtk/gtkmountoperation.c:1100
 msgid "_End Process"
 msgstr "_Termina processo"
 
@@ -1501,32 +1728,32 @@ msgstr ""
 "Impossibile uccidere il processo con PID %d. L'operazione non è implementata."
 
 #. translators: this string is a name for the 'less' command
-#: ../gtk/gtkmountoperation-x11.c:859
+#: ../gtk/gtkmountoperation-x11.c:959
 msgid "Terminal Pager"
 msgstr "Pager di terminale"
 
-#: ../gtk/gtkmountoperation-x11.c:860
+#: ../gtk/gtkmountoperation-x11.c:960
 msgid "Top Command"
 msgstr "Comando Top"
 
-#: ../gtk/gtkmountoperation-x11.c:861
+#: ../gtk/gtkmountoperation-x11.c:961
 msgid "Bourne Again Shell"
 msgstr "Bourne Again Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:862
+#: ../gtk/gtkmountoperation-x11.c:962
 msgid "Bourne Shell"
 msgstr "Bourne Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:863
+#: ../gtk/gtkmountoperation-x11.c:963
 msgid "Z Shell"
 msgstr "Z Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:960
+#: ../gtk/gtkmountoperation-x11.c:1060
 #, c-format
 msgid "Cannot end process with PID %d: %s"
 msgstr "Impossibile terminare il processo con PID %d: %s"
 
-#: ../gtk/gtknotebook.c:4808 ../gtk/gtknotebook.c:7383
+#: ../gtk/gtknotebook.c:4904 ../gtk/gtknotebook.c:7589
 #, c-format
 msgid "Page %u"
 msgstr "Pagina %u"
@@ -1534,7 +1761,7 @@ msgstr "Pagina %u"
 #. Translators: the format here is used to build the string that will be rendered
 #. * in the number emblem.
 #.
-#: ../gtk/gtknumerableicon.c:481
+#: ../gtk/gtknumerableicon.c:482
 #, c-format
 msgctxt "Number format"
 msgid "%d"
@@ -1545,15 +1772,15 @@ msgstr "%d"
 msgid "Not a valid page setup file"
 msgstr "Non è un file di impostazione pagina valido"
 
-#: ../gtk/gtkpagesetupunixdialog.c:177
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "Any Printer"
 msgstr "Stampante generica"
 
-#: ../gtk/gtkpagesetupunixdialog.c:177
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "For portable documents"
 msgstr "Per documenti portabili"
 
-#: ../gtk/gtkpagesetupunixdialog.c:807
+#: ../gtk/gtkpagesetupunixdialog.c:802
 #, c-format
 msgid ""
 "Margins:\n"
@@ -1568,39 +1795,39 @@ msgstr ""
 " Superiore: %s %s\n"
 " Inferiore: %s %s"
 
-#: ../gtk/gtkpagesetupunixdialog.c:856 ../gtk/gtkprintunixdialog.c:3306
+#: ../gtk/gtkpagesetupunixdialog.c:851 ../gtk/gtkprintunixdialog.c:3376
 msgid "Manage Custom Sizes..."
 msgstr "Gestisci dimensioni personalizzate..."
 
-#: ../gtk/gtkpagesetupunixdialog.c:907
+#: ../gtk/gtkpagesetupunixdialog.c:902
 msgid "_Format for:"
 msgstr "_Formato per:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:929 ../gtk/gtkprintunixdialog.c:3478
+#: ../gtk/gtkpagesetupunixdialog.c:925 ../gtk/gtkprintunixdialog.c:3556
 msgid "_Paper size:"
 msgstr "_Dimensione carta:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:960
+#: ../gtk/gtkpagesetupunixdialog.c:958
 msgid "_Orientation:"
 msgstr "_Orientamento:"
 
 # setup è sostantivo, set up è verbo
-#: ../gtk/gtkpagesetupunixdialog.c:1024 ../gtk/gtkprintunixdialog.c:3540
+#: ../gtk/gtkpagesetupunixdialog.c:1023 ../gtk/gtkprintunixdialog.c:3620
 msgid "Page Setup"
 msgstr "Impostazione pagina"
 
 # nome/descrizione per accessibilità
-#: ../gtk/gtkpathbar.c:157
+#: ../gtk/gtkpathbar.c:156
 msgid "Up Path"
 msgstr "Su nel percorso"
 
 # nome/descrizione per accessibilità
-#: ../gtk/gtkpathbar.c:159
+#: ../gtk/gtkpathbar.c:158
 msgid "Down Path"
 msgstr "Giù nel percorso"
 
 # nome/descrizione per accessibilità
-#: ../gtk/gtkpathbar.c:1518
+#: ../gtk/gtkpathbar.c:1516
 msgid "File System Root"
 msgstr "Radice del file system"
 
@@ -1608,15 +1835,15 @@ msgstr "Radice del file system"
 msgid "Authentication"
 msgstr "Autenticazione"
 
-#: ../gtk/gtkprinteroptionwidget.c:686
+#: ../gtk/gtkprinteroptionwidget.c:692
 msgid "Not available"
 msgstr "Non disponibile"
 
-#: ../gtk/gtkprinteroptionwidget.c:786
+#: ../gtk/gtkprinteroptionwidget.c:792
 msgid "Select a folder"
 msgstr "Seleziona una cartella"
 
-#: ../gtk/gtkprinteroptionwidget.c:805
+#: ../gtk/gtkprinteroptionwidget.c:812
 msgid "_Save in folder:"
 msgstr "Salva nella ca_rtella:"
 
@@ -1624,76 +1851,76 @@ msgstr "Salva nella ca_rtella:"
 #. * jobs. %s gets replaced by the application name, %d gets replaced
 #. * by the job number.
 #.
-#: ../gtk/gtkprintoperation.c:193
+#: ../gtk/gtkprintoperation.c:263
 #, c-format
 msgid "%s job #%d"
 msgstr "%s - lavoro n°%d"
 
-#: ../gtk/gtkprintoperation.c:1698
+#: ../gtk/gtkprintoperation.c:1768
 msgctxt "print operation status"
 msgid "Initial state"
 msgstr "Stato iniziale"
 
-#: ../gtk/gtkprintoperation.c:1699
+#: ../gtk/gtkprintoperation.c:1769
 msgctxt "print operation status"
 msgid "Preparing to print"
 msgstr "Preparazione per la stampa"
 
-#: ../gtk/gtkprintoperation.c:1700
+#: ../gtk/gtkprintoperation.c:1770
 msgctxt "print operation status"
 msgid "Generating data"
 msgstr "Generazione dati"
 
-#: ../gtk/gtkprintoperation.c:1701
+#: ../gtk/gtkprintoperation.c:1771
 msgctxt "print operation status"
 msgid "Sending data"
 msgstr "Invio dati"
 
-#: ../gtk/gtkprintoperation.c:1702
+#: ../gtk/gtkprintoperation.c:1772
 msgctxt "print operation status"
 msgid "Waiting"
 msgstr "Attesa"
 
 # inteso "lavoro"
-#: ../gtk/gtkprintoperation.c:1703
+#: ../gtk/gtkprintoperation.c:1773
 msgctxt "print operation status"
 msgid "Blocking on issue"
 msgstr "Bloccato a causa di un problema"
 
-#: ../gtk/gtkprintoperation.c:1704
+#: ../gtk/gtkprintoperation.c:1774
 msgctxt "print operation status"
 msgid "Printing"
 msgstr "Stampa in corso"
 
-#: ../gtk/gtkprintoperation.c:1705
+#: ../gtk/gtkprintoperation.c:1775
 msgctxt "print operation status"
 msgid "Finished"
 msgstr "Terminato"
 
-#: ../gtk/gtkprintoperation.c:1706
+#: ../gtk/gtkprintoperation.c:1776
 msgctxt "print operation status"
 msgid "Finished with error"
 msgstr "Terminato con errore"
 
-#: ../gtk/gtkprintoperation.c:2273
+#: ../gtk/gtkprintoperation.c:2343
 #, c-format
 msgid "Preparing %d"
 msgstr "Preparazione di %d"
 
-#: ../gtk/gtkprintoperation.c:2275 ../gtk/gtkprintoperation.c:2905
+#: ../gtk/gtkprintoperation.c:2345 ../gtk/gtkprintoperation.c:2975
 msgid "Preparing"
 msgstr "Preparazione"
 
-#: ../gtk/gtkprintoperation.c:2278
+#: ../gtk/gtkprintoperation.c:2348
 #, c-format
 msgid "Printing %d"
 msgstr "Stampa di %d"
 
-#: ../gtk/gtkprintoperation.c:2935
+#: ../gtk/gtkprintoperation.c:3005
 msgid "Error creating print preview"
 msgstr "Errore nel creare l'anteprima di stampa"
 
-#: ../gtk/gtkprintoperation.c:2938
+#: ../gtk/gtkprintoperation.c:3008
 msgid "The most probable reason is that a temporary file could not be created."
 msgstr ""
 "Il motivo più probabile è che non è possibile creare un file temporaneo."
@@ -1716,7 +1943,7 @@ msgstr "Carta terminata"
 
 #. Translators: this is a printer status.
 #: ../gtk/gtkprintoperation-win32.c:615
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2002
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2022
 msgid "Paused"
 msgstr "In pausa"
 
@@ -1761,49 +1988,49 @@ msgstr "Handle per PrintDlgEx non valido"
 msgid "Unspecified error"
 msgstr "Errore non specificato"
 
-#: ../gtk/gtkprintunixdialog.c:618
+#: ../gtk/gtkprintunixdialog.c:688
 msgid "Getting printer information failed"
 msgstr "Recupero delle informazioni sulla stampante non riuscito"
 
-#: ../gtk/gtkprintunixdialog.c:1873
+#: ../gtk/gtkprintunixdialog.c:1942
 msgid "Getting printer information..."
 msgstr "Recupero informazioni stampante..."
 
-#: ../gtk/gtkprintunixdialog.c:2147
+#: ../gtk/gtkprintunixdialog.c:2216
 msgid "Printer"
 msgstr "Stampante"
 
 #. Translators: this is the header for the location column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2157
+#: ../gtk/gtkprintunixdialog.c:2226
 msgid "Location"
 msgstr "Posizione"
 
 #. Translators: this is the header for the printer status column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2168
+#: ../gtk/gtkprintunixdialog.c:2237
 msgid "Status"
 msgstr "Stato"
 
-#: ../gtk/gtkprintunixdialog.c:2194
+#: ../gtk/gtkprintunixdialog.c:2263
 msgid "Range"
 msgstr "Intervallo"
 
-#: ../gtk/gtkprintunixdialog.c:2198
+#: ../gtk/gtkprintunixdialog.c:2267
 msgid "_All Pages"
 msgstr "_Tutte le pagine"
 
-#: ../gtk/gtkprintunixdialog.c:2205
+#: ../gtk/gtkprintunixdialog.c:2274
 msgid "C_urrent Page"
 msgstr "P_agina corrente"
 
-#: ../gtk/gtkprintunixdialog.c:2215
+#: ../gtk/gtkprintunixdialog.c:2284
 msgid "Se_lection"
 msgstr "_Selezione"
 
-#: ../gtk/gtkprintunixdialog.c:2224
+#: ../gtk/gtkprintunixdialog.c:2293
 msgid "Pag_es:"
 msgstr "Pagin_e:"
 
-#: ../gtk/gtkprintunixdialog.c:2225
+#: ../gtk/gtkprintunixdialog.c:2294
 msgid ""
 "Specify one or more page ranges,\n"
 " e.g. 1-3,7,11"
@@ -1811,28 +2038,28 @@ msgstr ""
 "Specificare uno o più intervalli di pagine,\n"
 "per esempio: 1-3,7,11"
 
-#: ../gtk/gtkprintunixdialog.c:2235
+#: ../gtk/gtkprintunixdialog.c:2304
 msgid "Pages"
 msgstr "Pagine"
 
-#: ../gtk/gtkprintunixdialog.c:2248
+#: ../gtk/gtkprintunixdialog.c:2317
 msgid "Copies"
 msgstr "Copie"
 
 #. FIXME chpe: too much space between Copies and spinbutton, put those 2 in a hbox and make it span 2 columns
-#: ../gtk/gtkprintunixdialog.c:2253
+#: ../gtk/gtkprintunixdialog.c:2322
 msgid "Copie_s:"
 msgstr "_Copie:"
 
-#: ../gtk/gtkprintunixdialog.c:2271
+#: ../gtk/gtkprintunixdialog.c:2341
 msgid "C_ollate"
 msgstr "_Raggruppa"
 
-#: ../gtk/gtkprintunixdialog.c:2279
+#: ../gtk/gtkprintunixdialog.c:2349
 msgid "_Reverse"
 msgstr "_Ordine inverso"
 
-#: ../gtk/gtkprintunixdialog.c:2299
+#: ../gtk/gtkprintunixdialog.c:2369
 msgid "General"
 msgstr "Generale"
 
@@ -1842,169 +2069,169 @@ msgstr "Generale"
 #. Translators: These strings name the possible arrangements of
 #. * multiple pages on a sheet when printing
 #.
-#: ../gtk/gtkprintunixdialog.c:3039
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, top to bottom"
 msgstr "Da sinistra a destra, dall'alto in basso"
 
-#: ../gtk/gtkprintunixdialog.c:3039
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, bottom to top"
 msgstr "Da sinistra a destra, dal basso in alto"
 
-#: ../gtk/gtkprintunixdialog.c:3040
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3539
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, top to bottom"
 msgstr "Da destra a sinistra, dall'alto in basso"
 
-#: ../gtk/gtkprintunixdialog.c:3040
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3539
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, bottom to top"
 msgstr "Da destra a sinistra, dal basso in alto"
 
-#: ../gtk/gtkprintunixdialog.c:3041
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3540
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, left to right"
 msgstr "Dall'alto in basso, da sinistra a destra"
 
-#: ../gtk/gtkprintunixdialog.c:3041
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3540
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, right to left"
 msgstr "Dall'alto in basso, da desta a sinistra"
 
-#: ../gtk/gtkprintunixdialog.c:3042
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3541
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, left to right"
 msgstr "Dal basso in alto, da sinistra a destra"
 
-#: ../gtk/gtkprintunixdialog.c:3042
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3541
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, right to left"
 msgstr "Dal basso in alto, da desta a sinistra"
 
 #. Translators, this string is used to label the option in the print
 #. * dialog that controls in what order multiple pages are arranged
 #.
-#: ../gtk/gtkprintunixdialog.c:3046 ../gtk/gtkprintunixdialog.c:3059
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
+#: ../gtk/gtkprintunixdialog.c:3116 ../gtk/gtkprintunixdialog.c:3129
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3609
 msgid "Page Ordering"
 msgstr "Ordinamento pagine"
 
-#: ../gtk/gtkprintunixdialog.c:3075
+#: ../gtk/gtkprintunixdialog.c:3145
 msgid "Left to right"
 msgstr "Da sinistra a destra"
 
-#: ../gtk/gtkprintunixdialog.c:3076
+#: ../gtk/gtkprintunixdialog.c:3146
 msgid "Right to left"
 msgstr "Da destra a sinistra"
 
-#: ../gtk/gtkprintunixdialog.c:3088
+#: ../gtk/gtkprintunixdialog.c:3158
 msgid "Top to bottom"
 msgstr "Dall'alto in basso"
 
-#: ../gtk/gtkprintunixdialog.c:3089
+#: ../gtk/gtkprintunixdialog.c:3159
 msgid "Bottom to top"
 msgstr "Dal basso in alto"
 
 # in tipografia layout-->impaginazione (garzantilinguistica.it)
-#: ../gtk/gtkprintunixdialog.c:3329
+#: ../gtk/gtkprintunixdialog.c:3399
 msgid "Layout"
 msgstr "Impaginazione"
 
-#: ../gtk/gtkprintunixdialog.c:3333
+#: ../gtk/gtkprintunixdialog.c:3403
 msgid "T_wo-sided:"
 msgstr "_Fronte-retro:"
 
-#: ../gtk/gtkprintunixdialog.c:3348
+#: ../gtk/gtkprintunixdialog.c:3419
 msgid "Pages per _side:"
 msgstr "P_agine per facciata:"
 
-#: ../gtk/gtkprintunixdialog.c:3365
+#: ../gtk/gtkprintunixdialog.c:3437
 msgid "Page or_dering:"
 msgstr "_Ordinamento pagine:"
 
-#: ../gtk/gtkprintunixdialog.c:3381
+#: ../gtk/gtkprintunixdialog.c:3454
 msgid "_Only print:"
 msgstr "_Stampare solo:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3396
+#: ../gtk/gtkprintunixdialog.c:3470
 msgid "All sheets"
 msgstr "Tutti i fogli"
 
-#: ../gtk/gtkprintunixdialog.c:3397
+#: ../gtk/gtkprintunixdialog.c:3471
 msgid "Even sheets"
 msgstr "Fogli pari"
 
-#: ../gtk/gtkprintunixdialog.c:3398
+#: ../gtk/gtkprintunixdialog.c:3472
 msgid "Odd sheets"
 msgstr "Fogli dispari"
 
-#: ../gtk/gtkprintunixdialog.c:3401
+#: ../gtk/gtkprintunixdialog.c:3475
 msgid "Sc_ale:"
 msgstr "S_cala:"
 
-#: ../gtk/gtkprintunixdialog.c:3428
+#: ../gtk/gtkprintunixdialog.c:3503
 msgid "Paper"
 msgstr "Carta"
 
-#: ../gtk/gtkprintunixdialog.c:3432
+#: ../gtk/gtkprintunixdialog.c:3507
 msgid "Paper _type:"
 msgstr "_Tipo di carta:"
 
-#: ../gtk/gtkprintunixdialog.c:3447
+#: ../gtk/gtkprintunixdialog.c:3523
 msgid "Paper _source:"
 msgstr "So_rgente carta:"
 
-#: ../gtk/gtkprintunixdialog.c:3462
+#: ../gtk/gtkprintunixdialog.c:3539
 msgid "Output t_ray:"
 msgstr "Cassetto di _uscita:"
 
-#: ../gtk/gtkprintunixdialog.c:3502
+#: ../gtk/gtkprintunixdialog.c:3581
 msgid "Or_ientation:"
 msgstr "Or_ientamento:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3517
+#: ../gtk/gtkprintunixdialog.c:3597
 msgid "Portrait"
 msgstr "Verticale"
 
-#: ../gtk/gtkprintunixdialog.c:3518
+#: ../gtk/gtkprintunixdialog.c:3598
 msgid "Landscape"
 msgstr "Orizzontale"
 
-#: ../gtk/gtkprintunixdialog.c:3519
+#: ../gtk/gtkprintunixdialog.c:3599
 msgid "Reverse portrait"
 msgstr "Verticale invertito"
 
-#: ../gtk/gtkprintunixdialog.c:3520
+#: ../gtk/gtkprintunixdialog.c:3600
 msgid "Reverse landscape"
 msgstr "Orizzontale invertito"
 
-#: ../gtk/gtkprintunixdialog.c:3565
+#: ../gtk/gtkprintunixdialog.c:3645
 msgid "Job Details"
 msgstr "Dettagli lavoro"
 
-#: ../gtk/gtkprintunixdialog.c:3571
+#: ../gtk/gtkprintunixdialog.c:3651
 msgid "Pri_ority:"
 msgstr "Pri_orità:"
 
-#: ../gtk/gtkprintunixdialog.c:3586
+#: ../gtk/gtkprintunixdialog.c:3667
 msgid "_Billing info:"
 msgstr "In_formazioni fatturazione:"
 
-#: ../gtk/gtkprintunixdialog.c:3604
+#: ../gtk/gtkprintunixdialog.c:3686
 msgid "Print Document"
 msgstr "Stampa documento"
 
 #. Translators: this is one of the choices for the print at option
 #. * in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3613
+#: ../gtk/gtkprintunixdialog.c:3695
 msgid "_Now"
 msgstr "Ad_esso"
 
-#: ../gtk/gtkprintunixdialog.c:3624
+#: ../gtk/gtkprintunixdialog.c:3706
 msgid "A_t:"
 msgstr "_Alle:"
 
@@ -2014,7 +2241,7 @@ msgstr "_Alle:"
 #. * You can remove the am/pm values below for your locale if they are not
 #. * supported.
 #.
-#: ../gtk/gtkprintunixdialog.c:3630
+#: ../gtk/gtkprintunixdialog.c:3712
 msgid ""
 "Specify the time of print,\n"
 " e.g. 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"
@@ -2022,120 +2249,109 @@ msgstr ""
 "Specificare l'ora della stampa,\n"
 " per esempio 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"
 
-#: ../gtk/gtkprintunixdialog.c:3640
+#: ../gtk/gtkprintunixdialog.c:3722
 msgid "Time of print"
 msgstr "Ora di stampa"
 
-#: ../gtk/gtkprintunixdialog.c:3656
+#: ../gtk/gtkprintunixdialog.c:3738
 msgid "On _hold"
 msgstr "_In attesa"
 
-#: ../gtk/gtkprintunixdialog.c:3657
+#: ../gtk/gtkprintunixdialog.c:3739
 msgid "Hold the job until it is explicitly released"
 msgstr "Trattenere il lavoro finché non è esplicitamente rilasciato"
 
-#: ../gtk/gtkprintunixdialog.c:3677
+#: ../gtk/gtkprintunixdialog.c:3759
 msgid "Add Cover Page"
 msgstr "Aggiungi pagina di copertina"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3686
+#: ../gtk/gtkprintunixdialog.c:3768
 msgid "Be_fore:"
 msgstr "P_rima:"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3704
+#: ../gtk/gtkprintunixdialog.c:3787
 msgid "_After:"
 msgstr "_Dopo:"
 
 #. Translators: this is the tab label for the notebook tab containing
 #. * job-specific options in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3722
+#: ../gtk/gtkprintunixdialog.c:3806
 msgid "Job"
 msgstr "Lavoro"
 
 # titolo di scheda in dialogo di stampa
-#: ../gtk/gtkprintunixdialog.c:3788
+#: ../gtk/gtkprintunixdialog.c:3872
 msgid "Advanced"
 msgstr "Avanzate"
 
 # titolo di scheda in dialogo di stampa
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3826
+#: ../gtk/gtkprintunixdialog.c:3910
 msgid "Image Quality"
 msgstr "Qualità immagine"
 
 # titolo di scheda in dialogo di stampa
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3830
+#: ../gtk/gtkprintunixdialog.c:3914
 msgid "Color"
 msgstr "Colore"
 
 # titolo di scheda in dialogo di stampa
 #. Translators: this will appear as tab label in print dialog.
 #. It's a typographical term, as in "Binding and finishing"
-#: ../gtk/gtkprintunixdialog.c:3835
+#: ../gtk/gtkprintunixdialog.c:3919
 msgid "Finishing"
 msgstr "Finitura"
 
-#: ../gtk/gtkprintunixdialog.c:3845
+#: ../gtk/gtkprintunixdialog.c:3929
 msgid "Some of the settings in the dialog conflict"
 msgstr "Alcune impostazioni nella finestra di dialogo sono in conflitto"
 
-#: ../gtk/gtkprintunixdialog.c:3868
+#: ../gtk/gtkprintunixdialog.c:3952
 msgid "Print"
 msgstr "Stampa"
 
-#: ../gtk/gtkrc.c:948
-#, c-format
-msgid "Unable to locate image file in pixmap_path: \"%s\""
-msgstr "Impossibile trovare il file di immagine in pixmap_path: \"%s\""
-
-#: ../gtk/gtkrecentaction.c:165 ../gtk/gtkrecentaction.c:173
-#: ../gtk/gtkrecentchoosermenu.c:608 ../gtk/gtkrecentchoosermenu.c:616
-#, c-format
-msgid "This function is not implemented for widgets of class '%s'"
-msgstr "Questa funzione non è implementata per i widget della classe «%s»"
-
-#: ../gtk/gtkrecentchooserdefault.c:483
+#: ../gtk/gtkrecentchooserdefault.c:485
 msgid "Select which type of documents are shown"
 msgstr "Seleziona i tipi di documento da visualizzare"
 
-#: ../gtk/gtkrecentchooserdefault.c:1137 ../gtk/gtkrecentchooserdefault.c:1174
+#: ../gtk/gtkrecentchooserdefault.c:1142 ../gtk/gtkrecentchooserdefault.c:1179
 #, c-format
 msgid "No item for URI '%s' found"
 msgstr "Nessun elemento trovato per l'URI «%s»"
 
-#: ../gtk/gtkrecentchooserdefault.c:1301
+#: ../gtk/gtkrecentchooserdefault.c:1306
 msgid "Untitled filter"
 msgstr "Filtro senza titolo"
 
-#: ../gtk/gtkrecentchooserdefault.c:1654
+#: ../gtk/gtkrecentchooserdefault.c:1659
 msgid "Could not remove item"
 msgstr "Impossibile rimuovere l'elemento"
 
-#: ../gtk/gtkrecentchooserdefault.c:1698
+#: ../gtk/gtkrecentchooserdefault.c:1703
 msgid "Could not clear list"
 msgstr "Impossibile pulire l'elenco"
 
-#: ../gtk/gtkrecentchooserdefault.c:1782
+#: ../gtk/gtkrecentchooserdefault.c:1787
 msgid "Copy _Location"
 msgstr "Copia _posizione"
 
-#: ../gtk/gtkrecentchooserdefault.c:1795
+#: ../gtk/gtkrecentchooserdefault.c:1800
 msgid "_Remove From List"
 msgstr "_Rimuovi da elenco"
 
-#: ../gtk/gtkrecentchooserdefault.c:1804
+#: ../gtk/gtkrecentchooserdefault.c:1809
 msgid "_Clear List"
 msgstr "_Pulisci elenco"
 
-#: ../gtk/gtkrecentchooserdefault.c:1818
+#: ../gtk/gtkrecentchooserdefault.c:1823
 msgid "Show _Private Resources"
 msgstr "Mostra risorse _private"
 
@@ -2158,12 +2374,12 @@ msgstr "Nessun elemento trovato"
 msgid "No recently used resource found with URI `%s'"
 msgstr "Non sono state trovate risorse con l'URI «%s» usate di recente"
 
-#: ../gtk/gtkrecentchoosermenu.c:795
+#: ../gtk/gtkrecentchoosermenu.c:794
 #, c-format
 msgid "Open '%s'"
 msgstr "Apre «%s»"
 
-#: ../gtk/gtkrecentchoosermenu.c:825
+#: ../gtk/gtkrecentchoosermenu.c:824
 msgid "Unknown item"
 msgstr "Elemento sconosciuto"
 
@@ -2172,7 +2388,7 @@ msgstr "Elemento sconosciuto"
 #. * the %s is the name of the item. Please keep the _ in front
 #. * of the number to give these menu items a mnemonic.
 #.
-#: ../gtk/gtkrecentchoosermenu.c:836
+#: ../gtk/gtkrecentchoosermenu.c:835
 #, c-format
 msgctxt "recent menu label"
 msgid "_%d. %s"
@@ -2181,35 +2397,26 @@ msgstr "_%d. %s"
 #. This is the format that is used for items in a recent files menu.
 #. * The %d is the number of the item, the %s is the name of the item.
 #.
-#: ../gtk/gtkrecentchoosermenu.c:841
+#: ../gtk/gtkrecentchoosermenu.c:840
 #, c-format
 msgctxt "recent menu label"
 msgid "%d. %s"
 msgstr "%d. %s"
 
-#: ../gtk/gtkrecentmanager.c:1000 ../gtk/gtkrecentmanager.c:1013
-#: ../gtk/gtkrecentmanager.c:1150 ../gtk/gtkrecentmanager.c:1160
-#: ../gtk/gtkrecentmanager.c:1212 ../gtk/gtkrecentmanager.c:1221
-#: ../gtk/gtkrecentmanager.c:1236
+#: ../gtk/gtkrecentmanager.c:1006 ../gtk/gtkrecentmanager.c:1019
+#: ../gtk/gtkrecentmanager.c:1156 ../gtk/gtkrecentmanager.c:1166
+#: ../gtk/gtkrecentmanager.c:1218 ../gtk/gtkrecentmanager.c:1227
+#: ../gtk/gtkrecentmanager.c:1242
 #, c-format
 msgid "Unable to find an item with URI '%s'"
 msgstr "Impossibile trovare un elemento con l'URI «%s»"
 
-#: ../gtk/gtkrecentmanager.c:2436
+#: ../gtk/gtkrecentmanager.c:2442
 #, c-format
 msgid "No registered application with name '%s' for item with URI '%s' found"
 msgstr ""
-"Non è stata trovata alcuna applicazione con nome «%s» per l'elemento con URI «%"
-"s»"
-
-#: ../gtk/gtkspinner.c:287
-msgctxt "throbbing progress animation widget"
-msgid "Spinner"
-msgstr "Spinner"
-
-#: ../gtk/gtkspinner.c:288
-msgid "Provides visual indication of progress"
-msgstr "Fornisce indicazioni visive sull'avanzamento"
+"Non è stata trovata alcuna applicazione con nome «%s» per l'elemento con URI "
+"«%s»"
 
 #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
 #: ../gtk/gtkstock.c:313
@@ -2723,7 +2930,7 @@ msgstr "Rid_uci ingrandimento"
 #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
 #. * the state
 #.
-#: ../gtk/gtkswitch.c:313 ../gtk/gtkswitch.c:362 ../gtk/gtkswitch.c:553
+#: ../gtk/gtkswitch.c:335 ../gtk/gtkswitch.c:395 ../gtk/gtkswitch.c:602
 msgctxt "switch"
 msgid "ON"
 msgstr "ON"
@@ -2731,22 +2938,11 @@ msgstr "ON"
 #. Translators: if the "off" state label requires more than three
 #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
 #.
-#: ../gtk/gtkswitch.c:321 ../gtk/gtkswitch.c:363 ../gtk/gtkswitch.c:569
+#: ../gtk/gtkswitch.c:343 ../gtk/gtkswitch.c:396 ../gtk/gtkswitch.c:631
 msgctxt "switch"
 msgid "OFF"
 msgstr "OFF"
 
-# per l'accessibilità
-#: ../gtk/gtkswitch.c:968
-msgctxt "light switch widget"
-msgid "Switch"
-msgstr "Interruttore"
-
-# per l'accessibilità
-#: ../gtk/gtkswitch.c:969
-msgid "Switches between on and off states"
-msgstr "Commuta tra gli stati acceso/attivato e spento/disattivato"
-
 #: ../gtk/gtktextbufferrichtext.c:651
 #, c-format
 msgid "Unknown error when trying to deserialize %s"
@@ -2823,7 +3019,8 @@ msgstr "«%s» non è un nome di attributo valido"
 msgid ""
 "\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\""
 msgstr ""
-"Non è possibile convertire «%s» in un valore di tipo «%s» per l'attributo «%s»"
+"Non è possibile convertire «%s» in un valore di tipo «%s» per l'attributo "
+"«%s»"
 
 #: ../gtk/gtktextbufferserialize.c:1211
 #, c-format
@@ -2915,17 +3112,17 @@ msgstr "ZWJ - Spazio di _unione a larghezza nulla"
 msgid "ZWNJ Zero width _non-joiner"
 msgstr "ZWNJ - Spazio non di unione a _larghezza nulla"
 
-#: ../gtk/gtkuimanager.c:1506
+#: ../gtk/gtkuimanager.c:1760
 #, c-format
 msgid "Unexpected start tag '%s' on line %d char %d"
 msgstr "Tag iniziale «%s» non atteso alla riga %d, carattere %d"
 
-#: ../gtk/gtkuimanager.c:1596
+#: ../gtk/gtkuimanager.c:1850
 #, c-format
 msgid "Unexpected character data on line %d char %d"
 msgstr "Dati carattere non attesi alla riga %d, carattere %d"
 
-#: ../gtk/gtkuimanager.c:2428
+#: ../gtk/gtkuimanager.c:2682
 msgid "Empty"
 msgstr "Vuoto"
 
@@ -3805,11 +4002,6 @@ msgctxt "paper size"
 msgid "ROC 8k"
 msgstr "ROC 8k"
 
-#: ../gtk/updateiconcache.c:492 ../gtk/updateiconcache.c:552
-#, c-format
-msgid "different idatas found for symlinked '%s' and '%s'\n"
-msgstr "trovati idata differenti per i collegamenti simbolici «%s» e «%s»\n"
-
 #: ../gtk/updateiconcache.c:1370
 #, c-format
 msgid "Failed to write header\n"
@@ -3969,91 +4161,91 @@ msgstr "Vietnamita (VIQR)"
 msgid "X Input Method"
 msgstr "Metodo di input X"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:814
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1024
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:828
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1038
 msgid "Username:"
 msgstr "Nome utente:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:815
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1033
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:829
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1047
 msgid "Password:"
 msgstr "Password:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:854
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1046
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1060
 #, c-format
 msgid "Authentication is required to print document '%s' on printer %s"
 msgstr ""
 "È richiesto autenticarsi per stampare il documento «%s» sulla stampante %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:856
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:870
 #, c-format
 msgid "Authentication is required to print a document on %s"
 msgstr "È richiesto autenticarsi per stampare un documento su %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:860
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
 #, c-format
 msgid "Authentication is required to get attributes of job '%s'"
 msgstr "È richiesto autenticarsi per ottenere gli attributi del lavoro «%s»"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:862
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:876
 msgid "Authentication is required to get attributes of a job"
 msgstr "È richiesto autenticarsi per ottenere gli attributi di un lavoro"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:866
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:880
 #, c-format
 msgid "Authentication is required to get attributes of printer %s"
 msgstr "È richiesto autenticarsi per ottenere gli attributi della stampante %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:882
 msgid "Authentication is required to get attributes of a printer"
 msgstr "È richiesto autenticarsi per ottenere gli attributi di una stampante"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:871
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:885
 #, c-format
 msgid "Authentication is required to get default printer of %s"
 msgstr "È richiesto autenticarsi per ottenere la stampante predefinita di %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:888
 #, c-format
 msgid "Authentication is required to get printers from %s"
 msgstr "È richiesto autenticarsi per ottenere le stampanti da %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:879
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:893
 #, c-format
 msgid "Authentication is required to get a file from %s"
 msgstr "È richiesto autenticarsi per ottenere un file da %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:881
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:895
 #, c-format
 msgid "Authentication is required on %s"
 msgstr "È richiesto autenticarsi su %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1018
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1032
 msgid "Domain:"
 msgstr "Dominio:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1048
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1062
 #, c-format
 msgid "Authentication is required to print document '%s'"
 msgstr "È richiesto autenticarsi per stampare il documento «%s»"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1053
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1067
 #, c-format
 msgid "Authentication is required to print this document on printer %s"
 msgstr ""
 "È richiesto autenticarsi per stampare questo documento sulla stampante %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1055
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1069
 msgid "Authentication is required to print this document"
 msgstr "È richiesto autenticarsi per stampare questo documento"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1676
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
 #, c-format
 msgid "Printer '%s' is low on toner."
 msgstr "Toner in esaurimento sulla stampante «%s»."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1677
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
 #, c-format
 msgid "Printer '%s' has no toner left."
 msgstr "Toner esaurito sulla stampante «%s»."
@@ -4069,168 +4261,168 @@ msgstr "Toner esaurito sulla stampante «%s»."
 #
 # Per cui tanto vale non sbattersi la testa a cercare una traduzione.
 #. Translators: "Developer" like on photo development context
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1679
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1693
 #, c-format
 msgid "Printer '%s' is low on developer."
 msgstr "Developer in esaurimento sulla stampante «%s»."
 
 #. Translators: "Developer" like on photo development context
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1681
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1695
 #, c-format
 msgid "Printer '%s' is out of developer."
 msgstr "Developer esaurito sulla stampante «%s»."
 
 # marker-supply --> fornitura toner (da IBM)
 #. Translators: "marker" is one color bin of the printer
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1683
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1697
 #, c-format
 msgid "Printer '%s' is low on at least one marker supply."
 msgstr "Almeno una fornitura toner in esaurimento sulla stampante «%s»."
 
 # marker-supply --> fornitura toner (da IBM)
 #. Translators: "marker" is one color bin of the printer
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1685
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1699
 #, c-format
 msgid "Printer '%s' is out of at least one marker supply."
 msgstr "Almeno una fornitura toner esaurita sulla stampante «%s»."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1686
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1700
 #, c-format
 msgid "The cover is open on printer '%s'."
 msgstr "Il coperchio della stampante «%s» è aperto."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1687
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1701
 #, c-format
 msgid "The door is open on printer '%s'."
 msgstr "Lo sportello della stampante «%s» è aperto."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1688
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1702
 #, c-format
 msgid "Printer '%s' is low on paper."
 msgstr "Carta in esaurimento sulla stampante «%s»."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1689
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1703
 #, c-format
 msgid "Printer '%s' is out of paper."
 msgstr "Carta esaurita sulla stampante «%s»."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1704
 #, c-format
 msgid "Printer '%s' is currently offline."
 msgstr "La stampante «%s» è attualmente fuori rete."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1705
 #, c-format
 msgid "There is a problem on printer '%s'."
 msgstr "C'è un problema sulla stampante «%s»."
 
 #. Translators: this is a printer status.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1999
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2019
 msgid "Paused ; Rejecting Jobs"
 msgstr "In pausa; lavori rifiutati"
 
 #. Translators: this is a printer status.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2005
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2025
 msgid "Rejecting Jobs"
 msgstr "Lavori rifiutati"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2781
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798
 msgid "Two Sided"
 msgstr "Fronte-retro"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2782
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2799
 msgid "Paper Type"
 msgstr "Tipo di carta"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2783
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800
 msgid "Paper Source"
 msgstr "Sorgente carta"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2784
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2801
 msgid "Output Tray"
 msgstr "Cassetto di uscita"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2785
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
 msgid "Resolution"
 msgstr "Risoluzione"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2786
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2803
 msgid "GhostScript pre-filtering"
 msgstr "Pre-filtraggio GhostScript"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2795
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812
 msgid "One Sided"
 msgstr "Singola facciata"
 
 #. Translators: this is an option of "Two Sided"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2797
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814
 msgid "Long Edge (Standard)"
 msgstr "Bordo lungo (standard)"
 
 #. Translators: this is an option of "Two Sided"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2799
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816
 msgid "Short Edge (Flip)"
 msgstr "Bordo corto (flip)"
 
 #. Translators: this is an option of "Paper Source"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2801
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2803
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2811
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2820
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2828
 msgid "Auto Select"
 msgstr "Selezione automatica"
 
 #. Translators: this is an option of "Paper Source"
 #. Translators: this is an option of "Resolution"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2805
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2807
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2809
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2813
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3309
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2822
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2824
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2826
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2830
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3326
 msgid "Printer Default"
 msgstr "Impostazioni predefinite stampante"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2815
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2832
 msgid "Embed GhostScript fonts only"
 msgstr "Includere solo i caratteri GhostScript"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2817
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2834
 msgid "Convert to PS level 1"
 msgstr "Convertire a PS livello 1"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2819
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2836
 msgid "Convert to PS level 2"
 msgstr "Convertire a PS livello 2"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2821
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2838
 msgid "No pre-filtering"
 msgstr "Nessun pre-filtraggio"
 
 #. Translators: "Miscellaneous" is the label for a button, that opens
 #. up an extra panel of settings in a print dialog.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2830
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2847
 msgid "Miscellaneous"
 msgstr "Varie"
 
 #. Translators: These strings name the possible values of the
 #. * job priority option in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3533
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Urgent"
 msgstr "Urgente"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3533
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "High"
 msgstr "Alta"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3533
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Medium"
 msgstr "Media"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3533
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Low"
 msgstr "Bassa"
 
@@ -4238,66 +4430,66 @@ msgstr "Bassa"
 #. Translators, this string is used to label the pages-per-sheet option
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3557
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3593
 msgid "Pages per Sheet"
 msgstr "Pagine per foglio"
 
 #. Translators, this string is used to label the job priority option
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3594
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3630
 msgid "Job Priority"
 msgstr "Priorità lavoro"
 
 #. Translators, this string is used to label the billing info entry
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3605
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3641
 msgid "Billing Info"
 msgstr "Informazioni fatturazione"
 
 #. Translators, these strings are names for various 'standard' cover
 #. * pages that the printing system may support.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3620
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "None"
 msgstr "Nessuna"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3620
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Classified"
 msgstr "Classificato"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3620
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Confidential"
 msgstr "Confidenziale"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3620
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Secret"
 msgstr "Segreto"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3620
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Standard"
 msgstr "Standard"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3620
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Top Secret"
 msgstr "Top Secret"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3620
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Unclassified"
 msgstr "Non classificato"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3655
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3691
 msgid "Before"
 msgstr "Prima"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3670
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3706
 msgid "After"
 msgstr "Dopo"
 
@@ -4306,14 +4498,14 @@ msgstr "Dopo"
 #. * a print job is printed. Possible values are 'now', a specified time,
 #. * or 'on hold'
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3690
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3726
 msgid "Print at"
 msgstr "Stampa"
 
 #. Translators: this is the name of the option that allows the user
 #. * to specify a time when a print job will be printed.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3701
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
 msgid "Print at time"
 msgstr "Stampa alle"
 
@@ -4321,11 +4513,36 @@ msgstr "Stampa alle"
 #. * size. The two placeholders are replaced with the width and height
 #. * in points. E.g: "Custom 230.4x142.9"
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3736
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772
 #, c-format
 msgid "Custom %sx%s"
 msgstr "Personalizzato %s×%s"
 
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3853
+msgid "Printer Profile"
+msgstr "Profilo stampante"
+
+#. TRANSLATORS: this is when color profile information is unavailable
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860
+msgid "Unavailable"
+msgstr "Non disponibile"
+
+#. TRANSLATORS: when we're running an old CUPS, and
+#. * it hasn't registered the device with colord
+#: ../modules/printbackends/cups/gtkprintercups.c:222
+msgid "Color management unavailable"
+msgstr "Gestione colori non disponibile"
+
+#. TRANSLATORS: when there is no color profile available
+#: ../modules/printbackends/cups/gtkprintercups.c:234
+msgid "No profile available"
+msgstr "Nessun profilo disponibile"
+
+#. TRANSLATORS: when the color profile has no title
+#: ../modules/printbackends/cups/gtkprintercups.c:245
+msgid "Unspecified profile"
+msgstr "Profilo non specificato"
+
 #. default filename used for print-to-file
 #: ../modules/printbackends/file/gtkprintbackendfile.c:250
 #, c-format
@@ -4423,5 +4640,34 @@ msgstr "Apertura del file «%s» non riuscita: %s"
 msgid ""
 "Failed to load image '%s': reason not known, probably a corrupt image file"
 msgstr ""
-"Caricamento dell'immagine «%s» non riuscito: causa sconosciuta, probabilmente "
-"un file d'immagine danneggiato"
+"Caricamento dell'immagine «%s» non riuscito: causa sconosciuta, "
+"probabilmente un file d'immagine danneggiato"
+
+#~ msgid "Received invalid color data\n"
+#~ msgstr "Ricevuti dati colore non validi\n"
+
+#~ msgid "_Browse for other folders"
+#~ msgstr "_Esplora altre cartelle"
+
+#~ msgid "Error loading icon: %s"
+#~ msgstr "Errore nel caricare l'icona: %s"
+
+#~ msgid ""
+#~ "Could not find the icon '%s'. The '%s' theme\n"
+#~ "was not found either, perhaps you need to install it.\n"
+#~ "You can get a copy from:\n"
+#~ "\t%s"
+#~ msgstr ""
+#~ "Impossibile trovare l'icona «%s». Non è stato trovato\n"
+#~ "il tema «%s» e potrebbe essere necessario installarlo.\n"
+#~ "È possibile recuperarne una copia presso:\n"
+#~ "\t%s"
+
+#~ msgid "Unable to locate image file in pixmap_path: \"%s\""
+#~ msgstr "Impossibile trovare il file di immagine in pixmap_path: \"%s\""
+
+#~ msgid "This function is not implemented for widgets of class '%s'"
+#~ msgstr "Questa funzione non è implementata per i widget della classe «%s»"
+
+#~ msgid "different idatas found for symlinked '%s' and '%s'\n"
+#~ msgstr "trovati idata differenti per i collegamenti simbolici «%s» e «%s»\n"
index 48c5f1f6821cebd1cc18588d6d7dbd63b97edbe5..2a52a1c85be4edc288ff324c0a0b7a01dff5b572 100644 (file)
--- a/po/lt.po
+++ b/po/lt.po
 msgid ""
 msgstr ""
 "Project-Id-Version: lt\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-03-21 14:28+0100\n"
-"PO-Revision-Date: 2011-03-19 22:44+0300\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2b&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-07-14 12:44+0000\n"
+"PO-Revision-Date: 2011-07-16 17:00+0300\n"
 "Last-Translator: Aurimas Černius <aurisc4@gmail.com>\n"
 "Language-Team: Lietuvių <gnome-lt@lists.akl.lt>\n"
-"Language: lt\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n"
-"%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: lt\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
 "X-Generator: Virtaal 0.5.2\n"
 
 #: ../gdk/gdk.c:135
@@ -74,7 +73,10 @@ msgstr "GDK derinimo parametrai, kuriuos naudoti"
 #. Placeholder in --gdk-no-debug=FLAGS in --help output
 #. Placeholder in --gtk-debug=FLAGS in --help output
 #. Placeholder in --gtk-no-debug=FLAGS in --help output
-#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:570 ../gtk/gtkmain.c:573
+#: ../gdk/gdk.c:194
+#: ../gdk/gdk.c:197
+#: ../gtk/gtkmain.c:569
+#: ../gtk/gtkmain.c:572
 msgid "FLAGS"
 msgstr "PARAMETRAI"
 
@@ -459,62 +461,76 @@ msgstr[0] "Atveriamas %d objektas"
 msgstr[1] "Atveriami %d objektai"
 msgstr[2] "Atveriama %d objektų"
 
+#: ../gtk/a11y/gtkspinneraccessible.c:42
+msgctxt "throbbing progress animation widget"
+msgid "Spinner"
+msgstr "Suktukas"
+
+#: ../gtk/a11y/gtkspinneraccessible.c:43
+msgid "Provides visual indication of progress"
+msgstr "Vizualiai parodo vykdomo veiksmo progresą"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:65
+msgctxt "light switch widget"
+msgid "Switch"
+msgstr "Jungiklis"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:66
+msgid "Switches between on and off states"
+msgstr "Perjungia tarp įjungimo ir išjungimo būsenų"
+
 #. Translators: this is the license preamble; the string at the end
 #. * contains the URL of the license.
 #.
-#: ../gtk/gtkaboutdialog.c:104
+#: ../gtk/gtkaboutdialog.c:103
 #, c-format
-msgid ""
-"This program comes with ABSOLUTELY NO WARRANTY; for details, visit <a href="
-"\"%s\">%s</a>"
-msgstr ""
-"Ši programa teikia BE JOKIOS GARANTIJOS; daugiau informacijos rasite <a href="
-"\"%s\">%s</a>"
+msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit <a href=\"%s\">%s</a>"
+msgstr "Ši programa teikia BE JOKIOS GARANTIJOS; daugiau informacijos rasite <a href=\"%s\">%s</a>"
 
-#: ../gtk/gtkaboutdialog.c:346
+#: ../gtk/gtkaboutdialog.c:345
 msgid "License"
 msgstr "Licencija"
 
-#: ../gtk/gtkaboutdialog.c:347
+#: ../gtk/gtkaboutdialog.c:346
 msgid "The license of the program"
 msgstr "Programos licencija"
 
 #. Add the credits button
-#: ../gtk/gtkaboutdialog.c:739
+#: ../gtk/gtkaboutdialog.c:738
 msgid "C_redits"
 msgstr "_Padėkos"
 
 #. Add the license button
-#: ../gtk/gtkaboutdialog.c:752
+#: ../gtk/gtkaboutdialog.c:751
 msgid "_License"
 msgstr "_Licencija"
 
-#: ../gtk/gtkaboutdialog.c:957
+#: ../gtk/gtkaboutdialog.c:956
 msgid "Could not show link"
 msgstr "Nepavyko parodyti nuorodos"
 
-#: ../gtk/gtkaboutdialog.c:994
+#: ../gtk/gtkaboutdialog.c:993
 msgid "Homepage"
 msgstr "Namų tinklapis"
 
-#: ../gtk/gtkaboutdialog.c:1048
+#: ../gtk/gtkaboutdialog.c:1047
 #, c-format
 msgid "About %s"
 msgstr "Apie %s"
 
-#: ../gtk/gtkaboutdialog.c:2372
+#: ../gtk/gtkaboutdialog.c:2371
 msgid "Created by"
 msgstr "Autoriai"
 
-#: ../gtk/gtkaboutdialog.c:2375
+#: ../gtk/gtkaboutdialog.c:2374
 msgid "Documented by"
 msgstr "Dokumentavo"
 
-#: ../gtk/gtkaboutdialog.c:2385
+#: ../gtk/gtkaboutdialog.c:2384
 msgid "Translated by"
 msgstr "Išvertė"
 
-#: ../gtk/gtkaboutdialog.c:2390
+#: ../gtk/gtkaboutdialog.c:2389
 msgid "Artwork by"
 msgstr "Apipavidalino"
 
@@ -523,7 +539,7 @@ msgstr "Apipavidalino"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:158
+#: ../gtk/gtkaccellabel.c:156
 msgctxt "keyboard label"
 msgid "Shift"
 msgstr "Lyg2"
@@ -533,7 +549,7 @@ msgstr "Lyg2"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:164
+#: ../gtk/gtkaccellabel.c:162
 msgctxt "keyboard label"
 msgid "Ctrl"
 msgstr "Vald"
@@ -543,7 +559,7 @@ msgstr "Vald"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:170
+#: ../gtk/gtkaccellabel.c:168
 msgctxt "keyboard label"
 msgid "Alt"
 msgstr "Alt"
@@ -553,7 +569,7 @@ msgstr "Alt"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:786
+#: ../gtk/gtkaccellabel.c:787
 msgctxt "keyboard label"
 msgid "Super"
 msgstr "Super"
@@ -563,7 +579,7 @@ msgstr "Super"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:799
+#: ../gtk/gtkaccellabel.c:800
 msgctxt "keyboard label"
 msgid "Hyper"
 msgstr "Hiper"
@@ -573,104 +589,119 @@ msgstr "Hiper"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:813
+#: ../gtk/gtkaccellabel.c:814
 msgctxt "keyboard label"
 msgid "Meta"
 msgstr "Meta"
 
-#: ../gtk/gtkaccellabel.c:829
+#: ../gtk/gtkaccellabel.c:830
 msgctxt "keyboard label"
 msgid "Space"
 msgstr "Tarpas"
 
-#: ../gtk/gtkaccellabel.c:832
+#: ../gtk/gtkaccellabel.c:833
 msgctxt "keyboard label"
 msgid "Backslash"
 msgstr "Backslash"
 
-#: ../gtk/gtkappchooserbutton.c:264
+#: ../gtk/gtkappchooserbutton.c:268
 msgid "Other application..."
 msgstr "Kita programa..."
 
-#: ../gtk/gtkappchooserdialog.c:128
+#: ../gtk/gtkappchooserdialog.c:130
 msgid "Failed to look for applications online"
 msgstr "Nepavyko rasti programų internete"
 
-#: ../gtk/gtkappchooserdialog.c:165
+#: ../gtk/gtkappchooserdialog.c:171
 msgid "Find applications online"
 msgstr "Ieškoti programų internete"
 
-#: ../gtk/gtkappchooserdialog.c:213
+#: ../gtk/gtkappchooserdialog.c:221
 msgid "Could not run application"
 msgstr "Nepavyko paleisti programos"
 
-#: ../gtk/gtkappchooserdialog.c:226
+#: ../gtk/gtkappchooserdialog.c:234
 #, c-format
 msgid "Could not find '%s'"
 msgstr "Nepavyko rasti „%s“"
 
-#: ../gtk/gtkappchooserdialog.c:229
+#: ../gtk/gtkappchooserdialog.c:237
 msgid "Could not find application"
 msgstr "Nepavyko rasti programos"
 
 #. Translators: %s is a filename
-#: ../gtk/gtkappchooserdialog.c:347
+#: ../gtk/gtkappchooserdialog.c:355
 #, c-format
 msgid "Select an application to open \"%s\""
 msgstr "Pasirinkite programą atverti „%s“"
 
-#: ../gtk/gtkappchooserdialog.c:348 ../gtk/gtkappchooserwidget.c:642
+#: ../gtk/gtkappchooserdialog.c:356
+#: ../gtk/gtkappchooserwidget.c:643
 #, c-format
 msgid "No applications available to open \"%s\""
 msgstr "Nera programų „%s“ atverimui"
 
 #. Translators: %s is a file type description
-#: ../gtk/gtkappchooserdialog.c:354
+#: ../gtk/gtkappchooserdialog.c:362
 #, c-format
 msgid "Select an application for \"%s\" files"
 msgstr "Pasirinkite programą „%s“ failams"
 
-#: ../gtk/gtkappchooserdialog.c:356
+#: ../gtk/gtkappchooserdialog.c:364
 #, c-format
 msgid "No applications available to open \"%s\" files"
 msgstr "Nėra programų „%s“ failams atverti"
 
-#: ../gtk/gtkappchooserdialog.c:372
-msgid ""
-"Click \"Show other applications\", for more options, or \"Find applications "
-"online\" to install a new application"
-msgstr ""
-"Spauskite „Rodyti kitas programas“, jei norite daugiau parinkčių, arba "
-"„Ieškoti programų internete“ naujų programų įdiegimui"
+#: ../gtk/gtkappchooserdialog.c:380
+msgid "Click \"Show other applications\", for more options, or \"Find applications online\" to install a new application"
+msgstr "Spauskite „Rodyti kitas programas“, jei norite daugiau parinkčių, arba „Ieškoti programų internete“ naujų programų įdiegimui"
 
-#: ../gtk/gtkappchooserdialog.c:442
+#: ../gtk/gtkappchooserdialog.c:450
 msgid "Forget association"
 msgstr "Pamiršti susiejimą"
 
-#: ../gtk/gtkappchooserdialog.c:507
+#: ../gtk/gtkappchooserdialog.c:515
 msgid "Show other applications"
 msgstr "Rodyti kitas programas"
 
-#: ../gtk/gtkappchooserdialog.c:525
+#: ../gtk/gtkappchooserdialog.c:533
 msgid "_Select"
 msgstr "Pa_sirinkti"
 
-#: ../gtk/gtkappchooserwidget.c:591
+#: ../gtk/gtkappchooserwidget.c:592
 msgid "Default Application"
 msgstr "Numatytoji programa"
 
-#: ../gtk/gtkappchooserwidget.c:729
+#: ../gtk/gtkappchooserwidget.c:730
 msgid "Recommended Applications"
 msgstr "Rekomenduojama programa"
 
-#: ../gtk/gtkappchooserwidget.c:744
+#: ../gtk/gtkappchooserwidget.c:745
 msgid "Related Applications"
 msgstr "Susijusios programos"
 
-#: ../gtk/gtkappchooserwidget.c:758
+#: ../gtk/gtkappchooserwidget.c:759
 msgid "Other Applications"
 msgstr "Kitos programos"
 
+#: ../gtk/gtkassistant.c:1000
+#| msgctxt "Stock label"
+#| msgid "C_onnect"
+msgid "C_ontinue"
+msgstr "_Tęsti"
+
+#: ../gtk/gtkassistant.c:1003
+#| msgctxt "Stock label, navigation"
+#| msgid "_Back"
+msgid "Go _Back"
+msgstr "At_gal"
+
+#: ../gtk/gtkassistant.c:1007
+#| msgctxt "print operation status"
+#| msgid "Finished"
+msgid "_Finish"
+msgstr "_Baigti"
+
 #: ../gtk/gtkbuilderparser.c:342
 #, c-format
 msgid "Invalid type function on line %d: '%s'"
@@ -701,7 +732,7 @@ msgstr "Neapdorota žymė: „%s“"
 #. * text direction of RTL and specify "calendar:YM", then the year
 #. * will appear to the right of the month.
 #.
-#: ../gtk/gtkcalendar.c:871
+#: ../gtk/gtkcalendar.c:874
 msgid "calendar:MY"
 msgstr "calendar:YM"
 
@@ -709,7 +740,7 @@ msgstr "calendar:YM"
 #. * first day of the week to calendar:week_start:1 if you want Monday
 #. * to be the first day of the week, and so on.
 #.
-#: ../gtk/gtkcalendar.c:909
+#: ../gtk/gtkcalendar.c:912
 msgid "calendar:week_start:0"
 msgstr "calendar:week_start:1"
 
@@ -718,7 +749,7 @@ msgstr "calendar:week_start:1"
 #. *
 #. * If you don't understand this, leave it as "2000"
 #.
-#: ../gtk/gtkcalendar.c:1910
+#: ../gtk/gtkcalendar.c:1913
 msgctxt "year measurement template"
 msgid "2000"
 msgstr "2000"
@@ -733,7 +764,8 @@ msgstr "2000"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1941 ../gtk/gtkcalendar.c:2638
+#: ../gtk/gtkcalendar.c:1944
+#: ../gtk/gtkcalendar.c:2641
 #, c-format
 msgctxt "calendar:day:digits"
 msgid "%d"
@@ -749,7 +781,8 @@ msgstr "%d"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1973 ../gtk/gtkcalendar.c:2499
+#: ../gtk/gtkcalendar.c:1976
+#: ../gtk/gtkcalendar.c:2502
 #, c-format
 msgctxt "calendar:week:digits"
 msgid "%d"
@@ -765,7 +798,7 @@ msgstr "%d"
 #. *
 #. * "%Y" is appropriate for most locales.
 #.
-#: ../gtk/gtkcalendar.c:2268
+#: ../gtk/gtkcalendar.c:2271
 msgctxt "calendar year format"
 msgid "%Y"
 msgstr "%Y"
@@ -773,7 +806,7 @@ msgstr "%Y"
 #. This label is displayed in a treeview cell displaying
 #. * a disabled accelerator key combination.
 #.
-#: ../gtk/gtkcellrendereraccel.c:271
+#: ../gtk/gtkcellrendereraccel.c:286
 msgctxt "Accelerator"
 msgid "Disabled"
 msgstr "Išjungta"
@@ -782,7 +815,7 @@ msgstr "Išjungta"
 #. * an accelerator key combination that is not valid according
 #. * to gtk_accelerator_valid().
 #.
-#: ../gtk/gtkcellrendereraccel.c:281
+#: ../gtk/gtkcellrendereraccel.c:296
 msgctxt "Accelerator"
 msgid "Invalid"
 msgstr "Netinkamas"
@@ -791,159 +824,129 @@ msgstr "Netinkamas"
 #. * an accelerator when the cell is clicked to change the
 #. * acelerator.
 #.
-#: ../gtk/gtkcellrendereraccel.c:417 ../gtk/gtkcellrendereraccel.c:729
+#: ../gtk/gtkcellrendereraccel.c:432
+#: ../gtk/gtkcellrendereraccel.c:745
 msgid "New accelerator..."
 msgstr "Naujas akseleratorius…"
 
-#: ../gtk/gtkcellrendererprogress.c:362 ../gtk/gtkcellrendererprogress.c:452
+#: ../gtk/gtkcellrendererprogress.c:374
+#: ../gtk/gtkcellrendererprogress.c:464
 #, c-format
 msgctxt "progress bar label"
 msgid "%d %%"
 msgstr "%d %%"
 
-#: ../gtk/gtkcolorbutton.c:187 ../gtk/gtkcolorbutton.c:483
+#: ../gtk/gtkcolorbutton.c:187
+#: ../gtk/gtkcolorbutton.c:483
 msgid "Pick a Color"
 msgstr "Pasirinkite spalvą"
 
-#: ../gtk/gtkcolorbutton.c:372
-msgid "Received invalid color data\n"
-msgstr "Gauti netinkami spalvų duomenys\n"
-
-#: ../gtk/gtkcolorsel.c:415
-msgid ""
-"Select the color you want from the outer ring. Select the darkness or "
-"lightness of that color using the inner triangle."
-msgstr ""
-"Pasirink norimą spalvą iš išorinio žiedo. Pasirink spalvos šviesumą ir "
-"sodrumą naudodamasis vidiniu trikampiu."
+#: ../gtk/gtkcolorsel.c:416
+msgid "Select the color you want from the outer ring. Select the darkness or lightness of that color using the inner triangle."
+msgstr "Pasirink norimą spalvą iš išorinio žiedo. Pasirink spalvos šviesumą ir sodrumą naudodamasis vidiniu trikampiu."
 
-#: ../gtk/gtkcolorsel.c:441
-msgid ""
-"Click the eyedropper, then click a color anywhere on your screen to select "
-"that color."
-msgstr ""
-"Paspausk ant teptuko, tada paspausk ant spalvos, esančios bet kurioje ekrano "
-"vietoje, kad pasirinktum ją."
+#: ../gtk/gtkcolorsel.c:442
+msgid "Click the eyedropper, then click a color anywhere on your screen to select that color."
+msgstr "Paspausk ant teptuko, tada paspausk ant spalvos, esančios bet kurioje ekrano vietoje, kad pasirinktum ją."
 
-#: ../gtk/gtkcolorsel.c:451
+#: ../gtk/gtkcolorsel.c:452
 msgid "_Hue:"
 msgstr "_Atspalvis:"
 
-#: ../gtk/gtkcolorsel.c:452
+#: ../gtk/gtkcolorsel.c:453
 msgid "Position on the color wheel."
 msgstr "Vieta spalvų rate."
 
-#: ../gtk/gtkcolorsel.c:454
+#: ../gtk/gtkcolorsel.c:455
 msgid "_Saturation:"
 msgstr "_Sodrumas:"
 
-#: ../gtk/gtkcolorsel.c:455
+#: ../gtk/gtkcolorsel.c:456
 msgid "Intensity of the color."
 msgstr "Spalvos intensyvumas."
 
-#: ../gtk/gtkcolorsel.c:456
+#: ../gtk/gtkcolorsel.c:457
 msgid "_Value:"
 msgstr "_Vertė:"
 
-#: ../gtk/gtkcolorsel.c:457
+#: ../gtk/gtkcolorsel.c:458
 msgid "Brightness of the color."
 msgstr "Spalvos šviesumas."
 
-#: ../gtk/gtkcolorsel.c:458
+#: ../gtk/gtkcolorsel.c:459
 msgid "_Red:"
 msgstr "_Raudona:"
 
-#: ../gtk/gtkcolorsel.c:459
+#: ../gtk/gtkcolorsel.c:460
 msgid "Amount of red light in the color."
 msgstr "Raudonos šviesos kiekis spalvoje."
 
-#: ../gtk/gtkcolorsel.c:460
+#: ../gtk/gtkcolorsel.c:461
 msgid "_Green:"
 msgstr "_Žalia:"
 
-#: ../gtk/gtkcolorsel.c:461
+#: ../gtk/gtkcolorsel.c:462
 msgid "Amount of green light in the color."
 msgstr "Žalios šviesos kiekis spalvoje."
 
-#: ../gtk/gtkcolorsel.c:462
+#: ../gtk/gtkcolorsel.c:463
 msgid "_Blue:"
 msgstr "_Mėlyna:"
 
-#: ../gtk/gtkcolorsel.c:463
+#: ../gtk/gtkcolorsel.c:464
 msgid "Amount of blue light in the color."
 msgstr "Mėlynos šviesos kiekis spalvoje."
 
-#: ../gtk/gtkcolorsel.c:466
+#: ../gtk/gtkcolorsel.c:467
 msgid "Op_acity:"
 msgstr "Neperm_atomumas:"
 
-#: ../gtk/gtkcolorsel.c:473 ../gtk/gtkcolorsel.c:483
+#: ../gtk/gtkcolorsel.c:475
+#: ../gtk/gtkcolorsel.c:485
 msgid "Transparency of the color."
 msgstr "Spalvos skaidrumas."
 
-#: ../gtk/gtkcolorsel.c:490
+#: ../gtk/gtkcolorsel.c:492
 msgid "Color _name:"
 msgstr "Spalvos _pavadinimas:"
 
-#: ../gtk/gtkcolorsel.c:504
-msgid ""
-"You can enter an HTML-style hexadecimal color value, or simply a color name "
-"such as 'orange' in this entry."
-msgstr ""
-"Čia galite įrašyti HTML stiliaus šešioliktainę spalvos išraišką, arba "
-"tiesiog spalvos pavadinimą, pvz., „white“."
+#: ../gtk/gtkcolorsel.c:507
+msgid "You can enter an HTML-style hexadecimal color value, or simply a color name such as 'orange' in this entry."
+msgstr "Čia galite įrašyti HTML stiliaus šešioliktainę spalvos išraišką, arba tiesiog spalvos pavadinimą, pvz., „white“."
 
-#: ../gtk/gtkcolorsel.c:536
+#: ../gtk/gtkcolorsel.c:539
 msgid "_Palette:"
 msgstr "_Paletė:"
 
-#: ../gtk/gtkcolorsel.c:565
+#: ../gtk/gtkcolorsel.c:569
 msgid "Color Wheel"
 msgstr "Spalvų ratas"
 
-#: ../gtk/gtkcolorsel.c:1038
-msgid ""
-"The previously-selected color, for comparison to the color you're selecting "
-"now. You can drag this color to a palette entry, or select this color as "
-"current by dragging it to the other color swatch alongside."
-msgstr ""
-"Anksčiau buvusi spalva, palyginimui su spalva, kurią pasirenkate dabar. "
-"Galite nutempti šią spalvą į paletės langelį, arba pasirinkti šią spalvą, "
-"nutempdami ją į greta esantį langelį."
-
-#: ../gtk/gtkcolorsel.c:1044
-msgid ""
-"The color you've chosen. You can drag this color to a palette entry to save "
-"it for use in the future."
-msgstr ""
-"Spalva, kurią pasirinkote. Galite nutempti šią spalvą į paletės langelį, kad "
-"išsaugotumėte ją naudojimui ateityje."
+#: ../gtk/gtkcolorsel.c:1042
+msgid "The previously-selected color, for comparison to the color you're selecting now. You can drag this color to a palette entry, or select this color as current by dragging it to the other color swatch alongside."
+msgstr "Anksčiau buvusi spalva, palyginimui su spalva, kurią pasirenkate dabar. Galite nutempti šią spalvą į paletės langelį, arba pasirinkti šią spalvą, nutempdami ją į greta esantį langelį."
 
-#: ../gtk/gtkcolorsel.c:1050
-msgid ""
-"The previously-selected color, for comparison to the color you're selecting "
-"now."
-msgstr ""
-"Anksčiau buvusi spalva, palyginimui su spalva, kurią pasirenkate dabar."
+#: ../gtk/gtkcolorsel.c:1048
+msgid "The color you've chosen. You can drag this color to a palette entry to save it for use in the future."
+msgstr "Spalva, kurią pasirinkote. Galite nutempti šią spalvą į paletės langelį, kad išsaugotumėte ją naudojimui ateityje."
 
 #: ../gtk/gtkcolorsel.c:1054
+msgid "The previously-selected color, for comparison to the color you're selecting now."
+msgstr "Anksčiau buvusi spalva, palyginimui su spalva, kurią pasirenkate dabar."
+
+#: ../gtk/gtkcolorsel.c:1058
 msgid "The color you've chosen."
 msgstr "Spalva, kurią pasirinkote."
 
-#: ../gtk/gtkcolorsel.c:1456
+#: ../gtk/gtkcolorsel.c:1460
 msgid "_Save color here"
 msgstr "Iš_saugoti spalvą čia"
 
-#: ../gtk/gtkcolorsel.c:1661
-msgid ""
-"Click this palette entry to make it the current color. To change this entry, "
-"drag a color swatch here or right-click it and select \"Save color here.\""
-msgstr ""
-"Paspausk ant šio paletės langelio, kad padarytum ją esama spalva. Kad "
-"pakeistum šį langelį, nutempk spalvos langelį čia arba paspausk dešinį "
-"mygtuką ir pasirink „Išsaugoti spalvą čia“."
+#: ../gtk/gtkcolorsel.c:1665
+msgid "Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select \"Save color here.\""
+msgstr "Paspausk ant šio paletės langelio, kad padarytum ją esama spalva. Kad pakeistum šį langelį, nutempk spalvos langelį čia arba paspausk dešinį mygtuką ir pasirink „Išsaugoti spalvą čia“."
 
-#: ../gtk/gtkcolorseldialog.c:189
+#: ../gtk/gtkcolorseldialog.c:213
 msgid "Color Selection"
 msgstr "Spalvos pasirinkimas"
 
@@ -958,95 +961,139 @@ msgid "default:mm"
 msgstr "default:mm"
 
 #. And show the custom paper dialog
-#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3255
+#: ../gtk/gtkcustompaperunixdialog.c:372
+#: ../gtk/gtkprintunixdialog.c:3325
 msgid "Manage Custom Sizes"
 msgstr "Tvarkyti pasirinktinius dydžius"
 
-#: ../gtk/gtkcustompaperunixdialog.c:532 ../gtk/gtkpagesetupunixdialog.c:788
+#: ../gtk/gtkcustompaperunixdialog.c:533
+#: ../gtk/gtkpagesetupunixdialog.c:783
 msgid "inch"
 msgstr "colis"
 
-#: ../gtk/gtkcustompaperunixdialog.c:534 ../gtk/gtkpagesetupunixdialog.c:786
+#: ../gtk/gtkcustompaperunixdialog.c:535
+#: ../gtk/gtkpagesetupunixdialog.c:781
 msgid "mm"
 msgstr "mm"
 
-#: ../gtk/gtkcustompaperunixdialog.c:579
+#: ../gtk/gtkcustompaperunixdialog.c:580
 msgid "Margins from Printer..."
 msgstr "Paraštės iš spausdintuvo…"
 
-#: ../gtk/gtkcustompaperunixdialog.c:745
+#: ../gtk/gtkcustompaperunixdialog.c:746
 #, c-format
 msgid "Custom Size %d"
 msgstr "Pasirinktinis dydis %d"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1057
+#: ../gtk/gtkcustompaperunixdialog.c:1084
 msgid "_Width:"
 msgstr "_Plotis:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1069
+#: ../gtk/gtkcustompaperunixdialog.c:1097
 msgid "_Height:"
 msgstr "_Aukštis:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1081
+#: ../gtk/gtkcustompaperunixdialog.c:1110
 msgid "Paper Size"
 msgstr "Popieriaus dydis"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1090
+#: ../gtk/gtkcustompaperunixdialog.c:1119
 msgid "_Top:"
 msgstr "_Viršus:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1102
+#: ../gtk/gtkcustompaperunixdialog.c:1132
 msgid "_Bottom:"
 msgstr "_Apačia:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1114
+#: ../gtk/gtkcustompaperunixdialog.c:1145
 msgid "_Left:"
 msgstr "_Kairė:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1126
+#: ../gtk/gtkcustompaperunixdialog.c:1158
 msgid "_Right:"
 msgstr "_Dešinė:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1167
+#: ../gtk/gtkcustompaperunixdialog.c:1200
 msgid "Paper Margins"
 msgstr "Popieriaus paraštės"
 
-#: ../gtk/gtkentry.c:8838 ../gtk/gtktextview.c:8272
+#: ../gtk/gtkentry.c:8949
+#: ../gtk/gtktextview.c:8277
 msgid "Input _Methods"
 msgstr "Įvesties _metodai"
 
-#: ../gtk/gtkentry.c:8852 ../gtk/gtktextview.c:8286
+#: ../gtk/gtkentry.c:8963
+#: ../gtk/gtktextview.c:8291
 msgid "_Insert Unicode Control Character"
 msgstr "Įterpti _Unicode valdymo simbolį"
 
-#: ../gtk/gtkentry.c:10315
+#: ../gtk/gtkentry.c:10434
 msgid "Caps Lock and Num Lock are on"
 msgstr "Caps Lock ir Num Lock yra įjungti"
 
-#: ../gtk/gtkentry.c:10317
+#: ../gtk/gtkentry.c:10436
 msgid "Num Lock is on"
 msgstr "Num Lock įjungtas"
 
-#: ../gtk/gtkentry.c:10319
+#: ../gtk/gtkentry.c:10438
 msgid "Caps Lock is on"
 msgstr "Caps Lock įjungtas"
 
+#. *
+#. * SECTION:gtkfilechooserbutton
+#. * @Short_description: A button to launch a file selection dialog
+#. * @Title: GtkFileChooserButton
+#. * @See_also:#GtkFileChooserDialog
+#. *
+#. * The #GtkFileChooserButton is a widget that lets the user select a
+#. * file.  It implements the #GtkFileChooser interface.  Visually, it is a
+#. * file name with a button to bring up a #GtkFileChooserDialog.
+#. * The user can then use that dialog to change the file associated with
+#. * that button.  This widget does not support setting the
+#. * #GtkFileChooser:select-multiple property to %TRUE.
+#. *
+#. * <example>
+#. * <title>Create a button to let the user select a file in /etc</title>
+#. * <programlisting>
+#. * {
+#. *   GtkWidget *button;
+#. *
+#. *   button = gtk_file_chooser_button_new (_("Select a file"),
+#. *                                         GTK_FILE_CHOOSER_ACTION_OPEN);
+#. *   gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button),
+#. *                                        "/etc");
+#. * }
+#. * </programlisting>
+#. * </example>
+#. *
+#. * The #GtkFileChooserButton supports the #GtkFileChooserAction<!-- -->s
+#. * %GTK_FILE_CHOOSER_ACTION_OPEN and %GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
+#. *
+#. * <important>
+#. * The #GtkFileChooserButton will ellipsize the label,
+#. * and thus will thus request little horizontal space.  To give the button
+#. * more space, you should call gtk_widget_get_preferred_size(),
+#. * gtk_file_chooser_button_set_width_chars(), or pack the button in
+#. * such a way that other interface elements give space to the widget.
+#. * </important>
+#.
 #. **************** *
 #. *  Private Macros  *
 #. * ****************
-#: ../gtk/gtkfilechooserbutton.c:62
+#: ../gtk/gtkfilechooserbutton.c:105
 msgid "Select a File"
 msgstr "Pasirinkite failą"
 
-#: ../gtk/gtkfilechooserbutton.c:63 ../gtk/gtkfilechooserdefault.c:1865
+#: ../gtk/gtkfilechooserbutton.c:106
+#: ../gtk/gtkfilechooserdefault.c:1811
 msgid "Desktop"
 msgstr "Darbastalis"
 
-#: ../gtk/gtkfilechooserbutton.c:64
+#: ../gtk/gtkfilechooserbutton.c:107
 msgid "(None)"
 msgstr "(Joks)"
 
-#: ../gtk/gtkfilechooserbutton.c:1997
+#: ../gtk/gtkfilechooserbutton.c:2046
 msgid "Other..."
 msgstr "Kita…"
 
@@ -1054,52 +1101,44 @@ msgstr "Kita…"
 msgid "Type name of new folder"
 msgstr "Įveskite naujo aplanko pavadinimą"
 
-#: ../gtk/gtkfilechooserdefault.c:960
+#: ../gtk/gtkfilechooserdefault.c:962
 msgid "Could not retrieve information about the file"
 msgstr "Nepavyko gauti informacijos apie šį failą"
 
-#: ../gtk/gtkfilechooserdefault.c:971
+#: ../gtk/gtkfilechooserdefault.c:973
 msgid "Could not add a bookmark"
 msgstr "Nepavyko pridėti žymelės"
 
-#: ../gtk/gtkfilechooserdefault.c:982
+#: ../gtk/gtkfilechooserdefault.c:984
 msgid "Could not remove bookmark"
 msgstr "Nepavyko pašalinti žymelės"
 
-#: ../gtk/gtkfilechooserdefault.c:993
+#: ../gtk/gtkfilechooserdefault.c:995
 msgid "The folder could not be created"
 msgstr "Nepavyko sukurti aplanko"
 
-#: ../gtk/gtkfilechooserdefault.c:1006
-msgid ""
-"The folder could not be created, as a file with the same name already "
-"exists.  Try using a different name for the folder, or rename the file first."
-msgstr ""
-"Šio aplanko sukurti nepavyko, nes jau yra failas tokiu pat pavadinimu. "
-"Pabandykite naudoti kitą aplanko pavadinimą, arba pirma pervadinkite failą."
+#: ../gtk/gtkfilechooserdefault.c:1008
+msgid "The folder could not be created, as a file with the same name already exists.  Try using a different name for the folder, or rename the file first."
+msgstr "Šio aplanko sukurti nepavyko, nes jau yra failas tokiu pat pavadinimu. Pabandykite naudoti kitą aplanko pavadinimą, arba pirma pervadinkite failą."
 
-#: ../gtk/gtkfilechooserdefault.c:1020
+#: ../gtk/gtkfilechooserdefault.c:1022
 msgid "You need to choose a valid filename."
 msgstr "Reikia pasirinkti tinkamą failo pavadinimą."
 
-#: ../gtk/gtkfilechooserdefault.c:1023
+#: ../gtk/gtkfilechooserdefault.c:1025
 #, c-format
 msgid "Cannot create a file under %s as it is not a folder"
 msgstr "Nepavyko sukurti failo %s viduje, nes tai nėra aplankas"
 
-#: ../gtk/gtkfilechooserdefault.c:1035
-msgid ""
-"You may only select folders.  The item that you selected is not a folder; "
-"try using a different item."
-msgstr ""
-"Galite pasirinkti tik aplankus. Jūsų pasirinktas elementas nėra aplankas; "
-"pasirinkite kitą elementą."
+#: ../gtk/gtkfilechooserdefault.c:1037
+msgid "You may only select folders.  The item that you selected is not a folder; try using a different item."
+msgstr "Galite pasirinkti tik aplankus. Jūsų pasirinktas elementas nėra aplankas; pasirinkite kitą elementą."
 
-#: ../gtk/gtkfilechooserdefault.c:1045
+#: ../gtk/gtkfilechooserdefault.c:1047
 msgid "Invalid file name"
 msgstr "Netinkamas failo vardas"
 
-#: ../gtk/gtkfilechooserdefault.c:1055
+#: ../gtk/gtkfilechooserdefault.c:1057
 msgid "The folder contents could not be displayed"
 msgstr "Nepavyko parodyti aplanko turinio"
 
@@ -1107,230 +1146,242 @@ msgstr "Nepavyko parodyti aplanko turinio"
 #. * is a hostname. Nautilus and the panel contain the same string
 #. * to translate.
 #.
-#: ../gtk/gtkfilechooserdefault.c:1608
+#: ../gtk/gtkfilechooserdefault.c:1583
 #, c-format
 msgid "%1$s on %2$s"
 msgstr "%1$s kompiuteryje %2$s"
 
-#: ../gtk/gtkfilechooserdefault.c:1784
+#: ../gtk/gtkfilechooserdefault.c:1732
 msgid "Search"
 msgstr "Paieška"
 
-#: ../gtk/gtkfilechooserdefault.c:1808 ../gtk/gtkfilechooserdefault.c:9488
+#: ../gtk/gtkfilechooserdefault.c:1756
+#: ../gtk/gtkfilechooserdefault.c:4873
 msgid "Recently Used"
 msgstr "Vėliausiai naudotieji"
 
-#: ../gtk/gtkfilechooserdefault.c:2464
+#: ../gtk/gtkfilechooserdefault.c:2355
 msgid "Select which types of files are shown"
 msgstr "Pasirinkite kokių tipų failus rodyti"
 
-#: ../gtk/gtkfilechooserdefault.c:2823
+#: ../gtk/gtkfilechooserdefault.c:2714
 #, c-format
 msgid "Add the folder '%s' to the bookmarks"
 msgstr "Įdėti aplanką „%s“ į žymeles"
 
-#: ../gtk/gtkfilechooserdefault.c:2867
+#: ../gtk/gtkfilechooserdefault.c:2758
 #, c-format
 msgid "Add the current folder to the bookmarks"
 msgstr "Įdėti esamą aplanką į žymeles"
 
-#: ../gtk/gtkfilechooserdefault.c:2869
+#: ../gtk/gtkfilechooserdefault.c:2760
 #, c-format
 msgid "Add the selected folders to the bookmarks"
 msgstr "Įdėti pažymėtus aplankus į žymeles"
 
-#: ../gtk/gtkfilechooserdefault.c:2907
+#: ../gtk/gtkfilechooserdefault.c:2798
 #, c-format
 msgid "Remove the bookmark '%s'"
 msgstr "Pašalinti žymelę „%s“"
 
-#: ../gtk/gtkfilechooserdefault.c:2909
+#: ../gtk/gtkfilechooserdefault.c:2800
 #, c-format
 msgid "Bookmark '%s' cannot be removed"
 msgstr "Žymelė „%s“ negali būti pašalinta"
 
-#: ../gtk/gtkfilechooserdefault.c:2916 ../gtk/gtkfilechooserdefault.c:3801
+#: ../gtk/gtkfilechooserdefault.c:2807
+#: ../gtk/gtkfilechooserdefault.c:3692
 msgid "Remove the selected bookmark"
 msgstr "Pašalinti pažymėtas žymeles"
 
-#: ../gtk/gtkfilechooserdefault.c:3479
+#: ../gtk/gtkfilechooserdefault.c:3371
 msgid "Remove"
 msgstr "Pašalinti"
 
-#: ../gtk/gtkfilechooserdefault.c:3488
+#: ../gtk/gtkfilechooserdefault.c:3380
 msgid "Rename..."
 msgstr "Pervadinti…"
 
 #. Accessible object name for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3653
+#: ../gtk/gtkfilechooserdefault.c:3544
 msgid "Places"
 msgstr "Vietos"
 
 #. Column header for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3710
+#: ../gtk/gtkfilechooserdefault.c:3601
 msgid "_Places"
 msgstr "_Vietos"
 
-#: ../gtk/gtkfilechooserdefault.c:3789
+#: ../gtk/gtkfilechooserdefault.c:3680
 msgid "Add the selected folder to the Bookmarks"
 msgstr "Įdėti pažymėtą aplanką į žymeles"
 
-#: ../gtk/gtkfilechooserdefault.c:3936
+#: ../gtk/gtkfilechooserdefault.c:3827
 msgid "Could not select file"
 msgstr "Failo pasirinkti nepavyko"
 
-#: ../gtk/gtkfilechooserdefault.c:4109
+#: ../gtk/gtkfilechooserdefault.c:4000
 msgid "_Add to Bookmarks"
 msgstr "Į_dėti į žymeles"
 
-#: ../gtk/gtkfilechooserdefault.c:4122
+#: ../gtk/gtkfilechooserdefault.c:4013
 msgid "Show _Hidden Files"
 msgstr "Rod_yti paslėptus failus"
 
-#: ../gtk/gtkfilechooserdefault.c:4129
+#: ../gtk/gtkfilechooserdefault.c:4020
 msgid "Show _Size Column"
 msgstr "Rodydi _dydžio stulpelį"
 
-#: ../gtk/gtkfilechooserdefault.c:4354
+#: ../gtk/gtkfilechooserdefault.c:4245
 msgid "Files"
 msgstr "Failai"
 
-#: ../gtk/gtkfilechooserdefault.c:4405
+#: ../gtk/gtkfilechooserdefault.c:4296
 msgid "Name"
 msgstr "Pavadinimas"
 
-#: ../gtk/gtkfilechooserdefault.c:4428
+#: ../gtk/gtkfilechooserdefault.c:4319
 msgid "Size"
 msgstr "Dydis"
 
-#: ../gtk/gtkfilechooserdefault.c:4442
+#: ../gtk/gtkfilechooserdefault.c:4333
 msgid "Modified"
 msgstr "Pakeista"
 
 #. Label
-#: ../gtk/gtkfilechooserdefault.c:4697 ../gtk/gtkprinteroptionwidget.c:793
+#: ../gtk/gtkfilechooserdefault.c:4414
+#: ../gtk/gtkprinteroptionwidget.c:799
 msgid "_Name:"
 msgstr "_Pavadinimas:"
 
-#: ../gtk/gtkfilechooserdefault.c:4740
-msgid "_Browse for other folders"
-msgstr "_Naršyti kitų aplankų"
-
-#: ../gtk/gtkfilechooserdefault.c:5010
+#: ../gtk/gtkfilechooserdefault.c:4711
 msgid "Type a file name"
 msgstr "Įveskite failo pavadinimą"
 
+#: ../gtk/gtkfilechooserdefault.c:4758
+#: ../gtk/gtkfilechooserdefault.c:4769
+#| msgid "Select a folder"
+msgid "Please select a folder below"
+msgstr "Pasirinkite aplanką žemiau"
+
+#: ../gtk/gtkfilechooserdefault.c:4764
+#| msgid "Type a file name"
+msgid "Please type a file name"
+msgstr "Įveskite failo pavadinimą"
+
 #. Create Folder
-#: ../gtk/gtkfilechooserdefault.c:5053
+#: ../gtk/gtkfilechooserdefault.c:4835
 msgid "Create Fo_lder"
 msgstr "Sukurti ap_lanką"
 
-#: ../gtk/gtkfilechooserdefault.c:5063
+#: ../gtk/gtkfilechooserdefault.c:4883
+msgid "Search:"
+msgstr "Ieškoti:"
+
+#: ../gtk/gtkfilechooserdefault.c:4930
 msgid "_Location:"
 msgstr "Vi_eta:"
 
-#: ../gtk/gtkfilechooserdefault.c:5268
+#: ../gtk/gtkfilechooserdefault.c:5247
 msgid "Save in _folder:"
 msgstr "Išsaugoti _aplanke:"
 
-#: ../gtk/gtkfilechooserdefault.c:5270
+#: ../gtk/gtkfilechooserdefault.c:5249
 msgid "Create in _folder:"
 msgstr "Sukurti _aplanke:"
 
-#: ../gtk/gtkfilechooserdefault.c:6353
+#: ../gtk/gtkfilechooserdefault.c:6343
 #, c-format
 msgid "Could not read the contents of %s"
 msgstr "Nepavyko perskaityti %s turinio"
 
-#: ../gtk/gtkfilechooserdefault.c:6357
+#: ../gtk/gtkfilechooserdefault.c:6347
 msgid "Could not read the contents of the folder"
 msgstr "Nepavyko perskaityti aplanko turinio"
 
-#: ../gtk/gtkfilechooserdefault.c:6450 ../gtk/gtkfilechooserdefault.c:6518
-#: ../gtk/gtkfilechooserdefault.c:6663
+#: ../gtk/gtkfilechooserdefault.c:6440
+#: ../gtk/gtkfilechooserdefault.c:6508
+#: ../gtk/gtkfilechooserdefault.c:6660
 msgid "Unknown"
 msgstr "Nežinomas"
 
-#: ../gtk/gtkfilechooserdefault.c:6465
+#: ../gtk/gtkfilechooserdefault.c:6455
 msgid "%H:%M"
 msgstr "%H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:6467
+#: ../gtk/gtkfilechooserdefault.c:6457
 msgid "Yesterday at %H:%M"
 msgstr "Vakar %H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:7129
+#: ../gtk/gtkfilechooserdefault.c:7142
 msgid "Cannot change to folder because it is not local"
 msgstr "Negalima pakeisti į nurodytą aplanką, nes jis nėra vietinis"
 
-#: ../gtk/gtkfilechooserdefault.c:7726 ../gtk/gtkfilechooserdefault.c:7747
+#: ../gtk/gtkfilechooserdefault.c:7742
+#: ../gtk/gtkfilechooserdefault.c:7763
 #, c-format
 msgid "Shortcut %s already exists"
 msgstr "Nuoroda %s jau egzistuoja"
 
-#: ../gtk/gtkfilechooserdefault.c:7837
+#: ../gtk/gtkfilechooserdefault.c:7853
 #, c-format
 msgid "Shortcut %s does not exist"
 msgstr "Nuoroda %s neegzistuoja"
 
-#: ../gtk/gtkfilechooserdefault.c:8096 ../gtk/gtkprintunixdialog.c:480
+#: ../gtk/gtkfilechooserdefault.c:8099
+#: ../gtk/gtkprintunixdialog.c:550
 #, c-format
 msgid "A file named \"%s\" already exists.  Do you want to replace it?"
 msgstr "Failas pavadinimu „%s“ jau egzistuoja. Ar norite jį perrašyti?"
 
-#: ../gtk/gtkfilechooserdefault.c:8099 ../gtk/gtkprintunixdialog.c:484
+#: ../gtk/gtkfilechooserdefault.c:8102
+#: ../gtk/gtkprintunixdialog.c:554
 #, c-format
-msgid ""
-"The file already exists in \"%s\".  Replacing it will overwrite its contents."
-msgstr ""
-"Failas vietoje „%s“ jau egzistuoja. Pakeitus jį, jo turinys bus perrašytas."
+msgid "The file already exists in \"%s\".  Replacing it will overwrite its contents."
+msgstr "Failas vietoje „%s“ jau egzistuoja. Pakeitus jį, jo turinys bus perrašytas."
 
-#: ../gtk/gtkfilechooserdefault.c:8104 ../gtk/gtkprintunixdialog.c:491
+#: ../gtk/gtkfilechooserdefault.c:8107
+#: ../gtk/gtkprintunixdialog.c:561
 msgid "_Replace"
 msgstr "_Pakeisti"
 
-#: ../gtk/gtkfilechooserdefault.c:8830
+#: ../gtk/gtkfilechooserdefault.c:8912
 msgid "Could not start the search process"
 msgstr "Nepavyko paleisti paieškos proceso"
 
-#: ../gtk/gtkfilechooserdefault.c:8831
-msgid ""
-"The program was not able to create a connection to the indexer daemon.  "
-"Please make sure it is running."
-msgstr ""
-"Programai nepavyko sukurti ryšio su indeksavimo posisteme. Įsitikinkite, kad "
-"ji veikia."
+#: ../gtk/gtkfilechooserdefault.c:8913
+msgid "The program was not able to create a connection to the indexer daemon.  Please make sure it is running."
+msgstr "Programai nepavyko sukurti ryšio su indeksavimo posisteme. Įsitikinkite, kad ji veikia."
 
-#: ../gtk/gtkfilechooserdefault.c:8845
+#: ../gtk/gtkfilechooserdefault.c:8927
 msgid "Could not send the search request"
 msgstr "Nepavyko išsiųsti paieškos užklausos"
 
-#: ../gtk/gtkfilechooserdefault.c:9064
-msgid "Search:"
-msgstr "Ieškoti:"
-
-#: ../gtk/gtkfilechooserdefault.c:9672
+#: ../gtk/gtkfilechooserdefault.c:9719
 #, c-format
 msgid "Could not mount %s"
 msgstr "Nepavyko prijungti %s"
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry, when the user enters an invalid path.
-#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1179
+#: ../gtk/gtkfilechooserentry.c:702
+#: ../gtk/gtkfilechooserentry.c:1174
+#: ../gtk/gtkfilesystem.c:721
+#, c-format
 msgid "Invalid path"
 msgstr "Netinkamas kelias"
 
 #. translators: this text is shown when there are no completions
 #. * for something the user typed in a file chooser entry
 #.
-#: ../gtk/gtkfilechooserentry.c:1111
+#: ../gtk/gtkfilechooserentry.c:1106
 msgid "No match"
 msgstr "Atitikmenų nerasta"
 
 #. translators: this text is shown when there is exactly one completion
 #. * for something the user typed in a file chooser entry
 #.
-#: ../gtk/gtkfilechooserentry.c:1122
+#: ../gtk/gtkfilechooserentry.c:1117
 msgid "Sole completion"
 msgstr "Vienintelis atitikmuo"
 
@@ -1338,13 +1389,13 @@ msgstr "Vienintelis atitikmuo"
 #. * entry is a complete filename, but could be continued to find
 #. * a longer match
 #.
-#: ../gtk/gtkfilechooserentry.c:1138
+#: ../gtk/gtkfilechooserentry.c:1133
 msgid "Complete, but not unique"
 msgstr "Rastas atitikmuo nėra vienintelis"
 
 #. Translators: this text is shown while the system is searching
 #. * for possible completions for filenames in a file chooser entry.
-#: ../gtk/gtkfilechooserentry.c:1170
+#: ../gtk/gtkfilechooserentry.c:1165
 msgid "Completing..."
 msgstr "Ieškoma atitikmenų…"
 
@@ -1352,7 +1403,8 @@ msgstr "Ieškoma atitikmenų…"
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user enters something like
 #. * "sftp://blahblah" in an app that only supports local filenames.
-#: ../gtk/gtkfilechooserentry.c:1192 ../gtk/gtkfilechooserentry.c:1217
+#: ../gtk/gtkfilechooserentry.c:1187
+#: ../gtk/gtkfilechooserentry.c:1212
 msgid "Only local files may be selected"
 msgstr "Gali būti pasirinkti tik vietiniai failai"
 
@@ -1360,14 +1412,14 @@ msgstr "Gali būti pasirinkti tik vietiniai failai"
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user hasn't entered the first '/'
 #. * after a hostname and yet hits Tab (such as "sftp://blahblah[Tab]")
-#: ../gtk/gtkfilechooserentry.c:1201
+#: ../gtk/gtkfilechooserentry.c:1196
 msgid "Incomplete hostname; end it with '/'"
 msgstr "Pagrindinio kompiuterio vardas nepilnas; užbaikite jį „/“"
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry when the user enters a path that does not exist
 #. * and then hits Tab
-#: ../gtk/gtkfilechooserentry.c:1212
+#: ../gtk/gtkfilechooserentry.c:1207
 msgid "Path does not exist"
 msgstr "Tokio kelio nėra"
 
@@ -1380,77 +1432,57 @@ msgstr "Tokio kelio nėra"
 msgid "File System"
 msgstr "Failų sistema"
 
-#: ../gtk/gtkfontbutton.c:142 ../gtk/gtkfontbutton.c:266
+#: ../gtk/gtkfontbutton.c:153
+#: ../gtk/gtkfontbutton.c:277
 msgid "Pick a Font"
 msgstr "Pasirinkite šriftą"
 
 #. Initialize fields
-#: ../gtk/gtkfontbutton.c:260
+#: ../gtk/gtkfontbutton.c:271
 msgid "Sans 12"
 msgstr "Sans 12"
 
-#: ../gtk/gtkfontbutton.c:785
+#: ../gtk/gtkfontbutton.c:796
 msgid "Font"
 msgstr "Šriftas"
 
 #. This is the default text shown in the preview entry, though the user
 #. can set it. Remember that some fonts only have capital letters.
-#: ../gtk/gtkfontsel.c:100
+#: ../gtk/gtkfontsel.c:119
 msgid "abcdefghijk ABCDEFGHIJK"
 msgstr "aąbcčeęėfgh AĄBCČEĘĖFGH"
 
-#: ../gtk/gtkfontsel.c:366
+#: ../gtk/gtkfontsel.c:388
 msgid "_Family:"
 msgstr "Š_eima:"
 
-#: ../gtk/gtkfontsel.c:372
+#: ../gtk/gtkfontsel.c:395
 msgid "_Style:"
 msgstr "_Stilius:"
 
-#: ../gtk/gtkfontsel.c:378
+#: ../gtk/gtkfontsel.c:402
 msgid "Si_ze:"
 msgstr "D_ydis:"
 
 #. create the text entry widget
-#: ../gtk/gtkfontsel.c:554
+#: ../gtk/gtkfontsel.c:579
 msgid "_Preview:"
 msgstr "_Peržiūra:"
 
-#: ../gtk/gtkfontsel.c:1653
+#: ../gtk/gtkfontsel.c:1701
 msgid "Font Selection"
 msgstr "Šrifto pasirinkimas"
 
-#. Remove this icon source so we don't keep trying to
-#. * load it.
-#.
-#: ../gtk/gtkiconfactory.c:1358
-#, c-format
-msgid "Error loading icon: %s"
-msgstr "Įvyko klaida įkeliant piktogramą: %s"
-
-#: ../gtk/gtkicontheme.c:1336
-#, c-format
-msgid ""
-"Could not find the icon '%s'. The '%s' theme\n"
-"was not found either, perhaps you need to install it.\n"
-"You can get a copy from:\n"
-"\t%s"
-msgstr ""
-"Nepavyko rasti piktogramos „%s“. Tema „%s“ taip pat\n"
-"nebuvo rasta, galbūt Jums reikia ją įdiegti.\n"
-"Jūs galite gauti kopiją:\n"
-"\t%s"
-
-#: ../gtk/gtkicontheme.c:1518
+#: ../gtk/gtkicontheme.c:1605
 #, c-format
 msgid "Icon '%s' not present in theme"
 msgstr "Piktogramos „%s“ temoje nėra"
 
-#: ../gtk/gtkicontheme.c:3038
+#: ../gtk/gtkicontheme.c:3115
 msgid "Failed to load icon"
 msgstr "Nepavyko įkelti piktogramos"
 
-#: ../gtk/gtkimmodule.c:526
+#: ../gtk/gtkimmodule.c:525
 msgid "Simple"
 msgstr "Paprastasis"
 
@@ -1471,45 +1503,79 @@ msgid "System (%s)"
 msgstr "Sistema (%s)"
 
 #. Open Link
-#: ../gtk/gtklabel.c:6243
+#: ../gtk/gtklabel.c:6309
 msgid "_Open Link"
 msgstr "_Atverti nuorodą"
 
 #. Copy Link Address
-#: ../gtk/gtklabel.c:6255
+#: ../gtk/gtklabel.c:6321
 msgid "Copy _Link Address"
 msgstr "Kopijuoti _nuorodos adresą"
 
-#: ../gtk/gtklinkbutton.c:482
+#: ../gtk/gtklinkbutton.c:484
 msgid "Copy URL"
 msgstr "Kopijuoti URL"
 
-#: ../gtk/gtklinkbutton.c:645
+#: ../gtk/gtklinkbutton.c:647
 msgid "Invalid URI"
 msgstr "Netinkamas URI"
 
+#: ../gtk/gtklockbutton.c:288
+#| msgctxt "keyboard label"
+#| msgid "Num_Lock"
+msgid "Lock"
+msgstr "Užrakinti"
+
+#: ../gtk/gtklockbutton.c:297
+msgid "Unlock"
+msgstr "Atrakinti"
+
+#: ../gtk/gtklockbutton.c:306
+msgid ""
+"Dialog is unlocked.\n"
+"Click to prevent further changes"
+msgstr ""
+"Dialogas atrakintas.\n"
+"Spauskite tolesniems pakeitimams uždrausti"
+
+#: ../gtk/gtklockbutton.c:315
+msgid ""
+"Dialog is locked.\n"
+"Click to make changes"
+msgstr ""
+"Dialogas užrakintas.\n"
+"Spauskite pakeitimams atlikti"
+
+#: ../gtk/gtklockbutton.c:324
+msgid ""
+"System policy prevents changes.\n"
+"Contact your system administrator"
+msgstr ""
+"Sistemos politika neleidžia pakeitimų.\n"
+"Susisiekite su sistemos administratoriumi"
+
 #. Description of --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:563
+#: ../gtk/gtkmain.c:562
 msgid "Load additional GTK+ modules"
 msgstr "Įkelti papildomus GTK+ modulius"
 
 #. Placeholder in --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:564
+#: ../gtk/gtkmain.c:563
 msgid "MODULES"
 msgstr "MODULIAI"
 
 #. Description of --g-fatal-warnings in --help output
-#: ../gtk/gtkmain.c:566
+#: ../gtk/gtkmain.c:565
 msgid "Make all warnings fatal"
 msgstr "Visi perspėjimai yra „mirtini“"
 
 #. Description of --gtk-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:569
+#: ../gtk/gtkmain.c:568
 msgid "GTK+ debugging flags to set"
 msgstr "GTK+ derinimo parametrai, kuriuos naudoti"
 
 #. Description of --gtk-no-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:572
+#: ../gtk/gtkmain.c:571
 msgid "GTK+ debugging flags to unset"
 msgstr "GTK+ derinimo parametrai, kuriu nenaudoti"
 
@@ -1518,69 +1584,69 @@ msgstr "GTK+ derinimo parametrai, kuriu nenaudoti"
 #. * Do *not* translate it to "predefinito:LTR", if it
 #. * it isn't default:LTR or default:RTL it will not work
 #.
-#: ../gtk/gtkmain.c:846
+#: ../gtk/gtkmain.c:848
 msgid "default:LTR"
 msgstr "default:LTR"
 
-#: ../gtk/gtkmain.c:910
+#: ../gtk/gtkmain.c:914
 #, c-format
 msgid "Cannot open display: %s"
 msgstr "Nepavyko atverti displėjaus: „%s“"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "GTK+ Options"
 msgstr "GTK+ parinktys"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "Show GTK+ Options"
 msgstr "Rodyti GTK+ parinktis"
 
-#: ../gtk/gtkmountoperation.c:491
+#: ../gtk/gtkmountoperation.c:489
 msgid "Co_nnect"
 msgstr "Prisi_jungti"
 
-#: ../gtk/gtkmountoperation.c:558
+#: ../gtk/gtkmountoperation.c:559
 msgid "Connect _anonymously"
 msgstr "Jungtis _anonimiškai"
 
-#: ../gtk/gtkmountoperation.c:567
+#: ../gtk/gtkmountoperation.c:568
 msgid "Connect as u_ser:"
 msgstr "_Vartotojo vardas:"
 
-#: ../gtk/gtkmountoperation.c:605
+#: ../gtk/gtkmountoperation.c:602
 msgid "_Username:"
 msgstr "_Vartotojo vardas:"
 
-#: ../gtk/gtkmountoperation.c:610
+#: ../gtk/gtkmountoperation.c:607
 msgid "_Domain:"
 msgstr "S_ritis:"
 
-#: ../gtk/gtkmountoperation.c:616
+#: ../gtk/gtkmountoperation.c:613
 msgid "_Password:"
 msgstr "_Slaptažodis:"
 
-#: ../gtk/gtkmountoperation.c:634
+#: ../gtk/gtkmountoperation.c:631
 msgid "Forget password _immediately"
 msgstr "_Neįsiminti slaptažodžio"
 
-#: ../gtk/gtkmountoperation.c:644
+#: ../gtk/gtkmountoperation.c:641
 msgid "Remember password until you _logout"
 msgstr "Įsiminti slaptažodį iki _atsijungsite"
 
-#: ../gtk/gtkmountoperation.c:654
+#: ../gtk/gtkmountoperation.c:651
 msgid "Remember _forever"
 msgstr "Įsiminti _visam laikui"
 
-#: ../gtk/gtkmountoperation.c:883
+#: ../gtk/gtkmountoperation.c:880
 #, c-format
 msgid "Unknown Application (PID %d)"
 msgstr "Nežinoma programa (PID %d)"
 
-#: ../gtk/gtkmountoperation.c:1066
+#: ../gtk/gtkmountoperation.c:1063
 msgid "Unable to end process"
 msgstr "Nepavyko užbaigti proceso"
 
-#: ../gtk/gtkmountoperation.c:1103
+#: ../gtk/gtkmountoperation.c:1100
 msgid "_End Process"
 msgstr "_Užbaigti procesą"
 
@@ -1590,32 +1656,33 @@ msgid "Cannot kill process with PID %d. Operation is not implemented."
 msgstr "Nepavyko užbaigti (kill) proceso su PID %d. Operacija nerealizuota."
 
 #. translators: this string is a name for the 'less' command
-#: ../gtk/gtkmountoperation-x11.c:859
+#: ../gtk/gtkmountoperation-x11.c:959
 msgid "Terminal Pager"
 msgstr "Terminalo puslapiavimo programa"
 
-#: ../gtk/gtkmountoperation-x11.c:860
+#: ../gtk/gtkmountoperation-x11.c:960
 msgid "Top Command"
 msgstr "Viršutinė komanda"
 
-#: ../gtk/gtkmountoperation-x11.c:861
+#: ../gtk/gtkmountoperation-x11.c:961
 msgid "Bourne Again Shell"
 msgstr "Bourne Again aplinka"
 
-#: ../gtk/gtkmountoperation-x11.c:862
+#: ../gtk/gtkmountoperation-x11.c:962
 msgid "Bourne Shell"
 msgstr "Bourne aplinka"
 
-#: ../gtk/gtkmountoperation-x11.c:863
+#: ../gtk/gtkmountoperation-x11.c:963
 msgid "Z Shell"
 msgstr "Z aplinka"
 
-#: ../gtk/gtkmountoperation-x11.c:960
+#: ../gtk/gtkmountoperation-x11.c:1060
 #, c-format
 msgid "Cannot end process with PID %d: %s"
 msgstr "Nepavyko užbaigti proceso su PID %d: %s"
 
-#: ../gtk/gtknotebook.c:4822 ../gtk/gtknotebook.c:7471
+#: ../gtk/gtknotebook.c:4922
+#: ../gtk/gtknotebook.c:7611
 #, c-format
 msgid "Page %u"
 msgstr "%u puslapis"
@@ -1623,26 +1690,27 @@ msgstr "%u puslapis"
 #. Translators: the format here is used to build the string that will be rendered
 #. * in the number emblem.
 #.
-#: ../gtk/gtknumerableicon.c:481
+#: ../gtk/gtknumerableicon.c:482
 #, c-format
 msgctxt "Number format"
 msgid "%d"
 msgstr "%d"
 
-#: ../gtk/gtkpagesetup.c:648 ../gtk/gtkpapersize.c:849
+#: ../gtk/gtkpagesetup.c:648
+#: ../gtk/gtkpapersize.c:849
 #: ../gtk/gtkpapersize.c:889
 msgid "Not a valid page setup file"
 msgstr "Netinkamas puslapio sąrankos failas"
 
-#: ../gtk/gtkpagesetupunixdialog.c:177
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "Any Printer"
 msgstr "Bet kuris spausdintuvas"
 
-#: ../gtk/gtkpagesetupunixdialog.c:177
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "For portable documents"
 msgstr "Perkeliamiems dokumentams"
 
-#: ../gtk/gtkpagesetupunixdialog.c:807
+#: ../gtk/gtkpagesetupunixdialog.c:802
 #, c-format
 msgid ""
 "Margins:\n"
@@ -1657,35 +1725,38 @@ msgstr ""
 " Viršus: %s %s\n"
 " Apačia: %s %s"
 
-#: ../gtk/gtkpagesetupunixdialog.c:856 ../gtk/gtkprintunixdialog.c:3306
+#: ../gtk/gtkpagesetupunixdialog.c:851
+#: ../gtk/gtkprintunixdialog.c:3376
 msgid "Manage Custom Sizes..."
 msgstr "Tvarkyti pasirinktinius dydžius…"
 
-#: ../gtk/gtkpagesetupunixdialog.c:907
+#: ../gtk/gtkpagesetupunixdialog.c:902
 msgid "_Format for:"
 msgstr "_Formatas kam:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:929 ../gtk/gtkprintunixdialog.c:3478
+#: ../gtk/gtkpagesetupunixdialog.c:925
+#: ../gtk/gtkprintunixdialog.c:3556
 msgid "_Paper size:"
 msgstr "_Popieriaus dydis:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:960
+#: ../gtk/gtkpagesetupunixdialog.c:958
 msgid "_Orientation:"
 msgstr "_Orientacija:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:1024 ../gtk/gtkprintunixdialog.c:3540
+#: ../gtk/gtkpagesetupunixdialog.c:1023
+#: ../gtk/gtkprintunixdialog.c:3620
 msgid "Page Setup"
 msgstr "Puslapio sąranka"
 
-#: ../gtk/gtkpathbar.c:157
+#: ../gtk/gtkpathbar.c:156
 msgid "Up Path"
 msgstr "Aukštyn keliu"
 
-#: ../gtk/gtkpathbar.c:159
+#: ../gtk/gtkpathbar.c:158
 msgid "Down Path"
 msgstr "Žemyn keliu"
 
-#: ../gtk/gtkpathbar.c:1518
+#: ../gtk/gtkpathbar.c:1516
 msgid "File System Root"
 msgstr "Failų sistemos šakninis aplankas"
 
@@ -1693,15 +1764,15 @@ msgstr "Failų sistemos šakninis aplankas"
 msgid "Authentication"
 msgstr "Tapatybės patvirtinimas"
 
-#: ../gtk/gtkprinteroptionwidget.c:686
+#: ../gtk/gtkprinteroptionwidget.c:692
 msgid "Not available"
 msgstr "Neprieinama"
 
-#: ../gtk/gtkprinteroptionwidget.c:786
+#: ../gtk/gtkprinteroptionwidget.c:792
 msgid "Select a folder"
 msgstr "Pasirinkite aplanką"
 
-#: ../gtk/gtkprinteroptionwidget.c:805
+#: ../gtk/gtkprinteroptionwidget.c:812
 msgid "_Save in folder:"
 msgstr "Iš_saugoti aplanke:"
 
@@ -1764,7 +1835,8 @@ msgstr "Baigta su klaida"
 msgid "Preparing %d"
 msgstr "Ruošiamasi %d"
 
-#: ../gtk/gtkprintoperation.c:2345 ../gtk/gtkprintoperation.c:2975
+#: ../gtk/gtkprintoperation.c:2345
+#: ../gtk/gtkprintoperation.c:2975
 msgid "Preparing"
 msgstr "Ruošiamasi"
 
@@ -1785,7 +1857,8 @@ msgstr "Labiausiai tikėtina priežastis – nepavyko sukurti laikinojo failo."
 msgid "Error launching preview"
 msgstr "Klaida paleidžiant peržiūrą"
 
-#: ../gtk/gtkprintoperation-unix.c:477 ../gtk/gtkprintoperation-win32.c:1447
+#: ../gtk/gtkprintoperation-unix.c:477
+#: ../gtk/gtkprintoperation-win32.c:1447
 msgid "Application"
 msgstr "Programa"
 
@@ -1799,7 +1872,7 @@ msgstr "Nėra popieriaus"
 
 #. Translators: this is a printer status.
 #: ../gtk/gtkprintoperation-win32.c:615
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2002
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2022
 msgid "Paused"
 msgstr "Pauzė"
 
@@ -1819,11 +1892,13 @@ msgstr "Spausdintuvų nerasta"
 msgid "Invalid argument to CreateDC"
 msgstr "Netinkamas CreateDC argumentas"
 
-#: ../gtk/gtkprintoperation-win32.c:1602 ../gtk/gtkprintoperation-win32.c:1829
+#: ../gtk/gtkprintoperation-win32.c:1602
+#: ../gtk/gtkprintoperation-win32.c:1829
 msgid "Error from StartDoc"
 msgstr "Klaida iš StartDoc"
 
-#: ../gtk/gtkprintoperation-win32.c:1684 ../gtk/gtkprintoperation-win32.c:1707
+#: ../gtk/gtkprintoperation-win32.c:1684
+#: ../gtk/gtkprintoperation-win32.c:1707
 #: ../gtk/gtkprintoperation-win32.c:1755
 msgid "Not enough free memory"
 msgstr "Nepakanka laisvos atminties"
@@ -1844,49 +1919,49 @@ msgstr "Netinkamas PrintDlgEx valdiklis"
 msgid "Unspecified error"
 msgstr "Nenurodyta klaida"
 
-#: ../gtk/gtkprintunixdialog.c:618
+#: ../gtk/gtkprintunixdialog.c:688
 msgid "Getting printer information failed"
 msgstr "Nepavyko perskaityti spausdintuvo informacijos"
 
-#: ../gtk/gtkprintunixdialog.c:1873
+#: ../gtk/gtkprintunixdialog.c:1942
 msgid "Getting printer information..."
 msgstr "Skaitoma spausdintuvo informacija…"
 
-#: ../gtk/gtkprintunixdialog.c:2147
+#: ../gtk/gtkprintunixdialog.c:2216
 msgid "Printer"
 msgstr "Spausdintuvas"
 
 #. Translators: this is the header for the location column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2157
+#: ../gtk/gtkprintunixdialog.c:2226
 msgid "Location"
 msgstr "Vieta"
 
 #. Translators: this is the header for the printer status column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2168
+#: ../gtk/gtkprintunixdialog.c:2237
 msgid "Status"
 msgstr "Būsena"
 
-#: ../gtk/gtkprintunixdialog.c:2194
+#: ../gtk/gtkprintunixdialog.c:2263
 msgid "Range"
 msgstr "Intervalas"
 
-#: ../gtk/gtkprintunixdialog.c:2198
+#: ../gtk/gtkprintunixdialog.c:2267
 msgid "_All Pages"
 msgstr "_Visus puslapius"
 
-#: ../gtk/gtkprintunixdialog.c:2205
+#: ../gtk/gtkprintunixdialog.c:2274
 msgid "C_urrent Page"
 msgstr "Šį _puslapį"
 
-#: ../gtk/gtkprintunixdialog.c:2215
+#: ../gtk/gtkprintunixdialog.c:2284
 msgid "Se_lection"
 msgstr "Pa_sirinkimas"
 
-#: ../gtk/gtkprintunixdialog.c:2224
+#: ../gtk/gtkprintunixdialog.c:2293
 msgid "Pag_es:"
 msgstr "_Puslapiai:"
 
-#: ../gtk/gtkprintunixdialog.c:2225
+#: ../gtk/gtkprintunixdialog.c:2294
 msgid ""
 "Specify one or more page ranges,\n"
 " e.g. 1-3,7,11"
@@ -1894,28 +1969,28 @@ msgstr ""
 "Nurodykite vieną ar kelis puslapių intervalus,\n"
 " pvz., 1-3,7,11"
 
-#: ../gtk/gtkprintunixdialog.c:2235
+#: ../gtk/gtkprintunixdialog.c:2304
 msgid "Pages"
 msgstr "Puslapiai:"
 
-#: ../gtk/gtkprintunixdialog.c:2248
+#: ../gtk/gtkprintunixdialog.c:2317
 msgid "Copies"
 msgstr "Kopijos"
 
 #. FIXME chpe: too much space between Copies and spinbutton, put those 2 in a hbox and make it span 2 columns
-#: ../gtk/gtkprintunixdialog.c:2253
+#: ../gtk/gtkprintunixdialog.c:2322
 msgid "Copie_s:"
 msgstr "Kopijo_s:"
 
-#: ../gtk/gtkprintunixdialog.c:2271
+#: ../gtk/gtkprintunixdialog.c:2341
 msgid "C_ollate"
 msgstr "Su_dėstyti"
 
-#: ../gtk/gtkprintunixdialog.c:2279
+#: ../gtk/gtkprintunixdialog.c:2349
 msgid "_Reverse"
 msgstr "_Atvirkščiai"
 
-#: ../gtk/gtkprintunixdialog.c:2299
+#: ../gtk/gtkprintunixdialog.c:2369
 msgid "General"
 msgstr "Bendra"
 
@@ -1925,168 +2000,169 @@ msgstr "Bendra"
 #. Translators: These strings name the possible arrangements of
 #. * multiple pages on a sheet when printing
 #.
-#: ../gtk/gtkprintunixdialog.c:3039
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3535
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, top to bottom"
 msgstr "Iš kairės dešinėn, iš viršaus žemyn"
 
-#: ../gtk/gtkprintunixdialog.c:3039
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3535
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, bottom to top"
 msgstr "Iš kairės dešinėn, iš apačios į viršų"
 
-#: ../gtk/gtkprintunixdialog.c:3040
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3536
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, top to bottom"
 msgstr "Iš dešinės kairėn, iš viršaus žemyn"
 
-#: ../gtk/gtkprintunixdialog.c:3040
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3536
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, bottom to top"
 msgstr "Iš dešinės kairėn, iš apačios į viršų"
 
-#: ../gtk/gtkprintunixdialog.c:3041
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3537
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, left to right"
 msgstr "Iš viršaus žemyn, iš kairės dešinėn"
 
-#: ../gtk/gtkprintunixdialog.c:3041
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3537
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, right to left"
 msgstr "Iš viršaus žemyn, iš dešinės kairėn"
 
-#: ../gtk/gtkprintunixdialog.c:3042
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, left to right"
 msgstr "Iš apačios į viršų, iš kairės dešinėn"
 
-#: ../gtk/gtkprintunixdialog.c:3042
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, right to left"
 msgstr "Iš apačios į viršų, iš dešinės kairėn"
 
 #. Translators, this string is used to label the option in the print
 #. * dialog that controls in what order multiple pages are arranged
 #.
-#: ../gtk/gtkprintunixdialog.c:3046 ../gtk/gtkprintunixdialog.c:3059
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3570
+#: ../gtk/gtkprintunixdialog.c:3116
+#: ../gtk/gtkprintunixdialog.c:3129
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3609
 msgid "Page Ordering"
 msgstr "Puslapių tvarka"
 
-#: ../gtk/gtkprintunixdialog.c:3075
+#: ../gtk/gtkprintunixdialog.c:3145
 msgid "Left to right"
 msgstr "Iš kairės į dešinę"
 
-#: ../gtk/gtkprintunixdialog.c:3076
+#: ../gtk/gtkprintunixdialog.c:3146
 msgid "Right to left"
 msgstr "Iš dešinės į kairę"
 
-#: ../gtk/gtkprintunixdialog.c:3088
+#: ../gtk/gtkprintunixdialog.c:3158
 msgid "Top to bottom"
 msgstr "Iš viršaus žemyn"
 
-#: ../gtk/gtkprintunixdialog.c:3089
+#: ../gtk/gtkprintunixdialog.c:3159
 msgid "Bottom to top"
 msgstr "Iš apačios į viršų"
 
-#: ../gtk/gtkprintunixdialog.c:3329
+#: ../gtk/gtkprintunixdialog.c:3399
 msgid "Layout"
 msgstr "Išdėstymas"
 
-#: ../gtk/gtkprintunixdialog.c:3333
+#: ../gtk/gtkprintunixdialog.c:3403
 msgid "T_wo-sided:"
 msgstr "D_vipusis:"
 
-#: ../gtk/gtkprintunixdialog.c:3348
+#: ../gtk/gtkprintunixdialog.c:3419
 msgid "Pages per _side:"
 msgstr "Puslapių vienoje pu_sėje:"
 
-#: ../gtk/gtkprintunixdialog.c:3365
+#: ../gtk/gtkprintunixdialog.c:3437
 msgid "Page or_dering:"
 msgstr "Puslapių _tvarka:"
 
-#: ../gtk/gtkprintunixdialog.c:3381
+#: ../gtk/gtkprintunixdialog.c:3454
 msgid "_Only print:"
 msgstr "Spa_usdinti tik:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3396
+#: ../gtk/gtkprintunixdialog.c:3470
 msgid "All sheets"
 msgstr "Visus puslapius"
 
-#: ../gtk/gtkprintunixdialog.c:3397
+#: ../gtk/gtkprintunixdialog.c:3471
 msgid "Even sheets"
 msgstr "Lyginius puslapius"
 
-#: ../gtk/gtkprintunixdialog.c:3398
+#: ../gtk/gtkprintunixdialog.c:3472
 msgid "Odd sheets"
 msgstr "Nelyginius puslapius"
 
-#: ../gtk/gtkprintunixdialog.c:3401
+#: ../gtk/gtkprintunixdialog.c:3475
 msgid "Sc_ale:"
 msgstr "_Mastelis:"
 
-#: ../gtk/gtkprintunixdialog.c:3428
+#: ../gtk/gtkprintunixdialog.c:3503
 msgid "Paper"
 msgstr "Popierius"
 
-#: ../gtk/gtkprintunixdialog.c:3432
+#: ../gtk/gtkprintunixdialog.c:3507
 msgid "Paper _type:"
 msgstr "Popieriaus _tipas:"
 
-#: ../gtk/gtkprintunixdialog.c:3447
+#: ../gtk/gtkprintunixdialog.c:3523
 msgid "Paper _source:"
 msgstr "Popieriau_s šaltinis:"
 
-#: ../gtk/gtkprintunixdialog.c:3462
+#: ../gtk/gtkprintunixdialog.c:3539
 msgid "Output t_ray:"
 msgstr "Išvėsties _dėklas:"
 
-#: ../gtk/gtkprintunixdialog.c:3502
+#: ../gtk/gtkprintunixdialog.c:3581
 msgid "Or_ientation:"
 msgstr "Or_ientacija:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3517
+#: ../gtk/gtkprintunixdialog.c:3597
 msgid "Portrait"
 msgstr "Stačiai"
 
-#: ../gtk/gtkprintunixdialog.c:3518
+#: ../gtk/gtkprintunixdialog.c:3598
 msgid "Landscape"
 msgstr "Gulsčiai"
 
-#: ../gtk/gtkprintunixdialog.c:3519
+#: ../gtk/gtkprintunixdialog.c:3599
 msgid "Reverse portrait"
 msgstr "Apverstai stačiai"
 
-#: ../gtk/gtkprintunixdialog.c:3520
+#: ../gtk/gtkprintunixdialog.c:3600
 msgid "Reverse landscape"
 msgstr "Apverstai gulsčiai"
 
-#: ../gtk/gtkprintunixdialog.c:3565
+#: ../gtk/gtkprintunixdialog.c:3645
 msgid "Job Details"
 msgstr "Užduoties informacija"
 
-#: ../gtk/gtkprintunixdialog.c:3571
+#: ../gtk/gtkprintunixdialog.c:3651
 msgid "Pri_ority:"
 msgstr "Pri_oritetas:"
 
-#: ../gtk/gtkprintunixdialog.c:3586
+#: ../gtk/gtkprintunixdialog.c:3667
 msgid "_Billing info:"
 msgstr "_Našumo informacija:"
 
-#: ../gtk/gtkprintunixdialog.c:3604
+#: ../gtk/gtkprintunixdialog.c:3686
 msgid "Print Document"
 msgstr "Spausdinti dokumentą"
 
 #. Translators: this is one of the choices for the print at option
 #. * in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3613
+#: ../gtk/gtkprintunixdialog.c:3695
 msgid "_Now"
 msgstr "_Dabar"
 
-#: ../gtk/gtkprintunixdialog.c:3624
+#: ../gtk/gtkprintunixdialog.c:3706
 msgid "A_t:"
 msgstr "_Laiku:"
 
@@ -2094,7 +2170,7 @@ msgstr "_Laiku:"
 #. * You can remove the am/pm values below for your locale if they are not
 #. * supported.
 #.
-#: ../gtk/gtkprintunixdialog.c:3630
+#: ../gtk/gtkprintunixdialog.c:3712
 msgid ""
 "Specify the time of print,\n"
 " e.g. 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"
@@ -2102,116 +2178,106 @@ msgstr ""
 "Nurodykite spausdinimo laiką,\n"
 "  pvz., 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"
 
-#: ../gtk/gtkprintunixdialog.c:3640
+#: ../gtk/gtkprintunixdialog.c:3722
 msgid "Time of print"
 msgstr "Spausdinimo laikas"
 
-#: ../gtk/gtkprintunixdialog.c:3656
+#: ../gtk/gtkprintunixdialog.c:3738
 msgid "On _hold"
 msgstr "Susta_bdyta"
 
-#: ../gtk/gtkprintunixdialog.c:3657
+#: ../gtk/gtkprintunixdialog.c:3739
 msgid "Hold the job until it is explicitly released"
 msgstr "Sulaikyti užduotį tol, kol ji bus betarpiškai išleista"
 
-#: ../gtk/gtkprintunixdialog.c:3677
+#: ../gtk/gtkprintunixdialog.c:3759
 msgid "Add Cover Page"
 msgstr "Pridėti titulinį puslapį"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3686
+#: ../gtk/gtkprintunixdialog.c:3768
 msgid "Be_fore:"
 msgstr "P_rieš:"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3704
+#: ../gtk/gtkprintunixdialog.c:3787
 msgid "_After:"
 msgstr "_Po:"
 
 #. Translators: this is the tab label for the notebook tab containing
 #. * job-specific options in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3722
+#: ../gtk/gtkprintunixdialog.c:3806
 msgid "Job"
 msgstr "Užduotis"
 
-#: ../gtk/gtkprintunixdialog.c:3788
+#: ../gtk/gtkprintunixdialog.c:3872
 msgid "Advanced"
 msgstr "Išsamiau"
 
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3826
+#: ../gtk/gtkprintunixdialog.c:3910
 msgid "Image Quality"
 msgstr "Paveikslėlių kokybė"
 
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3830
+#: ../gtk/gtkprintunixdialog.c:3914
 msgid "Color"
 msgstr "Spalva"
 
 #. Translators: this will appear as tab label in print dialog.
 #. It's a typographical term, as in "Binding and finishing"
-#: ../gtk/gtkprintunixdialog.c:3835
+#: ../gtk/gtkprintunixdialog.c:3919
 msgid "Finishing"
 msgstr "Baigiama"
 
-#: ../gtk/gtkprintunixdialog.c:3845
+#: ../gtk/gtkprintunixdialog.c:3929
 msgid "Some of the settings in the dialog conflict"
 msgstr "Kai kurie nustatymai lange konfliktuoja"
 
-#: ../gtk/gtkprintunixdialog.c:3868
+#: ../gtk/gtkprintunixdialog.c:3952
 msgid "Print"
 msgstr "Spausdinti"
 
-#: ../gtk/gtkrc.c:948
-#, c-format
-msgid "Unable to locate image file in pixmap_path: \"%s\""
-msgstr "Nepavyko rasti paveikslėlio failo pixmap_path: „%s“"
-
-#: ../gtk/gtkrecentaction.c:165 ../gtk/gtkrecentaction.c:173
-#: ../gtk/gtkrecentchoosermenu.c:608 ../gtk/gtkrecentchoosermenu.c:616
-#, c-format
-msgid "This function is not implemented for widgets of class '%s'"
-msgstr "Ši funkcija nerealizuota „%s“ klasės valdymo elementams"
-
-#: ../gtk/gtkrecentchooserdefault.c:483
+#: ../gtk/gtkrecentchooserdefault.c:485
 msgid "Select which type of documents are shown"
 msgstr "Pasirinkite kokių tipų dokumentai rodomi"
 
-#: ../gtk/gtkrecentchooserdefault.c:1137 ../gtk/gtkrecentchooserdefault.c:1174
+#: ../gtk/gtkrecentchooserdefault.c:1142
+#: ../gtk/gtkrecentchooserdefault.c:1179
 #, c-format
 msgid "No item for URI '%s' found"
 msgstr "Elementų URI „%s“ nerasta"
 
-#: ../gtk/gtkrecentchooserdefault.c:1301
+#: ../gtk/gtkrecentchooserdefault.c:1306
 msgid "Untitled filter"
 msgstr "Nepavadintas filtras"
 
-#: ../gtk/gtkrecentchooserdefault.c:1654
+#: ../gtk/gtkrecentchooserdefault.c:1659
 msgid "Could not remove item"
 msgstr "Nepavyko pašalinti elemento"
 
-#: ../gtk/gtkrecentchooserdefault.c:1698
+#: ../gtk/gtkrecentchooserdefault.c:1703
 msgid "Could not clear list"
 msgstr "Nepavyko išvalyti sąrašo"
 
-#: ../gtk/gtkrecentchooserdefault.c:1782
+#: ../gtk/gtkrecentchooserdefault.c:1787
 msgid "Copy _Location"
 msgstr "Kopijuoti _vietą"
 
-#: ../gtk/gtkrecentchooserdefault.c:1795
+#: ../gtk/gtkrecentchooserdefault.c:1800
 msgid "_Remove From List"
 msgstr "_Pašalinti iš sąrašo"
 
-#: ../gtk/gtkrecentchooserdefault.c:1804
+#: ../gtk/gtkrecentchooserdefault.c:1809
 msgid "_Clear List"
 msgstr "Iš_valyti sąrašą"
 
-#: ../gtk/gtkrecentchooserdefault.c:1818
+#: ../gtk/gtkrecentchooserdefault.c:1823
 msgid "Show _Private Resources"
 msgstr "Rodyti _asmeninius resursus"
 
@@ -2229,7 +2295,8 @@ msgstr "Rodyti _asmeninius resursus"
 msgid "No items found"
 msgstr "Elementų nerasta"
 
-#: ../gtk/gtkrecentchoosermenu.c:528 ../gtk/gtkrecentchoosermenu.c:584
+#: ../gtk/gtkrecentchoosermenu.c:528
+#: ../gtk/gtkrecentchoosermenu.c:584
 #, c-format
 msgid "No recently used resource found with URI `%s'"
 msgstr "Nerasta neseniai naudoto resurso su URI „%s“"
@@ -2263,28 +2330,22 @@ msgctxt "recent menu label"
 msgid "%d. %s"
 msgstr "%d. %s"
 
-#: ../gtk/gtkrecentmanager.c:1000 ../gtk/gtkrecentmanager.c:1013
-#: ../gtk/gtkrecentmanager.c:1150 ../gtk/gtkrecentmanager.c:1160
-#: ../gtk/gtkrecentmanager.c:1212 ../gtk/gtkrecentmanager.c:1221
-#: ../gtk/gtkrecentmanager.c:1236
+#: ../gtk/gtkrecentmanager.c:1006
+#: ../gtk/gtkrecentmanager.c:1019
+#: ../gtk/gtkrecentmanager.c:1156
+#: ../gtk/gtkrecentmanager.c:1166
+#: ../gtk/gtkrecentmanager.c:1218
+#: ../gtk/gtkrecentmanager.c:1227
+#: ../gtk/gtkrecentmanager.c:1242
 #, c-format
 msgid "Unable to find an item with URI '%s'"
 msgstr "Nepavyko rasti elemento su URI „%s“"
 
-#: ../gtk/gtkrecentmanager.c:2436
+#: ../gtk/gtkrecentmanager.c:2442
 #, c-format
 msgid "No registered application with name '%s' for item with URI '%s' found"
 msgstr "Nerasta registruota programa pavadinimu „%s“ elementui su URI „%s“"
 
-#: ../gtk/gtkspinner.c:287
-msgctxt "throbbing progress animation widget"
-msgid "Spinner"
-msgstr "Suktukas"
-
-#: ../gtk/gtkspinner.c:288
-msgid "Provides visual indication of progress"
-msgstr "Vizualiai parodo vykdomo veiksmo progresą"
-
 #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
 #: ../gtk/gtkstock.c:313
 msgctxt "Stock label"
@@ -2793,7 +2854,9 @@ msgstr "Su_mažinti"
 #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
 #. * the state
 #.
-#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:397 ../gtk/gtkswitch.c:601
+#: ../gtk/gtkswitch.c:336
+#: ../gtk/gtkswitch.c:396
+#: ../gtk/gtkswitch.c:603
 msgctxt "switch"
 msgid "ON"
 msgstr "Įjungta"
@@ -2801,20 +2864,13 @@ msgstr "Įjungta"
 #. Translators: if the "off" state label requires more than three
 #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
 #.
-#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:398 ../gtk/gtkswitch.c:615
+#: ../gtk/gtkswitch.c:344
+#: ../gtk/gtkswitch.c:397
+#: ../gtk/gtkswitch.c:632
 msgctxt "switch"
 msgid "OFF"
 msgstr "Išjungta"
 
-#: ../gtk/gtkswitch.c:1038
-msgctxt "light switch widget"
-msgid "Switch"
-msgstr "Jungiklis"
-
-#: ../gtk/gtkswitch.c:1039
-msgid "Switches between on and off states"
-msgstr "Perjungia tarp įjungimo ir išjungimo būsenų"
-
 #: ../gtk/gtktextbufferrichtext.c:651
 #, c-format
 msgid "Unknown error when trying to deserialize %s"
@@ -2825,12 +2881,14 @@ msgstr "Nežinoma klaida bandant nuoseklinti %s"
 msgid "No deserialize function found for format %s"
 msgstr "Formatui %s nuoseklinimo funkcija nerasta"
 
-#: ../gtk/gtktextbufferserialize.c:800 ../gtk/gtktextbufferserialize.c:826
+#: ../gtk/gtktextbufferserialize.c:800
+#: ../gtk/gtktextbufferserialize.c:826
 #, c-format
 msgid "Both \"id\" and \"name\" were found on the <%s> element"
 msgstr "Elemente <%s> buvo rasta ir „id“ ir „name“"
 
-#: ../gtk/gtktextbufferserialize.c:810 ../gtk/gtktextbufferserialize.c:836
+#: ../gtk/gtktextbufferserialize.c:810
+#: ../gtk/gtktextbufferserialize.c:836
 #, c-format
 msgid "The attribute \"%s\" was found twice on the <%s> element"
 msgstr "Požymis „%s“ elemente <%s> buvo rastas du kartus"
@@ -2850,7 +2908,8 @@ msgstr "<%s> elementas neturi nei „name“, nei „id“ požymio"
 msgid "Attribute \"%s\" repeated twice on the same <%s> element"
 msgstr "Požymis „%s“ pakartotas du kartus tame pačiame elemente <%s>"
 
-#: ../gtk/gtktextbufferserialize.c:967 ../gtk/gtktextbufferserialize.c:992
+#: ../gtk/gtktextbufferserialize.c:967
+#: ../gtk/gtktextbufferserialize.c:992
 #, c-format
 msgid "Attribute \"%s\" is invalid on <%s> element in this context"
 msgstr "Požymis „%s“ šiame kontekste netinkamas elementui <%s>"
@@ -2869,8 +2928,10 @@ msgstr "Rasta anoniminė žyma ir žymos negali būti sukurtos."
 msgid "Tag \"%s\" does not exist in buffer and tags can not be created."
 msgstr "Žymos „%s“ buferyje nėra ir žymos negali būti sukurtos."
 
-#: ../gtk/gtktextbufferserialize.c:1153 ../gtk/gtktextbufferserialize.c:1228
-#: ../gtk/gtktextbufferserialize.c:1333 ../gtk/gtktextbufferserialize.c:1407
+#: ../gtk/gtktextbufferserialize.c:1153
+#: ../gtk/gtktextbufferserialize.c:1228
+#: ../gtk/gtktextbufferserialize.c:1333
+#: ../gtk/gtktextbufferserialize.c:1407
 #, c-format
 msgid "Element <%s> is not allowed below <%s>"
 msgstr "Elementas <%s> neleistinas žemiau <%s>"
@@ -2887,8 +2948,7 @@ msgstr "„%s“ nėra tinkamas požymio pavadinimas"
 
 #: ../gtk/gtktextbufferserialize.c:1202
 #, c-format
-msgid ""
-"\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\""
+msgid "\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\""
 msgstr "„%s“ nepavyko konvertuoti į „%s“ tipo reikšmę požymiui „%s“"
 
 #: ../gtk/gtktextbufferserialize.c:1211
@@ -2911,7 +2971,8 @@ msgstr "Žymos „%s“ netinkamas prioritetas „%s“"
 msgid "Outermost element in text must be <text_view_markup> not <%s>"
 msgstr "Išorinis elementas tekste turi būti <text_view_markup>, o ne <%s>"
 
-#: ../gtk/gtktextbufferserialize.c:1371 ../gtk/gtktextbufferserialize.c:1387
+#: ../gtk/gtktextbufferserialize.c:1371
+#: ../gtk/gtktextbufferserialize.c:1387
 #, c-format
 msgid "A <%s> element has already been specified"
 msgstr "Elementas <%s> jau buvo nurodytas"
@@ -2925,11 +2986,8 @@ msgid "Serialized data is malformed"
 msgstr "Nuoseklinti duomenys yra netinkamai suformuoti"
 
 #: ../gtk/gtktextbufferserialize.c:1871
-msgid ""
-"Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001"
-msgstr ""
-"Nuoseklinti duomenys yra netinkamai suformuoti. Pirmas skyrius nėra "
-"GTKTEXTBUFFERCONTENTS-0001"
+msgid "Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001"
+msgstr "Nuoseklinti duomenys yra netinkamai suformuoti. Pirmas skyrius nėra GTKTEXTBUFFERCONTENTS-0001"
 
 #: ../gtk/gtktextutil.c:60
 msgid "LRM _Left-to-right mark"
@@ -2971,17 +3029,17 @@ msgstr "ZWJ Nulinio pločio _jungtis"
 msgid "ZWNJ Zero width _non-joiner"
 msgstr "ZWNJ Nulinio pločio _ne-jungtis"
 
-#: ../gtk/gtkuimanager.c:1506
+#: ../gtk/gtkuimanager.c:1760
 #, c-format
 msgid "Unexpected start tag '%s' on line %d char %d"
 msgstr "Netinkama pradžios žymė „%s“ eilutės %d stulpelyje %d"
 
-#: ../gtk/gtkuimanager.c:1596
+#: ../gtk/gtkuimanager.c:1850
 #, c-format
 msgid "Unexpected character data on line %d char %d"
 msgstr "Neleistini simboliniai duomenys eilutės %d stulpelyje %d"
 
-#: ../gtk/gtkuimanager.c:2428
+#: ../gtk/gtkuimanager.c:2682
 msgid "Empty"
 msgstr "Tuščias"
 
@@ -2997,7 +3055,8 @@ msgstr "Tylina arba garsina"
 msgid "Adjusts the volume"
 msgstr "Keičia garsumą"
 
-#: ../gtk/gtkvolumebutton.c:181 ../gtk/gtkvolumebutton.c:184
+#: ../gtk/gtkvolumebutton.c:181
+#: ../gtk/gtkvolumebutton.c:184
 msgid "Volume Down"
 msgstr "Patylinti"
 
@@ -3005,7 +3064,8 @@ msgstr "Patylinti"
 msgid "Decreases the volume"
 msgstr "Patylina"
 
-#: ../gtk/gtkvolumebutton.c:187 ../gtk/gtkvolumebutton.c:190
+#: ../gtk/gtkvolumebutton.c:187
+#: ../gtk/gtkvolumebutton.c:190
 msgid "Volume Up"
 msgstr "Pagarsinti"
 
@@ -3487,7 +3547,8 @@ msgctxt "paper size"
 msgid "10x14"
 msgstr "10x14"
 
-#: ../gtk/paper_names_offsets.c:95 ../gtk/paper_names_offsets.c:96
+#: ../gtk/paper_names_offsets.c:95
+#: ../gtk/paper_names_offsets.c:96
 msgctxt "paper size"
 msgid "10x15"
 msgstr "10x15"
@@ -3852,11 +3913,6 @@ msgctxt "paper size"
 msgid "ROC 8k"
 msgstr "ROC 8k"
 
-#: ../gtk/updateiconcache.c:492 ../gtk/updateiconcache.c:552
-#, c-format
-msgid "different idatas found for symlinked '%s' and '%s'\n"
-msgstr "simboliškai susietiem „%s“ ir „%s“ rasti skirtingi i-duomenys\n"
-
 #: ../gtk/updateiconcache.c:1370
 #, c-format
 msgid "Failed to write header\n"
@@ -3882,7 +3938,8 @@ msgstr "Nepavyko perrašyti antraštės\n"
 msgid "Failed to open file %s : %s\n"
 msgstr "Nepavyko atverti failo „%s“: %s\n"
 
-#: ../gtk/updateiconcache.c:1492 ../gtk/updateiconcache.c:1522
+#: ../gtk/updateiconcache.c:1492
+#: ../gtk/updateiconcache.c:1522
 #, c-format
 msgid "Failed to write cache file: %s\n"
 msgstr "Nepavyko įrašyti podėlio failo: %s\n"
@@ -3958,8 +4015,7 @@ msgid ""
 "If you really want to create an icon cache here, use --ignore-theme-index.\n"
 msgstr ""
 "„%s“ nėra temos indekso failo.\n"
-"Jei tikrai čia norite sukurti piktogramos podėlį, naudokite --ignore-theme-"
-"index.\n"
+"Jei tikrai čia norite sukurti piktogramos podėlį, naudokite --ignore-theme-index.\n"
 
 #. ID
 #: ../modules/input/imam-et.c:454
@@ -4016,257 +4072,254 @@ msgstr "Vietnamiečių (VIQR)"
 msgid "X Input Method"
 msgstr "X įvesties metodas"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:814
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1024
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:828
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1038
 msgid "Username:"
 msgstr "Vartotojo vardas:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:815
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1033
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:829
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1047
 msgid "Password:"
 msgstr "Slaptažodis:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:854
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1046
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1060
 #, c-format
 msgid "Authentication is required to print document '%s' on printer %s"
-msgstr ""
-"Norint dokumentą „%s“ spausdinti spausdintuvu %s, reikia patvirtinti tapatybę"
+msgstr "Norint dokumentą „%s“ spausdinti spausdintuvu %s, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:856
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:870
 #, c-format
 msgid "Authentication is required to print a document on %s"
-msgstr ""
-"Norint dokumentą spausdinti spausdintuvu %s, reikia patvirtinti tapatybę"
+msgstr "Norint dokumentą spausdinti spausdintuvu %s, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:860
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
 #, c-format
 msgid "Authentication is required to get attributes of job '%s'"
 msgstr "Norint gauti užduoties %s požymius, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:862
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:876
 msgid "Authentication is required to get attributes of a job"
 msgstr "Norint gauti užduoties požymius, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:866
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:880
 #, c-format
 msgid "Authentication is required to get attributes of printer %s"
 msgstr "Norint gauti spausdintuvo %s požymius, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:882
 msgid "Authentication is required to get attributes of a printer"
 msgstr "Norint gauti spausdintuvo požymius, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:871
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:885
 #, c-format
 msgid "Authentication is required to get default printer of %s"
 msgstr "Norint gauti numatytąjį %s spausdintuvą, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:888
 #, c-format
 msgid "Authentication is required to get printers from %s"
 msgstr "Norint gauti spausdintuvus iš %s, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:879
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:893
 #, c-format
 msgid "Authentication is required to get a file from %s"
 msgstr "Norint gauti failą iš %s, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:881
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:895
 #, c-format
 msgid "Authentication is required on %s"
 msgstr "%s reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1018
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1032
 msgid "Domain:"
 msgstr "Sritis:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1048
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1062
 #, c-format
 msgid "Authentication is required to print document '%s'"
 msgstr "Norint išspausdinti dokumentą „%s“, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1053
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1067
 #, c-format
 msgid "Authentication is required to print this document on printer %s"
-msgstr ""
-"Norint išspausdinti dokumentą spausdintuvu %s, reikia patvirtinti tapatybę"
+msgstr "Norint išspausdinti dokumentą spausdintuvu %s, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1055
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1069
 msgid "Authentication is required to print this document"
 msgstr "Norint išspausdinti šį dokumentą, reikia patvirtinti tapatybę"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1676
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
 #, c-format
 msgid "Printer '%s' is low on toner."
 msgstr "Spausdintuve „%s“ netrukus baigsis toneris."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1677
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
 #, c-format
 msgid "Printer '%s' has no toner left."
 msgstr "Spausdintuve „%s“ baigėsi toneris."
 
 #. Translators: "Developer" like on photo development context
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1679
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1693
 #, c-format
 msgid "Printer '%s' is low on developer."
 msgstr "Spausdintuve „%s“ netrukus baigsis ryškalai."
 
 #. Translators: "Developer" like on photo development context
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1681
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1695
 #, c-format
 msgid "Printer '%s' is out of developer."
 msgstr "Spausdintuve „%s“ baigėsi ryškalai."
 
 #. Translators: "marker" is one color bin of the printer
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1683
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1697
 #, c-format
 msgid "Printer '%s' is low on at least one marker supply."
 msgstr "Spausdintuve „%s“ netrukus baigsis bent vieni dažai."
 
 #. Translators: "marker" is one color bin of the printer
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1685
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1699
 #, c-format
 msgid "Printer '%s' is out of at least one marker supply."
 msgstr "Spausdintuve „%s“ baigėsi bent vieni dažai."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1686
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1700
 #, c-format
 msgid "The cover is open on printer '%s'."
 msgstr "Spausdintuvo „%s“ dangtis atvertas."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1687
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1701
 #, c-format
 msgid "The door is open on printer '%s'."
 msgstr "Spausdintuvo „%s“ durelės atvertos."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1688
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1702
 #, c-format
 msgid "Printer '%s' is low on paper."
 msgstr "Spausdintuve „%s“ netrukus baigsis popierius."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1689
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1703
 #, c-format
 msgid "Printer '%s' is out of paper."
 msgstr "Spausdintuve „%s“ baigėsi popierius."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1704
 #, c-format
 msgid "Printer '%s' is currently offline."
 msgstr "Spausdintuvas „%s“ šiuo metu nepasiekiamas."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1705
 #, c-format
 msgid "There is a problem on printer '%s'."
 msgstr "Su spausdintuvu „%s“ iškilo nesklandumų."
 
 #. Translators: this is a printer status.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1999
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2019
 msgid "Paused ; Rejecting Jobs"
 msgstr "Pristabdytas, atmeta darbus"
 
 #. Translators: this is a printer status.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2005
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2025
 msgid "Rejecting Jobs"
 msgstr "Atmeta darbus"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2778
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798
 msgid "Two Sided"
 msgstr "Dvipusis"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2779
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2799
 msgid "Paper Type"
 msgstr "Popieriaus tipas"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2780
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800
 msgid "Paper Source"
 msgstr "Popieriaus šaltinis"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2781
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2801
 msgid "Output Tray"
 msgstr "Išvesties dėklas"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2782
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
 msgid "Resolution"
 msgstr "Skiriamoji geba"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2783
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2803
 msgid "GhostScript pre-filtering"
 msgstr "GhostScript pirminis filtravimas"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2792
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812
 msgid "One Sided"
 msgstr "Vienpusis"
 
 #. Translators: this is an option of "Two Sided"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2794
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814
 msgid "Long Edge (Standard)"
 msgstr "Ilgasis kraštas (standartinis)"
 
 #. Translators: this is an option of "Two Sided"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2796
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816
 msgid "Short Edge (Flip)"
 msgstr "Trumpasis kraštas (apverstas)"
 
 #. Translators: this is an option of "Paper Source"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2808
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2820
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2828
 msgid "Auto Select"
 msgstr "Automatinis pasirinkimas"
 
 #. Translators: this is an option of "Paper Source"
 #. Translators: this is an option of "Resolution"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2804
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2806
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2810
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3306
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2822
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2824
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2826
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2830
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3326
 msgid "Printer Default"
 msgstr "Spausdintuvo numatytieji"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2832
 msgid "Embed GhostScript fonts only"
 msgstr "Įterpti tik GhostScript šriftus"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2834
 msgid "Convert to PS level 1"
 msgstr "Konvertuoti į PS 1-ą lygmenį"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2836
 msgid "Convert to PS level 2"
 msgstr "Konvertuoti į PS 2-ą lygmenį"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2838
 msgid "No pre-filtering"
 msgstr "Nėra pradinio filtravimo"
 
 #. Translators: "Miscellaneous" is the label for a button, that opens
 #. up an extra panel of settings in a print dialog.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2827
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2847
 msgid "Miscellaneous"
 msgstr "Įvairūs"
 
 #. Translators: These strings name the possible values of the
 #. * job priority option in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Urgent"
 msgstr "Itin skubu"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "High"
 msgstr "Skubu"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Medium"
 msgstr "Vidutiniškai"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Low"
 msgstr "Neskubu"
 
@@ -4274,66 +4327,66 @@ msgstr "Neskubu"
 #. Translators, this string is used to label the pages-per-sheet option
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3554
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3593
 msgid "Pages per Sheet"
 msgstr "Puslapių lakšte"
 
 #. Translators, this string is used to label the job priority option
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3591
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3630
 msgid "Job Priority"
 msgstr "Prioritetas"
 
 #. Translators, this string is used to label the billing info entry
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3602
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3641
 msgid "Billing Info"
 msgstr "Našumo informacija"
 
 #. Translators, these strings are names for various 'standard' cover
 #. * pages that the printing system may support.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "None"
 msgstr "Nėra"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Classified"
 msgstr "Klasifikuota"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Confidential"
 msgstr "Konfidencialu"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Secret"
 msgstr "Slapta"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Standard"
 msgstr "Standartiška"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Top Secret"
 msgstr "Labai slapta"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Unclassified"
 msgstr "Neklasifikuota"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3652
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3691
 msgid "Before"
 msgstr "Prieš"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3667
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3706
 msgid "After"
 msgstr "Po"
 
@@ -4341,14 +4394,14 @@ msgstr "Po"
 #. * a print job is printed. Possible values are 'now', a specified time,
 #. * or 'on hold'
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3726
 msgid "Print at"
 msgstr "Kada spausdinti"
 
 #. Translators: this is the name of the option that allows the user
 #. * to specify a time when a print job will be printed.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3698
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
 msgid "Print at time"
 msgstr "Spausdinti šiuo laiku"
 
@@ -4356,11 +4409,40 @@ msgstr "Spausdinti šiuo laiku"
 #. * size. The two placeholders are replaced with the width and height
 #. * in points. E.g: "Custom 230.4x142.9"
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3733
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772
 #, c-format
 msgid "Custom %sx%s"
 msgstr "Pasirinktinis (%s×%s)"
 
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3853
+#| msgid "Printer offline"
+msgid "Printer Profile"
+msgstr "Spausdintuvo profilis"
+
+#. TRANSLATORS: this is when color profile information is unavailable
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860
+#| msgid "Not available"
+msgid "Unavailable"
+msgstr "Neprieinama"
+
+#. TRANSLATORS: when we're running an old CUPS, and
+#. * it hasn't registered the device with colord
+#: ../modules/printbackends/cups/gtkprintercups.c:222
+msgid "Color management unavailable"
+msgstr "Spalvų valdymas neprieinamas"
+
+#. TRANSLATORS: when there is no color profile available
+#: ../modules/printbackends/cups/gtkprintercups.c:234
+#| msgid "Not available"
+msgid "No profile available"
+msgstr "Nėra profilio"
+
+#. TRANSLATORS: when the color profile has no title
+#: ../modules/printbackends/cups/gtkprintercups.c:245
+#| msgid "Unspecified error"
+msgid "Unspecified profile"
+msgstr "Nenurodytas profilis"
+
 #. default filename used for print-to-file
 #: ../modules/printbackends/file/gtkprintbackendfile.c:250
 #, c-format
@@ -4455,11 +4537,37 @@ msgstr "Nepavyko atverti failo „%s“: %s"
 
 #: ../tests/testfilechooser.c:267
 #, c-format
-msgid ""
-"Failed to load image '%s': reason not known, probably a corrupt image file"
-msgstr ""
-"Nepavyko įkelti paveikslėlio „%s“: nežinoma priežastis, tikriausiai "
-"sugadintas failas"
+msgid "Failed to load image '%s': reason not known, probably a corrupt image file"
+msgstr "Nepavyko įkelti paveikslėlio „%s“: nežinoma priežastis, tikriausiai sugadintas failas"
+
+#~ msgid "Received invalid color data\n"
+#~ msgstr "Gauti netinkami spalvų duomenys\n"
+
+#~ msgid "_Browse for other folders"
+#~ msgstr "_Naršyti kitų aplankų"
+
+#~ msgid "Error loading icon: %s"
+#~ msgstr "Įvyko klaida įkeliant piktogramą: %s"
+
+#~ msgid ""
+#~ "Could not find the icon '%s'. The '%s' theme\n"
+#~ "was not found either, perhaps you need to install it.\n"
+#~ "You can get a copy from:\n"
+#~ "\t%s"
+#~ msgstr ""
+#~ "Nepavyko rasti piktogramos „%s“. Tema „%s“ taip pat\n"
+#~ "nebuvo rasta, galbūt Jums reikia ją įdiegti.\n"
+#~ "Jūs galite gauti kopiją:\n"
+#~ "\t%s"
+
+#~ msgid "Unable to locate image file in pixmap_path: \"%s\""
+#~ msgstr "Nepavyko rasti paveikslėlio failo pixmap_path: „%s“"
+
+#~ msgid "This function is not implemented for widgets of class '%s'"
+#~ msgstr "Ši funkcija nerealizuota „%s“ klasės valdymo elementams"
+
+#~ msgid "different idatas found for symlinked '%s' and '%s'\n"
+#~ msgstr "simboliškai susietiem „%s“ ir „%s“ rasti skirtingi i-duomenys\n"
 
 #~ msgid "X screen to use"
 #~ msgstr "Naudojamas X ekranas"
@@ -4742,6 +4850,7 @@ msgstr ""
 #~ msgstr "Paveikslėlio taškiniai duomenys apgadinti"
 
 #~ msgid "failed to allocate image buffer of %u byte"
+
 #~ msgid_plural "failed to allocate image buffer of %u bytes"
 #~ msgstr[0] "nepavyko rezervuoti %u baito paveikslėlio buferio"
 #~ msgstr[1] "nepavyko rezervuoti %u baitų paveikslėlio buferio"
@@ -6066,6 +6175,7 @@ msgstr ""
 #~ "Nepavyko pasirinkti failo „%s“, nes nurodytas kelias yra netinkamas."
 
 #~ msgid "%d byte"
+
 #~ msgid_plural "%d bytes"
 #~ msgstr[0] "%d baitas"
 #~ msgstr[1] "%d baitai"
@@ -6116,12 +6226,12 @@ msgstr ""
 
 #~ msgid "Icon not present in theme"
 #~ msgstr "Piktogramos nėra temoje"
-
 #~ msgctxt "Media"
+
 #~ msgid "_Forward"
 #~ msgstr "_Pirmyn"
-
 #~ msgctxt "Media"
+
 #~ msgid "_Stop"
 #~ msgstr "_Sustabdyti"
 
index 0d2c08dbe6664b08dd19a913dc3661351890a6d9..240f0bde2f785be271b4c63bad7bdf953b01b37f 100644 (file)
--- a/po/lv.po
+++ b/po/lv.po
 #
 # Raivis Dejus <orvils@gmail.com>, 2006, 2007, 2009.
 # Anita Reitere <nitalynx@gmail.com>, 2010.
+# Rūdofls Mazurs <rudolfs.mazurs@gmail.com>, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: gtk+.HEAD\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2010-10-01 15:41-0400\n"
-"PO-Revision-Date: 2010-04-21 14:58+0300\n"
-"Last-Translator: Anita Reitere <nitalynx@gmail.com>\n"
-"Language-Team: Latviešu <kde-i18n-doc@kde.org>\n"
-"Language\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug."
+"cgi?product=gtk%2b&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-07-09 10:54+0000\n"
+"PO-Revision-Date: 2011-07-10 11:39+0300\n"
+"Last-Translator: Rūdofls Mazurs <rudolfs.mazurs@gmail.com>\n"
+"Language-Team: Latvian <lata-l10n@googlegroups.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"X-Generator: Lokalize 1.0\n"
+"Language: \n"
+"X-Generator: Lokalize 1.1\n"
 "Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : "
 "2);\n"
 
-#: gdk/gdk.c:103
+#: ../gdk/gdk.c:135
 #, c-format
 msgid "Error parsing option --gdk-debug"
 msgstr "Kļūda, parsējot opciju --gdk-debug"
 
-#: gdk/gdk.c:123
+#: ../gdk/gdk.c:155
 #, c-format
 msgid "Error parsing option --gdk-no-debug"
 msgstr "Kļūda, parsējot opciju --gdk-no-debug"
 
 #. Description of --class=CLASS in --help output
-#: gdk/gdk.c:151
+#: ../gdk/gdk.c:183
 msgid "Program class as used by the window manager"
 msgstr "Programmas klase, ko izmanto logu pārvaldnieks"
 
 #. Placeholder in --class=CLASS in --help output
-#: gdk/gdk.c:152
+#: ../gdk/gdk.c:184
 msgid "CLASS"
 msgstr "KLASE"
 
 #. Description of --name=NAME in --help output
-#: gdk/gdk.c:154
+#: ../gdk/gdk.c:186
 msgid "Program name as used by the window manager"
 msgstr "Programmas nosaukums, ko izmanto logu pārvaldnieks"
 
 #. Placeholder in --name=NAME in --help output
-#: gdk/gdk.c:155
+#: ../gdk/gdk.c:187
 msgid "NAME"
 msgstr "NAME"
 
 #. Description of --display=DISPLAY in --help output
-#: gdk/gdk.c:157
+#: ../gdk/gdk.c:189
 msgid "X display to use"
 msgstr "Izmantojamais X displejs"
 
 #. Placeholder in --display=DISPLAY in --help output
-#: gdk/gdk.c:158
+#: ../gdk/gdk.c:190
 msgid "DISPLAY"
 msgstr "EKRĀNS"
 
-#. Description of --screen=SCREEN in --help output
-#: gdk/gdk.c:160
-msgid "X screen to use"
-msgstr "Izmantojamais X ekrāns"
-
-#. Placeholder in --screen=SCREEN in --help output
-#: gdk/gdk.c:161
-msgid "SCREEN"
-msgstr "EKRĀNS"
-
 #. Description of --gdk-debug=FLAGS in --help output
-#: gdk/gdk.c:164
-#, fuzzy
+#: ../gdk/gdk.c:193
 msgid "GDK debugging flags to set"
-msgstr "Iestatāmie GTK+ atkļūdošanas karodziņi"
+msgstr "Iestatāmie GDK atkļūdošanas karodziņi"
 
 #. Placeholder in --gdk-debug=FLAGS in --help output
 #. Placeholder in --gdk-no-debug=FLAGS in --help output
 #. Placeholder in --gtk-debug=FLAGS in --help output
 #. Placeholder in --gtk-no-debug=FLAGS in --help output
-#: gdk/gdk.c:165 gdk/gdk.c:168 gtk/gtkmain.c:533 gtk/gtkmain.c:536
+#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:569 ../gtk/gtkmain.c:572
 msgid "FLAGS"
 msgstr "KARODZIŅI"
 
 #. Description of --gdk-no-debug=FLAGS in --help output
-#: gdk/gdk.c:167
-#, fuzzy
+#: ../gdk/gdk.c:196
 msgid "GDK debugging flags to unset"
-msgstr "Noņemamie GTK+ atkļūdošanas karodziņi"
+msgstr "Noņemamie GDK atkļūdošanas karodziņi"
 
-#: gdk/keyname-table.h:3940
+#.
+#. * Translators, the strings in the 'keyboard label' context are
+#. * display names for keyboard keys. Some of them have prefixes like
+#. * XF86 or ISO_ - these should be removed in the translation. Similarly,
+#. * underscores should be replaced by spaces. The prefix 'KP_' stands
+#. * for 'key pad' and you may want to include that in your translation.
+#. * Here are some examples of English translations:
+#. * XF86AudioMute - Audio mute
+#. * Scroll_lock   - Scroll lock
+#. * KP_Space      - Space (keypad)
+#.
+#: ../gdk/keyname-table.h:3951
 msgctxt "keyboard label"
 msgid "BackSpace"
 msgstr "Backspace"
 
-#: gdk/keyname-table.h:3941
+#: ../gdk/keyname-table.h:3952
 msgctxt "keyboard label"
 msgid "Tab"
 msgstr "Tab"
 
-#: gdk/keyname-table.h:3942
+#: ../gdk/keyname-table.h:3953
 msgctxt "keyboard label"
 msgid "Return"
 msgstr "Enter"
 
-#: gdk/keyname-table.h:3943
+#: ../gdk/keyname-table.h:3954
 msgctxt "keyboard label"
 msgid "Pause"
 msgstr "Pause"
 
-#: gdk/keyname-table.h:3944
+#: ../gdk/keyname-table.h:3955
 msgctxt "keyboard label"
 msgid "Scroll_Lock"
 msgstr "Scroll_Lock"
 
-#: gdk/keyname-table.h:3945
+#: ../gdk/keyname-table.h:3956
 msgctxt "keyboard label"
 msgid "Sys_Req"
 msgstr "Sys_Req"
 
-#: gdk/keyname-table.h:3946
+#: ../gdk/keyname-table.h:3957
 msgctxt "keyboard label"
 msgid "Escape"
 msgstr "Escape"
 
-#: gdk/keyname-table.h:3947
+#: ../gdk/keyname-table.h:3958
 msgctxt "keyboard label"
 msgid "Multi_key"
 msgstr "Multi_taustiņš"
 
-#: gdk/keyname-table.h:3948
+#: ../gdk/keyname-table.h:3959
 msgctxt "keyboard label"
 msgid "Home"
 msgstr "Home"
 
-#: gdk/keyname-table.h:3949
+#: ../gdk/keyname-table.h:3960
 msgctxt "keyboard label"
 msgid "Left"
 msgstr "Pa_kreisi"
 
-#: gdk/keyname-table.h:3950
+#: ../gdk/keyname-table.h:3961
 msgctxt "keyboard label"
 msgid "Up"
 msgstr "Uz_augšu"
 
-#: gdk/keyname-table.h:3951
+#: ../gdk/keyname-table.h:3962
 msgctxt "keyboard label"
 msgid "Right"
 msgstr "Pa_labi"
 
-#: gdk/keyname-table.h:3952
+#: ../gdk/keyname-table.h:3963
 msgctxt "keyboard label"
 msgid "Down"
 msgstr "Uz_leju"
 
-#: gdk/keyname-table.h:3953
+#: ../gdk/keyname-table.h:3964
 msgctxt "keyboard label"
 msgid "Page_Up"
 msgstr "Page_Up"
 
-#: gdk/keyname-table.h:3954
+#: ../gdk/keyname-table.h:3965
 msgctxt "keyboard label"
 msgid "Page_Down"
 msgstr "Page_Down"
 
-#: gdk/keyname-table.h:3955
+#: ../gdk/keyname-table.h:3966
 msgctxt "keyboard label"
 msgid "End"
 msgstr "End"
 
-#: gdk/keyname-table.h:3956
+#: ../gdk/keyname-table.h:3967
 msgctxt "keyboard label"
 msgid "Begin"
 msgstr "Begin"
 
-#: gdk/keyname-table.h:3957
+#: ../gdk/keyname-table.h:3968
 msgctxt "keyboard label"
 msgid "Print"
 msgstr "Print"
 
-#: gdk/keyname-table.h:3958
+#: ../gdk/keyname-table.h:3969
 msgctxt "keyboard label"
 msgid "Insert"
 msgstr "Insert"
 
-#: gdk/keyname-table.h:3959
+#: ../gdk/keyname-table.h:3970
 msgctxt "keyboard label"
 msgid "Num_Lock"
 msgstr "Num_Lock"
 
-#: gdk/keyname-table.h:3960
+#. Translators: KP_ means 'key pad' here
+#: ../gdk/keyname-table.h:3972
 msgctxt "keyboard label"
 msgid "KP_Space"
 msgstr "KP_Space"
 
-#: gdk/keyname-table.h:3961
+#: ../gdk/keyname-table.h:3973
 msgctxt "keyboard label"
 msgid "KP_Tab"
 msgstr "KP_Tab"
 
-#: gdk/keyname-table.h:3962
+#: ../gdk/keyname-table.h:3974
 msgctxt "keyboard label"
 msgid "KP_Enter"
 msgstr "KP_Enter"
 
-#: gdk/keyname-table.h:3963
+#: ../gdk/keyname-table.h:3975
 msgctxt "keyboard label"
 msgid "KP_Home"
 msgstr "KP_Home"
 
-#: gdk/keyname-table.h:3964
+#: ../gdk/keyname-table.h:3976
 msgctxt "keyboard label"
 msgid "KP_Left"
 msgstr "KP_Left"
 
-#: gdk/keyname-table.h:3965
+#: ../gdk/keyname-table.h:3977
 msgctxt "keyboard label"
 msgid "KP_Up"
 msgstr "KP_Up"
 
-#: gdk/keyname-table.h:3966
+#: ../gdk/keyname-table.h:3978
 msgctxt "keyboard label"
 msgid "KP_Right"
 msgstr "KP_Right"
 
-#: gdk/keyname-table.h:3967
+#: ../gdk/keyname-table.h:3979
 msgctxt "keyboard label"
 msgid "KP_Down"
 msgstr "KP_Down"
 
-#: gdk/keyname-table.h:3968
+#: ../gdk/keyname-table.h:3980
 msgctxt "keyboard label"
 msgid "KP_Page_Up"
 msgstr "KP_Page_Up"
 
-#: gdk/keyname-table.h:3969
+#: ../gdk/keyname-table.h:3981
 msgctxt "keyboard label"
 msgid "KP_Prior"
 msgstr "KP_Prior"
 
-#: gdk/keyname-table.h:3970
+#: ../gdk/keyname-table.h:3982
 msgctxt "keyboard label"
 msgid "KP_Page_Down"
 msgstr "KP_Page_Down"
 
-#: gdk/keyname-table.h:3971
+#: ../gdk/keyname-table.h:3983
 msgctxt "keyboard label"
 msgid "KP_Next"
 msgstr "KP_Next"
 
-#: gdk/keyname-table.h:3972
+#: ../gdk/keyname-table.h:3984
 msgctxt "keyboard label"
 msgid "KP_End"
 msgstr "KP_End"
 
-#: gdk/keyname-table.h:3973
+#: ../gdk/keyname-table.h:3985
 msgctxt "keyboard label"
 msgid "KP_Begin"
 msgstr "KP_Begin"
 
-#: gdk/keyname-table.h:3974
+#: ../gdk/keyname-table.h:3986
 msgctxt "keyboard label"
 msgid "KP_Insert"
 msgstr "KP_Insert"
 
-#: gdk/keyname-table.h:3975
+#: ../gdk/keyname-table.h:3987
 msgctxt "keyboard label"
 msgid "KP_Delete"
 msgstr "KP_Delete"
 
-#: gdk/keyname-table.h:3976
+#: ../gdk/keyname-table.h:3988
 msgctxt "keyboard label"
 msgid "Delete"
 msgstr "Delete"
 
+#. Translators: 'Mon' means Monitor here, and the XF86 prefix should be removed
+#: ../gdk/keyname-table.h:3990
+msgctxt "keyboard label"
+msgid "XF86MonBrightnessUp"
+msgstr "XF86MonBrightnessUp"
+
+#: ../gdk/keyname-table.h:3991
+msgctxt "keyboard label"
+msgid "XF86MonBrightnessDown"
+msgstr "XF86MonBrightnessDown"
+
+#: ../gdk/keyname-table.h:3992
+msgctxt "keyboard label"
+msgid "XF86AudioMute"
+msgstr "XF86AudioMute"
+
+#: ../gdk/keyname-table.h:3993
+msgctxt "keyboard label"
+msgid "XF86AudioLowerVolume"
+msgstr "XF86AudioLowerVolume"
+
+#: ../gdk/keyname-table.h:3994
+msgctxt "keyboard label"
+msgid "XF86AudioRaiseVolume"
+msgstr "XF86AudioRaiseVolume"
+
+#: ../gdk/keyname-table.h:3995
+msgctxt "keyboard label"
+msgid "XF86AudioPlay"
+msgstr "XF86AudioPlay"
+
+#: ../gdk/keyname-table.h:3996
+msgctxt "keyboard label"
+msgid "XF86AudioStop"
+msgstr "XF86AudioStop"
+
+#: ../gdk/keyname-table.h:3997
+msgctxt "keyboard label"
+msgid "XF86AudioNext"
+msgstr "XF86AudioNext"
+
+#: ../gdk/keyname-table.h:3998
+msgctxt "keyboard label"
+msgid "XF86AudioPrev"
+msgstr "XF86AudioPrev"
+
+#: ../gdk/keyname-table.h:3999
+msgctxt "keyboard label"
+msgid "XF86AudioRecord"
+msgstr "XF86AudioRecord"
+
+#: ../gdk/keyname-table.h:4000
+msgctxt "keyboard label"
+msgid "XF86AudioPause"
+msgstr "XF86AudioPause"
+
+#: ../gdk/keyname-table.h:4001
+msgctxt "keyboard label"
+msgid "XF86AudioRewind"
+msgstr "XF86AudioRewind"
+
+#: ../gdk/keyname-table.h:4002
+msgctxt "keyboard label"
+msgid "XF86AudioMedia"
+msgstr "XF86AudioMedia"
+
+#: ../gdk/keyname-table.h:4003
+msgctxt "keyboard label"
+msgid "XF86ScreenSaver"
+msgstr "XF86ScreenSaver"
+
+#: ../gdk/keyname-table.h:4004
+msgctxt "keyboard label"
+msgid "XF86Battery"
+msgstr "XF86Battery"
+
+#: ../gdk/keyname-table.h:4005
+msgctxt "keyboard label"
+msgid "XF86Launch1"
+msgstr "XF86Launch1"
+
+#: ../gdk/keyname-table.h:4006
+#| msgctxt "Stock label, navigation"
+#| msgid "_Forward"
+msgctxt "keyboard label"
+msgid "XF86Forward"
+msgstr "XF86Forward"
+
+#: ../gdk/keyname-table.h:4007
+#| msgctxt "Stock label, navigation"
+#| msgid "_Back"
+msgctxt "keyboard label"
+msgid "XF86Back"
+msgstr "XF86Back"
+
+#: ../gdk/keyname-table.h:4008
+msgctxt "keyboard label"
+msgid "XF86Sleep"
+msgstr "XF86Sleep"
+
+#: ../gdk/keyname-table.h:4009
+msgctxt "keyboard label"
+msgid "XF86Hibernate"
+msgstr "XF86Hibernate"
+
+#: ../gdk/keyname-table.h:4010
+msgctxt "keyboard label"
+msgid "XF86WLAN"
+msgstr "XF86WLAN"
+
+#: ../gdk/keyname-table.h:4011
+msgctxt "keyboard label"
+msgid "XF86WebCam"
+msgstr "XF86WebCam"
+
+#: ../gdk/keyname-table.h:4012
+msgctxt "keyboard label"
+msgid "XF86Display"
+msgstr "XF86Display"
+
+#: ../gdk/keyname-table.h:4013
+msgctxt "keyboard label"
+msgid "XF86TouchpadToggle"
+msgstr "XF86TouchpadToggle"
+
+#: ../gdk/keyname-table.h:4014
+msgctxt "keyboard label"
+msgid "XF86WakeUp"
+msgstr "XF86WakeUp"
+
+#: ../gdk/keyname-table.h:4015
+msgctxt "keyboard label"
+msgid "XF86Suspend"
+msgstr "XF86Suspend"
+
 #. Description of --sync in --help output
-#: gdk/win32/gdkmain-win32.c:54
+#: ../gdk/win32/gdkmain-win32.c:55
 msgid "Don't batch GDI requests"
 msgstr "Negrupēt GDI pieprasījumus"
 
 #. Description of --no-wintab in --help output
-#: gdk/win32/gdkmain-win32.c:56
+#: ../gdk/win32/gdkmain-win32.c:57
 msgid "Don't use the Wintab API for tablet support"
 msgstr "Nelietot Wintab API planšetu atbalstam"
 
 #. Description of --ignore-wintab in --help output
-#: gdk/win32/gdkmain-win32.c:58
+#: ../gdk/win32/gdkmain-win32.c:59
 msgid "Same as --no-wintab"
 msgstr "Tas pats, kas --no-wintab"
 
 #. Description of --use-wintab in --help output
-#: gdk/win32/gdkmain-win32.c:60
+#: ../gdk/win32/gdkmain-win32.c:61
 msgid "Do use the Wintab API [default]"
 msgstr "Lietot Wintab API [noklusētais]"
 
 #. Description of --max-colors=COLORS in --help output
-#: gdk/win32/gdkmain-win32.c:62
+#: ../gdk/win32/gdkmain-win32.c:63
 msgid "Size of the palette in 8 bit mode"
 msgstr "Paletes izmērs 8 bitu režīmā"
 
 #. Placeholder in --max-colors=COLORS in --help output
-#: gdk/win32/gdkmain-win32.c:63
+#: ../gdk/win32/gdkmain-win32.c:64
 msgid "COLORS"
 msgstr "KRĀSAS"
 
-#: gdk/x11/gdkapplaunchcontext-x11.c:312
+#: ../gdk/x11/gdkapplaunchcontext-x11.c:294
 #, c-format
 msgid "Starting %s"
 msgstr "Palaiž %s"
 
-#: gdk/x11/gdkapplaunchcontext-x11.c:316
+#: ../gdk/x11/gdkapplaunchcontext-x11.c:307
 #, c-format
 msgid "Opening %s"
 msgstr "Atver %s"
 
-#: gdk/x11/gdkapplaunchcontext-x11.c:321
+#: ../gdk/x11/gdkapplaunchcontext-x11.c:312
 #, c-format
 msgid "Opening %d Item"
 msgid_plural "Opening %d Items"
@@ -322,63 +459,65 @@ msgstr[0] "Atver %d vienību"
 msgstr[1] "Atver %d vienības"
 msgstr[2] "Atver %d vienības"
 
-#. Description of --sync in --help output
-#: gdk/x11/gdkmain-x11.c:96
-msgid "Make X calls synchronous"
-msgstr "Padarīt X izsaukumus sinhronus"
-
 #. Translators: this is the license preamble; the string at the end
 #. * contains the URL of the license.
 #.
-#: gtk/gtkaboutdialog.c:101
+#: ../gtk/gtkaboutdialog.c:103
 #, c-format
-msgid "This program comes with ABSOLUTELY NO WARRANTY; for details, visit %s"
+msgid ""
+"This program comes with ABSOLUTELY NO WARRANTY; for details, visit <a href="
+"\"%s\">%s</a>"
 msgstr ""
+"Šī programma nāk BEZ JEBKĀDAS GARANTIJAS; sīkāka informācija <a href=\"%s\">%"
+"s</a>"
 
-#: gtk/gtkaboutdialog.c:339 gtk/gtkaboutdialog.c:2235
+#: ../gtk/gtkaboutdialog.c:345
 msgid "License"
 msgstr "Licence"
 
-#: gtk/gtkaboutdialog.c:340
+#: ../gtk/gtkaboutdialog.c:346
 msgid "The license of the program"
 msgstr "Programmas licence"
 
 #. Add the credits button
-#: gtk/gtkaboutdialog.c:621
+#: ../gtk/gtkaboutdialog.c:738
 msgid "C_redits"
 msgstr "_Veidotāji"
 
 #. Add the license button
-#: gtk/gtkaboutdialog.c:635
+#: ../gtk/gtkaboutdialog.c:751
 msgid "_License"
 msgstr "_Licence"
 
-#: gtk/gtkaboutdialog.c:839
+#: ../gtk/gtkaboutdialog.c:956
 msgid "Could not show link"
 msgstr "Neizdevās parādīt saiti"
 
-#: gtk/gtkaboutdialog.c:932
+#: ../gtk/gtkaboutdialog.c:993
+#| msgctxt "keyboard label"
+#| msgid "Home"
+msgid "Homepage"
+msgstr "Mājas lapa"
+
+#: ../gtk/gtkaboutdialog.c:1047
 #, c-format
 msgid "About %s"
 msgstr "Par %s"
 
-#: gtk/gtkaboutdialog.c:2153
-msgid "Credits"
-msgstr "Autori"
+#: ../gtk/gtkaboutdialog.c:2371
+#| msgid "C_reate"
+msgid "Created by"
+msgstr "Veidotājs"
 
-#: gtk/gtkaboutdialog.c:2185
-msgid "Written by"
-msgstr "Sarakstījuši"
-
-#: gtk/gtkaboutdialog.c:2188
+#: ../gtk/gtkaboutdialog.c:2374
 msgid "Documented by"
 msgstr "Dokumentējuši"
 
-#: gtk/gtkaboutdialog.c:2200
+#: ../gtk/gtkaboutdialog.c:2384
 msgid "Translated by"
 msgstr "Tulkojuši"
 
-#: gtk/gtkaboutdialog.c:2204
+#: ../gtk/gtkaboutdialog.c:2389
 msgid "Artwork by"
 msgstr "Grafika"
 
@@ -387,7 +526,7 @@ msgstr "Grafika"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: gtk/gtkaccellabel.c:160
+#: ../gtk/gtkaccellabel.c:156
 msgctxt "keyboard label"
 msgid "Shift"
 msgstr "Shift"
@@ -397,7 +536,7 @@ msgstr "Shift"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: gtk/gtkaccellabel.c:166
+#: ../gtk/gtkaccellabel.c:162
 msgctxt "keyboard label"
 msgid "Ctrl"
 msgstr "Ctrl"
@@ -407,7 +546,7 @@ msgstr "Ctrl"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: gtk/gtkaccellabel.c:172
+#: ../gtk/gtkaccellabel.c:168
 msgctxt "keyboard label"
 msgid "Alt"
 msgstr "Alt"
@@ -417,7 +556,7 @@ msgstr "Alt"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: gtk/gtkaccellabel.c:770
+#: ../gtk/gtkaccellabel.c:787
 msgctxt "keyboard label"
 msgid "Super"
 msgstr "Super"
@@ -427,7 +566,7 @@ msgstr "Super"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: gtk/gtkaccellabel.c:783
+#: ../gtk/gtkaccellabel.c:800
 msgctxt "keyboard label"
 msgid "Hyper"
 msgstr "Hyper"
@@ -437,37 +576,149 @@ msgstr "Hyper"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: gtk/gtkaccellabel.c:797
+#: ../gtk/gtkaccellabel.c:814
 msgctxt "keyboard label"
 msgid "Meta"
 msgstr "Meta"
 
-#: gtk/gtkaccellabel.c:813
+#: ../gtk/gtkaccellabel.c:830
 msgctxt "keyboard label"
 msgid "Space"
 msgstr "Atstarpe"
 
-#: gtk/gtkaccellabel.c:816
+#: ../gtk/gtkaccellabel.c:833
 msgctxt "keyboard label"
 msgid "Backslash"
 msgstr "Otrādā slīpsvītra"
 
-#: gtk/gtkbuilderparser.c:343
+#: ../gtk/gtkappchooserbutton.c:268
+#| msgid "Application"
+msgid "Other application..."
+msgstr "Citas lietotnes..."
+
+#: ../gtk/gtkappchooserdialog.c:130
+msgid "Failed to look for applications online"
+msgstr "Neizdevās tiešsaistē atrast lietotni"
+
+#: ../gtk/gtkappchooserdialog.c:171
+msgid "Find applications online"
+msgstr "Atrast lietotni tiešsaistē"
+
+#: ../gtk/gtkappchooserdialog.c:221
+#| msgid "Could not clear list"
+msgid "Could not run application"
+msgstr "Neizdevās palaist lietotni"
+
+#: ../gtk/gtkappchooserdialog.c:234
+#, c-format
+#| msgid "Could not mount %s"
+msgid "Could not find '%s'"
+msgstr "Neizdevās atrast '%s'"
+
+#: ../gtk/gtkappchooserdialog.c:237
+#| msgid "Could not show link"
+msgid "Could not find application"
+msgstr "Neizdodas atrast lietotni"
+
+#. Translators: %s is a filename
+#: ../gtk/gtkappchooserdialog.c:355
+#, c-format
+msgid "Select an application to open \"%s\""
+msgstr "Izvēlieties lietotni, ar kuru atvērt \"%s\""
+
+#: ../gtk/gtkappchooserdialog.c:356 ../gtk/gtkappchooserwidget.c:643
+#, c-format
+msgid "No applications available to open \"%s\""
+msgstr "Nav atrasta lietotne, ar ko atvērt \"%s\""
+
+#. Translators: %s is a file type description
+#: ../gtk/gtkappchooserdialog.c:362
+#, c-format
+msgid "Select an application for \"%s\" files"
+msgstr "Izvēlieties lietotni \"%s\" failiem"
+
+#: ../gtk/gtkappchooserdialog.c:364
+#, c-format
+msgid "No applications available to open \"%s\" files"
+msgstr "Nav atrasta lietotne, ar ko atvērt \"%s\" failus"
+
+#: ../gtk/gtkappchooserdialog.c:380
+msgid ""
+"Click \"Show other applications\", for more options, or \"Find applications "
+"online\" to install a new application"
+msgstr ""
+"Spiediet \"Rādīt citas lietotnes\", lai redzētu vairāk opciju, vai \"Atrast "
+"lietotni tiešsaistē\", lai instalētu jaunu lietotni"
+
+#: ../gtk/gtkappchooserdialog.c:450
+#| msgid "Forget password _immediately"
+msgid "Forget association"
+msgstr "Aizmirst saistību"
+
+#: ../gtk/gtkappchooserdialog.c:515
+#| msgid "Show GTK+ Options"
+msgid "Show other applications"
+msgstr "Rādīt citas lietotnes"
+
+#: ../gtk/gtkappchooserdialog.c:533
+#| msgid "_Selection: "
+msgid "_Select"
+msgstr "Izvēlētie_s: "
+
+#: ../gtk/gtkappchooserwidget.c:592
+#| msgid "Application"
+msgid "Default Application"
+msgstr "Noklusētā lietotne"
+
+#: ../gtk/gtkappchooserwidget.c:730
+#| msgid "Application"
+msgid "Recommended Applications"
+msgstr "Ieteiktās lietotnes"
+
+#: ../gtk/gtkappchooserwidget.c:745
+#| msgid "Application"
+msgid "Related Applications"
+msgstr "Saistītās lietotnes"
+
+#: ../gtk/gtkappchooserwidget.c:759
+#| msgid "Application"
+msgid "Other Applications"
+msgstr "Citas lietotnes"
+
+#: ../gtk/gtkassistant.c:920
+#| msgctxt "Stock label"
+#| msgid "C_onnect"
+msgid "C_ontinue"
+msgstr "T_urpināt"
+
+#: ../gtk/gtkassistant.c:923
+#| msgctxt "Stock label, navigation"
+#| msgid "_Back"
+msgid "Go _Back"
+msgstr "Iet _atpakaļ"
+
+#: ../gtk/gtkassistant.c:927
+#| msgctxt "print operation status"
+#| msgid "Finished"
+msgid "_Finish"
+msgstr "_Beigt"
+
+#: ../gtk/gtkbuilderparser.c:342
 #, c-format
 msgid "Invalid type function on line %d: '%s'"
 msgstr "Nederīga tipa funkcija %d. rindiņā: '%s'"
 
-#: gtk/gtkbuilderparser.c:407
-#, fuzzy, c-format
+#: ../gtk/gtkbuilderparser.c:406
+#, c-format
 msgid "Duplicate object ID '%s' on line %d (previously on line %d)"
-msgstr "Otrreiz lietots objekta id '%s' %d. rindiņā (pirmoreiz %d.)"
+msgstr "Otrreiz lietots objekta ID '%s' %d. rindiņā (pirmoreiz %d.)"
 
-#: gtk/gtkbuilderparser.c:859
+#: ../gtk/gtkbuilderparser.c:858
 #, c-format
 msgid "Invalid root element: '%s'"
 msgstr "Nederīgs saknes elements: '%s'"
 
-#: gtk/gtkbuilderparser.c:898
+#: ../gtk/gtkbuilderparser.c:897
 #, c-format
 msgid "Unhandled tag: '%s'"
 msgstr "Neapstrādāta birka: '%s'"
@@ -482,7 +733,7 @@ msgstr "Neapstrādāta birka: '%s'"
 #. * text direction of RTL and specify "calendar:YM", then the year
 #. * will appear to the right of the month.
 #.
-#: gtk/gtkcalendar.c:883
+#: ../gtk/gtkcalendar.c:874
 msgid "calendar:MY"
 msgstr "calendar:YM"
 
@@ -490,7 +741,7 @@ msgstr "calendar:YM"
 #. * first day of the week to calendar:week_start:1 if you want Monday
 #. * to be the first day of the week, and so on.
 #.
-#: gtk/gtkcalendar.c:921
+#: ../gtk/gtkcalendar.c:912
 msgid "calendar:week_start:0"
 msgstr "calendar:week_start:1"
 
@@ -499,7 +750,7 @@ msgstr "calendar:week_start:1"
 #. *
 #. * If you don't understand this, leave it as "2000"
 #.
-#: gtk/gtkcalendar.c:2006
+#: ../gtk/gtkcalendar.c:1913
 msgctxt "year measurement template"
 msgid "2000"
 msgstr "2000"
@@ -514,7 +765,7 @@ msgstr "2000"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: gtk/gtkcalendar.c:2037 gtk/gtkcalendar.c:2719
+#: ../gtk/gtkcalendar.c:1944 ../gtk/gtkcalendar.c:2641
 #, c-format
 msgctxt "calendar:day:digits"
 msgid "%d"
@@ -530,7 +781,7 @@ msgstr "%d"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: gtk/gtkcalendar.c:2069 gtk/gtkcalendar.c:2579
+#: ../gtk/gtkcalendar.c:1976 ../gtk/gtkcalendar.c:2502
 #, c-format
 msgctxt "calendar:week:digits"
 msgid "%d"
@@ -546,7 +797,7 @@ msgstr "%d"
 #. *
 #. * "%Y" is appropriate for most locales.
 #.
-#: gtk/gtkcalendar.c:2361
+#: ../gtk/gtkcalendar.c:2271
 msgctxt "calendar year format"
 msgid "%Y"
 msgstr "%Y"
@@ -554,7 +805,7 @@ msgstr "%Y"
 #. This label is displayed in a treeview cell displaying
 #. * a disabled accelerator key combination.
 #.
-#: gtk/gtkcellrendereraccel.c:272
+#: ../gtk/gtkcellrendereraccel.c:286
 msgctxt "Accelerator"
 msgid "Disabled"
 msgstr "Atslēgts"
@@ -563,7 +814,7 @@ msgstr "Atslēgts"
 #. * an accelerator key combination that is not valid according
 #. * to gtk_accelerator_valid().
 #.
-#: gtk/gtkcellrendereraccel.c:282
+#: ../gtk/gtkcellrendereraccel.c:296
 msgctxt "Accelerator"
 msgid "Invalid"
 msgstr "Nederīgs"
@@ -572,25 +823,21 @@ msgstr "Nederīgs"
 #. * an accelerator when the cell is clicked to change the
 #. * acelerator.
 #.
-#: gtk/gtkcellrendereraccel.c:418 gtk/gtkcellrendereraccel.c:675
+#: ../gtk/gtkcellrendereraccel.c:432 ../gtk/gtkcellrendereraccel.c:745
 msgid "New accelerator..."
 msgstr "Jauns paātrinātājs..."
 
-#: gtk/gtkcellrendererprogress.c:362 gtk/gtkcellrendererprogress.c:452
+#: ../gtk/gtkcellrendererprogress.c:374 ../gtk/gtkcellrendererprogress.c:464
 #, c-format
 msgctxt "progress bar label"
 msgid "%d %%"
 msgstr "%d %%"
 
-#: gtk/gtkcolorbutton.c:176 gtk/gtkcolorbutton.c:445
+#: ../gtk/gtkcolorbutton.c:187 ../gtk/gtkcolorbutton.c:483
 msgid "Pick a Color"
 msgstr "Izvēlieties krāsu"
 
-#: gtk/gtkcolorbutton.c:336
-msgid "Received invalid color data\n"
-msgstr "Saņemti nederīgi krāsu dati\n"
-
-#: gtk/gtkcolorsel.c:384
+#: ../gtk/gtkcolorsel.c:416
 msgid ""
 "Select the color you want from the outer ring. Select the darkness or "
 "lightness of that color using the inner triangle."
@@ -598,7 +845,7 @@ msgstr ""
 "Izvēlieties vēlamo krāsu no ārējā apļa. Pielāgojiet tās tumšumu vai gaišumu, "
 "lietojot iekšējo trijstūri."
 
-#: gtk/gtkcolorsel.c:408
+#: ../gtk/gtkcolorsel.c:442
 msgid ""
 "Click the eyedropper, then click a color anywhere on your screen to select "
 "that color."
@@ -606,68 +853,67 @@ msgstr ""
 "Klikšķiniet uz pipetes, tad uz jebkuras krāsas jūsu ekrānā, lai izvēlētos šo "
 "krāsu."
 
-#: gtk/gtkcolorsel.c:417
+#: ../gtk/gtkcolorsel.c:452
 msgid "_Hue:"
 msgstr "_Nokrāsa:"
 
-#: gtk/gtkcolorsel.c:418
+#: ../gtk/gtkcolorsel.c:453
 msgid "Position on the color wheel."
 msgstr "Pozīcija uz krāsu joslas."
 
-#: gtk/gtkcolorsel.c:420
+#: ../gtk/gtkcolorsel.c:455
 msgid "_Saturation:"
 msgstr "P_iesātinājums:"
 
-#: gtk/gtkcolorsel.c:421
-#, fuzzy
+#: ../gtk/gtkcolorsel.c:456
 msgid "Intensity of the color."
-msgstr "Krāsas caurspīdīgums."
+msgstr "Krāsas intensitāte."
 
-#: gtk/gtkcolorsel.c:422
+#: ../gtk/gtkcolorsel.c:457
 msgid "_Value:"
 msgstr "_Vērtība:"
 
-#: gtk/gtkcolorsel.c:423
+#: ../gtk/gtkcolorsel.c:458
 msgid "Brightness of the color."
 msgstr "Krāsas gaišums."
 
-#: gtk/gtkcolorsel.c:424
+#: ../gtk/gtkcolorsel.c:459
 msgid "_Red:"
 msgstr "_Sarkanā:"
 
-#: gtk/gtkcolorsel.c:425
+#: ../gtk/gtkcolorsel.c:460
 msgid "Amount of red light in the color."
 msgstr "Sarkanās gaismas daudzums krāsā."
 
-#: gtk/gtkcolorsel.c:426
+#: ../gtk/gtkcolorsel.c:461
 msgid "_Green:"
 msgstr "Z_aļā:"
 
-#: gtk/gtkcolorsel.c:427
+#: ../gtk/gtkcolorsel.c:462
 msgid "Amount of green light in the color."
 msgstr "Zaļās gaismas daudzums krāsā."
 
-#: gtk/gtkcolorsel.c:428
+#: ../gtk/gtkcolorsel.c:463
 msgid "_Blue:"
 msgstr "_Zilā:"
 
-#: gtk/gtkcolorsel.c:429
+#: ../gtk/gtkcolorsel.c:464
 msgid "Amount of blue light in the color."
 msgstr " Zilās gaismas daudzums krāsā."
 
-#: gtk/gtkcolorsel.c:432
+#: ../gtk/gtkcolorsel.c:467
 msgid "Op_acity:"
 msgstr "Nec_aurspīdība:"
 
-#: gtk/gtkcolorsel.c:439 gtk/gtkcolorsel.c:449
+#: ../gtk/gtkcolorsel.c:475 ../gtk/gtkcolorsel.c:485
 msgid "Transparency of the color."
 msgstr "Krāsas caurspīdīgums."
 
-#: gtk/gtkcolorsel.c:456
+#: ../gtk/gtkcolorsel.c:492
 msgid "Color _name:"
 msgstr "Krāsas no_saukums:"
 
-#: gtk/gtkcolorsel.c:470
+#: ../gtk/gtkcolorsel.c:507
 msgid ""
 "You can enter an HTML-style hexadecimal color value, or simply a color name "
 "such as 'orange' in this entry."
@@ -675,15 +921,15 @@ msgstr ""
 "Šeit var ievadīt HTML formāta heksadecimālu krāsas vērtību vai nosaukumu "
 "('red')."
 
-#: gtk/gtkcolorsel.c:500
+#: ../gtk/gtkcolorsel.c:539
 msgid "_Palette:"
 msgstr "_Palete:"
 
-#: gtk/gtkcolorsel.c:529
+#: ../gtk/gtkcolorsel.c:569
 msgid "Color Wheel"
 msgstr "Krāsu ripa"
 
-#: gtk/gtkcolorsel.c:988
+#: ../gtk/gtkcolorsel.c:1042
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now. You can drag this color to a palette entry, or select this color as "
@@ -692,7 +938,7 @@ msgstr ""
 "Iepriekš izvēlētā krāsa, salīdzināšanai ar pašreizējo. To var pievienot "
 "paletei vai izvēlēties, ievelkot blakus lauciņā."
 
-#: gtk/gtkcolorsel.c:991
+#: ../gtk/gtkcolorsel.c:1048
 msgid ""
 "The color you've chosen. You can drag this color to a palette entry to save "
 "it for use in the future."
@@ -700,21 +946,21 @@ msgstr ""
 "Jūsu izvēlētā krāsa. To var ievilkt krāsu paletē, lai saglabātu lietošanai "
 "nākotnē."
 
-#: gtk/gtkcolorsel.c:996
+#: ../gtk/gtkcolorsel.c:1054
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now."
 msgstr "Iepriekš izvēlētā krāsa, salīdzināšanai ar pašreizējo. "
 
-#: gtk/gtkcolorsel.c:999
+#: ../gtk/gtkcolorsel.c:1058
 msgid "The color you've chosen."
 msgstr "Jūsu izvēlētā krāsa."
 
-#: gtk/gtkcolorsel.c:1396
+#: ../gtk/gtkcolorsel.c:1460
 msgid "_Save color here"
 msgstr "_Saglabāt krāsu šeit"
 
-#: gtk/gtkcolorsel.c:1601
+#: ../gtk/gtkcolorsel.c:1665
 msgid ""
 "Click this palette entry to make it the current color. To change this entry, "
 "drag a color swatch here or right-click it and select \"Save color here.\""
@@ -723,7 +969,7 @@ msgstr ""
 "ievelciet šeit krāsu vai ar labo klikšķi uz tās izvēlieties \"Saglabāt krāsu "
 "šeit.\""
 
-#: gtk/gtkcolorseldialog.c:189
+#: ../gtk/gtkcolorseldialog.c:213
 msgid "Color Selection"
 msgstr "Krāsu izlase"
 
@@ -733,125 +979,163 @@ msgstr "Krāsu izlase"
 #. * Do *not* translate it to "predefinito:mm", if it
 #. * it isn't default:mm or default:inch it will not work
 #.
-#: gtk/gtkcustompaperunixdialog.c:116
+#: ../gtk/gtkcustompaperunixdialog.c:116
 msgid "default:mm"
 msgstr "default:mm"
 
 #. And show the custom paper dialog
-#: gtk/gtkcustompaperunixdialog.c:374 gtk/gtkprintunixdialog.c:3233
+#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3325
 msgid "Manage Custom Sizes"
 msgstr "Pārvaldīt pielāgotos izmērus"
 
-#: gtk/gtkcustompaperunixdialog.c:534 gtk/gtkpagesetupunixdialog.c:790
+#: ../gtk/gtkcustompaperunixdialog.c:533 ../gtk/gtkpagesetupunixdialog.c:783
 msgid "inch"
 msgstr "colla"
 
-#: gtk/gtkcustompaperunixdialog.c:536 gtk/gtkpagesetupunixdialog.c:788
+#: ../gtk/gtkcustompaperunixdialog.c:535 ../gtk/gtkpagesetupunixdialog.c:781
 msgid "mm"
 msgstr "mm"
 
-#: gtk/gtkcustompaperunixdialog.c:581
+#: ../gtk/gtkcustompaperunixdialog.c:580
 msgid "Margins from Printer..."
 msgstr "Apmales no printera..."
 
-#: gtk/gtkcustompaperunixdialog.c:747
+#: ../gtk/gtkcustompaperunixdialog.c:746
 #, c-format
 msgid "Custom Size %d"
 msgstr "Pielāgots izmērs %d"
 
-#: gtk/gtkcustompaperunixdialog.c:1059
+#: ../gtk/gtkcustompaperunixdialog.c:1084
 msgid "_Width:"
 msgstr "Pla_tums:"
 
-#: gtk/gtkcustompaperunixdialog.c:1071
+#: ../gtk/gtkcustompaperunixdialog.c:1097
 msgid "_Height:"
 msgstr "_Augstums:"
 
-#: gtk/gtkcustompaperunixdialog.c:1083
+#: ../gtk/gtkcustompaperunixdialog.c:1110
 msgid "Paper Size"
 msgstr "Papīra izmērs"
 
-#: gtk/gtkcustompaperunixdialog.c:1092
+#: ../gtk/gtkcustompaperunixdialog.c:1119
 msgid "_Top:"
 msgstr "Au_gšējā:"
 
-#: gtk/gtkcustompaperunixdialog.c:1104
+#: ../gtk/gtkcustompaperunixdialog.c:1132
 msgid "_Bottom:"
 msgstr "A_pakšējā:"
 
-#: gtk/gtkcustompaperunixdialog.c:1116
+#: ../gtk/gtkcustompaperunixdialog.c:1145
 msgid "_Left:"
 msgstr "_Kreisā:"
 
-#: gtk/gtkcustompaperunixdialog.c:1128
+#: ../gtk/gtkcustompaperunixdialog.c:1158
 msgid "_Right:"
 msgstr "_Labā:"
 
-#: gtk/gtkcustompaperunixdialog.c:1169
+#: ../gtk/gtkcustompaperunixdialog.c:1200
 msgid "Paper Margins"
 msgstr "Papīra apmales"
 
-#: gtk/gtkentry.c:8601 gtk/gtktextview.c:8248
+#: ../gtk/gtkentry.c:8949 ../gtk/gtktextview.c:8277
 msgid "Input _Methods"
 msgstr "Ievades _metodes"
 
-#: gtk/gtkentry.c:8615 gtk/gtktextview.c:8262
+#: ../gtk/gtkentry.c:8963 ../gtk/gtktextview.c:8291
 msgid "_Insert Unicode Control Character"
 msgstr "_Ievietot Unicode kontroles simbolu"
 
-#: gtk/gtkentry.c:10015
+#: ../gtk/gtkentry.c:10434
 msgid "Caps Lock and Num Lock are on"
-msgstr ""
+msgstr "Ieslēgts Caps Lock un Num Lock"
 
-#: gtk/gtkentry.c:10017
-#, fuzzy
+#: ../gtk/gtkentry.c:10436
 msgid "Num Lock is on"
-msgstr "Ieslēgts Caps Lock"
+msgstr "Ieslēgts Num Lock"
 
-#: gtk/gtkentry.c:10019
+#: ../gtk/gtkentry.c:10438
 msgid "Caps Lock is on"
 msgstr "Ieslēgts Caps Lock"
 
+#. *
+#. * SECTION:gtkfilechooserbutton
+#. * @Short_description: A button to launch a file selection dialog
+#. * @Title: GtkFileChooserButton
+#. * @See_also:#GtkFileChooserDialog
+#. *
+#. * The #GtkFileChooserButton is a widget that lets the user select a
+#. * file.  It implements the #GtkFileChooser interface.  Visually, it is a
+#. * file name with a button to bring up a #GtkFileChooserDialog.
+#. * The user can then use that dialog to change the file associated with
+#. * that button.  This widget does not support setting the
+#. * #GtkFileChooser:select-multiple property to %TRUE.
+#. *
+#. * <example>
+#. * <title>Create a button to let the user select a file in /etc</title>
+#. * <programlisting>
+#. * {
+#. *   GtkWidget *button;
+#. *
+#. *   button = gtk_file_chooser_button_new (_("Select a file"),
+#. *                                         GTK_FILE_CHOOSER_ACTION_OPEN);
+#. *   gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button),
+#. *                                        "/etc");
+#. * }
+#. * </programlisting>
+#. * </example>
+#. *
+#. * The #GtkFileChooserButton supports the #GtkFileChooserAction<!-- -->s
+#. * %GTK_FILE_CHOOSER_ACTION_OPEN and %GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
+#. *
+#. * <important>
+#. * The #GtkFileChooserButton will ellipsize the label,
+#. * and thus will thus request little horizontal space.  To give the button
+#. * more space, you should call gtk_widget_get_preferred_size(),
+#. * gtk_file_chooser_button_set_width_chars(), or pack the button in
+#. * such a way that other interface elements give space to the widget.
+#. * </important>
+#.
 #. **************** *
 #. *  Private Macros  *
 #. * ****************
-#: gtk/gtkfilechooserbutton.c:61
-msgid "Select A File"
+#: ../gtk/gtkfilechooserbutton.c:105
+#| msgid "Select A File"
+msgid "Select a File"
 msgstr "Izvēlieties failu"
 
-#: gtk/gtkfilechooserbutton.c:62 gtk/gtkfilechooserdefault.c:1812
+#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1811
 msgid "Desktop"
 msgstr "Darbvirsma"
 
-#: gtk/gtkfilechooserbutton.c:63
+#: ../gtk/gtkfilechooserbutton.c:107
 msgid "(None)"
 msgstr "(Nekas)"
 
-#: gtk/gtkfilechooserbutton.c:2005
+#: ../gtk/gtkfilechooserbutton.c:2046
 msgid "Other..."
 msgstr "Cita vieta..."
 
-#: gtk/gtkfilechooserdefault.c:148
+#: ../gtk/gtkfilechooserdefault.c:148
 msgid "Type name of new folder"
 msgstr "Ievadiet mapes nosaukumu"
 
-#: gtk/gtkfilechooserdefault.c:938
+#: ../gtk/gtkfilechooserdefault.c:960
 msgid "Could not retrieve information about the file"
 msgstr "Neizdevās iegūt informāciju par failu"
 
-#: gtk/gtkfilechooserdefault.c:949
+#: ../gtk/gtkfilechooserdefault.c:971
 msgid "Could not add a bookmark"
 msgstr "Neizdevās pievienot grāmatzīmi"
 
-#: gtk/gtkfilechooserdefault.c:960
+#: ../gtk/gtkfilechooserdefault.c:982
 msgid "Could not remove bookmark"
 msgstr "Neizdevās izņemt grāmatzīmi"
 
-#: gtk/gtkfilechooserdefault.c:971
+#: ../gtk/gtkfilechooserdefault.c:993
 msgid "The folder could not be created"
 msgstr "Neizdevās izveidot mapi"
 
-#: gtk/gtkfilechooserdefault.c:984
+#: ../gtk/gtkfilechooserdefault.c:1006
 msgid ""
 "The folder could not be created, as a file with the same name already "
 "exists.  Try using a different name for the folder, or rename the file first."
@@ -859,11 +1143,29 @@ msgstr ""
 "Neizdevās izveidot mapi, jo jau eksistē fails ar šādu nosaukumu. Mēģiniet "
 "lietot citu mapes nosaukumu, vai vispirms pārsauciet failu."
 
-#: gtk/gtkfilechooserdefault.c:995
+#: ../gtk/gtkfilechooserdefault.c:1020
+msgid "You need to choose a valid filename."
+msgstr "Jums jāizvēlas derīgs faila nosaukums."
+
+#: ../gtk/gtkfilechooserdefault.c:1023
+#, c-format
+#| msgid "Cannot change to folder because it is not local"
+msgid "Cannot create a file under %s as it is not a folder"
+msgstr "Nevar izveidot failu zem %s, jo tā nav mape"
+
+#: ../gtk/gtkfilechooserdefault.c:1035
+msgid ""
+"You may only select folders.  The item that you selected is not a folder; "
+"try using a different item."
+msgstr ""
+"Jūs varat izvēlēties tikai mapes. Vienums, ko esat izvēlējies nav mape; "
+"izvēlieties citu vienumu."
+
+#: ../gtk/gtkfilechooserdefault.c:1045
 msgid "Invalid file name"
 msgstr "Nederīgs faila nosaukums"
 
-#: gtk/gtkfilechooserdefault.c:1005
+#: ../gtk/gtkfilechooserdefault.c:1055
 msgid "The folder contents could not be displayed"
 msgstr "Neizdevās parādīt mapes saturu"
 
@@ -871,201 +1173,202 @@ msgstr "Neizdevās parādīt mapes saturu"
 #. * is a hostname. Nautilus and the panel contain the same string
 #. * to translate.
 #.
-#: gtk/gtkfilechooserdefault.c:1555
+#: ../gtk/gtkfilechooserdefault.c:1583
 #, c-format
 msgid "%1$s on %2$s"
 msgstr "%1$s uz %2$s"
 
-#: gtk/gtkfilechooserdefault.c:1731
+#: ../gtk/gtkfilechooserdefault.c:1732
 msgid "Search"
 msgstr "Meklēt"
 
-#: gtk/gtkfilechooserdefault.c:1755 gtk/gtkfilechooserdefault.c:9289
+#: ../gtk/gtkfilechooserdefault.c:1756 ../gtk/gtkfilechooserdefault.c:4873
 msgid "Recently Used"
 msgstr "Nesen izmantots"
 
-#: gtk/gtkfilechooserdefault.c:2409
+#: ../gtk/gtkfilechooserdefault.c:2355
 msgid "Select which types of files are shown"
 msgstr "Izvēlieties, kādu tipu failus rādīt"
 
-#: gtk/gtkfilechooserdefault.c:2768
+#: ../gtk/gtkfilechooserdefault.c:2714
 #, c-format
 msgid "Add the folder '%s' to the bookmarks"
 msgstr "Pievienot grāmatzīmēm mapi '%s'"
 
-#: gtk/gtkfilechooserdefault.c:2812
+#: ../gtk/gtkfilechooserdefault.c:2758
 #, c-format
 msgid "Add the current folder to the bookmarks"
 msgstr "Pievienot grāmatzīmēm aktīvo mapi"
 
-#: gtk/gtkfilechooserdefault.c:2814
+#: ../gtk/gtkfilechooserdefault.c:2760
 #, c-format
 msgid "Add the selected folders to the bookmarks"
 msgstr "Pievienot grāmatzīmēm izvēlētās mapes "
 
-#: gtk/gtkfilechooserdefault.c:2852
+#: ../gtk/gtkfilechooserdefault.c:2798
 #, c-format
 msgid "Remove the bookmark '%s'"
 msgstr "Izņemt grāmatzīmi '%s'"
 
-#: gtk/gtkfilechooserdefault.c:2854
+#: ../gtk/gtkfilechooserdefault.c:2800
 #, c-format
 msgid "Bookmark '%s' cannot be removed"
 msgstr "Grāmatzīmi '%s' nevar izņemt"
 
-#: gtk/gtkfilechooserdefault.c:2861 gtk/gtkfilechooserdefault.c:3725
+#: ../gtk/gtkfilechooserdefault.c:2807 ../gtk/gtkfilechooserdefault.c:3692
 msgid "Remove the selected bookmark"
 msgstr "Izņemt izvēlēto grāmatzīmi"
 
-#: gtk/gtkfilechooserdefault.c:3421
+#: ../gtk/gtkfilechooserdefault.c:3371
 msgid "Remove"
 msgstr "Izņemt"
 
-#: gtk/gtkfilechooserdefault.c:3430
+#: ../gtk/gtkfilechooserdefault.c:3380
 msgid "Rename..."
 msgstr "Pārsaukt..."
 
 #. Accessible object name for the file chooser's shortcuts pane
-#: gtk/gtkfilechooserdefault.c:3593
+#: ../gtk/gtkfilechooserdefault.c:3544
 msgid "Places"
 msgstr "Vietas"
 
 #. Column header for the file chooser's shortcuts pane
-#: gtk/gtkfilechooserdefault.c:3650
+#: ../gtk/gtkfilechooserdefault.c:3601
 msgid "_Places"
 msgstr "_Vietas"
 
-#: gtk/gtkfilechooserdefault.c:3706
-msgid "_Add"
-msgstr "_Pievienot"
-
-#: gtk/gtkfilechooserdefault.c:3713
+#: ../gtk/gtkfilechooserdefault.c:3680
 msgid "Add the selected folder to the Bookmarks"
 msgstr "Pievienot grāmatzīmēm izvēlēto mapi"
 
-#: gtk/gtkfilechooserdefault.c:3718
-msgid "_Remove"
-msgstr "_Izņemt"
-
-#: gtk/gtkfilechooserdefault.c:3860
+#: ../gtk/gtkfilechooserdefault.c:3827
 msgid "Could not select file"
 msgstr "Neizdevās izvēlēties failu"
 
-#: gtk/gtkfilechooserdefault.c:4035
+#: ../gtk/gtkfilechooserdefault.c:4000
 msgid "_Add to Bookmarks"
 msgstr "_Pievienot grāmatzīmēm"
 
-#: gtk/gtkfilechooserdefault.c:4048
+#: ../gtk/gtkfilechooserdefault.c:4013
 msgid "Show _Hidden Files"
 msgstr "Rādīt s_lēptos failus"
 
-#: gtk/gtkfilechooserdefault.c:4055
+#: ../gtk/gtkfilechooserdefault.c:4020
 msgid "Show _Size Column"
 msgstr "Rādīt _izmēra kolonnu"
 
-#: gtk/gtkfilechooserdefault.c:4281
+#: ../gtk/gtkfilechooserdefault.c:4245
 msgid "Files"
 msgstr "Faili"
 
-#: gtk/gtkfilechooserdefault.c:4332
+#: ../gtk/gtkfilechooserdefault.c:4296
 msgid "Name"
 msgstr "Nosaukums"
 
-#: gtk/gtkfilechooserdefault.c:4355
+#: ../gtk/gtkfilechooserdefault.c:4319
 msgid "Size"
 msgstr "Izmērs"
 
-#: gtk/gtkfilechooserdefault.c:4369
+#: ../gtk/gtkfilechooserdefault.c:4333
 msgid "Modified"
 msgstr "Mainīts"
 
 #. Label
-#: gtk/gtkfilechooserdefault.c:4624 gtk/gtkprinteroptionwidget.c:801
+#: ../gtk/gtkfilechooserdefault.c:4414 ../gtk/gtkprinteroptionwidget.c:799
 msgid "_Name:"
 msgstr "_Nosaukums:"
 
-#: gtk/gtkfilechooserdefault.c:4667
-msgid "_Browse for other folders"
-msgstr "_Pārlūkot citas mapes"
-
-#: gtk/gtkfilechooserdefault.c:4937
+#: ../gtk/gtkfilechooserdefault.c:4711
 msgid "Type a file name"
 msgstr "Ierakstiet faila nosaukumu"
 
+#: ../gtk/gtkfilechooserdefault.c:4758 ../gtk/gtkfilechooserdefault.c:4769
+msgid "Please select a folder below"
+msgstr "Lūdzu, izvēlieties mapi zemāk"
+
+#: ../gtk/gtkfilechooserdefault.c:4764
+#| msgid "Type a file name"
+msgid "Please type a file name"
+msgstr "Lūdzu, ierakstiet faila nosaukumu"
+
 #. Create Folder
-#: gtk/gtkfilechooserdefault.c:4980
+#: ../gtk/gtkfilechooserdefault.c:4835
 msgid "Create Fo_lder"
 msgstr "Izveidot _mapi"
 
-#: gtk/gtkfilechooserdefault.c:4990
+#: ../gtk/gtkfilechooserdefault.c:4883
+msgid "Search:"
+msgstr "Meklēt:"
+
+#: ../gtk/gtkfilechooserdefault.c:4930
 msgid "_Location:"
 msgstr "_Atrašanās vieta:"
 
-#: gtk/gtkfilechooserdefault.c:5194
+#: ../gtk/gtkfilechooserdefault.c:5247
 msgid "Save in _folder:"
 msgstr "Saglabāt _mapē:"
 
-#: gtk/gtkfilechooserdefault.c:5196
+#: ../gtk/gtkfilechooserdefault.c:5249
 msgid "Create in _folder:"
 msgstr "Izveidot _mapē:"
 
-#: gtk/gtkfilechooserdefault.c:6248
+#: ../gtk/gtkfilechooserdefault.c:6343
 #, c-format
 msgid "Could not read the contents of %s"
 msgstr "Neizdevās nolasīt %s saturu"
 
-#: gtk/gtkfilechooserdefault.c:6252
+#: ../gtk/gtkfilechooserdefault.c:6347
 msgid "Could not read the contents of the folder"
 msgstr "Neizdevās nolasīt mapes saturu"
 
-#: gtk/gtkfilechooserdefault.c:6345 gtk/gtkfilechooserdefault.c:6413
-#: gtk/gtkfilechooserdefault.c:6558
+#: ../gtk/gtkfilechooserdefault.c:6440 ../gtk/gtkfilechooserdefault.c:6508
+#: ../gtk/gtkfilechooserdefault.c:6660
 msgid "Unknown"
 msgstr "Nezināms"
 
-#: gtk/gtkfilechooserdefault.c:6360
+#: ../gtk/gtkfilechooserdefault.c:6455
 msgid "%H:%M"
 msgstr "%H:%M"
 
-#: gtk/gtkfilechooserdefault.c:6362
+#: ../gtk/gtkfilechooserdefault.c:6457
 msgid "Yesterday at %H:%M"
 msgstr "Vakar %H:%M"
 
-#: gtk/gtkfilechooserdefault.c:7028
+#: ../gtk/gtkfilechooserdefault.c:7142
 msgid "Cannot change to folder because it is not local"
 msgstr "Nevar pārslēgties uz mapi, jo tā nav lokāla "
 
-#: gtk/gtkfilechooserdefault.c:7625 gtk/gtkfilechooserdefault.c:7646
+#: ../gtk/gtkfilechooserdefault.c:7742 ../gtk/gtkfilechooserdefault.c:7763
 #, c-format
 msgid "Shortcut %s already exists"
 msgstr "Saīsne %s jau eksistē"
 
-#: gtk/gtkfilechooserdefault.c:7736
+#: ../gtk/gtkfilechooserdefault.c:7853
 #, c-format
 msgid "Shortcut %s does not exist"
 msgstr "Saīsne %s neeksistē"
 
-#: gtk/gtkfilechooserdefault.c:7997 gtk/gtkprintunixdialog.c:480
+#: ../gtk/gtkfilechooserdefault.c:8099 ../gtk/gtkprintunixdialog.c:550
 #, c-format
 msgid "A file named \"%s\" already exists.  Do you want to replace it?"
 msgstr "Fails \"%s\" jau eksistē. Vai vēlaties to aizvietot?"
 
-#: gtk/gtkfilechooserdefault.c:8000 gtk/gtkprintunixdialog.c:484
+#: ../gtk/gtkfilechooserdefault.c:8102 ../gtk/gtkprintunixdialog.c:554
 #, c-format
 msgid ""
 "The file already exists in \"%s\".  Replacing it will overwrite its contents."
 msgstr ""
 "Šāds fails jau eksistē mapē \"%s\".  Tā aizstāšana pārrakstīs visu tā saturu."
 
-#: gtk/gtkfilechooserdefault.c:8005 gtk/gtkprintunixdialog.c:491
+#: ../gtk/gtkfilechooserdefault.c:8107 ../gtk/gtkprintunixdialog.c:561
 msgid "_Replace"
 msgstr "_Aizvietot"
 
-#: gtk/gtkfilechooserdefault.c:8658
+#: ../gtk/gtkfilechooserdefault.c:8860
 msgid "Could not start the search process"
 msgstr "Neizdevās sākt meklēšanas procesu"
 
-#: gtk/gtkfilechooserdefault.c:8659
+#: ../gtk/gtkfilechooserdefault.c:8861
 msgid ""
 "The program was not able to create a connection to the indexer daemon.  "
 "Please make sure it is running."
@@ -1073,36 +1376,34 @@ msgstr ""
 "Neizdevās savienoties ar indeksētājdēmonu. Lūdzu, pārliecinieties, ka tas "
 "darbojas."
 
-#: gtk/gtkfilechooserdefault.c:8673
+#: ../gtk/gtkfilechooserdefault.c:8875
 msgid "Could not send the search request"
 msgstr "Neizdevās nosūtīt meklēšanas pieprasījumu"
 
-#: gtk/gtkfilechooserdefault.c:8861
-msgid "Search:"
-msgstr "Meklēt:"
-
-#: gtk/gtkfilechooserdefault.c:9466
+#: ../gtk/gtkfilechooserdefault.c:9667
 #, c-format
 msgid "Could not mount %s"
 msgstr "Neizdevās piemontēt %s"
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry, when the user enters an invalid path.
-#: gtk/gtkfilechooserentry.c:702 gtk/gtkfilechooserentry.c:1169
+#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1174
+#: ../gtk/gtkfilesystem.c:721
+#, c-format
 msgid "Invalid path"
 msgstr "Nederīgs ceļš"
 
 #. translators: this text is shown when there are no completions
 #. * for something the user typed in a file chooser entry
 #.
-#: gtk/gtkfilechooserentry.c:1101
+#: ../gtk/gtkfilechooserentry.c:1106
 msgid "No match"
 msgstr "Nav rezultātu"
 
 #. translators: this text is shown when there is exactly one completion
 #. * for something the user typed in a file chooser entry
 #.
-#: gtk/gtkfilechooserentry.c:1112
+#: ../gtk/gtkfilechooserentry.c:1117
 msgid "Sole completion"
 msgstr "Vienīgā saderība"
 
@@ -1110,13 +1411,13 @@ msgstr "Vienīgā saderība"
 #. * entry is a complete filename, but could be continued to find
 #. * a longer match
 #.
-#: gtk/gtkfilechooserentry.c:1128
+#: ../gtk/gtkfilechooserentry.c:1133
 msgid "Complete, but not unique"
 msgstr "Ir arī citas saderības"
 
 #. Translators: this text is shown while the system is searching
 #. * for possible completions for filenames in a file chooser entry.
-#: gtk/gtkfilechooserentry.c:1160
+#: ../gtk/gtkfilechooserentry.c:1165
 msgid "Completing..."
 msgstr "Pabeidz..."
 
@@ -1124,7 +1425,7 @@ msgstr "Pabeidz..."
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user enters something like
 #. * "sftp://blahblah" in an app that only supports local filenames.
-#: gtk/gtkfilechooserentry.c:1182 gtk/gtkfilechooserentry.c:1207
+#: ../gtk/gtkfilechooserentry.c:1187 ../gtk/gtkfilechooserentry.c:1212
 msgid "Only local files may be selected"
 msgstr "Var izvēlēties tikai vietējos failus"
 
@@ -1132,161 +1433,169 @@ msgstr "Var izvēlēties tikai vietējos failus"
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user hasn't entered the first '/'
 #. * after a hostname and yet hits Tab (such as "sftp://blahblah[Tab]")
-#: gtk/gtkfilechooserentry.c:1191
+#: ../gtk/gtkfilechooserentry.c:1196
 msgid "Incomplete hostname; end it with '/'"
 msgstr "Nepabeigts servera nosaukums (trūkst '/')"
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry when the user enters a path that does not exist
 #. * and then hits Tab
-#: gtk/gtkfilechooserentry.c:1202
+#: ../gtk/gtkfilechooserentry.c:1207
 msgid "Path does not exist"
 msgstr "Ceļš neeksistē"
 
-#: gtk/gtkfilechoosersettings.c:486
-#, c-format
-msgid "Error creating folder '%s': %s"
-msgstr "Kļūda, veidojot mapi '%s': %s"
-
 #. The pointers we return for a GtkFileSystemVolume are opaque tokens; they are
 #. * really pointers to GDrive, GVolume or GMount objects.  We need an extra
 #. * token for the fake "File System" volume.  So, we'll return a pointer to
 #. * this particular string.
 #.
-#: gtk/gtkfilesystem.c:48
+#: ../gtk/gtkfilesystem.c:48
 msgid "File System"
 msgstr "Failu sistēma"
 
-#: gtk/gtkfontbutton.c:142 gtk/gtkfontbutton.c:266
+#: ../gtk/gtkfontbutton.c:153 ../gtk/gtkfontbutton.c:277
 msgid "Pick a Font"
 msgstr "Izvēlieties fontu"
 
 #. Initialize fields
-#: gtk/gtkfontbutton.c:260
+#: ../gtk/gtkfontbutton.c:271
 msgid "Sans 12"
 msgstr "Sans 12"
 
-#: gtk/gtkfontbutton.c:785
+#: ../gtk/gtkfontbutton.c:796
 msgid "Font"
 msgstr "Fonts"
 
 #. This is the default text shown in the preview entry, though the user
 #. can set it. Remember that some fonts only have capital letters.
-#: gtk/gtkfontsel.c:103
+#: ../gtk/gtkfontsel.c:119
 msgid "abcdefghijk ABCDEFGHIJK"
 msgstr "aābcčdeēfgģhiījkķ AĀBCČDEĒFGĢHIĪJKĶ"
 
-#: gtk/gtkfontsel.c:370
+#: ../gtk/gtkfontsel.c:388
 msgid "_Family:"
 msgstr "Sai_me:"
 
-#: gtk/gtkfontsel.c:376
+#: ../gtk/gtkfontsel.c:395
 msgid "_Style:"
 msgstr "_Stils:"
 
-#: gtk/gtkfontsel.c:382
+#: ../gtk/gtkfontsel.c:402
 msgid "Si_ze:"
 msgstr "I_zmērs:"
 
 #. create the text entry widget
-#: gtk/gtkfontsel.c:559
+#: ../gtk/gtkfontsel.c:579
 msgid "_Preview:"
 msgstr "_Priekšskatījums:"
 
-#: gtk/gtkfontsel.c:1659
+#: ../gtk/gtkfontsel.c:1701
 msgid "Font Selection"
 msgstr "Fonta izvēle"
 
-#. Remove this icon source so we don't keep trying to
-#. * load it.
-#.
-#: gtk/gtkiconfactory.c:1356
-#, c-format
-msgid "Error loading icon: %s"
-msgstr "Kļūda, ielādējot ikonu: %s"
-
-#: gtk/gtkicontheme.c:1354
-#, c-format
-msgid ""
-"Could not find the icon '%s'. The '%s' theme\n"
-"was not found either, perhaps you need to install it.\n"
-"You can get a copy from:\n"
-"\t%s"
-msgstr ""
-"Neizdevās atrast ikonu '%s'. Tēma '%s'\n"
-"arī netika atrasta; iespējams, tā jāinstalē.\n"
-"To var iegūt:\n"
-"\t%s"
-
-#: gtk/gtkicontheme.c:1535
+#: ../gtk/gtkicontheme.c:1605
 #, c-format
 msgid "Icon '%s' not present in theme"
 msgstr "Tēmā nav ikonas '%s'"
 
-#: gtk/gtkicontheme.c:3048
+#: ../gtk/gtkicontheme.c:3115
 msgid "Failed to load icon"
 msgstr "Neizdevās ielādēt ikonu"
 
-#: gtk/gtkimmodule.c:526
+#: ../gtk/gtkimmodule.c:525
 msgid "Simple"
 msgstr "Vienkāršs"
 
-#: gtk/gtkimmulticontext.c:588
+#: ../gtk/gtkimmulticontext.c:588
 msgctxt "input method menu"
 msgid "System"
 msgstr "Sistēma"
 
-#: gtk/gtkimmulticontext.c:598
+#: ../gtk/gtkimmulticontext.c:598
 msgctxt "input method menu"
 msgid "None"
 msgstr "Nekas"
 
-#: gtk/gtkimmulticontext.c:681
+#: ../gtk/gtkimmulticontext.c:681
 #, c-format
 msgctxt "input method menu"
 msgid "System (%s)"
 msgstr "Sistēma (%s)"
 
 #. Open Link
-#: gtk/gtklabel.c:6202
+#: ../gtk/gtklabel.c:6309
 msgid "_Open Link"
 msgstr "_Atvērt saiti"
 
 #. Copy Link Address
-#: gtk/gtklabel.c:6214
+#: ../gtk/gtklabel.c:6321
 msgid "Copy _Link Address"
 msgstr "Kopēt sai_tes adresi"
 
-#: gtk/gtklinkbutton.c:449
+#: ../gtk/gtklinkbutton.c:484
 msgid "Copy URL"
 msgstr "Kopēt URL"
 
-#: gtk/gtklinkbutton.c:601
+#: ../gtk/gtklinkbutton.c:647
 msgid "Invalid URI"
 msgstr "Nederīgs URI"
 
+#: ../gtk/gtklockbutton.c:288
+#| msgctxt "keyboard label"
+#| msgid "Num_Lock"
+msgid "Lock"
+msgstr "Slēgt"
+
+#: ../gtk/gtklockbutton.c:297
+msgid "Unlock"
+msgstr "Atslēgt"
+
+#: ../gtk/gtklockbutton.c:306
+msgid ""
+"Dialog is unlocked.\n"
+"Click to prevent further changes"
+msgstr ""
+"Dialogs ir atslēgts.\n"
+"Klikšķiniet, lai novērstu turpmākas izmaiņas"
+
+#: ../gtk/gtklockbutton.c:315
+msgid ""
+"Dialog is locked.\n"
+"Click to make changes"
+msgstr ""
+"Dialogs ir aizslēgts.\n"
+"Klikšķiniet, lai veiktu izmaiņas"
+
+#: ../gtk/gtklockbutton.c:324
+msgid ""
+"System policy prevents changes.\n"
+"Contact your system administrator"
+msgstr ""
+"Sistēmas politika neļauj veikt izmaiņas.\n"
+"Sazinieties ar sistēmas administratoru"
+
 #. Description of --gtk-module=MODULES in --help output
-#: gtk/gtkmain.c:526
+#: ../gtk/gtkmain.c:562
 msgid "Load additional GTK+ modules"
 msgstr "Ielādēt papildu GTK+ moduļus"
 
 #. Placeholder in --gtk-module=MODULES in --help output
-#: gtk/gtkmain.c:527
+#: ../gtk/gtkmain.c:563
 msgid "MODULES"
 msgstr "MODUĻI"
 
 #. Description of --g-fatal-warnings in --help output
-#: gtk/gtkmain.c:529
+#: ../gtk/gtkmain.c:565
 msgid "Make all warnings fatal"
 msgstr "Padarīt visus brīdinājumus fatālus"
 
 #. Description of --gtk-debug=FLAGS in --help output
-#: gtk/gtkmain.c:532
+#: ../gtk/gtkmain.c:568
 msgid "GTK+ debugging flags to set"
 msgstr "Iestatāmie GTK+ atkļūdošanas karodziņi"
 
 #. Description of --gtk-no-debug=FLAGS in --help output
-#: gtk/gtkmain.c:535
+#: ../gtk/gtkmain.c:571
 msgid "GTK+ debugging flags to unset"
 msgstr "Noņemamie GTK+ atkļūdošanas karodziņi"
 
@@ -1295,122 +1604,133 @@ msgstr "Noņemamie GTK+ atkļūdošanas karodziņi"
 #. * Do *not* translate it to "predefinito:LTR", if it
 #. * it isn't default:LTR or default:RTL it will not work
 #.
-#: gtk/gtkmain.c:798
+#: ../gtk/gtkmain.c:848
 msgid "default:LTR"
 msgstr "default:LTR"
 
-#: gtk/gtkmain.c:863
+#: ../gtk/gtkmain.c:914
 #, c-format
 msgid "Cannot open display: %s"
 msgstr "Nevar atvērt ekrānu: %s"
 
-#: gtk/gtkmain.c:922
+#: ../gtk/gtkmain.c:980
 msgid "GTK+ Options"
 msgstr "GTK+ opcijas"
 
-#: gtk/gtkmain.c:922
+#: ../gtk/gtkmain.c:980
 msgid "Show GTK+ Options"
 msgstr "Parādīt GTK+ opcijas"
 
-#: gtk/gtkmountoperation.c:491
+#: ../gtk/gtkmountoperation.c:489
 msgid "Co_nnect"
 msgstr "Pie_slēgties"
 
-#: gtk/gtkmountoperation.c:558
+#: ../gtk/gtkmountoperation.c:559
 msgid "Connect _anonymously"
 msgstr "Pieslēgties _anonīmi"
 
-#: gtk/gtkmountoperation.c:567
+#: ../gtk/gtkmountoperation.c:568
 msgid "Connect as u_ser:"
 msgstr "Pieslēgtie_s kā:"
 
-#: gtk/gtkmountoperation.c:605
+#: ../gtk/gtkmountoperation.c:602
 msgid "_Username:"
 msgstr "_Lietotājvārds:"
 
-#: gtk/gtkmountoperation.c:610
+#: ../gtk/gtkmountoperation.c:607
 msgid "_Domain:"
 msgstr "_Domēns:"
 
-#: gtk/gtkmountoperation.c:616
+#: ../gtk/gtkmountoperation.c:613
 msgid "_Password:"
 msgstr "_Parole:"
 
-#: gtk/gtkmountoperation.c:634
+#: ../gtk/gtkmountoperation.c:631
 msgid "Forget password _immediately"
 msgstr "Tūlīt a_izmirst paroli"
 
-#: gtk/gtkmountoperation.c:644
+#: ../gtk/gtkmountoperation.c:641
 msgid "Remember password until you _logout"
 msgstr "Atcerēties paroli _līdz sesijas beigām"
 
-#: gtk/gtkmountoperation.c:654
+#: ../gtk/gtkmountoperation.c:651
 msgid "Remember _forever"
 msgstr "Atcerēties _mūžīgi"
 
-#: gtk/gtkmountoperation.c:883
-#, fuzzy, c-format
+#: ../gtk/gtkmountoperation.c:880
+#, c-format
 msgid "Unknown Application (PID %d)"
-msgstr "Nezināma lietotne (pid %d)"
+msgstr "Nezināma lietotne (PID %d)"
 
-#: gtk/gtkmountoperation.c:1066
-#, c-format
+#: ../gtk/gtkmountoperation.c:1063
 msgid "Unable to end process"
 msgstr "Neizdevās beigt procesu"
 
-#: gtk/gtkmountoperation.c:1103
+#: ../gtk/gtkmountoperation.c:1100
 msgid "_End Process"
 msgstr "B_eigt procesu"
 
-#: gtk/gtkmountoperation-stub.c:64
-#, fuzzy, c-format
+#: ../gtk/gtkmountoperation-stub.c:64
+#, c-format
 msgid "Cannot kill process with PID %d. Operation is not implemented."
-msgstr "Nevar nobeigt procesu ar pid %d. Operācija nav ieviesta."
+msgstr "Nevar nobeigt procesu ar PID %d. Operācija nav ieviesta."
 
 #. translators: this string is a name for the 'less' command
-#: gtk/gtkmountoperation-x11.c:862
+#: ../gtk/gtkmountoperation-x11.c:859
 msgid "Terminal Pager"
 msgstr "Termināļa lapotājs"
 
-#: gtk/gtkmountoperation-x11.c:863
+#: ../gtk/gtkmountoperation-x11.c:860
 msgid "Top Command"
 msgstr "Top komanda"
 
-#: gtk/gtkmountoperation-x11.c:864
+#: ../gtk/gtkmountoperation-x11.c:861
 msgid "Bourne Again Shell"
 msgstr "Bourne Again Shell"
 
-#: gtk/gtkmountoperation-x11.c:865
+#: ../gtk/gtkmountoperation-x11.c:862
 msgid "Bourne Shell"
 msgstr "Bourne Shell"
 
-#: gtk/gtkmountoperation-x11.c:866
+#: ../gtk/gtkmountoperation-x11.c:863
 msgid "Z Shell"
 msgstr "Z Shell"
 
-#: gtk/gtkmountoperation-x11.c:963
-#, fuzzy, c-format
+#: ../gtk/gtkmountoperation-x11.c:960
+#, c-format
 msgid "Cannot end process with PID %d: %s"
-msgstr "Nevar beigt procesu ar pid %d: %s"
+msgstr "Nevar beigt procesu ar PID %d: %s"
 
-#: gtk/gtknotebook.c:4619 gtk/gtknotebook.c:7170
+#: ../gtk/gtknotebook.c:4922 ../gtk/gtknotebook.c:7611
 #, c-format
 msgid "Page %u"
 msgstr "Lapa %u"
 
-#: gtk/gtkpagesetup.c:596 gtk/gtkpapersize.c:838 gtk/gtkpapersize.c:880
+#. Translators: the format here is used to build the string that will be rendered
+#. * in the number emblem.
+#.
+#: ../gtk/gtknumerableicon.c:482
+#, c-format
+#| msgctxt "calendar:day:digits"
+#| msgid "%d"
+msgctxt "Number format"
+msgid "%d"
+msgstr "%d"
+
+#: ../gtk/gtkpagesetup.c:648 ../gtk/gtkpapersize.c:849
+#: ../gtk/gtkpapersize.c:889
 msgid "Not a valid page setup file"
 msgstr "Nav derīgs lapas iestatījumu fails"
 
-#: gtk/gtkpagesetupunixdialog.c:179
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "Any Printer"
 msgstr "Jebkurš printeris"
 
-#: gtk/gtkpagesetupunixdialog.c:179
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "For portable documents"
 msgstr "Pārnesamiem dokumentiem"
 
-#: gtk/gtkpagesetupunixdialog.c:809
+#: ../gtk/gtkpagesetupunixdialog.c:802
 #, c-format
 msgid ""
 "Margins:\n"
@@ -1425,52 +1745,51 @@ msgstr ""
 " Augšā: %s %s\n"
 " Apakšā: %s %s"
 
-#: gtk/gtkpagesetupunixdialog.c:858 gtk/gtkprintunixdialog.c:3284
+#: ../gtk/gtkpagesetupunixdialog.c:851 ../gtk/gtkprintunixdialog.c:3376
 msgid "Manage Custom Sizes..."
 msgstr "Definēt citus izmērus..."
 
-#: gtk/gtkpagesetupunixdialog.c:909
+#: ../gtk/gtkpagesetupunixdialog.c:902
 msgid "_Format for:"
 msgstr "No_formēt priekš:"
 
-#: gtk/gtkpagesetupunixdialog.c:931 gtk/gtkprintunixdialog.c:3456
+#: ../gtk/gtkpagesetupunixdialog.c:925 ../gtk/gtkprintunixdialog.c:3556
 msgid "_Paper size:"
 msgstr "_Papīra izmēri:"
 
-#: gtk/gtkpagesetupunixdialog.c:962
+#: ../gtk/gtkpagesetupunixdialog.c:958
 msgid "_Orientation:"
 msgstr "_Orientācija:"
 
-#: gtk/gtkpagesetupunixdialog.c:1026 gtk/gtkprintunixdialog.c:3518
+#: ../gtk/gtkpagesetupunixdialog.c:1023 ../gtk/gtkprintunixdialog.c:3620
 msgid "Page Setup"
 msgstr "Lappuses iestatīšana"
 
-#: gtk/gtkpathbar.c:154
+#: ../gtk/gtkpathbar.c:156
 msgid "Up Path"
 msgstr "Augšup"
 
-#: gtk/gtkpathbar.c:156
+#: ../gtk/gtkpathbar.c:158
 msgid "Down Path"
 msgstr "Lejup"
 
-#: gtk/gtkpathbar.c:1497
+#: ../gtk/gtkpathbar.c:1516
 msgid "File System Root"
 msgstr "Failu sistēmas sakne"
 
-#: gtk/gtkprintbackend.c:749
+#: ../gtk/gtkprintbackend.c:749
 msgid "Authentication"
 msgstr "Autentificēšana"
 
-#: gtk/gtkprinteroptionwidget.c:694
+#: ../gtk/gtkprinteroptionwidget.c:692
 msgid "Not available"
 msgstr "Nav pieejams"
 
-#: gtk/gtkprinteroptionwidget.c:794
-#, fuzzy
+#: ../gtk/gtkprinteroptionwidget.c:792
 msgid "Select a folder"
-msgstr "Izvēlieties failu"
+msgstr "Izvēlieties mapi"
 
-#: gtk/gtkprinteroptionwidget.c:813
+#: ../gtk/gtkprinteroptionwidget.c:812
 msgid "_Save in folder:"
 msgstr "_Saglabāt mapē:"
 
@@ -1478,187 +1797,184 @@ msgstr "_Saglabāt mapē:"
 #. * jobs. %s gets replaced by the application name, %d gets replaced
 #. * by the job number.
 #.
-#: gtk/gtkprintoperation.c:190
+#: ../gtk/gtkprintoperation.c:263
 #, c-format
 msgid "%s job #%d"
 msgstr "%s uzdevums #%d"
 
-#: gtk/gtkprintoperation.c:1695
+#: ../gtk/gtkprintoperation.c:1768
 msgctxt "print operation status"
 msgid "Initial state"
 msgstr "Sākuma stāvoklis"
 
-#: gtk/gtkprintoperation.c:1696
+#: ../gtk/gtkprintoperation.c:1769
 msgctxt "print operation status"
 msgid "Preparing to print"
 msgstr "Gatavojas drukāt"
 
-#: gtk/gtkprintoperation.c:1697
+#: ../gtk/gtkprintoperation.c:1770
 msgctxt "print operation status"
 msgid "Generating data"
 msgstr "Veido datus"
 
-#: gtk/gtkprintoperation.c:1698
+#: ../gtk/gtkprintoperation.c:1771
 msgctxt "print operation status"
 msgid "Sending data"
 msgstr "Sūta datus"
 
-#: gtk/gtkprintoperation.c:1699
+#: ../gtk/gtkprintoperation.c:1772
 msgctxt "print operation status"
 msgid "Waiting"
 msgstr "Gaida"
 
-#: gtk/gtkprintoperation.c:1700
+#: ../gtk/gtkprintoperation.c:1773
 msgctxt "print operation status"
 msgid "Blocking on issue"
 msgstr "Apturēts problēmas dēļ"
 
-#: gtk/gtkprintoperation.c:1701
+#: ../gtk/gtkprintoperation.c:1774
 msgctxt "print operation status"
 msgid "Printing"
 msgstr "Drukā"
 
-#: gtk/gtkprintoperation.c:1702
+#: ../gtk/gtkprintoperation.c:1775
 msgctxt "print operation status"
 msgid "Finished"
 msgstr "Pabeigts"
 
-#: gtk/gtkprintoperation.c:1703
+#: ../gtk/gtkprintoperation.c:1776
 msgctxt "print operation status"
 msgid "Finished with error"
 msgstr "Pabeigts ar kļūdu"
 
-#: gtk/gtkprintoperation.c:2270
+#: ../gtk/gtkprintoperation.c:2343
 #, c-format
 msgid "Preparing %d"
 msgstr "Sagatavo %d"
 
-#: gtk/gtkprintoperation.c:2272 gtk/gtkprintoperation.c:2902
-#, c-format
+#: ../gtk/gtkprintoperation.c:2345 ../gtk/gtkprintoperation.c:2975
 msgid "Preparing"
 msgstr "Sagatavo"
 
-#: gtk/gtkprintoperation.c:2275
+#: ../gtk/gtkprintoperation.c:2348
 #, c-format
 msgid "Printing %d"
 msgstr "Drukā %d"
 
-#: gtk/gtkprintoperation.c:2932
-#, c-format
+#: ../gtk/gtkprintoperation.c:3005
 msgid "Error creating print preview"
 msgstr "Kļūda, veidojot priekšskatījumu"
 
-#: gtk/gtkprintoperation.c:2935
-#, c-format
+#: ../gtk/gtkprintoperation.c:3008
 msgid "The most probable reason is that a temporary file could not be created."
 msgstr "Visticamāk tāpēc, ka neizdevās izveidot pagaidu failu."
 
-#: gtk/gtkprintoperation-unix.c:297
+#: ../gtk/gtkprintoperation-unix.c:304
 msgid "Error launching preview"
 msgstr "Kļūda, palaižot priekšskatījumu"
 
-#: gtk/gtkprintoperation-unix.c:470 gtk/gtkprintoperation-win32.c:1447
+#: ../gtk/gtkprintoperation-unix.c:477 ../gtk/gtkprintoperation-win32.c:1447
 msgid "Application"
 msgstr "Programma"
 
-#: gtk/gtkprintoperation-win32.c:611
+#: ../gtk/gtkprintoperation-win32.c:611
 msgid "Printer offline"
 msgstr "Printeris atslēgts"
 
-#: gtk/gtkprintoperation-win32.c:613
+#: ../gtk/gtkprintoperation-win32.c:613
 msgid "Out of paper"
 msgstr "Beidzies papīrs"
 
 #. Translators: this is a printer status.
-#: gtk/gtkprintoperation-win32.c:615
-#: modules/printbackends/cups/gtkprintbackendcups.c:1998
+#: ../gtk/gtkprintoperation-win32.c:615
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2022
 msgid "Paused"
 msgstr "Apturēts"
 
-#: gtk/gtkprintoperation-win32.c:617
+#: ../gtk/gtkprintoperation-win32.c:617
 msgid "Need user intervention"
 msgstr "Nepieciešama lietotāja iejaukšanās"
 
-#: gtk/gtkprintoperation-win32.c:717
+#: ../gtk/gtkprintoperation-win32.c:717
 msgid "Custom size"
 msgstr "Pielāgots izmērs"
 
-#: gtk/gtkprintoperation-win32.c:1539
+#: ../gtk/gtkprintoperation-win32.c:1539
 msgid "No printer found"
 msgstr "Nav atrasts printeris"
 
-#: gtk/gtkprintoperation-win32.c:1566
+#: ../gtk/gtkprintoperation-win32.c:1566
 msgid "Invalid argument to CreateDC"
 msgstr "Nederīgs CreateDC arguments"
 
-#: gtk/gtkprintoperation-win32.c:1602 gtk/gtkprintoperation-win32.c:1829
+#: ../gtk/gtkprintoperation-win32.c:1602 ../gtk/gtkprintoperation-win32.c:1829
 msgid "Error from StartDoc"
 msgstr "Kļūda no StartDoc"
 
-#: gtk/gtkprintoperation-win32.c:1684 gtk/gtkprintoperation-win32.c:1707
-#: gtk/gtkprintoperation-win32.c:1755
+#: ../gtk/gtkprintoperation-win32.c:1684 ../gtk/gtkprintoperation-win32.c:1707
+#: ../gtk/gtkprintoperation-win32.c:1755
 msgid "Not enough free memory"
 msgstr "Nepietiek brīvas atmiņas"
 
-#: gtk/gtkprintoperation-win32.c:1760
+#: ../gtk/gtkprintoperation-win32.c:1760
 msgid "Invalid argument to PrintDlgEx"
 msgstr "Nederīgs PrintDlgEx arguments"
 
-#: gtk/gtkprintoperation-win32.c:1765
+#: ../gtk/gtkprintoperation-win32.c:1765
 msgid "Invalid pointer to PrintDlgEx"
 msgstr "Nederīgs rādītājs uz PrintDlgEx"
 
-#: gtk/gtkprintoperation-win32.c:1770
+#: ../gtk/gtkprintoperation-win32.c:1770
 msgid "Invalid handle to PrintDlgEx"
 msgstr "Nederīgs PrintDlgEx turis"
 
-#: gtk/gtkprintoperation-win32.c:1775
+#: ../gtk/gtkprintoperation-win32.c:1775
 msgid "Unspecified error"
 msgstr "Nenorādīta kļūda"
 
-#: gtk/gtkprintunixdialog.c:618
+#: ../gtk/gtkprintunixdialog.c:688
 msgid "Getting printer information failed"
 msgstr "Neizdevās iegūt printera informāciju"
 
-#: gtk/gtkprintunixdialog.c:1873
+#: ../gtk/gtkprintunixdialog.c:1942
 msgid "Getting printer information..."
 msgstr "Iegūst printera informāciju..."
 
-#: gtk/gtkprintunixdialog.c:2139
+#: ../gtk/gtkprintunixdialog.c:2216
 msgid "Printer"
 msgstr "Printeris"
 
 #. Translators: this is the header for the location column in the print dialog
-#: gtk/gtkprintunixdialog.c:2149
+#: ../gtk/gtkprintunixdialog.c:2226
 msgid "Location"
 msgstr "Vieta"
 
 #. Translators: this is the header for the printer status column in the print dialog
-#: gtk/gtkprintunixdialog.c:2160
+#: ../gtk/gtkprintunixdialog.c:2237
 msgid "Status"
 msgstr "Statuss"
 
-#: gtk/gtkprintunixdialog.c:2186
+#: ../gtk/gtkprintunixdialog.c:2263
 msgid "Range"
 msgstr "Drukāt"
 
-#: gtk/gtkprintunixdialog.c:2190
+#: ../gtk/gtkprintunixdialog.c:2267
 msgid "_All Pages"
 msgstr "Vis_as lapas"
 
-#: gtk/gtkprintunixdialog.c:2197
+#: ../gtk/gtkprintunixdialog.c:2274
 msgid "C_urrent Page"
 msgstr "Šo lap_u"
 
-#: gtk/gtkprintunixdialog.c:2207
+#: ../gtk/gtkprintunixdialog.c:2284
 msgid "Se_lection"
 msgstr "Izvē_lēto"
 
-#: gtk/gtkprintunixdialog.c:2216
+#: ../gtk/gtkprintunixdialog.c:2293
 msgid "Pag_es:"
 msgstr "L_apas:"
 
-#: gtk/gtkprintunixdialog.c:2217
+#: ../gtk/gtkprintunixdialog.c:2294
 msgid ""
 "Specify one or more page ranges,\n"
 " e.g. 1-3,7,11"
@@ -1666,28 +1982,28 @@ msgstr ""
 "Norādiet vienu vai vairākus lapu apgabalus,\n"
 "piemēram: 1-3,7,11"
 
-#: gtk/gtkprintunixdialog.c:2227
+#: ../gtk/gtkprintunixdialog.c:2304
 msgid "Pages"
 msgstr "Lapas"
 
-#: gtk/gtkprintunixdialog.c:2240
+#: ../gtk/gtkprintunixdialog.c:2317
 msgid "Copies"
 msgstr "Kopijas"
 
 #. FIXME chpe: too much space between Copies and spinbutton, put those 2 in a hbox and make it span 2 columns
-#: gtk/gtkprintunixdialog.c:2245
+#: ../gtk/gtkprintunixdialog.c:2322
 msgid "Copie_s:"
 msgstr "Kopija_s:"
 
-#: gtk/gtkprintunixdialog.c:2263
+#: ../gtk/gtkprintunixdialog.c:2341
 msgid "C_ollate"
 msgstr "Sa_likt pa lappusēm"
 
-#: gtk/gtkprintunixdialog.c:2271
+#: ../gtk/gtkprintunixdialog.c:2349
 msgid "_Reverse"
 msgstr "Ot_rādi"
 
-#: gtk/gtkprintunixdialog.c:2291
+#: ../gtk/gtkprintunixdialog.c:2369
 msgid "General"
 msgstr "Vispārīgi"
 
@@ -1697,168 +2013,168 @@ msgstr "Vispārīgi"
 #. Translators: These strings name the possible arrangements of
 #. * multiple pages on a sheet when printing
 #.
-#: gtk/gtkprintunixdialog.c:3017
-#: modules/printbackends/cups/gtkprintbackendcups.c:3508
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, top to bottom"
 msgstr "No kreisās uz labo, no augšas uz leju"
 
-#: gtk/gtkprintunixdialog.c:3017
-#: modules/printbackends/cups/gtkprintbackendcups.c:3508
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, bottom to top"
 msgstr "No kreisās uz labo, no lejas uz augšu"
 
-#: gtk/gtkprintunixdialog.c:3018
-#: modules/printbackends/cups/gtkprintbackendcups.c:3509
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, top to bottom"
 msgstr "No labās uz kreiso, no augšas uz leju"
 
-#: gtk/gtkprintunixdialog.c:3018
-#: modules/printbackends/cups/gtkprintbackendcups.c:3509
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, bottom to top"
 msgstr "No labās uz kreiso, no lejas uz augšu"
 
-#: gtk/gtkprintunixdialog.c:3019
-#: modules/printbackends/cups/gtkprintbackendcups.c:3510
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, left to right"
 msgstr "No augšas uz leju, no kreisās uz labo"
 
-#: gtk/gtkprintunixdialog.c:3019
-#: modules/printbackends/cups/gtkprintbackendcups.c:3510
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, right to left"
 msgstr "No augšas uz leju, no labās uz kreiso"
 
-#: gtk/gtkprintunixdialog.c:3020
-#: modules/printbackends/cups/gtkprintbackendcups.c:3511
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, left to right"
 msgstr "No lejas uz augšu, no kreisās uz labo"
 
-#: gtk/gtkprintunixdialog.c:3020
-#: modules/printbackends/cups/gtkprintbackendcups.c:3511
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, right to left"
 msgstr "No lejas uz augšu, no labās uz kreiso"
 
 #. Translators, this string is used to label the option in the print
 #. * dialog that controls in what order multiple pages are arranged
 #.
-#: gtk/gtkprintunixdialog.c:3024 gtk/gtkprintunixdialog.c:3037
-#: modules/printbackends/cups/gtkprintbackendcups.c:3543
+#: ../gtk/gtkprintunixdialog.c:3116 ../gtk/gtkprintunixdialog.c:3129
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3609
 msgid "Page Ordering"
 msgstr "Lapu secība"
 
-#: gtk/gtkprintunixdialog.c:3053
+#: ../gtk/gtkprintunixdialog.c:3145
 msgid "Left to right"
 msgstr "No kreisās uz labo"
 
-#: gtk/gtkprintunixdialog.c:3054
+#: ../gtk/gtkprintunixdialog.c:3146
 msgid "Right to left"
 msgstr "No labās uz kreiso"
 
-#: gtk/gtkprintunixdialog.c:3066
+#: ../gtk/gtkprintunixdialog.c:3158
 msgid "Top to bottom"
 msgstr "No augšas uz leju"
 
-#: gtk/gtkprintunixdialog.c:3067
+#: ../gtk/gtkprintunixdialog.c:3159
 msgid "Bottom to top"
 msgstr "No lejas uz augšu"
 
-#: gtk/gtkprintunixdialog.c:3307
+#: ../gtk/gtkprintunixdialog.c:3399
 msgid "Layout"
 msgstr "Izkārtojums"
 
-#: gtk/gtkprintunixdialog.c:3311
+#: ../gtk/gtkprintunixdialog.c:3403
 msgid "T_wo-sided:"
 msgstr "A_bās pusēs:"
 
-#: gtk/gtkprintunixdialog.c:3326
+#: ../gtk/gtkprintunixdialog.c:3419
 msgid "Pages per _side:"
 msgstr "Lapa_s lappusē:"
 
-#: gtk/gtkprintunixdialog.c:3343
+#: ../gtk/gtkprintunixdialog.c:3437
 msgid "Page or_dering:"
 msgstr "Lapu _secība:"
 
-#: gtk/gtkprintunixdialog.c:3359
+#: ../gtk/gtkprintunixdialog.c:3454
 msgid "_Only print:"
 msgstr "Drukāt _tikai:"
 
 #. In enum order
-#: gtk/gtkprintunixdialog.c:3374
+#: ../gtk/gtkprintunixdialog.c:3470
 msgid "All sheets"
 msgstr "Visas loksnes"
 
-#: gtk/gtkprintunixdialog.c:3375
+#: ../gtk/gtkprintunixdialog.c:3471
 msgid "Even sheets"
 msgstr "Pāra loksnes"
 
-#: gtk/gtkprintunixdialog.c:3376
+#: ../gtk/gtkprintunixdialog.c:3472
 msgid "Odd sheets"
 msgstr "Nepāra loksnes"
 
-#: gtk/gtkprintunixdialog.c:3379
+#: ../gtk/gtkprintunixdialog.c:3475
 msgid "Sc_ale:"
 msgstr "_Mērogs:"
 
-#: gtk/gtkprintunixdialog.c:3406
+#: ../gtk/gtkprintunixdialog.c:3503
 msgid "Paper"
 msgstr "Papīrs"
 
-#: gtk/gtkprintunixdialog.c:3410
+#: ../gtk/gtkprintunixdialog.c:3507
 msgid "Paper _type:"
 msgstr "Papīra _tips:"
 
-#: gtk/gtkprintunixdialog.c:3425
+#: ../gtk/gtkprintunixdialog.c:3523
 msgid "Paper _source:"
 msgstr "Papīra _avots:"
 
-#: gtk/gtkprintunixdialog.c:3440
+#: ../gtk/gtkprintunixdialog.c:3539
 msgid "Output t_ray:"
 msgstr "Izvades _paplāte:"
 
-#: gtk/gtkprintunixdialog.c:3480
+#: ../gtk/gtkprintunixdialog.c:3581
 msgid "Or_ientation:"
 msgstr "Or_ientācija:"
 
 #. In enum order
-#: gtk/gtkprintunixdialog.c:3495
+#: ../gtk/gtkprintunixdialog.c:3597
 msgid "Portrait"
 msgstr "Portrets"
 
-#: gtk/gtkprintunixdialog.c:3496
+#: ../gtk/gtkprintunixdialog.c:3598
 msgid "Landscape"
 msgstr "Ainava"
 
-#: gtk/gtkprintunixdialog.c:3497
+#: ../gtk/gtkprintunixdialog.c:3599
 msgid "Reverse portrait"
 msgstr "Apgriezts portrets"
 
-#: gtk/gtkprintunixdialog.c:3498
+#: ../gtk/gtkprintunixdialog.c:3600
 msgid "Reverse landscape"
 msgstr "Apgriezta ainava"
 
-#: gtk/gtkprintunixdialog.c:3543
+#: ../gtk/gtkprintunixdialog.c:3645
 msgid "Job Details"
 msgstr "Uzdevuma detaļas"
 
-#: gtk/gtkprintunixdialog.c:3549
+#: ../gtk/gtkprintunixdialog.c:3651
 msgid "Pri_ority:"
 msgstr "Pri_oritāte:"
 
-#: gtk/gtkprintunixdialog.c:3564
+#: ../gtk/gtkprintunixdialog.c:3667
 msgid "_Billing info:"
 msgstr "_Rēķina informācija:"
 
-#: gtk/gtkprintunixdialog.c:3582
+#: ../gtk/gtkprintunixdialog.c:3686
 msgid "Print Document"
 msgstr "Drukāt dokumentu"
 
 #. Translators: this is one of the choices for the print at option
 #. * in the print dialog
 #.
-#: gtk/gtkprintunixdialog.c:3591
+#: ../gtk/gtkprintunixdialog.c:3695
 msgid "_Now"
 msgstr "_Tagad"
 
-#: gtk/gtkprintunixdialog.c:3602
+#: ../gtk/gtkprintunixdialog.c:3706
 msgid "A_t:"
 msgstr "_Vēlāk:"
 
@@ -1866,7 +2182,7 @@ msgstr "_Vēlāk:"
 #. * You can remove the am/pm values below for your locale if they are not
 #. * supported.
 #.
-#: gtk/gtkprintunixdialog.c:3608
+#: ../gtk/gtkprintunixdialog.c:3712
 msgid ""
 "Specify the time of print,\n"
 " e.g. 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"
@@ -1874,121 +2190,105 @@ msgstr ""
 "Norādiet vēlamo drukāšanas laiku,\n"
 " piemēram, 15:30, 23:45:20"
 
-#: gtk/gtkprintunixdialog.c:3618
+#: ../gtk/gtkprintunixdialog.c:3722
 msgid "Time of print"
 msgstr "Drukāšanas laiks"
 
-#: gtk/gtkprintunixdialog.c:3634
+#: ../gtk/gtkprintunixdialog.c:3738
 msgid "On _hold"
 msgstr "Ap_turēts"
 
-#: gtk/gtkprintunixdialog.c:3635
+#: ../gtk/gtkprintunixdialog.c:3739
 msgid "Hold the job until it is explicitly released"
 msgstr "Apturēt uzdevumu, līdz tiks norādīts to atsākt"
 
-#: gtk/gtkprintunixdialog.c:3655
+#: ../gtk/gtkprintunixdialog.c:3759
 msgid "Add Cover Page"
 msgstr "Pievienot vāka lapu"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: gtk/gtkprintunixdialog.c:3664
+#: ../gtk/gtkprintunixdialog.c:3768
 msgid "Be_fore:"
 msgstr "Pir_ms:"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: gtk/gtkprintunixdialog.c:3682
+#: ../gtk/gtkprintunixdialog.c:3787
 msgid "_After:"
 msgstr "_Pēc:"
 
 #. Translators: this is the tab label for the notebook tab containing
 #. * job-specific options in the print dialog
 #.
-#: gtk/gtkprintunixdialog.c:3700
+#: ../gtk/gtkprintunixdialog.c:3806
 msgid "Job"
 msgstr "Uzdevums"
 
-#: gtk/gtkprintunixdialog.c:3766
+#: ../gtk/gtkprintunixdialog.c:3872
 msgid "Advanced"
 msgstr "Paplašināti"
 
 #. Translators: this will appear as tab label in print dialog.
-#: gtk/gtkprintunixdialog.c:3804
+#: ../gtk/gtkprintunixdialog.c:3910
 msgid "Image Quality"
 msgstr "Attēla kvalitāte"
 
 #. Translators: this will appear as tab label in print dialog.
-#: gtk/gtkprintunixdialog.c:3808
+#: ../gtk/gtkprintunixdialog.c:3914
 msgid "Color"
 msgstr "Krāsa"
 
 #. Translators: this will appear as tab label in print dialog.
 #. It's a typographical term, as in "Binding and finishing"
-#: gtk/gtkprintunixdialog.c:3813
+#: ../gtk/gtkprintunixdialog.c:3919
 msgid "Finishing"
 msgstr "Pēcapstrāde"
 
-#: gtk/gtkprintunixdialog.c:3823
+#: ../gtk/gtkprintunixdialog.c:3929
 msgid "Some of the settings in the dialog conflict"
 msgstr "Daži iestatījumi dialogā nav savietojami"
 
-#: gtk/gtkprintunixdialog.c:3846
+#: ../gtk/gtkprintunixdialog.c:3952
 msgid "Print"
 msgstr "Drukāt"
 
-#: gtk/gtkrc.c:2834
-#, c-format
-msgid "Unable to find include file: \"%s\""
-msgstr "Nevar atrast iekļaujamo failu: \"%s\""
-
-#: gtk/gtkrc.c:3470 gtk/gtkrc.c:3473
-#, c-format
-msgid "Unable to locate image file in pixmap_path: \"%s\""
-msgstr "Nevar atrast attēla failu pixmap_path: \"%s\""
-
-#: gtk/gtkrecentaction.c:165 gtk/gtkrecentaction.c:173
-#: gtk/gtkrecentchoosermenu.c:615 gtk/gtkrecentchoosermenu.c:623
-#, c-format
-msgid "This function is not implemented for widgets of class '%s'"
-msgstr "Šī funkcija nav ieviesta '%s' klases logdaļām"
-
-#: gtk/gtkrecentchooserdefault.c:482
+#: ../gtk/gtkrecentchooserdefault.c:485
 msgid "Select which type of documents are shown"
 msgstr "Izvēlieties, kuru tipu dokumentus rādīt"
 
-#: gtk/gtkrecentchooserdefault.c:1138 gtk/gtkrecentchooserdefault.c:1175
+#: ../gtk/gtkrecentchooserdefault.c:1142 ../gtk/gtkrecentchooserdefault.c:1179
 #, c-format
 msgid "No item for URI '%s' found"
 msgstr "Nav atrastas URI '%s' atbilstošas vienības"
 
-#: gtk/gtkrecentchooserdefault.c:1302
+#: ../gtk/gtkrecentchooserdefault.c:1306
 msgid "Untitled filter"
 msgstr "Nenosaukts filtrs"
 
-#: gtk/gtkrecentchooserdefault.c:1655
+#: ../gtk/gtkrecentchooserdefault.c:1659
 msgid "Could not remove item"
 msgstr "Neizdevās dzēst vienību"
 
-#: gtk/gtkrecentchooserdefault.c:1699
+#: ../gtk/gtkrecentchooserdefault.c:1703
 msgid "Could not clear list"
 msgstr "Neizdevās attīrīt sarakstu"
 
-#: gtk/gtkrecentchooserdefault.c:1783
+#: ../gtk/gtkrecentchooserdefault.c:1787
 msgid "Copy _Location"
 msgstr "Kopēt _vietu"
 
-#: gtk/gtkrecentchooserdefault.c:1796
+#: ../gtk/gtkrecentchooserdefault.c:1800
 msgid "_Remove From List"
 msgstr "Izņemt no sa_raksta"
 
-#: gtk/gtkrecentchooserdefault.c:1805
+#: ../gtk/gtkrecentchooserdefault.c:1809
 msgid "_Clear List"
 msgstr "_Attīrīt sarakstu"
 
-#: gtk/gtkrecentchooserdefault.c:1819
+#: ../gtk/gtkrecentchooserdefault.c:1823
 msgid "Show _Private Resources"
 msgstr "Rādīt _privātos resursus"
 
@@ -2002,21 +2302,21 @@ msgstr "Rādīt _privātos resursus"
 #. * user appended or prepended custom menu items to the
 #. * recent chooser menu widget.
 #.
-#: gtk/gtkrecentchoosermenu.c:369
+#: ../gtk/gtkrecentchoosermenu.c:362
 msgid "No items found"
 msgstr "Nekas nav atrasts"
 
-#: gtk/gtkrecentchoosermenu.c:535 gtk/gtkrecentchoosermenu.c:591
+#: ../gtk/gtkrecentchoosermenu.c:528 ../gtk/gtkrecentchoosermenu.c:584
 #, c-format
 msgid "No recently used resource found with URI `%s'"
 msgstr "Nav atrasts neviens nesen lietots resurss ar URI '%s'"
 
-#: gtk/gtkrecentchoosermenu.c:802
+#: ../gtk/gtkrecentchoosermenu.c:794
 #, c-format
 msgid "Open '%s'"
 msgstr "Atvērt '%s'"
 
-#: gtk/gtkrecentchoosermenu.c:832
+#: ../gtk/gtkrecentchoosermenu.c:824
 msgid "Unknown item"
 msgstr "Nezināma vienība"
 
@@ -2025,7 +2325,7 @@ msgstr "Nezināma vienība"
 #. * the %s is the name of the item. Please keep the _ in front
 #. * of the number to give these menu items a mnemonic.
 #.
-#: gtk/gtkrecentchoosermenu.c:843
+#: ../gtk/gtkrecentchoosermenu.c:835
 #, c-format
 msgctxt "recent menu label"
 msgid "_%d. %s"
@@ -2034,46 +2334,43 @@ msgstr "_%d. %s"
 #. This is the format that is used for items in a recent files menu.
 #. * The %d is the number of the item, the %s is the name of the item.
 #.
-#: gtk/gtkrecentchoosermenu.c:848
+#: ../gtk/gtkrecentchoosermenu.c:840
 #, c-format
 msgctxt "recent menu label"
 msgid "%d. %s"
 msgstr "%d. %s"
 
-#: gtk/gtkrecentmanager.c:980 gtk/gtkrecentmanager.c:993
-#: gtk/gtkrecentmanager.c:1131 gtk/gtkrecentmanager.c:1141
-#: gtk/gtkrecentmanager.c:1194 gtk/gtkrecentmanager.c:1203
-#: gtk/gtkrecentmanager.c:1218
+#: ../gtk/gtkrecentmanager.c:1006 ../gtk/gtkrecentmanager.c:1019
+#: ../gtk/gtkrecentmanager.c:1156 ../gtk/gtkrecentmanager.c:1166
+#: ../gtk/gtkrecentmanager.c:1218 ../gtk/gtkrecentmanager.c:1227
+#: ../gtk/gtkrecentmanager.c:1242
 #, c-format
 msgid "Unable to find an item with URI '%s'"
 msgstr "Nevar atrast vienību ar URI '%s'"
 
-#: gtk/gtkspinner.c:456
-msgctxt "throbbing progress animation widget"
-msgid "Spinner"
-msgstr "Spinner"
-
-#: gtk/gtkspinner.c:457
-msgid "Provides visual indication of progress"
-msgstr "Vizuāls progresa indikators"
+#: ../gtk/gtkrecentmanager.c:2442
+#, c-format
+msgid "No registered application with name '%s' for item with URI '%s' found"
+msgstr ""
+"Nav atrastu reģistrētu lietotņu ar nosaukumu '%s' vienumiem ar URI '%s'"
 
 #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
-#: gtk/gtkstock.c:313
+#: ../gtk/gtkstock.c:313
 msgctxt "Stock label"
 msgid "Information"
 msgstr "Informācija"
 
-#: gtk/gtkstock.c:314
+#: ../gtk/gtkstock.c:314
 msgctxt "Stock label"
 msgid "Warning"
 msgstr "Brīdinājums"
 
-#: gtk/gtkstock.c:315
+#: ../gtk/gtkstock.c:315
 msgctxt "Stock label"
 msgid "Error"
 msgstr "Kļūda"
 
-#: gtk/gtkstock.c:316
+#: ../gtk/gtkstock.c:316
 msgctxt "Stock label"
 msgid "Question"
 msgstr "Jautājums"
@@ -2081,696 +2378,705 @@ msgstr "Jautājums"
 #. FIXME these need accelerators when appropriate, and
 #. * need the mnemonics to be rationalized
 #.
-#: gtk/gtkstock.c:321
+#: ../gtk/gtkstock.c:321
 msgctxt "Stock label"
 msgid "_About"
 msgstr "P_ar"
 
-#: gtk/gtkstock.c:322
+#: ../gtk/gtkstock.c:322
 msgctxt "Stock label"
 msgid "_Add"
 msgstr "_Pievienot"
 
-#: gtk/gtkstock.c:323
+#: ../gtk/gtkstock.c:323
 msgctxt "Stock label"
 msgid "_Apply"
 msgstr "_Pielietot"
 
-#: gtk/gtkstock.c:324
+#: ../gtk/gtkstock.c:324
 msgctxt "Stock label"
 msgid "_Bold"
 msgstr "_Treknināts"
 
-#: gtk/gtkstock.c:325
+#: ../gtk/gtkstock.c:325
 msgctxt "Stock label"
 msgid "_Cancel"
 msgstr "At_celt"
 
-#: gtk/gtkstock.c:326
-#, fuzzy
+#: ../gtk/gtkstock.c:326
 msgctxt "Stock label"
 msgid "_CD-ROM"
-msgstr "_CD-Rom"
+msgstr "_CD-ROM"
 
-#: gtk/gtkstock.c:327
+#: ../gtk/gtkstock.c:327
 msgctxt "Stock label"
 msgid "_Clear"
 msgstr "_Attīrīt"
 
-#: gtk/gtkstock.c:328
+#: ../gtk/gtkstock.c:328
 msgctxt "Stock label"
 msgid "_Close"
 msgstr "Aiz_vērt"
 
-#: gtk/gtkstock.c:329
+#: ../gtk/gtkstock.c:329
 msgctxt "Stock label"
 msgid "C_onnect"
 msgstr "Pie_slēgties"
 
-#: gtk/gtkstock.c:330
+#: ../gtk/gtkstock.c:330
 msgctxt "Stock label"
 msgid "_Convert"
 msgstr "_Pārveidot"
 
-#: gtk/gtkstock.c:331
+#: ../gtk/gtkstock.c:331
 msgctxt "Stock label"
 msgid "_Copy"
 msgstr "_Kopēt"
 
-#: gtk/gtkstock.c:332
+#: ../gtk/gtkstock.c:332
 msgctxt "Stock label"
 msgid "Cu_t"
 msgstr "Izgriez_t"
 
-#: gtk/gtkstock.c:333
+#: ../gtk/gtkstock.c:333
 msgctxt "Stock label"
 msgid "_Delete"
 msgstr "_Dzēst"
 
-#: gtk/gtkstock.c:334
+#: ../gtk/gtkstock.c:334
 msgctxt "Stock label"
 msgid "_Discard"
 msgstr "_Izmest"
 
-#: gtk/gtkstock.c:335
+#: ../gtk/gtkstock.c:335
 msgctxt "Stock label"
 msgid "_Disconnect"
 msgstr "_Atvienoties"
 
-#: gtk/gtkstock.c:336
+#: ../gtk/gtkstock.c:336
 msgctxt "Stock label"
 msgid "_Execute"
 msgstr "Izpi_ldīt"
 
-#: gtk/gtkstock.c:337
+#: ../gtk/gtkstock.c:337
 msgctxt "Stock label"
 msgid "_Edit"
 msgstr "R_ediģēt"
 
-#: gtk/gtkstock.c:338
-#, fuzzy
+#: ../gtk/gtkstock.c:338
 msgctxt "Stock label"
 msgid "_File"
-msgstr "_Faili"
+msgstr "_Fails"
 
-#: gtk/gtkstock.c:339
+#: ../gtk/gtkstock.c:339
 msgctxt "Stock label"
 msgid "_Find"
 msgstr "At_rast"
 
-#: gtk/gtkstock.c:340
+#: ../gtk/gtkstock.c:340
 msgctxt "Stock label"
 msgid "Find and _Replace"
 msgstr "Atrast un _aizvietot"
 
-#: gtk/gtkstock.c:341
+#: ../gtk/gtkstock.c:341
 msgctxt "Stock label"
 msgid "_Floppy"
 msgstr "_Diskete"
 
-#: gtk/gtkstock.c:342
+#: ../gtk/gtkstock.c:342
 msgctxt "Stock label"
 msgid "_Fullscreen"
 msgstr "_Pilnekrāns"
 
-#: gtk/gtkstock.c:343
+#: ../gtk/gtkstock.c:343
 msgctxt "Stock label"
 msgid "_Leave Fullscreen"
 msgstr "Pamest pi_lnekrāna režīmu"
 
 #. This is a navigation label as in "go to the bottom of the page"
-#: gtk/gtkstock.c:345
+#: ../gtk/gtkstock.c:345
 msgctxt "Stock label, navigation"
 msgid "_Bottom"
 msgstr "_Apakša"
 
 #. This is a navigation label as in "go to the first page"
-#: gtk/gtkstock.c:347
+#: ../gtk/gtkstock.c:347
 msgctxt "Stock label, navigation"
 msgid "_First"
 msgstr "_Pirmais"
 
 #. This is a navigation label as in "go to the last page"
-#: gtk/gtkstock.c:349
+#: ../gtk/gtkstock.c:349
 msgctxt "Stock label, navigation"
 msgid "_Last"
 msgstr "_Pēdējais"
 
 #. This is a navigation label as in "go to the top of the page"
-#: gtk/gtkstock.c:351
+#: ../gtk/gtkstock.c:351
 msgctxt "Stock label, navigation"
 msgid "_Top"
 msgstr "_Augša"
 
 #. This is a navigation label as in "go back"
-#: gtk/gtkstock.c:353
+#: ../gtk/gtkstock.c:353
 msgctxt "Stock label, navigation"
 msgid "_Back"
 msgstr "_Atpakaļ"
 
 #. This is a navigation label as in "go down"
-#: gtk/gtkstock.c:355
+#: ../gtk/gtkstock.c:355
 msgctxt "Stock label, navigation"
 msgid "_Down"
 msgstr "_Lejup"
 
 #. This is a navigation label as in "go forward"
-#: gtk/gtkstock.c:357
+#: ../gtk/gtkstock.c:357
 msgctxt "Stock label, navigation"
 msgid "_Forward"
 msgstr "Uz _priekšu"
 
 #. This is a navigation label as in "go up"
-#: gtk/gtkstock.c:359
+#: ../gtk/gtkstock.c:359
 msgctxt "Stock label, navigation"
 msgid "_Up"
 msgstr "_Augšup"
 
-#: gtk/gtkstock.c:360
-#, fuzzy
+#: ../gtk/gtkstock.c:360
 msgctxt "Stock label"
 msgid "_Hard Disk"
 msgstr "_Cietais disks"
 
-#: gtk/gtkstock.c:361
+#: ../gtk/gtkstock.c:361
 msgctxt "Stock label"
 msgid "_Help"
 msgstr "_Palīdzība"
 
-#: gtk/gtkstock.c:362
+#: ../gtk/gtkstock.c:362
 msgctxt "Stock label"
 msgid "_Home"
 msgstr "_Mājas"
 
-#: gtk/gtkstock.c:363
+#: ../gtk/gtkstock.c:363
 msgctxt "Stock label"
 msgid "Increase Indent"
 msgstr "Palielināt atkāpi"
 
-#: gtk/gtkstock.c:364
+#: ../gtk/gtkstock.c:364
 msgctxt "Stock label"
 msgid "Decrease Indent"
 msgstr "Samazināt atkāpi"
 
-#: gtk/gtkstock.c:365
+#: ../gtk/gtkstock.c:365
 msgctxt "Stock label"
 msgid "_Index"
 msgstr "_Rādītājs"
 
-#: gtk/gtkstock.c:366
+#: ../gtk/gtkstock.c:366
 msgctxt "Stock label"
 msgid "_Information"
 msgstr "_Informācija"
 
-#: gtk/gtkstock.c:367
+#: ../gtk/gtkstock.c:367
 msgctxt "Stock label"
 msgid "_Italic"
 msgstr "_Slīpraksts"
 
-#: gtk/gtkstock.c:368
+#: ../gtk/gtkstock.c:368
 msgctxt "Stock label"
 msgid "_Jump to"
 msgstr "Pārle_kt uz"
 
 #. This is about text justification, "centered text"
-#: gtk/gtkstock.c:370
+#: ../gtk/gtkstock.c:370
 msgctxt "Stock label"
 msgid "_Center"
 msgstr "_Centrēt"
 
 #. This is about text justification
-#: gtk/gtkstock.c:372
+#: ../gtk/gtkstock.c:372
 msgctxt "Stock label"
 msgid "_Fill"
 msgstr "_Aizpildīt"
 
 #. This is about text justification, "left-justified text"
-#: gtk/gtkstock.c:374
+#: ../gtk/gtkstock.c:374
 msgctxt "Stock label"
 msgid "_Left"
 msgstr "Pa _kreisi"
 
 #. This is about text justification, "right-justified text"
-#: gtk/gtkstock.c:376
+#: ../gtk/gtkstock.c:376
 msgctxt "Stock label"
 msgid "_Right"
 msgstr "_Pa labi"
 
 #. Media label, as in "fast forward"
-#: gtk/gtkstock.c:379
+#: ../gtk/gtkstock.c:379
 msgctxt "Stock label, media"
 msgid "_Forward"
 msgstr "Uz p_riekšu"
 
 #. Media label, as in "next song"
-#: gtk/gtkstock.c:381
+#: ../gtk/gtkstock.c:381
 msgctxt "Stock label, media"
 msgid "_Next"
 msgstr "_Nākamais"
 
 #. Media label, as in "pause music"
-#: gtk/gtkstock.c:383
+#: ../gtk/gtkstock.c:383
 msgctxt "Stock label, media"
 msgid "P_ause"
 msgstr "_Apturēt"
 
 #. Media label, as in "play music"
-#: gtk/gtkstock.c:385
+#: ../gtk/gtkstock.c:385
 msgctxt "Stock label, media"
 msgid "_Play"
 msgstr "A_tskaņot"
 
 #. Media label, as in  "previous song"
-#: gtk/gtkstock.c:387
+#: ../gtk/gtkstock.c:387
 msgctxt "Stock label, media"
 msgid "Pre_vious"
 msgstr "_Iepriekšējais"
 
 #. Media label
-#: gtk/gtkstock.c:389
+#: ../gtk/gtkstock.c:389
 msgctxt "Stock label, media"
 msgid "_Record"
 msgstr "Ie_rakstīt"
 
 #. Media label
-#: gtk/gtkstock.c:391
+#: ../gtk/gtkstock.c:391
 msgctxt "Stock label, media"
 msgid "R_ewind"
 msgstr "A_tpakaļ"
 
 #. Media label
-#: gtk/gtkstock.c:393
+#: ../gtk/gtkstock.c:393
 msgctxt "Stock label, media"
 msgid "_Stop"
 msgstr "_Stop"
 
-#: gtk/gtkstock.c:394
+#: ../gtk/gtkstock.c:394
 msgctxt "Stock label"
 msgid "_Network"
 msgstr "_Tīkls"
 
-#: gtk/gtkstock.c:395
+#: ../gtk/gtkstock.c:395
 msgctxt "Stock label"
 msgid "_New"
 msgstr "Jau_ns"
 
-#: gtk/gtkstock.c:396
+#: ../gtk/gtkstock.c:396
 msgctxt "Stock label"
 msgid "_No"
 msgstr "_Nē"
 
-#: gtk/gtkstock.c:397
+#: ../gtk/gtkstock.c:397
 msgctxt "Stock label"
 msgid "_OK"
 msgstr "_Labi"
 
-#: gtk/gtkstock.c:398
+#: ../gtk/gtkstock.c:398
 msgctxt "Stock label"
 msgid "_Open"
 msgstr "_Atvērt"
 
 #. Page orientation
-#: gtk/gtkstock.c:400
+#: ../gtk/gtkstock.c:400
 msgctxt "Stock label"
 msgid "Landscape"
 msgstr "Ainava"
 
 #. Page orientation
-#: gtk/gtkstock.c:402
+#: ../gtk/gtkstock.c:402
 msgctxt "Stock label"
 msgid "Portrait"
 msgstr "Portrets"
 
 #. Page orientation
-#: gtk/gtkstock.c:404
+#: ../gtk/gtkstock.c:404
 msgctxt "Stock label"
 msgid "Reverse landscape"
 msgstr "Apgriezta ainava"
 
 #. Page orientation
-#: gtk/gtkstock.c:406
+#: ../gtk/gtkstock.c:406
 msgctxt "Stock label"
 msgid "Reverse portrait"
 msgstr "Apgriezts portrets"
 
-#: gtk/gtkstock.c:407
+#: ../gtk/gtkstock.c:407
 msgctxt "Stock label"
 msgid "Page Set_up"
 msgstr "Lapas iestatīj_umi"
 
-#: gtk/gtkstock.c:408
+#: ../gtk/gtkstock.c:408
 msgctxt "Stock label"
 msgid "_Paste"
 msgstr "_Ievietot"
 
-#: gtk/gtkstock.c:409
+#: ../gtk/gtkstock.c:409
 msgctxt "Stock label"
 msgid "_Preferences"
 msgstr "_Iestatījumi"
 
-#: gtk/gtkstock.c:410
+#: ../gtk/gtkstock.c:410
 msgctxt "Stock label"
 msgid "_Print"
 msgstr "_Drukāt"
 
-#: gtk/gtkstock.c:411
+#: ../gtk/gtkstock.c:411
 msgctxt "Stock label"
 msgid "Print Pre_view"
 msgstr "Drukas priekš_skatījums"
 
-#: gtk/gtkstock.c:412
+#: ../gtk/gtkstock.c:412
 msgctxt "Stock label"
 msgid "_Properties"
 msgstr "_Rekvizīti"
 
-#: gtk/gtkstock.c:413
+#: ../gtk/gtkstock.c:413
 msgctxt "Stock label"
 msgid "_Quit"
 msgstr "_Iziet"
 
-#: gtk/gtkstock.c:414
+#: ../gtk/gtkstock.c:414
 msgctxt "Stock label"
 msgid "_Redo"
 msgstr "Pā_rdarīt"
 
-#: gtk/gtkstock.c:415
+#: ../gtk/gtkstock.c:415
 msgctxt "Stock label"
 msgid "_Refresh"
 msgstr "_Atsvaidzināt"
 
-#: gtk/gtkstock.c:416
+#: ../gtk/gtkstock.c:416
 msgctxt "Stock label"
 msgid "_Remove"
 msgstr "_Izņemt"
 
-#: gtk/gtkstock.c:417
+#: ../gtk/gtkstock.c:417
 msgctxt "Stock label"
 msgid "_Revert"
 msgstr "At_griezt"
 
-#: gtk/gtkstock.c:418
+#: ../gtk/gtkstock.c:418
 msgctxt "Stock label"
 msgid "_Save"
 msgstr "_Saglabāt"
 
-#: gtk/gtkstock.c:419
+#: ../gtk/gtkstock.c:419
 msgctxt "Stock label"
 msgid "Save _As"
 msgstr "S_aglabāt kā"
 
-#: gtk/gtkstock.c:420
+#: ../gtk/gtkstock.c:420
 msgctxt "Stock label"
 msgid "Select _All"
 msgstr "Iezīmēt _visu"
 
-#: gtk/gtkstock.c:421
+#: ../gtk/gtkstock.c:421
 msgctxt "Stock label"
 msgid "_Color"
 msgstr "_Krāsa"
 
-#: gtk/gtkstock.c:422
+#: ../gtk/gtkstock.c:422
 msgctxt "Stock label"
 msgid "_Font"
 msgstr "_Fonts"
 
 #. Sorting direction
-#: gtk/gtkstock.c:424
+#: ../gtk/gtkstock.c:424
 msgctxt "Stock label"
 msgid "_Ascending"
 msgstr "_Pieaugoši"
 
 #. Sorting direction
-#: gtk/gtkstock.c:426
+#: ../gtk/gtkstock.c:426
 msgctxt "Stock label"
 msgid "_Descending"
 msgstr "_Dilstoši"
 
-#: gtk/gtkstock.c:427
+#: ../gtk/gtkstock.c:427
 msgctxt "Stock label"
 msgid "_Spell Check"
 msgstr "_Pareizrakstība"
 
-#: gtk/gtkstock.c:428
+#: ../gtk/gtkstock.c:428
 msgctxt "Stock label"
 msgid "_Stop"
 msgstr "_Stop"
 
 #. Font variant
-#: gtk/gtkstock.c:430
+#: ../gtk/gtkstock.c:430
 msgctxt "Stock label"
 msgid "_Strikethrough"
 msgstr "Caur_svītrot"
 
-#: gtk/gtkstock.c:431
+#: ../gtk/gtkstock.c:431
 msgctxt "Stock label"
 msgid "_Undelete"
 msgstr "Atja_unot"
 
 #. Font variant
-#: gtk/gtkstock.c:433
+#: ../gtk/gtkstock.c:433
 msgctxt "Stock label"
 msgid "_Underline"
 msgstr "_Pasvītrot"
 
-#: gtk/gtkstock.c:434
+#: ../gtk/gtkstock.c:434
 msgctxt "Stock label"
 msgid "_Undo"
 msgstr "Atsa_ukt"
 
-#: gtk/gtkstock.c:435
+#: ../gtk/gtkstock.c:435
 msgctxt "Stock label"
 msgid "_Yes"
 msgstr "_Jā"
 
 #. Zoom
-#: gtk/gtkstock.c:437
+#: ../gtk/gtkstock.c:437
 msgctxt "Stock label"
 msgid "_Normal Size"
 msgstr "_Normāls izmērs"
 
 #. Zoom
-#: gtk/gtkstock.c:439
+#: ../gtk/gtkstock.c:439
 msgctxt "Stock label"
 msgid "Best _Fit"
 msgstr "Pā_rskatāmi"
 
-#: gtk/gtkstock.c:440
+#: ../gtk/gtkstock.c:440
 msgctxt "Stock label"
 msgid "Zoom _In"
 msgstr "Pal_ielināt"
 
-#: gtk/gtkstock.c:441
+#: ../gtk/gtkstock.c:441
 msgctxt "Stock label"
 msgid "Zoom _Out"
 msgstr "_Samazināt"
 
-#: gtk/gtktextbufferrichtext.c:650
+#. Translators: if the "on" state label requires more than three
+#. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
+#. * the state
+#.
+#: ../gtk/gtkswitch.c:336 ../gtk/gtkswitch.c:396 ../gtk/gtkswitch.c:603
+msgctxt "switch"
+msgid "ON"
+msgstr "❙"
+
+#. Translators: if the "off" state label requires more than three
+#. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
+#.
+#: ../gtk/gtkswitch.c:344 ../gtk/gtkswitch.c:397 ../gtk/gtkswitch.c:632
+msgctxt "switch"
+msgid "OFF"
+msgstr "○"
+
+#: ../gtk/gtktextbufferrichtext.c:651
 #, c-format
 msgid "Unknown error when trying to deserialize %s"
 msgstr "Nezināma kļūda, mēģinot deserializēt %s"
 
-#: gtk/gtktextbufferrichtext.c:709
+#: ../gtk/gtktextbufferrichtext.c:710
 #, c-format
 msgid "No deserialize function found for format %s"
 msgstr "Nav atrasta deserializācijas funkcija formātam %s"
 
-#: gtk/gtktextbufferserialize.c:795 gtk/gtktextbufferserialize.c:821
+#: ../gtk/gtktextbufferserialize.c:800 ../gtk/gtktextbufferserialize.c:826
 #, c-format
 msgid "Both \"id\" and \"name\" were found on the <%s> element"
 msgstr "Elementam <%s> atrasts gan \"id\", gan \"name\""
 
-#: gtk/gtktextbufferserialize.c:805 gtk/gtktextbufferserialize.c:831
+#: ../gtk/gtktextbufferserialize.c:810 ../gtk/gtktextbufferserialize.c:836
 #, c-format
 msgid "The attribute \"%s\" was found twice on the <%s> element"
 msgstr "Atribūts \"%s\" atrasts divreiz elementā <%s>"
 
-#: gtk/gtktextbufferserialize.c:845
-#, fuzzy, c-format
+#: ../gtk/gtktextbufferserialize.c:852
+#, c-format
 msgid "<%s> element has invalid ID \"%s\""
-msgstr "Elementam <%s> ir nederīgs id \"%s\""
+msgstr "Elementam <%s> ir nederīgs ID \"%s\""
 
-#: gtk/gtktextbufferserialize.c:855
+#: ../gtk/gtktextbufferserialize.c:862
 #, c-format
 msgid "<%s> element has neither a \"name\" nor an \"id\" attribute"
 msgstr "Elementam <%s> nav ne \"name\", ne \"id\" atribūta"
 
-#: gtk/gtktextbufferserialize.c:942
+#: ../gtk/gtktextbufferserialize.c:949
 #, c-format
 msgid "Attribute \"%s\" repeated twice on the same <%s> element"
 msgstr "Atribūts \"%s\" atkārtots divreiz tajā pašā <%s> elementā"
 
-#: gtk/gtktextbufferserialize.c:960 gtk/gtktextbufferserialize.c:985
+#: ../gtk/gtktextbufferserialize.c:967 ../gtk/gtktextbufferserialize.c:992
 #, c-format
 msgid "Attribute \"%s\" is invalid on <%s> element in this context"
 msgstr "Atribūts \"%s\" ir nederīgs <%s> elementam šajā kontekstā"
 
-#: gtk/gtktextbufferserialize.c:1024
+#: ../gtk/gtktextbufferserialize.c:1031
 #, c-format
 msgid "Tag \"%s\" has not been defined."
 msgstr "Birka \"%s\" nav definēta."
 
-#: gtk/gtktextbufferserialize.c:1036
+#: ../gtk/gtktextbufferserialize.c:1043
 msgid "Anonymous tag found and tags can not be created."
 msgstr "Atrasta anonīma birka, un birkas nav iespējams radīt."
 
-#: gtk/gtktextbufferserialize.c:1047
+#: ../gtk/gtktextbufferserialize.c:1054
 #, c-format
 msgid "Tag \"%s\" does not exist in buffer and tags can not be created."
 msgstr "Birka \"%s\" neeksistē buferī, un birkas nav iespējams radīt."
 
-#: gtk/gtktextbufferserialize.c:1146 gtk/gtktextbufferserialize.c:1221
-#: gtk/gtktextbufferserialize.c:1324 gtk/gtktextbufferserialize.c:1398
+#: ../gtk/gtktextbufferserialize.c:1153 ../gtk/gtktextbufferserialize.c:1228
+#: ../gtk/gtktextbufferserialize.c:1333 ../gtk/gtktextbufferserialize.c:1407
 #, c-format
 msgid "Element <%s> is not allowed below <%s>"
 msgstr "Elements <%s> nav atļauts zem <%s>"
 
-#: gtk/gtktextbufferserialize.c:1177
+#: ../gtk/gtktextbufferserialize.c:1184
 #, c-format
 msgid "\"%s\" is not a valid attribute type"
 msgstr "\"%s\" nav derīgs atribūta tips"
 
-#: gtk/gtktextbufferserialize.c:1185
+#: ../gtk/gtktextbufferserialize.c:1192
 #, c-format
 msgid "\"%s\" is not a valid attribute name"
 msgstr "\"%s\" nav derīgs atribūta vārds"
 
-#: gtk/gtktextbufferserialize.c:1195
+#: ../gtk/gtktextbufferserialize.c:1202
 #, c-format
 msgid ""
 "\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\""
 msgstr "\"%s\" nevar pārveidot vērtībā ar tipu \"%s\" atribūtam \"%s\""
 
-#: gtk/gtktextbufferserialize.c:1204
+#: ../gtk/gtktextbufferserialize.c:1211
 #, c-format
 msgid "\"%s\" is not a valid value for attribute \"%s\""
 msgstr "\"%s\" nav derīga atribūta \"%s\" vērtība"
 
-#: gtk/gtktextbufferserialize.c:1289
+#: ../gtk/gtktextbufferserialize.c:1296
 #, c-format
 msgid "Tag \"%s\" already defined"
 msgstr "Birka \"%s\" jau ir definēta"
 
-#: gtk/gtktextbufferserialize.c:1300
+#: ../gtk/gtktextbufferserialize.c:1309
 #, c-format
 msgid "Tag \"%s\" has invalid priority \"%s\""
 msgstr "Birkai \"%s\" ir nederīga prioritāte \"%s\""
 
-#: gtk/gtktextbufferserialize.c:1353
+#: ../gtk/gtktextbufferserialize.c:1362
 #, c-format
 msgid "Outermost element in text must be <text_view_markup> not <%s>"
 msgstr "Ārējam teksta elementam jābūt <text_view_markup>, nevis <%s>"
 
-#: gtk/gtktextbufferserialize.c:1362 gtk/gtktextbufferserialize.c:1378
+#: ../gtk/gtktextbufferserialize.c:1371 ../gtk/gtktextbufferserialize.c:1387
 #, c-format
 msgid "A <%s> element has already been specified"
 msgstr "Elements <%s> jau ir norādīts"
 
-#: gtk/gtktextbufferserialize.c:1384
+#: ../gtk/gtktextbufferserialize.c:1393
 msgid "A <text> element can't occur before a <tags> element"
 msgstr "<text> elements nedrīkst būt pirms <tags> elementa"
 
-#: gtk/gtktextbufferserialize.c:1784
+#: ../gtk/gtktextbufferserialize.c:1793
 msgid "Serialized data is malformed"
 msgstr "Serializētie dati ir sliktformēti"
 
-#: gtk/gtktextbufferserialize.c:1862
+#: ../gtk/gtktextbufferserialize.c:1871
 msgid ""
 "Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001"
 msgstr ""
 "Serializētie dati ir sliktformēti. Pirmā daļa nav GTKTEXTBUFFERCONTENTS-0001"
 
-#: gtk/gtktextutil.c:60
+#: ../gtk/gtktextutil.c:60
 msgid "LRM _Left-to-right mark"
 msgstr "LRM Atzīme no kreisās uz _labo"
 
-#: gtk/gtktextutil.c:61
+#: ../gtk/gtktextutil.c:61
 msgid "RLM _Right-to-left mark"
 msgstr "RLM Atzīme no labās uz k_reiso"
 
-#: gtk/gtktextutil.c:62
+#: ../gtk/gtktextutil.c:62
 msgid "LRE Left-to-right _embedding"
 msgstr "LRE I_egulte no kreisās uz labo"
 
-#: gtk/gtktextutil.c:63
+#: ../gtk/gtktextutil.c:63
 msgid "RLE Right-to-left e_mbedding"
 msgstr "RLE Ie_gulte no labās uz kreiso"
 
-#: gtk/gtktextutil.c:64
+#: ../gtk/gtktextutil.c:64
 msgid "LRO Left-to-right _override"
 msgstr "LRO Aizstāšana n_o kreisās uz labo"
 
-#: gtk/gtktextutil.c:65
+#: ../gtk/gtktextutil.c:65
 msgid "RLO Right-to-left o_verride"
 msgstr "RLO Aizstāšana _no labās uz kreiso"
 
-#: gtk/gtktextutil.c:66
+#: ../gtk/gtktextutil.c:66
 msgid "PDF _Pop directional formatting"
 msgstr "PDF _Pop virziena formatēšana"
 
-#: gtk/gtktextutil.c:67
+#: ../gtk/gtktextutil.c:67
 msgid "ZWS _Zero width space"
 msgstr "ZWS N_ulles platuma atstarpe"
 
-#: gtk/gtktextutil.c:68
+#: ../gtk/gtktextutil.c:68
 msgid "ZWJ Zero width _joiner"
 msgstr "ZWJ Nulles platuma _savienotājs"
 
-#: gtk/gtktextutil.c:69
+#: ../gtk/gtktextutil.c:69
 msgid "ZWNJ Zero width _non-joiner"
 msgstr "ZWNJ Nulles platuma nesa_vienotājs"
 
-#: gtk/gtkthemes.c:72
-#, c-format
-msgid "Unable to locate theme engine in module_path: \"%s\","
-msgstr "Neizdevās atrast tēmu dzinēju module_path: \"%s\","
-
-#: gtk/gtkuimanager.c:1505
+#: ../gtk/gtkuimanager.c:1760
 #, c-format
 msgid "Unexpected start tag '%s' on line %d char %d"
 msgstr "Negaidīta sākuma birka '%s' %d. rindā, %d. simbols"
 
-#: gtk/gtkuimanager.c:1595
+#: ../gtk/gtkuimanager.c:1850
 #, c-format
 msgid "Unexpected character data on line %d char %d"
 msgstr "Negaidīti teksta dati %d. rindā, %d. simbols"
 
-#: gtk/gtkuimanager.c:2427
+#: ../gtk/gtkuimanager.c:2682
 msgid "Empty"
 msgstr "Tukšs"
 
-#: gtk/gtkvolumebutton.c:83
+#: ../gtk/gtkvolumebutton.c:170
 msgid "Volume"
 msgstr "Skaļums"
 
-#: gtk/gtkvolumebutton.c:85
+#: ../gtk/gtkvolumebutton.c:172
 msgid "Turns volume down or up"
 msgstr "Pagriež skaņu skaļāk vai klusāk"
 
-#: gtk/gtkvolumebutton.c:88
+#: ../gtk/gtkvolumebutton.c:175
 msgid "Adjusts the volume"
 msgstr "Pielāgo skaļumu"
 
-#: gtk/gtkvolumebutton.c:94 gtk/gtkvolumebutton.c:97
+#: ../gtk/gtkvolumebutton.c:181 ../gtk/gtkvolumebutton.c:184
 msgid "Volume Down"
 msgstr "Klusāk"
 
-#: gtk/gtkvolumebutton.c:96
+#: ../gtk/gtkvolumebutton.c:183
 msgid "Decreases the volume"
 msgstr "Samazina skaļumu"
 
-#: gtk/gtkvolumebutton.c:100 gtk/gtkvolumebutton.c:103
+#: ../gtk/gtkvolumebutton.c:187 ../gtk/gtkvolumebutton.c:190
 msgid "Volume Up"
 msgstr "Skaļāk"
 
-#: gtk/gtkvolumebutton.c:102
+#: ../gtk/gtkvolumebutton.c:189
 msgid "Increases the volume"
 msgstr "Palielina skaļumu"
 
-#: gtk/gtkvolumebutton.c:160
+#: ../gtk/gtkvolumebutton.c:247
 msgid "Muted"
 msgstr "Apklusināts"
 
-#: gtk/gtkvolumebutton.c:164
+#: ../gtk/gtkvolumebutton.c:251
 msgid "Full Volume"
 msgstr "Pilns skaļums"
 
@@ -2779,932 +3085,927 @@ msgstr "Pilns skaļums"
 #. * Translate the "%d" to "%Id" if you want to use localised digits,
 #. * or otherwise translate the "%d" to "%d".
 #.
-#: gtk/gtkvolumebutton.c:177
+#: ../gtk/gtkvolumebutton.c:264
 #, c-format
 msgctxt "volume percentage"
 msgid "%d %%"
 msgstr "%d %%"
 
-#: gtk/paper_names_offsets.c:4
+#: ../gtk/paper_names_offsets.c:4
 msgctxt "paper size"
 msgid "asme_f"
 msgstr "asme_f"
 
-#: gtk/paper_names_offsets.c:5
+#: ../gtk/paper_names_offsets.c:5
 msgctxt "paper size"
 msgid "A0x2"
 msgstr "A0x2"
 
-#: gtk/paper_names_offsets.c:6
+#: ../gtk/paper_names_offsets.c:6
 msgctxt "paper size"
 msgid "A0"
 msgstr "A0"
 
-#: gtk/paper_names_offsets.c:7
+#: ../gtk/paper_names_offsets.c:7
 msgctxt "paper size"
 msgid "A0x3"
 msgstr "A0x3"
 
-#: gtk/paper_names_offsets.c:8
+#: ../gtk/paper_names_offsets.c:8
 msgctxt "paper size"
 msgid "A1"
 msgstr "A1"
 
-#: gtk/paper_names_offsets.c:9
+#: ../gtk/paper_names_offsets.c:9
 msgctxt "paper size"
 msgid "A10"
 msgstr "A10"
 
-#: gtk/paper_names_offsets.c:10
+#: ../gtk/paper_names_offsets.c:10
 msgctxt "paper size"
 msgid "A1x3"
 msgstr "A1x3"
 
-#: gtk/paper_names_offsets.c:11
+#: ../gtk/paper_names_offsets.c:11
 msgctxt "paper size"
 msgid "A1x4"
 msgstr "A1x4"
 
-#: gtk/paper_names_offsets.c:12
+#: ../gtk/paper_names_offsets.c:12
 msgctxt "paper size"
 msgid "A2"
 msgstr "A2"
 
-#: gtk/paper_names_offsets.c:13
+#: ../gtk/paper_names_offsets.c:13
 msgctxt "paper size"
 msgid "A2x3"
 msgstr "A2x3"
 
-#: gtk/paper_names_offsets.c:14
+#: ../gtk/paper_names_offsets.c:14
 msgctxt "paper size"
 msgid "A2x4"
 msgstr "A2x4"
 
-#: gtk/paper_names_offsets.c:15
+#: ../gtk/paper_names_offsets.c:15
 msgctxt "paper size"
 msgid "A2x5"
 msgstr "A2x5"
 
-#: gtk/paper_names_offsets.c:16
+#: ../gtk/paper_names_offsets.c:16
 msgctxt "paper size"
 msgid "A3"
 msgstr "A3"
 
-#: gtk/paper_names_offsets.c:17
+#: ../gtk/paper_names_offsets.c:17
 msgctxt "paper size"
 msgid "A3 Extra"
 msgstr "A3 Extra"
 
-#: gtk/paper_names_offsets.c:18
+#: ../gtk/paper_names_offsets.c:18
 msgctxt "paper size"
 msgid "A3x3"
 msgstr "A3x3"
 
-#: gtk/paper_names_offsets.c:19
+#: ../gtk/paper_names_offsets.c:19
 msgctxt "paper size"
 msgid "A3x4"
 msgstr "A3x4"
 
-#: gtk/paper_names_offsets.c:20
+#: ../gtk/paper_names_offsets.c:20
 msgctxt "paper size"
 msgid "A3x5"
 msgstr "A3x5"
 
-#: gtk/paper_names_offsets.c:21
+#: ../gtk/paper_names_offsets.c:21
 msgctxt "paper size"
 msgid "A3x6"
 msgstr "A3x6"
 
-#: gtk/paper_names_offsets.c:22
+#: ../gtk/paper_names_offsets.c:22
 msgctxt "paper size"
 msgid "A3x7"
 msgstr "A3x7"
 
-#: gtk/paper_names_offsets.c:23
+#: ../gtk/paper_names_offsets.c:23
 msgctxt "paper size"
 msgid "A4"
 msgstr "A4"
 
-#: gtk/paper_names_offsets.c:24
+#: ../gtk/paper_names_offsets.c:24
 msgctxt "paper size"
 msgid "A4 Extra"
 msgstr "A4 Extra"
 
-#: gtk/paper_names_offsets.c:25
+#: ../gtk/paper_names_offsets.c:25
 msgctxt "paper size"
 msgid "A4 Tab"
 msgstr "A4 Tab"
 
-#: gtk/paper_names_offsets.c:26
+#: ../gtk/paper_names_offsets.c:26
 msgctxt "paper size"
 msgid "A4x3"
 msgstr "A4x3"
 
-#: gtk/paper_names_offsets.c:27
+#: ../gtk/paper_names_offsets.c:27
 msgctxt "paper size"
 msgid "A4x4"
 msgstr "A4x4"
 
-#: gtk/paper_names_offsets.c:28
+#: ../gtk/paper_names_offsets.c:28
 msgctxt "paper size"
 msgid "A4x5"
 msgstr "A4x5"
 
-#: gtk/paper_names_offsets.c:29
+#: ../gtk/paper_names_offsets.c:29
 msgctxt "paper size"
 msgid "A4x6"
 msgstr "A4x6"
 
-#: gtk/paper_names_offsets.c:30
+#: ../gtk/paper_names_offsets.c:30
 msgctxt "paper size"
 msgid "A4x7"
 msgstr "A4x7"
 
-#: gtk/paper_names_offsets.c:31
+#: ../gtk/paper_names_offsets.c:31
 msgctxt "paper size"
 msgid "A4x8"
 msgstr "A4x8"
 
-#: gtk/paper_names_offsets.c:32
+#: ../gtk/paper_names_offsets.c:32
 msgctxt "paper size"
 msgid "A4x9"
 msgstr "A4x9"
 
-#: gtk/paper_names_offsets.c:33
+#: ../gtk/paper_names_offsets.c:33
 msgctxt "paper size"
 msgid "A5"
 msgstr "A5"
 
-#: gtk/paper_names_offsets.c:34
+#: ../gtk/paper_names_offsets.c:34
 msgctxt "paper size"
 msgid "A5 Extra"
 msgstr "A5 Extra"
 
-#: gtk/paper_names_offsets.c:35
+#: ../gtk/paper_names_offsets.c:35
 msgctxt "paper size"
 msgid "A6"
 msgstr "A6"
 
-#: gtk/paper_names_offsets.c:36
+#: ../gtk/paper_names_offsets.c:36
 msgctxt "paper size"
 msgid "A7"
 msgstr "A7"
 
-#: gtk/paper_names_offsets.c:37
+#: ../gtk/paper_names_offsets.c:37
 msgctxt "paper size"
 msgid "A8"
 msgstr "A8"
 
-#: gtk/paper_names_offsets.c:38
+#: ../gtk/paper_names_offsets.c:38
 msgctxt "paper size"
 msgid "A9"
 msgstr "A9"
 
-#: gtk/paper_names_offsets.c:39
+#: ../gtk/paper_names_offsets.c:39
 msgctxt "paper size"
 msgid "B0"
 msgstr "B0"
 
-#: gtk/paper_names_offsets.c:40
+#: ../gtk/paper_names_offsets.c:40
 msgctxt "paper size"
 msgid "B1"
 msgstr "B1"
 
-#: gtk/paper_names_offsets.c:41
+#: ../gtk/paper_names_offsets.c:41
 msgctxt "paper size"
 msgid "B10"
 msgstr "B10"
 
-#: gtk/paper_names_offsets.c:42
+#: ../gtk/paper_names_offsets.c:42
 msgctxt "paper size"
 msgid "B2"
 msgstr "B2"
 
-#: gtk/paper_names_offsets.c:43
+#: ../gtk/paper_names_offsets.c:43
 msgctxt "paper size"
 msgid "B3"
 msgstr "B3"
 
-#: gtk/paper_names_offsets.c:44
+#: ../gtk/paper_names_offsets.c:44
 msgctxt "paper size"
 msgid "B4"
 msgstr "B4"
 
-#: gtk/paper_names_offsets.c:45
+#: ../gtk/paper_names_offsets.c:45
 msgctxt "paper size"
 msgid "B5"
 msgstr "B5"
 
-#: gtk/paper_names_offsets.c:46
+#: ../gtk/paper_names_offsets.c:46
 msgctxt "paper size"
 msgid "B5 Extra"
 msgstr "B5 Extra"
 
-#: gtk/paper_names_offsets.c:47
+#: ../gtk/paper_names_offsets.c:47
 msgctxt "paper size"
 msgid "B6"
 msgstr "B6"
 
-#: gtk/paper_names_offsets.c:48
+#: ../gtk/paper_names_offsets.c:48
 msgctxt "paper size"
 msgid "B6/C4"
 msgstr "B6/C4"
 
-#: gtk/paper_names_offsets.c:49
+#: ../gtk/paper_names_offsets.c:49
 msgctxt "paper size"
 msgid "B7"
 msgstr "B7"
 
-#: gtk/paper_names_offsets.c:50
+#: ../gtk/paper_names_offsets.c:50
 msgctxt "paper size"
 msgid "B8"
 msgstr "B8"
 
-#: gtk/paper_names_offsets.c:51
+#: ../gtk/paper_names_offsets.c:51
 msgctxt "paper size"
 msgid "B9"
 msgstr "B9"
 
-#: gtk/paper_names_offsets.c:52
+#: ../gtk/paper_names_offsets.c:52
 msgctxt "paper size"
 msgid "C0"
 msgstr "C0"
 
-#: gtk/paper_names_offsets.c:53
+#: ../gtk/paper_names_offsets.c:53
 msgctxt "paper size"
 msgid "C1"
 msgstr "C1"
 
-#: gtk/paper_names_offsets.c:54
+#: ../gtk/paper_names_offsets.c:54
 msgctxt "paper size"
 msgid "C10"
 msgstr "C10"
 
-#: gtk/paper_names_offsets.c:55
+#: ../gtk/paper_names_offsets.c:55
 msgctxt "paper size"
 msgid "C2"
 msgstr "C2"
 
-#: gtk/paper_names_offsets.c:56
+#: ../gtk/paper_names_offsets.c:56
 msgctxt "paper size"
 msgid "C3"
 msgstr "C3"
 
-#: gtk/paper_names_offsets.c:57
+#: ../gtk/paper_names_offsets.c:57
 msgctxt "paper size"
 msgid "C4"
 msgstr "C4"
 
-#: gtk/paper_names_offsets.c:58
+#: ../gtk/paper_names_offsets.c:58
 msgctxt "paper size"
 msgid "C5"
 msgstr "C5"
 
-#: gtk/paper_names_offsets.c:59
+#: ../gtk/paper_names_offsets.c:59
 msgctxt "paper size"
 msgid "C6"
 msgstr "C6"
 
-#: gtk/paper_names_offsets.c:60
+#: ../gtk/paper_names_offsets.c:60
 msgctxt "paper size"
 msgid "C6/C5"
 msgstr "C6/C5"
 
-#: gtk/paper_names_offsets.c:61
+#: ../gtk/paper_names_offsets.c:61
 msgctxt "paper size"
 msgid "C7"
 msgstr "C7"
 
-#: gtk/paper_names_offsets.c:62
+#: ../gtk/paper_names_offsets.c:62
 msgctxt "paper size"
 msgid "C7/C6"
 msgstr "C7/C6"
 
-#: gtk/paper_names_offsets.c:63
+#: ../gtk/paper_names_offsets.c:63
 msgctxt "paper size"
 msgid "C8"
 msgstr "C8"
 
-#: gtk/paper_names_offsets.c:64
+#: ../gtk/paper_names_offsets.c:64
 msgctxt "paper size"
 msgid "C9"
 msgstr "C9"
 
-#: gtk/paper_names_offsets.c:65
+#: ../gtk/paper_names_offsets.c:65
 msgctxt "paper size"
 msgid "DL Envelope"
 msgstr "DL aploksne"
 
-#: gtk/paper_names_offsets.c:66
+#: ../gtk/paper_names_offsets.c:66
 msgctxt "paper size"
 msgid "RA0"
 msgstr "RA0"
 
-#: gtk/paper_names_offsets.c:67
+#: ../gtk/paper_names_offsets.c:67
 msgctxt "paper size"
 msgid "RA1"
 msgstr "RA1"
 
-#: gtk/paper_names_offsets.c:68
+#: ../gtk/paper_names_offsets.c:68
 msgctxt "paper size"
 msgid "RA2"
 msgstr "RA2"
 
-#: gtk/paper_names_offsets.c:69
+#: ../gtk/paper_names_offsets.c:69
 msgctxt "paper size"
 msgid "SRA0"
 msgstr "SRA0"
 
-#: gtk/paper_names_offsets.c:70
+#: ../gtk/paper_names_offsets.c:70
 msgctxt "paper size"
 msgid "SRA1"
 msgstr "SRA1"
 
-#: gtk/paper_names_offsets.c:71
+#: ../gtk/paper_names_offsets.c:71
 msgctxt "paper size"
 msgid "SRA2"
 msgstr "SRA2"
 
-#: gtk/paper_names_offsets.c:72
+#: ../gtk/paper_names_offsets.c:72
 msgctxt "paper size"
 msgid "JB0"
 msgstr "JB0"
 
-#: gtk/paper_names_offsets.c:73
+#: ../gtk/paper_names_offsets.c:73
 msgctxt "paper size"
 msgid "JB1"
 msgstr "JB1"
 
-#: gtk/paper_names_offsets.c:74
+#: ../gtk/paper_names_offsets.c:74
 msgctxt "paper size"
 msgid "JB10"
 msgstr "JB10"
 
-#: gtk/paper_names_offsets.c:75
+#: ../gtk/paper_names_offsets.c:75
 msgctxt "paper size"
 msgid "JB2"
 msgstr "JB2"
 
-#: gtk/paper_names_offsets.c:76
+#: ../gtk/paper_names_offsets.c:76
 msgctxt "paper size"
 msgid "JB3"
 msgstr "JB3"
 
-#: gtk/paper_names_offsets.c:77
+#: ../gtk/paper_names_offsets.c:77
 msgctxt "paper size"
 msgid "JB4"
 msgstr "JB4"
 
-#: gtk/paper_names_offsets.c:78
+#: ../gtk/paper_names_offsets.c:78
 msgctxt "paper size"
 msgid "JB5"
 msgstr "JB5"
 
-#: gtk/paper_names_offsets.c:79
+#: ../gtk/paper_names_offsets.c:79
 msgctxt "paper size"
 msgid "JB6"
 msgstr "JB6"
 
-#: gtk/paper_names_offsets.c:80
+#: ../gtk/paper_names_offsets.c:80
 msgctxt "paper size"
 msgid "JB7"
 msgstr "JB7"
 
-#: gtk/paper_names_offsets.c:81
+#: ../gtk/paper_names_offsets.c:81
 msgctxt "paper size"
 msgid "JB8"
 msgstr "JB8"
 
-#: gtk/paper_names_offsets.c:82
+#: ../gtk/paper_names_offsets.c:82
 msgctxt "paper size"
 msgid "JB9"
 msgstr "JB9"
 
-#: gtk/paper_names_offsets.c:83
+#: ../gtk/paper_names_offsets.c:83
 msgctxt "paper size"
 msgid "jis exec"
 msgstr "jis exec"
 
-#: gtk/paper_names_offsets.c:84
+#: ../gtk/paper_names_offsets.c:84
 msgctxt "paper size"
 msgid "Choukei 2 Envelope"
 msgstr "Choukei 2 aploksne"
 
-#: gtk/paper_names_offsets.c:85
+#: ../gtk/paper_names_offsets.c:85
 msgctxt "paper size"
 msgid "Choukei 3 Envelope"
 msgstr "Choukei 3 aploksne"
 
-#: gtk/paper_names_offsets.c:86
+#: ../gtk/paper_names_offsets.c:86
 msgctxt "paper size"
 msgid "Choukei 4 Envelope"
 msgstr "Choukei 4 aploksne"
 
-#: gtk/paper_names_offsets.c:87
+#: ../gtk/paper_names_offsets.c:87
 msgctxt "paper size"
 msgid "hagaki (postcard)"
 msgstr "hagaki (pastkarte)"
 
-#: gtk/paper_names_offsets.c:88
+#: ../gtk/paper_names_offsets.c:88
 msgctxt "paper size"
 msgid "kahu Envelope"
 msgstr "kahu aploksne"
 
-#: gtk/paper_names_offsets.c:89
+#: ../gtk/paper_names_offsets.c:89
 msgctxt "paper size"
 msgid "kaku2 Envelope"
 msgstr "kaku2 aploksne"
 
-#: gtk/paper_names_offsets.c:90
+#: ../gtk/paper_names_offsets.c:90
 msgctxt "paper size"
 msgid "oufuku (reply postcard)"
 msgstr "oufuku (atbildes pastkarte)"
 
-#: gtk/paper_names_offsets.c:91
+#: ../gtk/paper_names_offsets.c:91
 msgctxt "paper size"
 msgid "you4 Envelope"
 msgstr "you4 aploksne"
 
-#: gtk/paper_names_offsets.c:92
+#: ../gtk/paper_names_offsets.c:92
 msgctxt "paper size"
 msgid "10x11"
 msgstr "10x11"
 
-#: gtk/paper_names_offsets.c:93
+#: ../gtk/paper_names_offsets.c:93
 msgctxt "paper size"
 msgid "10x13"
 msgstr "10x13"
 
-#: gtk/paper_names_offsets.c:94
+#: ../gtk/paper_names_offsets.c:94
 msgctxt "paper size"
 msgid "10x14"
 msgstr "10x14"
 
-#: gtk/paper_names_offsets.c:95 gtk/paper_names_offsets.c:96
+#: ../gtk/paper_names_offsets.c:95 ../gtk/paper_names_offsets.c:96
 msgctxt "paper size"
 msgid "10x15"
 msgstr "10x15"
 
-#: gtk/paper_names_offsets.c:97
+#: ../gtk/paper_names_offsets.c:97
 msgctxt "paper size"
 msgid "11x12"
 msgstr "11x12"
 
-#: gtk/paper_names_offsets.c:98
+#: ../gtk/paper_names_offsets.c:98
 msgctxt "paper size"
 msgid "11x15"
 msgstr "11x15"
 
-#: gtk/paper_names_offsets.c:99
+#: ../gtk/paper_names_offsets.c:99
 msgctxt "paper size"
 msgid "12x19"
 msgstr "12x19"
 
-#: gtk/paper_names_offsets.c:100
+#: ../gtk/paper_names_offsets.c:100
 msgctxt "paper size"
 msgid "5x7"
 msgstr "5x7"
 
-#: gtk/paper_names_offsets.c:101
+#: ../gtk/paper_names_offsets.c:101
 msgctxt "paper size"
 msgid "6x9 Envelope"
 msgstr "6x9 aploksne"
 
-#: gtk/paper_names_offsets.c:102
+#: ../gtk/paper_names_offsets.c:102
 msgctxt "paper size"
 msgid "7x9 Envelope"
 msgstr "7x9 aploksne"
 
-#: gtk/paper_names_offsets.c:103
+#: ../gtk/paper_names_offsets.c:103
 msgctxt "paper size"
 msgid "9x11 Envelope"
 msgstr "9x11 aploksne"
 
-#: gtk/paper_names_offsets.c:104
+#: ../gtk/paper_names_offsets.c:104
 msgctxt "paper size"
 msgid "a2 Envelope"
 msgstr "a2 aploksne"
 
-#: gtk/paper_names_offsets.c:105
+#: ../gtk/paper_names_offsets.c:105
 msgctxt "paper size"
 msgid "Arch A"
 msgstr "Arch A"
 
-#: gtk/paper_names_offsets.c:106
+#: ../gtk/paper_names_offsets.c:106
 msgctxt "paper size"
 msgid "Arch B"
 msgstr "Arch B"
 
-#: gtk/paper_names_offsets.c:107
+#: ../gtk/paper_names_offsets.c:107
 msgctxt "paper size"
 msgid "Arch C"
 msgstr "Arch C"
 
-#: gtk/paper_names_offsets.c:108
+#: ../gtk/paper_names_offsets.c:108
 msgctxt "paper size"
 msgid "Arch D"
 msgstr "Arch D"
 
-#: gtk/paper_names_offsets.c:109
+#: ../gtk/paper_names_offsets.c:109
 msgctxt "paper size"
 msgid "Arch E"
 msgstr "Arch E"
 
-#: gtk/paper_names_offsets.c:110
+#: ../gtk/paper_names_offsets.c:110
 msgctxt "paper size"
 msgid "b-plus"
 msgstr "b-plus"
 
-#: gtk/paper_names_offsets.c:111
+#: ../gtk/paper_names_offsets.c:111
 msgctxt "paper size"
 msgid "c"
 msgstr "c"
 
-#: gtk/paper_names_offsets.c:112
+#: ../gtk/paper_names_offsets.c:112
 msgctxt "paper size"
 msgid "c5 Envelope"
 msgstr "c5 aploksne"
 
-#: gtk/paper_names_offsets.c:113
+#: ../gtk/paper_names_offsets.c:113
 msgctxt "paper size"
 msgid "d"
 msgstr "d"
 
-#: gtk/paper_names_offsets.c:114
+#: ../gtk/paper_names_offsets.c:114
 msgctxt "paper size"
 msgid "e"
 msgstr "e"
 
-#: gtk/paper_names_offsets.c:115
+#: ../gtk/paper_names_offsets.c:115
 msgctxt "paper size"
 msgid "edp"
 msgstr "edp"
 
-#: gtk/paper_names_offsets.c:116
+#: ../gtk/paper_names_offsets.c:116
 msgctxt "paper size"
 msgid "European edp"
 msgstr "Eiropas edp"
 
-#: gtk/paper_names_offsets.c:117
+#: ../gtk/paper_names_offsets.c:117
 msgctxt "paper size"
 msgid "Executive"
 msgstr "Rīkojuma"
 
-#: gtk/paper_names_offsets.c:118
+#: ../gtk/paper_names_offsets.c:118
 msgctxt "paper size"
 msgid "f"
 msgstr "f"
 
-#: gtk/paper_names_offsets.c:119
+#: ../gtk/paper_names_offsets.c:119
 msgctxt "paper size"
 msgid "FanFold European"
 msgstr "FanFold Eiropas"
 
-#: gtk/paper_names_offsets.c:120
+#: ../gtk/paper_names_offsets.c:120
 msgctxt "paper size"
 msgid "FanFold US"
 msgstr "FanFold ASV"
 
-#: gtk/paper_names_offsets.c:121
+#: ../gtk/paper_names_offsets.c:121
 msgctxt "paper size"
 msgid "FanFold German Legal"
 msgstr "FanFold vācu juridiskais"
 
-#: gtk/paper_names_offsets.c:122
+#: ../gtk/paper_names_offsets.c:122
 msgctxt "paper size"
 msgid "Government Legal"
 msgstr "Valdības juridiskais"
 
-#: gtk/paper_names_offsets.c:123
+#: ../gtk/paper_names_offsets.c:123
 msgctxt "paper size"
 msgid "Government Letter"
 msgstr "Valdības vēstules"
 
-#: gtk/paper_names_offsets.c:124
+#: ../gtk/paper_names_offsets.c:124
 msgctxt "paper size"
 msgid "Index 3x5"
 msgstr "3x5 kartīte"
 
-#: gtk/paper_names_offsets.c:125
+#: ../gtk/paper_names_offsets.c:125
 msgctxt "paper size"
 msgid "Index 4x6 (postcard)"
 msgstr "4x6 kartīte (pastkarte)"
 
-#: gtk/paper_names_offsets.c:126
+#: ../gtk/paper_names_offsets.c:126
 msgctxt "paper size"
 msgid "Index 4x6 ext"
 msgstr "4x6 ext kartīte"
 
-#: gtk/paper_names_offsets.c:127
+#: ../gtk/paper_names_offsets.c:127
 msgctxt "paper size"
 msgid "Index 5x8"
 msgstr "5x8 kartīte"
 
-#: gtk/paper_names_offsets.c:128
+#: ../gtk/paper_names_offsets.c:128
 msgctxt "paper size"
 msgid "Invoice"
 msgstr "Pavadzīme"
 
-#: gtk/paper_names_offsets.c:129
+#: ../gtk/paper_names_offsets.c:129
 msgctxt "paper size"
 msgid "Tabloid"
 msgstr "Tabloid"
 
-#: gtk/paper_names_offsets.c:130
+#: ../gtk/paper_names_offsets.c:130
 msgctxt "paper size"
 msgid "US Legal"
 msgstr "ASV juridiskais"
 
-#: gtk/paper_names_offsets.c:131
+#: ../gtk/paper_names_offsets.c:131
 msgctxt "paper size"
 msgid "US Legal Extra"
 msgstr "ASV juridiskais extra"
 
-#: gtk/paper_names_offsets.c:132
+#: ../gtk/paper_names_offsets.c:132
 msgctxt "paper size"
 msgid "US Letter"
 msgstr "ASV vēstule"
 
-#: gtk/paper_names_offsets.c:133
+#: ../gtk/paper_names_offsets.c:133
 msgctxt "paper size"
 msgid "US Letter Extra"
 msgstr "ASV vēstule extra"
 
-#: gtk/paper_names_offsets.c:134
+#: ../gtk/paper_names_offsets.c:134
 msgctxt "paper size"
 msgid "US Letter Plus"
 msgstr "ASV vēstule plus"
 
-#: gtk/paper_names_offsets.c:135
+#: ../gtk/paper_names_offsets.c:135
 msgctxt "paper size"
 msgid "Monarch Envelope"
 msgstr "Monarha aploksne"
 
-#: gtk/paper_names_offsets.c:136
+#: ../gtk/paper_names_offsets.c:136
 msgctxt "paper size"
 msgid "#10 Envelope"
 msgstr "#10 aploksne"
 
-#: gtk/paper_names_offsets.c:137
+#: ../gtk/paper_names_offsets.c:137
 msgctxt "paper size"
 msgid "#11 Envelope"
 msgstr "#11 aploksne"
 
-#: gtk/paper_names_offsets.c:138
+#: ../gtk/paper_names_offsets.c:138
 msgctxt "paper size"
 msgid "#12 Envelope"
 msgstr "#12 aploksne"
 
-#: gtk/paper_names_offsets.c:139
+#: ../gtk/paper_names_offsets.c:139
 msgctxt "paper size"
 msgid "#14 Envelope"
 msgstr "#14 aploksne"
 
-#: gtk/paper_names_offsets.c:140
+#: ../gtk/paper_names_offsets.c:140
 msgctxt "paper size"
 msgid "#9 Envelope"
 msgstr "#9 aploksne"
 
-#: gtk/paper_names_offsets.c:141
+#: ../gtk/paper_names_offsets.c:141
 msgctxt "paper size"
 msgid "Personal Envelope"
 msgstr "Privātā aploksne"
 
-#: gtk/paper_names_offsets.c:142
+#: ../gtk/paper_names_offsets.c:142
 msgctxt "paper size"
 msgid "Quarto"
 msgstr "Kvarta formāts"
 
-#: gtk/paper_names_offsets.c:143
+#: ../gtk/paper_names_offsets.c:143
 msgctxt "paper size"
 msgid "Super A"
 msgstr "Super A"
 
-#: gtk/paper_names_offsets.c:144
+#: ../gtk/paper_names_offsets.c:144
 msgctxt "paper size"
 msgid "Super B"
 msgstr "Super B"
 
-#: gtk/paper_names_offsets.c:145
+#: ../gtk/paper_names_offsets.c:145
 msgctxt "paper size"
 msgid "Wide Format"
 msgstr "Platais formāts"
 
-#: gtk/paper_names_offsets.c:146
+#: ../gtk/paper_names_offsets.c:146
 msgctxt "paper size"
 msgid "Dai-pa-kai"
 msgstr "Dai-pa-kai"
 
-#: gtk/paper_names_offsets.c:147
+#: ../gtk/paper_names_offsets.c:147
 msgctxt "paper size"
 msgid "Folio"
 msgstr "Folio"
 
-#: gtk/paper_names_offsets.c:148
+#: ../gtk/paper_names_offsets.c:148
 msgctxt "paper size"
 msgid "Folio sp"
 msgstr "Folio sp"
 
-#: gtk/paper_names_offsets.c:149
+#: ../gtk/paper_names_offsets.c:149
 msgctxt "paper size"
 msgid "Invite Envelope"
 msgstr "Ielūguma aploksne"
 
-#: gtk/paper_names_offsets.c:150
+#: ../gtk/paper_names_offsets.c:150
 msgctxt "paper size"
 msgid "Italian Envelope"
 msgstr "Itāļu aploksne"
 
-#: gtk/paper_names_offsets.c:151
+#: ../gtk/paper_names_offsets.c:151
 msgctxt "paper size"
 msgid "juuro-ku-kai"
 msgstr "juuro-ku-kai"
 
-#: gtk/paper_names_offsets.c:152
+#: ../gtk/paper_names_offsets.c:152
 msgctxt "paper size"
 msgid "pa-kai"
 msgstr "pa-kai"
 
-#: gtk/paper_names_offsets.c:153
+#: ../gtk/paper_names_offsets.c:153
 msgctxt "paper size"
 msgid "Postfix Envelope"
 msgstr "Postfix aploksne"
 
-#: gtk/paper_names_offsets.c:154
+#: ../gtk/paper_names_offsets.c:154
 msgctxt "paper size"
 msgid "Small Photo"
 msgstr "Mazs foto"
 
-#: gtk/paper_names_offsets.c:155
+#: ../gtk/paper_names_offsets.c:155
 msgctxt "paper size"
 msgid "prc1 Envelope"
 msgstr "prc1 aploksne"
 
-#: gtk/paper_names_offsets.c:156
+#: ../gtk/paper_names_offsets.c:156
 msgctxt "paper size"
 msgid "prc10 Envelope"
 msgstr "prc10 aploksne"
 
-#: gtk/paper_names_offsets.c:157
+#: ../gtk/paper_names_offsets.c:157
 msgctxt "paper size"
 msgid "prc 16k"
 msgstr "prc 16k"
 
-#: gtk/paper_names_offsets.c:158
+#: ../gtk/paper_names_offsets.c:158
 msgctxt "paper size"
 msgid "prc2 Envelope"
 msgstr "prc2 aploksne"
 
-#: gtk/paper_names_offsets.c:159
+#: ../gtk/paper_names_offsets.c:159
 msgctxt "paper size"
 msgid "prc3 Envelope"
 msgstr "prc3 aploksne"
 
-#: gtk/paper_names_offsets.c:160
+#: ../gtk/paper_names_offsets.c:160
 msgctxt "paper size"
 msgid "prc 32k"
 msgstr "prc 32k"
 
-#: gtk/paper_names_offsets.c:161
+#: ../gtk/paper_names_offsets.c:161
 msgctxt "paper size"
 msgid "prc4 Envelope"
 msgstr "prc4 aploksne"
 
-#: gtk/paper_names_offsets.c:162
+#: ../gtk/paper_names_offsets.c:162
 msgctxt "paper size"
 msgid "prc5 Envelope"
 msgstr "prc5 aploksne"
 
-#: gtk/paper_names_offsets.c:163
+#: ../gtk/paper_names_offsets.c:163
 msgctxt "paper size"
 msgid "prc6 Envelope"
 msgstr "prc6 aploksne"
 
-#: gtk/paper_names_offsets.c:164
+#: ../gtk/paper_names_offsets.c:164
 msgctxt "paper size"
 msgid "prc7 Envelope"
 msgstr "prc7 aploksne"
 
-#: gtk/paper_names_offsets.c:165
+#: ../gtk/paper_names_offsets.c:165
 msgctxt "paper size"
 msgid "prc8 Envelope"
 msgstr "prc8 aploksne"
 
-#: gtk/paper_names_offsets.c:166
+#: ../gtk/paper_names_offsets.c:166
 msgctxt "paper size"
 msgid "prc9 Envelope"
 msgstr "prc9 aploksne"
 
-#: gtk/paper_names_offsets.c:167
+#: ../gtk/paper_names_offsets.c:167
 msgctxt "paper size"
 msgid "ROC 16k"
 msgstr "ROC 16k"
 
-#: gtk/paper_names_offsets.c:168
+#: ../gtk/paper_names_offsets.c:168
 msgctxt "paper size"
 msgid "ROC 8k"
 msgstr "ROC 8k"
 
-#: gtk/updateiconcache.c:492 gtk/updateiconcache.c:552
-#, c-format
-msgid "different idatas found for symlinked '%s' and '%s'\n"
-msgstr "dažādi idata atrasti simsaistītajos '%s' un '%s'\n"
-
-#: gtk/updateiconcache.c:1374
+#: ../gtk/updateiconcache.c:1370
 #, c-format
 msgid "Failed to write header\n"
 msgstr "Neizdevās ierakstīt galveni\n"
 
-#: gtk/updateiconcache.c:1380
+#: ../gtk/updateiconcache.c:1376
 #, c-format
 msgid "Failed to write hash table\n"
 msgstr "Neizdevās ierakstīt jaucējtabulu\n"
 
-#: gtk/updateiconcache.c:1386
+#: ../gtk/updateiconcache.c:1382
 #, c-format
 msgid "Failed to write folder index\n"
 msgstr "Neizdevās ierakstīt mapes rādītāju\n"
 
-#: gtk/updateiconcache.c:1394
+#: ../gtk/updateiconcache.c:1390
 #, c-format
 msgid "Failed to rewrite header\n"
 msgstr "Neizdevās pārrakstīt galveni\n"
 
-#: gtk/updateiconcache.c:1463
+#: ../gtk/updateiconcache.c:1484
 #, c-format
 msgid "Failed to open file %s : %s\n"
 msgstr "Neizdevās atvērt failu %s : %s\n"
 
-#: gtk/updateiconcache.c:1471
+#: ../gtk/updateiconcache.c:1492 ../gtk/updateiconcache.c:1522
 #, c-format
 msgid "Failed to write cache file: %s\n"
 msgstr "Neizdevās ierakstīt keša failu: %s\n"
 
-#: gtk/updateiconcache.c:1507
+#: ../gtk/updateiconcache.c:1533
 #, c-format
 msgid "The generated cache was invalid.\n"
 msgstr "Izveidotā kešatmiņa nav derīga.\n"
 
-#: gtk/updateiconcache.c:1521
+#: ../gtk/updateiconcache.c:1547
 #, c-format
 msgid "Could not rename %s to %s: %s, removing %s then.\n"
 msgstr "Neizdevās pārsaukt %s par %s: %s, tāpēc izmests %s.\n"
 
-#: gtk/updateiconcache.c:1535
+#: ../gtk/updateiconcache.c:1561
 #, c-format
 msgid "Could not rename %s to %s: %s\n"
 msgstr "Neizdevās pārsaukt %s par %s: %s\n"
 
-#: gtk/updateiconcache.c:1545
+#: ../gtk/updateiconcache.c:1571
 #, c-format
 msgid "Could not rename %s back to %s: %s.\n"
 msgstr "Neizdevās pārsaukt %s atpakaļ par %s: %s.\n"
 
-#: gtk/updateiconcache.c:1572
+#: ../gtk/updateiconcache.c:1598
 #, c-format
 msgid "Cache file created successfully.\n"
 msgstr "Kešfails sekmīgi izveidots.\n"
 
-#: gtk/updateiconcache.c:1611
+#: ../gtk/updateiconcache.c:1637
 msgid "Overwrite an existing cache, even if up to date"
 msgstr "Pārrakstīt esošo kešu, pat ja tā nav novecojusi"
 
-#: gtk/updateiconcache.c:1612
+#: ../gtk/updateiconcache.c:1638
 msgid "Don't check for the existence of index.theme"
 msgstr "Nepārbaudīt, vai eksistē index.theme"
 
-#: gtk/updateiconcache.c:1613
+#: ../gtk/updateiconcache.c:1639
 msgid "Don't include image data in the cache"
 msgstr "Neiekļaut attēla datus kešā"
 
-#: gtk/updateiconcache.c:1614
+#: ../gtk/updateiconcache.c:1640
 msgid "Output a C header file"
 msgstr "Izveidot C galvenes failu"
 
-#: gtk/updateiconcache.c:1615
+#: ../gtk/updateiconcache.c:1641
 msgid "Turn off verbose output"
 msgstr "Atslēgt detalizēto izvadi"
 
-#: gtk/updateiconcache.c:1616
+#: ../gtk/updateiconcache.c:1642
 msgid "Validate existing icon cache"
 msgstr "Pārbaudīt esošo ikonu kešatmiņu"
 
-#: gtk/updateiconcache.c:1683
+#: ../gtk/updateiconcache.c:1709
 #, c-format
 msgid "File not found: %s\n"
 msgstr "Fails nav atrasts: %s\n"
 
-#: gtk/updateiconcache.c:1689
+#: ../gtk/updateiconcache.c:1715
 #, c-format
 msgid "Not a valid icon cache: %s\n"
 msgstr "Nav derīga ikonu kešatmiņa: %s\n"
 
-#: gtk/updateiconcache.c:1702
+#: ../gtk/updateiconcache.c:1728
 #, c-format
 msgid "No theme index file.\n"
 msgstr "Nav tēmas indeksa faila.\n"
 
-#: gtk/updateiconcache.c:1706
+#: ../gtk/updateiconcache.c:1732
 #, c-format
 msgid ""
 "No theme index file in '%s'.\n"
@@ -3715,309 +4016,309 @@ msgstr ""
 "index.\n"
 
 #. ID
-#: modules/input/imam-et.c:454
+#: ../modules/input/imam-et.c:454
 msgid "Amharic (EZ+)"
 msgstr "Amharu (EZ+)"
 
 #. ID
-#: modules/input/imcedilla.c:92
+#: ../modules/input/imcedilla.c:92
 msgid "Cedilla"
 msgstr "Sediļa (āķītis zem burta)"
 
 #. ID
-#: modules/input/imcyrillic-translit.c:217
+#: ../modules/input/imcyrillic-translit.c:217
 msgid "Cyrillic (Transliterated)"
 msgstr "Kirilica (transliterēts)"
 
 #. ID
-#: modules/input/iminuktitut.c:127
+#: ../modules/input/iminuktitut.c:127
 msgid "Inuktitut (Transliterated)"
 msgstr "Inuītu (transliterēts)"
 
 #. ID
-#: modules/input/imipa.c:145
+#: ../modules/input/imipa.c:145
 msgid "IPA"
 msgstr "IPA"
 
 #. ID
-#: modules/input/immultipress.c:31
+#: ../modules/input/immultipress.c:31
 msgid "Multipress"
 msgstr "Multipress"
 
 #. ID
-#: modules/input/imthai.c:35
+#: ../modules/input/imthai.c:35
 msgid "Thai-Lao"
 msgstr "Taju-laosiešu"
 
 #. ID
-#: modules/input/imti-er.c:453
+#: ../modules/input/imti-er.c:453
 msgid "Tigrigna-Eritrean (EZ+)"
 msgstr "Tigrinja-eritrejiešu (EZ+)"
 
 #. ID
-#: modules/input/imti-et.c:453
+#: ../modules/input/imti-et.c:453
 msgid "Tigrigna-Ethiopian (EZ+)"
 msgstr "Tigrinja-Etiopiešu (EZ+)"
 
 #. ID
-#: modules/input/imviqr.c:244
+#: ../modules/input/imviqr.c:244
 msgid "Vietnamese (VIQR)"
 msgstr "Vjetnamiešu (VIQR)"
 
 #. ID
-#: modules/input/imxim.c:28
+#: ../modules/input/imxim.c:28
 msgid "X Input Method"
 msgstr "X ievades metode"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:811
-#: modules/printbackends/cups/gtkprintbackendcups.c:1020
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:828
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1038
 msgid "Username:"
 msgstr "Lietotājvārds:"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:812
-#: modules/printbackends/cups/gtkprintbackendcups.c:1029
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:829
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1047
 msgid "Password:"
 msgstr "Parole:"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:850
-#, c-format
-msgid "Authentication is required to get a file from %s"
-msgstr "Lai iegūtu failu no %s, nepieciešama autentifikācija"
-
-#: modules/printbackends/cups/gtkprintbackendcups.c:854
-#: modules/printbackends/cups/gtkprintbackendcups.c:1042
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1060
 #, c-format
 msgid "Authentication is required to print document '%s' on printer %s"
 msgstr ""
 "Lai drukātu dokumentu '%s' uz printera %s, nepieciešama autentifikācija"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:856
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:870
 #, c-format
 msgid "Authentication is required to print a document on %s"
 msgstr "Lai drukātu dokumentu uz %s, nepieciešama autentifikācija"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:860
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
 #, c-format
 msgid "Authentication is required to get attributes of job '%s'"
 msgstr "Lai iegūtu uzdevuma '%s' atribūtus, nepieciešama autentifikācija"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:862
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:876
 msgid "Authentication is required to get attributes of a job"
 msgstr "Lai iegūtu uzdevuma atribūtus, nepieciešama autentifikācija"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:866
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:880
 #, c-format
 msgid "Authentication is required to get attributes of printer %s"
 msgstr "Lai iegūtu printera %s atribūtus, nepieciešama autentifikācija"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:882
 msgid "Authentication is required to get attributes of a printer"
 msgstr "Lai iegūtu printera atribūtus, nepieciešama autentifikācija"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:871
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:885
 #, c-format
 msgid "Authentication is required to get default printer of %s"
 msgstr "Lai iegūtu %s noklusēto printeri, nepieciešama autentifikācija"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:874
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:888
 #, c-format
 msgid "Authentication is required to get printers from %s"
 msgstr "Lai iegūtu %s printeru sarakstu, nepieciešama autentifikācija"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:877
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:893
+#, c-format
+msgid "Authentication is required to get a file from %s"
+msgstr "Lai iegūtu failu no %s, nepieciešama autentifikācija"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:895
 #, c-format
 msgid "Authentication is required on %s"
 msgstr "Nepieciešama autentifikācija uz %s"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1014
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1032
 msgid "Domain:"
 msgstr "Domēns:"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1044
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1062
 #, c-format
 msgid "Authentication is required to print document '%s'"
 msgstr "Lai drukātu dokumentu '%s', nepieciešama autentifikācija"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1049
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1067
 #, c-format
 msgid "Authentication is required to print this document on printer %s"
 msgstr "Lai drukātu šo dokumentu uz printera %s, nepieciešama autentifikācija"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1051
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1069
 msgid "Authentication is required to print this document"
 msgstr "Lai drukātu šo dokumentu, nepieciešama autentifikācija"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1672
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
 #, c-format
 msgid "Printer '%s' is low on toner."
 msgstr "Printerim '%s' ir atlicis maz tonera."
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1673
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
 #, c-format
 msgid "Printer '%s' has no toner left."
 msgstr "Printerim '%s' vairs nav tonera."
 
 #. Translators: "Developer" like on photo development context
-#: modules/printbackends/cups/gtkprintbackendcups.c:1675
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1693
 #, c-format
 msgid "Printer '%s' is low on developer."
 msgstr "Printerim '%s' ir atlicis maz attīstītāja."
 
 #. Translators: "Developer" like on photo development context
-#: modules/printbackends/cups/gtkprintbackendcups.c:1677
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1695
 #, c-format
 msgid "Printer '%s' is out of developer."
 msgstr "Printerim '%s' vairs nav attīstītāja."
 
 #. Translators: "marker" is one color bin of the printer
-#: modules/printbackends/cups/gtkprintbackendcups.c:1679
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1697
 #, c-format
 msgid "Printer '%s' is low on at least one marker supply."
 msgstr "Printerim '%s' ir atlicis maz vismaz vienas krāsas."
 
 #. Translators: "marker" is one color bin of the printer
-#: modules/printbackends/cups/gtkprintbackendcups.c:1681
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1699
 #, c-format
 msgid "Printer '%s' is out of at least one marker supply."
 msgstr "Printerim '%s' vairs nav vismaz vienas krāsas."
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1682
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1700
 #, c-format
 msgid "The cover is open on printer '%s'."
 msgstr "Printera '%s' vāks ir atvērts."
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1683
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1701
 #, c-format
 msgid "The door is open on printer '%s'."
 msgstr "Printera '%s' durvis ir atvērtas."
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1684
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1702
 #, c-format
 msgid "Printer '%s' is low on paper."
 msgstr "Printerim '%s' ir maz papīra."
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1685
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1703
 #, c-format
 msgid "Printer '%s' is out of paper."
 msgstr "Printerim '%s' vairs nav papīra."
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1686
-#, fuzzy, c-format
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1704
+#, c-format
 msgid "Printer '%s' is currently offline."
 msgstr "Printeris '%s' šobrīd ir atslēgts."
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:1687
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1705
 #, c-format
 msgid "There is a problem on printer '%s'."
 msgstr "Ar printeri '%s' ir kāda problēma."
 
 #. Translators: this is a printer status.
-#: modules/printbackends/cups/gtkprintbackendcups.c:1995
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2019
 msgid "Paused ; Rejecting Jobs"
 msgstr "Apturēts ; Nepieņem uzdevumus"
 
 #. Translators: this is a printer status.
-#: modules/printbackends/cups/gtkprintbackendcups.c:2001
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2025
 msgid "Rejecting Jobs"
 msgstr "Nepieņem uzdevumus"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:2777
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798
 msgid "Two Sided"
 msgstr "Abās pusēs"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:2778
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2799
 msgid "Paper Type"
 msgstr "Papīra tips"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:2779
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800
 msgid "Paper Source"
 msgstr "Papīra avots"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:2780
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2801
 msgid "Output Tray"
 msgstr "Izvades paplāte"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:2781
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
 msgid "Resolution"
 msgstr "Izšķirtspēja"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:2782
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2803
 msgid "GhostScript pre-filtering"
 msgstr "GhostScript prefiltrēšana"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:2791
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812
 msgid "One Sided"
 msgstr "Vienā pusē"
 
 #. Translators: this is an option of "Two Sided"
-#: modules/printbackends/cups/gtkprintbackendcups.c:2793
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814
 msgid "Long Edge (Standard)"
 msgstr "Garās malas iesējums"
 
 #. Translators: this is an option of "Two Sided"
-#: modules/printbackends/cups/gtkprintbackendcups.c:2795
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816
 msgid "Short Edge (Flip)"
 msgstr "Īsās malas iesējums"
 
 #. Translators: this is an option of "Paper Source"
-#: modules/printbackends/cups/gtkprintbackendcups.c:2797
-#: modules/printbackends/cups/gtkprintbackendcups.c:2799
-#: modules/printbackends/cups/gtkprintbackendcups.c:2807
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2820
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2828
 msgid "Auto Select"
 msgstr "Auto izvēle"
 
 #. Translators: this is an option of "Paper Source"
 #. Translators: this is an option of "Resolution"
-#: modules/printbackends/cups/gtkprintbackendcups.c:2801
-#: modules/printbackends/cups/gtkprintbackendcups.c:2803
-#: modules/printbackends/cups/gtkprintbackendcups.c:2805
-#: modules/printbackends/cups/gtkprintbackendcups.c:2809
-#: modules/printbackends/cups/gtkprintbackendcups.c:3295
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2822
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2824
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2826
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2830
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3326
 msgid "Printer Default"
 msgstr "Printera noklusētais"
 
 #. Translators: this is an option of "GhostScript"
-#: modules/printbackends/cups/gtkprintbackendcups.c:2811
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2832
 msgid "Embed GhostScript fonts only"
 msgstr "Iekļaut vienīgi GhostScript fontus"
 
 #. Translators: this is an option of "GhostScript"
-#: modules/printbackends/cups/gtkprintbackendcups.c:2813
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2834
 msgid "Convert to PS level 1"
 msgstr "Konvertēt uz PS level 1"
 
 #. Translators: this is an option of "GhostScript"
-#: modules/printbackends/cups/gtkprintbackendcups.c:2815
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2836
 msgid "Convert to PS level 2"
 msgstr "Konvertēt uz PS level 2"
 
 #. Translators: this is an option of "GhostScript"
-#: modules/printbackends/cups/gtkprintbackendcups.c:2817
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2838
 msgid "No pre-filtering"
 msgstr "Bez prefiltrēšanas"
 
 #. Translators: "Miscellaneous" is the label for a button, that opens
 #. up an extra panel of settings in a print dialog.
-#: modules/printbackends/cups/gtkprintbackendcups.c:2826
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2847
 msgid "Miscellaneous"
 msgstr "Dažādi"
 
 #. Translators: These strings name the possible values of the
 #. * job priority option in the print dialog
 #.
-#: modules/printbackends/cups/gtkprintbackendcups.c:3503
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Urgent"
 msgstr "Steidzama"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:3503
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "High"
 msgstr "Augsta"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:3503
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Medium"
 msgstr "Vidēja"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:3503
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Low"
 msgstr "Zema"
 
@@ -4025,66 +4326,66 @@ msgstr "Zema"
 #. Translators, this string is used to label the pages-per-sheet option
 #. * in the print dialog
 #.
-#: modules/printbackends/cups/gtkprintbackendcups.c:3527
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3593
 msgid "Pages per Sheet"
 msgstr "Lapas uz loksnes"
 
 #. Translators, this string is used to label the job priority option
 #. * in the print dialog
 #.
-#: modules/printbackends/cups/gtkprintbackendcups.c:3564
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3630
 msgid "Job Priority"
 msgstr "Prioritāte"
 
 #. Translators, this string is used to label the billing info entry
 #. * in the print dialog
 #.
-#: modules/printbackends/cups/gtkprintbackendcups.c:3575
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3641
 msgid "Billing Info"
 msgstr "Rēķina informācija"
 
 #. Translators, these strings are names for various 'standard' cover
 #. * pages that the printing system may support.
 #.
-#: modules/printbackends/cups/gtkprintbackendcups.c:3590
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "None"
 msgstr "Nekas"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:3590
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Classified"
 msgstr "Īpaša"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:3590
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Confidential"
 msgstr "Konfidenciāla"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:3590
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Secret"
 msgstr "Slepena"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:3590
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Standard"
 msgstr "Standarta"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:3590
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Top Secret"
 msgstr "Pilnīgi slepena"
 
-#: modules/printbackends/cups/gtkprintbackendcups.c:3590
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Unclassified"
 msgstr "Brīvi pieejama"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: modules/printbackends/cups/gtkprintbackendcups.c:3625
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3691
 msgid "Before"
 msgstr "Pirms"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: modules/printbackends/cups/gtkprintbackendcups.c:3640
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3706
 msgid "After"
 msgstr "Pēc"
 
@@ -4092,14 +4393,14 @@ msgstr "Pēc"
 #. * a print job is printed. Possible values are 'now', a specified time,
 #. * or 'on hold'
 #.
-#: modules/printbackends/cups/gtkprintbackendcups.c:3660
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3726
 msgid "Print at"
 msgstr "Drukāt"
 
 #. Translators: this is the name of the option that allows the user
 #. * to specify a time when a print job will be printed.
 #.
-#: modules/printbackends/cups/gtkprintbackendcups.c:3671
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
 msgid "Print at time"
 msgstr "Drukāt laikā"
 
@@ -4107,104 +4408,115 @@ msgstr "Drukāt laikā"
 #. * size. The two placeholders are replaced with the width and height
 #. * in points. E.g: "Custom 230.4x142.9"
 #.
-#: modules/printbackends/cups/gtkprintbackendcups.c:3706
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772
 #, c-format
 msgid "Custom %sx%s"
 msgstr "Pielāgots %sx%s"
 
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3853
+#| msgid "Printer offline"
+msgid "Printer Profile"
+msgstr "Printera profils"
+
+#. TRANSLATORS: this is when color profile information is unavailable
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860
+#| msgid "Not available"
+msgid "Unavailable"
+msgstr "Nav pieejams"
+
 #. default filename used for print-to-file
-#: modules/printbackends/file/gtkprintbackendfile.c:250
+#: ../modules/printbackends/file/gtkprintbackendfile.c:250
 #, c-format
 msgid "output.%s"
 msgstr "izvade.%s"
 
-#: modules/printbackends/file/gtkprintbackendfile.c:493
+#: ../modules/printbackends/file/gtkprintbackendfile.c:501
 msgid "Print to File"
 msgstr "Drukāt failā"
 
-#: modules/printbackends/file/gtkprintbackendfile.c:570
+#: ../modules/printbackends/file/gtkprintbackendfile.c:627
 msgid "PDF"
 msgstr "PDF"
 
-#: modules/printbackends/file/gtkprintbackendfile.c:570
+#: ../modules/printbackends/file/gtkprintbackendfile.c:627
 msgid "Postscript"
 msgstr "Postscript"
 
-#: modules/printbackends/file/gtkprintbackendfile.c:570
+#: ../modules/printbackends/file/gtkprintbackendfile.c:627
 msgid "SVG"
 msgstr "SVG"
 
-#: modules/printbackends/file/gtkprintbackendfile.c:582
-#: modules/printbackends/test/gtkprintbackendtest.c:503
+#: ../modules/printbackends/file/gtkprintbackendfile.c:640
+#: ../modules/printbackends/test/gtkprintbackendtest.c:503
 msgid "Pages per _sheet:"
 msgstr "Lapas uz loks_nes:"
 
-#: modules/printbackends/file/gtkprintbackendfile.c:641
+#: ../modules/printbackends/file/gtkprintbackendfile.c:699
 msgid "File"
 msgstr "Fails"
 
-#: modules/printbackends/file/gtkprintbackendfile.c:651
+#: ../modules/printbackends/file/gtkprintbackendfile.c:709
 msgid "_Output format"
 msgstr "_Izvades formāts"
 
-#: modules/printbackends/lpr/gtkprintbackendlpr.c:395
+#: ../modules/printbackends/lpr/gtkprintbackendlpr.c:395
 msgid "Print to LPR"
 msgstr "Drukāt uz LPR"
 
-#: modules/printbackends/lpr/gtkprintbackendlpr.c:421
+#: ../modules/printbackends/lpr/gtkprintbackendlpr.c:421
 msgid "Pages Per Sheet"
 msgstr "Lapas uz loksnes"
 
-#: modules/printbackends/lpr/gtkprintbackendlpr.c:428
+#: ../modules/printbackends/lpr/gtkprintbackendlpr.c:428
 msgid "Command Line"
 msgstr "Komandrinda"
 
 #. SUN_BRANDING
-#: modules/printbackends/papi/gtkprintbackendpapi.c:811
+#: ../modules/printbackends/papi/gtkprintbackendpapi.c:811
 msgid "printer offline"
 msgstr "printeris atslēgts"
 
 #. SUN_BRANDING
-#: modules/printbackends/papi/gtkprintbackendpapi.c:829
+#: ../modules/printbackends/papi/gtkprintbackendpapi.c:829
 msgid "ready to print"
 msgstr "gatavs drukāšanai"
 
 #. SUN_BRANDING
-#: modules/printbackends/papi/gtkprintbackendpapi.c:832
+#: ../modules/printbackends/papi/gtkprintbackendpapi.c:832
 msgid "processing job"
 msgstr "apstrādā uzdevumu"
 
 #. SUN_BRANDING
-#: modules/printbackends/papi/gtkprintbackendpapi.c:836
+#: ../modules/printbackends/papi/gtkprintbackendpapi.c:836
 msgid "paused"
 msgstr "apturēts"
 
 #. SUN_BRANDING
-#: modules/printbackends/papi/gtkprintbackendpapi.c:839
+#: ../modules/printbackends/papi/gtkprintbackendpapi.c:839
 msgid "unknown"
 msgstr "nezināms"
 
 #. default filename used for print-to-test
-#: modules/printbackends/test/gtkprintbackendtest.c:234
+#: ../modules/printbackends/test/gtkprintbackendtest.c:234
 #, c-format
 msgid "test-output.%s"
 msgstr "testa-izvade.%s"
 
-#: modules/printbackends/test/gtkprintbackendtest.c:467
+#: ../modules/printbackends/test/gtkprintbackendtest.c:467
 msgid "Print to Test Printer"
 msgstr "Drukāt testa printerī"
 
-#: tests/testfilechooser.c:207
+#: ../tests/testfilechooser.c:207
 #, c-format
 msgid "Could not get information for file '%s': %s"
 msgstr "Neizdevās iegūt informāciju par failu '%s': %s"
 
-#: tests/testfilechooser.c:222
+#: ../tests/testfilechooser.c:222
 #, c-format
 msgid "Failed to open file '%s': %s"
 msgstr "Neizdevās atvērt failu '%s': %s"
 
-#: tests/testfilechooser.c:267
+#: ../tests/testfilechooser.c:267
 #, c-format
 msgid ""
 "Failed to load image '%s': reason not known, probably a corrupt image file"
@@ -4212,6 +4524,72 @@ msgstr ""
 "Neizdevās ielādēt attēlu '%s': iemesls nezināms, iespējams, bojāts attēla "
 "fails"
 
+#~ msgid "X screen to use"
+#~ msgstr "Izmantojamais X ekrāns"
+
+#~ msgid "SCREEN"
+#~ msgstr "EKRĀNS"
+
+#~ msgid "Make X calls synchronous"
+#~ msgstr "Padarīt X izsaukumus sinhronus"
+
+#~ msgid "Credits"
+#~ msgstr "Autori"
+
+#~ msgid "Written by"
+#~ msgstr "Sarakstījuši"
+
+#~ msgid "Received invalid color data\n"
+#~ msgstr "Saņemti nederīgi krāsu dati\n"
+
+#~ msgid "_Add"
+#~ msgstr "_Pievienot"
+
+#~ msgid "_Remove"
+#~ msgstr "_Izņemt"
+
+#~ msgid "_Browse for other folders"
+#~ msgstr "_Pārlūkot citas mapes"
+
+#~ msgid "Error creating folder '%s': %s"
+#~ msgstr "Kļūda, veidojot mapi '%s': %s"
+
+#~ msgid "Error loading icon: %s"
+#~ msgstr "Kļūda, ielādējot ikonu: %s"
+
+#~ msgid ""
+#~ "Could not find the icon '%s'. The '%s' theme\n"
+#~ "was not found either, perhaps you need to install it.\n"
+#~ "You can get a copy from:\n"
+#~ "\t%s"
+#~ msgstr ""
+#~ "Neizdevās atrast ikonu '%s'. Tēma '%s'\n"
+#~ "arī netika atrasta; iespējams, tā jāinstalē.\n"
+#~ "To var iegūt:\n"
+#~ "\t%s"
+
+#~ msgid "Unable to find include file: \"%s\""
+#~ msgstr "Nevar atrast iekļaujamo failu: \"%s\""
+
+#~ msgid "Unable to locate image file in pixmap_path: \"%s\""
+#~ msgstr "Nevar atrast attēla failu pixmap_path: \"%s\""
+
+#~ msgid "This function is not implemented for widgets of class '%s'"
+#~ msgstr "Šī funkcija nav ieviesta '%s' klases logdaļām"
+
+#~ msgctxt "throbbing progress animation widget"
+#~ msgid "Spinner"
+#~ msgstr "Spinner"
+
+#~ msgid "Provides visual indication of progress"
+#~ msgstr "Vizuāls progresa indikators"
+
+#~ msgid "Unable to locate theme engine in module_path: \"%s\","
+#~ msgstr "Neizdevās atrast tēmu dzinēju module_path: \"%s\","
+
+#~ msgid "different idatas found for symlinked '%s' and '%s'\n"
+#~ msgstr "dažādi idata atrasti simsaistītajos '%s' un '%s'\n"
+
 #~ msgid "Gdk debugging flags to set"
 #~ msgstr "Uzstādāmie Gdk atkļūdošanas karodziņi"
 
@@ -4908,9 +5286,6 @@ msgstr ""
 #~ msgid "_Folder name:"
 #~ msgstr "_Mapes nosaukums:"
 
-#~ msgid "C_reate"
-#~ msgstr "Iz_veidot"
-
 #~ msgid ""
 #~ "The filename \"%s\" contains symbols that are not allowed in filenames"
 #~ msgstr ""
@@ -4943,9 +5318,6 @@ msgstr ""
 #~ msgid "_Rename"
 #~ msgstr "Pā_rsaukt"
 
-#~ msgid "_Selection: "
-#~ msgstr "_Izvēle: "
-
 #~ msgid ""
 #~ "The filename \"%s\" couldn't be converted to UTF-8. (try setting the "
 #~ "environment variable G_FILENAME_ENCODING): %s"
index 471443dfba5ea412606282a41f6f6dc9f7de5a0d..33fa27a0f553a7736e3634a873bd6f02f83911a9 100644 (file)
--- a/po/nb.po
+++ b/po/nb.po
@@ -1,15 +1,15 @@
 # Norwegian (bokmål) translation of gtk+.
 # Copyright (C) 1998-2004, 2005 Free Software Foundation, Inc.
-# Kjartan Maraas <kmaraas@gnome.org>, 1998-2010.
+# Kjartan Maraas <kmaraas@gnome.org>, 1998-2011.
 # Terance Edward Sola <terance@lyse.net>, 2005.
 # Torstein Adolf Winterseth <kvikende@fsfe.org>, 2010.
 msgid ""
 msgstr ""
 "Project-Id-Version: gtk+ 2.92.x\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-06-19 17:31+0200\n"
-"PO-Revision-Date: 2011-06-19 17:31+0200\n"
-"Last-Translator: Torstein Adolf Winterseth <kvikende@fsfe.org>\n"
+"POT-Creation-Date: 2011-07-12 12:44+0200\n"
+"PO-Revision-Date: 2011-07-12 12:45+0200\n"
+"Last-Translator: Kjartan Maraas <kmaraas@gnome.org>\n"
 "Language-Team: Norwegian Nynorsk <i18n-nn@lister.ping.uio.no>\n"
 "Language: nn\n"
 "MIME-Version: 1.0\n"
@@ -451,6 +451,24 @@ msgid_plural "Opening %d Items"
 msgstr[0] "Åpner %d oppføring"
 msgstr[1] "Åpner %d oppføringer"
 
+#: ../gtk/a11y/gtkspinneraccessible.c:42
+msgctxt "throbbing progress animation widget"
+msgid "Spinner"
+msgstr "Spinner"
+
+#: ../gtk/a11y/gtkspinneraccessible.c:43
+msgid "Provides visual indication of progress"
+msgstr "Gir visuell indikasjon av framdrift"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:65
+msgctxt "light switch widget"
+msgid "Switch"
+msgstr "Bryter"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:66
+msgid "Switches between on and off states"
+msgstr "Bytter mellom av/på tilstand"
+
 #. Translators: this is the license preamble; the string at the end
 #. * contains the URL of the license.
 #.
@@ -663,15 +681,15 @@ msgstr "Relaterte programmer"
 msgid "Other Applications"
 msgstr "Andre programmer"
 
-#: ../gtk/gtkassistant.c:919
+#: ../gtk/gtkassistant.c:1000
 msgid "C_ontinue"
 msgstr "F_ortsett"
 
-#: ../gtk/gtkassistant.c:922
+#: ../gtk/gtkassistant.c:1003
 msgid "Go _Back"
 msgstr "Gå til_bake"
 
-#: ../gtk/gtkassistant.c:926
+#: ../gtk/gtkassistant.c:1007
 msgid "_Finish"
 msgstr "_Fullfør"
 
@@ -705,7 +723,7 @@ msgstr "Uhåndtert tag «%s»"
 #. * text direction of RTL and specify "calendar:YM", then the year
 #. * will appear to the right of the month.
 #.
-#: ../gtk/gtkcalendar.c:870
+#: ../gtk/gtkcalendar.c:874
 msgid "calendar:MY"
 msgstr "calendar:MY"
 
@@ -713,7 +731,7 @@ msgstr "calendar:MY"
 #. * first day of the week to calendar:week_start:1 if you want Monday
 #. * to be the first day of the week, and so on.
 #.
-#: ../gtk/gtkcalendar.c:908
+#: ../gtk/gtkcalendar.c:912
 msgid "calendar:week_start:0"
 msgstr "calendar:week_start:1"
 
@@ -722,7 +740,7 @@ msgstr "calendar:week_start:1"
 #. *
 #. * If you don't understand this, leave it as "2000"
 #.
-#: ../gtk/gtkcalendar.c:1909
+#: ../gtk/gtkcalendar.c:1913
 msgctxt "year measurement template"
 msgid "2000"
 msgstr "2000"
@@ -737,7 +755,7 @@ msgstr "2000"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1940 ../gtk/gtkcalendar.c:2637
+#: ../gtk/gtkcalendar.c:1944 ../gtk/gtkcalendar.c:2641
 #, c-format
 msgctxt "calendar:day:digits"
 msgid "%d"
@@ -753,7 +771,7 @@ msgstr "%d"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1972 ../gtk/gtkcalendar.c:2498
+#: ../gtk/gtkcalendar.c:1976 ../gtk/gtkcalendar.c:2502
 #, c-format
 msgctxt "calendar:week:digits"
 msgid "%d"
@@ -769,7 +787,7 @@ msgstr "%d"
 #. *
 #. * "%Y" is appropriate for most locales.
 #.
-#: ../gtk/gtkcalendar.c:2267
+#: ../gtk/gtkcalendar.c:2271
 msgctxt "calendar year format"
 msgid "%Y"
 msgstr "%Y"
@@ -1010,23 +1028,23 @@ msgstr "Høy_re:"
 msgid "Paper Margins"
 msgstr "Papirmarger"
 
-#: ../gtk/gtkentry.c:8928 ../gtk/gtktextview.c:8274
+#: ../gtk/gtkentry.c:8949 ../gtk/gtktextview.c:8277
 msgid "Input _Methods"
 msgstr "Inndata_metoder"
 
-#: ../gtk/gtkentry.c:8942 ../gtk/gtktextview.c:8288
+#: ../gtk/gtkentry.c:8963 ../gtk/gtktextview.c:8291
 msgid "_Insert Unicode Control Character"
 msgstr "Sett _inn Unicode kontrolltegn"
 
-#: ../gtk/gtkentry.c:10413
+#: ../gtk/gtkentry.c:10434
 msgid "Caps Lock and Num Lock are on"
 msgstr "Caps Lock og Num Lock er på"
 
-#: ../gtk/gtkentry.c:10415
+#: ../gtk/gtkentry.c:10436
 msgid "Num Lock is on"
 msgstr "Num Lock er på"
 
-#: ../gtk/gtkentry.c:10417
+#: ../gtk/gtkentry.c:10438
 msgid "Caps Lock is on"
 msgstr "Caps Lock er på"
 
@@ -1075,7 +1093,7 @@ msgstr "Caps Lock er på"
 msgid "Select a File"
 msgstr "Velg en fil"
 
-#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1871
+#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1809
 msgid "Desktop"
 msgstr "Skrivebord"
 
@@ -1087,27 +1105,27 @@ msgstr "(Ingen)"
 msgid "Other..."
 msgstr "Annet …"
 
-#: ../gtk/gtkfilechooserdefault.c:147
+#: ../gtk/gtkfilechooserdefault.c:148
 msgid "Type name of new folder"
 msgstr "Skriv inn navn på ny mappe"
 
-#: ../gtk/gtkfilechooserdefault.c:965
+#: ../gtk/gtkfilechooserdefault.c:960
 msgid "Could not retrieve information about the file"
 msgstr "Klarte ikke å hente informasjon om filen"
 
-#: ../gtk/gtkfilechooserdefault.c:976
+#: ../gtk/gtkfilechooserdefault.c:971
 msgid "Could not add a bookmark"
 msgstr "Klarte ikke å legge til bokmerke"
 
-#: ../gtk/gtkfilechooserdefault.c:987
+#: ../gtk/gtkfilechooserdefault.c:982
 msgid "Could not remove bookmark"
 msgstr "Klarte ikke å fjerne bokmerke"
 
-#: ../gtk/gtkfilechooserdefault.c:998
+#: ../gtk/gtkfilechooserdefault.c:993
 msgid "The folder could not be created"
 msgstr "Klarte ikke å lage mappen"
 
-#: ../gtk/gtkfilechooserdefault.c:1011
+#: ../gtk/gtkfilechooserdefault.c:1006
 msgid ""
 "The folder could not be created, as a file with the same name already "
 "exists.  Try using a different name for the folder, or rename the file first."
@@ -1115,16 +1133,16 @@ msgstr ""
 "Klarte ikke å lage mappen på grunn av at det allerede eksisterer en fil med "
 "samme navn. Bruk et annet navn for mappen eller gi et nytt navn til filen."
 
-#: ../gtk/gtkfilechooserdefault.c:1025
+#: ../gtk/gtkfilechooserdefault.c:1020
 msgid "You need to choose a valid filename."
 msgstr "Du må velge et gyldig filnavn."
 
-#: ../gtk/gtkfilechooserdefault.c:1028
+#: ../gtk/gtkfilechooserdefault.c:1023
 #, c-format
 msgid "Cannot create a file under %s as it is not a folder"
 msgstr "Kan ikke lage en fil under %s fordi den ikke er en mappe"
 
-#: ../gtk/gtkfilechooserdefault.c:1040
+#: ../gtk/gtkfilechooserdefault.c:1035
 msgid ""
 "You may only select folders.  The item that you selected is not a folder; "
 "try using a different item."
@@ -1132,11 +1150,11 @@ msgstr ""
 "Du kan kun velge mapper. Oppføringen du valgte er ikke en mappe. Prøv å "
 "bruke en annen oppføring."
 
-#: ../gtk/gtkfilechooserdefault.c:1050
+#: ../gtk/gtkfilechooserdefault.c:1045
 msgid "Invalid file name"
 msgstr "Ugyldig filnavn"
 
-#: ../gtk/gtkfilechooserdefault.c:1060
+#: ../gtk/gtkfilechooserdefault.c:1055
 msgid "The folder contents could not be displayed"
 msgstr "Mappeinholdet kunne ikke vises"
 
@@ -1144,179 +1162,186 @@ msgstr "Mappeinholdet kunne ikke vises"
 #. * is a hostname. Nautilus and the panel contain the same string
 #. * to translate.
 #.
-#: ../gtk/gtkfilechooserdefault.c:1614
+#: ../gtk/gtkfilechooserdefault.c:1581
 #, c-format
 msgid "%1$s on %2$s"
 msgstr "%1$s på %2$s"
 
-#: ../gtk/gtkfilechooserdefault.c:1790
+#: ../gtk/gtkfilechooserdefault.c:1730
 msgid "Search"
 msgstr "Søk"
 
-#: ../gtk/gtkfilechooserdefault.c:1814 ../gtk/gtkfilechooserdefault.c:9539
+#: ../gtk/gtkfilechooserdefault.c:1754 ../gtk/gtkfilechooserdefault.c:4871
 msgid "Recently Used"
 msgstr "Sist brukt"
 
-#: ../gtk/gtkfilechooserdefault.c:2470
+#: ../gtk/gtkfilechooserdefault.c:2353
 msgid "Select which types of files are shown"
 msgstr "Velg hvilke filtyper som skal vises"
 
-#: ../gtk/gtkfilechooserdefault.c:2829
+#: ../gtk/gtkfilechooserdefault.c:2712
 #, c-format
 msgid "Add the folder '%s' to the bookmarks"
 msgstr "Legg til mappe «%s» i bokmerker"
 
-#: ../gtk/gtkfilechooserdefault.c:2873
+#: ../gtk/gtkfilechooserdefault.c:2756
 #, c-format
 msgid "Add the current folder to the bookmarks"
 msgstr "Legg til aktiv mappe i bokmerker"
 
-#: ../gtk/gtkfilechooserdefault.c:2875
+#: ../gtk/gtkfilechooserdefault.c:2758
 #, c-format
 msgid "Add the selected folders to the bookmarks"
 msgstr "Legg til valgte mapper i bokmerker"
 
-#: ../gtk/gtkfilechooserdefault.c:2913
+#: ../gtk/gtkfilechooserdefault.c:2796
 #, c-format
 msgid "Remove the bookmark '%s'"
 msgstr "Fjern bokmerke «%s»"
 
-#: ../gtk/gtkfilechooserdefault.c:2915
+#: ../gtk/gtkfilechooserdefault.c:2798
 #, c-format
 msgid "Bookmark '%s' cannot be removed"
 msgstr "Bokmerke «%s» kan ikke fjernes"
 
-#: ../gtk/gtkfilechooserdefault.c:2922 ../gtk/gtkfilechooserdefault.c:3807
+#: ../gtk/gtkfilechooserdefault.c:2805 ../gtk/gtkfilechooserdefault.c:3690
 msgid "Remove the selected bookmark"
 msgstr "Fjern valgt bokmerke"
 
-#: ../gtk/gtkfilechooserdefault.c:3486
+#: ../gtk/gtkfilechooserdefault.c:3369
 msgid "Remove"
 msgstr "Fjern"
 
-#: ../gtk/gtkfilechooserdefault.c:3495
+#: ../gtk/gtkfilechooserdefault.c:3378
 msgid "Rename..."
 msgstr "Gi nytt navn …"
 
 #. Accessible object name for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3659
+#: ../gtk/gtkfilechooserdefault.c:3542
 msgid "Places"
 msgstr "Steder"
 
 #. Column header for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3716
+#: ../gtk/gtkfilechooserdefault.c:3599
 msgid "_Places"
 msgstr "_Steder"
 
-#: ../gtk/gtkfilechooserdefault.c:3795
+#: ../gtk/gtkfilechooserdefault.c:3678
 msgid "Add the selected folder to the Bookmarks"
 msgstr "Legg til valgt mappe i bokmerker"
 
-#: ../gtk/gtkfilechooserdefault.c:3942
+#: ../gtk/gtkfilechooserdefault.c:3825
 msgid "Could not select file"
 msgstr "Klarte ikke å merke filen"
 
-#: ../gtk/gtkfilechooserdefault.c:4115
+#: ../gtk/gtkfilechooserdefault.c:3998
 msgid "_Add to Bookmarks"
 msgstr "L_egg til i bokmerker"
 
-#: ../gtk/gtkfilechooserdefault.c:4128
+#: ../gtk/gtkfilechooserdefault.c:4011
 msgid "Show _Hidden Files"
 msgstr "Vis sk_julte filer"
 
-#: ../gtk/gtkfilechooserdefault.c:4135
+#: ../gtk/gtkfilechooserdefault.c:4018
 msgid "Show _Size Column"
 msgstr "Vis kolonne for _størrelse"
 
-#: ../gtk/gtkfilechooserdefault.c:4360
+#: ../gtk/gtkfilechooserdefault.c:4243
 msgid "Files"
 msgstr "Filer"
 
-#: ../gtk/gtkfilechooserdefault.c:4411
+#: ../gtk/gtkfilechooserdefault.c:4294
 msgid "Name"
 msgstr "Navn"
 
-#: ../gtk/gtkfilechooserdefault.c:4434
+#: ../gtk/gtkfilechooserdefault.c:4317
 msgid "Size"
 msgstr "Størrelse"
 
-#: ../gtk/gtkfilechooserdefault.c:4448
+#: ../gtk/gtkfilechooserdefault.c:4331
 msgid "Modified"
 msgstr "Endret"
 
 #. Label
-#: ../gtk/gtkfilechooserdefault.c:4702 ../gtk/gtkprinteroptionwidget.c:799
+#: ../gtk/gtkfilechooserdefault.c:4412 ../gtk/gtkprinteroptionwidget.c:799
 msgid "_Name:"
 msgstr "_Navn:"
 
-#. Expander
-#: ../gtk/gtkfilechooserdefault.c:4745
-msgid "_Browse for other folders"
-msgstr "_Se gjennom andre mapper"
-
-#: ../gtk/gtkfilechooserdefault.c:5018
+#: ../gtk/gtkfilechooserdefault.c:4709
 msgid "Type a file name"
 msgstr "Skriv et filnavn"
 
+#: ../gtk/gtkfilechooserdefault.c:4756 ../gtk/gtkfilechooserdefault.c:4767
+msgid "Please select a folder below"
+msgstr "Velg en mappe under"
+
+#: ../gtk/gtkfilechooserdefault.c:4762
+msgid "Please type a file name"
+msgstr "Skriv et filnavn"
+
 #. Create Folder
-#: ../gtk/gtkfilechooserdefault.c:5061
+#: ../gtk/gtkfilechooserdefault.c:4833
 msgid "Create Fo_lder"
 msgstr "Opprett _mappe"
 
-#: ../gtk/gtkfilechooserdefault.c:5071
+#: ../gtk/gtkfilechooserdefault.c:4881
+msgid "Search:"
+msgstr "Søk:"
+
+#: ../gtk/gtkfilechooserdefault.c:4928
 msgid "_Location:"
 msgstr "_Adresse:"
 
-#: ../gtk/gtkfilechooserdefault.c:5278
+#: ../gtk/gtkfilechooserdefault.c:5245
 msgid "Save in _folder:"
 msgstr "Lagre i _mappe:"
 
-#: ../gtk/gtkfilechooserdefault.c:5280
+#: ../gtk/gtkfilechooserdefault.c:5247
 msgid "Create in _folder:"
 msgstr "Opprett i _mappe:"
 
-#: ../gtk/gtkfilechooserdefault.c:6402
+#: ../gtk/gtkfilechooserdefault.c:6341
 #, c-format
 msgid "Could not read the contents of %s"
 msgstr "Klarte ikke å lese innholdet av %s"
 
-#: ../gtk/gtkfilechooserdefault.c:6406
+#: ../gtk/gtkfilechooserdefault.c:6345
 msgid "Could not read the contents of the folder"
 msgstr "Klarte ikke å lese innholdet i mappen"
 
-#: ../gtk/gtkfilechooserdefault.c:6499 ../gtk/gtkfilechooserdefault.c:6567
-#: ../gtk/gtkfilechooserdefault.c:6719
+#: ../gtk/gtkfilechooserdefault.c:6438 ../gtk/gtkfilechooserdefault.c:6506
+#: ../gtk/gtkfilechooserdefault.c:6658
 msgid "Unknown"
 msgstr "Ukjent"
 
-#: ../gtk/gtkfilechooserdefault.c:6514
+#: ../gtk/gtkfilechooserdefault.c:6453
 msgid "%H:%M"
 msgstr "%H.%M"
 
-#: ../gtk/gtkfilechooserdefault.c:6516
+#: ../gtk/gtkfilechooserdefault.c:6455
 msgid "Yesterday at %H:%M"
 msgstr "I går kl. %H.%M"
 
-#: ../gtk/gtkfilechooserdefault.c:7185
+#: ../gtk/gtkfilechooserdefault.c:7140
 msgid "Cannot change to folder because it is not local"
 msgstr "Kan ikke gå til mappen fordi den ikke er lokal"
 
-#: ../gtk/gtkfilechooserdefault.c:7777 ../gtk/gtkfilechooserdefault.c:7798
+#: ../gtk/gtkfilechooserdefault.c:7740 ../gtk/gtkfilechooserdefault.c:7761
 #, c-format
 msgid "Shortcut %s already exists"
 msgstr "Snarvei %s eksisterer allerede"
 
-#: ../gtk/gtkfilechooserdefault.c:7888
+#: ../gtk/gtkfilechooserdefault.c:7851
 #, c-format
 msgid "Shortcut %s does not exist"
 msgstr "Snarvei %s eksisterer ikke"
 
-#: ../gtk/gtkfilechooserdefault.c:8146 ../gtk/gtkprintunixdialog.c:550
+#: ../gtk/gtkfilechooserdefault.c:8097 ../gtk/gtkprintunixdialog.c:550
 #, c-format
 msgid "A file named \"%s\" already exists.  Do you want to replace it?"
 msgstr "En fil med navn «%s» eksisterer allerede. Vil du erstatte den?"
 
-#: ../gtk/gtkfilechooserdefault.c:8149 ../gtk/gtkprintunixdialog.c:554
+#: ../gtk/gtkfilechooserdefault.c:8100 ../gtk/gtkprintunixdialog.c:554
 #, c-format
 msgid ""
 "The file already exists in \"%s\".  Replacing it will overwrite its contents."
@@ -1324,15 +1349,15 @@ msgstr ""
 "Fila eksisterer allerede i «%s». Hvis du erstatter denne vil du overskrive "
 "innholdet."
 
-#: ../gtk/gtkfilechooserdefault.c:8154 ../gtk/gtkprintunixdialog.c:561
+#: ../gtk/gtkfilechooserdefault.c:8105 ../gtk/gtkprintunixdialog.c:561
 msgid "_Replace"
 msgstr "E_rstatt"
 
-#: ../gtk/gtkfilechooserdefault.c:8881
+#: ../gtk/gtkfilechooserdefault.c:8858
 msgid "Could not start the search process"
 msgstr "Klarte ikke å starte søkeprosessen"
 
-#: ../gtk/gtkfilechooserdefault.c:8882
+#: ../gtk/gtkfilechooserdefault.c:8859
 msgid ""
 "The program was not able to create a connection to the indexer daemon.  "
 "Please make sure it is running."
@@ -1340,15 +1365,11 @@ msgstr ""
 "Programmet kunne ikke opprette en tilkobling til indekseringstjenesten. "
 "Sjekk at denne kjører."
 
-#: ../gtk/gtkfilechooserdefault.c:8896
+#: ../gtk/gtkfilechooserdefault.c:8873
 msgid "Could not send the search request"
 msgstr "Klarte ikke å sende søkeforespørselen"
 
-#: ../gtk/gtkfilechooserdefault.c:9115
-msgid "Search:"
-msgstr "Søk:"
-
-#: ../gtk/gtkfilechooserdefault.c:9723
+#: ../gtk/gtkfilechooserdefault.c:9665
 #, c-format
 msgid "Could not mount %s"
 msgstr "Klarte ikke å montere %s"
@@ -1356,6 +1377,8 @@ msgstr "Klarte ikke å montere %s"
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry, when the user enters an invalid path.
 #: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1174
+#: ../gtk/gtkfilesystem.c:721
+#, c-format
 msgid "Invalid path"
 msgstr "Ugyldig sti"
 
@@ -1489,20 +1512,20 @@ msgid "System (%s)"
 msgstr "System (%s)"
 
 #. Open Link
-#: ../gtk/gtklabel.c:6302
+#: ../gtk/gtklabel.c:6309
 msgid "_Open Link"
 msgstr "_Åpne lenke"
 
 #. Copy Link Address
-#: ../gtk/gtklabel.c:6314
+#: ../gtk/gtklabel.c:6321
 msgid "Copy _Link Address"
 msgstr "Kopier _lenkas adresse"
 
-#: ../gtk/gtklinkbutton.c:482
+#: ../gtk/gtklinkbutton.c:484
 msgid "Copy URL"
 msgstr "Kopier URL"
 
-#: ../gtk/gtklinkbutton.c:645
+#: ../gtk/gtklinkbutton.c:647
 msgid "Invalid URI"
 msgstr "Ugyldig URI"
 
@@ -1568,20 +1591,20 @@ msgstr "Feilsøkingsflagg som skal fjernes for GTK+"
 #. * Do *not* translate it to "predefinito:LTR", if it
 #. * it isn't default:LTR or default:RTL it will not work
 #.
-#: ../gtk/gtkmain.c:845
+#: ../gtk/gtkmain.c:848
 msgid "default:LTR"
 msgstr "default:LTR"
 
-#: ../gtk/gtkmain.c:909
+#: ../gtk/gtkmain.c:914
 #, c-format
 msgid "Cannot open display: %s"
 msgstr "Kan ikke åpne skjerm: %s"
 
-#: ../gtk/gtkmain.c:975
+#: ../gtk/gtkmain.c:980
 msgid "GTK+ Options"
 msgstr "Alternativer for GTK+"
 
-#: ../gtk/gtkmain.c:975
+#: ../gtk/gtkmain.c:980
 msgid "Show GTK+ Options"
 msgstr "Vis alternativer for GTK+"
 
@@ -1641,32 +1664,32 @@ msgstr ""
 "Kan ikke terminere prosess med PID %d. Operasjonen er ikke implementert."
 
 #. translators: this string is a name for the 'less' command
-#: ../gtk/gtkmountoperation-x11.c:859
+#: ../gtk/gtkmountoperation-x11.c:959
 msgid "Terminal Pager"
 msgstr "Terminal Pager"
 
-#: ../gtk/gtkmountoperation-x11.c:860
+#: ../gtk/gtkmountoperation-x11.c:960
 msgid "Top Command"
 msgstr "Top-kommando"
 
-#: ../gtk/gtkmountoperation-x11.c:861
+#: ../gtk/gtkmountoperation-x11.c:961
 msgid "Bourne Again Shell"
 msgstr "Bourne Again Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:862
+#: ../gtk/gtkmountoperation-x11.c:962
 msgid "Bourne Shell"
 msgstr "Bourne Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:863
+#: ../gtk/gtkmountoperation-x11.c:963
 msgid "Z Shell"
 msgstr "Z Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:960
+#: ../gtk/gtkmountoperation-x11.c:1060
 #, c-format
 msgid "Cannot end process with PID %d: %s"
 msgstr "Kan ikke avslutte prosess med PID %d: %s"
 
-#: ../gtk/gtknotebook.c:4919 ../gtk/gtknotebook.c:7608
+#: ../gtk/gtknotebook.c:4922 ../gtk/gtknotebook.c:7611
 #, c-format
 msgid "Page %u"
 msgstr "Side %u"
@@ -2318,15 +2341,6 @@ msgid "No registered application with name '%s' for item with URI '%s' found"
 msgstr ""
 "Ingen registrerte programmer med navn «%s» funnet for oppføring med URI «%s»"
 
-#: ../gtk/gtkspinner.c:286
-msgctxt "throbbing progress animation widget"
-msgid "Spinner"
-msgstr "Spinner"
-
-#: ../gtk/gtkspinner.c:287
-msgid "Provides visual indication of progress"
-msgstr "Gir visuell indikasjon av framdrift"
-
 #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
 #: ../gtk/gtkstock.c:313
 msgctxt "Stock label"
@@ -2835,7 +2849,7 @@ msgstr "Zoom _ut"
 #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
 #. * the state
 #.
-#: ../gtk/gtkswitch.c:337 ../gtk/gtkswitch.c:397 ../gtk/gtkswitch.c:604
+#: ../gtk/gtkswitch.c:336 ../gtk/gtkswitch.c:396 ../gtk/gtkswitch.c:603
 msgctxt "switch"
 msgid "ON"
 msgstr "PÅ"
@@ -2843,20 +2857,11 @@ msgstr "PÅ"
 #. Translators: if the "off" state label requires more than three
 #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
 #.
-#: ../gtk/gtkswitch.c:345 ../gtk/gtkswitch.c:398 ../gtk/gtkswitch.c:633
+#: ../gtk/gtkswitch.c:344 ../gtk/gtkswitch.c:397 ../gtk/gtkswitch.c:632
 msgctxt "switch"
 msgid "OFF"
 msgstr "AV"
 
-#: ../gtk/gtkswitch.c:1060
-msgctxt "light switch widget"
-msgid "Switch"
-msgstr "Bryter"
-
-#: ../gtk/gtkswitch.c:1061
-msgid "Switches between on and off states"
-msgstr "Bytter mellom av/på tilstand"
-
 #: ../gtk/gtktextbufferrichtext.c:651
 #, c-format
 msgid "Unknown error when trying to deserialize %s"
@@ -4404,6 +4409,22 @@ msgstr "Skriverprofil"
 msgid "Unavailable"
 msgstr "Ikke tilgjengelig"
 
+#. TRANSLATORS: when we're running an old CUPS, and
+#. * it hasn't registered the device with colord
+#: ../modules/printbackends/cups/gtkprintercups.c:222
+msgid "Color management unavailable"
+msgstr "Fargestyring ikke tilgjengelig"
+
+#. TRANSLATORS: when there is no color profile available
+#: ../modules/printbackends/cups/gtkprintercups.c:234
+msgid "No profile available"
+msgstr "Ingen profil tilgjengelig"
+
+#. TRANSLATORS: when the color profile has no title
+#: ../modules/printbackends/cups/gtkprintercups.c:245
+msgid "Unspecified profile"
+msgstr "Uspesifisert profil"
+
 #. default filename used for print-to-file
 #: ../modules/printbackends/file/gtkprintbackendfile.c:250
 #, c-format
index f511d1eccb0f88e21df45c9ad594f204efcaccde..e8fe525aa23c6c7f60ba8edc610f9d988eea56b3 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -7,63 +7,62 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: gtk+\n"
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%"
-"2b&component=general\n"
-"POT-Creation-Date: 2011-02-04 20:37+0000\n"
-"PO-Revision-Date: 2011-02-06 14:05+0100\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2011-07-13 08:45+0200\n"
+"PO-Revision-Date: 2011-07-13 08:46+0200\n"
 "Last-Translator: Piotr Drąg <piotrdrag@gmail.com>\n"
 "Language-Team: Polish <gnomepl@aviary.pl>\n"
+"Language: pl\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: pl\n"
 "Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 "
 "|| n%100>=20) ? 1 : 2);\n"
 "X-Poedit-Language: Polish\n"
 "X-Poedit-Country: Poland\n"
 
-#: ../gdk/gdk.c:151
+#: ../gdk/gdk.c:135
 #, c-format
 msgid "Error parsing option --gdk-debug"
 msgstr "Błąd podczas przetwarzania opcji --gdk-debug"
 
-#: ../gdk/gdk.c:171
+#: ../gdk/gdk.c:155
 #, c-format
 msgid "Error parsing option --gdk-no-debug"
 msgstr "Błąd podczas przetwarzania opcji --gdk-no-debug"
 
 #. Description of --class=CLASS in --help output
-#: ../gdk/gdk.c:199
+#: ../gdk/gdk.c:183
 msgid "Program class as used by the window manager"
 msgstr "Klasa programu używana przez menedżera okien"
 
 #. Placeholder in --class=CLASS in --help output
-#: ../gdk/gdk.c:200
+#: ../gdk/gdk.c:184
 msgid "CLASS"
 msgstr "KLASA"
 
 #. Description of --name=NAME in --help output
-#: ../gdk/gdk.c:202
+#: ../gdk/gdk.c:186
 msgid "Program name as used by the window manager"
 msgstr "Nazwa programu używana przez menedżera okien"
 
 #. Placeholder in --name=NAME in --help output
-#: ../gdk/gdk.c:203
+#: ../gdk/gdk.c:187
 msgid "NAME"
 msgstr "NAZWA"
 
 #. Description of --display=DISPLAY in --help output
-#: ../gdk/gdk.c:205
+#: ../gdk/gdk.c:189
 msgid "X display to use"
 msgstr "Używany ekran X"
 
 #. Placeholder in --display=DISPLAY in --help output
-#: ../gdk/gdk.c:206
+#: ../gdk/gdk.c:190
 msgid "DISPLAY"
 msgstr "EKRAN"
 
 #. Description of --gdk-debug=FLAGS in --help output
-#: ../gdk/gdk.c:209
+#: ../gdk/gdk.c:193
 msgid "GDK debugging flags to set"
 msgstr "Ustawione znaczniki debugowania biblioteki GDK"
 
@@ -71,12 +70,12 @@ msgstr "Ustawione znaczniki debugowania biblioteki GDK"
 #. Placeholder in --gdk-no-debug=FLAGS in --help output
 #. Placeholder in --gtk-debug=FLAGS in --help output
 #. Placeholder in --gtk-no-debug=FLAGS in --help output
-#: ../gdk/gdk.c:210 ../gdk/gdk.c:213 ../gtk/gtkmain.c:570 ../gtk/gtkmain.c:573
+#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:569 ../gtk/gtkmain.c:572
 msgid "FLAGS"
 msgstr "ZNACZNIKI"
 
 #. Description of --gdk-no-debug=FLAGS in --help output
-#: ../gdk/gdk.c:212
+#: ../gdk/gdk.c:196
 msgid "GDK debugging flags to unset"
 msgstr "Wyczyszczone znaczniki debugowania biblioteki GDK"
 
@@ -456,10 +455,28 @@ msgstr[0] "Otwieranie %d elementu"
 msgstr[1] "Otwieranie %d elementów"
 msgstr[2] "Otwieranie %d elementów"
 
+#: ../gtk/a11y/gtkspinneraccessible.c:42
+msgctxt "throbbing progress animation widget"
+msgid "Spinner"
+msgstr "Spinner"
+
+#: ../gtk/a11y/gtkspinneraccessible.c:43
+msgid "Provides visual indication of progress"
+msgstr "Dostarcza wzrokowy wskaźnik postępu"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:65
+msgctxt "light switch widget"
+msgid "Switch"
+msgstr "Przełącznik"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:66
+msgid "Switches between on and off states"
+msgstr "Przełącza między stanami \"włączone\" i \"wyłączone\""
+
 #. Translators: this is the license preamble; the string at the end
 #. * contains the URL of the license.
 #.
-#: ../gtk/gtkaboutdialog.c:104
+#: ../gtk/gtkaboutdialog.c:103
 #, c-format
 msgid ""
 "This program comes with ABSOLUTELY NO WARRANTY; for details, visit <a href="
@@ -468,50 +485,50 @@ msgstr ""
 "Niniejszy program rozpowszechniany jest BEZ JAKIEJKOLWIEK GWARANCJI. Aby "
 "dowiedzieć się więcej, należy odwiedzić stronę <a href=\"%s\">%s</a>"
 
-#: ../gtk/gtkaboutdialog.c:346
+#: ../gtk/gtkaboutdialog.c:345
 msgid "License"
 msgstr "Licencja"
 
-#: ../gtk/gtkaboutdialog.c:347
+#: ../gtk/gtkaboutdialog.c:346
 msgid "The license of the program"
 msgstr "Licencja programu"
 
 #. Add the credits button
-#: ../gtk/gtkaboutdialog.c:739
+#: ../gtk/gtkaboutdialog.c:738
 msgid "C_redits"
 msgstr "Z_asługi"
 
 #. Add the license button
-#: ../gtk/gtkaboutdialog.c:752
+#: ../gtk/gtkaboutdialog.c:751
 msgid "_License"
 msgstr "_Licencja"
 
-#: ../gtk/gtkaboutdialog.c:957
+#: ../gtk/gtkaboutdialog.c:956
 msgid "Could not show link"
 msgstr "Nie można wyświetlić odnośnika"
 
-#: ../gtk/gtkaboutdialog.c:994
+#: ../gtk/gtkaboutdialog.c:993
 msgid "Homepage"
 msgstr "Witryna programu"
 
-#: ../gtk/gtkaboutdialog.c:1048
+#: ../gtk/gtkaboutdialog.c:1047
 #, c-format
 msgid "About %s"
 msgstr "O programie %s"
 
-#: ../gtk/gtkaboutdialog.c:2372
+#: ../gtk/gtkaboutdialog.c:2371
 msgid "Created by"
 msgstr "Program"
 
-#: ../gtk/gtkaboutdialog.c:2375
+#: ../gtk/gtkaboutdialog.c:2374
 msgid "Documented by"
 msgstr "Dokumentacja"
 
-#: ../gtk/gtkaboutdialog.c:2385
+#: ../gtk/gtkaboutdialog.c:2384
 msgid "Translated by"
 msgstr "Tłumaczenie"
 
-#: ../gtk/gtkaboutdialog.c:2390
+#: ../gtk/gtkaboutdialog.c:2389
 msgid "Artwork by"
 msgstr "Grafika"
 
@@ -520,7 +537,7 @@ msgstr "Grafika"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:158
+#: ../gtk/gtkaccellabel.c:156
 msgctxt "keyboard label"
 msgid "Shift"
 msgstr "Shift"
@@ -530,7 +547,7 @@ msgstr "Shift"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:164
+#: ../gtk/gtkaccellabel.c:162
 msgctxt "keyboard label"
 msgid "Ctrl"
 msgstr "Ctrl"
@@ -540,7 +557,7 @@ msgstr "Ctrl"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:170
+#: ../gtk/gtkaccellabel.c:168
 msgctxt "keyboard label"
 msgid "Alt"
 msgstr "Alt"
@@ -550,7 +567,7 @@ msgstr "Alt"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:782
+#: ../gtk/gtkaccellabel.c:787
 msgctxt "keyboard label"
 msgid "Super"
 msgstr "Super"
@@ -560,7 +577,7 @@ msgstr "Super"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:795
+#: ../gtk/gtkaccellabel.c:800
 msgctxt "keyboard label"
 msgid "Hyper"
 msgstr "Hyper"
@@ -570,69 +587,69 @@ msgstr "Hyper"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:809
+#: ../gtk/gtkaccellabel.c:814
 msgctxt "keyboard label"
 msgid "Meta"
 msgstr "Meta"
 
-#: ../gtk/gtkaccellabel.c:825
+#: ../gtk/gtkaccellabel.c:830
 msgctxt "keyboard label"
 msgid "Space"
 msgstr "Spacja"
 
-#: ../gtk/gtkaccellabel.c:828
+#: ../gtk/gtkaccellabel.c:833
 msgctxt "keyboard label"
 msgid "Backslash"
 msgstr "Backslash"
 
-#: ../gtk/gtkappchooserbutton.c:264
+#: ../gtk/gtkappchooserbutton.c:268
 msgid "Other application..."
 msgstr "Inny program..."
 
-#: ../gtk/gtkappchooserdialog.c:128
+#: ../gtk/gtkappchooserdialog.c:130
 msgid "Failed to look for applications online"
 msgstr "Wyszukanie programu w trybie online się nie powiodło"
 
-#: ../gtk/gtkappchooserdialog.c:165
+#: ../gtk/gtkappchooserdialog.c:171
 msgid "Find applications online"
 msgstr "Znajdź programy w trybie online"
 
-#: ../gtk/gtkappchooserdialog.c:209
+#: ../gtk/gtkappchooserdialog.c:221
 msgid "Could not run application"
 msgstr "Nie można uruchomić programu"
 
-#: ../gtk/gtkappchooserdialog.c:222
+#: ../gtk/gtkappchooserdialog.c:234
 #, c-format
 msgid "Could not find '%s'"
 msgstr "Nie można odnaleźć \"%s\""
 
-#: ../gtk/gtkappchooserdialog.c:225
+#: ../gtk/gtkappchooserdialog.c:237
 msgid "Could not find application"
 msgstr "Nie można odnaleźć programu"
 
 #. Translators: %s is a filename
-#: ../gtk/gtkappchooserdialog.c:335
+#: ../gtk/gtkappchooserdialog.c:355
 #, c-format
 msgid "Select an application to open \"%s\""
 msgstr "Proszę wybrać program do otwarcia pliku \"%s\""
 
-#: ../gtk/gtkappchooserdialog.c:336 ../gtk/gtkappchooserwidget.c:640
+#: ../gtk/gtkappchooserdialog.c:356 ../gtk/gtkappchooserwidget.c:643
 #, c-format
 msgid "No applications available to open \"%s\""
 msgstr "Brak dostępnych programów do otwarcia pliku \"%s\""
 
 #. Translators: %s is a file type description
-#: ../gtk/gtkappchooserdialog.c:342
+#: ../gtk/gtkappchooserdialog.c:362
 #, c-format
 msgid "Select an application for \"%s\" files"
 msgstr "Proszę wybrać program dla plików typu \"%s\""
 
-#: ../gtk/gtkappchooserdialog.c:345
+#: ../gtk/gtkappchooserdialog.c:364
 #, c-format
 msgid "No applications available to open \"%s\" files"
 msgstr "Brak dostępnych programów do otwarcia plików \"%s\""
 
-#: ../gtk/gtkappchooserdialog.c:362
+#: ../gtk/gtkappchooserdialog.c:380
 msgid ""
 "Click \"Show other applications\", for more options, or \"Find applications "
 "online\" to install a new application"
@@ -640,34 +657,49 @@ msgstr ""
 "Kliknięcie \"Wyświetl inne programy\" wyświetli więcej opcji, a kliknięcie "
 "\"Znajdź programy w trybie online\" umożliwi zainstalowanie nowego programu"
 
-#: ../gtk/gtkappchooserdialog.c:432
+#: ../gtk/gtkappchooserdialog.c:450
 msgid "Forget association"
 msgstr "Usuń powiązanie"
 
-#: ../gtk/gtkappchooserdialog.c:497
+#: ../gtk/gtkappchooserdialog.c:515
 msgid "Show other applications"
 msgstr "Wyświetl inne programy"
 
-#: ../gtk/gtkappchooserdialog.c:515
+#: ../gtk/gtkappchooserdialog.c:533
 msgid "_Select"
 msgstr "_Wybierz"
 
-#: ../gtk/gtkappchooserwidget.c:591
+#: ../gtk/gtkappchooserwidget.c:592
 msgid "Default Application"
 msgstr "Domyślny program"
 
-#: ../gtk/gtkappchooserwidget.c:726
+#: ../gtk/gtkappchooserwidget.c:730
 msgid "Recommended Applications"
 msgstr "Polecane programy"
 
-#: ../gtk/gtkappchooserwidget.c:740
+#: ../gtk/gtkappchooserwidget.c:745
 msgid "Related Applications"
 msgstr "Powiązane programy"
 
-#: ../gtk/gtkappchooserwidget.c:754
+#: ../gtk/gtkappchooserwidget.c:759
 msgid "Other Applications"
 msgstr "Inne programy"
 
+#: ../gtk/gtkassistant.c:1000
+#, fuzzy
+msgid "C_ontinue"
+msgstr "P_ołącz"
+
+#: ../gtk/gtkassistant.c:1003
+#, fuzzy
+msgid "Go _Back"
+msgstr "_Wstecz"
+
+#: ../gtk/gtkassistant.c:1007
+#, fuzzy
+msgid "_Finish"
+msgstr "Ukończono"
+
 #: ../gtk/gtkbuilderparser.c:342
 #, c-format
 msgid "Invalid type function on line %d: '%s'"
@@ -699,7 +731,7 @@ msgstr "Nieobsługiwany znacznik: \"%s\""
 #. * text direction of RTL and specify "calendar:YM", then the year
 #. * will appear to the right of the month.
 #.
-#: ../gtk/gtkcalendar.c:871
+#: ../gtk/gtkcalendar.c:874
 msgid "calendar:MY"
 msgstr "calendar:MY"
 
@@ -707,7 +739,7 @@ msgstr "calendar:MY"
 #. * first day of the week to calendar:week_start:1 if you want Monday
 #. * to be the first day of the week, and so on.
 #.
-#: ../gtk/gtkcalendar.c:909
+#: ../gtk/gtkcalendar.c:912
 msgid "calendar:week_start:0"
 msgstr "calendar:week_start:1"
 
@@ -716,7 +748,7 @@ msgstr "calendar:week_start:1"
 #. *
 #. * If you don't understand this, leave it as "2000"
 #.
-#: ../gtk/gtkcalendar.c:1910
+#: ../gtk/gtkcalendar.c:1913
 msgctxt "year measurement template"
 msgid "2000"
 msgstr "8888"
@@ -731,7 +763,7 @@ msgstr "8888"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1941 ../gtk/gtkcalendar.c:2638
+#: ../gtk/gtkcalendar.c:1944 ../gtk/gtkcalendar.c:2641
 #, c-format
 msgctxt "calendar:day:digits"
 msgid "%d"
@@ -747,7 +779,7 @@ msgstr "%d"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1973 ../gtk/gtkcalendar.c:2499
+#: ../gtk/gtkcalendar.c:1976 ../gtk/gtkcalendar.c:2502
 #, c-format
 msgctxt "calendar:week:digits"
 msgid "%d"
@@ -763,7 +795,7 @@ msgstr "%d"
 #. *
 #. * "%Y" is appropriate for most locales.
 #.
-#: ../gtk/gtkcalendar.c:2268
+#: ../gtk/gtkcalendar.c:2271
 msgctxt "calendar year format"
 msgid "%Y"
 msgstr "%Y"
@@ -771,7 +803,7 @@ msgstr "%Y"
 #. This label is displayed in a treeview cell displaying
 #. * a disabled accelerator key combination.
 #.
-#: ../gtk/gtkcellrendereraccel.c:271
+#: ../gtk/gtkcellrendereraccel.c:286
 msgctxt "Accelerator"
 msgid "Disabled"
 msgstr "Wyłączony"
@@ -780,7 +812,7 @@ msgstr "Wyłączony"
 #. * an accelerator key combination that is not valid according
 #. * to gtk_accelerator_valid().
 #.
-#: ../gtk/gtkcellrendereraccel.c:281
+#: ../gtk/gtkcellrendereraccel.c:296
 msgctxt "Accelerator"
 msgid "Invalid"
 msgstr "Nieprawidłowy"
@@ -789,11 +821,11 @@ msgstr "Nieprawidłowy"
 #. * an accelerator when the cell is clicked to change the
 #. * acelerator.
 #.
-#: ../gtk/gtkcellrendereraccel.c:417 ../gtk/gtkcellrendereraccel.c:729
+#: ../gtk/gtkcellrendereraccel.c:432 ../gtk/gtkcellrendereraccel.c:745
 msgid "New accelerator..."
 msgstr "Nowy skrót..."
 
-#: ../gtk/gtkcellrendererprogress.c:362 ../gtk/gtkcellrendererprogress.c:452
+#: ../gtk/gtkcellrendererprogress.c:374 ../gtk/gtkcellrendererprogress.c:464
 #, c-format
 msgctxt "progress bar label"
 msgid "%d %%"
@@ -803,11 +835,7 @@ msgstr "%d %%"
 msgid "Pick a Color"
 msgstr "Wybór koloru"
 
-#: ../gtk/gtkcolorbutton.c:372
-msgid "Received invalid color data\n"
-msgstr "Otrzymano nieprawidłowe dane koloru\n"
-
-#: ../gtk/gtkcolorsel.c:415
+#: ../gtk/gtkcolorsel.c:416
 msgid ""
 "Select the color you want from the outer ring. Select the darkness or "
 "lightness of that color using the inner triangle."
@@ -815,7 +843,7 @@ msgstr ""
 "Proszę wybrać żądany kolor z zewnętrznego pierścienia, a przy użyciu "
 "trójkąta wewnątrz wybrać jasność tego koloru."
 
-#: ../gtk/gtkcolorsel.c:441
+#: ../gtk/gtkcolorsel.c:442
 msgid ""
 "Click the eyedropper, then click a color anywhere on your screen to select "
 "that color."
@@ -823,67 +851,67 @@ msgstr ""
 "Proszę nacisnąć zakraplacz, a następnie dowolny punkt obrazu, aby pobrać z "
 "niego kolor."
 
-#: ../gtk/gtkcolorsel.c:451
+#: ../gtk/gtkcolorsel.c:452
 msgid "_Hue:"
 msgstr "O_dcień:"
 
-#: ../gtk/gtkcolorsel.c:452
+#: ../gtk/gtkcolorsel.c:453
 msgid "Position on the color wheel."
 msgstr "Położenie na kole kolorów."
 
-#: ../gtk/gtkcolorsel.c:454
+#: ../gtk/gtkcolorsel.c:455
 msgid "_Saturation:"
 msgstr "Na_sycenie:"
 
-#: ../gtk/gtkcolorsel.c:455
+#: ../gtk/gtkcolorsel.c:456
 msgid "Intensity of the color."
 msgstr "Intensywność koloru."
 
-#: ../gtk/gtkcolorsel.c:456
+#: ../gtk/gtkcolorsel.c:457
 msgid "_Value:"
 msgstr "_Wartość:"
 
-#: ../gtk/gtkcolorsel.c:457
+#: ../gtk/gtkcolorsel.c:458
 msgid "Brightness of the color."
 msgstr "Jasność koloru."
 
-#: ../gtk/gtkcolorsel.c:458
+#: ../gtk/gtkcolorsel.c:459
 msgid "_Red:"
 msgstr "_Czerwony:"
 
-#: ../gtk/gtkcolorsel.c:459
+#: ../gtk/gtkcolorsel.c:460
 msgid "Amount of red light in the color."
 msgstr "Ilość czerwonego światła w kolorze."
 
-#: ../gtk/gtkcolorsel.c:460
+#: ../gtk/gtkcolorsel.c:461
 msgid "_Green:"
 msgstr "_Zielony:"
 
-#: ../gtk/gtkcolorsel.c:461
+#: ../gtk/gtkcolorsel.c:462
 msgid "Amount of green light in the color."
 msgstr "Ilość zielonego światła w kolorze."
 
-#: ../gtk/gtkcolorsel.c:462
+#: ../gtk/gtkcolorsel.c:463
 msgid "_Blue:"
 msgstr "_Niebieski:"
 
-#: ../gtk/gtkcolorsel.c:463
+#: ../gtk/gtkcolorsel.c:464
 msgid "Amount of blue light in the color."
 msgstr "Ilość niebieskiego światła w kolorze."
 
-#: ../gtk/gtkcolorsel.c:466
+#: ../gtk/gtkcolorsel.c:467
 msgid "Op_acity:"
 msgstr "_Nieprzezroczystość:"
 
-#: ../gtk/gtkcolorsel.c:473 ../gtk/gtkcolorsel.c:483
+#: ../gtk/gtkcolorsel.c:475 ../gtk/gtkcolorsel.c:485
 msgid "Transparency of the color."
 msgstr "Przezroczystość koloru."
 
-#: ../gtk/gtkcolorsel.c:490
+#: ../gtk/gtkcolorsel.c:492
 msgid "Color _name:"
 msgstr "Nazwa _koloru:"
 
-#: ../gtk/gtkcolorsel.c:504
+#: ../gtk/gtkcolorsel.c:507
 msgid ""
 "You can enter an HTML-style hexadecimal color value, or simply a color name "
 "such as 'orange' in this entry."
@@ -891,15 +919,15 @@ msgstr ""
 "Tutaj można wprowadzić szesnastkową wartość koloru (jak w HTML-u) lub po "
 "prostu nazwę koloru w języku angielskim, np. \"orange\"."
 
-#: ../gtk/gtkcolorsel.c:536
+#: ../gtk/gtkcolorsel.c:539
 msgid "_Palette:"
 msgstr "Pal_eta:"
 
-#: ../gtk/gtkcolorsel.c:565
+#: ../gtk/gtkcolorsel.c:569
 msgid "Color Wheel"
 msgstr "Koło kolorów"
 
-#: ../gtk/gtkcolorsel.c:1038
+#: ../gtk/gtkcolorsel.c:1042
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now. You can drag this color to a palette entry, or select this color as "
@@ -909,7 +937,7 @@ msgstr ""
 "przeciągnąć ten kolor na jedną z pozycji palety lub wybrać go bezpośrednio "
 "poprzez przeciągnięcie go nad kolor sąsiedni."
 
-#: ../gtk/gtkcolorsel.c:1044
+#: ../gtk/gtkcolorsel.c:1048
 msgid ""
 "The color you've chosen. You can drag this color to a palette entry to save "
 "it for use in the future."
@@ -917,21 +945,21 @@ msgstr ""
 "Aktualnie wybrany kolor. Kolor ten można przeciągnąć na jedną z pozycji "
 "palety, aby zachować go na przyszłość."
 
-#: ../gtk/gtkcolorsel.c:1050
+#: ../gtk/gtkcolorsel.c:1054
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now."
 msgstr "Poprzednio wybrany kolor, do porównania z kolorem wybranym obecnie."
 
-#: ../gtk/gtkcolorsel.c:1054
+#: ../gtk/gtkcolorsel.c:1058
 msgid "The color you've chosen."
 msgstr "Wybrany kolor."
 
-#: ../gtk/gtkcolorsel.c:1456
+#: ../gtk/gtkcolorsel.c:1460
 msgid "_Save color here"
 msgstr "_Zapisz kolor w tym miejscu"
 
-#: ../gtk/gtkcolorsel.c:1661
+#: ../gtk/gtkcolorsel.c:1665
 msgid ""
 "Click this palette entry to make it the current color. To change this entry, "
 "drag a color swatch here or right-click it and select \"Save color here.\""
@@ -940,7 +968,7 @@ msgstr ""
 "zmienić ten element należy przeciągnąć tutaj próbkę koloru lub nacisnąć "
 "prawym przyciskiem i wybrać \"Zapisz kolor w tym miejscu\"."
 
-#: ../gtk/gtkcolorseldialog.c:189
+#: ../gtk/gtkcolorseldialog.c:213
 msgid "Color Selection"
 msgstr "Wybór koloru"
 
@@ -955,95 +983,133 @@ msgid "default:mm"
 msgstr "default:mm"
 
 #. And show the custom paper dialog
-#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3255
+#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3325
 msgid "Manage Custom Sizes"
 msgstr "Zarządzanie własnymi rozmiarami"
 
-#: ../gtk/gtkcustompaperunixdialog.c:532 ../gtk/gtkpagesetupunixdialog.c:788
+#: ../gtk/gtkcustompaperunixdialog.c:533 ../gtk/gtkpagesetupunixdialog.c:783
 msgid "inch"
 msgstr "cale"
 
-#: ../gtk/gtkcustompaperunixdialog.c:534 ../gtk/gtkpagesetupunixdialog.c:786
+#: ../gtk/gtkcustompaperunixdialog.c:535 ../gtk/gtkpagesetupunixdialog.c:781
 msgid "mm"
 msgstr "mm"
 
-#: ../gtk/gtkcustompaperunixdialog.c:579
+#: ../gtk/gtkcustompaperunixdialog.c:580
 msgid "Margins from Printer..."
 msgstr "Marginesy z drukarki..."
 
-#: ../gtk/gtkcustompaperunixdialog.c:745
+#: ../gtk/gtkcustompaperunixdialog.c:746
 #, c-format
 msgid "Custom Size %d"
 msgstr "Własny rozmiar %d"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1057
+#: ../gtk/gtkcustompaperunixdialog.c:1084
 msgid "_Width:"
 msgstr "_Szerokość:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1069
+#: ../gtk/gtkcustompaperunixdialog.c:1097
 msgid "_Height:"
 msgstr "_Wysokość:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1081
+#: ../gtk/gtkcustompaperunixdialog.c:1110
 msgid "Paper Size"
 msgstr "Rozmiar papieru"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1090
+#: ../gtk/gtkcustompaperunixdialog.c:1119
 msgid "_Top:"
 msgstr "_Górny:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1102
+#: ../gtk/gtkcustompaperunixdialog.c:1132
 msgid "_Bottom:"
 msgstr "_Dolny:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1114
+#: ../gtk/gtkcustompaperunixdialog.c:1145
 msgid "_Left:"
 msgstr "_Lewy:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1126
+#: ../gtk/gtkcustompaperunixdialog.c:1158
 msgid "_Right:"
 msgstr "_Prawy:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1167
+#: ../gtk/gtkcustompaperunixdialog.c:1200
 msgid "Paper Margins"
 msgstr "Marginesy papieru"
 
-#: ../gtk/gtkentry.c:8755 ../gtk/gtktextview.c:8270
+#: ../gtk/gtkentry.c:8949 ../gtk/gtktextview.c:8277
 msgid "Input _Methods"
 msgstr "_Metoda wprowadzania danych"
 
-#: ../gtk/gtkentry.c:8769 ../gtk/gtktextview.c:8284
+#: ../gtk/gtkentry.c:8963 ../gtk/gtktextview.c:8291
 msgid "_Insert Unicode Control Character"
 msgstr "_Wstaw znak kontrolny Unikodu"
 
-#: ../gtk/gtkentry.c:10177
+#: ../gtk/gtkentry.c:10434
 msgid "Caps Lock and Num Lock are on"
 msgstr "Klawisze Caps Lock i Num Lock są włączone"
 
-#: ../gtk/gtkentry.c:10179
+#: ../gtk/gtkentry.c:10436
 msgid "Num Lock is on"
 msgstr "Klawisz Num Lock jest włączony"
 
-#: ../gtk/gtkentry.c:10181
+#: ../gtk/gtkentry.c:10438
 msgid "Caps Lock is on"
 msgstr "Klawisz Caps Lock jest włączony"
 
+#. *
+#. * SECTION:gtkfilechooserbutton
+#. * @Short_description: A button to launch a file selection dialog
+#. * @Title: GtkFileChooserButton
+#. * @See_also:#GtkFileChooserDialog
+#. *
+#. * The #GtkFileChooserButton is a widget that lets the user select a
+#. * file.  It implements the #GtkFileChooser interface.  Visually, it is a
+#. * file name with a button to bring up a #GtkFileChooserDialog.
+#. * The user can then use that dialog to change the file associated with
+#. * that button.  This widget does not support setting the
+#. * #GtkFileChooser:select-multiple property to %TRUE.
+#. *
+#. * <example>
+#. * <title>Create a button to let the user select a file in /etc</title>
+#. * <programlisting>
+#. * {
+#. *   GtkWidget *button;
+#. *
+#. *   button = gtk_file_chooser_button_new (_("Select a file"),
+#. *                                         GTK_FILE_CHOOSER_ACTION_OPEN);
+#. *   gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button),
+#. *                                        "/etc");
+#. * }
+#. * </programlisting>
+#. * </example>
+#. *
+#. * The #GtkFileChooserButton supports the #GtkFileChooserAction<!-- -->s
+#. * %GTK_FILE_CHOOSER_ACTION_OPEN and %GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
+#. *
+#. * <important>
+#. * The #GtkFileChooserButton will ellipsize the label,
+#. * and thus will thus request little horizontal space.  To give the button
+#. * more space, you should call gtk_widget_get_preferred_size(),
+#. * gtk_file_chooser_button_set_width_chars(), or pack the button in
+#. * such a way that other interface elements give space to the widget.
+#. * </important>
+#.
 #. **************** *
 #. *  Private Macros  *
 #. * ****************
-#: ../gtk/gtkfilechooserbutton.c:62
+#: ../gtk/gtkfilechooserbutton.c:105
 msgid "Select a File"
 msgstr "Wybór pliku"
 
-#: ../gtk/gtkfilechooserbutton.c:63 ../gtk/gtkfilechooserdefault.c:1865
+#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1809
 msgid "Desktop"
 msgstr "Pulpit"
 
-#: ../gtk/gtkfilechooserbutton.c:64
+#: ../gtk/gtkfilechooserbutton.c:107
 msgid "(None)"
 msgstr "(Brak)"
 
-#: ../gtk/gtkfilechooserbutton.c:1997
+#: ../gtk/gtkfilechooserbutton.c:2046
 msgid "Other..."
 msgstr "Inne..."
 
@@ -1104,178 +1170,188 @@ msgstr "Nie można wyświetlić zawartości katalogu"
 #. * is a hostname. Nautilus and the panel contain the same string
 #. * to translate.
 #.
-#: ../gtk/gtkfilechooserdefault.c:1608
+#: ../gtk/gtkfilechooserdefault.c:1581
 #, c-format
 msgid "%1$s on %2$s"
 msgstr "%1$s na %2$s"
 
-#: ../gtk/gtkfilechooserdefault.c:1784
+#: ../gtk/gtkfilechooserdefault.c:1730
 msgid "Search"
 msgstr "Wyszukaj"
 
-#: ../gtk/gtkfilechooserdefault.c:1808 ../gtk/gtkfilechooserdefault.c:9466
+#: ../gtk/gtkfilechooserdefault.c:1754 ../gtk/gtkfilechooserdefault.c:4871
 msgid "Recently Used"
 msgstr "Ostatnio używane"
 
-#: ../gtk/gtkfilechooserdefault.c:2464
+#: ../gtk/gtkfilechooserdefault.c:2353
 msgid "Select which types of files are shown"
 msgstr "Wybór typów wyświetlanych plików"
 
-#: ../gtk/gtkfilechooserdefault.c:2823
+#: ../gtk/gtkfilechooserdefault.c:2712
 #, c-format
 msgid "Add the folder '%s' to the bookmarks"
 msgstr "Dodaje zakładkę do katalogu \"%s\""
 
-#: ../gtk/gtkfilechooserdefault.c:2867
+#: ../gtk/gtkfilechooserdefault.c:2756
 #, c-format
 msgid "Add the current folder to the bookmarks"
 msgstr "Dodaje zakładkę do bieżącego katalogu"
 
-#: ../gtk/gtkfilechooserdefault.c:2869
+#: ../gtk/gtkfilechooserdefault.c:2758
 #, c-format
 msgid "Add the selected folders to the bookmarks"
 msgstr "Dodaje zakładki do zaznaczonych katalogów"
 
-#: ../gtk/gtkfilechooserdefault.c:2907
+#: ../gtk/gtkfilechooserdefault.c:2796
 #, c-format
 msgid "Remove the bookmark '%s'"
 msgstr "Usuwa zakładkę \"%s\""
 
-#: ../gtk/gtkfilechooserdefault.c:2909
+#: ../gtk/gtkfilechooserdefault.c:2798
 #, c-format
 msgid "Bookmark '%s' cannot be removed"
 msgstr "Zakładka \"%s\" nie może zostać usunięta"
 
-#: ../gtk/gtkfilechooserdefault.c:2916 ../gtk/gtkfilechooserdefault.c:3798
+#: ../gtk/gtkfilechooserdefault.c:2805 ../gtk/gtkfilechooserdefault.c:3690
 msgid "Remove the selected bookmark"
 msgstr "Usuwa wybraną zakładkę"
 
-#: ../gtk/gtkfilechooserdefault.c:3479
+#: ../gtk/gtkfilechooserdefault.c:3369
 msgid "Remove"
 msgstr "Usuń"
 
-#: ../gtk/gtkfilechooserdefault.c:3488
+#: ../gtk/gtkfilechooserdefault.c:3378
 msgid "Rename..."
 msgstr "Zmień nazwę..."
 
 #. Accessible object name for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3651
+#: ../gtk/gtkfilechooserdefault.c:3542
 msgid "Places"
 msgstr "Miejsca"
 
 #. Column header for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3708
+#: ../gtk/gtkfilechooserdefault.c:3599
 msgid "_Places"
 msgstr "_Miejsca"
 
-#: ../gtk/gtkfilechooserdefault.c:3786
+#: ../gtk/gtkfilechooserdefault.c:3678
 msgid "Add the selected folder to the Bookmarks"
 msgstr "Dodaje zakładkę do wybranego katalogu"
 
-#: ../gtk/gtkfilechooserdefault.c:3933
+#: ../gtk/gtkfilechooserdefault.c:3825
 msgid "Could not select file"
 msgstr "Nie można wybrać pliku"
 
-#: ../gtk/gtkfilechooserdefault.c:4106
+#: ../gtk/gtkfilechooserdefault.c:3998
 msgid "_Add to Bookmarks"
 msgstr "_Dodaj zakładkę"
 
-#: ../gtk/gtkfilechooserdefault.c:4119
+#: ../gtk/gtkfilechooserdefault.c:4011
 msgid "Show _Hidden Files"
 msgstr "Wyświetlanie u_krytych plików"
 
-#: ../gtk/gtkfilechooserdefault.c:4126
+#: ../gtk/gtkfilechooserdefault.c:4018
 msgid "Show _Size Column"
 msgstr "_Wyświetlanie kolumny rozmiaru"
 
-#: ../gtk/gtkfilechooserdefault.c:4351
+#: ../gtk/gtkfilechooserdefault.c:4243
 msgid "Files"
 msgstr "Pliki"
 
-#: ../gtk/gtkfilechooserdefault.c:4402
+#: ../gtk/gtkfilechooserdefault.c:4294
 msgid "Name"
 msgstr "Nazwa"
 
-#: ../gtk/gtkfilechooserdefault.c:4425
+#: ../gtk/gtkfilechooserdefault.c:4317
 msgid "Size"
 msgstr "Rozmiar"
 
-#: ../gtk/gtkfilechooserdefault.c:4439
+#: ../gtk/gtkfilechooserdefault.c:4331
 msgid "Modified"
 msgstr "Zmodyfikowany"
 
 #. Label
-#: ../gtk/gtkfilechooserdefault.c:4694 ../gtk/gtkprinteroptionwidget.c:793
+#: ../gtk/gtkfilechooserdefault.c:4412 ../gtk/gtkprinteroptionwidget.c:799
 msgid "_Name:"
 msgstr "_Nazwa:"
 
-#: ../gtk/gtkfilechooserdefault.c:4737
-msgid "_Browse for other folders"
-msgstr "_Przeglądaj inne katalogi"
-
-#: ../gtk/gtkfilechooserdefault.c:5007
+#: ../gtk/gtkfilechooserdefault.c:4709
 msgid "Type a file name"
 msgstr "Nazwa pliku"
 
+#: ../gtk/gtkfilechooserdefault.c:4756 ../gtk/gtkfilechooserdefault.c:4767
+#, fuzzy
+msgid "Please select a folder below"
+msgstr "Wybór katalogu"
+
+#: ../gtk/gtkfilechooserdefault.c:4762
+#, fuzzy
+msgid "Please type a file name"
+msgstr "Nazwa pliku"
+
 #. Create Folder
-#: ../gtk/gtkfilechooserdefault.c:5050
+#: ../gtk/gtkfilechooserdefault.c:4833
 msgid "Create Fo_lder"
 msgstr "Utwórz kata_log"
 
-#: ../gtk/gtkfilechooserdefault.c:5060
+#: ../gtk/gtkfilechooserdefault.c:4881
+msgid "Search:"
+msgstr "Wyszukiwanie:"
+
+#: ../gtk/gtkfilechooserdefault.c:4928
 msgid "_Location:"
 msgstr "Położ_enie:"
 
-#: ../gtk/gtkfilechooserdefault.c:5265
+#: ../gtk/gtkfilechooserdefault.c:5245
 msgid "Save in _folder:"
 msgstr "Zapis w katal_ogu:"
 
-#: ../gtk/gtkfilechooserdefault.c:5267
+#: ../gtk/gtkfilechooserdefault.c:5247
 msgid "Create in _folder:"
 msgstr "Utworzenie w k_atalogu:"
 
-#: ../gtk/gtkfilechooserdefault.c:6331
+#: ../gtk/gtkfilechooserdefault.c:6341
 #, c-format
 msgid "Could not read the contents of %s"
 msgstr "Nie można odczytać zawartości %s"
 
-#: ../gtk/gtkfilechooserdefault.c:6335
+#: ../gtk/gtkfilechooserdefault.c:6345
 msgid "Could not read the contents of the folder"
 msgstr "Nie można odczytać zawartości katalogu"
 
-#: ../gtk/gtkfilechooserdefault.c:6428 ../gtk/gtkfilechooserdefault.c:6496
-#: ../gtk/gtkfilechooserdefault.c:6641
+#: ../gtk/gtkfilechooserdefault.c:6438 ../gtk/gtkfilechooserdefault.c:6506
+#: ../gtk/gtkfilechooserdefault.c:6658
 msgid "Unknown"
 msgstr "Nieznany"
 
-#: ../gtk/gtkfilechooserdefault.c:6443
+#: ../gtk/gtkfilechooserdefault.c:6453
 msgid "%H:%M"
 msgstr "%H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:6445
+#: ../gtk/gtkfilechooserdefault.c:6455
 msgid "Yesterday at %H:%M"
 msgstr "Wczoraj o %H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:7107
+#: ../gtk/gtkfilechooserdefault.c:7140
 msgid "Cannot change to folder because it is not local"
 msgstr "Nie można przejść do katalogu, ponieważ nie jest on lokalny"
 
-#: ../gtk/gtkfilechooserdefault.c:7704 ../gtk/gtkfilechooserdefault.c:7725
+#: ../gtk/gtkfilechooserdefault.c:7740 ../gtk/gtkfilechooserdefault.c:7761
 #, c-format
 msgid "Shortcut %s already exists"
 msgstr "Skrót %s już istnieje"
 
-#: ../gtk/gtkfilechooserdefault.c:7815
+#: ../gtk/gtkfilechooserdefault.c:7851
 #, c-format
 msgid "Shortcut %s does not exist"
 msgstr "Skrót %s nie istnieje"
 
-#: ../gtk/gtkfilechooserdefault.c:8074 ../gtk/gtkprintunixdialog.c:480
+#: ../gtk/gtkfilechooserdefault.c:8097 ../gtk/gtkprintunixdialog.c:550
 #, c-format
 msgid "A file named \"%s\" already exists.  Do you want to replace it?"
 msgstr "Plik o nazwie \"%s\" już istnieje. Zastąpić go?"
 
-#: ../gtk/gtkfilechooserdefault.c:8077 ../gtk/gtkprintunixdialog.c:484
+#: ../gtk/gtkfilechooserdefault.c:8100 ../gtk/gtkprintunixdialog.c:554
 #, c-format
 msgid ""
 "The file already exists in \"%s\".  Replacing it will overwrite its contents."
@@ -1283,15 +1359,15 @@ msgstr ""
 "Plik już istnieje w \"%s\". Zastąpienie go spowoduje nadpisanie jego "
 "zawartości."
 
-#: ../gtk/gtkfilechooserdefault.c:8082 ../gtk/gtkprintunixdialog.c:491
+#: ../gtk/gtkfilechooserdefault.c:8105 ../gtk/gtkprintunixdialog.c:561
 msgid "_Replace"
 msgstr "_Zastąp"
 
-#: ../gtk/gtkfilechooserdefault.c:8808
+#: ../gtk/gtkfilechooserdefault.c:8900
 msgid "Could not start the search process"
 msgstr "Nie można rozpocząć procesu wyszukiwania"
 
-#: ../gtk/gtkfilechooserdefault.c:8809
+#: ../gtk/gtkfilechooserdefault.c:8901
 msgid ""
 "The program was not able to create a connection to the indexer daemon.  "
 "Please make sure it is running."
@@ -1299,36 +1375,34 @@ msgstr ""
 "Nie można było utworzyć połączenia z usługą indeksowania. Proszę się "
 "upewnić, czy usługa jest uruchomiona."
 
-#: ../gtk/gtkfilechooserdefault.c:8823
+#: ../gtk/gtkfilechooserdefault.c:8915
 msgid "Could not send the search request"
 msgstr "Nie można wysłać żądania wyszukiwania"
 
-#: ../gtk/gtkfilechooserdefault.c:9042
-msgid "Search:"
-msgstr "Wyszukaj:"
-
-#: ../gtk/gtkfilechooserdefault.c:9643
+#: ../gtk/gtkfilechooserdefault.c:9707
 #, c-format
 msgid "Could not mount %s"
 msgstr "Nie można zamontować %s"
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry, when the user enters an invalid path.
-#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1179
+#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1174
+#: ../gtk/gtkfilesystem.c:721
+#, c-format
 msgid "Invalid path"
 msgstr "Nieprawidłowa ścieżka"
 
 #. translators: this text is shown when there are no completions
 #. * for something the user typed in a file chooser entry
 #.
-#: ../gtk/gtkfilechooserentry.c:1111
+#: ../gtk/gtkfilechooserentry.c:1106
 msgid "No match"
 msgstr "Brak wyników"
 
 #. translators: this text is shown when there is exactly one completion
 #. * for something the user typed in a file chooser entry
 #.
-#: ../gtk/gtkfilechooserentry.c:1122
+#: ../gtk/gtkfilechooserentry.c:1117
 msgid "Sole completion"
 msgstr "Pojedyncze uzupełnienie"
 
@@ -1336,13 +1410,13 @@ msgstr "Pojedyncze uzupełnienie"
 #. * entry is a complete filename, but could be continued to find
 #. * a longer match
 #.
-#: ../gtk/gtkfilechooserentry.c:1138
+#: ../gtk/gtkfilechooserentry.c:1133
 msgid "Complete, but not unique"
 msgstr "Uzupełnione, lecz niekompletne"
 
 #. Translators: this text is shown while the system is searching
 #. * for possible completions for filenames in a file chooser entry.
-#: ../gtk/gtkfilechooserentry.c:1170
+#: ../gtk/gtkfilechooserentry.c:1165
 msgid "Completing..."
 msgstr "Uzupełnianie..."
 
@@ -1350,7 +1424,7 @@ msgstr "Uzupełnianie..."
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user enters something like
 #. * "sftp://blahblah" in an app that only supports local filenames.
-#: ../gtk/gtkfilechooserentry.c:1192 ../gtk/gtkfilechooserentry.c:1217
+#: ../gtk/gtkfilechooserentry.c:1187 ../gtk/gtkfilechooserentry.c:1212
 msgid "Only local files may be selected"
 msgstr "Można wybrać tylko lokalne pliki"
 
@@ -1358,14 +1432,14 @@ msgstr "Można wybrać tylko lokalne pliki"
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user hasn't entered the first '/'
 #. * after a hostname and yet hits Tab (such as "sftp://blahblah[Tab]")
-#: ../gtk/gtkfilechooserentry.c:1201
+#: ../gtk/gtkfilechooserentry.c:1196
 msgid "Incomplete hostname; end it with '/'"
 msgstr "Niekompletna nazwa komputera. Musi się kończyć znakiem \"/\""
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry when the user enters a path that does not exist
 #. * and then hits Tab
-#: ../gtk/gtkfilechooserentry.c:1212
+#: ../gtk/gtkfilechooserentry.c:1207
 msgid "Path does not exist"
 msgstr "Ścieżka nie istnieje"
 
@@ -1378,77 +1452,56 @@ msgstr "Ścieżka nie istnieje"
 msgid "File System"
 msgstr "System plików"
 
-#: ../gtk/gtkfontbutton.c:142 ../gtk/gtkfontbutton.c:266
+#: ../gtk/gtkfontbutton.c:153 ../gtk/gtkfontbutton.c:277
 msgid "Pick a Font"
 msgstr "Wybór czcionki"
 
 #. Initialize fields
-#: ../gtk/gtkfontbutton.c:260
+#: ../gtk/gtkfontbutton.c:271
 msgid "Sans 12"
 msgstr "Sans 12"
 
-#: ../gtk/gtkfontbutton.c:785
+#: ../gtk/gtkfontbutton.c:796
 msgid "Font"
 msgstr "Czcionka"
 
 #. This is the default text shown in the preview entry, though the user
 #. can set it. Remember that some fonts only have capital letters.
-#: ../gtk/gtkfontsel.c:100
+#: ../gtk/gtkfontsel.c:119
 msgid "abcdefghijk ABCDEFGHIJK"
 msgstr "aąbcćdeęfghi AĄBCĆDEĘFGHI"
 
-#: ../gtk/gtkfontsel.c:366
+#: ../gtk/gtkfontsel.c:388
 msgid "_Family:"
 msgstr "_Rodzina:"
 
-#: ../gtk/gtkfontsel.c:372
+#: ../gtk/gtkfontsel.c:395
 msgid "_Style:"
 msgstr "_Styl:"
 
-#: ../gtk/gtkfontsel.c:378
+#: ../gtk/gtkfontsel.c:402
 msgid "Si_ze:"
 msgstr "R_ozmiar:"
 
 #. create the text entry widget
-#: ../gtk/gtkfontsel.c:554
+#: ../gtk/gtkfontsel.c:579
 msgid "_Preview:"
 msgstr "_Podgląd"
 
-#: ../gtk/gtkfontsel.c:1651
+#: ../gtk/gtkfontsel.c:1701
 msgid "Font Selection"
 msgstr "Wybór czcionki"
 
-#. Remove this icon source so we don't keep trying to
-#. * load it.
-#.
-#: ../gtk/gtkiconfactory.c:1358
-#, c-format
-msgid "Error loading icon: %s"
-msgstr "Błąd podczas wczytywania ikony: %s"
-
-#: ../gtk/gtkicontheme.c:1338
-#, c-format
-msgid ""
-"Could not find the icon '%s'. The '%s' theme\n"
-"was not found either, perhaps you need to install it.\n"
-"You can get a copy from:\n"
-"\t%s"
-msgstr ""
-"Nie można odnaleźć ikony \"%s\". Motyw \"%s\"\n"
-"również nie został odnaleziony, prawdopodobnie\n"
-"należy je zainstalować. Ich kopię można pobrać z:\n"
-"\t%s"
-
-#: ../gtk/gtkicontheme.c:1520
+#: ../gtk/gtkicontheme.c:1605
 #, c-format
 msgid "Icon '%s' not present in theme"
 msgstr "Brak ikony \"%s\" w motywie"
 
-#: ../gtk/gtkicontheme.c:3040
+#: ../gtk/gtkicontheme.c:3115
 msgid "Failed to load icon"
 msgstr "Wczytanie ikony się nie powiodło"
 
-#: ../gtk/gtkimmodule.c:526
+#: ../gtk/gtkimmodule.c:525
 msgid "Simple"
 msgstr "Prosty"
 
@@ -1469,45 +1522,72 @@ msgid "System (%s)"
 msgstr "Systemowa (%s)"
 
 #. Open Link
-#: ../gtk/gtklabel.c:6241
+#: ../gtk/gtklabel.c:6309
 msgid "_Open Link"
 msgstr "_Otwórz odnośnik"
 
 #. Copy Link Address
-#: ../gtk/gtklabel.c:6253
+#: ../gtk/gtklabel.c:6321
 msgid "Copy _Link Address"
 msgstr "Sk_opiuj adres odnośnika"
 
-#: ../gtk/gtklinkbutton.c:482
+#: ../gtk/gtklinkbutton.c:484
 msgid "Copy URL"
 msgstr "Skopiuj adres URL"
 
-#: ../gtk/gtklinkbutton.c:645
+#: ../gtk/gtklinkbutton.c:647
 msgid "Invalid URI"
 msgstr "Nieprawidłowy adres URI"
 
+#: ../gtk/gtklockbutton.c:288
+#, fuzzy
+msgid "Lock"
+msgstr "Num Lock"
+
+#: ../gtk/gtklockbutton.c:297
+msgid "Unlock"
+msgstr ""
+
+#: ../gtk/gtklockbutton.c:306
+msgid ""
+"Dialog is unlocked.\n"
+"Click to prevent further changes"
+msgstr ""
+
+#: ../gtk/gtklockbutton.c:315
+msgid ""
+"Dialog is locked.\n"
+"Click to make changes"
+msgstr ""
+
+#: ../gtk/gtklockbutton.c:324
+msgid ""
+"System policy prevents changes.\n"
+"Contact your system administrator"
+msgstr ""
+
 #. Description of --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:563
+#: ../gtk/gtkmain.c:562
 msgid "Load additional GTK+ modules"
 msgstr "Wczytuje dodatkowe moduły biblioteki GTK+"
 
 #. Placeholder in --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:564
+#: ../gtk/gtkmain.c:563
 msgid "MODULES"
 msgstr "MODUŁY"
 
 #. Description of --g-fatal-warnings in --help output
-#: ../gtk/gtkmain.c:566
+#: ../gtk/gtkmain.c:565
 msgid "Make all warnings fatal"
 msgstr "Traktowanie wszystkich ostrzeżeń jako błędy"
 
 #. Description of --gtk-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:569
+#: ../gtk/gtkmain.c:568
 msgid "GTK+ debugging flags to set"
 msgstr "Ustawione znaczniki debugowania biblioteki GTK+"
 
 #. Description of --gtk-no-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:572
+#: ../gtk/gtkmain.c:571
 msgid "GTK+ debugging flags to unset"
 msgstr "Wyczyszczone znaczniki debugowania biblioteki GTK+"
 
@@ -1516,69 +1596,69 @@ msgstr "Wyczyszczone znaczniki debugowania biblioteki GTK+"
 #. * Do *not* translate it to "predefinito:LTR", if it
 #. * it isn't default:LTR or default:RTL it will not work
 #.
-#: ../gtk/gtkmain.c:835
+#: ../gtk/gtkmain.c:848
 msgid "default:LTR"
 msgstr "default:LTR"
 
-#: ../gtk/gtkmain.c:899
+#: ../gtk/gtkmain.c:914
 #, c-format
 msgid "Cannot open display: %s"
 msgstr "Nie można otworzyć ekranu: %s"
 
-#: ../gtk/gtkmain.c:965
+#: ../gtk/gtkmain.c:980
 msgid "GTK+ Options"
 msgstr "Opcje biblioteki GTK+"
 
-#: ../gtk/gtkmain.c:965
+#: ../gtk/gtkmain.c:980
 msgid "Show GTK+ Options"
 msgstr "Wyświetla opcje biblioteki GTK+"
 
-#: ../gtk/gtkmountoperation.c:491
+#: ../gtk/gtkmountoperation.c:489
 msgid "Co_nnect"
 msgstr "P_ołącz"
 
-#: ../gtk/gtkmountoperation.c:558
+#: ../gtk/gtkmountoperation.c:559
 msgid "Connect _anonymously"
 msgstr "Połączenie _anonimowe"
 
-#: ../gtk/gtkmountoperation.c:567
+#: ../gtk/gtkmountoperation.c:568
 msgid "Connect as u_ser:"
 msgstr "Połączenie jako _użytkownik:"
 
-#: ../gtk/gtkmountoperation.c:605
+#: ../gtk/gtkmountoperation.c:602
 msgid "_Username:"
 msgstr "_Nazwa użytkownika:"
 
-#: ../gtk/gtkmountoperation.c:610
+#: ../gtk/gtkmountoperation.c:607
 msgid "_Domain:"
 msgstr "_Domena:"
 
-#: ../gtk/gtkmountoperation.c:616
+#: ../gtk/gtkmountoperation.c:613
 msgid "_Password:"
 msgstr "_Hasło:"
 
-#: ../gtk/gtkmountoperation.c:634
+#: ../gtk/gtkmountoperation.c:631
 msgid "Forget password _immediately"
 msgstr "_Natychmiastowe usunięcie hasła"
 
-#: ../gtk/gtkmountoperation.c:644
+#: ../gtk/gtkmountoperation.c:641
 msgid "Remember password until you _logout"
 msgstr "_Zapamiętanie hasła do wylogowania"
 
-#: ../gtk/gtkmountoperation.c:654
+#: ../gtk/gtkmountoperation.c:651
 msgid "Remember _forever"
 msgstr "Z_apamiętanie na stałe"
 
-#: ../gtk/gtkmountoperation.c:883
+#: ../gtk/gtkmountoperation.c:880
 #, c-format
 msgid "Unknown Application (PID %d)"
 msgstr "Nieznany program (PID %d)"
 
-#: ../gtk/gtkmountoperation.c:1066
+#: ../gtk/gtkmountoperation.c:1063
 msgid "Unable to end process"
 msgstr "Nie można zakończyć procesu"
 
-#: ../gtk/gtkmountoperation.c:1103
+#: ../gtk/gtkmountoperation.c:1100
 msgid "_End Process"
 msgstr "_Zakończ proces"
 
@@ -1589,33 +1669,33 @@ msgstr ""
 "Nie można usunąć procesu o PID %d. Działanie nie jest zaimplementowane."
 
 #. translators: this string is a name for the 'less' command
-#: ../gtk/gtkmountoperation-x11.c:859
+#: ../gtk/gtkmountoperation-x11.c:959
 msgid "Terminal Pager"
 msgstr "Stronicowanie terminala"
 
 # przetłumaczone wg hiszpańskiego tłumaczenia
-#: ../gtk/gtkmountoperation-x11.c:860
+#: ../gtk/gtkmountoperation-x11.c:960
 msgid "Top Command"
 msgstr "Polecenie top"
 
-#: ../gtk/gtkmountoperation-x11.c:861
+#: ../gtk/gtkmountoperation-x11.c:961
 msgid "Bourne Again Shell"
 msgstr "Powłoka Bourne Again"
 
-#: ../gtk/gtkmountoperation-x11.c:862
+#: ../gtk/gtkmountoperation-x11.c:962
 msgid "Bourne Shell"
 msgstr "Powłoka Bourne"
 
-#: ../gtk/gtkmountoperation-x11.c:863
+#: ../gtk/gtkmountoperation-x11.c:963
 msgid "Z Shell"
 msgstr "Powłoka Z"
 
-#: ../gtk/gtkmountoperation-x11.c:960
+#: ../gtk/gtkmountoperation-x11.c:1060
 #, c-format
 msgid "Cannot end process with PID %d: %s"
 msgstr "Nie można zakończyć procesu o PID %d: %s"
 
-#: ../gtk/gtknotebook.c:4808 ../gtk/gtknotebook.c:7383
+#: ../gtk/gtknotebook.c:4922 ../gtk/gtknotebook.c:7611
 #, c-format
 msgid "Page %u"
 msgstr "Strona %u"
@@ -1623,7 +1703,7 @@ msgstr "Strona %u"
 #. Translators: the format here is used to build the string that will be rendered
 #. * in the number emblem.
 #.
-#: ../gtk/gtknumerableicon.c:481
+#: ../gtk/gtknumerableicon.c:482
 #, c-format
 msgctxt "Number format"
 msgid "%d"
@@ -1634,15 +1714,15 @@ msgstr "%d"
 msgid "Not a valid page setup file"
 msgstr "Nieprawidłowy plik ustawień strony"
 
-#: ../gtk/gtkpagesetupunixdialog.c:177
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "Any Printer"
 msgstr "Dowolna drukarka"
 
-#: ../gtk/gtkpagesetupunixdialog.c:177
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "For portable documents"
 msgstr "Dla przenośnych dokumentów"
 
-#: ../gtk/gtkpagesetupunixdialog.c:807
+#: ../gtk/gtkpagesetupunixdialog.c:802
 #, c-format
 msgid ""
 "Margins:\n"
@@ -1657,35 +1737,35 @@ msgstr ""
 " Górny: %s %s\n"
 " Dolny: %s %s"
 
-#: ../gtk/gtkpagesetupunixdialog.c:856 ../gtk/gtkprintunixdialog.c:3306
+#: ../gtk/gtkpagesetupunixdialog.c:851 ../gtk/gtkprintunixdialog.c:3376
 msgid "Manage Custom Sizes..."
 msgstr "Zarządzaj własnymi rozmiarami..."
 
-#: ../gtk/gtkpagesetupunixdialog.c:907
+#: ../gtk/gtkpagesetupunixdialog.c:902
 msgid "_Format for:"
 msgstr "_Formatowanie dla:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:929 ../gtk/gtkprintunixdialog.c:3478
+#: ../gtk/gtkpagesetupunixdialog.c:925 ../gtk/gtkprintunixdialog.c:3556
 msgid "_Paper size:"
 msgstr "_Rozmiar papieru:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:960
+#: ../gtk/gtkpagesetupunixdialog.c:958
 msgid "_Orientation:"
 msgstr "_Położenie:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:1024 ../gtk/gtkprintunixdialog.c:3540
+#: ../gtk/gtkpagesetupunixdialog.c:1023 ../gtk/gtkprintunixdialog.c:3620
 msgid "Page Setup"
 msgstr "Ustawienia strony"
 
-#: ../gtk/gtkpathbar.c:157
+#: ../gtk/gtkpathbar.c:156
 msgid "Up Path"
 msgstr "W górę ścieżki"
 
-#: ../gtk/gtkpathbar.c:159
+#: ../gtk/gtkpathbar.c:158
 msgid "Down Path"
 msgstr "W dół ścieżki"
 
-#: ../gtk/gtkpathbar.c:1518
+#: ../gtk/gtkpathbar.c:1516
 msgid "File System Root"
 msgstr "System plików"
 
@@ -1693,15 +1773,15 @@ msgstr "System plików"
 msgid "Authentication"
 msgstr "Uwierzytelnianie"
 
-#: ../gtk/gtkprinteroptionwidget.c:686
+#: ../gtk/gtkprinteroptionwidget.c:692
 msgid "Not available"
 msgstr "Niedostępne"
 
-#: ../gtk/gtkprinteroptionwidget.c:786
+#: ../gtk/gtkprinteroptionwidget.c:792
 msgid "Select a folder"
 msgstr "Wybór katalogu"
 
-#: ../gtk/gtkprinteroptionwidget.c:805
+#: ../gtk/gtkprinteroptionwidget.c:812
 msgid "_Save in folder:"
 msgstr "_Zapis w katalogu:"
 
@@ -1799,7 +1879,7 @@ msgstr "Brak papieru"
 
 #. Translators: this is a printer status.
 #: ../gtk/gtkprintoperation-win32.c:615
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2002
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2022
 msgid "Paused"
 msgstr "Wstrzymane"
 
@@ -1844,49 +1924,49 @@ msgstr "Nieprawidłowy uchwyt do PrintDlgEx"
 msgid "Unspecified error"
 msgstr "Nieokreślony błąd"
 
-#: ../gtk/gtkprintunixdialog.c:618
+#: ../gtk/gtkprintunixdialog.c:688
 msgid "Getting printer information failed"
 msgstr "Pobieranie informacji o drukarce się nie powiodło"
 
-#: ../gtk/gtkprintunixdialog.c:1873
+#: ../gtk/gtkprintunixdialog.c:1942
 msgid "Getting printer information..."
 msgstr "Pobieranie informacji o drukarce..."
 
-#: ../gtk/gtkprintunixdialog.c:2147
+#: ../gtk/gtkprintunixdialog.c:2216
 msgid "Printer"
 msgstr "Drukarka"
 
 #. Translators: this is the header for the location column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2157
+#: ../gtk/gtkprintunixdialog.c:2226
 msgid "Location"
 msgstr "Położenie"
 
 #. Translators: this is the header for the printer status column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2168
+#: ../gtk/gtkprintunixdialog.c:2237
 msgid "Status"
 msgstr "Stan"
 
-#: ../gtk/gtkprintunixdialog.c:2194
+#: ../gtk/gtkprintunixdialog.c:2263
 msgid "Range"
 msgstr "Zakres"
 
-#: ../gtk/gtkprintunixdialog.c:2198
+#: ../gtk/gtkprintunixdialog.c:2267
 msgid "_All Pages"
 msgstr "Wszystkie _strony"
 
-#: ../gtk/gtkprintunixdialog.c:2205
+#: ../gtk/gtkprintunixdialog.c:2274
 msgid "C_urrent Page"
 msgstr "_Bieżąca strona"
 
-#: ../gtk/gtkprintunixdialog.c:2215
+#: ../gtk/gtkprintunixdialog.c:2284
 msgid "Se_lection"
 msgstr "_Wybór"
 
-#: ../gtk/gtkprintunixdialog.c:2224
+#: ../gtk/gtkprintunixdialog.c:2293
 msgid "Pag_es:"
 msgstr "Stro_ny:"
 
-#: ../gtk/gtkprintunixdialog.c:2225
+#: ../gtk/gtkprintunixdialog.c:2294
 msgid ""
 "Specify one or more page ranges,\n"
 " e.g. 1-3,7,11"
@@ -1894,28 +1974,28 @@ msgstr ""
 "Określ jeden lub więcej zakresów stron,\n"
 " przykładowo: 1-3,7,11"
 
-#: ../gtk/gtkprintunixdialog.c:2235
+#: ../gtk/gtkprintunixdialog.c:2304
 msgid "Pages"
 msgstr "Strony"
 
-#: ../gtk/gtkprintunixdialog.c:2248
+#: ../gtk/gtkprintunixdialog.c:2317
 msgid "Copies"
 msgstr "Kopie"
 
 #. FIXME chpe: too much space between Copies and spinbutton, put those 2 in a hbox and make it span 2 columns
-#: ../gtk/gtkprintunixdialog.c:2253
+#: ../gtk/gtkprintunixdialog.c:2322
 msgid "Copie_s:"
 msgstr "Kopi_e:"
 
-#: ../gtk/gtkprintunixdialog.c:2271
+#: ../gtk/gtkprintunixdialog.c:2341
 msgid "C_ollate"
 msgstr "_Posegregowane"
 
-#: ../gtk/gtkprintunixdialog.c:2279
+#: ../gtk/gtkprintunixdialog.c:2349
 msgid "_Reverse"
 msgstr "Odw_rotnie"
 
-#: ../gtk/gtkprintunixdialog.c:2299
+#: ../gtk/gtkprintunixdialog.c:2369
 msgid "General"
 msgstr "Ogólne"
 
@@ -1925,168 +2005,168 @@ msgstr "Ogólne"
 #. Translators: These strings name the possible arrangements of
 #. * multiple pages on a sheet when printing
 #.
-#: ../gtk/gtkprintunixdialog.c:3039
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3535
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, top to bottom"
 msgstr "Od lewej do prawej, z góry do dołu"
 
-#: ../gtk/gtkprintunixdialog.c:3039
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3535
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, bottom to top"
 msgstr "Od lewej do prawej, z dołu na górę"
 
-#: ../gtk/gtkprintunixdialog.c:3040
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3536
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, top to bottom"
 msgstr "Od prawej do lewej, z góry na dół"
 
-#: ../gtk/gtkprintunixdialog.c:3040
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3536
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, bottom to top"
 msgstr "Od prawej do lewej, z dołu na górę"
 
-#: ../gtk/gtkprintunixdialog.c:3041
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3537
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, left to right"
 msgstr "Z góry do dołu, od lewej do prawej"
 
-#: ../gtk/gtkprintunixdialog.c:3041
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3537
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, right to left"
 msgstr "Z góry do dołu, od prawej do lewej"
 
-#: ../gtk/gtkprintunixdialog.c:3042
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, left to right"
 msgstr "Z dołu do góry, od lewej do prawej"
 
-#: ../gtk/gtkprintunixdialog.c:3042
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, right to left"
 msgstr "Z dołu do góry, od prawej do lewej"
 
 #. Translators, this string is used to label the option in the print
 #. * dialog that controls in what order multiple pages are arranged
 #.
-#: ../gtk/gtkprintunixdialog.c:3046 ../gtk/gtkprintunixdialog.c:3059
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3570
+#: ../gtk/gtkprintunixdialog.c:3116 ../gtk/gtkprintunixdialog.c:3129
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3609
 msgid "Page Ordering"
 msgstr "Kolejność stron"
 
-#: ../gtk/gtkprintunixdialog.c:3075
+#: ../gtk/gtkprintunixdialog.c:3145
 msgid "Left to right"
 msgstr "Od lewej do prawej"
 
-#: ../gtk/gtkprintunixdialog.c:3076
+#: ../gtk/gtkprintunixdialog.c:3146
 msgid "Right to left"
 msgstr "Od prawej do lewej"
 
-#: ../gtk/gtkprintunixdialog.c:3088
+#: ../gtk/gtkprintunixdialog.c:3158
 msgid "Top to bottom"
 msgstr "Z góry do dołu"
 
-#: ../gtk/gtkprintunixdialog.c:3089
+#: ../gtk/gtkprintunixdialog.c:3159
 msgid "Bottom to top"
 msgstr "Z dołu do góry"
 
-#: ../gtk/gtkprintunixdialog.c:3329
+#: ../gtk/gtkprintunixdialog.c:3399
 msgid "Layout"
 msgstr "Układ"
 
-#: ../gtk/gtkprintunixdialog.c:3333
+#: ../gtk/gtkprintunixdialog.c:3403
 msgid "T_wo-sided:"
 msgstr "_Dwustronnie:"
 
-#: ../gtk/gtkprintunixdialog.c:3348
+#: ../gtk/gtkprintunixdialog.c:3419
 msgid "Pages per _side:"
 msgstr "Stron _na kartkę:"
 
-#: ../gtk/gtkprintunixdialog.c:3365
+#: ../gtk/gtkprintunixdialog.c:3437
 msgid "Page or_dering:"
 msgstr "Kolejność _stron:"
 
-#: ../gtk/gtkprintunixdialog.c:3381
+#: ../gtk/gtkprintunixdialog.c:3454
 msgid "_Only print:"
 msgstr "Wydruk _tylko:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3396
+#: ../gtk/gtkprintunixdialog.c:3470
 msgid "All sheets"
 msgstr "Wszystkie kartki"
 
-#: ../gtk/gtkprintunixdialog.c:3397
+#: ../gtk/gtkprintunixdialog.c:3471
 msgid "Even sheets"
 msgstr "Kartki parzyste"
 
-#: ../gtk/gtkprintunixdialog.c:3398
+#: ../gtk/gtkprintunixdialog.c:3472
 msgid "Odd sheets"
 msgstr "Kartki nieparzyste"
 
-#: ../gtk/gtkprintunixdialog.c:3401
+#: ../gtk/gtkprintunixdialog.c:3475
 msgid "Sc_ale:"
 msgstr "Ska_la:"
 
-#: ../gtk/gtkprintunixdialog.c:3428
+#: ../gtk/gtkprintunixdialog.c:3503
 msgid "Paper"
 msgstr "Papier"
 
-#: ../gtk/gtkprintunixdialog.c:3432
+#: ../gtk/gtkprintunixdialog.c:3507
 msgid "Paper _type:"
 msgstr "Rodzaj papier_u:"
 
-#: ../gtk/gtkprintunixdialog.c:3447
+#: ../gtk/gtkprintunixdialog.c:3523
 msgid "Paper _source:"
 msgstr "Źródło pap_ieru:"
 
-#: ../gtk/gtkprintunixdialog.c:3462
+#: ../gtk/gtkprintunixdialog.c:3539
 msgid "Output t_ray:"
 msgstr "_Tacka wyjściowa:"
 
-#: ../gtk/gtkprintunixdialog.c:3502
+#: ../gtk/gtkprintunixdialog.c:3581
 msgid "Or_ientation:"
 msgstr "Orienta_cja:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3517
+#: ../gtk/gtkprintunixdialog.c:3597
 msgid "Portrait"
 msgstr "Pionowa"
 
-#: ../gtk/gtkprintunixdialog.c:3518
+#: ../gtk/gtkprintunixdialog.c:3598
 msgid "Landscape"
 msgstr "Pozioma"
 
-#: ../gtk/gtkprintunixdialog.c:3519
+#: ../gtk/gtkprintunixdialog.c:3599
 msgid "Reverse portrait"
 msgstr "Odwrócona pionowo"
 
-#: ../gtk/gtkprintunixdialog.c:3520
+#: ../gtk/gtkprintunixdialog.c:3600
 msgid "Reverse landscape"
 msgstr "Odwrócona poziomo"
 
-#: ../gtk/gtkprintunixdialog.c:3565
+#: ../gtk/gtkprintunixdialog.c:3645
 msgid "Job Details"
 msgstr "Szczegóły zadania"
 
-#: ../gtk/gtkprintunixdialog.c:3571
+#: ../gtk/gtkprintunixdialog.c:3651
 msgid "Pri_ority:"
 msgstr "Pri_orytet:"
 
-#: ../gtk/gtkprintunixdialog.c:3586
+#: ../gtk/gtkprintunixdialog.c:3667
 msgid "_Billing info:"
 msgstr "Informacje o opłatac_h:"
 
-#: ../gtk/gtkprintunixdialog.c:3604
+#: ../gtk/gtkprintunixdialog.c:3686
 msgid "Print Document"
 msgstr "Wydruk dokumentu"
 
 #. Translators: this is one of the choices for the print at option
 #. * in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3613
+#: ../gtk/gtkprintunixdialog.c:3695
 msgid "_Now"
 msgstr "_Teraz"
 
-#: ../gtk/gtkprintunixdialog.c:3624
+#: ../gtk/gtkprintunixdialog.c:3706
 msgid "A_t:"
 msgstr "_O:"
 
@@ -2094,122 +2174,111 @@ msgstr "_O:"
 #. * You can remove the am/pm values below for your locale if they are not
 #. * supported.
 #.
-#: ../gtk/gtkprintunixdialog.c:3630
+#: ../gtk/gtkprintunixdialog.c:3712
 msgid ""
 "Specify the time of print,\n"
 " e.g. 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"
 msgstr "Określa czas drukowania, np: 15:30, 14:15:20, 11:46:30"
 
-#: ../gtk/gtkprintunixdialog.c:3640
+#: ../gtk/gtkprintunixdialog.c:3722
 msgid "Time of print"
 msgstr "Czas drukowania"
 
-#: ../gtk/gtkprintunixdialog.c:3656
+#: ../gtk/gtkprintunixdialog.c:3738
 msgid "On _hold"
 msgstr "Wstrzy_many"
 
-#: ../gtk/gtkprintunixdialog.c:3657
+#: ../gtk/gtkprintunixdialog.c:3739
 msgid "Hold the job until it is explicitly released"
 msgstr "Wstrzymuje zadanie do czasu jawnego jego zwolnienia"
 
-#: ../gtk/gtkprintunixdialog.c:3677
+#: ../gtk/gtkprintunixdialog.c:3759
 msgid "Add Cover Page"
 msgstr "Strona tytułowa"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3686
+#: ../gtk/gtkprintunixdialog.c:3768
 msgid "Be_fore:"
 msgstr "P_rzed:"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3704
+#: ../gtk/gtkprintunixdialog.c:3787
 msgid "_After:"
 msgstr "_Po:"
 
 #. Translators: this is the tab label for the notebook tab containing
 #. * job-specific options in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3722
+#: ../gtk/gtkprintunixdialog.c:3806
 msgid "Job"
 msgstr "Zadanie"
 
-#: ../gtk/gtkprintunixdialog.c:3788
+#: ../gtk/gtkprintunixdialog.c:3872
 msgid "Advanced"
 msgstr "Zaawansowane"
 
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3826
+#: ../gtk/gtkprintunixdialog.c:3910
 msgid "Image Quality"
 msgstr "Jakość obrazu"
 
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3830
+#: ../gtk/gtkprintunixdialog.c:3914
 msgid "Color"
 msgstr "Kolor"
 
 #. Translators: this will appear as tab label in print dialog.
 #. It's a typographical term, as in "Binding and finishing"
-#: ../gtk/gtkprintunixdialog.c:3835
+#: ../gtk/gtkprintunixdialog.c:3919
 msgid "Finishing"
 msgstr "Kończenie"
 
-#: ../gtk/gtkprintunixdialog.c:3845
+#: ../gtk/gtkprintunixdialog.c:3929
 msgid "Some of the settings in the dialog conflict"
 msgstr "Część ustawień w oknie jest sprzecznych"
 
-#: ../gtk/gtkprintunixdialog.c:3868
+#: ../gtk/gtkprintunixdialog.c:3952
 msgid "Print"
 msgstr "Wydruk"
 
-#: ../gtk/gtkrc.c:948
-#, c-format
-msgid "Unable to locate image file in pixmap_path: \"%s\""
-msgstr "Nie można odnaleźć pliku obrazu na ścieżce: \"%s\""
-
-#: ../gtk/gtkrecentaction.c:165 ../gtk/gtkrecentaction.c:173
-#: ../gtk/gtkrecentchoosermenu.c:608 ../gtk/gtkrecentchoosermenu.c:616
-#, c-format
-msgid "This function is not implemented for widgets of class '%s'"
-msgstr "Funkcja nie jest zaimplementowana dla widżetów klasy \"%s\""
-
-#: ../gtk/gtkrecentchooserdefault.c:483
+#: ../gtk/gtkrecentchooserdefault.c:485
 msgid "Select which type of documents are shown"
 msgstr "Wybór, jakie typy dokumentów są wyświetlane"
 
-#: ../gtk/gtkrecentchooserdefault.c:1137 ../gtk/gtkrecentchooserdefault.c:1174
+#: ../gtk/gtkrecentchooserdefault.c:1142 ../gtk/gtkrecentchooserdefault.c:1179
 #, c-format
 msgid "No item for URI '%s' found"
 msgstr "Nie odnaleziono elementu dla adresu URI \"%s\""
 
-#: ../gtk/gtkrecentchooserdefault.c:1301
+#: ../gtk/gtkrecentchooserdefault.c:1306
 msgid "Untitled filter"
 msgstr "Filtr bez tytułu"
 
-#: ../gtk/gtkrecentchooserdefault.c:1654
+#: ../gtk/gtkrecentchooserdefault.c:1659
 msgid "Could not remove item"
 msgstr "Nie można usunąć elementu"
 
-#: ../gtk/gtkrecentchooserdefault.c:1698
+#: ../gtk/gtkrecentchooserdefault.c:1703
 msgid "Could not clear list"
 msgstr "Nie można wyczyścić elementu"
 
-#: ../gtk/gtkrecentchooserdefault.c:1782
+#: ../gtk/gtkrecentchooserdefault.c:1787
 msgid "Copy _Location"
 msgstr "S_kopiuj położenie"
 
-#: ../gtk/gtkrecentchooserdefault.c:1795
+#: ../gtk/gtkrecentchooserdefault.c:1800
 msgid "_Remove From List"
 msgstr "_Usuń z listy"
 
-#: ../gtk/gtkrecentchooserdefault.c:1804
+#: ../gtk/gtkrecentchooserdefault.c:1809
 msgid "_Clear List"
 msgstr "Wy_czyść listę"
 
-#: ../gtk/gtkrecentchooserdefault.c:1818
+#: ../gtk/gtkrecentchooserdefault.c:1823
 msgid "Show _Private Resources"
 msgstr "Wyświetl zasoby p_rywatne"
 
@@ -2261,30 +2330,21 @@ msgctxt "recent menu label"
 msgid "%d. %s"
 msgstr "%d. %s"
 
-#: ../gtk/gtkrecentmanager.c:1000 ../gtk/gtkrecentmanager.c:1013
-#: ../gtk/gtkrecentmanager.c:1150 ../gtk/gtkrecentmanager.c:1160
-#: ../gtk/gtkrecentmanager.c:1212 ../gtk/gtkrecentmanager.c:1221
-#: ../gtk/gtkrecentmanager.c:1236
+#: ../gtk/gtkrecentmanager.c:1006 ../gtk/gtkrecentmanager.c:1019
+#: ../gtk/gtkrecentmanager.c:1156 ../gtk/gtkrecentmanager.c:1166
+#: ../gtk/gtkrecentmanager.c:1218 ../gtk/gtkrecentmanager.c:1227
+#: ../gtk/gtkrecentmanager.c:1242
 #, c-format
 msgid "Unable to find an item with URI '%s'"
 msgstr "Nie można odnaleźć elementu z adresem URI \"%s\""
 
-#: ../gtk/gtkrecentmanager.c:2436
+#: ../gtk/gtkrecentmanager.c:2442
 #, c-format
 msgid "No registered application with name '%s' for item with URI '%s' found"
 msgstr ""
 "Nie odnaleziono zarejestrowanego programu o nazwie \"%s\" dla elementu o "
 "adresie URI \"%s\""
 
-#: ../gtk/gtkspinner.c:287
-msgctxt "throbbing progress animation widget"
-msgid "Spinner"
-msgstr "Spinner"
-
-#: ../gtk/gtkspinner.c:288
-msgid "Provides visual indication of progress"
-msgstr "Dostarcza wzrokowy wskaźnik postępu"
-
 #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
 #: ../gtk/gtkstock.c:313
 msgctxt "Stock label"
@@ -2794,7 +2854,7 @@ msgstr "Po_mniejsz"
 #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
 #. * the state
 #.
-#: ../gtk/gtkswitch.c:313 ../gtk/gtkswitch.c:362 ../gtk/gtkswitch.c:553
+#: ../gtk/gtkswitch.c:336 ../gtk/gtkswitch.c:396 ../gtk/gtkswitch.c:603
 msgctxt "switch"
 msgid "ON"
 msgstr "|"
@@ -2803,20 +2863,11 @@ msgstr "|"
 #. Translators: if the "off" state label requires more than three
 #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
 #.
-#: ../gtk/gtkswitch.c:321 ../gtk/gtkswitch.c:363 ../gtk/gtkswitch.c:569
+#: ../gtk/gtkswitch.c:344 ../gtk/gtkswitch.c:397 ../gtk/gtkswitch.c:632
 msgctxt "switch"
 msgid "OFF"
 msgstr "◯"
 
-#: ../gtk/gtkswitch.c:968
-msgctxt "light switch widget"
-msgid "Switch"
-msgstr "Przełącznik"
-
-#: ../gtk/gtkswitch.c:969
-msgid "Switches between on and off states"
-msgstr "Przełącza między stanami \"włączone\" i \"wyłączone\""
-
 #: ../gtk/gtktextbufferrichtext.c:651
 #, c-format
 msgid "Unknown error when trying to deserialize %s"
@@ -2975,17 +3026,17 @@ msgstr "ZWJ - łączn_ik znaków o zerowej szerokości"
 msgid "ZWNJ Zero width _non-joiner"
 msgstr "ZWNJ - rozłączni_k znaków o zerowej szerokości"
 
-#: ../gtk/gtkuimanager.c:1506
+#: ../gtk/gtkuimanager.c:1760
 #, c-format
 msgid "Unexpected start tag '%s' on line %d char %d"
 msgstr "Nieoczekiwany znacznik początku \"%s\" w wierszu %d znak %d"
 
-#: ../gtk/gtkuimanager.c:1596
+#: ../gtk/gtkuimanager.c:1850
 #, c-format
 msgid "Unexpected character data on line %d char %d"
 msgstr "Nieoczekiwane dane znakowe w wierszu %d znak %d"
 
-#: ../gtk/gtkuimanager.c:2428
+#: ../gtk/gtkuimanager.c:2682
 msgid "Empty"
 msgstr "Pusty"
 
@@ -3856,11 +3907,6 @@ msgctxt "paper size"
 msgid "ROC 8k"
 msgstr "ROC 8k"
 
-#: ../gtk/updateiconcache.c:492 ../gtk/updateiconcache.c:552
-#, c-format
-msgid "different idatas found for symlinked '%s' and '%s'\n"
-msgstr "odnaleziono różne idane dla symbolicznie dowiązanych \"%s\" i \"%s\"\n"
-
 #: ../gtk/updateiconcache.c:1370
 #, c-format
 msgid "Failed to write header\n"
@@ -4020,256 +4066,256 @@ msgstr "wietnamska (VIQR)"
 msgid "X Input Method"
 msgstr "metoda wprowadzania X"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:814
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1024
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:828
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1038
 msgid "Username:"
 msgstr "Nazwa użytkownika:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:815
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1033
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:829
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1047
 msgid "Password:"
 msgstr "Hasło:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:854
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1046
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1060
 #, c-format
 msgid "Authentication is required to print document '%s' on printer %s"
 msgstr ""
 "Uwierzytelnienie jest wymagane, aby wydrukować dokument \"%s\" na drukarce %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:856
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:870
 #, c-format
 msgid "Authentication is required to print a document on %s"
 msgstr "Uwierzytelnienie jest wymagane, aby wydrukować dokument na %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:860
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
 #, c-format
 msgid "Authentication is required to get attributes of job '%s'"
 msgstr "Uwierzytelnienie jest wymagane, aby pobrać atrybuty zadania \"%s\""
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:862
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:876
 msgid "Authentication is required to get attributes of a job"
 msgstr "Uwierzytelnienie jest wymagane, aby pobrać atrybuty zadania"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:866
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:880
 #, c-format
 msgid "Authentication is required to get attributes of printer %s"
 msgstr "Uwierzytelnienie jest wymagane, aby pobrać atrybuty drukarki %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:882
 msgid "Authentication is required to get attributes of a printer"
 msgstr "Uwierzytelnienie jest wymagane, aby pobrać atrybuty drukarki"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:871
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:885
 #, c-format
 msgid "Authentication is required to get default printer of %s"
 msgstr "Uwierzytelnienie jest wymagane, aby pobrać domyślną drukarkę z %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:888
 #, c-format
 msgid "Authentication is required to get printers from %s"
 msgstr "Uwierzytelnienie jest wymagane, aby pobrać drukarki od %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:879
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:893
 #, c-format
 msgid "Authentication is required to get a file from %s"
 msgstr "Uwierzytelnienie jest wymagane, aby pobrać plik z %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:881
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:895
 #, c-format
 msgid "Authentication is required on %s"
 msgstr "Uwierzytelnienie jest wymagane na %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1018
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1032
 msgid "Domain:"
 msgstr "Domena:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1048
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1062
 #, c-format
 msgid "Authentication is required to print document '%s'"
 msgstr "Uwierzytelnienie jest wymagane, aby wydrukować dokument \"%s\""
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1053
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1067
 #, c-format
 msgid "Authentication is required to print this document on printer %s"
 msgstr ""
 "Uwierzytelnienie jest wymagane, aby wydrukować ten dokument na drukarce %s"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1055
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1069
 msgid "Authentication is required to print this document"
 msgstr "Uwierzytelnienie jest wymagane, aby wydrukować dokument"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1676
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
 #, c-format
 msgid "Printer '%s' is low on toner."
 msgstr "W drukarce \"%s\" kończy się toner."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1677
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
 #, c-format
 msgid "Printer '%s' has no toner left."
 msgstr "W drukarce \"%s\" skończył się toner."
 
 #. Translators: "Developer" like on photo development context
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1679
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1693
 #, c-format
 msgid "Printer '%s' is low on developer."
 msgstr "Niski poziom wywoływacza w drukarce \"%s\"."
 
 #. Translators: "Developer" like on photo development context
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1681
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1695
 #, c-format
 msgid "Printer '%s' is out of developer."
 msgstr "Brak wywoływacza w drukarce \"%s\"."
 
 #. Translators: "marker" is one color bin of the printer
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1683
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1697
 #, c-format
 msgid "Printer '%s' is low on at least one marker supply."
 msgstr "W drukarce \"%s\" kończy się co najmniej jedna składowa kolorów."
 
 #. Translators: "marker" is one color bin of the printer
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1685
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1699
 #, c-format
 msgid "Printer '%s' is out of at least one marker supply."
 msgstr "W drukarce \"%s\" skończyła się co najmniej jedna składowa kolorów."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1686
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1700
 #, c-format
 msgid "The cover is open on printer '%s'."
 msgstr "Pokrywa drukarki \"%s\" jest otwarta."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1687
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1701
 #, c-format
 msgid "The door is open on printer '%s'."
 msgstr "Drzwi drukarki \"%s\" są otwarte."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1688
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1702
 #, c-format
 msgid "Printer '%s' is low on paper."
 msgstr "W podajniku drukarki \"%s\" kończy się papier."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1689
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1703
 #, c-format
 msgid "Printer '%s' is out of paper."
 msgstr "W podajniku drukarki \"%s\" skończył się papier."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1704
 #, c-format
 msgid "Printer '%s' is currently offline."
 msgstr "Drukarka \"%s\" jest obecnie w trybie offline."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1705
 #, c-format
 msgid "There is a problem on printer '%s'."
 msgstr "Wystąpił problem z drukarką \"%s\"."
 
 #. Translators: this is a printer status.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1999
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2019
 msgid "Paused ; Rejecting Jobs"
 msgstr "Wstrzymana ; Odrzuca zadania"
 
 #. Translators: this is a printer status.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2005
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2025
 msgid "Rejecting Jobs"
 msgstr "Odrzuca zadania"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2778
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798
 msgid "Two Sided"
 msgstr "Dwustronne"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2779
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2799
 msgid "Paper Type"
 msgstr "Rodzaj papieru"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2780
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800
 msgid "Paper Source"
 msgstr "Źródło papieru"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2781
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2801
 msgid "Output Tray"
 msgstr "Tacka wyjściowa"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2782
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
 msgid "Resolution"
 msgstr "Rozdzielczość"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2783
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2803
 msgid "GhostScript pre-filtering"
 msgstr "Wstępne filtrowanie GhostScript"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2792
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812
 msgid "One Sided"
 msgstr "Jednostronne"
 
 #. Translators: this is an option of "Two Sided"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2794
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814
 msgid "Long Edge (Standard)"
 msgstr "Grzbiet wzdłuż dłuższej krawędzi (standard)"
 
 #. Translators: this is an option of "Two Sided"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2796
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816
 msgid "Short Edge (Flip)"
 msgstr "Grzbiet wzdłuż krótszej krawędzi (obrót)"
 
 #. Translators: this is an option of "Paper Source"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2808
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2820
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2828
 msgid "Auto Select"
 msgstr "Wybór automatyczny"
 
 #. Translators: this is an option of "Paper Source"
 #. Translators: this is an option of "Resolution"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2804
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2806
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2810
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3306
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2822
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2824
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2826
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2830
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3326
 msgid "Printer Default"
 msgstr "Domyślne drukarki"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2832
 msgid "Embed GhostScript fonts only"
 msgstr "Osadzanie tylko czcionek GhostScript"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2834
 msgid "Convert to PS level 1"
 msgstr "Konwertowanie do PS level 1"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2836
 msgid "Convert to PS level 2"
 msgstr "Konwertowanie do PS level 2"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2838
 msgid "No pre-filtering"
 msgstr "Bez wstępnego filtrowania"
 
 #. Translators: "Miscellaneous" is the label for a button, that opens
 #. up an extra panel of settings in a print dialog.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2827
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2847
 msgid "Miscellaneous"
 msgstr "Różne"
 
 #. Translators: These strings name the possible values of the
 #. * job priority option in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Urgent"
 msgstr "Ważne"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "High"
 msgstr "Wysoki"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Medium"
 msgstr "Średni"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Low"
 msgstr "Niski"
 
@@ -4277,66 +4323,66 @@ msgstr "Niski"
 #. Translators, this string is used to label the pages-per-sheet option
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3554
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3593
 msgid "Pages per Sheet"
 msgstr "Stron na kartkę"
 
 #. Translators, this string is used to label the job priority option
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3591
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3630
 msgid "Job Priority"
 msgstr "Priorytet"
 
 #. Translators, this string is used to label the billing info entry
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3602
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3641
 msgid "Billing Info"
 msgstr "Informacje o opłatach"
 
 #. Translators, these strings are names for various 'standard' cover
 #. * pages that the printing system may support.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "None"
 msgstr "Brak"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Classified"
 msgstr "Sklasyfikowane"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Confidential"
 msgstr "Poufne"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Secret"
 msgstr "Tajne"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Standard"
 msgstr "Standardowe"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Top Secret"
 msgstr "Ściśle tajne"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Unclassified"
 msgstr "Niesklasyfikowane"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3652
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3691
 msgid "Before"
 msgstr "Przed"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3667
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3706
 msgid "After"
 msgstr "Po"
 
@@ -4344,14 +4390,14 @@ msgstr "Po"
 #. * a print job is printed. Possible values are 'now', a specified time,
 #. * or 'on hold'
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3726
 msgid "Print at"
 msgstr "Wydruk o"
 
 #. Translators: this is the name of the option that allows the user
 #. * to specify a time when a print job will be printed.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3698
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
 msgid "Print at time"
 msgstr "Wydruk o czasie"
 
@@ -4359,11 +4405,40 @@ msgstr "Wydruk o czasie"
 #. * size. The two placeholders are replaced with the width and height
 #. * in points. E.g: "Custom 230.4x142.9"
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3733
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772
 #, c-format
 msgid "Custom %sx%s"
 msgstr "Własny %sx%s"
 
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3853
+#, fuzzy
+msgid "Printer Profile"
+msgstr "Drukarka jest w trybie offline"
+
+#. TRANSLATORS: this is when color profile information is unavailable
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860
+#, fuzzy
+msgid "Unavailable"
+msgstr "Niedostępne"
+
+#. TRANSLATORS: when we're running an old CUPS, and
+#. * it hasn't registered the device with colord
+#: ../modules/printbackends/cups/gtkprintercups.c:222
+msgid "Color management unavailable"
+msgstr ""
+
+#. TRANSLATORS: when there is no color profile available
+#: ../modules/printbackends/cups/gtkprintercups.c:234
+#, fuzzy
+msgid "No profile available"
+msgstr "Niedostępne"
+
+#. TRANSLATORS: when the color profile has no title
+#: ../modules/printbackends/cups/gtkprintercups.c:245
+#, fuzzy
+msgid "Unspecified profile"
+msgstr "Nieokreślony błąd"
+
 #. default filename used for print-to-file
 #: ../modules/printbackends/file/gtkprintbackendfile.c:250
 #, c-format
index db68f44b2efa41d3a7ce32b2fab7850a6f5b1ea7..b15e1d903e135b53b7bf7883e4a64f35d1fadfa9 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
 # Vasiliy Faronov <qvvx@yandex.ru>, 2007.
 # Anton Shestakov <engored@ya.ru>, 2008.
 # Lebedev Roman <roman@lebedev.com>, 2009.
-# Yuri Kozlov <yuray@komyakino.ru>, 2010.
+# Yuri Kozlov <yuray@komyakino.ru>, 2010, 2011.
 msgid ""
 msgstr ""
 "Project-Id-Version: ru\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2011-03-01 16:19+0200\n"
-"PO-Revision-Date: 2011-03-01 16:18+0200\n"
-"Last-Translator: Leonid Kanter <leon@asplinux.ru>\n"
-"Language-Team: Russian <ru@li.org>\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%"
+"2b&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-07-23 14:25+0000\n"
+"PO-Revision-Date: 2011-07-23 18:48+0400\n"
+"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
+"Language-Team: Russian <gnome-cyr@gnome.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Language: ru\n"
 "Plural-Forms:  nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
 "10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
-"X-Generator: KBabel 1.11.4\n"
+"X-Generator: Lokalize 1.0\n"
 
 #: ../gdk/gdk.c:135
 #, c-format
 msgid "Error parsing option --gdk-debug"
-msgstr "Не удалось разобрать --gdk-debug"
+msgstr "Не удалось разобрать параметр --gdk-debug"
 
 #: ../gdk/gdk.c:155
 #, c-format
 msgid "Error parsing option --gdk-no-debug"
-msgstr "Не удалось разобрать --gdk-no-debug"
+msgstr "Не удалось разобрать параметр --gdk-no-debug"
 
 #. Description of --class=CLASS in --help output
 #: ../gdk/gdk.c:183
@@ -80,7 +81,7 @@ msgstr "Установить указанные отладочные флаги
 #. Placeholder in --gdk-no-debug=FLAGS in --help output
 #. Placeholder in --gtk-debug=FLAGS in --help output
 #. Placeholder in --gtk-no-debug=FLAGS in --help output
-#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:570 ../gtk/gtkmain.c:573
+#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:569 ../gtk/gtkmain.c:572
 msgid "FLAGS"
 msgstr "ФЛАГИ"
 
@@ -465,10 +466,28 @@ msgstr[0] "Открывается %d элемент"
 msgstr[1] "Открывается %d элемента"
 msgstr[2] "Открывается %d элементов"
 
+#: ../gtk/a11y/gtkspinneraccessible.c:42
+msgctxt "throbbing progress animation widget"
+msgid "Spinner"
+msgstr "Вертушка"
+
+#: ../gtk/a11y/gtkspinneraccessible.c:43
+msgid "Provides visual indication of progress"
+msgstr "Наглядно отображает ход работы"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:65
+msgctxt "light switch widget"
+msgid "Switch"
+msgstr "Выключатель"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:66
+msgid "Switches between on and off states"
+msgstr "Переключает между состояниями вкл и выкл"
+
 #. Translators: this is the license preamble; the string at the end
 #. * contains the URL of the license.
 #.
-#: ../gtk/gtkaboutdialog.c:104
+#: ../gtk/gtkaboutdialog.c:103
 #, c-format
 msgid ""
 "This program comes with ABSOLUTELY NO WARRANTY; for details, visit <a href="
@@ -477,50 +496,50 @@ msgstr ""
 "Эта программа распространяется БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; подробности на "
 "странице <a href=\"%s\">%s</a>"
 
-#: ../gtk/gtkaboutdialog.c:346
+#: ../gtk/gtkaboutdialog.c:345
 msgid "License"
 msgstr "Лицензия"
 
-#: ../gtk/gtkaboutdialog.c:347
+#: ../gtk/gtkaboutdialog.c:346
 msgid "The license of the program"
 msgstr "Лицензия программы"
 
 #. Add the credits button
-#: ../gtk/gtkaboutdialog.c:739
+#: ../gtk/gtkaboutdialog.c:738
 msgid "C_redits"
 msgstr "_Благодарности"
 
 #. Add the license button
-#: ../gtk/gtkaboutdialog.c:752
+#: ../gtk/gtkaboutdialog.c:751
 msgid "_License"
 msgstr "_Лицензия"
 
-#: ../gtk/gtkaboutdialog.c:957
+#: ../gtk/gtkaboutdialog.c:956
 msgid "Could not show link"
 msgstr "Не удалось показать ссылку"
 
-#: ../gtk/gtkaboutdialog.c:994
+#: ../gtk/gtkaboutdialog.c:993
 msgid "Homepage"
 msgstr "Домашняя страница"
 
-#: ../gtk/gtkaboutdialog.c:1048
+#: ../gtk/gtkaboutdialog.c:1047
 #, c-format
 msgid "About %s"
 msgstr "О программе %s"
 
-#: ../gtk/gtkaboutdialog.c:2372
+#: ../gtk/gtkaboutdialog.c:2371
 msgid "Created by"
 msgstr "Автор(ы)"
 
-#: ../gtk/gtkaboutdialog.c:2375
+#: ../gtk/gtkaboutdialog.c:2374
 msgid "Documented by"
 msgstr "Документация"
 
-#: ../gtk/gtkaboutdialog.c:2385
+#: ../gtk/gtkaboutdialog.c:2384
 msgid "Translated by"
 msgstr "Перевод"
 
-#: ../gtk/gtkaboutdialog.c:2390
+#: ../gtk/gtkaboutdialog.c:2389
 msgid "Artwork by"
 msgstr "Графический дизайн"
 
@@ -559,7 +578,7 @@ msgstr "Alt"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:786
+#: ../gtk/gtkaccellabel.c:789
 msgctxt "keyboard label"
 msgid "Super"
 msgstr "Super"
@@ -569,7 +588,7 @@ msgstr "Super"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:799
+#: ../gtk/gtkaccellabel.c:802
 msgctxt "keyboard label"
 msgid "Hyper"
 msgstr "Hyper"
@@ -579,69 +598,69 @@ msgstr "Hyper"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:813
+#: ../gtk/gtkaccellabel.c:816
 msgctxt "keyboard label"
 msgid "Meta"
 msgstr "Meta"
 
-#: ../gtk/gtkaccellabel.c:829
+#: ../gtk/gtkaccellabel.c:832
 msgctxt "keyboard label"
 msgid "Space"
 msgstr "Пробел"
 
-#: ../gtk/gtkaccellabel.c:832
+#: ../gtk/gtkaccellabel.c:835
 msgctxt "keyboard label"
 msgid "Backslash"
 msgstr "Backslash"
 
-#: ../gtk/gtkappchooserbutton.c:264
+#: ../gtk/gtkappchooserbutton.c:268
 msgid "Other application..."
 msgstr "Другое приложение..."
 
-#: ../gtk/gtkappchooserdialog.c:128
+#: ../gtk/gtkappchooserdialog.c:130
 msgid "Failed to look for applications online"
 msgstr "Не удалось осуществить поиск приложений в Интернете"
 
-#: ../gtk/gtkappchooserdialog.c:165
+#: ../gtk/gtkappchooserdialog.c:171
 msgid "Find applications online"
 msgstr "Искать приложения в Интернете"
 
-#: ../gtk/gtkappchooserdialog.c:209
+#: ../gtk/gtkappchooserdialog.c:221
 msgid "Could not run application"
 msgstr "Не удалось выполнить приложение"
 
-#: ../gtk/gtkappchooserdialog.c:222
+#: ../gtk/gtkappchooserdialog.c:234
 #, c-format
 msgid "Could not find '%s'"
 msgstr "Не удалось найти «%s»"
 
-#: ../gtk/gtkappchooserdialog.c:225
+#: ../gtk/gtkappchooserdialog.c:237
 msgid "Could not find application"
 msgstr "Не удалось найти приложение"
 
 #. Translators: %s is a filename
-#: ../gtk/gtkappchooserdialog.c:335
+#: ../gtk/gtkappchooserdialog.c:355
 #, c-format
 msgid "Select an application to open \"%s\""
 msgstr "Выберите приложение, чтобы открыть «%s»"
 
-#: ../gtk/gtkappchooserdialog.c:336 ../gtk/gtkappchooserwidget.c:640
+#: ../gtk/gtkappchooserdialog.c:356 ../gtk/gtkappchooserwidget.c:643
 #, c-format
 msgid "No applications available to open \"%s\""
 msgstr "Нет подходящих приложений для открытия «%s»"
 
 #. Translators: %s is a file type description
-#: ../gtk/gtkappchooserdialog.c:342
+#: ../gtk/gtkappchooserdialog.c:362
 #, c-format
 msgid "Select an application for \"%s\" files"
 msgstr "Выберите приложение для файлов «%s»"
 
-#: ../gtk/gtkappchooserdialog.c:345
+#: ../gtk/gtkappchooserdialog.c:364
 #, c-format
 msgid "No applications available to open \"%s\" files"
 msgstr "Нет подходящих приложений для открытия файлов «%s»"
 
-#: ../gtk/gtkappchooserdialog.c:362
+#: ../gtk/gtkappchooserdialog.c:380
 msgid ""
 "Click \"Show other applications\", for more options, or \"Find applications "
 "online\" to install a new application"
@@ -650,34 +669,46 @@ msgstr ""
 "приложений, или «Искать приложения в Интернете», чтобы установить новое "
 "приложение"
 
-#: ../gtk/gtkappchooserdialog.c:432
+#: ../gtk/gtkappchooserdialog.c:450
 msgid "Forget association"
 msgstr "Забыть привязку"
 
-#: ../gtk/gtkappchooserdialog.c:497
+#: ../gtk/gtkappchooserdialog.c:515
 msgid "Show other applications"
 msgstr "Показать другие приложения"
 
-#: ../gtk/gtkappchooserdialog.c:515
+#: ../gtk/gtkappchooserdialog.c:533
 msgid "_Select"
 msgstr "_Выбрать"
 
-#: ../gtk/gtkappchooserwidget.c:591
+#: ../gtk/gtkappchooserwidget.c:592
 msgid "Default Application"
 msgstr "Приложение по умолчанию"
 
-#: ../gtk/gtkappchooserwidget.c:726
+#: ../gtk/gtkappchooserwidget.c:730
 msgid "Recommended Applications"
 msgstr "Рекомендуемые приложения"
 
-#: ../gtk/gtkappchooserwidget.c:740
+#: ../gtk/gtkappchooserwidget.c:745
 msgid "Related Applications"
 msgstr "Связанные приложения"
 
-#: ../gtk/gtkappchooserwidget.c:754
+#: ../gtk/gtkappchooserwidget.c:759
 msgid "Other Applications"
 msgstr "Другие приложения"
 
+#: ../gtk/gtkassistant.c:999
+msgid "C_ontinue"
+msgstr "_Продолжить"
+
+#: ../gtk/gtkassistant.c:1002
+msgid "Go _Back"
+msgstr "Вернуться _назад"
+
+#: ../gtk/gtkassistant.c:1006
+msgid "_Finish"
+msgstr "_Завершить"
+
 #: ../gtk/gtkbuilderparser.c:342
 #, c-format
 msgid "Invalid type function on line %d: '%s'"
@@ -709,7 +740,7 @@ msgstr "Необработанный тег «%s»"
 #. * text direction of RTL and specify "calendar:YM", then the year
 #. * will appear to the right of the month.
 #.
-#: ../gtk/gtkcalendar.c:871
+#: ../gtk/gtkcalendar.c:873
 msgid "calendar:MY"
 msgstr "calendar:MY"
 
@@ -717,7 +748,7 @@ msgstr "calendar:MY"
 #. * first day of the week to calendar:week_start:1 if you want Monday
 #. * to be the first day of the week, and so on.
 #.
-#: ../gtk/gtkcalendar.c:909
+#: ../gtk/gtkcalendar.c:911
 msgid "calendar:week_start:0"
 msgstr "calendar:week_start:1"
 
@@ -726,7 +757,7 @@ msgstr "calendar:week_start:1"
 #. *
 #. * If you don't understand this, leave it as "2000"
 #.
-#: ../gtk/gtkcalendar.c:1910
+#: ../gtk/gtkcalendar.c:1912
 msgctxt "year measurement template"
 msgid "2000"
 msgstr "2000"
@@ -741,7 +772,7 @@ msgstr "2000"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1941 ../gtk/gtkcalendar.c:2638
+#: ../gtk/gtkcalendar.c:1943 ../gtk/gtkcalendar.c:2640
 #, c-format
 msgctxt "calendar:day:digits"
 msgid "%d"
@@ -757,7 +788,7 @@ msgstr "%d"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1973 ../gtk/gtkcalendar.c:2499
+#: ../gtk/gtkcalendar.c:1975 ../gtk/gtkcalendar.c:2501
 #, c-format
 msgctxt "calendar:week:digits"
 msgid "%d"
@@ -773,7 +804,7 @@ msgstr "%d"
 #. *
 #. * "%Y" is appropriate for most locales.
 #.
-#: ../gtk/gtkcalendar.c:2268
+#: ../gtk/gtkcalendar.c:2270
 msgctxt "calendar year format"
 msgid "%Y"
 msgstr "%Y"
@@ -781,7 +812,7 @@ msgstr "%Y"
 #. This label is displayed in a treeview cell displaying
 #. * a disabled accelerator key combination.
 #.
-#: ../gtk/gtkcellrendereraccel.c:271
+#: ../gtk/gtkcellrendereraccel.c:286
 msgctxt "Accelerator"
 msgid "Disabled"
 msgstr "Выключен"
@@ -790,7 +821,7 @@ msgstr "Выключен"
 #. * an accelerator key combination that is not valid according
 #. * to gtk_accelerator_valid().
 #.
-#: ../gtk/gtkcellrendereraccel.c:281
+#: ../gtk/gtkcellrendereraccel.c:296
 msgctxt "Accelerator"
 msgid "Invalid"
 msgstr "Неверный"
@@ -799,11 +830,11 @@ msgstr "Неверный"
 #. * an accelerator when the cell is clicked to change the
 #. * acelerator.
 #.
-#: ../gtk/gtkcellrendereraccel.c:417 ../gtk/gtkcellrendereraccel.c:729
+#: ../gtk/gtkcellrendereraccel.c:432 ../gtk/gtkcellrendereraccel.c:745
 msgid "New accelerator..."
 msgstr "Новая комбинация клавиш..."
 
-#: ../gtk/gtkcellrendererprogress.c:362 ../gtk/gtkcellrendererprogress.c:452
+#: ../gtk/gtkcellrendererprogress.c:374 ../gtk/gtkcellrendererprogress.c:464
 #, c-format
 msgctxt "progress bar label"
 msgid "%d %%"
@@ -813,11 +844,7 @@ msgstr "%d %%"
 msgid "Pick a Color"
 msgstr "Выберите цвет"
 
-#: ../gtk/gtkcolorbutton.c:372
-msgid "Received invalid color data\n"
-msgstr "Получены недопустимые данные цвета\n"
-
-#: ../gtk/gtkcolorsel.c:415
+#: ../gtk/gtkcolorsel.c:416
 msgid ""
 "Select the color you want from the outer ring. Select the darkness or "
 "lightness of that color using the inner triangle."
@@ -825,7 +852,7 @@ msgstr ""
 "Выберите желаемый цвет на внешнем круге. Выберите более тёмный или более "
 "светлый оттенок, используя внутренний треугольник."
 
-#: ../gtk/gtkcolorsel.c:441
+#: ../gtk/gtkcolorsel.c:442
 msgid ""
 "Click the eyedropper, then click a color anywhere on your screen to select "
 "that color."
@@ -833,67 +860,67 @@ msgstr ""
 "Щелкните на пипетке, затем щёлкните на цвете в любом месте экрана, чтобы "
 "выбрать этот цвет."
 
-#: ../gtk/gtkcolorsel.c:451
+#: ../gtk/gtkcolorsel.c:452
 msgid "_Hue:"
 msgstr "То_н:"
 
-#: ../gtk/gtkcolorsel.c:452
+#: ../gtk/gtkcolorsel.c:453
 msgid "Position on the color wheel."
 msgstr "Положение цветового круга."
 
-#: ../gtk/gtkcolorsel.c:454
+#: ../gtk/gtkcolorsel.c:455
 msgid "_Saturation:"
 msgstr "Нас_ыщенность:"
 
-#: ../gtk/gtkcolorsel.c:455
+#: ../gtk/gtkcolorsel.c:456
 msgid "Intensity of the color."
 msgstr "Яркость цвета."
 
-#: ../gtk/gtkcolorsel.c:456
+#: ../gtk/gtkcolorsel.c:457
 msgid "_Value:"
 msgstr "Зна_чение:"
 
-#: ../gtk/gtkcolorsel.c:457
+#: ../gtk/gtkcolorsel.c:458
 msgid "Brightness of the color."
 msgstr "Яркость цвета."
 
-#: ../gtk/gtkcolorsel.c:458
+#: ../gtk/gtkcolorsel.c:459
 msgid "_Red:"
 msgstr "_Красный:"
 
-#: ../gtk/gtkcolorsel.c:459
+#: ../gtk/gtkcolorsel.c:460
 msgid "Amount of red light in the color."
 msgstr "Количество красного оттенка в цвете."
 
-#: ../gtk/gtkcolorsel.c:460
+#: ../gtk/gtkcolorsel.c:461
 msgid "_Green:"
 msgstr "_Зелёный:"
 
-#: ../gtk/gtkcolorsel.c:461
+#: ../gtk/gtkcolorsel.c:462
 msgid "Amount of green light in the color."
 msgstr "Количество зелёного оттенка в цвете."
 
-#: ../gtk/gtkcolorsel.c:462
+#: ../gtk/gtkcolorsel.c:463
 msgid "_Blue:"
 msgstr "С_иний:"
 
-#: ../gtk/gtkcolorsel.c:463
+#: ../gtk/gtkcolorsel.c:464
 msgid "Amount of blue light in the color."
 msgstr "Количество синего оттенка в цвете."
 
-#: ../gtk/gtkcolorsel.c:466
+#: ../gtk/gtkcolorsel.c:467
 msgid "Op_acity:"
 msgstr "Не_прозрачность:"
 
-#: ../gtk/gtkcolorsel.c:473 ../gtk/gtkcolorsel.c:483
+#: ../gtk/gtkcolorsel.c:475 ../gtk/gtkcolorsel.c:485
 msgid "Transparency of the color."
 msgstr "Прозрачность цвета."
 
-#: ../gtk/gtkcolorsel.c:490
+#: ../gtk/gtkcolorsel.c:492
 msgid "Color _name:"
 msgstr "Наи_менование цвета:"
 
-#: ../gtk/gtkcolorsel.c:504
+#: ../gtk/gtkcolorsel.c:507
 msgid ""
 "You can enter an HTML-style hexadecimal color value, or simply a color name "
 "such as 'orange' in this entry."
@@ -901,15 +928,15 @@ msgstr ""
 "Вы можете ввести в этой строке или шестнадцатеричное значение цвета (в стиле "
 "HTML), или название цвета, например, «orange»."
 
-#: ../gtk/gtkcolorsel.c:536
+#: ../gtk/gtkcolorsel.c:539
 msgid "_Palette:"
 msgstr "Па_литра:"
 
-#: ../gtk/gtkcolorsel.c:565
+#: ../gtk/gtkcolorsel.c:569
 msgid "Color Wheel"
 msgstr "Цветовой круг"
 
-#: ../gtk/gtkcolorsel.c:1038
+#: ../gtk/gtkcolorsel.c:1042
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now. You can drag this color to a palette entry, or select this color as "
@@ -919,7 +946,7 @@ msgstr ""
 "этот цвет в палитру или сделать его текущим, перетащив на другой образец "
 "цвета сбоку."
 
-#: ../gtk/gtkcolorsel.c:1044
+#: ../gtk/gtkcolorsel.c:1048
 msgid ""
 "The color you've chosen. You can drag this color to a palette entry to save "
 "it for use in the future."
@@ -927,21 +954,21 @@ msgstr ""
 "Цвет, который вы выбрали. Вы можете перетащить его в палитру, чтобы "
 "сохранить для последующего использования."
 
-#: ../gtk/gtkcolorsel.c:1050
+#: ../gtk/gtkcolorsel.c:1054
 msgid ""
 "The previously-selected color, for comparison to the color you're selecting "
 "now."
 msgstr "Выбранный ранее цвет для сравнения с цветом, выбранным сейчас."
 
-#: ../gtk/gtkcolorsel.c:1054
+#: ../gtk/gtkcolorsel.c:1058
 msgid "The color you've chosen."
 msgstr "Выбранный вами цвет."
 
-#: ../gtk/gtkcolorsel.c:1456
+#: ../gtk/gtkcolorsel.c:1460
 msgid "_Save color here"
 msgstr "Со_хранить цвет здесь"
 
-#: ../gtk/gtkcolorsel.c:1661
+#: ../gtk/gtkcolorsel.c:1665
 msgid ""
 "Click this palette entry to make it the current color. To change this entry, "
 "drag a color swatch here or right-click it and select \"Save color here.\""
@@ -950,7 +977,7 @@ msgstr ""
 "изменить этот элемент, перетащите сюда образец цвета или щёлкните правой "
 "клавишей и выберите «Сохранить цвет здесь»"
 
-#: ../gtk/gtkcolorseldialog.c:189
+#: ../gtk/gtkcolorseldialog.c:217
 msgid "Color Selection"
 msgstr "Выбор цвета"
 
@@ -965,96 +992,134 @@ msgid "default:mm"
 msgstr "default:mm"
 
 #. And show the custom paper dialog
-#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3255
+#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3325
 msgid "Manage Custom Sizes"
 msgstr "Управление пользовательскими размерами"
 
-#: ../gtk/gtkcustompaperunixdialog.c:532 ../gtk/gtkpagesetupunixdialog.c:788
+#: ../gtk/gtkcustompaperunixdialog.c:533 ../gtk/gtkpagesetupunixdialog.c:783
 msgid "inch"
 msgstr "дюймы"
 
-#: ../gtk/gtkcustompaperunixdialog.c:534 ../gtk/gtkpagesetupunixdialog.c:786
+#: ../gtk/gtkcustompaperunixdialog.c:535 ../gtk/gtkpagesetupunixdialog.c:781
 msgid "mm"
 msgstr "мм"
 
-#: ../gtk/gtkcustompaperunixdialog.c:579
+#: ../gtk/gtkcustompaperunixdialog.c:580
 msgid "Margins from Printer..."
 msgstr "Поля из принтера..."
 
-#: ../gtk/gtkcustompaperunixdialog.c:745
+#: ../gtk/gtkcustompaperunixdialog.c:746
 #, c-format
 msgid "Custom Size %d"
 msgstr "Пользовательский размер %d"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1057
+#: ../gtk/gtkcustompaperunixdialog.c:1084
 msgid "_Width:"
 msgstr "_Ширина:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1069
+#: ../gtk/gtkcustompaperunixdialog.c:1097
 msgid "_Height:"
 msgstr "_Высота:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1081
+#: ../gtk/gtkcustompaperunixdialog.c:1110
 msgid "Paper Size"
 msgstr "Размер бумаги"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1090
+#: ../gtk/gtkcustompaperunixdialog.c:1119
 msgid "_Top:"
 msgstr "_Верхнее:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1102
+#: ../gtk/gtkcustompaperunixdialog.c:1132
 msgid "_Bottom:"
 msgstr "_Нижнее:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1114
+#: ../gtk/gtkcustompaperunixdialog.c:1145
 msgid "_Left:"
 msgstr "_Левое:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1126
+#: ../gtk/gtkcustompaperunixdialog.c:1158
 msgid "_Right:"
 msgstr "_Правое:"
 
-#: ../gtk/gtkcustompaperunixdialog.c:1167
+#: ../gtk/gtkcustompaperunixdialog.c:1200
 msgid "Paper Margins"
 msgstr "Поля страницы"
 
-#: ../gtk/gtkentry.c:8748 ../gtk/gtktextview.c:8272
+#: ../gtk/gtkentry.c:8949 ../gtk/gtktextview.c:8277
 msgid "Input _Methods"
 msgstr "_Методы ввода"
 
 # длинный перевод слишком сильно растягивает контекстное меню
-#: ../gtk/gtkentry.c:8762 ../gtk/gtktextview.c:8286
+#: ../gtk/gtkentry.c:8963 ../gtk/gtktextview.c:8291
 msgid "_Insert Unicode Control Character"
 msgstr "Вст_авить управляющий символ Юникод"
 
-#: ../gtk/gtkentry.c:10170
+#: ../gtk/gtkentry.c:10434
 msgid "Caps Lock and Num Lock are on"
 msgstr "Нажаты Caps Lock и Num Lock"
 
-#: ../gtk/gtkentry.c:10172
+#: ../gtk/gtkentry.c:10436
 msgid "Num Lock is on"
 msgstr "Нажата Num Lock"
 
-#: ../gtk/gtkentry.c:10174
+#: ../gtk/gtkentry.c:10438
 msgid "Caps Lock is on"
 msgstr "Нажата Caps Lock"
 
+#. *
+#. * SECTION:gtkfilechooserbutton
+#. * @Short_description: A button to launch a file selection dialog
+#. * @Title: GtkFileChooserButton
+#. * @See_also:#GtkFileChooserDialog
+#. *
+#. * The #GtkFileChooserButton is a widget that lets the user select a
+#. * file.  It implements the #GtkFileChooser interface.  Visually, it is a
+#. * file name with a button to bring up a #GtkFileChooserDialog.
+#. * The user can then use that dialog to change the file associated with
+#. * that button.  This widget does not support setting the
+#. * #GtkFileChooser:select-multiple property to %TRUE.
+#. *
+#. * <example>
+#. * <title>Create a button to let the user select a file in /etc</title>
+#. * <programlisting>
+#. * {
+#. *   GtkWidget *button;
+#. *
+#. *   button = gtk_file_chooser_button_new (_("Select a file"),
+#. *                                         GTK_FILE_CHOOSER_ACTION_OPEN);
+#. *   gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button),
+#. *                                        "/etc");
+#. * }
+#. * </programlisting>
+#. * </example>
+#. *
+#. * The #GtkFileChooserButton supports the #GtkFileChooserAction<!-- -->s
+#. * %GTK_FILE_CHOOSER_ACTION_OPEN and %GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
+#. *
+#. * <important>
+#. * The #GtkFileChooserButton will ellipsize the label,
+#. * and thus will thus request little horizontal space.  To give the button
+#. * more space, you should call gtk_widget_get_preferred_size(),
+#. * gtk_file_chooser_button_set_width_chars(), or pack the button in
+#. * such a way that other interface elements give space to the widget.
+#. * </important>
+#.
 #. **************** *
 #. *  Private Macros  *
 #. * ****************
-#: ../gtk/gtkfilechooserbutton.c:62
+#: ../gtk/gtkfilechooserbutton.c:105
 msgid "Select a File"
 msgstr "Выберите файл"
 
-#: ../gtk/gtkfilechooserbutton.c:63 ../gtk/gtkfilechooserdefault.c:1865
+#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1811
 msgid "Desktop"
 msgstr "Рабочий стол"
 
-#: ../gtk/gtkfilechooserbutton.c:64
+#: ../gtk/gtkfilechooserbutton.c:107
 msgid "(None)"
 msgstr "(Нет)"
 
-#: ../gtk/gtkfilechooserbutton.c:1997
+#: ../gtk/gtkfilechooserbutton.c:2046
 msgid "Other..."
 msgstr "Другой..."
 
@@ -1062,23 +1127,23 @@ msgstr "Другой..."
 msgid "Type name of new folder"
 msgstr "Введите имя новой папки"
 
-#: ../gtk/gtkfilechooserdefault.c:960
+#: ../gtk/gtkfilechooserdefault.c:962
 msgid "Could not retrieve information about the file"
 msgstr "Не удалось получить информацию о файле"
 
-#: ../gtk/gtkfilechooserdefault.c:971
+#: ../gtk/gtkfilechooserdefault.c:973
 msgid "Could not add a bookmark"
 msgstr "Не удалось добавить закладку"
 
-#: ../gtk/gtkfilechooserdefault.c:982
+#: ../gtk/gtkfilechooserdefault.c:984
 msgid "Could not remove bookmark"
 msgstr "Не удалось удалить закладку"
 
-#: ../gtk/gtkfilechooserdefault.c:993
+#: ../gtk/gtkfilechooserdefault.c:995
 msgid "The folder could not be created"
 msgstr "Не удалось создать папку"
 
-#: ../gtk/gtkfilechooserdefault.c:1006
+#: ../gtk/gtkfilechooserdefault.c:1008
 msgid ""
 "The folder could not be created, as a file with the same name already "
 "exists.  Try using a different name for the folder, or rename the file first."
@@ -1086,16 +1151,16 @@ msgstr ""
 "Папка не может быть создана, так как файл с таким именем уже существует.  "
 "Выберите другое имя для папки, или переименуйте файл."
 
-#: ../gtk/gtkfilechooserdefault.c:1020
+#: ../gtk/gtkfilechooserdefault.c:1022
 msgid "You need to choose a valid filename."
 msgstr "Необходимо выбрать правильное имя файла."
 
-#: ../gtk/gtkfilechooserdefault.c:1023
+#: ../gtk/gtkfilechooserdefault.c:1025
 #, c-format
 msgid "Cannot create a file under %s as it is not a folder"
 msgstr "Не удалось создать файл под %s, поскольку это не папка"
 
-#: ../gtk/gtkfilechooserdefault.c:1035
+#: ../gtk/gtkfilechooserdefault.c:1037
 msgid ""
 "You may only select folders.  The item that you selected is not a folder; "
 "try using a different item."
@@ -1103,11 +1168,11 @@ msgstr ""
 "Вы можете выбрать только папки. Выбранный элемент не является папкой; "
 "попробуйте выбрать другой элемент."
 
-#: ../gtk/gtkfilechooserdefault.c:1045
+#: ../gtk/gtkfilechooserdefault.c:1047
 msgid "Invalid file name"
 msgstr "Недопустимое имя файла"
 
-#: ../gtk/gtkfilechooserdefault.c:1055
+#: ../gtk/gtkfilechooserdefault.c:1057
 msgid "The folder contents could not be displayed"
 msgstr "Не удалось отобразить содержимое папки"
 
@@ -1115,193 +1180,201 @@ msgstr "Не удалось отобразить содержимое папки
 #. * is a hostname. Nautilus and the panel contain the same string
 #. * to translate.
 #.
-#: ../gtk/gtkfilechooserdefault.c:1608
+#: ../gtk/gtkfilechooserdefault.c:1583
 #, c-format
 msgid "%1$s on %2$s"
 msgstr "%1$s на %2$s"
 
-#: ../gtk/gtkfilechooserdefault.c:1784
+#: ../gtk/gtkfilechooserdefault.c:1732
 msgid "Search"
 msgstr "Поиск"
 
-#: ../gtk/gtkfilechooserdefault.c:1808 ../gtk/gtkfilechooserdefault.c:9485
+#: ../gtk/gtkfilechooserdefault.c:1756 ../gtk/gtkfilechooserdefault.c:4873
 msgid "Recently Used"
 msgstr "Недавние документы"
 
-#: ../gtk/gtkfilechooserdefault.c:2464
+#: ../gtk/gtkfilechooserdefault.c:2355
 msgid "Select which types of files are shown"
 msgstr "Выбрать отображаемые типы файлов"
 
-#: ../gtk/gtkfilechooserdefault.c:2823
+#: ../gtk/gtkfilechooserdefault.c:2714
 #, c-format
 msgid "Add the folder '%s' to the bookmarks"
 msgstr "Создать закладку для папки «%s»"
 
-#: ../gtk/gtkfilechooserdefault.c:2867
+#: ../gtk/gtkfilechooserdefault.c:2758
 #, c-format
 msgid "Add the current folder to the bookmarks"
 msgstr "Создать закладку для текущей папки"
 
-#: ../gtk/gtkfilechooserdefault.c:2869
+#: ../gtk/gtkfilechooserdefault.c:2760
 #, c-format
 msgid "Add the selected folders to the bookmarks"
 msgstr "Создать закладки для выделенных папок"
 
-#: ../gtk/gtkfilechooserdefault.c:2907
+#: ../gtk/gtkfilechooserdefault.c:2798
 #, c-format
 msgid "Remove the bookmark '%s'"
 msgstr "Удалить закладку «%s»"
 
-#: ../gtk/gtkfilechooserdefault.c:2909
+#: ../gtk/gtkfilechooserdefault.c:2800
 #, c-format
 msgid "Bookmark '%s' cannot be removed"
 msgstr "Закладка '%s' не может быть удалена"
 
-#: ../gtk/gtkfilechooserdefault.c:2916 ../gtk/gtkfilechooserdefault.c:3798
+#: ../gtk/gtkfilechooserdefault.c:2807 ../gtk/gtkfilechooserdefault.c:3692
 msgid "Remove the selected bookmark"
 msgstr "Удалить выделенную закладку"
 
-#: ../gtk/gtkfilechooserdefault.c:3479
+#: ../gtk/gtkfilechooserdefault.c:3371
 msgid "Remove"
 msgstr "Удалить"
 
-#: ../gtk/gtkfilechooserdefault.c:3488
+#: ../gtk/gtkfilechooserdefault.c:3380
 msgid "Rename..."
 msgstr "Переименовать..."
 
 #. Accessible object name for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3651
+#: ../gtk/gtkfilechooserdefault.c:3544
 msgid "Places"
 msgstr "Места"
 
 #. Column header for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3708
+#: ../gtk/gtkfilechooserdefault.c:3601
 msgid "_Places"
 msgstr "_Места"
 
-#: ../gtk/gtkfilechooserdefault.c:3786
+#: ../gtk/gtkfilechooserdefault.c:3680
 msgid "Add the selected folder to the Bookmarks"
 msgstr "Создать закладку для выделенной папки"
 
-#: ../gtk/gtkfilechooserdefault.c:3933
+#: ../gtk/gtkfilechooserdefault.c:3827
 msgid "Could not select file"
 msgstr "Не удалось выделить файл"
 
-#: ../gtk/gtkfilechooserdefault.c:4106
+#: ../gtk/gtkfilechooserdefault.c:4000
 msgid "_Add to Bookmarks"
 msgstr "_Добавить в закладки"
 
-#: ../gtk/gtkfilechooserdefault.c:4119
+#: ../gtk/gtkfilechooserdefault.c:4013
 msgid "Show _Hidden Files"
 msgstr "Показывать _скрытые файлы"
 
-#: ../gtk/gtkfilechooserdefault.c:4126
+#: ../gtk/gtkfilechooserdefault.c:4020
 msgid "Show _Size Column"
 msgstr "Показывать _размер"
 
-#: ../gtk/gtkfilechooserdefault.c:4351
+#: ../gtk/gtkfilechooserdefault.c:4245
 msgid "Files"
 msgstr "Файлы"
 
-#: ../gtk/gtkfilechooserdefault.c:4402
+#: ../gtk/gtkfilechooserdefault.c:4296
 msgid "Name"
 msgstr "Имя"
 
-#: ../gtk/gtkfilechooserdefault.c:4425
+#: ../gtk/gtkfilechooserdefault.c:4319
 msgid "Size"
 msgstr "Размер"
 
-#: ../gtk/gtkfilechooserdefault.c:4439
+#: ../gtk/gtkfilechooserdefault.c:4333
 msgid "Modified"
 msgstr "Изменён"
 
 #. Label
-#: ../gtk/gtkfilechooserdefault.c:4694 ../gtk/gtkprinteroptionwidget.c:793
+#: ../gtk/gtkfilechooserdefault.c:4414 ../gtk/gtkprinteroptionwidget.c:799
 msgid "_Name:"
 msgstr "_Имя:"
 
-#: ../gtk/gtkfilechooserdefault.c:4737
-msgid "_Browse for other folders"
-msgstr "П_росмотреть другие папки"
-
-#: ../gtk/gtkfilechooserdefault.c:5007
+#: ../gtk/gtkfilechooserdefault.c:4711
 msgid "Type a file name"
 msgstr "Введите имя файла"
 
+#: ../gtk/gtkfilechooserdefault.c:4758 ../gtk/gtkfilechooserdefault.c:4769
+msgid "Please select a folder below"
+msgstr "Выберите папку внизу"
+
+#: ../gtk/gtkfilechooserdefault.c:4764
+msgid "Please type a file name"
+msgstr "Введите имя файла"
+
 #. Create Folder
-#: ../gtk/gtkfilechooserdefault.c:5050
+#: ../gtk/gtkfilechooserdefault.c:4835
 msgid "Create Fo_lder"
 msgstr "Создать п_апку"
 
-#: ../gtk/gtkfilechooserdefault.c:5060
+#: ../gtk/gtkfilechooserdefault.c:4883
+msgid "Search:"
+msgstr "Поиск:"
+
+#: ../gtk/gtkfilechooserdefault.c:4930
 msgid "_Location:"
 msgstr "_Расположение:"
 
-#: ../gtk/gtkfilechooserdefault.c:5265
+#: ../gtk/gtkfilechooserdefault.c:5247
 msgid "Save in _folder:"
 msgstr "Сохранить в _папке"
 
-#: ../gtk/gtkfilechooserdefault.c:5267
+#: ../gtk/gtkfilechooserdefault.c:5249
 msgid "Create in _folder:"
 msgstr "Создать в _папке:"
 
-#: ../gtk/gtkfilechooserdefault.c:6350
+#: ../gtk/gtkfilechooserdefault.c:6343
 #, c-format
 msgid "Could not read the contents of %s"
 msgstr "Не удалось прочитать содержимое %s"
 
-#: ../gtk/gtkfilechooserdefault.c:6354
+#: ../gtk/gtkfilechooserdefault.c:6347
 msgid "Could not read the contents of the folder"
 msgstr "Не удалось прочитать содержимое папки"
 
-#: ../gtk/gtkfilechooserdefault.c:6447 ../gtk/gtkfilechooserdefault.c:6515
+#: ../gtk/gtkfilechooserdefault.c:6440 ../gtk/gtkfilechooserdefault.c:6508
 #: ../gtk/gtkfilechooserdefault.c:6660
 msgid "Unknown"
 msgstr "Неизвестен"
 
-#: ../gtk/gtkfilechooserdefault.c:6462
+#: ../gtk/gtkfilechooserdefault.c:6455
 msgid "%H:%M"
 msgstr "%H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:6464
+#: ../gtk/gtkfilechooserdefault.c:6457
 msgid "Yesterday at %H:%M"
 msgstr "Вчера в %H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:7126
+#: ../gtk/gtkfilechooserdefault.c:7142
 msgid "Cannot change to folder because it is not local"
 msgstr "Не удалось перейти в папку, так как она не является локальной"
 
-#: ../gtk/gtkfilechooserdefault.c:7723 ../gtk/gtkfilechooserdefault.c:7744
+#: ../gtk/gtkfilechooserdefault.c:7742 ../gtk/gtkfilechooserdefault.c:7763
 #, c-format
 msgid "Shortcut %s already exists"
 msgstr "Комбинация %s уже существует"
 
-#: ../gtk/gtkfilechooserdefault.c:7834
+#: ../gtk/gtkfilechooserdefault.c:7853
 #, c-format
 msgid "Shortcut %s does not exist"
 msgstr "Комбинация %s не существует"
 
-#: ../gtk/gtkfilechooserdefault.c:8093 ../gtk/gtkprintunixdialog.c:480
+#: ../gtk/gtkfilechooserdefault.c:8099 ../gtk/gtkprintunixdialog.c:550
 #, c-format
 msgid "A file named \"%s\" already exists.  Do you want to replace it?"
 msgstr "Файл с именем «%s» уже существует. Заменить его?"
 
-#: ../gtk/gtkfilechooserdefault.c:8096 ../gtk/gtkprintunixdialog.c:484
+#: ../gtk/gtkfilechooserdefault.c:8102 ../gtk/gtkprintunixdialog.c:554
 #, c-format
 msgid ""
 "The file already exists in \"%s\".  Replacing it will overwrite its contents."
 msgstr ""
 "Файл уже существует в «%s». Его замена приведёт к перезаписи содержимого."
 
-#: ../gtk/gtkfilechooserdefault.c:8101 ../gtk/gtkprintunixdialog.c:491
+#: ../gtk/gtkfilechooserdefault.c:8107 ../gtk/gtkprintunixdialog.c:561
 msgid "_Replace"
 msgstr "_Заменить"
 
-#: ../gtk/gtkfilechooserdefault.c:8827
+#: ../gtk/gtkfilechooserdefault.c:8912
 msgid "Could not start the search process"
 msgstr "Не удалось начать поиск"
 
-#: ../gtk/gtkfilechooserdefault.c:8828
+#: ../gtk/gtkfilechooserdefault.c:8913
 msgid ""
 "The program was not able to create a connection to the indexer daemon.  "
 "Please make sure it is running."
@@ -1309,36 +1382,34 @@ msgstr ""
 "Не удалось соединиться с сервисом индексированного поиска. Проверьте, что "
 "сервис запущен."
 
-#: ../gtk/gtkfilechooserdefault.c:8842
+#: ../gtk/gtkfilechooserdefault.c:8927
 msgid "Could not send the search request"
 msgstr "Не удалось послать запрос на поиск"
 
-#: ../gtk/gtkfilechooserdefault.c:9061
-msgid "Search:"
-msgstr "Поиск:"
-
-#: ../gtk/gtkfilechooserdefault.c:9669
+#: ../gtk/gtkfilechooserdefault.c:9719
 #, c-format
 msgid "Could not mount %s"
 msgstr "Не удалось подключить %s"
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry, when the user enters an invalid path.
-#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1179
+#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1174
+#: ../gtk/gtkfilesystem.c:721
+#, c-format
 msgid "Invalid path"
 msgstr "Неверный путь"
 
 #. translators: this text is shown when there are no completions
 #. * for something the user typed in a file chooser entry
 #.
-#: ../gtk/gtkfilechooserentry.c:1111
+#: ../gtk/gtkfilechooserentry.c:1106
 msgid "No match"
 msgstr "Нет совпадений"
 
 #. translators: this text is shown when there is exactly one completion
 #. * for something the user typed in a file chooser entry
 #.
-#: ../gtk/gtkfilechooserentry.c:1122
+#: ../gtk/gtkfilechooserentry.c:1117
 msgid "Sole completion"
 msgstr "Единственное совпадение"
 
@@ -1346,13 +1417,13 @@ msgstr "Единственное совпадение"
 #. * entry is a complete filename, but could be continued to find
 #. * a longer match
 #.
-#: ../gtk/gtkfilechooserentry.c:1138
+#: ../gtk/gtkfilechooserentry.c:1133
 msgid "Complete, but not unique"
 msgstr "Подходящее, но не уникальное"
 
 #. Translators: this text is shown while the system is searching
 #. * for possible completions for filenames in a file chooser entry.
-#: ../gtk/gtkfilechooserentry.c:1170
+#: ../gtk/gtkfilechooserentry.c:1165
 msgid "Completing..."
 msgstr "Поиск совпадений..."
 
@@ -1360,7 +1431,7 @@ msgstr "Поиск совпадений..."
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user enters something like
 #. * "sftp://blahblah" in an app that only supports local filenames.
-#: ../gtk/gtkfilechooserentry.c:1192 ../gtk/gtkfilechooserentry.c:1217
+#: ../gtk/gtkfilechooserentry.c:1187 ../gtk/gtkfilechooserentry.c:1212
 msgid "Only local files may be selected"
 msgstr "Поддерживаются только локальные файлы"
 
@@ -1368,14 +1439,14 @@ msgstr "Поддерживаются только локальные файлы"
 #. Translators: this is shown in the feedback for Tab-completion in a
 #. * file chooser's text entry when the user hasn't entered the first '/'
 #. * after a hostname and yet hits Tab (such as "sftp://blahblah[Tab]")
-#: ../gtk/gtkfilechooserentry.c:1201
+#: ../gtk/gtkfilechooserentry.c:1196
 msgid "Incomplete hostname; end it with '/'"
 msgstr "Незавершённое имя узла, наберите «/»"
 
 #. Translators: this is shown in the feedback for Tab-completion in a file
 #. * chooser's text entry when the user enters a path that does not exist
 #. * and then hits Tab
-#: ../gtk/gtkfilechooserentry.c:1212
+#: ../gtk/gtkfilechooserentry.c:1207
 msgid "Path does not exist"
 msgstr "Путь не существует"
 
@@ -1388,77 +1459,56 @@ msgstr "Путь не существует"
 msgid "File System"
 msgstr "Файловая система"
 
-#: ../gtk/gtkfontbutton.c:142 ../gtk/gtkfontbutton.c:266
+#: ../gtk/gtkfontbutton.c:153 ../gtk/gtkfontbutton.c:277
 msgid "Pick a Font"
 msgstr "Выберите шрифт"
 
 #. Initialize fields
-#: ../gtk/gtkfontbutton.c:260
+#: ../gtk/gtkfontbutton.c:271
 msgid "Sans 12"
 msgstr "Sans 12"
 
-#: ../gtk/gtkfontbutton.c:785
+#: ../gtk/gtkfontbutton.c:796
 msgid "Font"
 msgstr "Шрифт"
 
 #. This is the default text shown in the preview entry, though the user
 #. can set it. Remember that some fonts only have capital letters.
-#: ../gtk/gtkfontsel.c:100
+#: ../gtk/gtkfontsel.c:119
 msgid "abcdefghijk ABCDEFGHIJK"
 msgstr "абвгде АБВГДЕ abcde ABCDE"
 
-#: ../gtk/gtkfontsel.c:366
+#: ../gtk/gtkfontsel.c:388
 msgid "_Family:"
 msgstr "_Семейство:"
 
-#: ../gtk/gtkfontsel.c:372
+#: ../gtk/gtkfontsel.c:395
 msgid "_Style:"
 msgstr "_Начертание:"
 
-#: ../gtk/gtkfontsel.c:378
+#: ../gtk/gtkfontsel.c:402
 msgid "Si_ze:"
 msgstr "_Размер:"
 
 #. create the text entry widget
-#: ../gtk/gtkfontsel.c:554
+#: ../gtk/gtkfontsel.c:579
 msgid "_Preview:"
 msgstr "Образе_ц:"
 
-#: ../gtk/gtkfontsel.c:1653
+#: ../gtk/gtkfontsel.c:1705
 msgid "Font Selection"
 msgstr "Выбор шрифта"
 
-#. Remove this icon source so we don't keep trying to
-#. * load it.
-#.
-#: ../gtk/gtkiconfactory.c:1358
-#, c-format
-msgid "Error loading icon: %s"
-msgstr "Не удалось загрузить значок: %s"
-
-#: ../gtk/gtkicontheme.c:1336
-#, c-format
-msgid ""
-"Could not find the icon '%s'. The '%s' theme\n"
-"was not found either, perhaps you need to install it.\n"
-"You can get a copy from:\n"
-"\t%s"
-msgstr ""
-"Не удалось найти значок «%s». Тема «%s» также\n"
-"не была найдена, возможно, её требуется установить.\n"
-"Загрузить тему можно с\n"
-"\t%s"
-
-#: ../gtk/gtkicontheme.c:1518
+#: ../gtk/gtkicontheme.c:1605
 #, c-format
 msgid "Icon '%s' not present in theme"
 msgstr "Значок «%s» не присутствует в теме"
 
-#: ../gtk/gtkicontheme.c:3038
+#: ../gtk/gtkicontheme.c:3115
 msgid "Failed to load icon"
 msgstr "Не удалось загрузить значок"
 
-#: ../gtk/gtkimmodule.c:526
+#: ../gtk/gtkimmodule.c:525
 msgid "Simple"
 msgstr "Простой"
 
@@ -1479,45 +1529,77 @@ msgid "System (%s)"
 msgstr "Системный (%s)"
 
 #. Open Link
-#: ../gtk/gtklabel.c:6243
+#: ../gtk/gtklabel.c:6309
 msgid "_Open Link"
 msgstr "_Открыть ссылку"
 
 #. Copy Link Address
-#: ../gtk/gtklabel.c:6255
+#: ../gtk/gtklabel.c:6321
 msgid "Copy _Link Address"
 msgstr "_Скопировать адрес ссылки"
 
-#: ../gtk/gtklinkbutton.c:482
+#: ../gtk/gtklinkbutton.c:484
 msgid "Copy URL"
 msgstr "Копировать URL"
 
-#: ../gtk/gtklinkbutton.c:645
+#: ../gtk/gtklinkbutton.c:647
 msgid "Invalid URI"
 msgstr "Неверный URI"
 
+#: ../gtk/gtklockbutton.c:288
+msgid "Lock"
+msgstr "Блокировать"
+
+#: ../gtk/gtklockbutton.c:297
+msgid "Unlock"
+msgstr "Разблокировать"
+
+#: ../gtk/gtklockbutton.c:306
+msgid ""
+"Dialog is unlocked.\n"
+"Click to prevent further changes"
+msgstr ""
+"Диалоговое окно разблокировано.\n"
+"Щёлкните для блокирования изменений"
+
+#: ../gtk/gtklockbutton.c:315
+msgid ""
+"Dialog is locked.\n"
+"Click to make changes"
+msgstr ""
+"Диалоговое окно заблокировано.\n"
+"Щёлкните для ввода изменений"
+
+#: ../gtk/gtklockbutton.c:324
+msgid ""
+"System policy prevents changes.\n"
+"Contact your system administrator"
+msgstr ""
+"Изменения запрещены системной политикой.\n"
+"Обратитесь к вашему системному администратору"
+
 #. Description of --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:563
+#: ../gtk/gtkmain.c:562
 msgid "Load additional GTK+ modules"
 msgstr "Загрузить дополнительные модули GTK+"
 
 #. Placeholder in --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:564
+#: ../gtk/gtkmain.c:563
 msgid "MODULES"
 msgstr "МОДУЛИ"
 
 #. Description of --g-fatal-warnings in --help output
-#: ../gtk/gtkmain.c:566
+#: ../gtk/gtkmain.c:565
 msgid "Make all warnings fatal"
 msgstr "Сделать все предупреждения фатальными"
 
 #. Description of --gtk-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:569
+#: ../gtk/gtkmain.c:568
 msgid "GTK+ debugging flags to set"
 msgstr "Установить указанные отладочные флаги GTK+"
 
 #. Description of --gtk-no-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:572
+#: ../gtk/gtkmain.c:571
 msgid "GTK+ debugging flags to unset"
 msgstr "Сбросить указанные отладочные флаги GTK+"
 
@@ -1526,69 +1608,69 @@ msgstr "Сбросить указанные отладочные флаги GTK+
 #. * Do *not* translate it to "predefinito:LTR", if it
 #. * it isn't default:LTR or default:RTL it will not work
 #.
-#: ../gtk/gtkmain.c:846
+#: ../gtk/gtkmain.c:848
 msgid "default:LTR"
 msgstr "default:LTR"
 
-#: ../gtk/gtkmain.c:910
+#: ../gtk/gtkmain.c:914
 #, c-format
 msgid "Cannot open display: %s"
 msgstr "Не удалось открыть дисплей: %s"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "GTK+ Options"
 msgstr "Параметры GTK+"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "Show GTK+ Options"
 msgstr "Показать параметры GTK+"
 
-#: ../gtk/gtkmountoperation.c:491
+#: ../gtk/gtkmountoperation.c:489
 msgid "Co_nnect"
 msgstr "_Подключиться"
 
-#: ../gtk/gtkmountoperation.c:558
+#: ../gtk/gtkmountoperation.c:559
 msgid "Connect _anonymously"
 msgstr "Подключиться _анонимно"
 
-#: ../gtk/gtkmountoperation.c:567
+#: ../gtk/gtkmountoperation.c:568
 msgid "Connect as u_ser:"
 msgstr "Подключиться _как:"
 
-#: ../gtk/gtkmountoperation.c:605
+#: ../gtk/gtkmountoperation.c:602
 msgid "_Username:"
 msgstr "_Имя пользователя:"
 
-#: ../gtk/gtkmountoperation.c:610
+#: ../gtk/gtkmountoperation.c:607
 msgid "_Domain:"
 msgstr "_Домен:"
 
-#: ../gtk/gtkmountoperation.c:616
+#: ../gtk/gtkmountoperation.c:613
 msgid "_Password:"
 msgstr "_Пароль:"
 
-#: ../gtk/gtkmountoperation.c:634
+#: ../gtk/gtkmountoperation.c:631
 msgid "Forget password _immediately"
 msgstr "_Забыть пароль немедленно"
 
-#: ../gtk/gtkmountoperation.c:644
+#: ../gtk/gtkmountoperation.c:641
 msgid "Remember password until you _logout"
 msgstr "Запомнить пароль _до выхода из сеанса"
 
-#: ../gtk/gtkmountoperation.c:654
+#: ../gtk/gtkmountoperation.c:651
 msgid "Remember _forever"
 msgstr "Запомнить _навсегда"
 
-#: ../gtk/gtkmountoperation.c:883
+#: ../gtk/gtkmountoperation.c:880
 #, c-format
 msgid "Unknown Application (PID %d)"
 msgstr "Неизвестное приложение (PID %d)"
 
-#: ../gtk/gtkmountoperation.c:1066
+#: ../gtk/gtkmountoperation.c:1063
 msgid "Unable to end process"
 msgstr "Не удается завершить процесс"
 
-#: ../gtk/gtkmountoperation.c:1103
+#: ../gtk/gtkmountoperation.c:1100
 msgid "_End Process"
 msgstr "_Завершить процесс"
 
@@ -1598,32 +1680,32 @@ msgid "Cannot kill process with PID %d. Operation is not implemented."
 msgstr "Невозможно завершить процесс с PID %d. Операция не реализована."
 
 #. translators: this string is a name for the 'less' command
-#: ../gtk/gtkmountoperation-x11.c:859
+#: ../gtk/gtkmountoperation-x11.c:959
 msgid "Terminal Pager"
 msgstr "Терминальный пейджер"
 
-#: ../gtk/gtkmountoperation-x11.c:860
+#: ../gtk/gtkmountoperation-x11.c:960
 msgid "Top Command"
 msgstr "Команда top"
 
-#: ../gtk/gtkmountoperation-x11.c:861
+#: ../gtk/gtkmountoperation-x11.c:961
 msgid "Bourne Again Shell"
 msgstr "Bourne Again Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:862
+#: ../gtk/gtkmountoperation-x11.c:962
 msgid "Bourne Shell"
 msgstr "Bourne Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:863
+#: ../gtk/gtkmountoperation-x11.c:963
 msgid "Z Shell"
 msgstr "Z Shell"
 
-#: ../gtk/gtkmountoperation-x11.c:960
+#: ../gtk/gtkmountoperation-x11.c:1060
 #, c-format
 msgid "Cannot end process with PID %d: %s"
 msgstr "Не удаётся завершить процесс с PID %d: %s"
 
-#: ../gtk/gtknotebook.c:4808 ../gtk/gtknotebook.c:7383
+#: ../gtk/gtknotebook.c:4904 ../gtk/gtknotebook.c:7589
 #, c-format
 msgid "Page %u"
 msgstr "Страница %u"
@@ -1631,7 +1713,7 @@ msgstr "Страница %u"
 #. Translators: the format here is used to build the string that will be rendered
 #. * in the number emblem.
 #.
-#: ../gtk/gtknumerableicon.c:481
+#: ../gtk/gtknumerableicon.c:482
 #, c-format
 msgctxt "Number format"
 msgid "%d"
@@ -1642,15 +1724,15 @@ msgstr "%d"
 msgid "Not a valid page setup file"
 msgstr "Некорректный файл настройки печати"
 
-#: ../gtk/gtkpagesetupunixdialog.c:177
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "Any Printer"
 msgstr "Любой принтер"
 
-#: ../gtk/gtkpagesetupunixdialog.c:177
+#: ../gtk/gtkpagesetupunixdialog.c:172
 msgid "For portable documents"
 msgstr "Для переносимых документов"
 
-#: ../gtk/gtkpagesetupunixdialog.c:807
+#: ../gtk/gtkpagesetupunixdialog.c:802
 #, c-format
 msgid ""
 "Margins:\n"
@@ -1665,35 +1747,35 @@ msgstr ""
 " верхнее: %s %s\n"
 " нижнее: %s %s"
 
-#: ../gtk/gtkpagesetupunixdialog.c:856 ../gtk/gtkprintunixdialog.c:3306
+#: ../gtk/gtkpagesetupunixdialog.c:851 ../gtk/gtkprintunixdialog.c:3376
 msgid "Manage Custom Sizes..."
 msgstr "Управление пользовательскими размерами..."
 
-#: ../gtk/gtkpagesetupunixdialog.c:907
+#: ../gtk/gtkpagesetupunixdialog.c:902
 msgid "_Format for:"
 msgstr "_Формат для:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:929 ../gtk/gtkprintunixdialog.c:3478
+#: ../gtk/gtkpagesetupunixdialog.c:925 ../gtk/gtkprintunixdialog.c:3556
 msgid "_Paper size:"
 msgstr "_Размер бумаги:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:960
+#: ../gtk/gtkpagesetupunixdialog.c:958
 msgid "_Orientation:"
 msgstr "_Расположение:"
 
-#: ../gtk/gtkpagesetupunixdialog.c:1024 ../gtk/gtkprintunixdialog.c:3540
+#: ../gtk/gtkpagesetupunixdialog.c:1023 ../gtk/gtkprintunixdialog.c:3620
 msgid "Page Setup"
 msgstr "Параметры страницы"
 
-#: ../gtk/gtkpathbar.c:157
+#: ../gtk/gtkpathbar.c:156
 msgid "Up Path"
 msgstr "Вверх по дереву"
 
-#: ../gtk/gtkpathbar.c:159
+#: ../gtk/gtkpathbar.c:158
 msgid "Down Path"
 msgstr "Вниз по дереву"
 
-#: ../gtk/gtkpathbar.c:1518
+#: ../gtk/gtkpathbar.c:1516
 msgid "File System Root"
 msgstr "Корень файловой системы"
 
@@ -1701,15 +1783,15 @@ msgstr "Корень файловой системы"
 msgid "Authentication"
 msgstr "Проверка доступа"
 
-#: ../gtk/gtkprinteroptionwidget.c:686
+#: ../gtk/gtkprinteroptionwidget.c:692
 msgid "Not available"
 msgstr "Недоступно"
 
-#: ../gtk/gtkprinteroptionwidget.c:786
+#: ../gtk/gtkprinteroptionwidget.c:792
 msgid "Select a folder"
 msgstr "Выберите папку"
 
-#: ../gtk/gtkprinteroptionwidget.c:805
+#: ../gtk/gtkprinteroptionwidget.c:812
 msgid "_Save in folder:"
 msgstr "_Сохранить в папке:"
 
@@ -1807,7 +1889,7 @@ msgstr "Нет бумаги"
 
 #. Translators: this is a printer status.
 #: ../gtk/gtkprintoperation-win32.c:615
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2002
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2022
 msgid "Paused"
 msgstr "Приостановлено"
 
@@ -1852,49 +1934,49 @@ msgstr "Ошибочный дескриптор PrintDlgEx"
 msgid "Unspecified error"
 msgstr "Неуказанная ошибка"
 
-#: ../gtk/gtkprintunixdialog.c:618
+#: ../gtk/gtkprintunixdialog.c:688
 msgid "Getting printer information failed"
 msgstr "Не удалось получить информацию о принтере"
 
-#: ../gtk/gtkprintunixdialog.c:1873
+#: ../gtk/gtkprintunixdialog.c:1942
 msgid "Getting printer information..."
 msgstr "Получение информации о принтере..."
 
-#: ../gtk/gtkprintunixdialog.c:2147
+#: ../gtk/gtkprintunixdialog.c:2216
 msgid "Printer"
 msgstr "Принтер"
 
 #. Translators: this is the header for the location column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2157
+#: ../gtk/gtkprintunixdialog.c:2226
 msgid "Location"
 msgstr "Расположение"
 
 #. Translators: this is the header for the printer status column in the print dialog
-#: ../gtk/gtkprintunixdialog.c:2168
+#: ../gtk/gtkprintunixdialog.c:2237
 msgid "Status"
 msgstr "Состояние"
 
-#: ../gtk/gtkprintunixdialog.c:2194
+#: ../gtk/gtkprintunixdialog.c:2263
 msgid "Range"
 msgstr "Диапазон"
 
-#: ../gtk/gtkprintunixdialog.c:2198
+#: ../gtk/gtkprintunixdialog.c:2267
 msgid "_All Pages"
 msgstr "_Все страницы"
 
-#: ../gtk/gtkprintunixdialog.c:2205
+#: ../gtk/gtkprintunixdialog.c:2274
 msgid "C_urrent Page"
 msgstr "_Текущую страницу"
 
-#: ../gtk/gtkprintunixdialog.c:2215
+#: ../gtk/gtkprintunixdialog.c:2284
 msgid "Se_lection"
 msgstr "_Выделенное"
 
-#: ../gtk/gtkprintunixdialog.c:2224
+#: ../gtk/gtkprintunixdialog.c:2293
 msgid "Pag_es:"
 msgstr "Страни_цы:"
 
-#: ../gtk/gtkprintunixdialog.c:2225
+#: ../gtk/gtkprintunixdialog.c:2294
 msgid ""
 "Specify one or more page ranges,\n"
 " e.g. 1-3,7,11"
@@ -1902,28 +1984,28 @@ msgstr ""
 "Введите один или несколько диапазонов страниц,\n"
 "например, 1-3,7,11"
 
-#: ../gtk/gtkprintunixdialog.c:2235
+#: ../gtk/gtkprintunixdialog.c:2304
 msgid "Pages"
 msgstr "Страницы"
 
-#: ../gtk/gtkprintunixdialog.c:2248
+#: ../gtk/gtkprintunixdialog.c:2317
 msgid "Copies"
 msgstr "Копии"
 
 #. FIXME chpe: too much space between Copies and spinbutton, put those 2 in a hbox and make it span 2 columns
-#: ../gtk/gtkprintunixdialog.c:2253
+#: ../gtk/gtkprintunixdialog.c:2322
 msgid "Copie_s:"
 msgstr "_Копий:"
 
-#: ../gtk/gtkprintunixdialog.c:2271
+#: ../gtk/gtkprintunixdialog.c:2341
 msgid "C_ollate"
 msgstr "_Упорядочить"
 
-#: ../gtk/gtkprintunixdialog.c:2279
+#: ../gtk/gtkprintunixdialog.c:2349
 msgid "_Reverse"
 msgstr "_Наоборот"
 
-#: ../gtk/gtkprintunixdialog.c:2299
+#: ../gtk/gtkprintunixdialog.c:2369
 msgid "General"
 msgstr "Общие"
 
@@ -1933,168 +2015,168 @@ msgstr "Общие"
 #. Translators: These strings name the possible arrangements of
 #. * multiple pages on a sheet when printing
 #.
-#: ../gtk/gtkprintunixdialog.c:3039
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3535
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, top to bottom"
 msgstr "Слева направо, сверху вниз"
 
-#: ../gtk/gtkprintunixdialog.c:3039
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3535
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
 msgid "Left to right, bottom to top"
 msgstr "Слева направо, снизу вверх"
 
-#: ../gtk/gtkprintunixdialog.c:3040
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3536
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, top to bottom"
 msgstr "Справа налево, сверху вниз"
 
-#: ../gtk/gtkprintunixdialog.c:3040
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3536
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
 msgid "Right to left, bottom to top"
 msgstr "Справа налево, снизу вверх"
 
-#: ../gtk/gtkprintunixdialog.c:3041
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3537
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, left to right"
 msgstr "Сверху вниз, слева направо"
 
-#: ../gtk/gtkprintunixdialog.c:3041
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3537
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
 msgid "Top to bottom, right to left"
 msgstr "Сверху вниз, справа налево"
 
-#: ../gtk/gtkprintunixdialog.c:3042
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, left to right"
 msgstr "Снизу вверх, слева направо"
 
-#: ../gtk/gtkprintunixdialog.c:3042
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
 msgid "Bottom to top, right to left"
 msgstr "Снизу вверх, справа налево"
 
 #. Translators, this string is used to label the option in the print
 #. * dialog that controls in what order multiple pages are arranged
 #.
-#: ../gtk/gtkprintunixdialog.c:3046 ../gtk/gtkprintunixdialog.c:3059
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3570
+#: ../gtk/gtkprintunixdialog.c:3116 ../gtk/gtkprintunixdialog.c:3129
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3609
 msgid "Page Ordering"
 msgstr "Порядок страниц"
 
-#: ../gtk/gtkprintunixdialog.c:3075
+#: ../gtk/gtkprintunixdialog.c:3145
 msgid "Left to right"
 msgstr "Слева направо"
 
-#: ../gtk/gtkprintunixdialog.c:3076
+#: ../gtk/gtkprintunixdialog.c:3146
 msgid "Right to left"
 msgstr "Справа налево"
 
-#: ../gtk/gtkprintunixdialog.c:3088
+#: ../gtk/gtkprintunixdialog.c:3158
 msgid "Top to bottom"
 msgstr "Сверху вниз"
 
-#: ../gtk/gtkprintunixdialog.c:3089
+#: ../gtk/gtkprintunixdialog.c:3159
 msgid "Bottom to top"
 msgstr "Снизу вверх"
 
-#: ../gtk/gtkprintunixdialog.c:3329
+#: ../gtk/gtkprintunixdialog.c:3399
 msgid "Layout"
 msgstr "Размещение"
 
-#: ../gtk/gtkprintunixdialog.c:3333
+#: ../gtk/gtkprintunixdialog.c:3403
 msgid "T_wo-sided:"
 msgstr "Двухсторонняя:"
 
-#: ../gtk/gtkprintunixdialog.c:3348
+#: ../gtk/gtkprintunixdialog.c:3419
 msgid "Pages per _side:"
 msgstr "Страниц на _сторону:"
 
-#: ../gtk/gtkprintunixdialog.c:3365
+#: ../gtk/gtkprintunixdialog.c:3437
 msgid "Page or_dering:"
 msgstr "Порядок ст_раниц:"
 
-#: ../gtk/gtkprintunixdialog.c:3381
+#: ../gtk/gtkprintunixdialog.c:3454
 msgid "_Only print:"
 msgstr "Печатать т_олько:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3396
+#: ../gtk/gtkprintunixdialog.c:3470
 msgid "All sheets"
 msgstr "Все листы"
 
-#: ../gtk/gtkprintunixdialog.c:3397
+#: ../gtk/gtkprintunixdialog.c:3471
 msgid "Even sheets"
 msgstr "Чётные листы"
 
-#: ../gtk/gtkprintunixdialog.c:3398
+#: ../gtk/gtkprintunixdialog.c:3472
 msgid "Odd sheets"
 msgstr "Нечётные листы"
 
-#: ../gtk/gtkprintunixdialog.c:3401
+#: ../gtk/gtkprintunixdialog.c:3475
 msgid "Sc_ale:"
 msgstr "_Масштаб:"
 
-#: ../gtk/gtkprintunixdialog.c:3428
+#: ../gtk/gtkprintunixdialog.c:3503
 msgid "Paper"
 msgstr "Бумага"
 
-#: ../gtk/gtkprintunixdialog.c:3432
+#: ../gtk/gtkprintunixdialog.c:3507
 msgid "Paper _type:"
 msgstr "_Тип бумаги:"
 
-#: ../gtk/gtkprintunixdialog.c:3447
+#: ../gtk/gtkprintunixdialog.c:3523
 msgid "Paper _source:"
 msgstr "_Источник бумаги:"
 
-#: ../gtk/gtkprintunixdialog.c:3462
+#: ../gtk/gtkprintunixdialog.c:3539
 msgid "Output t_ray:"
 msgstr "Выходной лоток:"
 
-#: ../gtk/gtkprintunixdialog.c:3502
+#: ../gtk/gtkprintunixdialog.c:3581
 msgid "Or_ientation:"
 msgstr "_Ориентация:"
 
 #. In enum order
-#: ../gtk/gtkprintunixdialog.c:3517
+#: ../gtk/gtkprintunixdialog.c:3597
 msgid "Portrait"
 msgstr "Портретная"
 
-#: ../gtk/gtkprintunixdialog.c:3518
+#: ../gtk/gtkprintunixdialog.c:3598
 msgid "Landscape"
 msgstr "Ландшафтная"
 
-#: ../gtk/gtkprintunixdialog.c:3519
+#: ../gtk/gtkprintunixdialog.c:3599
 msgid "Reverse portrait"
 msgstr "Портретная развернутая"
 
-#: ../gtk/gtkprintunixdialog.c:3520
+#: ../gtk/gtkprintunixdialog.c:3600
 msgid "Reverse landscape"
 msgstr "Пейзажная обратная"
 
-#: ../gtk/gtkprintunixdialog.c:3565
+#: ../gtk/gtkprintunixdialog.c:3645
 msgid "Job Details"
 msgstr "Сведения о задании"
 
-#: ../gtk/gtkprintunixdialog.c:3571
+#: ../gtk/gtkprintunixdialog.c:3651
 msgid "Pri_ority:"
 msgstr "При_оритет:"
 
-#: ../gtk/gtkprintunixdialog.c:3586
+#: ../gtk/gtkprintunixdialog.c:3667
 msgid "_Billing info:"
 msgstr "_Расположение:"
 
-#: ../gtk/gtkprintunixdialog.c:3604
+#: ../gtk/gtkprintunixdialog.c:3686
 msgid "Print Document"
 msgstr "Печатать документ"
 
 #. Translators: this is one of the choices for the print at option
 #. * in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3613
+#: ../gtk/gtkprintunixdialog.c:3695
 msgid "_Now"
 msgstr "_Сейчас"
 
-#: ../gtk/gtkprintunixdialog.c:3624
+#: ../gtk/gtkprintunixdialog.c:3706
 msgid "A_t:"
 msgstr "_В:"
 
@@ -2102,7 +2184,7 @@ msgstr "_В:"
 #. * You can remove the am/pm values below for your locale if they are not
 #. * supported.
 #.
-#: ../gtk/gtkprintunixdialog.c:3630
+#: ../gtk/gtkprintunixdialog.c:3712
 msgid ""
 "Specify the time of print,\n"
 " e.g. 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"
@@ -2110,116 +2192,105 @@ msgstr ""
 "Задайте время печати,\n"
 " например, 15:30, 14:15:20, 7:20"
 
-#: ../gtk/gtkprintunixdialog.c:3640
+#: ../gtk/gtkprintunixdialog.c:3722
 msgid "Time of print"
 msgstr "Время печати"
 
-#: ../gtk/gtkprintunixdialog.c:3656
+#: ../gtk/gtkprintunixdialog.c:3738
 msgid "On _hold"
 msgstr "О_жидание"
 
-#: ../gtk/gtkprintunixdialog.c:3657
+#: ../gtk/gtkprintunixdialog.c:3739
 msgid "Hold the job until it is explicitly released"
 msgstr "Задержать задание до дополнительной команды"
 
-#: ../gtk/gtkprintunixdialog.c:3677
+#: ../gtk/gtkprintunixdialog.c:3759
 msgid "Add Cover Page"
 msgstr "Добавить титульный лист"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3686
+#: ../gtk/gtkprintunixdialog.c:3768
 msgid "Be_fore:"
 msgstr "_До:"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: ../gtk/gtkprintunixdialog.c:3704
+#: ../gtk/gtkprintunixdialog.c:3787
 msgid "_After:"
 msgstr "_После:"
 
 #. Translators: this is the tab label for the notebook tab containing
 #. * job-specific options in the print dialog
 #.
-#: ../gtk/gtkprintunixdialog.c:3722
+#: ../gtk/gtkprintunixdialog.c:3806
 msgid "Job"
 msgstr "Задание"
 
-#: ../gtk/gtkprintunixdialog.c:3788
+#: ../gtk/gtkprintunixdialog.c:3872
 msgid "Advanced"
 msgstr "Дополнительно"
 
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3826
+#: ../gtk/gtkprintunixdialog.c:3910
 msgid "Image Quality"
 msgstr "Качество изображения"
 
 #. Translators: this will appear as tab label in print dialog.
-#: ../gtk/gtkprintunixdialog.c:3830
+#: ../gtk/gtkprintunixdialog.c:3914
 msgid "Color"
 msgstr "Цвет"
 
 #. Translators: this will appear as tab label in print dialog.
 #. It's a typographical term, as in "Binding and finishing"
-#: ../gtk/gtkprintunixdialog.c:3835
+#: ../gtk/gtkprintunixdialog.c:3919
 msgid "Finishing"
 msgstr "Завершение"
 
-#: ../gtk/gtkprintunixdialog.c:3845
+#: ../gtk/gtkprintunixdialog.c:3929
 msgid "Some of the settings in the dialog conflict"
 msgstr "Некоторые параметры в диалоге конфликтуют"
 
-#: ../gtk/gtkprintunixdialog.c:3868
+#: ../gtk/gtkprintunixdialog.c:3952
 msgid "Print"
 msgstr "Печать"
 
-#: ../gtk/gtkrc.c:948
-#, c-format
-msgid "Unable to locate image file in pixmap_path: \"%s\""
-msgstr "Файл с изображением не найден в pixmap_path: «%s»"
-
-#: ../gtk/gtkrecentaction.c:165 ../gtk/gtkrecentaction.c:173
-#: ../gtk/gtkrecentchoosermenu.c:608 ../gtk/gtkrecentchoosermenu.c:616
-#, c-format
-msgid "This function is not implemented for widgets of class '%s'"
-msgstr "Эта функция не реализована для виджета класса «%s»"
-
-#: ../gtk/gtkrecentchooserdefault.c:483
+#: ../gtk/gtkrecentchooserdefault.c:485
 msgid "Select which type of documents are shown"
 msgstr "Выберите типы отображаемых документов"
 
-#: ../gtk/gtkrecentchooserdefault.c:1137 ../gtk/gtkrecentchooserdefault.c:1174
+#: ../gtk/gtkrecentchooserdefault.c:1142 ../gtk/gtkrecentchooserdefault.c:1179
 #, c-format
 msgid "No item for URI '%s' found"
 msgstr "Не найден элемент для URI «%s»"
 
-#: ../gtk/gtkrecentchooserdefault.c:1301
+#: ../gtk/gtkrecentchooserdefault.c:1306
 msgid "Untitled filter"
 msgstr "Неозаглавленный фильтр"
 
-#: ../gtk/gtkrecentchooserdefault.c:1654
+#: ../gtk/gtkrecentchooserdefault.c:1659
 msgid "Could not remove item"
 msgstr "Не удалось удалить элемент"
 
-#: ../gtk/gtkrecentchooserdefault.c:1698
+#: ../gtk/gtkrecentchooserdefault.c:1703
 msgid "Could not clear list"
 msgstr "Не удалось очистить список"
 
-#: ../gtk/gtkrecentchooserdefault.c:1782
+#: ../gtk/gtkrecentchooserdefault.c:1787
 msgid "Copy _Location"
 msgstr "Копировать _адрес"
 
-#: ../gtk/gtkrecentchooserdefault.c:1795
+#: ../gtk/gtkrecentchooserdefault.c:1800
 msgid "_Remove From List"
 msgstr "_Удалить из списка"
 
-#: ../gtk/gtkrecentchooserdefault.c:1804
+#: ../gtk/gtkrecentchooserdefault.c:1809
 msgid "_Clear List"
 msgstr "О_чистить список"
 
-#: ../gtk/gtkrecentchooserdefault.c:1818
+#: ../gtk/gtkrecentchooserdefault.c:1823
 msgid "Show _Private Resources"
 msgstr "_Показать личные ресурсы"
 
@@ -2271,30 +2342,21 @@ msgctxt "recent menu label"
 msgid "%d. %s"
 msgstr "%d. %s"
 
-#: ../gtk/gtkrecentmanager.c:1000 ../gtk/gtkrecentmanager.c:1013
-#: ../gtk/gtkrecentmanager.c:1150 ../gtk/gtkrecentmanager.c:1160
-#: ../gtk/gtkrecentmanager.c:1212 ../gtk/gtkrecentmanager.c:1221
-#: ../gtk/gtkrecentmanager.c:1236
+#: ../gtk/gtkrecentmanager.c:1006 ../gtk/gtkrecentmanager.c:1019
+#: ../gtk/gtkrecentmanager.c:1156 ../gtk/gtkrecentmanager.c:1166
+#: ../gtk/gtkrecentmanager.c:1218 ../gtk/gtkrecentmanager.c:1227
+#: ../gtk/gtkrecentmanager.c:1242
 #, c-format
 msgid "Unable to find an item with URI '%s'"
 msgstr "Не удалось найти элемент с URI «%s»"
 
-#: ../gtk/gtkrecentmanager.c:2436
+#: ../gtk/gtkrecentmanager.c:2442
 #, c-format
 msgid "No registered application with name '%s' for item with URI '%s' found"
 msgstr ""
 "Отсутствует зарегистрированное приложение с именем «%s» для элемента с "
 "найденным URI «%s»"
 
-#: ../gtk/gtkspinner.c:287
-msgctxt "throbbing progress animation widget"
-msgid "Spinner"
-msgstr "Вертушка"
-
-#: ../gtk/gtkspinner.c:288
-msgid "Provides visual indication of progress"
-msgstr "Наглядно отображает ход работы"
-
 #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
 #: ../gtk/gtkstock.c:313
 msgctxt "Stock label"
@@ -2803,7 +2865,7 @@ msgstr "У_меньшить"
 #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
 #. * the state
 #.
-#: ../gtk/gtkswitch.c:313 ../gtk/gtkswitch.c:362 ../gtk/gtkswitch.c:553
+#: ../gtk/gtkswitch.c:335 ../gtk/gtkswitch.c:395 ../gtk/gtkswitch.c:602
 msgctxt "switch"
 msgid "ON"
 msgstr "❙"
@@ -2811,20 +2873,11 @@ msgstr "❙"
 #. Translators: if the "off" state label requires more than three
 #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
 #.
-#: ../gtk/gtkswitch.c:321 ../gtk/gtkswitch.c:363 ../gtk/gtkswitch.c:569
+#: ../gtk/gtkswitch.c:343 ../gtk/gtkswitch.c:396 ../gtk/gtkswitch.c:631
 msgctxt "switch"
 msgid "OFF"
 msgstr "○"
 
-#: ../gtk/gtkswitch.c:995
-msgctxt "light switch widget"
-msgid "Switch"
-msgstr "Выключатель"
-
-#: ../gtk/gtkswitch.c:996
-msgid "Switches between on and off states"
-msgstr "Переключает между состояниями вкл и выкл"
-
 #: ../gtk/gtktextbufferrichtext.c:651
 #, c-format
 msgid "Unknown error when trying to deserialize %s"
@@ -2983,17 +3036,17 @@ msgstr "ZWJ Нулевой о_бъединитель"
 msgid "ZWNJ Zero width _non-joiner"
 msgstr "ZWNJ Нулевой ра_зъединитель"
 
-#: ../gtk/gtkuimanager.c:1506
+#: ../gtk/gtkuimanager.c:1760
 #, c-format
 msgid "Unexpected start tag '%s' on line %d char %d"
 msgstr "Начальный тег «%s» является непредвиденным (строка %d, символ %d)"
 
-#: ../gtk/gtkuimanager.c:1596
+#: ../gtk/gtkuimanager.c:1850
 #, c-format
 msgid "Unexpected character data on line %d char %d"
 msgstr "Непредвиденные символьные данные (строка %d, символ %d)"
 
-#: ../gtk/gtkuimanager.c:2428
+#: ../gtk/gtkuimanager.c:2682
 msgid "Empty"
 msgstr "Пусто"
 
@@ -3864,11 +3917,6 @@ msgctxt "paper size"
 msgid "ROC 8k"
 msgstr "ROC 8k"
 
-#: ../gtk/updateiconcache.c:492 ../gtk/updateiconcache.c:552
-#, c-format
-msgid "different idatas found for symlinked '%s' and '%s'\n"
-msgstr "различные идентификаторы найдены в связанных ссылкой '%s' и '%s'\n"
-
 #: ../gtk/updateiconcache.c:1370
 #, c-format
 msgid "Failed to write header\n"
@@ -4028,258 +4076,258 @@ msgstr "Вьетнамский (VIQR)"
 msgid "X Input Method"
 msgstr "Метод X Input"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:814
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1024
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:828
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1038
 msgid "Username:"
 msgstr "Имя пользователя:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:815
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1033
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:829
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1047
 msgid "Password:"
 msgstr "Пароль:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:854
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1046
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1060
 #, c-format
 msgid "Authentication is required to print document '%s' on printer %s"
 msgstr ""
 "Для печати документа %s на принтере %s требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:856
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:870
 #, c-format
 msgid "Authentication is required to print a document on %s"
 msgstr "Для печати документа на принтере %s требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:860
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
 #, c-format
 msgid "Authentication is required to get attributes of job '%s'"
 msgstr "Для получения параметров задания %s требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:862
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:876
 msgid "Authentication is required to get attributes of a job"
 msgstr "Для получения параметров задания требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:866
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:880
 #, c-format
 msgid "Authentication is required to get attributes of printer %s"
 msgstr "Для получения параметров принтера %s требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:882
 msgid "Authentication is required to get attributes of a printer"
 msgstr "Для получения параметров принтера требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:871
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:885
 #, c-format
 msgid "Authentication is required to get default printer of %s"
 msgstr ""
 "Для получения принтера по умолчанию на %s требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:888
 #, c-format
 msgid "Authentication is required to get printers from %s"
 msgstr "Для получения списка принтеров от %s требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:879
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:893
 #, c-format
 msgid "Authentication is required to get a file from %s"
 msgstr "Для получения файла из %s требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:881
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:895
 #, c-format
 msgid "Authentication is required on %s"
 msgstr "Для доступа к %s нужно ввести пароль"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1018
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1032
 msgid "Domain:"
 msgstr "Домен:"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1048
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1062
 #, c-format
 msgid "Authentication is required to print document '%s'"
 msgstr ""
 "Для печати документа на принтере '%s' требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1053
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1067
 #, c-format
 msgid "Authentication is required to print this document on printer %s"
 msgstr "Для печати документа на принтере %s требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1055
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1069
 msgid "Authentication is required to print this document"
 msgstr ""
 "Для печати этого документа на принтере требуется проверить права доступа"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1676
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
 #, c-format
 msgid "Printer '%s' is low on toner."
 msgstr "В принтере «%s» кончается тонер."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1677
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
 #, c-format
 msgid "Printer '%s' has no toner left."
 msgstr "В принтере «%s» кончился тонер."
 
 #. Translators: "Developer" like on photo development context
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1679
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1693
 #, c-format
 msgid "Printer '%s' is low on developer."
 msgstr "В принтере «%s» кончается проявитель."
 
 #. Translators: "Developer" like on photo development context
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1681
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1695
 #, c-format
 msgid "Printer '%s' is out of developer."
 msgstr "В принтере «%s» кончился проявитель."
 
 #. Translators: "marker" is one color bin of the printer
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1683
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1697
 #, c-format
 msgid "Printer '%s' is low on at least one marker supply."
 msgstr "В принтере «%s» кончается один из тонеров."
 
 #. Translators: "marker" is one color bin of the printer
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1685
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1699
 #, c-format
 msgid "Printer '%s' is out of at least one marker supply."
 msgstr "В принтере «%s» кончился один из тонеров."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1686
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1700
 #, c-format
 msgid "The cover is open on printer '%s'."
 msgstr "В принтере «%s» открыта крышка."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1687
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1701
 #, c-format
 msgid "The door is open on printer '%s'."
 msgstr "В принтере «%s» открыта дверца."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1688
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1702
 #, c-format
 msgid "Printer '%s' is low on paper."
 msgstr "В принтере «%s» кончается бумага."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1689
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1703
 #, c-format
 msgid "Printer '%s' is out of paper."
 msgstr "В принтере «%s» кончилась бумага."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1704
 #, c-format
 msgid "Printer '%s' is currently offline."
 msgstr "Принтер «%s» в данный момент отключён."
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1705
 #, c-format
 msgid "There is a problem on printer '%s'."
 msgstr "Проблема с принтером «%s»."
 
 #. Translators: this is a printer status.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1999
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2019
 msgid "Paused ; Rejecting Jobs"
 msgstr "Приостановлено ; отмена заданий"
 
 #. Translators: this is a printer status.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2005
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2025
 msgid "Rejecting Jobs"
 msgstr "Отмена заданий"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2778
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798
 msgid "Two Sided"
 msgstr "С двух сторон"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2779
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2799
 msgid "Paper Type"
 msgstr "Тип бумаги"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2780
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800
 msgid "Paper Source"
 msgstr "Источник бумаги"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2781
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2801
 msgid "Output Tray"
 msgstr "Лоток вывода"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2782
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
 msgid "Resolution"
 msgstr "Разрешение"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2783
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2803
 msgid "GhostScript pre-filtering"
 msgstr "Фильтрация GhostScript"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2792
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812
 msgid "One Sided"
 msgstr "С одной стороны"
 
 #. Translators: this is an option of "Two Sided"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2794
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814
 msgid "Long Edge (Standard)"
 msgstr "По длинной стороне"
 
 #. Translators: this is an option of "Two Sided"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2796
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816
 msgid "Short Edge (Flip)"
 msgstr "По короткой стороне"
 
 #. Translators: this is an option of "Paper Source"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2808
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2820
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2828
 msgid "Auto Select"
 msgstr "Автовыбор"
 
 #. Translators: this is an option of "Paper Source"
 #. Translators: this is an option of "Resolution"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2804
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2806
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2810
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3306
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2822
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2824
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2826
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2830
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3326
 msgid "Printer Default"
 msgstr "Умолчания принтера"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2832
 msgid "Embed GhostScript fonts only"
 msgstr "Встраивать только шрифты GhostScript"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2834
 msgid "Convert to PS level 1"
 msgstr "Преобразовать в формат PS уровень 1"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2836
 msgid "Convert to PS level 2"
 msgstr "Преобразовать в формат PS уровень 2"
 
 #. Translators: this is an option of "GhostScript"
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2838
 msgid "No pre-filtering"
 msgstr "Не фильтровать перед печатью"
 
 #. Translators: "Miscellaneous" is the label for a button, that opens
 #. up an extra panel of settings in a print dialog.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2827
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2847
 msgid "Miscellaneous"
 msgstr "Дополнительно"
 
 #. Translators: These strings name the possible values of the
 #. * job priority option in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Urgent"
 msgstr "Срочно"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "High"
 msgstr "Высокий"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Medium"
 msgstr "Средний"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
 msgid "Low"
 msgstr "Низкий"
 
@@ -4287,66 +4335,66 @@ msgstr "Низкий"
 #. Translators, this string is used to label the pages-per-sheet option
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3554
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3593
 msgid "Pages per Sheet"
 msgstr "Страниц на лист"
 
 #. Translators, this string is used to label the job priority option
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3591
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3630
 msgid "Job Priority"
 msgstr "Приоритет"
 
 #. Translators, this string is used to label the billing info entry
 #. * in the print dialog
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3602
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3641
 msgid "Billing Info"
 msgstr "Расположение"
 
 #. Translators, these strings are names for various 'standard' cover
 #. * pages that the printing system may support.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "None"
 msgstr "Нет"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Classified"
 msgstr "Классифицировано"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Confidential"
 msgstr "Конфиденциально"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Secret"
 msgstr "Секретно"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Standard"
 msgstr "Стандарт"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Top Secret"
 msgstr "Совершенно секретно"
 
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
 msgid "Unclassified"
 msgstr "Не классифицировано"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the front cover page.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3652
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3691
 msgid "Before"
 msgstr "До"
 
 #. Translators, this is the label used for the option in the print
 #. * dialog that controls the back cover page.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3667
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3706
 msgid "After"
 msgstr "После"
 
@@ -4354,14 +4402,14 @@ msgstr "После"
 #. * a print job is printed. Possible values are 'now', a specified time,
 #. * or 'on hold'
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3726
 msgid "Print at"
 msgstr "Время"
 
 #. Translators: this is the name of the option that allows the user
 #. * to specify a time when a print job will be printed.
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3698
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
 msgid "Print at time"
 msgstr "Время начала печати"
 
@@ -4369,11 +4417,36 @@ msgstr "Время начала печати"
 #. * size. The two placeholders are replaced with the width and height
 #. * in points. E.g: "Custom 230.4x142.9"
 #.
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3733
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772
 #, c-format
 msgid "Custom %sx%s"
 msgstr "Особый %sx%s"
 
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3853
+msgid "Printer Profile"
+msgstr "Профиль принтера"
+
+#. TRANSLATORS: this is when color profile information is unavailable
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860
+msgid "Unavailable"
+msgstr "Недоступно"
+
+#. TRANSLATORS: when we're running an old CUPS, and
+#. * it hasn't registered the device with colord
+#: ../modules/printbackends/cups/gtkprintercups.c:222
+msgid "Color management unavailable"
+msgstr "Управление цветом недоступно"
+
+#. TRANSLATORS: when there is no color profile available
+#: ../modules/printbackends/cups/gtkprintercups.c:234
+msgid "No profile available"
+msgstr "Профиль недоступен"
+
+#. TRANSLATORS: when the color profile has no title
+#: ../modules/printbackends/cups/gtkprintercups.c:245
+msgid "Unspecified profile"
+msgstr "Профиль не задан"
+
 #. default filename used for print-to-file
 #: ../modules/printbackends/file/gtkprintbackendfile.c:250
 #, c-format
index decf358265c1f00baf29c5fac2d6626f28945eef..72a13aee938d1759c783d432ceaab46883b5788b 100644 (file)
--- a/po/sl.po
+++ b/po/sl.po
@@ -11,14 +11,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: gtk+ master\n"
 "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%2b&keywords=I18N+L10N&component=general\n"
-"POT-Creation-Date: 2011-06-14 02:37+0000\n"
-"PO-Revision-Date: 2011-06-14 08:48+0100\n"
+"POT-Creation-Date: 2011-07-19 11:22+0000\n"
+"PO-Revision-Date: 2011-07-19 21:55+0100\n"
 "Last-Translator: Matej Urbančič <mateju@svn.gnome.org>\n"
 "Language-Team: Slovenian GNOME Translation Team <gnome-si@googlegroups.com>\n"
+"Language: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Language: \n"
 "Plural-Forms: nplurals=4; plural=(n%100==1 ? 1 : n%100==2 ? 2 : n%100==3 || n%100==4 ? 3 : 0);\n"
 "X-Poedit-Country: SLOVENIA\n"
 "X-Poedit-SourceCharset: iso-8859-1\n"
@@ -75,8 +75,8 @@ msgstr "Zastavice razhroščevanja GDK, ki naj bodo nastavljene"
 #. Placeholder in --gtk-no-debug=FLAGS in --help output
 #: ../gdk/gdk.c:194
 #: ../gdk/gdk.c:197
-#: ../gtk/gtkmain.c:570
-#: ../gtk/gtkmain.c:573
+#: ../gtk/gtkmain.c:569
+#: ../gtk/gtkmain.c:572
 msgid "FLAGS"
 msgstr "ZASTAVICE"
 
@@ -462,6 +462,24 @@ msgstr[1] "Odpiranje %d predmeta"
 msgstr[2] "Odpiranje %d predmetov"
 msgstr[3] "Odpiranje %d predmetov"
 
+#: ../gtk/a11y/gtkspinneraccessible.c:42
+msgctxt "throbbing progress animation widget"
+msgid "Spinner"
+msgstr "Vrtavka"
+
+#: ../gtk/a11y/gtkspinneraccessible.c:43
+msgid "Provides visual indication of progress"
+msgstr "Omogoča grafični prikaz napredka"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:65
+msgctxt "light switch widget"
+msgid "Switch"
+msgstr "Preklopi"
+
+#: ../gtk/a11y/gtkswitchaccessible.c:66
+msgid "Switches between on and off states"
+msgstr "Preklaplja med stanji 'vključeno' in 'izključeno'"
+
 #. Translators: this is the license preamble; the string at the end
 #. * contains the URL of the license.
 #.
@@ -522,7 +540,7 @@ msgstr "Grafična podoba:"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:156
+#: ../gtk/gtkaccellabel.c:158
 msgctxt "keyboard label"
 msgid "Shift"
 msgstr "Shift"
@@ -532,7 +550,7 @@ msgstr "Shift"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:162
+#: ../gtk/gtkaccellabel.c:164
 msgctxt "keyboard label"
 msgid "Ctrl"
 msgstr "Ctrl"
@@ -542,7 +560,7 @@ msgstr "Ctrl"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:168
+#: ../gtk/gtkaccellabel.c:170
 msgctxt "keyboard label"
 msgid "Alt"
 msgstr "Alt"
@@ -552,7 +570,7 @@ msgstr "Alt"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:787
+#: ../gtk/gtkaccellabel.c:789
 msgctxt "keyboard label"
 msgid "Super"
 msgstr "Super"
@@ -562,7 +580,7 @@ msgstr "Super"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:800
+#: ../gtk/gtkaccellabel.c:802
 msgctxt "keyboard label"
 msgid "Hyper"
 msgstr "Hiper"
@@ -572,17 +590,17 @@ msgstr "Hiper"
 #. * translated on keyboards used for your language, don't translate
 #. * this.
 #.
-#: ../gtk/gtkaccellabel.c:814
+#: ../gtk/gtkaccellabel.c:816
 msgctxt "keyboard label"
 msgid "Meta"
 msgstr "Meta"
 
-#: ../gtk/gtkaccellabel.c:830
+#: ../gtk/gtkaccellabel.c:832
 msgctxt "keyboard label"
 msgid "Space"
 msgstr "Preslednica"
 
-#: ../gtk/gtkaccellabel.c:833
+#: ../gtk/gtkaccellabel.c:835
 msgctxt "keyboard label"
 msgid "Backslash"
 msgstr "Leva poševnica"
@@ -667,15 +685,15 @@ msgstr "Sorodni programi"
 msgid "Other Applications"
 msgstr "Drugi programi"
 
-#: ../gtk/gtkassistant.c:919
+#: ../gtk/gtkassistant.c:999
 msgid "C_ontinue"
 msgstr "_Nadaljuj"
 
-#: ../gtk/gtkassistant.c:922
+#: ../gtk/gtkassistant.c:1002
 msgid "Go _Back"
 msgstr "Vrni _nazaj"
 
-#: ../gtk/gtkassistant.c:926
+#: ../gtk/gtkassistant.c:1006
 msgid "_Finish"
 msgstr "_Končaj"
 
@@ -709,7 +727,7 @@ msgstr "Neobravnavana oznaka: '%s'"
 #. * text direction of RTL and specify "calendar:YM", then the year
 #. * will appear to the right of the month.
 #.
-#: ../gtk/gtkcalendar.c:870
+#: ../gtk/gtkcalendar.c:873
 msgid "calendar:MY"
 msgstr "calendar:MY"
 
@@ -717,7 +735,7 @@ msgstr "calendar:MY"
 #. * first day of the week to calendar:week_start:1 if you want Monday
 #. * to be the first day of the week, and so on.
 #.
-#: ../gtk/gtkcalendar.c:908
+#: ../gtk/gtkcalendar.c:911
 msgid "calendar:week_start:0"
 msgstr "calendar:week_start:0"
 
@@ -726,7 +744,7 @@ msgstr "calendar:week_start:0"
 #. *
 #. * If you don't understand this, leave it as "2000"
 #.
-#: ../gtk/gtkcalendar.c:1909
+#: ../gtk/gtkcalendar.c:1912
 msgctxt "year measurement template"
 msgid "2000"
 msgstr "2000"
@@ -741,8 +759,8 @@ msgstr "2000"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1940
-#: ../gtk/gtkcalendar.c:2637
+#: ../gtk/gtkcalendar.c:1943
+#: ../gtk/gtkcalendar.c:2640
 #, c-format
 msgctxt "calendar:day:digits"
 msgid "%d"
@@ -758,8 +776,8 @@ msgstr "%d"
 #. * digits. That needs support from your system and locale definition
 #. * too.
 #.
-#: ../gtk/gtkcalendar.c:1972
-#: ../gtk/gtkcalendar.c:2498
+#: ../gtk/gtkcalendar.c:1975
+#: ../gtk/gtkcalendar.c:2501
 #, c-format
 msgctxt "calendar:week:digits"
 msgid "%d"
@@ -775,7 +793,7 @@ msgstr "%d"
 #. *
 #. * "%Y" is appropriate for most locales.
 #.
-#: ../gtk/gtkcalendar.c:2267
+#: ../gtk/gtkcalendar.c:2270
 msgctxt "calendar year format"
 msgid "%Y"
 msgstr "%Y"
@@ -818,112 +836,112 @@ msgstr "%d %%"
 msgid "Pick a Color"
 msgstr "Izberite barvo"
 
-#: ../gtk/gtkcolorsel.c:417
+#: ../gtk/gtkcolorsel.c:416
 msgid "Select the color you want from the outer ring. Select the darkness or lightness of that color using the inner triangle."
 msgstr "Iz zunanjega obroča izberite željeno barvo. Izberite temnost ali svetlost te barve z uporabno notranjega trikotnika."
 
-#: ../gtk/gtkcolorsel.c:443
+#: ../gtk/gtkcolorsel.c:442
 msgid "Click the eyedropper, then click a color anywhere on your screen to select that color."
 msgstr "Kliknite na kapalko, nato kjerkoli na zaslon za izbiro tiste barve."
 
-#: ../gtk/gtkcolorsel.c:453
+#: ../gtk/gtkcolorsel.c:452
 msgid "_Hue:"
 msgstr "_Odtenek:"
 
-#: ../gtk/gtkcolorsel.c:454
+#: ../gtk/gtkcolorsel.c:453
 msgid "Position on the color wheel."
 msgstr "Položaj na barvnem krogu."
 
-#: ../gtk/gtkcolorsel.c:456
+#: ../gtk/gtkcolorsel.c:455
 msgid "_Saturation:"
 msgstr "_Nasičenost:"
 
-#: ../gtk/gtkcolorsel.c:457
+#: ../gtk/gtkcolorsel.c:456
 msgid "Intensity of the color."
 msgstr "Jakost barve."
 
-#: ../gtk/gtkcolorsel.c:458
+#: ../gtk/gtkcolorsel.c:457
 msgid "_Value:"
 msgstr "_Vrednost:"
 
-#: ../gtk/gtkcolorsel.c:459
+#: ../gtk/gtkcolorsel.c:458
 msgid "Brightness of the color."
 msgstr "Svetlost barve."
 
-#: ../gtk/gtkcolorsel.c:460
+#: ../gtk/gtkcolorsel.c:459
 msgid "_Red:"
 msgstr "_Rdeča:"
 
-#: ../gtk/gtkcolorsel.c:461
+#: ../gtk/gtkcolorsel.c:460
 msgid "Amount of red light in the color."
 msgstr "Količina rdeče luči v barvi."
 
-#: ../gtk/gtkcolorsel.c:462
+#: ../gtk/gtkcolorsel.c:461
 msgid "_Green:"
 msgstr "_Zelena:"
 
-#: ../gtk/gtkcolorsel.c:463
+#: ../gtk/gtkcolorsel.c:462
 msgid "Amount of green light in the color."
 msgstr "Količina zelene luči v barvi."
 
-#: ../gtk/gtkcolorsel.c:464
+#: ../gtk/gtkcolorsel.c:463
 msgid "_Blue:"
 msgstr "_Modra:"
 
-#: ../gtk/gtkcolorsel.c:465
+#: ../gtk/gtkcolorsel.c:464
 msgid "Amount of blue light in the color."
 msgstr "Količina modre luči v barvi."
 
-#: ../gtk/gtkcolorsel.c:468
+#: ../gtk/gtkcolorsel.c:467
 msgid "Op_acity:"
 msgstr "_Prosojnost:"
 
-#: ../gtk/gtkcolorsel.c:476
-#: ../gtk/gtkcolorsel.c:486
+#: ../gtk/gtkcolorsel.c:475
+#: ../gtk/gtkcolorsel.c:485
 msgid "Transparency of the color."
 msgstr "Prosojnost barve."
 
-#: ../gtk/gtkcolorsel.c:493
+#: ../gtk/gtkcolorsel.c:492
 msgid "Color _name:"
 msgstr "_Ime barve:"
 
-#: ../gtk/gtkcolorsel.c:508
+#: ../gtk/gtkcolorsel.c:507
 msgid "You can enter an HTML-style hexadecimal color value, or simply a color name such as 'orange' in this entry."
 msgstr "V tem vnosu lahko vpišete šestnajstiško vrednost barve (kot v HTML) ali enostavno ime barve (na primer 'orange')."
 
-#: ../gtk/gtkcolorsel.c:540
+#: ../gtk/gtkcolorsel.c:539
 msgid "_Palette:"
 msgstr "_Paleta:"
 
-#: ../gtk/gtkcolorsel.c:570
+#: ../gtk/gtkcolorsel.c:569
 msgid "Color Wheel"
 msgstr "Barvni krog"
 
-#: ../gtk/gtkcolorsel.c:1043
+#: ../gtk/gtkcolorsel.c:1042
 msgid "The previously-selected color, for comparison to the color you're selecting now. You can drag this color to a palette entry, or select this color as current by dragging it to the other color swatch alongside."
 msgstr "Predhodno izbrana barva za primerjavo s trenutno izbrano barvo. To barvo lahko povlečete do vnosa v paleti ali jo izberete barvo kot trenutno z vlečenjem na drug vzorec."
 
-#: ../gtk/gtkcolorsel.c:1049
+#: ../gtk/gtkcolorsel.c:1048
 msgid "The color you've chosen. You can drag this color to a palette entry to save it for use in the future."
 msgstr "Trenutno izbrana barva. To barvo lahko povlečete do vnosa v paleti za kasnejšo uporabo."
 
-#: ../gtk/gtkcolorsel.c:1055
+#: ../gtk/gtkcolorsel.c:1054
 msgid "The previously-selected color, for comparison to the color you're selecting now."
 msgstr "Predhodno izbrana barva za primerjavo s trenutno izbrano barvo."
 
-#: ../gtk/gtkcolorsel.c:1059
+#: ../gtk/gtkcolorsel.c:1058
 msgid "The color you've chosen."
 msgstr "Izbrana barva."
 
-#: ../gtk/gtkcolorsel.c:1461
+#: ../gtk/gtkcolorsel.c:1460
 msgid "_Save color here"
 msgstr "_Shrani barvo sem"
 
-#: ../gtk/gtkcolorsel.c:1666
+#: ../gtk/gtkcolorsel.c:1665
 msgid "Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select \"Save color here.\""
 msgstr "Kliknite na ta vnos palete, da postane trenutna barva. Za spremembo tega vnosa potegnite sem drugo barvo ali kliknite z desnim gumbom in izberite \"Shrani barvo sem.\""
 
-#: ../gtk/gtkcolorseldialog.c:213
+#: ../gtk/gtkcolorseldialog.c:217
 msgid "Color Selection"
 msgstr "Izbira barve"
 
@@ -994,25 +1012,25 @@ msgstr "_Desno:"
 msgid "Paper Margins"
 msgstr "Robovi papirja"
 
-#: ../gtk/gtkentry.c:8928
-#: ../gtk/gtktextview.c:8272
+#: ../gtk/gtkentry.c:8949
+#: ../gtk/gtktextview.c:8277
 msgid "Input _Methods"
 msgstr "Načini _vnosa"
 
-#: ../gtk/gtkentry.c:8942
-#: ../gtk/gtktextview.c:8286
+#: ../gtk/gtkentry.c:8963
+#: ../gtk/gtktextview.c:8291
 msgid "_Insert Unicode Control Character"
 msgstr "_Vstavi nadzorni znak Unicode"
 
-#: ../gtk/gtkentry.c:10413
+#: ../gtk/gtkentry.c:10434
 msgid "Caps Lock and Num Lock are on"
 msgstr "Tipki Caps Lock in Num Lock sta vključeni"
 
-#: ../gtk/gtkentry.c:10415
+#: ../gtk/gtkentry.c:10436
 msgid "Num Lock is on"
 msgstr "Tipka Num Lock je vključena"
 
-#: ../gtk/gtkentry.c:10417
+#: ../gtk/gtkentry.c:10438
 msgid "Caps Lock is on"
 msgstr "Tipka Caps Lock je vključena"
 
@@ -1062,7 +1080,7 @@ msgid "Select a File"
 msgstr "Izberite datoteko"
 
 #: ../gtk/gtkfilechooserbutton.c:106
-#: ../gtk/gtkfilechooserdefault.c:1871
+#: ../gtk/gtkfilechooserdefault.c:1811
 msgid "Desktop"
 msgstr "Namizje"
 
@@ -1074,48 +1092,48 @@ msgstr "(Brez)"
 msgid "Other..."
 msgstr "Drugo ..."
 
-#: ../gtk/gtkfilechooserdefault.c:147
+#: ../gtk/gtkfilechooserdefault.c:148
 msgid "Type name of new folder"
 msgstr "Vnesite ime nove mape"
 
-#: ../gtk/gtkfilechooserdefault.c:965
+#: ../gtk/gtkfilechooserdefault.c:962
 msgid "Could not retrieve information about the file"
 msgstr "Podatkov o datoteki ni mogoče pridobiti"
 
-#: ../gtk/gtkfilechooserdefault.c:976
+#: ../gtk/gtkfilechooserdefault.c:973
 msgid "Could not add a bookmark"
 msgstr "Zaznamka ni mogoče dodati"
 
-#: ../gtk/gtkfilechooserdefault.c:987
+#: ../gtk/gtkfilechooserdefault.c:984
 msgid "Could not remove bookmark"
 msgstr "Zaznamka ni mogoče odstraniti"
 
-#: ../gtk/gtkfilechooserdefault.c:998
+#: ../gtk/gtkfilechooserdefault.c:995
 msgid "The folder could not be created"
 msgstr "Mape ni mogoče ustvariti"
 
-#: ../gtk/gtkfilechooserdefault.c:1011
+#: ../gtk/gtkfilechooserdefault.c:1008
 msgid "The folder could not be created, as a file with the same name already exists.  Try using a different name for the folder, or rename the file first."
 msgstr "Mape ni mogoče ustvariti, saj že obstaja datoteka z enakim imenom. Uporabite drugo ime ali pa najprej preimenujte datoteko."
 
-#: ../gtk/gtkfilechooserdefault.c:1025
+#: ../gtk/gtkfilechooserdefault.c:1022
 msgid "You need to choose a valid filename."
 msgstr "Izbrati morate veljavno ime datoteke."
 
-#: ../gtk/gtkfilechooserdefault.c:1028
+#: ../gtk/gtkfilechooserdefault.c:1025
 #, c-format
 msgid "Cannot create a file under %s as it is not a folder"
 msgstr "Datoteke pod %s ni mogoče ustvariti, ker ni mapa"
 
-#: ../gtk/gtkfilechooserdefault.c:1040
+#: ../gtk/gtkfilechooserdefault.c:1037
 msgid "You may only select folders.  The item that you selected is not a folder; try using a different item."
 msgstr "Izbrati je mogoče le mape, kar pa izbran predmet ni. Izberite drug predmet."
 
-#: ../gtk/gtkfilechooserdefault.c:1050
+#: ../gtk/gtkfilechooserdefault.c:1047
 msgid "Invalid file name"
 msgstr "Neveljavno ime datoteke"
 
-#: ../gtk/gtkfilechooserdefault.c:1060
+#: ../gtk/gtkfilechooserdefault.c:1057
 msgid "The folder contents could not be displayed"
 msgstr "Vsebine mape ni mogoče prikazati"
 
@@ -1123,212 +1141,216 @@ msgstr "Vsebine mape ni mogoče prikazati"
 #. * is a hostname. Nautilus and the panel contain the same string
 #. * to translate.
 #.
-#: ../gtk/gtkfilechooserdefault.c:1614
+#: ../gtk/gtkfilechooserdefault.c:1583
 #, c-format
 msgid "%1$s on %2$s"
 msgstr "%1$s na %2$s"
 
-#: ../gtk/gtkfilechooserdefault.c:1790
+#: ../gtk/gtkfilechooserdefault.c:1732
 msgid "Search"
 msgstr "Poišči"
 
-#: ../gtk/gtkfilechooserdefault.c:1814
-#: ../gtk/gtkfilechooserdefault.c:9539
+#: ../gtk/gtkfilechooserdefault.c:1756
+#: ../gtk/gtkfilechooserdefault.c:4873
 msgid "Recently Used"
 msgstr "Nedavno uporabljeno"
 
-#: ../gtk/gtkfilechooserdefault.c:2470
+#: ../gtk/gtkfilechooserdefault.c:2355
 msgid "Select which types of files are shown"
 msgstr "Izberite, katere vrste datotek naj bodo prikazane"
 
-#: ../gtk/gtkfilechooserdefault.c:2829
+#: ../gtk/gtkfilechooserdefault.c:2714
 #, c-format
 msgid "Add the folder '%s' to the bookmarks"
 msgstr "Dodaj mapo '%s' med zaznamke"
 
-#: ../gtk/gtkfilechooserdefault.c:2873
+#: ../gtk/gtkfilechooserdefault.c:2758
 #, c-format
 msgid "Add the current folder to the bookmarks"
 msgstr "Dodaj trenutno mapo med zaznamke"
 
-#: ../gtk/gtkfilechooserdefault.c:2875
+#: ../gtk/gtkfilechooserdefault.c:2760
 #, c-format
 msgid "Add the selected folders to the bookmarks"
 msgstr "Dodaj izbrane mape med zaznamke"
 
-#: ../gtk/gtkfilechooserdefault.c:2913
+#: ../gtk/gtkfilechooserdefault.c:2798
 #, c-format
 msgid "Remove the bookmark '%s'"
 msgstr "Odstrani zaznamek '%s'"
 
-#: ../gtk/gtkfilechooserdefault.c:2915
+#: ../gtk/gtkfilechooserdefault.c:2800
 #, c-format
 msgid "Bookmark '%s' cannot be removed"
 msgstr "Zaznamka '%s' ni mogoče odstraniti"
 
-#: ../gtk/gtkfilechooserdefault.c:2922
-#: ../gtk/gtkfilechooserdefault.c:3807
+#: ../gtk/gtkfilechooserdefault.c:2807
+#: ../gtk/gtkfilechooserdefault.c:3692
 msgid "Remove the selected bookmark"
 msgstr "Odstrani izbrani zaznamek"
 
-#: ../gtk/gtkfilechooserdefault.c:3486
+#: ../gtk/gtkfilechooserdefault.c:3371
 msgid "Remove"
 msgstr "Odstrani"
 
-#: ../gtk/gtkfilechooserdefault.c:3495
+#: ../gtk/gtkfilechooserdefault.c:3380
 msgid "Rename..."
 msgstr "Preimenuj ..."
 
 #. Accessible object name for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3659
+#: ../gtk/gtkfilechooserdefault.c:3544
 msgid "Places"
 msgstr "Mesta"
 
 #. Column header for the file chooser's shortcuts pane
-#: ../gtk/gtkfilechooserdefault.c:3716
+#: ../gtk/gtkfilechooserdefault.c:3601
 msgid "_Places"
 msgstr "_Mesta"
 
-#: ../gtk/gtkfilechooserdefault.c:3795
+#: ../gtk/gtkfilechooserdefault.c:3680
 msgid "Add the selected folder to the Bookmarks"
 msgstr "Dodaj izbrano mapo med zaznamke"
 
-#: ../gtk/gtkfilechooserdefault.c:3942
+#: ../gtk/gtkfilechooserdefault.c:3827
 msgid "Could not select file"
 msgstr "Datoteke ni mogoče izbrati"
 
-#: ../gtk/gtkfilechooserdefault.c:4115
+#: ../gtk/gtkfilechooserdefault.c:4000
 msgid "_Add to Bookmarks"
 msgstr "_Dodaj med zaznamke"
 
-#: ../gtk/gtkfilechooserdefault.c:4128
+#: ../gtk/gtkfilechooserdefault.c:4013
 msgid "Show _Hidden Files"
 msgstr "Pokaži _skrite datoteke"
 
-#: ../gtk/gtkfilechooserdefault.c:4135
+#: ../gtk/gtkfilechooserdefault.c:4020
 msgid "Show _Size Column"
 msgstr "Pokaži stolpec _velikosti"
 
-#: ../gtk/gtkfilechooserdefault.c:4360
+#: ../gtk/gtkfilechooserdefault.c:4245
 msgid "Files"
 msgstr "Datoteke"
 
-#: ../gtk/gtkfilechooserdefault.c:4411
+#: ../gtk/gtkfilechooserdefault.c:4296
 msgid "Name"
 msgstr "Ime"
 
-#: ../gtk/gtkfilechooserdefault.c:4434
+#: ../gtk/gtkfilechooserdefault.c:4319
 msgid "Size"
 msgstr "Velikost"
 
-#: ../gtk/gtkfilechooserdefault.c:4448
+#: ../gtk/gtkfilechooserdefault.c:4333
 msgid "Modified"
 msgstr "Spremenjeno"
 
 #. Label
-#: ../gtk/gtkfilechooserdefault.c:4702
+#: ../gtk/gtkfilechooserdefault.c:4414
 #: ../gtk/gtkprinteroptionwidget.c:799
 msgid "_Name:"
 msgstr "_Ime:"
 
-#. Expander
-#: ../gtk/gtkfilechooserdefault.c:4745
-msgid "_Browse for other folders"
-msgstr "_Brskaj za drugimi mapami"
-
-#: ../gtk/gtkfilechooserdefault.c:5018
+#: ../gtk/gtkfilechooserdefault.c:4711
 msgid "Type a file name"
 msgstr "Vnesite ime datoteke"
 
+#: ../gtk/gtkfilechooserdefault.c:4758
+#: ../gtk/gtkfilechooserdefault.c:4769
+msgid "Please select a folder below"
+msgstr "Izberite mapo s seznama map"
+
+#: ../gtk/gtkfilechooserdefault.c:4764
+msgid "Please type a file name"
+msgstr "Vnesite ime datoteke"
+
 #. Create Folder
-#: ../gtk/gtkfilechooserdefault.c:5061
+#: ../gtk/gtkfilechooserdefault.c:4835
 msgid "Create Fo_lder"
 msgstr "Ustvari _mapo"
 
-#: ../gtk/gtkfilechooserdefault.c:5071
+#: ../gtk/gtkfilechooserdefault.c:4883
+msgid "Search:"
+msgstr "Poišči:"
+
+#: ../gtk/gtkfilechooserdefault.c:4930
 msgid "_Location:"
 msgstr "_Mesto:"
 
-#: ../gtk/gtkfilechooserdefault.c:5278
+#: ../gtk/gtkfilechooserdefault.c:5247
 msgid "Save in _folder:"
 msgstr "_Shrani v mapo:"
 
-#: ../gtk/gtkfilechooserdefault.c:5280
+#: ../gtk/gtkfilechooserdefault.c:5249
 msgid "Create in _folder:"
 msgstr "_Ustvari v mapi:"
 
-#: ../gtk/gtkfilechooserdefault.c:6402
+#: ../gtk/gtkfilechooserdefault.c:6343
 #, c-format
 msgid "Could not read the contents of %s"
 msgstr "Vsebine %s ni mogoče prebrati"
 
-#: ../gtk/gtkfilechooserdefault.c:6406
+#: ../gtk/gtkfilechooserdefault.c:6347
 msgid "Could not read the contents of the folder"
 msgstr "Vsebine mape ni mogoče prebrati"
 
-#: ../gtk/gtkfilechooserdefault.c:6499
-#: ../gtk/gtkfilechooserdefault.c:6567
-#: ../gtk/gtkfilechooserdefault.c:6719
+#: ../gtk/gtkfilechooserdefault.c:6440
+#: ../gtk/gtkfilechooserdefault.c:6508
+#: ../gtk/gtkfilechooserdefault.c:6660
 msgid "Unknown"
 msgstr "Neznano"
 
-#: ../gtk/gtkfilechooserdefault.c:6514
+#: ../gtk/gtkfilechooserdefault.c:6455
 msgid "%H:%M"
 msgstr "%H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:6516
+#: ../gtk/gtkfilechooserdefault.c:6457
 msgid "Yesterday at %H:%M"
 msgstr "Včeraj ob %H:%M"
 
-#: ../gtk/gtkfilechooserdefault.c:7185
+#: ../gtk/gtkfilechooserdefault.c:7142
 msgid "Cannot change to folder because it is not local"
 msgstr "Mape ni mogoče spremeniti, ker ni krajevna"
 
-#: ../gtk/gtkfilechooserdefault.c:7777
-#: ../gtk/gtkfilechooserdefault.c:7798
+#: ../gtk/gtkfilechooserdefault.c:7742
+#: ../gtk/gtkfilechooserdefault.c:7763
 #, c-format
 msgid "Shortcut %s already exists"
 msgstr "Bližnjica %s že obstaja"
 
-#: ../gtk/gtkfilechooserdefault.c:7888
+#: ../gtk/gtkfilechooserdefault.c:7853
 #, c-format
 msgid "Shortcut %s does not exist"
 msgstr "Bližnjica %s ne obstaja"
 
-#: ../gtk/gtkfilechooserdefault.c:8146
+#: ../gtk/gtkfilechooserdefault.c:8099
 #: ../gtk/gtkprintunixdialog.c:550
 #, c-format
 msgid "A file named \"%s\" already exists.  Do you want to replace it?"
 msgstr "Datoteka z imenom \"%s\" že obstaja. Ali jo želite zamenjati?"
 
-#: ../gtk/gtkfilechooserdefault.c:8149
+#: ../gtk/gtkfilechooserdefault.c:8102
 #: ../gtk/gtkprintunixdialog.c:554
 #, c-format
 msgid "The file already exists in \"%s\".  Replacing it will overwrite its contents."
 msgstr "Datoteka že obstaja v \"%s\". Z zamenjavo bo njena vsebina izgubljena."
 
-#: ../gtk/gtkfilechooserdefault.c:8154
+#: ../gtk/gtkfilechooserdefault.c:8107
 #: ../gtk/gtkprintunixdialog.c:561
 msgid "_Replace"
 msgstr "_Zamenjaj"
 
-#: ../gtk/gtkfilechooserdefault.c:8881
+#: ../gtk/gtkfilechooserdefault.c:8912
 msgid "Could not start the search process"
 msgstr "Postopka iskanja ni mogoče začeti"
 
-#: ../gtk/gtkfilechooserdefault.c:8882
+#: ../gtk/gtkfilechooserdefault.c:8913
 msgid "The program was not able to create a connection to the indexer daemon.  Please make sure it is running."
 msgstr "Povezave z ozadnjim programom za ustvarjanje kazala ni mogoče ustvariti. Preverite, če je le-ta zagnan."
 
-#: ../gtk/gtkfilechooserdefault.c:8896
+#: ../gtk/gtkfilechooserdefault.c:8927
 msgid "Could not send the search request"
 msgstr "Zahteve po iskanju ni mogoče poslati"
 
-#: ../gtk/gtkfilechooserdefault.c:9115
-msgid "Search:"
-msgstr "Poišči:"
-
-#: ../gtk/gtkfilechooserdefault.c:9723
+#: ../gtk/gtkfilechooserdefault.c:9719
 #, c-format
 msgid "Could not mount %s"
 msgstr "%s ni mogoče priklopiti"
@@ -1337,6 +1359,8 @@ msgstr "%s ni mogoče priklopiti"
 #. * chooser's text entry, when the user enters an invalid path.
 #: ../gtk/gtkfilechooserentry.c:702
 #: ../gtk/gtkfilechooserentry.c:1174
+#: ../gtk/gtkfilesystem.c:721
+#, c-format
 msgid "Invalid path"
 msgstr "Neveljavna pot"
 
@@ -1417,28 +1441,28 @@ msgstr "Pisava"
 
 #. This is the default text shown in the preview entry, though the user
 #. can set it. Remember that some fonts only have capital letters.
-#: ../gtk/gtkfontsel.c:120
+#: ../gtk/gtkfontsel.c:119
 msgid "abcdefghijk ABCDEFGHIJK"
 msgstr "AaBbCcČčDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsŠšTtUuVvZzŽž"
 
-#: ../gtk/gtkfontsel.c:389
+#: ../gtk/gtkfontsel.c:388
 msgid "_Family:"
 msgstr "_Družina:"
 
-#: ../gtk/gtkfontsel.c:396
+#: ../gtk/gtkfontsel.c:395
 msgid "_Style:"
 msgstr "_Slog:"
 
-#: ../gtk/gtkfontsel.c:403
+#: ../gtk/gtkfontsel.c:402
 msgid "Si_ze:"
 msgstr "_Velikost:"
 
 #. create the text entry widget
-#: ../gtk/gtkfontsel.c:580
+#: ../gtk/gtkfontsel.c:579
 msgid "_Preview:"
 msgstr "_Predolged:"
 
-#: ../gtk/gtkfontsel.c:1702
+#: ../gtk/gtkfontsel.c:1705
 msgid "Font Selection"
 msgstr "Izbira pisave"
 
@@ -1451,7 +1475,7 @@ msgstr "Ikona '%s' ni navzoča v temi"
 msgid "Failed to load icon"
 msgstr "Ikone ni mogoče naložiti"
 
-#: ../gtk/gtkimmodule.c:526
+#: ../gtk/gtkimmodule.c:525
 msgid "Simple"
 msgstr "Enostavno"
 
@@ -1472,20 +1496,20 @@ msgid "System (%s)"
 msgstr "Sistem (%s)"
 
 #. Open Link
-#: ../gtk/gtklabel.c:6302
+#: ../gtk/gtklabel.c:6309
 msgid "_Open Link"
 msgstr "_Odpri povezavo"
 
 #. Copy Link Address
-#: ../gtk/gtklabel.c:6314
+#: ../gtk/gtklabel.c:6321
 msgid "Copy _Link Address"
 msgstr "Kopiraj _naslov povezave"
 
-#: ../gtk/gtklinkbutton.c:482
+#: ../gtk/gtklinkbutton.c:484
 msgid "Copy URL"
 msgstr "Kopiraj URL"
 
-#: ../gtk/gtklinkbutton.c:645
+#: ../gtk/gtklinkbutton.c:647
 msgid "Invalid URI"
 msgstr "Neveljaven URI"
 
@@ -1522,27 +1546,27 @@ msgstr ""
 "Stopite v stik s skrbnikom sistema."
 
 #. Description of --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:563
+#: ../gtk/gtkmain.c:562
 msgid "Load additional GTK+ modules"
 msgstr "Naloži dodatne module GTK+"
 
 #. Placeholder in --gtk-module=MODULES in --help output
-#: ../gtk/gtkmain.c:564
+#: ../gtk/gtkmain.c:563
 msgid "MODULES"
 msgstr "MODULI"
 
 #. Description of --g-fatal-warnings in --help output
-#: ../gtk/gtkmain.c:566
+#: ../gtk/gtkmain.c:565
 msgid "Make all warnings fatal"
 msgstr "Izpiši vsa opozorila kot usodna"
 
 #. Description of --gtk-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:569
+#: ../gtk/gtkmain.c:568
 msgid "GTK+ debugging flags to set"
 msgstr "Zastavice razhroščevanja GTK+, ki naj bodo nastavljene"
 
 #. Description of --gtk-no-debug=FLAGS in --help output
-#: ../gtk/gtkmain.c:572
+#: ../gtk/gtkmain.c:571
 msgid "GTK+ debugging flags to unset"
 msgstr "Zastavice razhroščevanja GTK+, ki naj ne bodo nastavljene"
 
@@ -1551,20 +1575,20 @@ msgstr "Zastavice razhroščevanja GTK+, ki naj ne bodo nastavljene"
 #. * Do *not* translate it to "predefinito:LTR", if it
 #. * it isn't default:LTR or default:RTL it will not work
 #.
-#: ../gtk/gtkmain.c:846
+#: ../gtk/gtkmain.c:848
 msgid "default:LTR"
 msgstr "default:LTR"
 
-#: ../gtk/gtkmain.c:910
+#: ../gtk/gtkmain.c:914
 #, c-format
 msgid "Cannot open display: %s"
 msgstr "Prikaza ni mogoče odpreti: %s"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "GTK+ Options"
 msgstr "Možnosti GTK+"
 
-#: ../gtk/gtkmain.c:976
+#: ../gtk/gtkmain.c:980
 msgid "Show GTK+ Options"
 msgstr "Pokaži možnosti GTK+"
 
@@ -1623,33 +1647,33 @@ msgid "Cannot kill process with PID %d. Operation is not implemented."
 msgstr "Opravila s PID %d ni mogoče uničiti. Dejanje ni podprto."
 
 #. translators: this string is a name for the 'less' command
-#: ../gtk/gtkmountoperation-x11.c:859
+#: ../gtk/gtkmountoperation-x11.c:959
 msgid "Terminal Pager"
 msgstr "Pozivnik terminala"
 
-#: ../gtk/gtkmountoperation-x11.c:860
+#: ../gtk/gtkmountoperation-x11.c:960
 msgid "Top Command"
 msgstr "Vrhnji ukaz"
 
-#: ../gtk/gtkmountoperation-x11.c:861
+#: ../gtk/gtkmountoperation-x11.c:961
 msgid "Bourne Again Shell"
 msgstr "Lupina Bourne Again"
 
-#: ../gtk/gtkmountoperation-x11.c:862
+#: ../gtk/gtkmountoperation-x11.c:962
 msgid "Bourne Shell"
 msgstr "Lupina Bourne"
 
-#: ../gtk/gtkmountoperation-x11.c:863
+#: ../gtk/gtkmountoperation-x11.c:963
 msgid "Z Shell"
 msgstr "Lupina Z"
 
-#: ../gtk/gtkmountoperation-x11.c:960
+#: ../gtk/gtkmountoperation-x11.c:1060
 #, c-format
 msgid "Cannot end process with PID %d: %s"
 msgstr "Opravila s PID %d ni mogoče končati: %s"
 
-#: ../gtk/gtknotebook.c:4919
-#: ../gtk/gtknotebook.c:7608
+#: ../gtk/gtknotebook.c:4906
+#: ../gtk/gtknotebook.c:7591
 #, c-format
 msgid "Page %u"
 msgstr "Stran %u"
@@ -2313,15 +2337,6 @@ msgstr "Predmeta z URI-jem '%s' ni mogoče najti"
 msgid "No registered application with name '%s' for item with URI '%s' found"
 msgstr "Program z imenom '%s' ni vpisan za odpiranje predmetov z URI-jem '%s'"
 
-#: ../gtk/gtkspinner.c:287
-msgctxt "throbbing progress animation widget"
-msgid "Spinner"
-msgstr "Vrtavka"
-
-#: ../gtk/gtkspinner.c:288
-msgid "Provides visual indication of progress"
-msgstr "Omogoča grafični prikaz napredka"
-
 #. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
 #: ../gtk/gtkstock.c:313
 msgctxt "Stock label"
@@ -2830,9 +2845,9 @@ msgstr "_Oddalji"
 #. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
 #. * the state
 #.
-#: ../gtk/gtkswitch.c:338
-#: ../gtk/gtkswitch.c:398
-#: ../gtk/gtkswitch.c:605
+#: ../gtk/gtkswitch.c:335
+#: ../gtk/gtkswitch.c:395
+#: ../gtk/gtkswitch.c:602
 msgctxt "switch"
 msgid "ON"
 msgstr "VKLJUČENO"
@@ -2840,22 +2855,13 @@ msgstr "VKLJUČENO"
 #. Translators: if the "off" state label requires more than three
 #. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
 #.
-#: ../gtk/gtkswitch.c:346
-#: ../gtk/gtkswitch.c:399
-#: ../gtk/gtkswitch.c:634
+#: ../gtk/gtkswitch.c:343
+#: ../gtk/gtkswitch.c:396
+#: ../gtk/gtkswitch.c:631
 msgctxt "switch"
 msgid "OFF"
 msgstr "IZKLJUČENO"
 
-#: ../gtk/gtkswitch.c:1061
-msgctxt "light switch widget"
-msgid "Switch"
-msgstr "Preklopi"
-
-#: ../gtk/gtkswitch.c:1062
-msgid "Switches between on and off states"
-msgstr "Preklaplja med stanji 'vključeno' in 'izključeno'"
-
 #: ../gtk/gtktextbufferrichtext.c:651
 #, c-format
 msgid "Unknown error when trying to deserialize %s"
@@ -3060,7 +3066,7 @@ msgstr "Poveča glasnost"
 
 #: ../gtk/gtkvolumebutton.c:247
 msgid "Muted"
-msgstr "Nemo"
+msgstr "Utišano"
 
 #: ../gtk/gtkvolumebutton.c:251
 msgid "Full Volume"
@@ -4408,6 +4414,22 @@ msgstr "Profil tiskalnika"
 msgid "Unavailable"
 msgstr "Ni na voljo"
 
+#. TRANSLATORS: when we're running an old CUPS, and
+#. * it hasn't registered the device with colord
+#: ../modules/printbackends/cups/gtkprintercups.c:222
+msgid "Color management unavailable"
+msgstr "Upravljanje barv ni na voljo"
+
+#. TRANSLATORS: when there is no color profile available
+#: ../modules/printbackends/cups/gtkprintercups.c:234
+msgid "No profile available"
+msgstr "Profil ni na voljo"
+
+#. TRANSLATORS: when the color profile has no title
+#: ../modules/printbackends/cups/gtkprintercups.c:245
+msgid "Unspecified profile"
+msgstr "Nedoločeno ime profila"
+
 #. default filename used for print-to-file
 #: ../modules/printbackends/file/gtkprintbackendfile.c:250
 #, c-format
@@ -4505,6 +4527,9 @@ msgstr "Datoteke '%s' ni mogoče odpreti: %s"
 msgid "Failed to load image '%s': reason not known, probably a corrupt image file"
 msgstr "Slike '%s' ni mogoče naložiti: vzrok ni znan, najverjetneje je datoteka pokvarjena"
 
+#~ msgid "_Browse for other folders"
+#~ msgstr "_Brskaj za drugimi mapami"
+
 #~ msgid "Locked"
 #~ msgstr "Zaklenjeno"
 
@@ -4949,8 +4974,8 @@ msgstr "Slike '%s' ni mogoče naložiti: vzrok ni znan, najverjetneje je datotek
 #~ msgid ""
 #~ "Value for PNG text chunk %s cannot be converted to ISO-8859-1 encoding."
 #~ msgstr ""
-#~ "Vrednosti za sklop besedila PNG %s ni mogoče pretvoriti v kodiranje ISO-"
-#~ "8859-1."
+#~ "Vrednosti za sklop besedila PNG %s ni mogoče pretvoriti v kodiranje "
+#~ "ISO-8859-1."
 
 #~ msgid "The PNG image format"
 #~ msgstr "Vrsta zapisa slike PNG"
index 42650e105e725f99582c330f1c951a6c196193f0..4f7df7f3d85591de900b00458c24f0fdac903508 100644 (file)
--- a/po/ug.po
+++ b/po/ug.po
-# Uighur translation for gtk+2.0\r
-# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008\r
-# This file is distributed under the same license as the gtk+2.0 package.\r
-# Ömerjan Tursunqasim <omarjan14@qq.com>, 2008.\r
-# Sahran <sahran@live.com>, 2010\r
-#\r
-msgid ""\r
-msgstr ""\r
-"Project-Id-Version: gtk+2.0\n"\r
-"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%"\r
-"2b&keywords=I18N+L10N&component=general\n"\r
-"POT-Creation-Date: 2011-04-25 06:58+0000\n"\r
-"PO-Revision-Date: 2011-04-26 10:56+0600\n"\r
-"Last-Translator: Sahran <sahran.ug@gmail.com>\n"\r
-"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"\r
-"MIME-Version: 1.0\n"\r
-"Content-Type: text/plain; charset=UTF-8\n"\r
-"Content-Transfer-Encoding: 8bit\n"\r
-"Plural-Forms: nplurals=1; plural=0;\n"\r
-"X-Launchpad-Export-Date: 2010-05-06 04:15+0000\n"\r
-"X-Generator: Launchpad (build Unknown)\n"\r
-\r
-#: ../gdk/gdk.c:135\r
-#, c-format\r
-msgid "Error parsing option --gdk-debug"\r
-msgstr "--gdk-debug تاللانمىنى يېشىشتە خاتالىق كۆرۈلدى"\r
-\r
-#: ../gdk/gdk.c:155\r
-#, c-format\r
-msgid "Error parsing option --gdk-no-debug"\r
-msgstr "--gdk-no-debug تاللانمىنى يېشىشتە خاتالىق كۆرۈلدى"\r
-\r
-#. Description of --class=CLASS in --help output\r
-#: ../gdk/gdk.c:183\r
-msgid "Program class as used by the window manager"\r
-msgstr "كۆزنەك باشقۇرغۇچ ئىشلەتكەن پروگرامما تۈرى"\r
-\r
-#. Placeholder in --class=CLASS in --help output\r
-#: ../gdk/gdk.c:184\r
-msgid "CLASS"\r
-msgstr "CLASS"\r
-\r
-#. Description of --name=NAME in --help output\r
-#: ../gdk/gdk.c:186\r
-msgid "Program name as used by the window manager"\r
-msgstr "كۆزنەك باشقۇرغۇچ ئىشلەتكەن پروگرامما ئىسمى"\r
-\r
-#. Placeholder in --name=NAME in --help output\r
-#: ../gdk/gdk.c:187\r
-msgid "NAME"\r
-msgstr "NAME"\r
-\r
-#. Description of --display=DISPLAY in --help output\r
-#: ../gdk/gdk.c:189\r
-msgid "X display to use"\r
-msgstr "X كۆرسىتىش ئېغىزى ئىشلەت"\r
-\r
-#. Placeholder in --display=DISPLAY in --help output\r
-#: ../gdk/gdk.c:190\r
-msgid "DISPLAY"\r
-msgstr "كۆرسەت"\r
-\r
-#. Description of --gdk-debug=FLAGS in --help output\r
-#: ../gdk/gdk.c:193\r
-msgid "GDK debugging flags to set"\r
-msgstr "تەڭشەيدىغان GTK+ سازلاش بەلگىسى"\r
-\r
-#. Placeholder in --gdk-debug=FLAGS in --help output\r
-#. Placeholder in --gdk-no-debug=FLAGS in --help output\r
-#. Placeholder in --gtk-debug=FLAGS in --help output\r
-#. Placeholder in --gtk-no-debug=FLAGS in --help output\r
-#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:570 ../gtk/gtkmain.c:573\r
-msgid "FLAGS"\r
-msgstr "بەلگە"\r
-\r
-#. Description of --gdk-no-debug=FLAGS in --help output\r
-#: ../gdk/gdk.c:196\r
-msgid "GDK debugging flags to unset"\r
-msgstr "قالدۇرماقچى بولغان GTK+ سازلاش بەلگىسى"\r
-\r
-#.\r
-#. * Translators, the strings in the 'keyboard label' context are\r
-#. * display names for keyboard keys. Some of them have prefixes like\r
-#. * XF86 or ISO_ - these should be removed in the translation. Similarly,\r
-#. * underscores should be replaced by spaces. The prefix 'KP_' stands\r
-#. * for 'key pad' and you may want to include that in your translation.\r
-#. * Here are some examples of English translations:\r
-#. * XF86AudioMute - Audio mute\r
-#. * Scroll_lock   - Scroll lock\r
-#. * KP_Space      - Space (keypad)\r
-#.\r
-#: ../gdk/keyname-table.h:3951\r
-msgctxt "keyboard label"\r
-msgid "BackSpace"\r
-msgstr "چېكىنىش كۇنۇپكىسى"\r
-\r
-#: ../gdk/keyname-table.h:3952\r
-msgctxt "keyboard label"\r
-msgid "Tab"\r
-msgstr "Tab"\r
-\r
-#: ../gdk/keyname-table.h:3953\r
-msgctxt "keyboard label"\r
-msgid "Return"\r
-msgstr "Return"\r
-\r
-#: ../gdk/keyname-table.h:3954\r
-msgctxt "keyboard label"\r
-msgid "Pause"\r
-msgstr "ۋاقىتلىق توختا"\r
-\r
-#: ../gdk/keyname-table.h:3955\r
-msgctxt "keyboard label"\r
-msgid "Scroll_Lock"\r
-msgstr "Scroll_Lock"\r
-\r
-#: ../gdk/keyname-table.h:3956\r
-msgctxt "keyboard label"\r
-msgid "Sys_Req"\r
-msgstr "Sys_Req"\r
-\r
-#: ../gdk/keyname-table.h:3957\r
-msgctxt "keyboard label"\r
-msgid "Escape"\r
-msgstr "Escape"\r
-\r
-#: ../gdk/keyname-table.h:3958\r
-msgctxt "keyboard label"\r
-msgid "Multi_key"\r
-msgstr "Multikey(_K)"\r
-\r
-#: ../gdk/keyname-table.h:3959\r
-msgctxt "keyboard label"\r
-msgid "Home"\r
-msgstr "Home"\r
-\r
-#: ../gdk/keyname-table.h:3960\r
-msgctxt "keyboard label"\r
-msgid "Left"\r
-msgstr "سول"\r
-\r
-#: ../gdk/keyname-table.h:3961\r
-msgctxt "keyboard label"\r
-msgid "Up"\r
-msgstr "يۇقىرى"\r
-\r
-#: ../gdk/keyname-table.h:3962\r
-msgctxt "keyboard label"\r
-msgid "Right"\r
-msgstr "ئوڭ"\r
-\r
-#: ../gdk/keyname-table.h:3963\r
-msgctxt "keyboard label"\r
-msgid "Down"\r
-msgstr "تۆۋەن"\r
-\r
-#: ../gdk/keyname-table.h:3964\r
-msgctxt "keyboard label"\r
-msgid "Page_Up"\r
-msgstr "Page_Up"\r
-\r
-#: ../gdk/keyname-table.h:3965\r
-msgctxt "keyboard label"\r
-msgid "Page_Down"\r
-msgstr "Page_Down"\r
-\r
-#: ../gdk/keyname-table.h:3966\r
-msgctxt "keyboard label"\r
-msgid "End"\r
-msgstr "تامام"\r
-\r
-#: ../gdk/keyname-table.h:3967\r
-msgctxt "keyboard label"\r
-msgid "Begin"\r
-msgstr "باشلا"\r
-\r
-#: ../gdk/keyname-table.h:3968\r
-msgctxt "keyboard label"\r
-msgid "Print"\r
-msgstr "باس"\r
-\r
-#: ../gdk/keyname-table.h:3969\r
-msgctxt "keyboard label"\r
-msgid "Insert"\r
-msgstr "قىستۇر"\r
-\r
-#: ../gdk/keyname-table.h:3970\r
-msgctxt "keyboard label"\r
-msgid "Num_Lock"\r
-msgstr "Num_Lock"\r
-\r
-#. Translators: KP_ means 'key pad' here\r
-#: ../gdk/keyname-table.h:3972\r
-msgctxt "keyboard label"\r
-msgid "KP_Space"\r
-msgstr "KP_Space"\r
-\r
-#: ../gdk/keyname-table.h:3973\r
-msgctxt "keyboard label"\r
-msgid "KP_Tab"\r
-msgstr "KP_Tab"\r
-\r
-#: ../gdk/keyname-table.h:3974\r
-msgctxt "keyboard label"\r
-msgid "KP_Enter"\r
-msgstr "KP_Enter"\r
-\r
-#: ../gdk/keyname-table.h:3975\r
-msgctxt "keyboard label"\r
-msgid "KP_Home"\r
-msgstr "KP_Home"\r
-\r
-#: ../gdk/keyname-table.h:3976\r
-msgctxt "keyboard label"\r
-msgid "KP_Left"\r
-msgstr "KP_Left"\r
-\r
-#: ../gdk/keyname-table.h:3977\r
-msgctxt "keyboard label"\r
-msgid "KP_Up"\r
-msgstr "KP_Up"\r
-\r
-#: ../gdk/keyname-table.h:3978\r
-msgctxt "keyboard label"\r
-msgid "KP_Right"\r
-msgstr "KP_Right"\r
-\r
-#: ../gdk/keyname-table.h:3979\r
-msgctxt "keyboard label"\r
-msgid "KP_Down"\r
-msgstr "KP_Down"\r
-\r
-#: ../gdk/keyname-table.h:3980\r
-msgctxt "keyboard label"\r
-msgid "KP_Page_Up"\r
-msgstr "KP_Page_Up"\r
-\r
-#: ../gdk/keyname-table.h:3981\r
-msgctxt "keyboard label"\r
-msgid "KP_Prior"\r
-msgstr "KP_Prior"\r
-\r
-#: ../gdk/keyname-table.h:3982\r
-msgctxt "keyboard label"\r
-msgid "KP_Page_Down"\r
-msgstr "KP_Page_Down"\r
-\r
-#: ../gdk/keyname-table.h:3983\r
-msgctxt "keyboard label"\r
-msgid "KP_Next"\r
-msgstr "KP_Next"\r
-\r
-#: ../gdk/keyname-table.h:3984\r
-msgctxt "keyboard label"\r
-msgid "KP_End"\r
-msgstr "KP_End"\r
-\r
-#: ../gdk/keyname-table.h:3985\r
-msgctxt "keyboard label"\r
-msgid "KP_Begin"\r
-msgstr "KP_Begin"\r
-\r
-#: ../gdk/keyname-table.h:3986\r
-msgctxt "keyboard label"\r
-msgid "KP_Insert"\r
-msgstr "KP_Insert"\r
-\r
-#: ../gdk/keyname-table.h:3987\r
-msgctxt "keyboard label"\r
-msgid "KP_Delete"\r
-msgstr "KP_Delete"\r
-\r
-#: ../gdk/keyname-table.h:3988\r
-msgctxt "keyboard label"\r
-msgid "Delete"\r
-msgstr "ئۆچۈر"\r
-\r
-#. Translators: 'Mon' means Monitor here, and the XF86 prefix should be removed\r
-#: ../gdk/keyname-table.h:3990\r
-msgctxt "keyboard label"\r
-msgid "XF86MonBrightnessUp"\r
-msgstr "XF86MonBrightnessUp"\r
-\r
-#: ../gdk/keyname-table.h:3991\r
-msgctxt "keyboard label"\r
-msgid "XF86MonBrightnessDown"\r
-msgstr "XF86MonBrightnessDown"\r
-\r
-#: ../gdk/keyname-table.h:3992\r
-msgctxt "keyboard label"\r
-msgid "XF86AudioMute"\r
-msgstr "XF86AudioMute"\r
-\r
-#: ../gdk/keyname-table.h:3993\r
-msgctxt "keyboard label"\r
-msgid "XF86AudioLowerVolume"\r
-msgstr "XF86AudioLowerVolume"\r
-\r
-#: ../gdk/keyname-table.h:3994\r
-msgctxt "keyboard label"\r
-msgid "XF86AudioRaiseVolume"\r
-msgstr "XF86AudioRaiseVolume"\r
-\r
-#: ../gdk/keyname-table.h:3995\r
-msgctxt "keyboard label"\r
-msgid "XF86AudioPlay"\r
-msgstr "XF86AudioPlay"\r
-\r
-#: ../gdk/keyname-table.h:3996\r
-msgctxt "keyboard label"\r
-msgid "XF86AudioStop"\r
-msgstr "XF86AudioStop"\r
-\r
-#: ../gdk/keyname-table.h:3997\r
-msgctxt "keyboard label"\r
-msgid "XF86AudioNext"\r
-msgstr "XF86AudioNext"\r
-\r
-#: ../gdk/keyname-table.h:3998\r
-msgctxt "keyboard label"\r
-msgid "XF86AudioPrev"\r
-msgstr "XF86AudioPrev"\r
-\r
-#: ../gdk/keyname-table.h:3999\r
-msgctxt "keyboard label"\r
-msgid "XF86AudioRecord"\r
-msgstr "XF86AudioRecord"\r
-\r
-#: ../gdk/keyname-table.h:4000\r
-msgctxt "keyboard label"\r
-msgid "XF86AudioPause"\r
-msgstr "XF86AudioPause"\r
-\r
-#: ../gdk/keyname-table.h:4001\r
-msgctxt "keyboard label"\r
-msgid "XF86AudioRewind"\r
-msgstr "XF86AudioRewind"\r
-\r
-#: ../gdk/keyname-table.h:4002\r
-msgctxt "keyboard label"\r
-msgid "XF86AudioMedia"\r
-msgstr "XF86AudioMedia"\r
-\r
-#: ../gdk/keyname-table.h:4003\r
-msgctxt "keyboard label"\r
-msgid "XF86ScreenSaver"\r
-msgstr "XF86ScreenSaver"\r
-\r
-#: ../gdk/keyname-table.h:4004\r
-msgctxt "keyboard label"\r
-msgid "XF86Battery"\r
-msgstr "XF86Battery"\r
-\r
-#: ../gdk/keyname-table.h:4005\r
-msgctxt "keyboard label"\r
-msgid "XF86Launch1"\r
-msgstr "XF86Launch1"\r
-\r
-#: ../gdk/keyname-table.h:4006\r
-msgctxt "keyboard label"\r
-msgid "XF86Forward"\r
-msgstr "XF86Forward"\r
-\r
-#: ../gdk/keyname-table.h:4007\r
-msgctxt "keyboard label"\r
-msgid "XF86Back"\r
-msgstr "XF86Back"\r
-\r
-#: ../gdk/keyname-table.h:4008\r
-msgctxt "keyboard label"\r
-msgid "XF86Sleep"\r
-msgstr "XF86Sleep"\r
-\r
-#: ../gdk/keyname-table.h:4009\r
-msgctxt "keyboard label"\r
-msgid "XF86Hibernate"\r
-msgstr "XF86Hibernate"\r
-\r
-#: ../gdk/keyname-table.h:4010\r
-msgctxt "keyboard label"\r
-msgid "XF86WLAN"\r
-msgstr "XF86WLAN"\r
-\r
-#: ../gdk/keyname-table.h:4011\r
-msgctxt "keyboard label"\r
-msgid "XF86WebCam"\r
-msgstr "XF86WebCam"\r
-\r
-#: ../gdk/keyname-table.h:4012\r
-msgctxt "keyboard label"\r
-msgid "XF86Display"\r
-msgstr "XF86Display"\r
-\r
-#: ../gdk/keyname-table.h:4013\r
-msgctxt "keyboard label"\r
-msgid "XF86TouchpadToggle"\r
-msgstr "XF86TouchpadToggle"\r
-\r
-#: ../gdk/keyname-table.h:4014\r
-msgctxt "keyboard label"\r
-msgid "XF86WakeUp"\r
-msgstr "XF86WakeUp"\r
-\r
-#: ../gdk/keyname-table.h:4015\r
-msgctxt "keyboard label"\r
-msgid "XF86Suspend"\r
-msgstr "XF86Suspend"\r
-\r
-#. Description of --sync in --help output\r
-#: ../gdk/win32/gdkmain-win32.c:55\r
-msgid "Don't batch GDI requests"\r
-msgstr "GDI ئىلتىماسىنى توپ بىر تەرەپ قىلالمايدۇ"\r
-\r
-#. Description of --no-wintab in --help output\r
-#: ../gdk/win32/gdkmain-win32.c:57\r
-msgid "Don't use the Wintab API for tablet support"\r
-msgstr "Wintab API ئىشلەتمەي tablet قوللايدۇ"\r
-\r
-#. Description of --ignore-wintab in --help output\r
-#: ../gdk/win32/gdkmain-win32.c:59\r
-msgid "Same as --no-wintab"\r
-msgstr "--no-wintab بىلەن ئوخشاش"\r
-\r
-#. Description of --use-wintab in --help output\r
-#: ../gdk/win32/gdkmain-win32.c:61\r
-msgid "Do use the Wintab API [default]"\r
-msgstr "Wintab API ئىشلەت [كۆڭۈلدىكى]"\r
-\r
-#. Description of --max-colors=COLORS in --help output\r
-#: ../gdk/win32/gdkmain-win32.c:63\r
-msgid "Size of the palette in 8 bit mode"\r
-msgstr "8 بىتلىق رەڭ تەڭشەش تاختا چوڭلۇقى"\r
-\r
-#. Placeholder in --max-colors=COLORS in --help output\r
-#: ../gdk/win32/gdkmain-win32.c:64\r
-msgid "COLORS"\r
-msgstr "رەڭ"\r
-\r
-#: ../gdk/x11/gdkapplaunchcontext-x11.c:294\r
-#, c-format\r
-msgid "Starting %s"\r
-msgstr "%s قوزغىلىۋاتىدۇ"\r
-\r
-#: ../gdk/x11/gdkapplaunchcontext-x11.c:307\r
-#, c-format\r
-msgid "Opening %s"\r
-msgstr "%s نى ئېچىۋاتىدۇ"\r
-\r
-#: ../gdk/x11/gdkapplaunchcontext-x11.c:312\r
-#, c-format\r
-msgid "Opening %d Item"\r
-msgid_plural "Opening %d Items"\r
-msgstr[0] "%d تۈرنى ئېچىۋاتىدۇ"\r
-\r
-#. Translators: this is the license preamble; the string at the end\r
-#. * contains the URL of the license.\r
-#.\r
-#: ../gtk/gtkaboutdialog.c:104\r
-#, c-format\r
-msgid ""\r
-"This program comes with ABSOLUTELY NO WARRANTY; for details, visit <a href="\r
-"\"%s\">%s</a>"\r
-msgstr ""\r
-"بۇ پروگرامما ھېچقانداق كاپالەت بەرمەيدۇ؛ تەپسىلاتىنى <a href=\"%s\">%s</a> "\r
-"زىيارەت قىلىڭ"\r
-\r
-#: ../gtk/gtkaboutdialog.c:346\r
-msgid "License"\r
-msgstr "ئىجازەتنامە"\r
-\r
-#: ../gtk/gtkaboutdialog.c:347\r
-msgid "The license of the program"\r
-msgstr "پروگراممىنىڭ ئىجازەتنامىسى"\r
-\r
-#. Add the credits button\r
-#: ../gtk/gtkaboutdialog.c:739\r
-msgid "C_redits"\r
-msgstr "تەشەككۈر(_R)"\r
-\r
-#. Add the license button\r
-#: ../gtk/gtkaboutdialog.c:752\r
-msgid "_License"\r
-msgstr "ئىجازەت(_L)"\r
-\r
-#: ../gtk/gtkaboutdialog.c:957\r
-msgid "Could not show link"\r
-msgstr "ئۇلانمىنى كۆرسىتەلمىدى"\r
-\r
-#: ../gtk/gtkaboutdialog.c:994\r
-msgid "Homepage"\r
-msgstr "باش بەت"\r
-\r
-#: ../gtk/gtkaboutdialog.c:1048\r
-#, c-format\r
-msgid "About %s"\r
-msgstr "%s ھەققىدە"\r
-\r
-#: ../gtk/gtkaboutdialog.c:2374\r
-msgid "Created by"\r
-msgstr "قۇرغۇچى"\r
-\r
-#: ../gtk/gtkaboutdialog.c:2377\r
-msgid "Documented by"\r
-msgstr "پۈتۈكچى"\r
-\r
-#: ../gtk/gtkaboutdialog.c:2387\r
-msgid "Translated by"\r
-msgstr "تەرجىمان"\r
-\r
-#: ../gtk/gtkaboutdialog.c:2392\r
-msgid "Artwork by"\r
-msgstr "گۈزەل سەنئەت تەھرىرى"\r
-\r
-#. This is the text that should appear next to menu accelerators\r
-#. * that use the shift key. If the text on this key isn't typically\r
-#. * translated on keyboards used for your language, don't translate\r
-#. * this.\r
-#.\r
-#: ../gtk/gtkaccellabel.c:158\r
-msgctxt "keyboard label"\r
-msgid "Shift"\r
-msgstr "Shift"\r
-\r
-#. This is the text that should appear next to menu accelerators\r
-#. * that use the control key. If the text on this key isn't typically\r
-#. * translated on keyboards used for your language, don't translate\r
-#. * this.\r
-#.\r
-#: ../gtk/gtkaccellabel.c:164\r
-msgctxt "keyboard label"\r
-msgid "Ctrl"\r
-msgstr "Ctrl"\r
-\r
-#. This is the text that should appear next to menu accelerators\r
-#. * that use the alt key. If the text on this key isn't typically\r
-#. * translated on keyboards used for your language, don't translate\r
-#. * this.\r
-#.\r
-#: ../gtk/gtkaccellabel.c:170\r
-msgctxt "keyboard label"\r
-msgid "Alt"\r
-msgstr "Alt"\r
-\r
-#. This is the text that should appear next to menu accelerators\r
-#. * that use the super key. If the text on this key isn't typically\r
-#. * translated on keyboards used for your language, don't translate\r
-#. * this.\r
-#.\r
-#: ../gtk/gtkaccellabel.c:786\r
-msgctxt "keyboard label"\r
-msgid "Super"\r
-msgstr "Super"\r
-\r
-#. This is the text that should appear next to menu accelerators\r
-#. * that use the hyper key. If the text on this key isn't typically\r
-#. * translated on keyboards used for your language, don't translate\r
-#. * this.\r
-#.\r
-#: ../gtk/gtkaccellabel.c:799\r
-msgctxt "keyboard label"\r
-msgid "Hyper"\r
-msgstr "Hyper"\r
-\r
-#. This is the text that should appear next to menu accelerators\r
-#. * that use the meta key. If the text on this key isn't typically\r
-#. * translated on keyboards used for your language, don't translate\r
-#. * this.\r
-#.\r
-#: ../gtk/gtkaccellabel.c:813\r
-msgctxt "keyboard label"\r
-msgid "Meta"\r
-msgstr "Meta"\r
-\r
-#: ../gtk/gtkaccellabel.c:829\r
-msgctxt "keyboard label"\r
-msgid "Space"\r
-msgstr "بوشلۇق"\r
-\r
-#: ../gtk/gtkaccellabel.c:832\r
-msgctxt "keyboard label"\r
-msgid "Backslash"\r
-msgstr "تەتۈر يانتۇ سىزىق(Backslash)"\r
-\r
-#: ../gtk/gtkappchooserbutton.c:268\r
-msgid "Other application..."\r
-msgstr "باشقا پروگراممىلار..."\r
-\r
-#: ../gtk/gtkappchooserdialog.c:130\r
-msgid "Failed to look for applications online"\r
-msgstr "تودىن پروگرامما ئىزدەش مەغلۇپ بولدى"\r
-\r
-#: ../gtk/gtkappchooserdialog.c:171\r
-msgid "Find applications online"\r
-msgstr "تودىن پروگرامما ئىزدەش"\r
-\r
-#: ../gtk/gtkappchooserdialog.c:221\r
-msgid "Could not run application"\r
-msgstr "پروگراممىنى ئىجرا قىلالمىدى"\r
-\r
-#: ../gtk/gtkappchooserdialog.c:234\r
-#, c-format\r
-msgid "Could not find '%s'"\r
-msgstr "'%s' تاپالمىدى"\r
-\r
-#: ../gtk/gtkappchooserdialog.c:237\r
-msgid "Could not find application"\r
-msgstr "پروگراممىنى تاپالمىدى"\r
-\r
-#. Translators: %s is a filename\r
-#: ../gtk/gtkappchooserdialog.c:355\r
-#, c-format\r
-msgid "Select an application to open \"%s\""\r
-msgstr "\"%s\" نى ئاچىدىغان پروگراممىنى تاللاڭ"\r
-\r
-#: ../gtk/gtkappchooserdialog.c:356 ../gtk/gtkappchooserwidget.c:642\r
-#, c-format\r
-msgid "No applications available to open \"%s\""\r
-msgstr "\"%s\" نى ئاچىدىغان پروگرامما يوق"\r
-\r
-#. Translators: %s is a file type description\r
-#: ../gtk/gtkappchooserdialog.c:362\r
-#, c-format\r
-msgid "Select an application for \"%s\" files"\r
-msgstr "\"%s\" ھۆججەتلەر ئۈچۈن پروگرامما تاللاڭ."\r
-\r
-#: ../gtk/gtkappchooserdialog.c:364\r
-#, c-format\r
-msgid "No applications available to open \"%s\" files"\r
-msgstr "\"%s\" ھۆججەتلەر ئاچىدىغان پروگرامما يوق"\r
-\r
-#: ../gtk/gtkappchooserdialog.c:380\r
-msgid ""\r
-"Click \"Show other applications\", for more options, or \"Find applications "\r
-"online\" to install a new application"\r
-msgstr ""\r
-"تەپسىلاتى ئۈچۈن «باشقا پروگراممىنى كۆرسەت»نى چېكىڭ ياكى «پروگراممىنى توردىن "\r
-"ئىزدە» دىن يېڭى پروگراممىنى ئورنىتىڭ"\r
-\r
-#: ../gtk/gtkappchooserdialog.c:450\r
-msgid "Forget association"\r
-msgstr "ھەمكارلىقىنى ئۇنتۇ"\r
-\r
-#: ../gtk/gtkappchooserdialog.c:515\r
-msgid "Show other applications"\r
-msgstr "باشقا پروگراممىلارنى كۆرسەت"\r
-\r
-#: ../gtk/gtkappchooserdialog.c:533\r
-msgid "_Select"\r
-msgstr "تاللا(_S)"\r
-\r
-#: ../gtk/gtkappchooserwidget.c:591\r
-msgid "Default Application"\r
-msgstr "كۆڭۈلدىكى پروگرامما"\r
-\r
-#: ../gtk/gtkappchooserwidget.c:729\r
-msgid "Recommended Applications"\r
-msgstr "تەۋسىيىلىك پروگراممىلار"\r
-\r
-#: ../gtk/gtkappchooserwidget.c:744\r
-msgid "Related Applications"\r
-msgstr "مۇناشىۋەتلىك پروگراممىلار"\r
-\r
-#: ../gtk/gtkappchooserwidget.c:758\r
-msgid "Other Applications"\r
-msgstr "باشقا پروگراممىلار"\r
-\r
-#: ../gtk/gtkbuilderparser.c:342\r
-#, c-format\r
-msgid "Invalid type function on line %d: '%s'"\r
-msgstr "ئىناۋەتسىز تىپ فۇنكسىيىسى كۆرۈنگەن قۇر %d: '%s'"\r
-\r
-#: ../gtk/gtkbuilderparser.c:406\r
-#, c-format\r
-msgid "Duplicate object ID '%s' on line %d (previously on line %d)"\r
-msgstr "تەكرار ئوبيېكت id '%s' كۆرۈنگەن قۇر %d (ئىلگىرى كۆرۈنگەن قۇر %d)"\r
-\r
-#: ../gtk/gtkbuilderparser.c:858\r
-#, c-format\r
-msgid "Invalid root element: '%s'"\r
-msgstr "ئىناۋەتسىز غول ئېلېمېنت: '%s'"\r
-\r
-#: ../gtk/gtkbuilderparser.c:897\r
-#, c-format\r
-msgid "Unhandled tag: '%s'"\r
-msgstr "بىر تەرەپ قىلىنمىغان بەلگە: '%s'"\r
-\r
-#. Translate to calendar:YM if you want years to be displayed\r
-#. * before months; otherwise translate to calendar:MY.\r
-#. * Do *not* translate it to anything else, if it\r
-#. * it isn't calendar:YM or calendar:MY it will not work.\r
-#. *\r
-#. * Note that the ordering described here is logical order, which is\r
-#. * further influenced by BIDI ordering. Thus, if you have a default\r
-#. * text direction of RTL and specify "calendar:YM", then the year\r
-#. * will appear to the right of the month.\r
-#.\r
-#: ../gtk/gtkcalendar.c:871\r
-msgid "calendar:MY"\r
-msgstr "calendar:MY"\r
-\r
-#. Translate to calendar:week_start:0 if you want Sunday to be the\r
-#. * first day of the week to calendar:week_start:1 if you want Monday\r
-#. * to be the first day of the week, and so on.\r
-#.\r
-#: ../gtk/gtkcalendar.c:909\r
-msgid "calendar:week_start:0"\r
-msgstr "calendar:week_start:0"\r
-\r
-#. Translators:  This is a text measurement template.\r
-#. * Translate it to the widest year text\r
-#. *\r
-#. * If you don't understand this, leave it as "2000"\r
-#.\r
-#: ../gtk/gtkcalendar.c:1910\r
-msgctxt "year measurement template"\r
-msgid "2000"\r
-msgstr "2000"\r
-\r
-#. Translators: this defines whether the day numbers should use\r
-#. * localized digits or the ones used in English (0123...).\r
-#. *\r
-#. * Translate to "%Id" if you want to use localized digits, or\r
-#. * translate to "%d" otherwise.\r
-#. *\r
-#. * Note that translating this doesn't guarantee that you get localized\r
-#. * digits. That needs support from your system and locale definition\r
-#. * too.\r
-#.\r
-#: ../gtk/gtkcalendar.c:1941 ../gtk/gtkcalendar.c:2638\r
-#, c-format\r
-msgctxt "calendar:day:digits"\r
-msgid "%d"\r
-msgstr "%d"\r
-\r
-#. Translators: this defines whether the week numbers should use\r
-#. * localized digits or the ones used in English (0123...).\r
-#. *\r
-#. * Translate to "%Id" if you want to use localized digits, or\r
-#. * translate to "%d" otherwise.\r
-#. *\r
-#. * Note that translating this doesn't guarantee that you get localized\r
-#. * digits. That needs support from your system and locale definition\r
-#. * too.\r
-#.\r
-#: ../gtk/gtkcalendar.c:1973 ../gtk/gtkcalendar.c:2499\r
-#, c-format\r
-msgctxt "calendar:week:digits"\r
-msgid "%d"\r
-msgstr "%d"\r
-\r
-#. Translators: This dictates how the year is displayed in\r
-#. * gtkcalendar widget.  See strftime() manual for the format.\r
-#. * Use only ASCII in the translation.\r
-#. *\r
-#. * Also look for the msgid "2000".\r
-#. * Translate that entry to a year with the widest output of this\r
-#. * msgid.\r
-#. *\r
-#. * "%Y" is appropriate for most locales.\r
-#.\r
-#: ../gtk/gtkcalendar.c:2268\r
-msgctxt "calendar year format"\r
-msgid "%Y"\r
-msgstr "%Y"\r
-\r
-#. This label is displayed in a treeview cell displaying\r
-#. * a disabled accelerator key combination.\r
-#.\r
-#: ../gtk/gtkcellrendereraccel.c:271\r
-msgctxt "Accelerator"\r
-msgid "Disabled"\r
-msgstr "چەكلەنگەن"\r
-\r
-#. This label is displayed in a treeview cell displaying\r
-#. * an accelerator key combination that is not valid according\r
-#. * to gtk_accelerator_valid().\r
-#.\r
-#: ../gtk/gtkcellrendereraccel.c:281\r
-msgctxt "Accelerator"\r
-msgid "Invalid"\r
-msgstr "ئىناۋەتسىز"\r
-\r
-#. This label is displayed in a treeview cell displaying\r
-#. * an accelerator when the cell is clicked to change the\r
-#. * acelerator.\r
-#.\r
-#: ../gtk/gtkcellrendereraccel.c:417 ../gtk/gtkcellrendereraccel.c:729\r
-msgid "New accelerator..."\r
-msgstr "يېڭى تېزلەتكۈچ كۇنۇپكا…"\r
-\r
-#: ../gtk/gtkcellrendererprogress.c:362 ../gtk/gtkcellrendererprogress.c:452\r
-#, c-format\r
-msgctxt "progress bar label"\r
-msgid "%d %%"\r
-msgstr "%d %%"\r
-\r
-#: ../gtk/gtkcolorbutton.c:187 ../gtk/gtkcolorbutton.c:483\r
-msgid "Pick a Color"\r
-msgstr "رەڭ ئال"\r
-\r
-#: ../gtk/gtkcolorbutton.c:372\r
-msgid "Received invalid color data\n"\r
-msgstr "ئىناۋەتسىز رەڭ سانلىق-مەلۇماتى تاپشۇرۇۋالدى\n"\r
-\r
-#: ../gtk/gtkcolorsel.c:415\r
-msgid ""\r
-"Select the color you want from the outer ring. Select the darkness or "\r
-"lightness of that color using the inner triangle."\r
-msgstr ""\r
-"سىرتقى ئايلانمىدىن سىزگە لازىملىق رەڭنى تاللاڭ .ئىچكى ئۈچ بۇلۇڭدىن رەڭنىڭ "\r
-"كۈچلۈكلۈكىنى تاللاڭ."\r
-\r
-#: ../gtk/gtkcolorsel.c:441\r
-msgid ""\r
-"Click the eyedropper, then click a color anywhere on your screen to select "\r
-"that color."\r
-msgstr "تېمىتقۇچنى تاق چېكىپ ئاندىن ئېكراننىڭ خالىغان يېرىدىن رەڭ تۇتۇڭ."\r
-\r
-#: ../gtk/gtkcolorsel.c:451\r
-msgid "_Hue:"\r
-msgstr "رەڭ تەڭشەش(_H):"\r
-\r
-#: ../gtk/gtkcolorsel.c:452\r
-msgid "Position on the color wheel."\r
-msgstr "رەڭ ھالقىسىدىكى ئورنى"\r
-\r
-#: ../gtk/gtkcolorsel.c:454\r
-msgid "_Saturation:"\r
-msgstr "تويۇنۇش دەرىجىسى(_S):"\r
-\r
-#: ../gtk/gtkcolorsel.c:455\r
-msgid "Intensity of the color."\r
-msgstr "رەڭ يورۇقلۇق دەرىجىسى."\r
-\r
-#: ../gtk/gtkcolorsel.c:456\r
-msgid "_Value:"\r
-msgstr "قىممىتى(_V):"\r
-\r
-#: ../gtk/gtkcolorsel.c:457\r
-msgid "Brightness of the color."\r
-msgstr "رەڭ يورۇقلۇقى."\r
-\r
-#: ../gtk/gtkcolorsel.c:458\r
-msgid "_Red:"\r
-msgstr "قىزىل(_R):"\r
-\r
-#: ../gtk/gtkcolorsel.c:459\r
-msgid "Amount of red light in the color."\r
-msgstr "رەڭ تەركىبىدىكى قىزىل رەڭ مىقدارى."\r
-\r
-#: ../gtk/gtkcolorsel.c:460\r
-msgid "_Green:"\r
-msgstr "يېشىل(_G):"\r
-\r
-#: ../gtk/gtkcolorsel.c:461\r
-msgid "Amount of green light in the color."\r
-msgstr "رەڭ تەركىبىدىكى يېشىل رەڭ مىقدارى."\r
-\r
-#: ../gtk/gtkcolorsel.c:462\r
-msgid "_Blue:"\r
-msgstr "كۆك(_B):"\r
-\r
-#: ../gtk/gtkcolorsel.c:463\r
-msgid "Amount of blue light in the color."\r
-msgstr "رەڭ تەركىبىدىكى كۆك رەڭ مىقدارى."\r
-\r
-#: ../gtk/gtkcolorsel.c:466\r
-msgid "Op_acity:"\r
-msgstr "سۈزۈكلۈك(_A):"\r
-\r
-#: ../gtk/gtkcolorsel.c:473 ../gtk/gtkcolorsel.c:483\r
-msgid "Transparency of the color."\r
-msgstr "رەڭ سۈزۈكلۈكى."\r
-\r
-#: ../gtk/gtkcolorsel.c:490\r
-msgid "Color _name:"\r
-msgstr "رەڭ ئاتى(_N):"\r
-\r
-#: ../gtk/gtkcolorsel.c:504\r
-msgid ""\r
-"You can enter an HTML-style hexadecimal color value, or simply a color name "\r
-"such as 'orange' in this entry."\r
-msgstr ""\r
-"سىز بۇ جايغا HTML ئۇسلۇبىدىكى 16 لىك سىستېما رەت نومۇرى ياكى “orange” گە "\r
-"ئوخشاش رەڭ ئاتلىرىنى كىرگۈزسىڭىز بولىدۇ."\r
-\r
-#: ../gtk/gtkcolorsel.c:536\r
-msgid "_Palette:"\r
-msgstr "رەڭ تاختىسى(_P):"\r
-\r
-#: ../gtk/gtkcolorsel.c:565\r
-msgid "Color Wheel"\r
-msgstr "رەڭ ھالقىسى"\r
-\r
-#: ../gtk/gtkcolorsel.c:1038\r
-msgid ""\r
-"The previously-selected color, for comparison to the color you're selecting "\r
-"now. You can drag this color to a palette entry, or select this color as "\r
-"current by dragging it to the other color swatch alongside."\r
-msgstr ""\r
-"ئىلگىرى تاللانغان رەڭ، سىزنىڭ ھازىر تاللىغىنىڭىزغا قارىتىلغان. سىز بۇ رەڭنى "\r
-"رەڭ تاللاش تاختىسىغا سۆرەپ ياكى بۇ رەڭنى كېيىنكى رەڭ كاتەكچىسىگە سۆرەپ "\r
-"نۆۋەتتىكى رەڭ قىلىپ بەلگىلىسىڭىز بولىدۇ."\r
-\r
-#: ../gtk/gtkcolorsel.c:1044\r
-msgid ""\r
-"The color you've chosen. You can drag this color to a palette entry to save "\r
-"it for use in the future."\r
-msgstr ""\r
-"سىز تاللىغان رەڭ .سىز بۇ رەڭنى تاللاپ ساقلاپ قويۇپ كىيىن ئىشلەتسىڭىز بولىدۇ."\r
-\r
-#: ../gtk/gtkcolorsel.c:1050\r
-msgid ""\r
-"The previously-selected color, for comparison to the color you're selecting "\r
-"now."\r
-msgstr "ئىلگىرى تاللانغان رەڭ، سىزنىڭ ھازىر تاللىغىنىڭىزغا قارىتىلغان."\r
-\r
-#: ../gtk/gtkcolorsel.c:1054\r
-msgid "The color you've chosen."\r
-msgstr "سىز تاللىغان رەڭ."\r
-\r
-#: ../gtk/gtkcolorsel.c:1456\r
-msgid "_Save color here"\r
-msgstr "رەڭنى بۇ جايغا ساقلا(_S)"\r
-\r
-#: ../gtk/gtkcolorsel.c:1661\r
-msgid ""\r
-"Click this palette entry to make it the current color. To change this entry, "\r
-"drag a color swatch here or right-click it and select \"Save color here.\""\r
-msgstr ""\r
-"رەڭ تاختىسىدىكى رەڭنى تاق چەكسىڭىز نۆۋەتتىكى رەڭ بولۇپ تاللىنىدۇ. بۇ تۈرنى "\r
-"ئۆزگەرتىشتە، رەڭنى بۇ جايغا سۆرەڭ ياكى چاشقىنەك ئوڭ توپچىسىنى چەككەندىن "\r
-"كېيىن بۇ جايدا «رەڭنى بۇ جايغا ساقلا»نى تاللاڭ."\r
-\r
-#: ../gtk/gtkcolorseldialog.c:189\r
-msgid "Color Selection"\r
-msgstr "رەڭ تاللاش"\r
-\r
-#. Translate to the default units to use for presenting\r
-#. * lengths to the user. Translate to default:inch if you\r
-#. * want inches, otherwise translate to default:mm.\r
-#. * Do *not* translate it to "predefinito:mm", if it\r
-#. * it isn't default:mm or default:inch it will not work\r
-#.\r
-#: ../gtk/gtkcustompaperunixdialog.c:116\r
-msgid "default:mm"\r
-msgstr "default:mm"\r
-\r
-#. And show the custom paper dialog\r
-#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3253\r
-msgid "Manage Custom Sizes"\r
-msgstr "ئىختىيارى چوڭلۇقنى باشقۇر"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:532 ../gtk/gtkpagesetupunixdialog.c:788\r
-msgid "inch"\r
-msgstr "دىيۇيم"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:534 ../gtk/gtkpagesetupunixdialog.c:786\r
-msgid "mm"\r
-msgstr "mm"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:579\r
-msgid "Margins from Printer..."\r
-msgstr "پرىنتېر ئارىلىقى…"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:745\r
-#, c-format\r
-msgid "Custom Size %d"\r
-msgstr "ئىختىيارى چوڭلۇقى %d"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:1057\r
-msgid "_Width:"\r
-msgstr "كەڭلىك(_W):"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:1069\r
-msgid "_Height:"\r
-msgstr "ئېگىزلىك(_H):"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:1081\r
-msgid "Paper Size"\r
-msgstr "قەغەز چوڭلۇقى"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:1090\r
-msgid "_Top:"\r
-msgstr "ئۈستى(_T):"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:1102\r
-msgid "_Bottom:"\r
-msgstr "ئاستى(_B):"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:1114\r
-msgid "_Left:"\r
-msgstr "سول(_L):"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:1126\r
-msgid "_Right:"\r
-msgstr "ئوڭ(_R):"\r
-\r
-#: ../gtk/gtkcustompaperunixdialog.c:1167\r
-msgid "Paper Margins"\r
-msgstr "قەغەز يان ئارىلىقى"\r
-\r
-#: ../gtk/gtkentry.c:8761 ../gtk/gtktextview.c:8272\r
-msgid "Input _Methods"\r
-msgstr "كىرگۈزگۈچ(_M)"\r
-\r
-#: ../gtk/gtkentry.c:8775 ../gtk/gtktextview.c:8286\r
-msgid "_Insert Unicode Control Character"\r
-msgstr "يۇنىكودلۇق كونترول بەلگىسى قىستۇر(_I)"\r
-\r
-#: ../gtk/gtkentry.c:10183\r
-msgid "Caps Lock and Num Lock are on"\r
-msgstr "Caps Lock ۋە Num Lock ئوچۇق"\r
-\r
-#: ../gtk/gtkentry.c:10185\r
-msgid "Num Lock is on"\r
-msgstr "Num Lock ئوچۇق"\r
-\r
-#: ../gtk/gtkentry.c:10187\r
-msgid "Caps Lock is on"\r
-msgstr "Caps Lock ئوچۇق"\r
-\r
-#. **************** *\r
-#. *  Private Macros  *\r
-#. * ****************\r
-#: ../gtk/gtkfilechooserbutton.c:62\r
-msgid "Select a File"\r
-msgstr "بىر ھۆججەت تاللاڭ"\r
-\r
-#: ../gtk/gtkfilechooserbutton.c:63 ../gtk/gtkfilechooserdefault.c:1865\r
-msgid "Desktop"\r
-msgstr "ئۈستەلئۈستى"\r
-\r
-#: ../gtk/gtkfilechooserbutton.c:64\r
-msgid "(None)"\r
-msgstr "(يوق)"\r
-\r
-#: ../gtk/gtkfilechooserbutton.c:1997\r
-msgid "Other..."\r
-msgstr "باشقا…"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:148\r
-msgid "Type name of new folder"\r
-msgstr "يېڭى ھۆججەت قىسقۇچنىڭ ئاتىنى كىرگۈزۈڭ"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:960\r
-msgid "Could not retrieve information about the file"\r
-msgstr "ھۆججەتكە مۇناسىۋەتلىك ئۇچۇرلارغا ئېرىشكىلى بولمايدۇ"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:971\r
-msgid "Could not add a bookmark"\r
-msgstr "قىسقۇچ قىستۇرالمايدۇ"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:982\r
-msgid "Could not remove bookmark"\r
-msgstr "قىسقۇچنى چىقىرىۋېتەلمەيدۇ"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:993\r
-msgid "The folder could not be created"\r
-msgstr "قىسقۇچ قۇرالمايدۇ"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:1006\r
-msgid ""\r
-"The folder could not be created, as a file with the same name already "\r
-"exists.  Try using a different name for the folder, or rename the file first."\r
-msgstr ""\r
-"قىسقۇچ قۇرالمايدۇ، چۈنكى ئوخشاش ئاتلىق قىسقۇچ مەۋجۇت. باشقا ئات ئىشلىتىپ "\r
-"سىناڭ ياكى ھۆججەت ئاتىنى ئۆزگەرتىڭ."\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:1020\r
-msgid "You need to choose a valid filename."\r
-msgstr "ئىناۋەتلىك ھۆججەت ئاتى تاللىشىڭىز زۆرۈر."\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:1023\r
-#, c-format\r
-msgid "Cannot create a file under %s as it is not a folder"\r
-msgstr "%s قىسقۇچ بولمىغاچقا، ئۇنىڭ ئاستىغا ھۆججەت قۇرغىلى بولمىدى."\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:1035\r
-msgid ""\r
-"You may only select folders.  The item that you selected is not a folder; "\r
-"try using a different item."\r
-msgstr ""\r
-"سىز قىسقۇچلا تاللىيالايسىز. سىز تاللىغان تۈر قىسقۇچ ئېمە؛ باشقا تۈرنى "\r
-"ئىشلىتىپ سىناڭ."\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:1045\r
-msgid "Invalid file name"\r
-msgstr "ئىناۋەتسىز ھۆججەت ئاتى"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:1055\r
-msgid "The folder contents could not be displayed"\r
-msgstr "قىسقۇچ مەزمۇنىنى كۆرسىتەلمىدى"\r
-\r
-#. Translators: the first string is a path and the second string\r
-#. * is a hostname. Nautilus and the panel contain the same string\r
-#. * to translate.\r
-#.\r
-#: ../gtk/gtkfilechooserdefault.c:1608\r
-#, c-format\r
-msgid "%1$s on %2$s"\r
-msgstr "%2$s ئۈستىدىكى %1$s"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:1784\r
-msgid "Search"\r
-msgstr "ئىزدە"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:1808 ../gtk/gtkfilechooserdefault.c:9494\r
-msgid "Recently Used"\r
-msgstr "يېقىندا ئىشلەتكەن"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:2464\r
-msgid "Select which types of files are shown"\r
-msgstr "كۆرسىتىلىدىغان ھۆججەت تىپىنى تاللاڭ"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:2823\r
-#, c-format\r
-msgid "Add the folder '%s' to the bookmarks"\r
-msgstr "'%s' قىسقۇچنى خەتكۈچكە قوش"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:2867\r
-#, c-format\r
-msgid "Add the current folder to the bookmarks"\r
-msgstr "نۆۋەتتىكى قىسقۇچنى خەتكۈچكە قوش"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:2869\r
-#, c-format\r
-msgid "Add the selected folders to the bookmarks"\r
-msgstr "تاللانغان قىسقۇچنى خەتكۈچكە قوش"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:2907\r
-#, c-format\r
-msgid "Remove the bookmark '%s'"\r
-msgstr "'%s' خەتكۈچنى چىقىرىۋەت"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:2909\r
-#, c-format\r
-msgid "Bookmark '%s' cannot be removed"\r
-msgstr "'%s' خەتكۈچنى چىقىرىۋېتەلمىدى."\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:2916 ../gtk/gtkfilechooserdefault.c:3800\r
-msgid "Remove the selected bookmark"\r
-msgstr "تاللانغان خەتكۈچنى چىقىرىۋەت"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:3479\r
-msgid "Remove"\r
-msgstr "چىقىرىۋەت"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:3488\r
-msgid "Rename..."\r
-msgstr "ئات ئۆزگەرت…"\r
-\r
-#. Accessible object name for the file chooser's shortcuts pane\r
-#: ../gtk/gtkfilechooserdefault.c:3652\r
-msgid "Places"\r
-msgstr "ئورۇن"\r
-\r
-#. Column header for the file chooser's shortcuts pane\r
-#: ../gtk/gtkfilechooserdefault.c:3709\r
-msgid "_Places"\r
-msgstr "ئورۇن(_P)"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:3788\r
-msgid "Add the selected folder to the Bookmarks"\r
-msgstr "تاللانغان قىسقۇچنى خەتكۈچكە قوش"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:3935\r
-msgid "Could not select file"\r
-msgstr "ھۆججەت تاللىيالمىدى"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:4108\r
-msgid "_Add to Bookmarks"\r
-msgstr "خەتكۈچكە قوش(_A)"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:4121\r
-msgid "Show _Hidden Files"\r
-msgstr "يوشۇرۇن ھۆججەتلەرنى كۆرسەت(_H)"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:4128\r
-msgid "Show _Size Column"\r
-msgstr "چوڭلۇق ئىستونىنى كۆرسەت(_S)"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:4353\r
-msgid "Files"\r
-msgstr "ھۆججەتلەر"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:4404\r
-msgid "Name"\r
-msgstr "ئاتى"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:4427\r
-msgid "Size"\r
-msgstr "چوڭلۇقى"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:4441\r
-msgid "Modified"\r
-msgstr "ئۆزگەرتكەن"\r
-\r
-#. Label\r
-#: ../gtk/gtkfilechooserdefault.c:4696 ../gtk/gtkprinteroptionwidget.c:793\r
-msgid "_Name:"\r
-msgstr "ئاتى(_N):"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:4739\r
-msgid "_Browse for other folders"\r
-msgstr "باشقا قىسقۇچقا كۆز يۈگۈرت(_B)"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:5009\r
-msgid "Type a file name"\r
-msgstr "ھۆججەت ئاتىنى كىرگۈزۈڭ"\r
-\r
-#. Create Folder\r
-#: ../gtk/gtkfilechooserdefault.c:5052\r
-msgid "Create Fo_lder"\r
-msgstr "قىسقۇچ قۇر(_L)"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:5062\r
-msgid "_Location:"\r
-msgstr "ئورنى(_L):"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:5267\r
-msgid "Save in _folder:"\r
-msgstr "قىسقۇچقا ساقلا(_F):"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:5269\r
-msgid "Create in _folder:"\r
-msgstr "قىسقۇچتا قۇر(_F):"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:6352\r
-#, c-format\r
-msgid "Could not read the contents of %s"\r
-msgstr "%s نىڭ مەزمۇنىنى ئوقۇيالمىدى"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:6356\r
-msgid "Could not read the contents of the folder"\r
-msgstr "قىسقۇچنىڭ مەزمۇنىنى ئوقۇيالمىدى"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:6449 ../gtk/gtkfilechooserdefault.c:6517\r
-#: ../gtk/gtkfilechooserdefault.c:6669\r
-msgid "Unknown"\r
-msgstr "نامەلۇم"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:6464\r
-msgid "%H:%M"\r
-msgstr "%H:%M"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:6466\r
-msgid "Yesterday at %H:%M"\r
-msgstr "ئەتە %H:%M"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:7135\r
-msgid "Cannot change to folder because it is not local"\r
-msgstr "قىسقۇچقا ئۆزگەرتەلمەيدۇ چۈنكى ئۇ يەرلىك قىسقۇچ ئەمەس"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:7732 ../gtk/gtkfilechooserdefault.c:7753\r
-#, c-format\r
-msgid "Shortcut %s already exists"\r
-msgstr "%s قىسقا يول مەۋجۇت"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:7843\r
-#, c-format\r
-msgid "Shortcut %s does not exist"\r
-msgstr "%s قىسقا يول مەۋجۇت ئەمەس"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:8102 ../gtk/gtkprintunixdialog.c:480\r
-#, c-format\r
-msgid "A file named \"%s\" already exists.  Do you want to replace it?"\r
-msgstr "\"%s\" ئاتلىق ھۆججەت مەۋجۇت. ئۇنى ئالماشتۇرۇۋېتەمسىز؟"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:8105 ../gtk/gtkprintunixdialog.c:484\r
-#, c-format\r
-msgid ""\r
-"The file already exists in \"%s\".  Replacing it will overwrite its contents."\r
-msgstr ""\r
-"ئىچىدە مەۋجۇت . ھۆججەتنى ئالماشتۇرسا ئىچىدىكى مەزمۇنلار قاپلىنىدۇ “%s”ھۆججەت "\r
-"ئاللىبۇرۇن"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:8110 ../gtk/gtkprintunixdialog.c:491\r
-msgid "_Replace"\r
-msgstr "ئالماشتۇر(_R)"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:8836\r
-msgid "Could not start the search process"\r
-msgstr "ئىزدىگۈچنى قوزغىتالمىدى"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:8837\r
-msgid ""\r
-"The program was not able to create a connection to the indexer daemon.  "\r
-"Please make sure it is running."\r
-msgstr ""\r
-"indexer daemon غا باغلىنالمىدى. indexer daemon نىڭ ئىجرا ھالىتىنى جەزملەڭ"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:8851\r
-msgid "Could not send the search request"\r
-msgstr "ئىزدەش ئىلتىماسىنى يوللىيالمىدى"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:9070\r
-msgid "Search:"\r
-msgstr "ئىزدە:"\r
-\r
-#: ../gtk/gtkfilechooserdefault.c:9678\r
-#, c-format\r
-msgid "Could not mount %s"\r
-msgstr "%s نى ئېگەرلىگىلى بولمىدى"\r
-\r
-#. Translators: this is shown in the feedback for Tab-completion in a file\r
-#. * chooser's text entry, when the user enters an invalid path.\r
-#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1179\r
-msgid "Invalid path"\r
-msgstr "ئىناۋەتسىز يول"\r
-\r
-#. translators: this text is shown when there are no completions\r
-#. * for something the user typed in a file chooser entry\r
-#.\r
-#: ../gtk/gtkfilechooserentry.c:1111\r
-msgid "No match"\r
-msgstr "ماس كېلىدىغىنى يوق"\r
-\r
-#. translators: this text is shown when there is exactly one completion\r
-#. * for something the user typed in a file chooser entry\r
-#.\r
-#: ../gtk/gtkfilechooserentry.c:1122\r
-msgid "Sole completion"\r
-msgstr "بىردىنبىر تاماملاش"\r
-\r
-#. translators: this text is shown when the text in a file chooser\r
-#. * entry is a complete filename, but could be continued to find\r
-#. * a longer match\r
-#.\r
-#: ../gtk/gtkfilechooserentry.c:1138\r
-msgid "Complete, but not unique"\r
-msgstr "تاماملاندى، ئەمما بىردىنبىر ئەمەس"\r
-\r
-#. Translators: this text is shown while the system is searching\r
-#. * for possible completions for filenames in a file chooser entry.\r
-#: ../gtk/gtkfilechooserentry.c:1170\r
-msgid "Completing..."\r
-msgstr "تاماملاۋاتىدۇ…"\r
-\r
-#. hostnames in a local_only file chooser?  user error\r
-#. Translators: this is shown in the feedback for Tab-completion in a\r
-#. * file chooser's text entry when the user enters something like\r
-#. * "sftp://blahblah" in an app that only supports local filenames.\r
-#: ../gtk/gtkfilechooserentry.c:1192 ../gtk/gtkfilechooserentry.c:1217\r
-msgid "Only local files may be selected"\r
-msgstr "يەرلىك ھۆججەتنىلا تاللىغىلى بولىدۇ"\r
-\r
-#. Another option is to complete the hostname based on the remote volumes that are mounted\r
-#. Translators: this is shown in the feedback for Tab-completion in a\r
-#. * file chooser's text entry when the user hasn't entered the first '/'\r
-#. * after a hostname and yet hits Tab (such as "sftp://blahblah[Tab]")\r
-#: ../gtk/gtkfilechooserentry.c:1201\r
-msgid "Incomplete hostname; end it with '/'"\r
-msgstr "كومپيۇتېر ئاتى كەمتۈك؛ '/' بىلەن ئاخىرلىشىدۇ"\r
-\r
-#. Translators: this is shown in the feedback for Tab-completion in a file\r
-#. * chooser's text entry when the user enters a path that does not exist\r
-#. * and then hits Tab\r
-#: ../gtk/gtkfilechooserentry.c:1212\r
-msgid "Path does not exist"\r
-msgstr "يول مەۋجۇت ئەمەس."\r
-\r
-#. The pointers we return for a GtkFileSystemVolume are opaque tokens; they are\r
-#. * really pointers to GDrive, GVolume or GMount objects.  We need an extra\r
-#. * token for the fake "File System" volume.  So, we'll return a pointer to\r
-#. * this particular string.\r
-#.\r
-#: ../gtk/gtkfilesystem.c:48\r
-msgid "File System"\r
-msgstr "ھۆججەت سىستېمىسى"\r
-\r
-#: ../gtk/gtkfontbutton.c:142 ../gtk/gtkfontbutton.c:266\r
-msgid "Pick a Font"\r
-msgstr "خەت نۇسخا تاللا"\r
-\r
-#. Initialize fields\r
-#: ../gtk/gtkfontbutton.c:260\r
-msgid "Sans 12"\r
-msgstr "UKIJ Tuz Tom 10"\r
-\r
-#: ../gtk/gtkfontbutton.c:785\r
-msgid "Font"\r
-msgstr "خەت نۇسخا"\r
-\r
-#. This is the default text shown in the preview entry, though the user\r
-#. can set it. Remember that some fonts only have capital letters.\r
-#: ../gtk/gtkfontsel.c:100\r
-msgid "abcdefghijk ABCDEFGHIJK"\r
-msgstr "ئا  ئە ب پ ت ج چ خ د ر ز ژ abcdefghijk ABCDEFGHIJK"\r
-\r
-#: ../gtk/gtkfontsel.c:366\r
-msgid "_Family:"\r
-msgstr "خەت نۇسخا تۈرى(_F):"\r
-\r
-#: ../gtk/gtkfontsel.c:372\r
-msgid "_Style:"\r
-msgstr "ئۇسلۇب(_S):"\r
-\r
-#: ../gtk/gtkfontsel.c:378\r
-msgid "Si_ze:"\r
-msgstr "چوڭلۇقى(_Z):"\r
-\r
-#. create the text entry widget\r
-#: ../gtk/gtkfontsel.c:554\r
-msgid "_Preview:"\r
-msgstr "ئالدىن كۆزەت(_P):"\r
-\r
-#: ../gtk/gtkfontsel.c:1653\r
-msgid "Font Selection"\r
-msgstr "خەت نۇسخا تاللاش"\r
-\r
-#. Remove this icon source so we don't keep trying to\r
-#. * load it.\r
-#.\r
-#: ../gtk/gtkiconfactory.c:1358\r
-#, c-format\r
-msgid "Error loading icon: %s"\r
-msgstr "سىنبەلگە يۈكلىگەندە خاتالىق كۆرۈلدى: %s"\r
-\r
-#: ../gtk/gtkicontheme.c:1336\r
-#, c-format\r
-msgid ""\r
-"Could not find the icon '%s'. The '%s' theme\n"\r
-"was not found either, perhaps you need to install it.\n"\r
-"You can get a copy from:\n"\r
-"\t%s"\r
-msgstr ""\r
-"'%s' سىنبەلگىنى تاپالمىدى. '%s' باش تېمىنىمۇ تاپالمىدى، ئۇنى ئورنىتىشىڭىز "\r
-"زۆرۈردەك قىلىدۇ. ئۇنىڭ كۆچۈرۈلمە نۇسخىسىنى تۆۋەندىكى ئادرېستىن تاپالايسىز:\n"\r
-"%s"\r
-\r
-#: ../gtk/gtkicontheme.c:1518\r
-#, c-format\r
-msgid "Icon '%s' not present in theme"\r
-msgstr "'%s' سىنبەلگە باش تېمىدا كۆرۈلمىدى"\r
-\r
-#: ../gtk/gtkicontheme.c:3038\r
-msgid "Failed to load icon"\r
-msgstr "سىنبەلگە يۈكلىيەلمىدى"\r
-\r
-#: ../gtk/gtkimmodule.c:526\r
-msgid "Simple"\r
-msgstr "ئاددىي"\r
-\r
-#: ../gtk/gtkimmulticontext.c:588\r
-msgctxt "input method menu"\r
-msgid "System"\r
-msgstr "سىستېما"\r
-\r
-#: ../gtk/gtkimmulticontext.c:598\r
-msgctxt "input method menu"\r
-msgid "None"\r
-msgstr "يوق"\r
-\r
-#: ../gtk/gtkimmulticontext.c:681\r
-#, c-format\r
-msgctxt "input method menu"\r
-msgid "System (%s)"\r
-msgstr "سىستېما(%s)"\r
-\r
-#. Open Link\r
-#: ../gtk/gtklabel.c:6245\r
-msgid "_Open Link"\r
-msgstr "ئۇلانما ئاچ(_O)"\r
-\r
-#. Copy Link Address\r
-#: ../gtk/gtklabel.c:6257\r
-msgid "Copy _Link Address"\r
-msgstr "ئۇلانما ئادرېسىنى كۆچۈر(_L)"\r
-\r
-#: ../gtk/gtklinkbutton.c:482\r
-msgid "Copy URL"\r
-msgstr "URL كۆچۈر"\r
-\r
-#: ../gtk/gtklinkbutton.c:645\r
-msgid "Invalid URI"\r
-msgstr "ئىناۋەتسىز URI"\r
-\r
-#. Description of --gtk-module=MODULES in --help output\r
-#: ../gtk/gtkmain.c:563\r
-msgid "Load additional GTK+ modules"\r
-msgstr "قوشۇمچە GTK+ بۆلىكىنى يۈكلە"\r
-\r
-#. Placeholder in --gtk-module=MODULES in --help output\r
-#: ../gtk/gtkmain.c:564\r
-msgid "MODULES"\r
-msgstr "بۆلەك"\r
-\r
-#. Description of --g-fatal-warnings in --help output\r
-#: ../gtk/gtkmain.c:566\r
-msgid "Make all warnings fatal"\r
-msgstr "ھەممە ئاگاھلاندۇرۇشنى ئېغىر خاتالىققا ئۆزگەرت"\r
-\r
-#. Description of --gtk-debug=FLAGS in --help output\r
-#: ../gtk/gtkmain.c:569\r
-msgid "GTK+ debugging flags to set"\r
-msgstr "تەڭشەيدىغان GTK+ سازلاش بەلگىسى"\r
-\r
-#. Description of --gtk-no-debug=FLAGS in --help output\r
-#: ../gtk/gtkmain.c:572\r
-msgid "GTK+ debugging flags to unset"\r
-msgstr "قالدۇرماقچى بولغان GTK+ سازلاش بەلگىسى"\r
-\r
-#. Translate to default:RTL if you want your widgets\r
-#. * to be RTL, otherwise translate to default:LTR.\r
-#. * Do *not* translate it to "predefinito:LTR", if it\r
-#. * it isn't default:LTR or default:RTL it will not work\r
-#.\r
-#: ../gtk/gtkmain.c:846\r
-msgid "default:LTR"\r
-msgstr "default:RTL"\r
-\r
-#: ../gtk/gtkmain.c:910\r
-#, c-format\r
-msgid "Cannot open display: %s"\r
-msgstr "ئېكران ئېچىلمىدى: (%s)"\r
-\r
-#: ../gtk/gtkmain.c:976\r
-msgid "GTK+ Options"\r
-msgstr "GTK+ تاللانما"\r
-\r
-#: ../gtk/gtkmain.c:976\r
-msgid "Show GTK+ Options"\r
-msgstr "GTK+ تاللانما كۆرسەت"\r
-\r
-#: ../gtk/gtkmountoperation.c:491\r
-msgid "Co_nnect"\r
-msgstr "باغلا(_N)"\r
-\r
-#: ../gtk/gtkmountoperation.c:558\r
-msgid "Connect _anonymously"\r
-msgstr "ئاتسىز باغلىنىش(_A)"\r
-\r
-#: ../gtk/gtkmountoperation.c:567\r
-msgid "Connect as u_ser:"\r
-msgstr "باغلىنىش سالاھىيىتى(_S):"\r
-\r
-#: ../gtk/gtkmountoperation.c:605\r
-msgid "_Username:"\r
-msgstr "ئىشلەتكۈچى ئاتى(_U):"\r
-\r
-#: ../gtk/gtkmountoperation.c:610\r
-msgid "_Domain:"\r
-msgstr "دائىرە(_D):"\r
-\r
-#: ../gtk/gtkmountoperation.c:616\r
-msgid "_Password:"\r
-msgstr "ئىم(_P):"\r
-\r
-#: ../gtk/gtkmountoperation.c:634\r
-msgid "Forget password _immediately"\r
-msgstr "ئىمنى دەرھال ئۇنتۇ(_I)"\r
-\r
-#: ../gtk/gtkmountoperation.c:644\r
-msgid "Remember password until you _logout"\r
-msgstr "تىزىمدىن چىقىشتىن ئىلگىرى ئىمنى ئەستە تۇت(_L)"\r
-\r
-#: ../gtk/gtkmountoperation.c:654\r
-msgid "Remember _forever"\r
-msgstr "مەڭگۈ ئەستە تۇت(_F)"\r
-\r
-#: ../gtk/gtkmountoperation.c:883\r
-#, c-format\r
-msgid "Unknown Application (PID %d)"\r
-msgstr "نامەلۇم پروگرامما (PID %d)"\r
-\r
-#: ../gtk/gtkmountoperation.c:1066\r
-msgid "Unable to end process"\r
-msgstr "ئىجرانى ئاخىرلاشتۇرالمايدۇ"\r
-\r
-#: ../gtk/gtkmountoperation.c:1103\r
-msgid "_End Process"\r
-msgstr "ئىجرانى ئاخىرلاشتۇر(_E)"\r
-\r
-#: ../gtk/gtkmountoperation-stub.c:64\r
-#, c-format\r
-msgid "Cannot kill process with PID %d. Operation is not implemented."\r
-msgstr "PID %d ئىجرانى يوقىتالمايدۇ. مەشغۇلاتنى ئىجرا قىلغىلى بولمايدۇ."\r
-\r
-#. translators: this string is a name for the 'less' command\r
-#: ../gtk/gtkmountoperation-x11.c:859\r
-msgid "Terminal Pager"\r
-msgstr "تېرمىنال ئوقۇغۇچ"\r
-\r
-#: ../gtk/gtkmountoperation-x11.c:860\r
-msgid "Top Command"\r
-msgstr "كۆپ ئىشلىتىدىغان بۇيرۇق"\r
-\r
-#: ../gtk/gtkmountoperation-x11.c:861\r
-msgid "Bourne Again Shell"\r
-msgstr "Bourne Again Shell"\r
-\r
-#: ../gtk/gtkmountoperation-x11.c:862\r
-msgid "Bourne Shell"\r
-msgstr "Bourne Shell"\r
-\r
-#: ../gtk/gtkmountoperation-x11.c:863\r
-msgid "Z Shell"\r
-msgstr "Z Shell"\r
-\r
-#: ../gtk/gtkmountoperation-x11.c:960\r
-#, c-format\r
-msgid "Cannot end process with PID %d: %s"\r
-msgstr "PID %d ئىجرانى ئاخىرلاشتۇرالمايدۇ: %s"\r
-\r
-#: ../gtk/gtknotebook.c:4805 ../gtk/gtknotebook.c:7459\r
-#, c-format\r
-msgid "Page %u"\r
-msgstr "%u-بەت"\r
-\r
-#. Translators: the format here is used to build the string that will be rendered\r
-#. * in the number emblem.\r
-#.\r
-#: ../gtk/gtknumerableicon.c:481\r
-#, c-format\r
-msgctxt "Number format"\r
-msgid "%d"\r
-msgstr "%d"\r
-\r
-#: ../gtk/gtkpagesetup.c:648 ../gtk/gtkpapersize.c:849\r
-#: ../gtk/gtkpapersize.c:889\r
-msgid "Not a valid page setup file"\r
-msgstr "ئىناۋەتلىك بەت تەڭشەك ھۆججىتى ئەمەس"\r
-\r
-#: ../gtk/gtkpagesetupunixdialog.c:177\r
-msgid "Any Printer"\r
-msgstr "خالىغان پرىنتېر"\r
-\r
-#: ../gtk/gtkpagesetupunixdialog.c:177\r
-msgid "For portable documents"\r
-msgstr "ئەپچىل پۈتۈك ئۈچۈن"\r
-\r
-#: ../gtk/gtkpagesetupunixdialog.c:807\r
-#, c-format\r
-msgid ""\r
-"Margins:\n"\r
-" Left: %s %s\n"\r
-" Right: %s %s\n"\r
-" Top: %s %s\n"\r
-" Bottom: %s %s"\r
-msgstr ""\r
-"يان ئارىلىقى:\n"\r
-"سول: %s %s\n"\r
-"ئوڭ: %s %s\n"\r
-" ئۈستى: %s %s\n"\r
-" ئاستى: %s %s"\r
-\r
-#: ../gtk/gtkpagesetupunixdialog.c:856 ../gtk/gtkprintunixdialog.c:3304\r
-msgid "Manage Custom Sizes..."\r
-msgstr "ئىختىيارى چوڭلۇق باشقۇر…"\r
-\r
-#: ../gtk/gtkpagesetupunixdialog.c:907\r
-msgid "_Format for:"\r
-msgstr "فورمات(_F):"\r
-\r
-#: ../gtk/gtkpagesetupunixdialog.c:929 ../gtk/gtkprintunixdialog.c:3476\r
-msgid "_Paper size:"\r
-msgstr "قەغەز چوڭلۇقى(_P):"\r
-\r
-#: ../gtk/gtkpagesetupunixdialog.c:960\r
-msgid "_Orientation:"\r
-msgstr "يۆنىلىش(_O):"\r
-\r
-#: ../gtk/gtkpagesetupunixdialog.c:1024 ../gtk/gtkprintunixdialog.c:3538\r
-msgid "Page Setup"\r
-msgstr "بەت تەڭشەك"\r
-\r
-#: ../gtk/gtkpathbar.c:157\r
-msgid "Up Path"\r
-msgstr "ئۈستۈنكى يول"\r
-\r
-#: ../gtk/gtkpathbar.c:159\r
-msgid "Down Path"\r
-msgstr "ئاستىنقى يول"\r
-\r
-#: ../gtk/gtkpathbar.c:1518\r
-msgid "File System Root"\r
-msgstr "ھۆججەت سىستېما غولى"\r
-\r
-#: ../gtk/gtkprintbackend.c:749\r
-msgid "Authentication"\r
-msgstr "سالاھىيەت دەلىللەش"\r
-\r
-#: ../gtk/gtkprinteroptionwidget.c:686\r
-msgid "Not available"\r
-msgstr "ئىشلەتكىلى بولمايدۇ"\r
-\r
-#: ../gtk/gtkprinteroptionwidget.c:786\r
-msgid "Select a folder"\r
-msgstr "قىسقۇچ تاللاڭ"\r
-\r
-#: ../gtk/gtkprinteroptionwidget.c:805\r
-msgid "_Save in folder:"\r
-msgstr "قىسقۇچتا ساقلا(_S):"\r
-\r
-#. translators: this string is the default job title for print\r
-#. * jobs. %s gets replaced by the application name, %d gets replaced\r
-#. * by the job number.\r
-#.\r
-#: ../gtk/gtkprintoperation.c:263\r
-#, c-format\r
-msgid "%s job #%d"\r
-msgstr "%s نىڭ بېسىش ۋەزىپىسى #%d"\r
-\r
-#: ../gtk/gtkprintoperation.c:1768\r
-msgctxt "print operation status"\r
-msgid "Initial state"\r
-msgstr "دەسلەپكى ھالەت"\r
-\r
-#: ../gtk/gtkprintoperation.c:1769\r
-msgctxt "print operation status"\r
-msgid "Preparing to print"\r
-msgstr "بېسىشقا تەييارلىنىۋاتىدۇ"\r
-\r
-#: ../gtk/gtkprintoperation.c:1770\r
-msgctxt "print operation status"\r
-msgid "Generating data"\r
-msgstr "سانلىق مەلۇمات ياساۋاتىدۇ"\r
-\r
-#: ../gtk/gtkprintoperation.c:1771\r
-msgctxt "print operation status"\r
-msgid "Sending data"\r
-msgstr "ئۇچۇر يوللاۋاتىدۇ"\r
-\r
-#: ../gtk/gtkprintoperation.c:1772\r
-msgctxt "print operation status"\r
-msgid "Waiting"\r
-msgstr "ساقلاۋاتىدۇ"\r
-\r
-#: ../gtk/gtkprintoperation.c:1773\r
-msgctxt "print operation status"\r
-msgid "Blocking on issue"\r
-msgstr "توسۇلۇش مەسىلىسى"\r
-\r
-#: ../gtk/gtkprintoperation.c:1774\r
-msgctxt "print operation status"\r
-msgid "Printing"\r
-msgstr "بېسىۋاتىدۇ"\r
-\r
-#: ../gtk/gtkprintoperation.c:1775\r
-msgctxt "print operation status"\r
-msgid "Finished"\r
-msgstr "تاماملاندى"\r
-\r
-#: ../gtk/gtkprintoperation.c:1776\r
-msgctxt "print operation status"\r
-msgid "Finished with error"\r
-msgstr "خاتالىق بىلەن تاماملاندى"\r
-\r
-#: ../gtk/gtkprintoperation.c:2343\r
-#, c-format\r
-msgid "Preparing %d"\r
-msgstr "%d تەييارلاۋاتىدۇ"\r
-\r
-#: ../gtk/gtkprintoperation.c:2345 ../gtk/gtkprintoperation.c:2975\r
-msgid "Preparing"\r
-msgstr "تەييارلىق ھالەت"\r
-\r
-#: ../gtk/gtkprintoperation.c:2348\r
-#, c-format\r
-msgid "Printing %d"\r
-msgstr "%d نى بېسىۋاتىدۇ"\r
-\r
-#: ../gtk/gtkprintoperation.c:3005\r
-msgid "Error creating print preview"\r
-msgstr "بېسىشنى ئالدىن كۆزىتىش قۇرۇشتا خاتالىق كۆرۈلدى"\r
-\r
-#: ../gtk/gtkprintoperation.c:3008\r
-msgid "The most probable reason is that a temporary file could not be created."\r
-msgstr ""\r
-"مۇمكىنچىلىكى يۇقىرى سەۋەب ۋاقىتلىق ھۆججەت قۇرغىلى بولماسلىق بولۇشى مۇمكىن."\r
-\r
-#: ../gtk/gtkprintoperation-unix.c:304\r
-msgid "Error launching preview"\r
-msgstr "ئالدىن كۆزىتىشنى قوزغىتىشتا خاتالىق كۆرۈلدى"\r
-\r
-#: ../gtk/gtkprintoperation-unix.c:477 ../gtk/gtkprintoperation-win32.c:1447\r
-msgid "Application"\r
-msgstr "پروگرامما"\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:611\r
-msgid "Printer offline"\r
-msgstr "پرىنتېر ئۈزۈك ھالەتتە"\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:613\r
-msgid "Out of paper"\r
-msgstr "قەغەز يېتىشمىدى"\r
-\r
-#. Translators: this is a printer status.\r
-#: ../gtk/gtkprintoperation-win32.c:615\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2002\r
-msgid "Paused"\r
-msgstr "ۋاقىتلىق توختىدى"\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:617\r
-msgid "Need user intervention"\r
-msgstr "ئىشلەتكۈچىنىڭ مەشغۇلاتىغا موھتاج"\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:717\r
-msgid "Custom size"\r
-msgstr "ئىختىيارى چوڭلۇق"\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:1539\r
-msgid "No printer found"\r
-msgstr "پرىنتېر تېپىلمىدى"\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:1566\r
-msgid "Invalid argument to CreateDC"\r
-msgstr "CreateDC نىڭ پارامېتىرى ئىناۋەتسىز"\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:1602 ../gtk/gtkprintoperation-win32.c:1829\r
-msgid "Error from StartDoc"\r
-msgstr "StartDoc دىن خاتالىق كۆرۈلدى"\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:1684 ../gtk/gtkprintoperation-win32.c:1707\r
-#: ../gtk/gtkprintoperation-win32.c:1755\r
-msgid "Not enough free memory"\r
-msgstr "يېتەرلىك بوش ئەسلەك يوق."\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:1760\r
-msgid "Invalid argument to PrintDlgEx"\r
-msgstr "PrintDlgEx نىڭ پارامېتىرى ئىناۋەتسىز"\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:1765\r
-msgid "Invalid pointer to PrintDlgEx"\r
-msgstr "PrintDlgEx نىڭ ئىسترېلكىسى ئىناۋەتسىز"\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:1770\r
-msgid "Invalid handle to PrintDlgEx"\r
-msgstr "PrintDlgEx نىڭ تۇتقۇسى ئىناۋەتسىز"\r
-\r
-#: ../gtk/gtkprintoperation-win32.c:1775\r
-msgid "Unspecified error"\r
-msgstr "ئېنىقسىز خاتالىق"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:618\r
-msgid "Getting printer information failed"\r
-msgstr "پرىنتېر ئۇچۇرىغا ئېرىشەلمىدى"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:1871\r
-msgid "Getting printer information..."\r
-msgstr "پرىنتېر ئۇچۇرىغا ئېرىشىۋاتىدۇ…"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2145\r
-msgid "Printer"\r
-msgstr "پرىنتېر"\r
-\r
-#. Translators: this is the header for the location column in the print dialog\r
-#: ../gtk/gtkprintunixdialog.c:2155\r
-msgid "Location"\r
-msgstr "ئورنى"\r
-\r
-#. Translators: this is the header for the printer status column in the print dialog\r
-#: ../gtk/gtkprintunixdialog.c:2166\r
-msgid "Status"\r
-msgstr "ھالىتى"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2192\r
-msgid "Range"\r
-msgstr "دائىرىسى"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2196\r
-msgid "_All Pages"\r
-msgstr "ھەممە بەت(_A)"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2203\r
-msgid "C_urrent Page"\r
-msgstr "نۆۋەتتىكى بەت(_U)"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2213\r
-msgid "Se_lection"\r
-msgstr "تاللا(_L)"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2222\r
-msgid "Pag_es:"\r
-msgstr "بەتلەر(_E):"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2223\r
-msgid ""\r
-"Specify one or more page ranges,\n"\r
-" e.g. 1-3,7,11"\r
-msgstr ""\r
-"بىر ياكى كۆپ بەت دائىرە بەلگىلەڭ،\n"\r
-"مەسىلەن: 1-3,7,11"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2233\r
-msgid "Pages"\r
-msgstr "بەتلەر"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2246\r
-msgid "Copies"\r
-msgstr "نۇسخا"\r
-\r
-#. FIXME chpe: too much space between Copies and spinbutton, put those 2 in a hbox and make it span 2 columns\r
-#: ../gtk/gtkprintunixdialog.c:2251\r
-msgid "Copie_s:"\r
-msgstr "نۇسخا سانى(_S):"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2269\r
-msgid "C_ollate"\r
-msgstr "رەت بويىچە(_O)"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2277\r
-msgid "_Reverse"\r
-msgstr "ئەكسىچە(_R)"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:2297\r
-msgid "General"\r
-msgstr "ئادەتتىكى"\r
-\r
-#. Translators: These strings name the possible arrangements of\r
-#. * multiple pages on a sheet when printing (same as in gtkprintbackendcups.c)\r
-#.\r
-#. Translators: These strings name the possible arrangements of\r
-#. * multiple pages on a sheet when printing\r
-#.\r
-#: ../gtk/gtkprintunixdialog.c:3037\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3535\r
-msgid "Left to right, top to bottom"\r
-msgstr "سولدىن ئوڭغا، ئۈستىدىن ئاستىغا"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3037\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3535\r
-msgid "Left to right, bottom to top"\r
-msgstr "سولدىن ئوڭغا، ئاستىدىن ئۈستىگە"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3038\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3536\r
-msgid "Right to left, top to bottom"\r
-msgstr "ئوڭدىن سولغا، ئۈستىدىن ئاستىغا"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3038\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3536\r
-msgid "Right to left, bottom to top"\r
-msgstr "ئوڭدىن سولغا، ئاستىدىن ئۈستىگە"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3039\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3537\r
-msgid "Top to bottom, left to right"\r
-msgstr "ئۈستىدىن ئاستىغا، سولدىن ئوڭغا"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3039\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3537\r
-msgid "Top to bottom, right to left"\r
-msgstr "ئۈستىدىن ئاستىغا، ئوڭدىن سولغا"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3040\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538\r
-msgid "Bottom to top, left to right"\r
-msgstr "ئاستىدىن ئۈستىگە، سولدىن ئوڭغا"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3040\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3538\r
-msgid "Bottom to top, right to left"\r
-msgstr "ئاستىدىن ئۈستىگە، ئوڭدىن سولغا"\r
-\r
-#. Translators, this string is used to label the option in the print\r
-#. * dialog that controls in what order multiple pages are arranged\r
-#.\r
-#: ../gtk/gtkprintunixdialog.c:3044 ../gtk/gtkprintunixdialog.c:3057\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3570\r
-msgid "Page Ordering"\r
-msgstr "بەت تەرتىپى"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3073\r
-msgid "Left to right"\r
-msgstr "سولدىن ئوڭغا"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3074\r
-msgid "Right to left"\r
-msgstr "ئوڭدىن سولغا"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3086\r
-msgid "Top to bottom"\r
-msgstr "ئۈستىدىن ئاستىغا"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3087\r
-msgid "Bottom to top"\r
-msgstr "ئاستىدىن ئۈستىگە"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3327\r
-msgid "Layout"\r
-msgstr "ئۇسلۇب"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3331\r
-msgid "T_wo-sided:"\r
-msgstr "قوش يۈزلۈك(_W):"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3346\r
-msgid "Pages per _side:"\r
-msgstr "ھەربىر يۈزىنىڭ بەت سانى(_S):"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3363\r
-msgid "Page or_dering:"\r
-msgstr "بەت تەرتىپى(_D):"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3379\r
-msgid "_Only print:"\r
-msgstr "بېسىشلا(_O):"\r
-\r
-#. In enum order\r
-#: ../gtk/gtkprintunixdialog.c:3394\r
-msgid "All sheets"\r
-msgstr "ھەممە ۋاراقلار"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3395\r
-msgid "Even sheets"\r
-msgstr "تاق ۋاراقلار"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3396\r
-msgid "Odd sheets"\r
-msgstr "جۈپ ۋاراقلار"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3399\r
-msgid "Sc_ale:"\r
-msgstr "نىسبەت(_A):"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3426\r
-msgid "Paper"\r
-msgstr "قەغەز"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3430\r
-msgid "Paper _type:"\r
-msgstr "قەغەز تىپى(_T):"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3445\r
-msgid "Paper _source:"\r
-msgstr "قەغەز مەنبەسى(_S):"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3460\r
-msgid "Output t_ray:"\r
-msgstr "قەغەز قۇتىسى(_R):"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3500\r
-msgid "Or_ientation:"\r
-msgstr "يۆنىلىش(_I):"\r
-\r
-#. In enum order\r
-#: ../gtk/gtkprintunixdialog.c:3515\r
-msgid "Portrait"\r
-msgstr "بوي يۆنىلىش"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3516\r
-msgid "Landscape"\r
-msgstr "توغرا يۆنىلىش"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3517\r
-msgid "Reverse portrait"\r
-msgstr "تەتۈر بوي يۆنىلىش"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3518\r
-msgid "Reverse landscape"\r
-msgstr "تەتۈر توغرا يۆنىلىش"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3563\r
-msgid "Job Details"\r
-msgstr "ۋەزىپە تەپسىلاتى"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3569\r
-msgid "Pri_ority:"\r
-msgstr "ئالدىنلىق(_O):"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3584\r
-msgid "_Billing info:"\r
-msgstr "ھەق ھېسابلاش ئۇچۇرى(_B):"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3602\r
-msgid "Print Document"\r
-msgstr "پۈتۈك باس"\r
-\r
-#. Translators: this is one of the choices for the print at option\r
-#. * in the print dialog\r
-#.\r
-#: ../gtk/gtkprintunixdialog.c:3611\r
-msgid "_Now"\r
-msgstr "دەرھال(_N)"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3622\r
-msgid "A_t:"\r
-msgstr "دە(_T):"\r
-\r
-#. Translators: Ability to parse the am/pm format depends on actual locale.\r
-#. * You can remove the am/pm values below for your locale if they are not\r
-#. * supported.\r
-#.\r
-#: ../gtk/gtkprintunixdialog.c:3628\r
-msgid ""\r
-"Specify the time of print,\n"\r
-" e.g. 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"\r
-msgstr ""\r
-"بېسىش ۋاقتى بەلگىلىنىدۇ،\n"\r
-" مەسىلەن: 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3638\r
-msgid "Time of print"\r
-msgstr "بېسىش ۋاقتى"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3654\r
-msgid "On _hold"\r
-msgstr "كۈت(_H)"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3655\r
-msgid "Hold the job until it is explicitly released"\r
-msgstr "ۋەزىپىنى ئېنىق ئاجرىتىلغانغا قەدەر داۋاملاشتۇر"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3675\r
-msgid "Add Cover Page"\r
-msgstr "مۇقاۋا بەت قوش"\r
-\r
-#. Translators, this is the label used for the option in the print\r
-#. * dialog that controls the front cover page.\r
-#.\r
-#: ../gtk/gtkprintunixdialog.c:3684\r
-msgid "Be_fore:"\r
-msgstr "ئالدى(_F):"\r
-\r
-#. Translators, this is the label used for the option in the print\r
-#. * dialog that controls the back cover page.\r
-#.\r
-#: ../gtk/gtkprintunixdialog.c:3702\r
-msgid "_After:"\r
-msgstr "كەينى(_A):"\r
-\r
-#. Translators: this is the tab label for the notebook tab containing\r
-#. * job-specific options in the print dialog\r
-#.\r
-#: ../gtk/gtkprintunixdialog.c:3720\r
-msgid "Job"\r
-msgstr "ۋەزىپە"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3786\r
-msgid "Advanced"\r
-msgstr "ئالىي"\r
-\r
-#. Translators: this will appear as tab label in print dialog.\r
-#: ../gtk/gtkprintunixdialog.c:3824\r
-msgid "Image Quality"\r
-msgstr "سۈرەت سۈپىتى"\r
-\r
-#. Translators: this will appear as tab label in print dialog.\r
-#: ../gtk/gtkprintunixdialog.c:3828\r
-msgid "Color"\r
-msgstr "رەڭ"\r
-\r
-#. Translators: this will appear as tab label in print dialog.\r
-#. It's a typographical term, as in "Binding and finishing"\r
-#: ../gtk/gtkprintunixdialog.c:3833\r
-msgid "Finishing"\r
-msgstr "تامام"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3843\r
-msgid "Some of the settings in the dialog conflict"\r
-msgstr "سۆزلەشكۈ رامكىسىدىكى بەزى تەڭشەكلەردە توقۇنۇش بار"\r
-\r
-#: ../gtk/gtkprintunixdialog.c:3866\r
-msgid "Print"\r
-msgstr "باس"\r
-\r
-#: ../gtk/gtkrc.c:948\r
-#, c-format\r
-msgid "Unable to locate image file in pixmap_path: \"%s\""\r
-msgstr "پىكسېل رەسىم يولىدىن رەسىم ھۆججىتى تېپىلمىدى:“%s”"\r
-\r
-#: ../gtk/gtkrecentaction.c:165 ../gtk/gtkrecentaction.c:173\r
-#: ../gtk/gtkrecentchoosermenu.c:608 ../gtk/gtkrecentchoosermenu.c:616\r
-#, c-format\r
-msgid "This function is not implemented for widgets of class '%s'"\r
-msgstr "فۇنكسىيە “%s” تۈردىكى تۇلۇقتا ئەمەلگە ئاشمايدۇ"\r
-\r
-#: ../gtk/gtkrecentchooserdefault.c:483\r
-msgid "Select which type of documents are shown"\r
-msgstr "كۆرسەتمەكچى بولغان پۈتۈك تىپىنى تاللاڭ"\r
-\r
-#: ../gtk/gtkrecentchooserdefault.c:1137 ../gtk/gtkrecentchooserdefault.c:1174\r
-#, c-format\r
-msgid "No item for URI '%s' found"\r
-msgstr "URI“%s” تۈرنى تاپالمىدى"\r
-\r
-#: ../gtk/gtkrecentchooserdefault.c:1301\r
-msgid "Untitled filter"\r
-msgstr "تېمىسىز سۈزگۈچ"\r
-\r
-#: ../gtk/gtkrecentchooserdefault.c:1654\r
-msgid "Could not remove item"\r
-msgstr "تۈرنى چىقىرىۋېتەلمەيدۇ"\r
-\r
-#: ../gtk/gtkrecentchooserdefault.c:1698\r
-msgid "Could not clear list"\r
-msgstr "تىزىمنى تازىلىيالمايدۇ"\r
-\r
-#: ../gtk/gtkrecentchooserdefault.c:1782\r
-msgid "Copy _Location"\r
-msgstr "ئورۇن كۆچۈر(_L)"\r
-\r
-#: ../gtk/gtkrecentchooserdefault.c:1795\r
-msgid "_Remove From List"\r
-msgstr "تىزىمدىن چىقىرىۋەت(_R)"\r
-\r
-#: ../gtk/gtkrecentchooserdefault.c:1804\r
-msgid "_Clear List"\r
-msgstr "تىزىمنى تازىلا(_C)"\r
-\r
-#: ../gtk/gtkrecentchooserdefault.c:1818\r
-msgid "Show _Private Resources"\r
-msgstr "شەخسى مەنبەنى كۆرسەت(_P)"\r
-\r
-#. we create a placeholder menuitem, to be used in case\r
-#. * the menu is empty. this placeholder will stay around\r
-#. * for the entire lifetime of the menu, and we just hide it\r
-#. * when it's not used. we have to do this, and do it here,\r
-#. * because we need a marker for the beginning of the recent\r
-#. * items list, so that we can insert the new items at the\r
-#. * right place when idly populating the menu in case the\r
-#. * user appended or prepended custom menu items to the\r
-#. * recent chooser menu widget.\r
-#.\r
-#: ../gtk/gtkrecentchoosermenu.c:362\r
-msgid "No items found"\r
-msgstr "تۈر تېپىلمىدى"\r
-\r
-#: ../gtk/gtkrecentchoosermenu.c:528 ../gtk/gtkrecentchoosermenu.c:584\r
-#, c-format\r
-msgid "No recently used resource found with URI `%s'"\r
-msgstr "يېقىندا ئىشلىتىلگەن مەنبەدىن URI“%s” تېپىلمىدى"\r
-\r
-#: ../gtk/gtkrecentchoosermenu.c:794\r
-#, c-format\r
-msgid "Open '%s'"\r
-msgstr "'%s' ئاچ"\r
-\r
-#: ../gtk/gtkrecentchoosermenu.c:824\r
-msgid "Unknown item"\r
-msgstr "نامەلۇم تۈر"\r
-\r
-#. This is the label format that is used for the first 10 items\r
-#. * in a recent files menu. The %d is the number of the item,\r
-#. * the %s is the name of the item. Please keep the _ in front\r
-#. * of the number to give these menu items a mnemonic.\r
-#.\r
-#: ../gtk/gtkrecentchoosermenu.c:835\r
-#, c-format\r
-msgctxt "recent menu label"\r
-msgid "_%d. %s"\r
-msgstr "_%d. %s"\r
-\r
-#. This is the format that is used for items in a recent files menu.\r
-#. * The %d is the number of the item, the %s is the name of the item.\r
-#.\r
-#: ../gtk/gtkrecentchoosermenu.c:840\r
-#, c-format\r
-msgctxt "recent menu label"\r
-msgid "%d. %s"\r
-msgstr "%d. %s"\r
-\r
-#: ../gtk/gtkrecentmanager.c:1006 ../gtk/gtkrecentmanager.c:1019\r
-#: ../gtk/gtkrecentmanager.c:1156 ../gtk/gtkrecentmanager.c:1166\r
-#: ../gtk/gtkrecentmanager.c:1218 ../gtk/gtkrecentmanager.c:1227\r
-#: ../gtk/gtkrecentmanager.c:1242\r
-#, c-format\r
-msgid "Unable to find an item with URI '%s'"\r
-msgstr "URI '%s' تۈر تېپىلمىدى"\r
-\r
-#: ../gtk/gtkrecentmanager.c:2442\r
-#, c-format\r
-msgid "No registered application with name '%s' for item with URI '%s' found"\r
-msgstr "تۈرنىڭ '%s' ئاتلىق خەتلەتكەن پروگراممىسىنىڭ URI '%s' تېپىلمىدى"\r
-\r
-#: ../gtk/gtkspinner.c:287\r
-msgctxt "throbbing progress animation widget"\r
-msgid "Spinner"\r
-msgstr "مىكرو تەڭشەك"\r
-\r
-#: ../gtk/gtkspinner.c:288\r
-msgid "Provides visual indication of progress"\r
-msgstr "كۆرۈنمە كۆرسەتكۈچ جەريانى تەمىنلەيدۇ"\r
-\r
-#. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate\r
-#: ../gtk/gtkstock.c:313\r
-msgctxt "Stock label"\r
-msgid "Information"\r
-msgstr "ئۇچۇر"\r
-\r
-#: ../gtk/gtkstock.c:314\r
-msgctxt "Stock label"\r
-msgid "Warning"\r
-msgstr "ئاگاھلاندۇرۇش"\r
-\r
-#: ../gtk/gtkstock.c:315\r
-msgctxt "Stock label"\r
-msgid "Error"\r
-msgstr "خاتالىق"\r
-\r
-#: ../gtk/gtkstock.c:316\r
-msgctxt "Stock label"\r
-msgid "Question"\r
-msgstr "سوئال"\r
-\r
-#. FIXME these need accelerators when appropriate, and\r
-#. * need the mnemonics to be rationalized\r
-#.\r
-#: ../gtk/gtkstock.c:321\r
-msgctxt "Stock label"\r
-msgid "_About"\r
-msgstr "ھەققىدە(_A)"\r
-\r
-#: ../gtk/gtkstock.c:322\r
-msgctxt "Stock label"\r
-msgid "_Add"\r
-msgstr "قوش(_A)"\r
-\r
-#: ../gtk/gtkstock.c:323\r
-msgctxt "Stock label"\r
-msgid "_Apply"\r
-msgstr "قوللان(_A)"\r
-\r
-#: ../gtk/gtkstock.c:324\r
-msgctxt "Stock label"\r
-msgid "_Bold"\r
-msgstr "توم(_B)"\r
-\r
-#: ../gtk/gtkstock.c:325\r
-msgctxt "Stock label"\r
-msgid "_Cancel"\r
-msgstr "ئەمەلدىن قالدۇر(_C)"\r
-\r
-#: ../gtk/gtkstock.c:326\r
-msgctxt "Stock label"\r
-msgid "_CD-ROM"\r
-msgstr "_CD-ROM"\r
-\r
-#: ../gtk/gtkstock.c:327\r
-msgctxt "Stock label"\r
-msgid "_Clear"\r
-msgstr "ئۆچۈر(_C)"\r
-\r
-#: ../gtk/gtkstock.c:328\r
-msgctxt "Stock label"\r
-msgid "_Close"\r
-msgstr "ياپ(_C)"\r
-\r
-#: ../gtk/gtkstock.c:329\r
-msgctxt "Stock label"\r
-msgid "C_onnect"\r
-msgstr "باغلا(_O)"\r
-\r
-#: ../gtk/gtkstock.c:330\r
-msgctxt "Stock label"\r
-msgid "_Convert"\r
-msgstr "ئايلاندۇر(_C)"\r
-\r
-#: ../gtk/gtkstock.c:331\r
-msgctxt "Stock label"\r
-msgid "_Copy"\r
-msgstr "كۆچۈر(_C)"\r
-\r
-#: ../gtk/gtkstock.c:332\r
-msgctxt "Stock label"\r
-msgid "Cu_t"\r
-msgstr "كەس(_T)"\r
-\r
-#: ../gtk/gtkstock.c:333\r
-msgctxt "Stock label"\r
-msgid "_Delete"\r
-msgstr "ئۆچۈر(_D)"\r
-\r
-#: ../gtk/gtkstock.c:334\r
-msgctxt "Stock label"\r
-msgid "_Discard"\r
-msgstr "تاشلىۋەت(_D)"\r
-\r
-#: ../gtk/gtkstock.c:335\r
-msgctxt "Stock label"\r
-msgid "_Disconnect"\r
-msgstr "ئۈز(_D)"\r
-\r
-#: ../gtk/gtkstock.c:336\r
-msgctxt "Stock label"\r
-msgid "_Execute"\r
-msgstr "ئىجرا قىل(_E)"\r
-\r
-#: ../gtk/gtkstock.c:337\r
-msgctxt "Stock label"\r
-msgid "_Edit"\r
-msgstr "تەھرىر(_E)"\r
-\r
-#: ../gtk/gtkstock.c:338\r
-msgctxt "Stock label"\r
-msgid "_File"\r
-msgstr "ھۆججەت(_F)"\r
-\r
-#: ../gtk/gtkstock.c:339\r
-msgctxt "Stock label"\r
-msgid "_Find"\r
-msgstr "ئىزدە(_F)"\r
-\r
-#: ../gtk/gtkstock.c:340\r
-msgctxt "Stock label"\r
-msgid "Find and _Replace"\r
-msgstr "ئىزدەپ ئالماشتۇر(_R)"\r
-\r
-#: ../gtk/gtkstock.c:341\r
-msgctxt "Stock label"\r
-msgid "_Floppy"\r
-msgstr "يۇمشاق دىسكا(_F)"\r
-\r
-#: ../gtk/gtkstock.c:342\r
-msgctxt "Stock label"\r
-msgid "_Fullscreen"\r
-msgstr "تولۇق ئېكران( _F)"\r
-\r
-#: ../gtk/gtkstock.c:343\r
-msgctxt "Stock label"\r
-msgid "_Leave Fullscreen"\r
-msgstr "تولۇق ئېكراندىن ئايرىل(_L)"\r
-\r
-#. This is a navigation label as in "go to the bottom of the page"\r
-#: ../gtk/gtkstock.c:345\r
-msgctxt "Stock label, navigation"\r
-msgid "_Bottom"\r
-msgstr "ئاستى(_B)"\r
-\r
-#. This is a navigation label as in "go to the first page"\r
-#: ../gtk/gtkstock.c:347\r
-msgctxt "Stock label, navigation"\r
-msgid "_First"\r
-msgstr "بىرىنچى(_F)"\r
-\r
-#. This is a navigation label as in "go to the last page"\r
-#: ../gtk/gtkstock.c:349\r
-msgctxt "Stock label, navigation"\r
-msgid "_Last"\r
-msgstr "ئاخىرقى(_L)"\r
-\r
-#. This is a navigation label as in "go to the top of the page"\r
-#: ../gtk/gtkstock.c:351\r
-msgctxt "Stock label, navigation"\r
-msgid "_Top"\r
-msgstr "بېشى(_T)"\r
-\r
-#. This is a navigation label as in "go back"\r
-#: ../gtk/gtkstock.c:353\r
-msgctxt "Stock label, navigation"\r
-msgid "_Back"\r
-msgstr "كەينى(_B)"\r
-\r
-#. This is a navigation label as in "go down"\r
-#: ../gtk/gtkstock.c:355\r
-msgctxt "Stock label, navigation"\r
-msgid "_Down"\r
-msgstr "ئاستىغا(_D)"\r
-\r
-#. This is a navigation label as in "go forward"\r
-#: ../gtk/gtkstock.c:357\r
-msgctxt "Stock label, navigation"\r
-msgid "_Forward"\r
-msgstr "ئالدى(_F)"\r
-\r
-#. This is a navigation label as in "go up"\r
-#: ../gtk/gtkstock.c:359\r
-msgctxt "Stock label, navigation"\r
-msgid "_Up"\r
-msgstr "ئۈستىگە(_U)"\r
-\r
-#: ../gtk/gtkstock.c:360\r
-msgctxt "Stock label"\r
-msgid "_Hard Disk"\r
-msgstr "قاتتىق دىسكا(_H)"\r
-\r
-#: ../gtk/gtkstock.c:361\r
-msgctxt "Stock label"\r
-msgid "_Help"\r
-msgstr "ياردەم(_H)"\r
-\r
-#: ../gtk/gtkstock.c:362\r
-msgctxt "Stock label"\r
-msgid "_Home"\r
-msgstr "باش بەت(_H)"\r
-\r
-#: ../gtk/gtkstock.c:363\r
-msgctxt "Stock label"\r
-msgid "Increase Indent"\r
-msgstr "كېڭەيت"\r
-\r
-#: ../gtk/gtkstock.c:364\r
-msgctxt "Stock label"\r
-msgid "Decrease Indent"\r
-msgstr "تارايت"\r
-\r
-#: ../gtk/gtkstock.c:365\r
-msgctxt "Stock label"\r
-msgid "_Index"\r
-msgstr "ئىندېكس(_I)"\r
-\r
-#: ../gtk/gtkstock.c:366\r
-msgctxt "Stock label"\r
-msgid "_Information"\r
-msgstr "ئۇچۇر(_I)"\r
-\r
-#: ../gtk/gtkstock.c:367\r
-msgctxt "Stock label"\r
-msgid "_Italic"\r
-msgstr "يانتۇ(_I)"\r
-\r
-#: ../gtk/gtkstock.c:368\r
-msgctxt "Stock label"\r
-msgid "_Jump to"\r
-msgstr "ئاتلا(_J)"\r
-\r
-#. This is about text justification, "centered text"\r
-#: ../gtk/gtkstock.c:370\r
-msgctxt "Stock label"\r
-msgid "_Center"\r
-msgstr "ئوتتۇرا(_C)"\r
-\r
-#. This is about text justification\r
-#: ../gtk/gtkstock.c:372\r
-msgctxt "Stock label"\r
-msgid "_Fill"\r
-msgstr "تولدۇر(_F)"\r
-\r
-#. This is about text justification, "left-justified text"\r
-#: ../gtk/gtkstock.c:374\r
-msgctxt "Stock label"\r
-msgid "_Left"\r
-msgstr "سول(_L)"\r
-\r
-#. This is about text justification, "right-justified text"\r
-#: ../gtk/gtkstock.c:376\r
-msgctxt "Stock label"\r
-msgid "_Right"\r
-msgstr "ئوڭ(_R)"\r
-\r
-#. Media label, as in "fast forward"\r
-#: ../gtk/gtkstock.c:379\r
-msgctxt "Stock label, media"\r
-msgid "_Forward"\r
-msgstr "ئالدى(_F)"\r
-\r
-#. Media label, as in "next song"\r
-#: ../gtk/gtkstock.c:381\r
-msgctxt "Stock label, media"\r
-msgid "_Next"\r
-msgstr "كېيىنكى(_N)"\r
-\r
-#. Media label, as in "pause music"\r
-#: ../gtk/gtkstock.c:383\r
-msgctxt "Stock label, media"\r
-msgid "P_ause"\r
-msgstr "ۋاقىتلىق توختات(_A)"\r
-\r
-#. Media label, as in "play music"\r
-#: ../gtk/gtkstock.c:385\r
-msgctxt "Stock label, media"\r
-msgid "_Play"\r
-msgstr "قوي(_P)"\r
-\r
-#. Media label, as in  "previous song"\r
-#: ../gtk/gtkstock.c:387\r
-msgctxt "Stock label, media"\r
-msgid "Pre_vious"\r
-msgstr "ئالدىنقى(_V)"\r
-\r
-#. Media label\r
-#: ../gtk/gtkstock.c:389\r
-msgctxt "Stock label, media"\r
-msgid "_Record"\r
-msgstr "خاتىرىلە(_R)"\r
-\r
-#. Media label\r
-#: ../gtk/gtkstock.c:391\r
-msgctxt "Stock label, media"\r
-msgid "R_ewind"\r
-msgstr "تېز چېكىن(_E)"\r
-\r
-#. Media label\r
-#: ../gtk/gtkstock.c:393\r
-msgctxt "Stock label, media"\r
-msgid "_Stop"\r
-msgstr "توختا (&S)"\r
-\r
-#: ../gtk/gtkstock.c:394\r
-msgctxt "Stock label"\r
-msgid "_Network"\r
-msgstr "تور(_N)"\r
-\r
-#: ../gtk/gtkstock.c:395\r
-msgctxt "Stock label"\r
-msgid "_New"\r
-msgstr "يېڭى(_N)"\r
-\r
-#: ../gtk/gtkstock.c:396\r
-msgctxt "Stock label"\r
-msgid "_No"\r
-msgstr "ياق(_N)"\r
-\r
-#: ../gtk/gtkstock.c:397\r
-msgctxt "Stock label"\r
-msgid "_OK"\r
-msgstr "جەزملە(_O)"\r
-\r
-#: ../gtk/gtkstock.c:398\r
-msgctxt "Stock label"\r
-msgid "_Open"\r
-msgstr "ئاچ(_O)"\r
-\r
-#. Page orientation\r
-#: ../gtk/gtkstock.c:400\r
-msgctxt "Stock label"\r
-msgid "Landscape"\r
-msgstr "توغرا يۆنىلىش"\r
-\r
-#. Page orientation\r
-#: ../gtk/gtkstock.c:402\r
-msgctxt "Stock label"\r
-msgid "Portrait"\r
-msgstr "بوي يۆنىلىش"\r
-\r
-#. Page orientation\r
-#: ../gtk/gtkstock.c:404\r
-msgctxt "Stock label"\r
-msgid "Reverse landscape"\r
-msgstr "تەتۈر توغرا يۆنىلىش"\r
-\r
-#. Page orientation\r
-#: ../gtk/gtkstock.c:406\r
-msgctxt "Stock label"\r
-msgid "Reverse portrait"\r
-msgstr "تەتۈر بوي يۆنىلىش"\r
-\r
-#: ../gtk/gtkstock.c:407\r
-msgctxt "Stock label"\r
-msgid "Page Set_up"\r
-msgstr "بەت تەڭشەك(_U)"\r
-\r
-#: ../gtk/gtkstock.c:408\r
-msgctxt "Stock label"\r
-msgid "_Paste"\r
-msgstr "چاپلا(_P)"\r
-\r
-#: ../gtk/gtkstock.c:409\r
-msgctxt "Stock label"\r
-msgid "_Preferences"\r
-msgstr "مايىللىق(_P)"\r
-\r
-#: ../gtk/gtkstock.c:410\r
-msgctxt "Stock label"\r
-msgid "_Print"\r
-msgstr "باس(_P)"\r
-\r
-#: ../gtk/gtkstock.c:411\r
-msgctxt "Stock label"\r
-msgid "Print Pre_view"\r
-msgstr "بېسىشنى ئالدىن كۆزەت(_V)"\r
-\r
-#: ../gtk/gtkstock.c:412\r
-msgctxt "Stock label"\r
-msgid "_Properties"\r
-msgstr "خاسلىقلار(_P)"\r
-\r
-#: ../gtk/gtkstock.c:413\r
-msgctxt "Stock label"\r
-msgid "_Quit"\r
-msgstr "چېكىن(_Q)"\r
-\r
-#: ../gtk/gtkstock.c:414\r
-msgctxt "Stock label"\r
-msgid "_Redo"\r
-msgstr "قايتىلا(_R)"\r
-\r
-#: ../gtk/gtkstock.c:415\r
-msgctxt "Stock label"\r
-msgid "_Refresh"\r
-msgstr "يېڭىلا(_R)"\r
-\r
-#: ../gtk/gtkstock.c:416\r
-msgctxt "Stock label"\r
-msgid "_Remove"\r
-msgstr "چىقىرىۋەت(_R)"\r
-\r
-#: ../gtk/gtkstock.c:417\r
-msgctxt "Stock label"\r
-msgid "_Revert"\r
-msgstr "ئەسلىگە قايتۇر(_R)"\r
-\r
-#: ../gtk/gtkstock.c:418\r
-msgctxt "Stock label"\r
-msgid "_Save"\r
-msgstr "ساقلا(_S)"\r
-\r
-#: ../gtk/gtkstock.c:419\r
-msgctxt "Stock label"\r
-msgid "Save _As"\r
-msgstr "باشقا ئاتتا ساقلا(_A)"\r
-\r
-#: ../gtk/gtkstock.c:420\r
-msgctxt "Stock label"\r
-msgid "Select _All"\r
-msgstr "ھەممىنى تاللا(_A)"\r
-\r
-#: ../gtk/gtkstock.c:421\r
-msgctxt "Stock label"\r
-msgid "_Color"\r
-msgstr "رەڭ(_C)"\r
-\r
-#: ../gtk/gtkstock.c:422\r
-msgctxt "Stock label"\r
-msgid "_Font"\r
-msgstr "خەت نۇسخا(_F)"\r
-\r
-#. Sorting direction\r
-#: ../gtk/gtkstock.c:424\r
-msgctxt "Stock label"\r
-msgid "_Ascending"\r
-msgstr "ئۆسكۈچى(_A)"\r
-\r
-#. Sorting direction\r
-#: ../gtk/gtkstock.c:426\r
-msgctxt "Stock label"\r
-msgid "_Descending"\r
-msgstr "كېمەيگۈچى(_D)"\r
-\r
-#: ../gtk/gtkstock.c:427\r
-msgctxt "Stock label"\r
-msgid "_Spell Check"\r
-msgstr "ئىملا تەكشۈر(_S)"\r
-\r
-#: ../gtk/gtkstock.c:428\r
-msgctxt "Stock label"\r
-msgid "_Stop"\r
-msgstr "توختا (&S)"\r
-\r
-#. Font variant\r
-#: ../gtk/gtkstock.c:430\r
-msgctxt "Stock label"\r
-msgid "_Strikethrough"\r
-msgstr "ئۆچۈرۈش سىزىقى(_S)"\r
-\r
-#: ../gtk/gtkstock.c:431\r
-msgctxt "Stock label"\r
-msgid "_Undelete"\r
-msgstr "ئەسلىگە كەلتۈر(_U)"\r
-\r
-#. Font variant\r
-#: ../gtk/gtkstock.c:433\r
-msgctxt "Stock label"\r
-msgid "_Underline"\r
-msgstr "ئاستى سىزىق(_U)"\r
-\r
-#: ../gtk/gtkstock.c:434\r
-msgctxt "Stock label"\r
-msgid "_Undo"\r
-msgstr "يېنىۋال(_U)"\r
-\r
-#: ../gtk/gtkstock.c:435\r
-msgctxt "Stock label"\r
-msgid "_Yes"\r
-msgstr "ھەئە(_Y)"\r
-\r
-#. Zoom\r
-#: ../gtk/gtkstock.c:437\r
-msgctxt "Stock label"\r
-msgid "_Normal Size"\r
-msgstr "ئادەتتىكى چوڭلۇقى(_N)"\r
-\r
-#. Zoom\r
-#: ../gtk/gtkstock.c:439\r
-msgctxt "Stock label"\r
-msgid "Best _Fit"\r
-msgstr "ئەڭ مۇناسىپ(_F)"\r
-\r
-#: ../gtk/gtkstock.c:440\r
-msgctxt "Stock label"\r
-msgid "Zoom _In"\r
-msgstr "چوڭايت(_I)"\r
-\r
-#: ../gtk/gtkstock.c:441\r
-msgctxt "Stock label"\r
-msgid "Zoom _Out"\r
-msgstr "كىچىكلەت(_O)"\r
-\r
-#. Translators: if the "on" state label requires more than three\r
-#. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for\r
-#. * the state\r
-#.\r
-#: ../gtk/gtkswitch.c:338 ../gtk/gtkswitch.c:398 ../gtk/gtkswitch.c:605\r
-msgctxt "switch"\r
-msgid "ON"\r
-msgstr "ئاچ"\r
-\r
-#. Translators: if the "off" state label requires more than three\r
-#. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state\r
-#.\r
-#: ../gtk/gtkswitch.c:346 ../gtk/gtkswitch.c:399 ../gtk/gtkswitch.c:634\r
-msgctxt "switch"\r
-msgid "OFF"\r
-msgstr "تاقا"\r
-\r
-#: ../gtk/gtkswitch.c:1061\r
-msgctxt "light switch widget"\r
-msgid "Switch"\r
-msgstr "ئالماشتۇرغۇچ"\r
-\r
-#: ../gtk/gtkswitch.c:1062\r
-msgid "Switches between on and off states"\r
-msgstr "ئېچىش بىلەن تاقاش ھالىتى ئارىسىدا ئالماشتۇرىدۇ"\r
-\r
-#: ../gtk/gtktextbufferrichtext.c:651\r
-#, c-format\r
-msgid "Unknown error when trying to deserialize %s"\r
-msgstr "ئەكسىچە تەرتىپلىگەندە خاتالىق كۆرۈلدى %s"\r
-\r
-#: ../gtk/gtktextbufferrichtext.c:710\r
-#, c-format\r
-msgid "No deserialize function found for format %s"\r
-msgstr "%s فورماتتىن ئەكسىچە تەرتىپلەش فۇنكسىيىسى تېپىلمىدى"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:800 ../gtk/gtktextbufferserialize.c:826\r
-#, c-format\r
-msgid "Both \"id\" and \"name\" were found on the <%s> element"\r
-msgstr "<%s> ئېلېمېنتنىڭ بىرلا ۋاقىتتا تاپقىنى “id”بىلەن“name”"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:810 ../gtk/gtktextbufferserialize.c:836\r
-#, c-format\r
-msgid "The attribute \"%s\" was found twice on the <%s> element"\r
-msgstr "<%s> ئېلېمېنت ئىككى قېتىم تاپتى “%s”"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:852\r
-#, c-format\r
-msgid "<%s> element has invalid ID \"%s\""\r
-msgstr "<%s> ئېلېمېنتنىڭ ID سى «%s» ئىناۋەتسىز"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:862\r
-#, c-format\r
-msgid "<%s> element has neither a \"name\" nor an \"id\" attribute"\r
-msgstr "<%s> ئېلېمېنتنىڭ ھەم “name” ھەم “id” خاسلىقى يوق"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:949\r
-#, c-format\r
-msgid "Attribute \"%s\" repeated twice on the same <%s> element"\r
-msgstr "خاسلىق \"%s\" ئوخشاش بىر <%s> ئېلېمېنتتا ئىككى قېتىم تەكرارلاندى"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:967 ../gtk/gtktextbufferserialize.c:992\r
-#, c-format\r
-msgid "Attribute \"%s\" is invalid on <%s> element in this context"\r
-msgstr "بۇ تىل مۇھىتىدا \"%s\" خاسلىق <%s> ئېلېمېنتقا نىسبەتەن ئىناۋەتسىز"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1031\r
-#, c-format\r
-msgid "Tag \"%s\" has not been defined."\r
-msgstr "“%s” بەلگە ئېنىقلانمىغان."\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1043\r
-msgid "Anonymous tag found and tags can not be created."\r
-msgstr "ئاتسىز بەلگە بايقالدى. بەلگە قۇرۇشقا بولمايدۇ"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1054\r
-#, c-format\r
-msgid "Tag \"%s\" does not exist in buffer and tags can not be created."\r
-msgstr "\"%s\"بەلگە يىغلەكتە مەۋجۇت ئەمەس. بەلگە قۇرۇشقا بولمايدۇ."\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1153 ../gtk/gtktextbufferserialize.c:1228\r
-#: ../gtk/gtktextbufferserialize.c:1333 ../gtk/gtktextbufferserialize.c:1407\r
-#, c-format\r
-msgid "Element <%s> is not allowed below <%s>"\r
-msgstr "<%s> ئېلېمېنت <%s> ئاستىدا بولۇشقا يول قويۇلمايدۇ"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1184\r
-#, c-format\r
-msgid "\"%s\" is not a valid attribute type"\r
-msgstr "\"%s\" ئىناۋەتلىك خاسلىق تىپى ئەمەس"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1192\r
-#, c-format\r
-msgid "\"%s\" is not a valid attribute name"\r
-msgstr "\"%s\" ئىناۋەتلىك خاسلىق ئاتى ئەمەس"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1202\r
-#, c-format\r
-msgid ""\r
-"\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\""\r
-msgstr ""\r
-"\"%s\"نى \"%s\" تىپلىق قىممەتكە ئالماشتۇرالمايدۇ، بۇ قىممەت  \"%s\" خاسلىققا "\r
-"ئىشلىتىلىدۇ"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1211\r
-#, c-format\r
-msgid "\"%s\" is not a valid value for attribute \"%s\""\r
-msgstr "\"%s\" بولسا \"%s\" خاسلىقنىڭ ئىناۋەتلىك قىممىتى ئەمەس"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1296\r
-#, c-format\r
-msgid "Tag \"%s\" already defined"\r
-msgstr "\"%s\" بەلگە ئېنىقلاندى"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1309\r
-#, c-format\r
-msgid "Tag \"%s\" has invalid priority \"%s\""\r
-msgstr "بەلگە \"%s\" نىڭ ئالدىنلىقى \"%s\" ئىناۋەتسىز"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1362\r
-#, c-format\r
-msgid "Outermost element in text must be <text_view_markup> not <%s>"\r
-msgstr ""\r
-"تېكىستنىڭ ئەڭ سىرتىدىكى ئېلېمېنت <text_view_markup> بولىدۇ،  <%s> بولمايدۇ"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1371 ../gtk/gtktextbufferserialize.c:1387\r
-#, c-format\r
-msgid "A <%s> element has already been specified"\r
-msgstr "<%s> ئېلېمېنت بەلگىلەندى"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1393\r
-msgid "A <text> element can't occur before a <tags> element"\r
-msgstr "<text> ئېلېمېنتى <tags> نىڭ ئالدىدا كۆرۈلمەيدۇ"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1793\r
-msgid "Serialized data is malformed"\r
-msgstr "تەرتىپلەشكەن سانلىق مەلۇمات فورماتى خاتا"\r
-\r
-#: ../gtk/gtktextbufferserialize.c:1871\r
-msgid ""\r
-"Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001"\r
-msgstr ""\r
-"تەرتىپلەشكەن سانلىق مەلۇمات فورماتى خاتا. بىرىنچى بۆلىكى "\r
-"GTKTEXTBUFFERCONTENTS-0001"\r
-\r
-#: ../gtk/gtktextutil.c:60\r
-msgid "LRM _Left-to-right mark"\r
-msgstr "LRM سولدىن ئوڭغا بەلگىسى(_L)"\r
-\r
-#: ../gtk/gtktextutil.c:61\r
-msgid "RLM _Right-to-left mark"\r
-msgstr "RLM ئوڭدىن سولغا بەلگىسى(_R)"\r
-\r
-#: ../gtk/gtktextutil.c:62\r
-msgid "LRE Left-to-right _embedding"\r
-msgstr "LRE سولدىن ئوڭغا سىڭدۈرمە(_E)"\r
-\r
-#: ../gtk/gtktextutil.c:63\r
-msgid "RLE Right-to-left e_mbedding"\r
-msgstr "RLE ئوڭدىن سولغا سىڭدۈرمە(_M)"\r
-\r
-#: ../gtk/gtktextutil.c:64\r
-msgid "LRO Left-to-right _override"\r
-msgstr "LRO سولدىن ئوڭغا قاپلاش(_O)"\r
-\r
-#: ../gtk/gtktextutil.c:65\r
-msgid "RLO Right-to-left o_verride"\r
-msgstr "RLO ئوڭدىن سولغا قاپلاش(_V)"\r
-\r
-#: ../gtk/gtktextutil.c:66\r
-msgid "PDF _Pop directional formatting"\r
-msgstr "PDF قاڭقىش يۆنىلىش فورماتى(_P)"\r
-\r
-#: ../gtk/gtktextutil.c:67\r
-msgid "ZWS _Zero width space"\r
-msgstr "ZWS نۆل كەڭلىكتىكى بوشلۇق(_Z)"\r
-\r
-#: ../gtk/gtktextutil.c:68\r
-msgid "ZWJ Zero width _joiner"\r
-msgstr "ZWJ نۆل كەڭلىكتىكى ئۇلاش بەلگىسى(_J)"\r
-\r
-#: ../gtk/gtktextutil.c:69\r
-msgid "ZWNJ Zero width _non-joiner"\r
-msgstr "ZWNJ نۆل كەڭلىكتىكى ئۇلىماسلىق بەلگىسى (_N)"\r
-\r
-#: ../gtk/gtkuimanager.c:1506\r
-#, c-format\r
-msgid "Unexpected start tag '%s' on line %d char %d"\r
-msgstr "'%s' ئويلىشىلمىغان باشلاش بەلگىسى %d -قۇر %d -ھەرپتە"\r
-\r
-#: ../gtk/gtkuimanager.c:1596\r
-#, c-format\r
-msgid "Unexpected character data on line %d char %d"\r
-msgstr "%d- قۇر %d -ھەرپتە ئويلىشىلمىغان بەلگە بار"\r
-\r
-#: ../gtk/gtkuimanager.c:2428\r
-msgid "Empty"\r
-msgstr "بوش"\r
-\r
-#: ../gtk/gtkvolumebutton.c:170\r
-msgid "Volume"\r
-msgstr "دىسكا"\r
-\r
-#: ../gtk/gtkvolumebutton.c:172\r
-msgid "Turns volume down or up"\r
-msgstr "ئاۋازنى يۇقىرىلات ياكى تۆۋەنلەت"\r
-\r
-#: ../gtk/gtkvolumebutton.c:175\r
-msgid "Adjusts the volume"\r
-msgstr "ئاۋاز تەڭشىكى"\r
-\r
-#: ../gtk/gtkvolumebutton.c:181 ../gtk/gtkvolumebutton.c:184\r
-msgid "Volume Down"\r
-msgstr "ئاۋازنى تۆۋەنلىتىش"\r
-\r
-#: ../gtk/gtkvolumebutton.c:183\r
-msgid "Decreases the volume"\r
-msgstr "ئاۋازنى كېمەيت"\r
-\r
-#: ../gtk/gtkvolumebutton.c:187 ../gtk/gtkvolumebutton.c:190\r
-msgid "Volume Up"\r
-msgstr "ئاۋازنى يۇقىرىلىتىش"\r
-\r
-#: ../gtk/gtkvolumebutton.c:189\r
-msgid "Increases the volume"\r
-msgstr "ئاۋازنى ئاشۇر"\r
-\r
-#: ../gtk/gtkvolumebutton.c:247\r
-msgid "Muted"\r
-msgstr "ئۈنسىز"\r
-\r
-#: ../gtk/gtkvolumebutton.c:251\r
-msgid "Full Volume"\r
-msgstr "ئەڭ يۇقىرى ئاۋاز"\r
-\r
-#. Translators: this is the percentage of the current volume,\r
-#. * as used in the tooltip, eg. "49 %".\r
-#. * Translate the "%d" to "%Id" if you want to use localised digits,\r
-#. * or otherwise translate the "%d" to "%d".\r
-#.\r
-#: ../gtk/gtkvolumebutton.c:264\r
-#, c-format\r
-msgctxt "volume percentage"\r
-msgid "%d %%"\r
-msgstr "%d %%"\r
-\r
-#: ../gtk/paper_names_offsets.c:4\r
-msgctxt "paper size"\r
-msgid "asme_f"\r
-msgstr "asme_f"\r
-\r
-#: ../gtk/paper_names_offsets.c:5\r
-msgctxt "paper size"\r
-msgid "A0x2"\r
-msgstr "A0x2"\r
-\r
-#: ../gtk/paper_names_offsets.c:6\r
-msgctxt "paper size"\r
-msgid "A0"\r
-msgstr "A0"\r
-\r
-#: ../gtk/paper_names_offsets.c:7\r
-msgctxt "paper size"\r
-msgid "A0x3"\r
-msgstr "A0x3"\r
-\r
-#: ../gtk/paper_names_offsets.c:8\r
-msgctxt "paper size"\r
-msgid "A1"\r
-msgstr "A1"\r
-\r
-#: ../gtk/paper_names_offsets.c:9\r
-msgctxt "paper size"\r
-msgid "A10"\r
-msgstr "A10"\r
-\r
-#: ../gtk/paper_names_offsets.c:10\r
-msgctxt "paper size"\r
-msgid "A1x3"\r
-msgstr "A1x3"\r
-\r
-#: ../gtk/paper_names_offsets.c:11\r
-msgctxt "paper size"\r
-msgid "A1x4"\r
-msgstr "A1x4"\r
-\r
-#: ../gtk/paper_names_offsets.c:12\r
-msgctxt "paper size"\r
-msgid "A2"\r
-msgstr "A2"\r
-\r
-#: ../gtk/paper_names_offsets.c:13\r
-msgctxt "paper size"\r
-msgid "A2x3"\r
-msgstr "A2x3"\r
-\r
-#: ../gtk/paper_names_offsets.c:14\r
-msgctxt "paper size"\r
-msgid "A2x4"\r
-msgstr "A2x4"\r
-\r
-#: ../gtk/paper_names_offsets.c:15\r
-msgctxt "paper size"\r
-msgid "A2x5"\r
-msgstr "A2x5"\r
-\r
-#: ../gtk/paper_names_offsets.c:16\r
-msgctxt "paper size"\r
-msgid "A3"\r
-msgstr "A3"\r
-\r
-#: ../gtk/paper_names_offsets.c:17\r
-msgctxt "paper size"\r
-msgid "A3 Extra"\r
-msgstr "A3 Extra"\r
-\r
-#: ../gtk/paper_names_offsets.c:18\r
-msgctxt "paper size"\r
-msgid "A3x3"\r
-msgstr "A3x3"\r
-\r
-#: ../gtk/paper_names_offsets.c:19\r
-msgctxt "paper size"\r
-msgid "A3x4"\r
-msgstr "A3x4"\r
-\r
-#: ../gtk/paper_names_offsets.c:20\r
-msgctxt "paper size"\r
-msgid "A3x5"\r
-msgstr "A3x5"\r
-\r
-#: ../gtk/paper_names_offsets.c:21\r
-msgctxt "paper size"\r
-msgid "A3x6"\r
-msgstr "A3x6"\r
-\r
-#: ../gtk/paper_names_offsets.c:22\r
-msgctxt "paper size"\r
-msgid "A3x7"\r
-msgstr "A3x7"\r
-\r
-#: ../gtk/paper_names_offsets.c:23\r
-msgctxt "paper size"\r
-msgid "A4"\r
-msgstr "A4"\r
-\r
-#: ../gtk/paper_names_offsets.c:24\r
-msgctxt "paper size"\r
-msgid "A4 Extra"\r
-msgstr "A4 Extra"\r
-\r
-#: ../gtk/paper_names_offsets.c:25\r
-msgctxt "paper size"\r
-msgid "A4 Tab"\r
-msgstr "A4 Tab"\r
-\r
-#: ../gtk/paper_names_offsets.c:26\r
-msgctxt "paper size"\r
-msgid "A4x3"\r
-msgstr "A4x3"\r
-\r
-#: ../gtk/paper_names_offsets.c:27\r
-msgctxt "paper size"\r
-msgid "A4x4"\r
-msgstr "A4x4"\r
-\r
-#: ../gtk/paper_names_offsets.c:28\r
-msgctxt "paper size"\r
-msgid "A4x5"\r
-msgstr "A4x5"\r
-\r
-#: ../gtk/paper_names_offsets.c:29\r
-msgctxt "paper size"\r
-msgid "A4x6"\r
-msgstr "A4x6"\r
-\r
-#: ../gtk/paper_names_offsets.c:30\r
-msgctxt "paper size"\r
-msgid "A4x7"\r
-msgstr "A4x7"\r
-\r
-#: ../gtk/paper_names_offsets.c:31\r
-msgctxt "paper size"\r
-msgid "A4x8"\r
-msgstr "A4x8"\r
-\r
-#: ../gtk/paper_names_offsets.c:32\r
-msgctxt "paper size"\r
-msgid "A4x9"\r
-msgstr "A4x9"\r
-\r
-#: ../gtk/paper_names_offsets.c:33\r
-msgctxt "paper size"\r
-msgid "A5"\r
-msgstr "A5"\r
-\r
-#: ../gtk/paper_names_offsets.c:34\r
-msgctxt "paper size"\r
-msgid "A5 Extra"\r
-msgstr "A5 Extra"\r
-\r
-#: ../gtk/paper_names_offsets.c:35\r
-msgctxt "paper size"\r
-msgid "A6"\r
-msgstr "A6"\r
-\r
-#: ../gtk/paper_names_offsets.c:36\r
-msgctxt "paper size"\r
-msgid "A7"\r
-msgstr "A7"\r
-\r
-#: ../gtk/paper_names_offsets.c:37\r
-msgctxt "paper size"\r
-msgid "A8"\r
-msgstr "A8"\r
-\r
-#: ../gtk/paper_names_offsets.c:38\r
-msgctxt "paper size"\r
-msgid "A9"\r
-msgstr "A9"\r
-\r
-#: ../gtk/paper_names_offsets.c:39\r
-msgctxt "paper size"\r
-msgid "B0"\r
-msgstr "B0"\r
-\r
-#: ../gtk/paper_names_offsets.c:40\r
-msgctxt "paper size"\r
-msgid "B1"\r
-msgstr "B1"\r
-\r
-#: ../gtk/paper_names_offsets.c:41\r
-msgctxt "paper size"\r
-msgid "B10"\r
-msgstr "B10"\r
-\r
-#: ../gtk/paper_names_offsets.c:42\r
-msgctxt "paper size"\r
-msgid "B2"\r
-msgstr "B2"\r
-\r
-#: ../gtk/paper_names_offsets.c:43\r
-msgctxt "paper size"\r
-msgid "B3"\r
-msgstr "B3"\r
-\r
-#: ../gtk/paper_names_offsets.c:44\r
-msgctxt "paper size"\r
-msgid "B4"\r
-msgstr "B4"\r
-\r
-#: ../gtk/paper_names_offsets.c:45\r
-msgctxt "paper size"\r
-msgid "B5"\r
-msgstr "B5"\r
-\r
-#: ../gtk/paper_names_offsets.c:46\r
-msgctxt "paper size"\r
-msgid "B5 Extra"\r
-msgstr "B5 Extra"\r
-\r
-#: ../gtk/paper_names_offsets.c:47\r
-msgctxt "paper size"\r
-msgid "B6"\r
-msgstr "B6"\r
-\r
-#: ../gtk/paper_names_offsets.c:48\r
-msgctxt "paper size"\r
-msgid "B6/C4"\r
-msgstr "B6/C4"\r
-\r
-#: ../gtk/paper_names_offsets.c:49\r
-msgctxt "paper size"\r
-msgid "B7"\r
-msgstr "B7"\r
-\r
-#: ../gtk/paper_names_offsets.c:50\r
-msgctxt "paper size"\r
-msgid "B8"\r
-msgstr "B8"\r
-\r
-#: ../gtk/paper_names_offsets.c:51\r
-msgctxt "paper size"\r
-msgid "B9"\r
-msgstr "B9"\r
-\r
-#: ../gtk/paper_names_offsets.c:52\r
-msgctxt "paper size"\r
-msgid "C0"\r
-msgstr "C0"\r
-\r
-#: ../gtk/paper_names_offsets.c:53\r
-msgctxt "paper size"\r
-msgid "C1"\r
-msgstr "C1"\r
-\r
-#: ../gtk/paper_names_offsets.c:54\r
-msgctxt "paper size"\r
-msgid "C10"\r
-msgstr "C10"\r
-\r
-#: ../gtk/paper_names_offsets.c:55\r
-msgctxt "paper size"\r
-msgid "C2"\r
-msgstr "C2"\r
-\r
-#: ../gtk/paper_names_offsets.c:56\r
-msgctxt "paper size"\r
-msgid "C3"\r
-msgstr "C3"\r
-\r
-#: ../gtk/paper_names_offsets.c:57\r
-msgctxt "paper size"\r
-msgid "C4"\r
-msgstr "C4"\r
-\r
-#: ../gtk/paper_names_offsets.c:58\r
-msgctxt "paper size"\r
-msgid "C5"\r
-msgstr "C5"\r
-\r
-#: ../gtk/paper_names_offsets.c:59\r
-msgctxt "paper size"\r
-msgid "C6"\r
-msgstr "C6"\r
-\r
-#: ../gtk/paper_names_offsets.c:60\r
-msgctxt "paper size"\r
-msgid "C6/C5"\r
-msgstr "C6/C5"\r
-\r
-#: ../gtk/paper_names_offsets.c:61\r
-msgctxt "paper size"\r
-msgid "C7"\r
-msgstr "C7"\r
-\r
-#: ../gtk/paper_names_offsets.c:62\r
-msgctxt "paper size"\r
-msgid "C7/C6"\r
-msgstr "C7/C6"\r
-\r
-#: ../gtk/paper_names_offsets.c:63\r
-msgctxt "paper size"\r
-msgid "C8"\r
-msgstr "C8"\r
-\r
-#: ../gtk/paper_names_offsets.c:64\r
-msgctxt "paper size"\r
-msgid "C9"\r
-msgstr "C9"\r
-\r
-#: ../gtk/paper_names_offsets.c:65\r
-msgctxt "paper size"\r
-msgid "DL Envelope"\r
-msgstr "DL لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:66\r
-msgctxt "paper size"\r
-msgid "RA0"\r
-msgstr "RA0"\r
-\r
-#: ../gtk/paper_names_offsets.c:67\r
-msgctxt "paper size"\r
-msgid "RA1"\r
-msgstr "RA1"\r
-\r
-#: ../gtk/paper_names_offsets.c:68\r
-msgctxt "paper size"\r
-msgid "RA2"\r
-msgstr "RA2"\r
-\r
-#: ../gtk/paper_names_offsets.c:69\r
-msgctxt "paper size"\r
-msgid "SRA0"\r
-msgstr "SRA0"\r
-\r
-#: ../gtk/paper_names_offsets.c:70\r
-msgctxt "paper size"\r
-msgid "SRA1"\r
-msgstr "SRA1"\r
-\r
-#: ../gtk/paper_names_offsets.c:71\r
-msgctxt "paper size"\r
-msgid "SRA2"\r
-msgstr "SRA2"\r
-\r
-#: ../gtk/paper_names_offsets.c:72\r
-msgctxt "paper size"\r
-msgid "JB0"\r
-msgstr "JB0"\r
-\r
-#: ../gtk/paper_names_offsets.c:73\r
-msgctxt "paper size"\r
-msgid "JB1"\r
-msgstr "JB1"\r
-\r
-#: ../gtk/paper_names_offsets.c:74\r
-msgctxt "paper size"\r
-msgid "JB10"\r
-msgstr "JB10"\r
-\r
-#: ../gtk/paper_names_offsets.c:75\r
-msgctxt "paper size"\r
-msgid "JB2"\r
-msgstr "JB2"\r
-\r
-#: ../gtk/paper_names_offsets.c:76\r
-msgctxt "paper size"\r
-msgid "JB3"\r
-msgstr "JB3"\r
-\r
-#: ../gtk/paper_names_offsets.c:77\r
-msgctxt "paper size"\r
-msgid "JB4"\r
-msgstr "JB4"\r
-\r
-#: ../gtk/paper_names_offsets.c:78\r
-msgctxt "paper size"\r
-msgid "JB5"\r
-msgstr "JB5"\r
-\r
-#: ../gtk/paper_names_offsets.c:79\r
-msgctxt "paper size"\r
-msgid "JB6"\r
-msgstr "JB6"\r
-\r
-#: ../gtk/paper_names_offsets.c:80\r
-msgctxt "paper size"\r
-msgid "JB7"\r
-msgstr "JB7"\r
-\r
-#: ../gtk/paper_names_offsets.c:81\r
-msgctxt "paper size"\r
-msgid "JB8"\r
-msgstr "JB8"\r
-\r
-#: ../gtk/paper_names_offsets.c:82\r
-msgctxt "paper size"\r
-msgid "JB9"\r
-msgstr "JB9"\r
-\r
-#: ../gtk/paper_names_offsets.c:83\r
-msgctxt "paper size"\r
-msgid "jis exec"\r
-msgstr "jis exec"\r
-\r
-#: ../gtk/paper_names_offsets.c:84\r
-msgctxt "paper size"\r
-msgid "Choukei 2 Envelope"\r
-msgstr "Choukei 2 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:85\r
-msgctxt "paper size"\r
-msgid "Choukei 3 Envelope"\r
-msgstr "Choukei 3 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:86\r
-msgctxt "paper size"\r
-msgid "Choukei 4 Envelope"\r
-msgstr "houkei 4 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:87\r
-msgctxt "paper size"\r
-msgid "hagaki (postcard)"\r
-msgstr "hagaki (پوچتا كارتىسى)"\r
-\r
-#: ../gtk/paper_names_offsets.c:88\r
-msgctxt "paper size"\r
-msgid "kahu Envelope"\r
-msgstr "kahu لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:89\r
-msgctxt "paper size"\r
-msgid "kaku2 Envelope"\r
-msgstr "kaku2 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:90\r
-msgctxt "paper size"\r
-msgid "oufuku (reply postcard)"\r
-msgstr "oufuku (جاۋاب پوچتا كارتىسى)"\r
-\r
-#: ../gtk/paper_names_offsets.c:91\r
-msgctxt "paper size"\r
-msgid "you4 Envelope"\r
-msgstr "you4 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:92\r
-msgctxt "paper size"\r
-msgid "10x11"\r
-msgstr "10x11"\r
-\r
-#: ../gtk/paper_names_offsets.c:93\r
-msgctxt "paper size"\r
-msgid "10x13"\r
-msgstr "10x13"\r
-\r
-#: ../gtk/paper_names_offsets.c:94\r
-msgctxt "paper size"\r
-msgid "10x14"\r
-msgstr "10x14"\r
-\r
-#: ../gtk/paper_names_offsets.c:95 ../gtk/paper_names_offsets.c:96\r
-msgctxt "paper size"\r
-msgid "10x15"\r
-msgstr "10x15"\r
-\r
-#: ../gtk/paper_names_offsets.c:97\r
-msgctxt "paper size"\r
-msgid "11x12"\r
-msgstr "11x12"\r
-\r
-#: ../gtk/paper_names_offsets.c:98\r
-msgctxt "paper size"\r
-msgid "11x15"\r
-msgstr "11x15"\r
-\r
-#: ../gtk/paper_names_offsets.c:99\r
-msgctxt "paper size"\r
-msgid "12x19"\r
-msgstr "12x19"\r
-\r
-#: ../gtk/paper_names_offsets.c:100\r
-msgctxt "paper size"\r
-msgid "5x7"\r
-msgstr "5x7"\r
-\r
-#: ../gtk/paper_names_offsets.c:101\r
-msgctxt "paper size"\r
-msgid "6x9 Envelope"\r
-msgstr "6x9 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:102\r
-msgctxt "paper size"\r
-msgid "7x9 Envelope"\r
-msgstr "7x9 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:103\r
-msgctxt "paper size"\r
-msgid "9x11 Envelope"\r
-msgstr "9x11 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:104\r
-msgctxt "paper size"\r
-msgid "a2 Envelope"\r
-msgstr "a2 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:105\r
-msgctxt "paper size"\r
-msgid "Arch A"\r
-msgstr "ئەگمە A"\r
-\r
-#: ../gtk/paper_names_offsets.c:106\r
-msgctxt "paper size"\r
-msgid "Arch B"\r
-msgstr "ئەگمە B"\r
-\r
-#: ../gtk/paper_names_offsets.c:107\r
-msgctxt "paper size"\r
-msgid "Arch C"\r
-msgstr "ئەگمە C"\r
-\r
-#: ../gtk/paper_names_offsets.c:108\r
-msgctxt "paper size"\r
-msgid "Arch D"\r
-msgstr "ئەگمە D"\r
-\r
-#: ../gtk/paper_names_offsets.c:109\r
-msgctxt "paper size"\r
-msgid "Arch E"\r
-msgstr "ئەگمە E"\r
-\r
-#: ../gtk/paper_names_offsets.c:110\r
-msgctxt "paper size"\r
-msgid "b-plus"\r
-msgstr "b-plus"\r
-\r
-#: ../gtk/paper_names_offsets.c:111\r
-msgctxt "paper size"\r
-msgid "c"\r
-msgstr "c"\r
-\r
-#: ../gtk/paper_names_offsets.c:112\r
-msgctxt "paper size"\r
-msgid "c5 Envelope"\r
-msgstr "c5 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:113\r
-msgctxt "paper size"\r
-msgid "d"\r
-msgstr "d"\r
-\r
-#: ../gtk/paper_names_offsets.c:114\r
-msgctxt "paper size"\r
-msgid "e"\r
-msgstr "e"\r
-\r
-#: ../gtk/paper_names_offsets.c:115\r
-msgctxt "paper size"\r
-msgid "edp"\r
-msgstr "edp"\r
-\r
-#: ../gtk/paper_names_offsets.c:116\r
-msgctxt "paper size"\r
-msgid "European edp"\r
-msgstr "ياۋروپا edp"\r
-\r
-#: ../gtk/paper_names_offsets.c:117\r
-msgctxt "paper size"\r
-msgid "Executive"\r
-msgstr "مەمۇرىي"\r
-\r
-#: ../gtk/paper_names_offsets.c:118\r
-msgctxt "paper size"\r
-msgid "f"\r
-msgstr "f"\r
-\r
-#: ../gtk/paper_names_offsets.c:119\r
-msgctxt "paper size"\r
-msgid "FanFold European"\r
-msgstr "FanFold ياۋروپا"\r
-\r
-#: ../gtk/paper_names_offsets.c:120\r
-msgctxt "paper size"\r
-msgid "FanFold US"\r
-msgstr "FanFold ئا ق ش"\r
-\r
-#: ../gtk/paper_names_offsets.c:121\r
-msgctxt "paper size"\r
-msgid "FanFold German Legal"\r
-msgstr "FanFold گېرمانىيە قانۇنى"\r
-\r
-#: ../gtk/paper_names_offsets.c:122\r
-msgctxt "paper size"\r
-msgid "Government Legal"\r
-msgstr "ھۆكۈمەت قانۇنى"\r
-\r
-#: ../gtk/paper_names_offsets.c:123\r
-msgctxt "paper size"\r
-msgid "Government Letter"\r
-msgstr "ھۆكۈمەت خەت-چەك"\r
-\r
-#: ../gtk/paper_names_offsets.c:124\r
-msgctxt "paper size"\r
-msgid "Index 3x5"\r
-msgstr "Index 3x5"\r
-\r
-#: ../gtk/paper_names_offsets.c:125\r
-msgctxt "paper size"\r
-msgid "Index 4x6 (postcard)"\r
-msgstr "Index 4x6 (پوچتا كارتىسى)"\r
-\r
-#: ../gtk/paper_names_offsets.c:126\r
-msgctxt "paper size"\r
-msgid "Index 4x6 ext"\r
-msgstr "Index 4x6 ext"\r
-\r
-#: ../gtk/paper_names_offsets.c:127\r
-msgctxt "paper size"\r
-msgid "Index 5x8"\r
-msgstr "Index 5x8"\r
-\r
-#: ../gtk/paper_names_offsets.c:128\r
-msgctxt "paper size"\r
-msgid "Invoice"\r
-msgstr "Invoice"\r
-\r
-#: ../gtk/paper_names_offsets.c:129\r
-msgctxt "paper size"\r
-msgid "Tabloid"\r
-msgstr "تەرمىلەر"\r
-\r
-#: ../gtk/paper_names_offsets.c:130\r
-msgctxt "paper size"\r
-msgid "US Legal"\r
-msgstr "ئا ق ش قانۇن"\r
-\r
-#: ../gtk/paper_names_offsets.c:131\r
-msgctxt "paper size"\r
-msgid "US Legal Extra"\r
-msgstr "ئا ق ش قانۇنى زىيادە چوڭ"\r
-\r
-#: ../gtk/paper_names_offsets.c:132\r
-msgctxt "paper size"\r
-msgid "US Letter"\r
-msgstr "ئا ق ش لېپاپى"\r
-\r
-#: ../gtk/paper_names_offsets.c:133\r
-msgctxt "paper size"\r
-msgid "US Letter Extra"\r
-msgstr "ئا ق ش لېپاپى زىيادە چوڭ"\r
-\r
-#: ../gtk/paper_names_offsets.c:134\r
-msgctxt "paper size"\r
-msgid "US Letter Plus"\r
-msgstr "ئا ق ش لېپاپى چوڭ"\r
-\r
-#: ../gtk/paper_names_offsets.c:135\r
-msgctxt "paper size"\r
-msgid "Monarch Envelope"\r
-msgstr "Monarch لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:136\r
-msgctxt "paper size"\r
-msgid "#10 Envelope"\r
-msgstr "#10 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:137\r
-msgctxt "paper size"\r
-msgid "#11 Envelope"\r
-msgstr "#11 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:138\r
-msgctxt "paper size"\r
-msgid "#12 Envelope"\r
-msgstr "#12 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:139\r
-msgctxt "paper size"\r
-msgid "#14 Envelope"\r
-msgstr "#14 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:140\r
-msgctxt "paper size"\r
-msgid "#9 Envelope"\r
-msgstr "#9 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:141\r
-msgctxt "paper size"\r
-msgid "Personal Envelope"\r
-msgstr "شەخسىي لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:142\r
-msgctxt "paper size"\r
-msgid "Quarto"\r
-msgstr "Quarto"\r
-\r
-#: ../gtk/paper_names_offsets.c:143\r
-msgctxt "paper size"\r
-msgid "Super A"\r
-msgstr "Super A"\r
-\r
-#: ../gtk/paper_names_offsets.c:144\r
-msgctxt "paper size"\r
-msgid "Super B"\r
-msgstr "Super B"\r
-\r
-#: ../gtk/paper_names_offsets.c:145\r
-msgctxt "paper size"\r
-msgid "Wide Format"\r
-msgstr "كەڭ فورمات"\r
-\r
-#: ../gtk/paper_names_offsets.c:146\r
-msgctxt "paper size"\r
-msgid "Dai-pa-kai"\r
-msgstr "Dai-pa-kai"\r
-\r
-#: ../gtk/paper_names_offsets.c:147\r
-msgctxt "paper size"\r
-msgid "Folio"\r
-msgstr "Folio"\r
-\r
-#: ../gtk/paper_names_offsets.c:148\r
-msgctxt "paper size"\r
-msgid "Folio sp"\r
-msgstr "Folio sp"\r
-\r
-#: ../gtk/paper_names_offsets.c:149\r
-msgctxt "paper size"\r
-msgid "Invite Envelope"\r
-msgstr "تەكلىپ لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:150\r
-msgctxt "paper size"\r
-msgid "Italian Envelope"\r
-msgstr "ئىتالىيە لېپاپى"\r
-\r
-#: ../gtk/paper_names_offsets.c:151\r
-msgctxt "paper size"\r
-msgid "juuro-ku-kai"\r
-msgstr "juuro-ku-kai"\r
-\r
-#: ../gtk/paper_names_offsets.c:152\r
-msgctxt "paper size"\r
-msgid "pa-kai"\r
-msgstr "pa-kai"\r
-\r
-#: ../gtk/paper_names_offsets.c:153\r
-msgctxt "paper size"\r
-msgid "Postfix Envelope"\r
-msgstr "Postfix لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:154\r
-msgctxt "paper size"\r
-msgid "Small Photo"\r
-msgstr "كىچىك سۈرەت"\r
-\r
-#: ../gtk/paper_names_offsets.c:155\r
-msgctxt "paper size"\r
-msgid "prc1 Envelope"\r
-msgstr "prc1 شەخسىي لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:156\r
-msgctxt "paper size"\r
-msgid "prc10 Envelope"\r
-msgstr "ج خ ج 10 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:157\r
-msgctxt "paper size"\r
-msgid "prc 16k"\r
-msgstr "ج خ ج 16 كەسلەم"\r
-\r
-#: ../gtk/paper_names_offsets.c:158\r
-msgctxt "paper size"\r
-msgid "prc2 Envelope"\r
-msgstr "ج خ ج 2 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:159\r
-msgctxt "paper size"\r
-msgid "prc3 Envelope"\r
-msgstr "ج خ ج 3 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:160\r
-msgctxt "paper size"\r
-msgid "prc 32k"\r
-msgstr "ج خ ج 32 كەسلەم"\r
-\r
-#: ../gtk/paper_names_offsets.c:161\r
-msgctxt "paper size"\r
-msgid "prc4 Envelope"\r
-msgstr "ج خ ج 4 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:162\r
-msgctxt "paper size"\r
-msgid "prc5 Envelope"\r
-msgstr "ج خ ج 5 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:163\r
-msgctxt "paper size"\r
-msgid "prc6 Envelope"\r
-msgstr "ج خ ج 6 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:164\r
-msgctxt "paper size"\r
-msgid "prc7 Envelope"\r
-msgstr "ج خ ج 7 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:165\r
-msgctxt "paper size"\r
-msgid "prc8 Envelope"\r
-msgstr "ج خ ج 8 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:166\r
-msgctxt "paper size"\r
-msgid "prc9 Envelope"\r
-msgstr "ج خ ج 9 لېپاپ"\r
-\r
-#: ../gtk/paper_names_offsets.c:167\r
-msgctxt "paper size"\r
-msgid "ROC 16k"\r
-msgstr "ج م 16 كەسلەم"\r
-\r
-#: ../gtk/paper_names_offsets.c:168\r
-msgctxt "paper size"\r
-msgid "ROC 8k"\r
-msgstr "ج م 8 كەسلەم"\r
-\r
-#: ../gtk/updateiconcache.c:492 ../gtk/updateiconcache.c:552\r
-#, c-format\r
-msgid "different idatas found for symlinked '%s' and '%s'\n"\r
-msgstr "ھەرپ بەلگە ئۇلىنىش “%s”بىلەن“%s” ئىشلەتكەن idatas ئوخشىمايدۇ\n"\r
-\r
-#: ../gtk/updateiconcache.c:1370\r
-#, c-format\r
-msgid "Failed to write header\n"\r
-msgstr "بېشىغا يازالمىدى\n"\r
-\r
-#: ../gtk/updateiconcache.c:1376\r
-#, c-format\r
-msgid "Failed to write hash table\n"\r
-msgstr "مۇكەممەللىك جەدۋىلىگە يازالمىدى\n"\r
-\r
-#: ../gtk/updateiconcache.c:1382\r
-#, c-format\r
-msgid "Failed to write folder index\n"\r
-msgstr "قىسقۇچ ئىندېكسقا يازالمىدى\n"\r
-\r
-#: ../gtk/updateiconcache.c:1390\r
-#, c-format\r
-msgid "Failed to rewrite header\n"\r
-msgstr "بېشىغا قايتا يازالمىدى\n"\r
-\r
-#: ../gtk/updateiconcache.c:1484\r
-#, c-format\r
-msgid "Failed to open file %s : %s\n"\r
-msgstr "%s ھۆججەتنى ئاچالمىدى: %s\n"\r
-\r
-#: ../gtk/updateiconcache.c:1492 ../gtk/updateiconcache.c:1522\r
-#, c-format\r
-msgid "Failed to write cache file: %s\n"\r
-msgstr "غەملەك ھۆججىتىگە يازالمىدى: %s\n"\r
-\r
-#: ../gtk/updateiconcache.c:1533\r
-#, c-format\r
-msgid "The generated cache was invalid.\n"\r
-msgstr "قۇرغان غەملەك ئىناۋەتسىز.\n"\r
-\r
-#: ../gtk/updateiconcache.c:1547\r
-#, c-format\r
-msgid "Could not rename %s to %s: %s, removing %s then.\n"\r
-msgstr "%s نى %s غا ئات ئۆزگەرتەلمىدى:%s،  %s چىقىرىۋاتىدۇ\n"\r
-\r
-#: ../gtk/updateiconcache.c:1561\r
-#, c-format\r
-msgid "Could not rename %s to %s: %s\n"\r
-msgstr "%s نى %s غا ئات ئۆزگەرتەلمىدى:%s\n"\r
-\r
-#: ../gtk/updateiconcache.c:1571\r
-#, c-format\r
-msgid "Could not rename %s back to %s: %s.\n"\r
-msgstr "%s نى %s غا قايتۇرۇپ ئات ئۆزگەرتەلمىدى:%s\n"\r
-\r
-#: ../gtk/updateiconcache.c:1598\r
-#, c-format\r
-msgid "Cache file created successfully.\n"\r
-msgstr "غەملەك ھۆججىتى مۇۋەپپەقىيەتلىك قۇرۇلدى.\n"\r
-\r
-#: ../gtk/updateiconcache.c:1637\r
-msgid "Overwrite an existing cache, even if up to date"\r
-msgstr "نۆۋەتتىكى غەملەك ئەڭ يېڭى بولسىمۇ قاپلىۋەت"\r
-\r
-#: ../gtk/updateiconcache.c:1638\r
-msgid "Don't check for the existence of index.theme"\r
-msgstr "مەۋجۇت index.theme نى تەكشۈرمە"\r
-\r
-#: ../gtk/updateiconcache.c:1639\r
-msgid "Don't include image data in the cache"\r
-msgstr "غەملەكتە سۈرەت سانلىق مەلۇماتىنى ساقلىما"\r
-\r
-#: ../gtk/updateiconcache.c:1640\r
-msgid "Output a C header file"\r
-msgstr "C باش ھۆججەتنى چىقار"\r
-\r
-#: ../gtk/updateiconcache.c:1641\r
-msgid "Turn off verbose output"\r
-msgstr "تەپسىلىي چىقىرىشنى ياپ"\r
-\r
-#: ../gtk/updateiconcache.c:1642\r
-msgid "Validate existing icon cache"\r
-msgstr "مەۋجۇت سىنبەلگە غەملىكىنى دەلىللە"\r
-\r
-#: ../gtk/updateiconcache.c:1709\r
-#, c-format\r
-msgid "File not found: %s\n"\r
-msgstr "ھۆججەتنى تاپالمىدى: %s\n"\r
-\r
-#: ../gtk/updateiconcache.c:1715\r
-#, c-format\r
-msgid "Not a valid icon cache: %s\n"\r
-msgstr "ئىناۋەتلىك سىنبەلگە غەملەك ئەمەس: %s\n"\r
-\r
-#: ../gtk/updateiconcache.c:1728\r
-#, c-format\r
-msgid "No theme index file.\n"\r
-msgstr "باش تېما ئىندېكس ھۆججىتى يوق.\n"\r
-\r
-#: ../gtk/updateiconcache.c:1732\r
-#, c-format\r
-msgid ""\r
-"No theme index file in '%s'.\n"\r
-"If you really want to create an icon cache here, use --ignore-theme-index.\n"\r
-msgstr ""\r
-"“%s دا باش تېما ئىندېكس ھۆججىتى يوق.\n"\r
-"ئەگەر بۇ جايغا راستىنىلا سىنبەلگە غەملەك قۇرماقچى بولسىڭىز --ignore-theme-"\r
-"index ئىشلىتىڭ\n"\r
-\r
-#. ID\r
-#: ../modules/input/imam-et.c:454\r
-msgid "Amharic (EZ+)"\r
-msgstr "ئامخاراچە(EZ+)"\r
-\r
-#. ID\r
-#: ../modules/input/imcedilla.c:92\r
-msgid "Cedilla"\r
-msgstr "ئاۋاز ئۆزگەرتىش بەلگىسى"\r
-\r
-#. ID\r
-#: ../modules/input/imcyrillic-translit.c:217\r
-msgid "Cyrillic (Transliterated)"\r
-msgstr "سلاۋيانچە (ئاھاڭ تەرجىمىسى)"\r
-\r
-#. ID\r
-#: ../modules/input/iminuktitut.c:127\r
-msgid "Inuktitut (Transliterated)"\r
-msgstr "ئىنۇكتىتۇت (ئاھاڭ تەرجىمىسى)"\r
-\r
-#. ID\r
-#: ../modules/input/imipa.c:145\r
-msgid "IPA"\r
-msgstr "IPA"\r
-\r
-#. ID\r
-#: ../modules/input/immultipress.c:31\r
-msgid "Multipress"\r
-msgstr "ئېغىر بىسىم"\r
-\r
-#. ID\r
-#: ../modules/input/imthai.c:35\r
-msgid "Thai-Lao"\r
-msgstr "تايلاند-لائۇس"\r
-\r
-#. ID\r
-#: ../modules/input/imti-er.c:453\r
-msgid "Tigrigna-Eritrean (EZ+)"\r
-msgstr "تىگرىگنا-ئېرىترىيە(EZ+)"\r
-\r
-#. ID\r
-#: ../modules/input/imti-et.c:453\r
-msgid "Tigrigna-Ethiopian (EZ+)"\r
-msgstr "تىگرىگنا-ئېفىئوپىيە(EZ+)"\r
-\r
-#. ID\r
-#: ../modules/input/imviqr.c:244\r
-msgid "Vietnamese (VIQR)"\r
-msgstr "ۋيېتنامچە(VIQR)"\r
-\r
-#. ID\r
-#: ../modules/input/imxim.c:28\r
-msgid "X Input Method"\r
-msgstr "X كىرگۈزگۈچ"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:814\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1024\r
-msgid "Username:"\r
-msgstr "ئىشلەتكۈچى ئاتى:"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:815\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1033\r
-msgid "Password:"\r
-msgstr "ئىم:"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:854\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1046\r
-#, c-format\r
-msgid "Authentication is required to print document '%s' on printer %s"\r
-msgstr "باسىدىغان '%s' پۈتۈكنى %s پرىنتېردا بېسىشتا دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:856\r
-#, c-format\r
-msgid "Authentication is required to print a document on %s"\r
-msgstr "%s دا پۈتۈكتىن بىرنى بېسىشتا دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:860\r
-#, c-format\r
-msgid "Authentication is required to get attributes of job '%s'"\r
-msgstr "ۋەزىپە '%s' نىڭ خاسلىقىغا ئېرىشىشتە دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:862\r
-msgid "Authentication is required to get attributes of a job"\r
-msgstr "بىر ۋەزىپىنىڭ خاسلىقىغا ئېرىشىش ئۈچۈن دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:866\r
-#, c-format\r
-msgid "Authentication is required to get attributes of printer %s"\r
-msgstr "%s پرىنتېرنىڭ خاسلىقىغا ئېرىشىشتە دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:868\r
-msgid "Authentication is required to get attributes of a printer"\r
-msgstr "بىر پرىنتېرنىڭ خاسلىقىغا ئېرىشىشتە دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:871\r
-#, c-format\r
-msgid "Authentication is required to get default printer of %s"\r
-msgstr "%s نىڭ كۆڭۈلدىكى پرىنتېرىغا ئېرىشىشتە دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:874\r
-#, c-format\r
-msgid "Authentication is required to get printers from %s"\r
-msgstr "%s دىن پرىنتېرغا ئېرىشىشتە دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:879\r
-#, c-format\r
-msgid "Authentication is required to get a file from %s"\r
-msgstr "%s دىن ھۆججەتكە ئېرىشىشتە دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:881\r
-#, c-format\r
-msgid "Authentication is required on %s"\r
-msgstr "%s دا دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1018\r
-msgid "Domain:"\r
-msgstr "دائىرە:"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1048\r
-#, c-format\r
-msgid "Authentication is required to print document '%s'"\r
-msgstr "%s دا پۈتۈك بېسىشتا دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1053\r
-#, c-format\r
-msgid "Authentication is required to print this document on printer %s"\r
-msgstr "بۇ پۈتۈكنى %s دا بېسىشتا دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1055\r
-msgid "Authentication is required to print this document"\r
-msgstr "بۇ پۈتۈكنى بېسىشتا دەلىللەش لازىم"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1676\r
-#, c-format\r
-msgid "Printer '%s' is low on toner."\r
-msgstr "'%s' پرىنتېرنىڭ سىياھى ئاز."\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1677\r
-#, c-format\r
-msgid "Printer '%s' has no toner left."\r
-msgstr "'%s' پرىنتېرنىڭ سىياھى قالمىغان."\r
-\r
-#. Translators: "Developer" like on photo development context\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1679\r
-#, c-format\r
-msgid "Printer '%s' is low on developer."\r
-msgstr "'%s' پرىنتېر روشەنلەشتۈرۈش خۇرۇچى ئاز"\r
-\r
-#. Translators: "Developer" like on photo development context\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1681\r
-#, c-format\r
-msgid "Printer '%s' is out of developer."\r
-msgstr "'%s' پرىنتېر روشەنلەشتۈرۈش خۇرۇچى قالمىغان."\r
-\r
-#. Translators: "marker" is one color bin of the printer\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1683\r
-#, c-format\r
-msgid "Printer '%s' is low on at least one marker supply."\r
-msgstr "'%s' پرىنتېرنىڭ ئاز دېگەندە بىر رەڭ قۇتىسىنىڭ سىياھى ئاز."\r
-\r
-#. Translators: "marker" is one color bin of the printer\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1685\r
-#, c-format\r
-msgid "Printer '%s' is out of at least one marker supply."\r
-msgstr "'%s' پرىنتېرنىڭ ئاز دېگەندە بىر رەڭ قۇتىسىنىڭ سىياھى تۈگىگەن."\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1686\r
-#, c-format\r
-msgid "The cover is open on printer '%s'."\r
-msgstr "'%s' پرىنتېرنىڭ قاپقىقى ئوچۇق."\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1687\r
-#, c-format\r
-msgid "The door is open on printer '%s'."\r
-msgstr "'%s' پرىنتېرنىڭ ئىشىكى ئوچۇق."\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1688\r
-#, c-format\r
-msgid "Printer '%s' is low on paper."\r
-msgstr "'%s' پرىنتېرنىڭ قەغىزى قالمىغان."\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1689\r
-#, c-format\r
-msgid "Printer '%s' is out of paper."\r
-msgstr "'%s' پرىنتېردا قەغەز كەم."\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690\r
-#, c-format\r
-msgid "Printer '%s' is currently offline."\r
-msgstr "'%s' پرىنتېر نۆۋەتتە توردا يوق."\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691\r
-#, c-format\r
-msgid "There is a problem on printer '%s'."\r
-msgstr "'%s' پرىنتېردا مەسىلە بار."\r
-\r
-#. Translators: this is a printer status.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:1999\r
-msgid "Paused ; Rejecting Jobs"\r
-msgstr "ۋاقىتلىق توختىتىلدى؛ ۋەزىپىنى رەت قىلىدۇ"\r
-\r
-#. Translators: this is a printer status.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2005\r
-msgid "Rejecting Jobs"\r
-msgstr "ۋەزىپىنى رەت قىلىدۇ"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2778\r
-msgid "Two Sided"\r
-msgstr "قوش يۈزلۈك"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2779\r
-msgid "Paper Type"\r
-msgstr "قەغەز تىپى"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2780\r
-msgid "Paper Source"\r
-msgstr "قەغەز مەنبەسى"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2781\r
-msgid "Output Tray"\r
-msgstr "قەغەز چىقارغۇچ"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2782\r
-msgid "Resolution"\r
-msgstr "ئېنىقلىق"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2783\r
-msgid "GhostScript pre-filtering"\r
-msgstr "GhostScript ئالدىن سۈزگۈچ"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2792\r
-msgid "One Sided"\r
-msgstr "تاق تەرەپلىك"\r
-\r
-#. Translators: this is an option of "Two Sided"\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2794\r
-msgid "Long Edge (Standard)"\r
-msgstr "ئۇزۇن يان (ئۆلچەملىك)"\r
-\r
-#. Translators: this is an option of "Two Sided"\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2796\r
-msgid "Short Edge (Flip)"\r
-msgstr "قىسقا يان (ئۆرۈ)"\r
-\r
-#. Translators: this is an option of "Paper Source"\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2808\r
-msgid "Auto Select"\r
-msgstr "ئۆزلۈكىدىن تاللا"\r
-\r
-#. Translators: this is an option of "Paper Source"\r
-#. Translators: this is an option of "Resolution"\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2804\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2806\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2810\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3306\r
-msgid "Printer Default"\r
-msgstr "ئالدىن تەڭشەلگەن پرىنتېر"\r
-\r
-#. Translators: this is an option of "GhostScript"\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812\r
-msgid "Embed GhostScript fonts only"\r
-msgstr "GhostScript خەت نۇسخىنىلا سىڭدۈر"\r
-\r
-#. Translators: this is an option of "GhostScript"\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814\r
-msgid "Convert to PS level 1"\r
-msgstr "PS دەرىجە 1 گە ئايلاندۇر"\r
-\r
-#. Translators: this is an option of "GhostScript"\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816\r
-msgid "Convert to PS level 2"\r
-msgstr "PS دەرىجە 2 گە ئايلاندۇر"\r
-\r
-#. Translators: this is an option of "GhostScript"\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818\r
-msgid "No pre-filtering"\r
-msgstr "ئالدىن سۈزگۈچ يوق"\r
-\r
-#. Translators: "Miscellaneous" is the label for a button, that opens\r
-#. up an extra panel of settings in a print dialog.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:2827\r
-msgid "Miscellaneous"\r
-msgstr "باشقىلار"\r
-\r
-#. Translators: These strings name the possible values of the\r
-#. * job priority option in the print dialog\r
-#.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530\r
-msgid "Urgent"\r
-msgstr "جىددىي"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530\r
-msgid "High"\r
-msgstr "يۇقىرى"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530\r
-msgid "Medium"\r
-msgstr "ئوتتۇرا"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3530\r
-msgid "Low"\r
-msgstr "تۆۋەن"\r
-\r
-#. Cups specific, non-ppd related settings\r
-#. Translators, this string is used to label the pages-per-sheet option\r
-#. * in the print dialog\r
-#.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3554\r
-msgid "Pages per Sheet"\r
-msgstr "ھەر ۋاراق بەت سانى"\r
-\r
-#. Translators, this string is used to label the job priority option\r
-#. * in the print dialog\r
-#.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3591\r
-msgid "Job Priority"\r
-msgstr "ۋەزىپە ئالدىنلىق"\r
-\r
-#. Translators, this string is used to label the billing info entry\r
-#. * in the print dialog\r
-#.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3602\r
-msgid "Billing Info"\r
-msgstr "ھەق ھېسابلاش ئۇچۇرى"\r
-\r
-#. Translators, these strings are names for various 'standard' cover\r
-#. * pages that the printing system may support.\r
-#.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617\r
-msgid "None"\r
-msgstr "يوق"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617\r
-msgid "Classified"\r
-msgstr "تۈرگە ئايرىلغان"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617\r
-msgid "Confidential"\r
-msgstr "مەخپىي"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617\r
-msgid "Secret"\r
-msgstr "سىر"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617\r
-msgid "Standard"\r
-msgstr "ئۆلچەملىك"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617\r
-msgid "Top Secret"\r
-msgstr "قەتئىي مەخپىي"\r
-\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3617\r
-msgid "Unclassified"\r
-msgstr "بۆلۈنمىگەن"\r
-\r
-#. Translators, this is the label used for the option in the print\r
-#. * dialog that controls the front cover page.\r
-#.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3652\r
-msgid "Before"\r
-msgstr "ئاۋۋال"\r
-\r
-#. Translators, this is the label used for the option in the print\r
-#. * dialog that controls the back cover page.\r
-#.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3667\r
-msgid "After"\r
-msgstr "كېيىن"\r
-\r
-#. Translators: this is the name of the option that controls when\r
-#. * a print job is printed. Possible values are 'now', a specified time,\r
-#. * or 'on hold'\r
-#.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3687\r
-msgid "Print at"\r
-msgstr "باسىدۇ"\r
-\r
-#. Translators: this is the name of the option that allows the user\r
-#. * to specify a time when a print job will be printed.\r
-#.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3698\r
-msgid "Print at time"\r
-msgstr "بەلگىلەنگەن ۋاقىتتا باسىدۇ"\r
-\r
-#. Translators: this format is used to display a custom paper\r
-#. * size. The two placeholders are replaced with the width and height\r
-#. * in points. E.g: "Custom 230.4x142.9"\r
-#.\r
-#: ../modules/printbackends/cups/gtkprintbackendcups.c:3733\r
-#, c-format\r
-msgid "Custom %sx%s"\r
-msgstr "ئىختىيارى %sx%s"\r
-\r
-#. default filename used for print-to-file\r
-#: ../modules/printbackends/file/gtkprintbackendfile.c:250\r
-#, c-format\r
-msgid "output.%s"\r
-msgstr "چىقىش.%s"\r
-\r
-#: ../modules/printbackends/file/gtkprintbackendfile.c:501\r
-msgid "Print to File"\r
-msgstr "ھۆججەتكە باس"\r
-\r
-#: ../modules/printbackends/file/gtkprintbackendfile.c:627\r
-msgid "PDF"\r
-msgstr "PDF"\r
-\r
-#: ../modules/printbackends/file/gtkprintbackendfile.c:627\r
-msgid "Postscript"\r
-msgstr "Postscript"\r
-\r
-#: ../modules/printbackends/file/gtkprintbackendfile.c:627\r
-msgid "SVG"\r
-msgstr "SVG"\r
-\r
-#: ../modules/printbackends/file/gtkprintbackendfile.c:640\r
-#: ../modules/printbackends/test/gtkprintbackendtest.c:503\r
-msgid "Pages per _sheet:"\r
-msgstr "ھەر ۋاراق بەت سانى(_S):"\r
-\r
-#: ../modules/printbackends/file/gtkprintbackendfile.c:699\r
-msgid "File"\r
-msgstr "ھۆججەت"\r
-\r
-#: ../modules/printbackends/file/gtkprintbackendfile.c:709\r
-msgid "_Output format"\r
-msgstr "چىقىرىش فورماتى(_O)"\r
-\r
-#: ../modules/printbackends/lpr/gtkprintbackendlpr.c:395\r
-msgid "Print to LPR"\r
-msgstr "LPR غا باس"\r
-\r
-#: ../modules/printbackends/lpr/gtkprintbackendlpr.c:421\r
-msgid "Pages Per Sheet"\r
-msgstr "ھەر ۋاراقتىكى بەت سانى"\r
-\r
-#: ../modules/printbackends/lpr/gtkprintbackendlpr.c:428\r
-msgid "Command Line"\r
-msgstr "بۇيرۇق قۇرى"\r
-\r
-#. SUN_BRANDING\r
-#: ../modules/printbackends/papi/gtkprintbackendpapi.c:811\r
-msgid "printer offline"\r
-msgstr "پرىنتېر ئۈزۈك ھالەتتە"\r
-\r
-#. SUN_BRANDING\r
-#: ../modules/printbackends/papi/gtkprintbackendpapi.c:829\r
-msgid "ready to print"\r
-msgstr "بېسىشقا تەييار"\r
-\r
-#. SUN_BRANDING\r
-#: ../modules/printbackends/papi/gtkprintbackendpapi.c:832\r
-msgid "processing job"\r
-msgstr "ۋەزىپىنى بىر تەرەپ قىلىۋاتىدۇ"\r
-\r
-#. SUN_BRANDING\r
-#: ../modules/printbackends/papi/gtkprintbackendpapi.c:836\r
-msgid "paused"\r
-msgstr "ۋاقىتلىق توختىتىلدى"\r
-\r
-#. SUN_BRANDING\r
-#: ../modules/printbackends/papi/gtkprintbackendpapi.c:839\r
-msgid "unknown"\r
-msgstr "نامەلۇم"\r
-\r
-#. default filename used for print-to-test\r
-#: ../modules/printbackends/test/gtkprintbackendtest.c:234\r
-#, c-format\r
-msgid "test-output.%s"\r
-msgstr "test-output.%s"\r
-\r
-#: ../modules/printbackends/test/gtkprintbackendtest.c:467\r
-msgid "Print to Test Printer"\r
-msgstr "سىناق پرىنتېردا باس"\r
-\r
-#: ../tests/testfilechooser.c:207\r
-#, c-format\r
-msgid "Could not get information for file '%s': %s"\r
-msgstr "'%s' ھۆججەتنىڭ ئۇچۇرىغا ئېرىشەلمىدى:%s"\r
-\r
-#: ../tests/testfilechooser.c:222\r
-#, c-format\r
-msgid "Failed to open file '%s': %s"\r
-msgstr "ھۆججەت «%s» نى ئاچالمىدى: %s"\r
-\r
-#: ../tests/testfilechooser.c:267\r
-#, c-format\r
-msgid ""\r
-"Failed to load image '%s': reason not known, probably a corrupt image file"\r
-msgstr ""\r
-"'%s' سۈرەتنى يۈكلىيەلمىدى. سەۋەبى  ئېنىق ئەمەس بۇ ھۆججەت بۇزۇلۇپ كەتكەن "\r
-"بولۇشى مۇمكىن"\r
+# Uighur translation for gtk+2.0
+# Copyright (c) 2008 Rosetta Contributors and Canonical Ltd 2008
+# This file is distributed under the same license as the gtk+2.0 package.
+# Ömerjan Tursunqasim <omarjan14@qq.com>, 2008.
+# Sahran <sahran@live.com>, 2010
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: gtk+2.0\n"
+"Report-Msgid-Bugs-To: http://bugzilla.gnome.org/enter_bug.cgi?product=gtk%"
+"2b&keywords=I18N+L10N&component=general\n"
+"POT-Creation-Date: 2011-07-06 16:47+0000\n"
+"PO-Revision-Date: 2011-06-27 17:25+0600\n"
+"Last-Translator: Sahran <sahran.ug@gmail.com>\n"
+"Language-Team: Uyghur Computer Science Association <UKIJ@yahoogroups.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Launchpad-Export-Date: 2010-05-06 04:15+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#: ../gdk/gdk.c:135
+#, c-format
+msgid "Error parsing option --gdk-debug"
+msgstr "--gdk-debug تاللانمىنى يېشىشتە خاتالىق كۆرۈلدى"
+
+#: ../gdk/gdk.c:155
+#, c-format
+msgid "Error parsing option --gdk-no-debug"
+msgstr "--gdk-no-debug تاللانمىنى يېشىشتە خاتالىق كۆرۈلدى"
+
+#. Description of --class=CLASS in --help output
+#: ../gdk/gdk.c:183
+msgid "Program class as used by the window manager"
+msgstr "كۆزنەك باشقۇرغۇچ ئىشلەتكەن پروگرامما تۈرى"
+
+#. Placeholder in --class=CLASS in --help output
+#: ../gdk/gdk.c:184
+msgid "CLASS"
+msgstr "CLASS"
+
+#. Description of --name=NAME in --help output
+#: ../gdk/gdk.c:186
+msgid "Program name as used by the window manager"
+msgstr "كۆزنەك باشقۇرغۇچ ئىشلەتكەن پروگرامما ئىسمى"
+
+#. Placeholder in --name=NAME in --help output
+#: ../gdk/gdk.c:187
+msgid "NAME"
+msgstr "NAME"
+
+#. Description of --display=DISPLAY in --help output
+#: ../gdk/gdk.c:189
+msgid "X display to use"
+msgstr "X كۆرسىتىش ئېغىزى ئىشلەت"
+
+#. Placeholder in --display=DISPLAY in --help output
+#: ../gdk/gdk.c:190
+msgid "DISPLAY"
+msgstr "كۆرسەت"
+
+#. Description of --gdk-debug=FLAGS in --help output
+#: ../gdk/gdk.c:193
+msgid "GDK debugging flags to set"
+msgstr "تەڭشەيدىغان GTK+ سازلاش بەلگىسى"
+
+#. Placeholder in --gdk-debug=FLAGS in --help output
+#. Placeholder in --gdk-no-debug=FLAGS in --help output
+#. Placeholder in --gtk-debug=FLAGS in --help output
+#. Placeholder in --gtk-no-debug=FLAGS in --help output
+#: ../gdk/gdk.c:194 ../gdk/gdk.c:197 ../gtk/gtkmain.c:569 ../gtk/gtkmain.c:572
+msgid "FLAGS"
+msgstr "بەلگە"
+
+#. Description of --gdk-no-debug=FLAGS in --help output
+#: ../gdk/gdk.c:196
+msgid "GDK debugging flags to unset"
+msgstr "قالدۇرماقچى بولغان GTK+ سازلاش بەلگىسى"
+
+#.
+#. * Translators, the strings in the 'keyboard label' context are
+#. * display names for keyboard keys. Some of them have prefixes like
+#. * XF86 or ISO_ - these should be removed in the translation. Similarly,
+#. * underscores should be replaced by spaces. The prefix 'KP_' stands
+#. * for 'key pad' and you may want to include that in your translation.
+#. * Here are some examples of English translations:
+#. * XF86AudioMute - Audio mute
+#. * Scroll_lock   - Scroll lock
+#. * KP_Space      - Space (keypad)
+#.
+#: ../gdk/keyname-table.h:3951
+msgctxt "keyboard label"
+msgid "BackSpace"
+msgstr "چېكىنىش كۇنۇپكىسى"
+
+#: ../gdk/keyname-table.h:3952
+msgctxt "keyboard label"
+msgid "Tab"
+msgstr "Tab"
+
+#: ../gdk/keyname-table.h:3953
+msgctxt "keyboard label"
+msgid "Return"
+msgstr "Return"
+
+#: ../gdk/keyname-table.h:3954
+msgctxt "keyboard label"
+msgid "Pause"
+msgstr "ۋاقىتلىق توختا"
+
+#: ../gdk/keyname-table.h:3955
+msgctxt "keyboard label"
+msgid "Scroll_Lock"
+msgstr "Scroll_Lock"
+
+#: ../gdk/keyname-table.h:3956
+msgctxt "keyboard label"
+msgid "Sys_Req"
+msgstr "Sys_Req"
+
+#: ../gdk/keyname-table.h:3957
+msgctxt "keyboard label"
+msgid "Escape"
+msgstr "Escape"
+
+#: ../gdk/keyname-table.h:3958
+msgctxt "keyboard label"
+msgid "Multi_key"
+msgstr "Multikey(_K)"
+
+#: ../gdk/keyname-table.h:3959
+msgctxt "keyboard label"
+msgid "Home"
+msgstr "Home"
+
+#: ../gdk/keyname-table.h:3960
+msgctxt "keyboard label"
+msgid "Left"
+msgstr "سول"
+
+#: ../gdk/keyname-table.h:3961
+msgctxt "keyboard label"
+msgid "Up"
+msgstr "يۇقىرى"
+
+#: ../gdk/keyname-table.h:3962
+msgctxt "keyboard label"
+msgid "Right"
+msgstr "ئوڭ"
+
+#: ../gdk/keyname-table.h:3963
+msgctxt "keyboard label"
+msgid "Down"
+msgstr "تۆۋەن"
+
+#: ../gdk/keyname-table.h:3964
+msgctxt "keyboard label"
+msgid "Page_Up"
+msgstr "Page_Up"
+
+#: ../gdk/keyname-table.h:3965
+msgctxt "keyboard label"
+msgid "Page_Down"
+msgstr "Page_Down"
+
+#: ../gdk/keyname-table.h:3966
+msgctxt "keyboard label"
+msgid "End"
+msgstr "تامام"
+
+#: ../gdk/keyname-table.h:3967
+msgctxt "keyboard label"
+msgid "Begin"
+msgstr "باشلا"
+
+#: ../gdk/keyname-table.h:3968
+msgctxt "keyboard label"
+msgid "Print"
+msgstr "باس"
+
+#: ../gdk/keyname-table.h:3969
+msgctxt "keyboard label"
+msgid "Insert"
+msgstr "قىستۇر"
+
+#: ../gdk/keyname-table.h:3970
+msgctxt "keyboard label"
+msgid "Num_Lock"
+msgstr "Num_Lock"
+
+#. Translators: KP_ means 'key pad' here
+#: ../gdk/keyname-table.h:3972
+msgctxt "keyboard label"
+msgid "KP_Space"
+msgstr "KP_Space"
+
+#: ../gdk/keyname-table.h:3973
+msgctxt "keyboard label"
+msgid "KP_Tab"
+msgstr "KP_Tab"
+
+#: ../gdk/keyname-table.h:3974
+msgctxt "keyboard label"
+msgid "KP_Enter"
+msgstr "KP_Enter"
+
+#: ../gdk/keyname-table.h:3975
+msgctxt "keyboard label"
+msgid "KP_Home"
+msgstr "KP_Home"
+
+#: ../gdk/keyname-table.h:3976
+msgctxt "keyboard label"
+msgid "KP_Left"
+msgstr "KP_Left"
+
+#: ../gdk/keyname-table.h:3977
+msgctxt "keyboard label"
+msgid "KP_Up"
+msgstr "KP_Up"
+
+#: ../gdk/keyname-table.h:3978
+msgctxt "keyboard label"
+msgid "KP_Right"
+msgstr "KP_Right"
+
+#: ../gdk/keyname-table.h:3979
+msgctxt "keyboard label"
+msgid "KP_Down"
+msgstr "KP_Down"
+
+#: ../gdk/keyname-table.h:3980
+msgctxt "keyboard label"
+msgid "KP_Page_Up"
+msgstr "KP_Page_Up"
+
+#: ../gdk/keyname-table.h:3981
+msgctxt "keyboard label"
+msgid "KP_Prior"
+msgstr "KP_Prior"
+
+#: ../gdk/keyname-table.h:3982
+msgctxt "keyboard label"
+msgid "KP_Page_Down"
+msgstr "KP_Page_Down"
+
+#: ../gdk/keyname-table.h:3983
+msgctxt "keyboard label"
+msgid "KP_Next"
+msgstr "KP_Next"
+
+#: ../gdk/keyname-table.h:3984
+msgctxt "keyboard label"
+msgid "KP_End"
+msgstr "KP_End"
+
+#: ../gdk/keyname-table.h:3985
+msgctxt "keyboard label"
+msgid "KP_Begin"
+msgstr "KP_Begin"
+
+#: ../gdk/keyname-table.h:3986
+msgctxt "keyboard label"
+msgid "KP_Insert"
+msgstr "KP_Insert"
+
+#: ../gdk/keyname-table.h:3987
+msgctxt "keyboard label"
+msgid "KP_Delete"
+msgstr "KP_Delete"
+
+#: ../gdk/keyname-table.h:3988
+msgctxt "keyboard label"
+msgid "Delete"
+msgstr "ئۆچۈر"
+
+#. Translators: 'Mon' means Monitor here, and the XF86 prefix should be removed
+#: ../gdk/keyname-table.h:3990
+msgctxt "keyboard label"
+msgid "XF86MonBrightnessUp"
+msgstr "XF86MonBrightnessUp"
+
+#: ../gdk/keyname-table.h:3991
+msgctxt "keyboard label"
+msgid "XF86MonBrightnessDown"
+msgstr "XF86MonBrightnessDown"
+
+#: ../gdk/keyname-table.h:3992
+msgctxt "keyboard label"
+msgid "XF86AudioMute"
+msgstr "XF86AudioMute"
+
+#: ../gdk/keyname-table.h:3993
+msgctxt "keyboard label"
+msgid "XF86AudioLowerVolume"
+msgstr "XF86AudioLowerVolume"
+
+#: ../gdk/keyname-table.h:3994
+msgctxt "keyboard label"
+msgid "XF86AudioRaiseVolume"
+msgstr "XF86AudioRaiseVolume"
+
+#: ../gdk/keyname-table.h:3995
+msgctxt "keyboard label"
+msgid "XF86AudioPlay"
+msgstr "XF86AudioPlay"
+
+#: ../gdk/keyname-table.h:3996
+msgctxt "keyboard label"
+msgid "XF86AudioStop"
+msgstr "XF86AudioStop"
+
+#: ../gdk/keyname-table.h:3997
+msgctxt "keyboard label"
+msgid "XF86AudioNext"
+msgstr "XF86AudioNext"
+
+#: ../gdk/keyname-table.h:3998
+msgctxt "keyboard label"
+msgid "XF86AudioPrev"
+msgstr "XF86AudioPrev"
+
+#: ../gdk/keyname-table.h:3999
+msgctxt "keyboard label"
+msgid "XF86AudioRecord"
+msgstr "XF86AudioRecord"
+
+#: ../gdk/keyname-table.h:4000
+msgctxt "keyboard label"
+msgid "XF86AudioPause"
+msgstr "XF86AudioPause"
+
+#: ../gdk/keyname-table.h:4001
+msgctxt "keyboard label"
+msgid "XF86AudioRewind"
+msgstr "XF86AudioRewind"
+
+#: ../gdk/keyname-table.h:4002
+msgctxt "keyboard label"
+msgid "XF86AudioMedia"
+msgstr "XF86AudioMedia"
+
+#: ../gdk/keyname-table.h:4003
+msgctxt "keyboard label"
+msgid "XF86ScreenSaver"
+msgstr "XF86ScreenSaver"
+
+#: ../gdk/keyname-table.h:4004
+msgctxt "keyboard label"
+msgid "XF86Battery"
+msgstr "XF86Battery"
+
+#: ../gdk/keyname-table.h:4005
+msgctxt "keyboard label"
+msgid "XF86Launch1"
+msgstr "XF86Launch1"
+
+#: ../gdk/keyname-table.h:4006
+msgctxt "keyboard label"
+msgid "XF86Forward"
+msgstr "XF86Forward"
+
+#: ../gdk/keyname-table.h:4007
+msgctxt "keyboard label"
+msgid "XF86Back"
+msgstr "XF86Back"
+
+#: ../gdk/keyname-table.h:4008
+msgctxt "keyboard label"
+msgid "XF86Sleep"
+msgstr "XF86Sleep"
+
+#: ../gdk/keyname-table.h:4009
+msgctxt "keyboard label"
+msgid "XF86Hibernate"
+msgstr "XF86Hibernate"
+
+#: ../gdk/keyname-table.h:4010
+msgctxt "keyboard label"
+msgid "XF86WLAN"
+msgstr "XF86WLAN"
+
+#: ../gdk/keyname-table.h:4011
+msgctxt "keyboard label"
+msgid "XF86WebCam"
+msgstr "XF86WebCam"
+
+#: ../gdk/keyname-table.h:4012
+msgctxt "keyboard label"
+msgid "XF86Display"
+msgstr "XF86Display"
+
+#: ../gdk/keyname-table.h:4013
+msgctxt "keyboard label"
+msgid "XF86TouchpadToggle"
+msgstr "XF86TouchpadToggle"
+
+#: ../gdk/keyname-table.h:4014
+msgctxt "keyboard label"
+msgid "XF86WakeUp"
+msgstr "XF86WakeUp"
+
+#: ../gdk/keyname-table.h:4015
+msgctxt "keyboard label"
+msgid "XF86Suspend"
+msgstr "XF86Suspend"
+
+#. Description of --sync in --help output
+#: ../gdk/win32/gdkmain-win32.c:55
+msgid "Don't batch GDI requests"
+msgstr "GDI ئىلتىماسىنى توپ بىر تەرەپ قىلالمايدۇ"
+
+#. Description of --no-wintab in --help output
+#: ../gdk/win32/gdkmain-win32.c:57
+msgid "Don't use the Wintab API for tablet support"
+msgstr "Wintab API ئىشلەتمەي tablet قوللايدۇ"
+
+#. Description of --ignore-wintab in --help output
+#: ../gdk/win32/gdkmain-win32.c:59
+msgid "Same as --no-wintab"
+msgstr "--no-wintab بىلەن ئوخشاش"
+
+#. Description of --use-wintab in --help output
+#: ../gdk/win32/gdkmain-win32.c:61
+msgid "Do use the Wintab API [default]"
+msgstr "Wintab API ئىشلەت [كۆڭۈلدىكى]"
+
+#. Description of --max-colors=COLORS in --help output
+#: ../gdk/win32/gdkmain-win32.c:63
+msgid "Size of the palette in 8 bit mode"
+msgstr "8 بىتلىق رەڭ تەڭشەش تاختا چوڭلۇقى"
+
+#. Placeholder in --max-colors=COLORS in --help output
+#: ../gdk/win32/gdkmain-win32.c:64
+msgid "COLORS"
+msgstr "رەڭ"
+
+#: ../gdk/x11/gdkapplaunchcontext-x11.c:294
+#, c-format
+msgid "Starting %s"
+msgstr "%s قوزغىلىۋاتىدۇ"
+
+#: ../gdk/x11/gdkapplaunchcontext-x11.c:307
+#, c-format
+msgid "Opening %s"
+msgstr "%s نى ئېچىۋاتىدۇ"
+
+#: ../gdk/x11/gdkapplaunchcontext-x11.c:312
+#, c-format
+msgid "Opening %d Item"
+msgid_plural "Opening %d Items"
+msgstr[0] "%d تۈرنى ئېچىۋاتىدۇ"
+
+#. Translators: this is the license preamble; the string at the end
+#. * contains the URL of the license.
+#.
+#: ../gtk/gtkaboutdialog.c:103
+#, c-format
+msgid ""
+"This program comes with ABSOLUTELY NO WARRANTY; for details, visit <a href="
+"\"%s\">%s</a>"
+msgstr ""
+"بۇ پروگرامما ھېچقانداق كاپالەت بەرمەيدۇ؛ تەپسىلاتىنى <a href=\"%s\">%s</a> "
+"زىيارەت قىلىڭ"
+
+#: ../gtk/gtkaboutdialog.c:345
+msgid "License"
+msgstr "ئىجازەتنامە"
+
+#: ../gtk/gtkaboutdialog.c:346
+msgid "The license of the program"
+msgstr "پروگراممىنىڭ ئىجازەتنامىسى"
+
+#. Add the credits button
+#: ../gtk/gtkaboutdialog.c:738
+msgid "C_redits"
+msgstr "تەشەككۈر(_R)"
+
+#. Add the license button
+#: ../gtk/gtkaboutdialog.c:751
+msgid "_License"
+msgstr "ئىجازەت(_L)"
+
+#: ../gtk/gtkaboutdialog.c:956
+msgid "Could not show link"
+msgstr "ئۇلانمىنى كۆرسىتەلمىدى"
+
+#: ../gtk/gtkaboutdialog.c:993
+msgid "Homepage"
+msgstr "باش بەت"
+
+#: ../gtk/gtkaboutdialog.c:1047
+#, c-format
+msgid "About %s"
+msgstr "%s ھەققىدە"
+
+#: ../gtk/gtkaboutdialog.c:2371
+msgid "Created by"
+msgstr "قۇرغۇچى"
+
+#: ../gtk/gtkaboutdialog.c:2374
+msgid "Documented by"
+msgstr "پۈتۈكچى"
+
+#: ../gtk/gtkaboutdialog.c:2384
+msgid "Translated by"
+msgstr "تەرجىمان"
+
+#: ../gtk/gtkaboutdialog.c:2389
+msgid "Artwork by"
+msgstr "گۈزەل سەنئەت تەھرىرى"
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the shift key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: ../gtk/gtkaccellabel.c:156
+msgctxt "keyboard label"
+msgid "Shift"
+msgstr "Shift كۇنۇپكىسى"
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the control key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: ../gtk/gtkaccellabel.c:162
+msgctxt "keyboard label"
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the alt key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: ../gtk/gtkaccellabel.c:168
+msgctxt "keyboard label"
+msgid "Alt"
+msgstr "Alt"
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the super key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: ../gtk/gtkaccellabel.c:787
+msgctxt "keyboard label"
+msgid "Super"
+msgstr "Super"
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the hyper key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: ../gtk/gtkaccellabel.c:800
+msgctxt "keyboard label"
+msgid "Hyper"
+msgstr "Hyper"
+
+#. This is the text that should appear next to menu accelerators
+#. * that use the meta key. If the text on this key isn't typically
+#. * translated on keyboards used for your language, don't translate
+#. * this.
+#.
+#: ../gtk/gtkaccellabel.c:814
+msgctxt "keyboard label"
+msgid "Meta"
+msgstr "Meta"
+
+#: ../gtk/gtkaccellabel.c:830
+msgctxt "keyboard label"
+msgid "Space"
+msgstr "بوشلۇق"
+
+#: ../gtk/gtkaccellabel.c:833
+msgctxt "keyboard label"
+msgid "Backslash"
+msgstr "تەتۈر يانتۇ سىزىق(Backslash)"
+
+#: ../gtk/gtkappchooserbutton.c:268
+msgid "Other application..."
+msgstr "باشقا پروگراممىلار..."
+
+#: ../gtk/gtkappchooserdialog.c:130
+msgid "Failed to look for applications online"
+msgstr "تودىن پروگرامما ئىزدەش مەغلۇپ بولدى"
+
+#: ../gtk/gtkappchooserdialog.c:171
+msgid "Find applications online"
+msgstr "تودىن پروگرامما ئىزدەش"
+
+#: ../gtk/gtkappchooserdialog.c:221
+msgid "Could not run application"
+msgstr "پروگراممىنى ئىجرا قىلالمىدى"
+
+#: ../gtk/gtkappchooserdialog.c:234
+#, c-format
+msgid "Could not find '%s'"
+msgstr "'%s' تاپالمىدى"
+
+#: ../gtk/gtkappchooserdialog.c:237
+msgid "Could not find application"
+msgstr "پروگراممىنى تاپالمىدى"
+
+#. Translators: %s is a filename
+#: ../gtk/gtkappchooserdialog.c:355
+#, c-format
+msgid "Select an application to open \"%s\""
+msgstr "\"%s\" نى ئاچىدىغان پروگراممىنى تاللاڭ"
+
+#: ../gtk/gtkappchooserdialog.c:356 ../gtk/gtkappchooserwidget.c:643
+#, c-format
+msgid "No applications available to open \"%s\""
+msgstr "\"%s\" نى ئاچىدىغان پروگرامما يوق"
+
+#. Translators: %s is a file type description
+#: ../gtk/gtkappchooserdialog.c:362
+#, c-format
+msgid "Select an application for \"%s\" files"
+msgstr "\"%s\" ھۆججەتلەر ئۈچۈن پروگرامما تاللاڭ."
+
+#: ../gtk/gtkappchooserdialog.c:364
+#, c-format
+msgid "No applications available to open \"%s\" files"
+msgstr "\"%s\" ھۆججەتلەر ئاچىدىغان پروگرامما يوق"
+
+#: ../gtk/gtkappchooserdialog.c:380
+msgid ""
+"Click \"Show other applications\", for more options, or \"Find applications "
+"online\" to install a new application"
+msgstr ""
+"تەپسىلاتى ئۈچۈن «باشقا پروگراممىنى كۆرسەت»نى چېكىڭ ياكى «پروگراممىنى توردىن "
+"ئىزدە» دىن يېڭى پروگراممىنى ئورنىتىڭ"
+
+#: ../gtk/gtkappchooserdialog.c:450
+msgid "Forget association"
+msgstr "ھەمكارلىقىنى ئۇنتۇ"
+
+#: ../gtk/gtkappchooserdialog.c:515
+msgid "Show other applications"
+msgstr "باشقا پروگراممىلارنى كۆرسەت"
+
+#: ../gtk/gtkappchooserdialog.c:533
+msgid "_Select"
+msgstr "تاللا(_S)"
+
+#: ../gtk/gtkappchooserwidget.c:592
+msgid "Default Application"
+msgstr "كۆڭۈلدىكى پروگرامما"
+
+#: ../gtk/gtkappchooserwidget.c:730
+msgid "Recommended Applications"
+msgstr "تەۋسىيىلىك پروگراممىلار"
+
+#: ../gtk/gtkappchooserwidget.c:745
+msgid "Related Applications"
+msgstr "مۇناشىۋەتلىك پروگراممىلار"
+
+#: ../gtk/gtkappchooserwidget.c:759
+msgid "Other Applications"
+msgstr "باشقا پروگراممىلار"
+
+#: ../gtk/gtkassistant.c:920
+msgid "C_ontinue"
+msgstr "داۋاملاشتۇر(_O)"
+
+#: ../gtk/gtkassistant.c:923
+msgid "Go _Back"
+msgstr "كەينىگە(_B)"
+
+#: ../gtk/gtkassistant.c:927
+msgid "_Finish"
+msgstr "تامام(_F)"
+
+#: ../gtk/gtkbuilderparser.c:342
+#, c-format
+msgid "Invalid type function on line %d: '%s'"
+msgstr "ئىناۋەتسىز تىپ فۇنكسىيىسى كۆرۈنگەن قۇر %d: '%s'"
+
+#: ../gtk/gtkbuilderparser.c:406
+#, c-format
+msgid "Duplicate object ID '%s' on line %d (previously on line %d)"
+msgstr "تەكرار ئوبيېكت id '%s' كۆرۈنگەن قۇر %d (ئىلگىرى كۆرۈنگەن قۇر %d)"
+
+#: ../gtk/gtkbuilderparser.c:858
+#, c-format
+msgid "Invalid root element: '%s'"
+msgstr "ئىناۋەتسىز غول ئېلېمېنت: '%s'"
+
+#: ../gtk/gtkbuilderparser.c:897
+#, c-format
+msgid "Unhandled tag: '%s'"
+msgstr "بىر تەرەپ قىلىنمىغان بەلگە: '%s'"
+
+#. Translate to calendar:YM if you want years to be displayed
+#. * before months; otherwise translate to calendar:MY.
+#. * Do *not* translate it to anything else, if it
+#. * it isn't calendar:YM or calendar:MY it will not work.
+#. *
+#. * Note that the ordering described here is logical order, which is
+#. * further influenced by BIDI ordering. Thus, if you have a default
+#. * text direction of RTL and specify "calendar:YM", then the year
+#. * will appear to the right of the month.
+#.
+#: ../gtk/gtkcalendar.c:874
+msgid "calendar:MY"
+msgstr "calendar:MY"
+
+#. Translate to calendar:week_start:0 if you want Sunday to be the
+#. * first day of the week to calendar:week_start:1 if you want Monday
+#. * to be the first day of the week, and so on.
+#.
+#: ../gtk/gtkcalendar.c:912
+msgid "calendar:week_start:0"
+msgstr "calendar:week_start:0"
+
+#. Translators:  This is a text measurement template.
+#. * Translate it to the widest year text
+#. *
+#. * If you don't understand this, leave it as "2000"
+#.
+#: ../gtk/gtkcalendar.c:1913
+msgctxt "year measurement template"
+msgid "2000"
+msgstr "2000"
+
+#. Translators: this defines whether the day numbers should use
+#. * localized digits or the ones used in English (0123...).
+#. *
+#. * Translate to "%Id" if you want to use localized digits, or
+#. * translate to "%d" otherwise.
+#. *
+#. * Note that translating this doesn't guarantee that you get localized
+#. * digits. That needs support from your system and locale definition
+#. * too.
+#.
+#: ../gtk/gtkcalendar.c:1944 ../gtk/gtkcalendar.c:2641
+#, c-format
+msgctxt "calendar:day:digits"
+msgid "%d"
+msgstr "%d"
+
+#. Translators: this defines whether the week numbers should use
+#. * localized digits or the ones used in English (0123...).
+#. *
+#. * Translate to "%Id" if you want to use localized digits, or
+#. * translate to "%d" otherwise.
+#. *
+#. * Note that translating this doesn't guarantee that you get localized
+#. * digits. That needs support from your system and locale definition
+#. * too.
+#.
+#: ../gtk/gtkcalendar.c:1976 ../gtk/gtkcalendar.c:2502
+#, c-format
+msgctxt "calendar:week:digits"
+msgid "%d"
+msgstr "%d"
+
+#. Translators: This dictates how the year is displayed in
+#. * gtkcalendar widget.  See strftime() manual for the format.
+#. * Use only ASCII in the translation.
+#. *
+#. * Also look for the msgid "2000".
+#. * Translate that entry to a year with the widest output of this
+#. * msgid.
+#. *
+#. * "%Y" is appropriate for most locales.
+#.
+#: ../gtk/gtkcalendar.c:2271
+msgctxt "calendar year format"
+msgid "%Y"
+msgstr "%Y"
+
+#. This label is displayed in a treeview cell displaying
+#. * a disabled accelerator key combination.
+#.
+#: ../gtk/gtkcellrendereraccel.c:286
+msgctxt "Accelerator"
+msgid "Disabled"
+msgstr "چەكلەنگەن"
+
+#. This label is displayed in a treeview cell displaying
+#. * an accelerator key combination that is not valid according
+#. * to gtk_accelerator_valid().
+#.
+#: ../gtk/gtkcellrendereraccel.c:296
+msgctxt "Accelerator"
+msgid "Invalid"
+msgstr "ئىناۋەتسىز"
+
+#. This label is displayed in a treeview cell displaying
+#. * an accelerator when the cell is clicked to change the
+#. * acelerator.
+#.
+#: ../gtk/gtkcellrendereraccel.c:432 ../gtk/gtkcellrendereraccel.c:745
+msgid "New accelerator..."
+msgstr "يېڭى تېزلەتكۈچ كۇنۇپكا…"
+
+#: ../gtk/gtkcellrendererprogress.c:374 ../gtk/gtkcellrendererprogress.c:464
+#, c-format
+msgctxt "progress bar label"
+msgid "%d %%"
+msgstr "%d %%"
+
+#: ../gtk/gtkcolorbutton.c:187 ../gtk/gtkcolorbutton.c:483
+msgid "Pick a Color"
+msgstr "رەڭ ئال"
+
+#: ../gtk/gtkcolorsel.c:416
+msgid ""
+"Select the color you want from the outer ring. Select the darkness or "
+"lightness of that color using the inner triangle."
+msgstr ""
+"سىرتقى ئايلانمىدىن سىزگە لازىملىق رەڭنى تاللاڭ .ئىچكى ئۈچ بۇلۇڭدىن رەڭنىڭ "
+"كۈچلۈكلۈكىنى تاللاڭ."
+
+#: ../gtk/gtkcolorsel.c:442
+msgid ""
+"Click the eyedropper, then click a color anywhere on your screen to select "
+"that color."
+msgstr "تېمىتقۇچنى تاق چېكىپ ئاندىن ئېكراننىڭ خالىغان يېرىدىن رەڭ تۇتۇڭ."
+
+#: ../gtk/gtkcolorsel.c:452
+msgid "_Hue:"
+msgstr "رەڭ تەڭشەش(_H):"
+
+#: ../gtk/gtkcolorsel.c:453
+msgid "Position on the color wheel."
+msgstr "رەڭ ھالقىسىدىكى ئورنى"
+
+#: ../gtk/gtkcolorsel.c:455
+msgid "_Saturation:"
+msgstr "تويۇنۇش دەرىجىسى(_S):"
+
+#: ../gtk/gtkcolorsel.c:456
+msgid "Intensity of the color."
+msgstr "رەڭ يورۇقلۇق دەرىجىسى."
+
+#: ../gtk/gtkcolorsel.c:457
+msgid "_Value:"
+msgstr "قىممىتى(_V):"
+
+#: ../gtk/gtkcolorsel.c:458
+msgid "Brightness of the color."
+msgstr "رەڭ يورۇقلۇقى."
+
+#: ../gtk/gtkcolorsel.c:459
+msgid "_Red:"
+msgstr "قىزىل(_R):"
+
+#: ../gtk/gtkcolorsel.c:460
+msgid "Amount of red light in the color."
+msgstr "رەڭ تەركىبىدىكى قىزىل رەڭ مىقدارى."
+
+#: ../gtk/gtkcolorsel.c:461
+msgid "_Green:"
+msgstr "يېشىل(_G):"
+
+#: ../gtk/gtkcolorsel.c:462
+msgid "Amount of green light in the color."
+msgstr "رەڭ تەركىبىدىكى يېشىل رەڭ مىقدارى."
+
+#: ../gtk/gtkcolorsel.c:463
+msgid "_Blue:"
+msgstr "كۆك(_B):"
+
+#: ../gtk/gtkcolorsel.c:464
+msgid "Amount of blue light in the color."
+msgstr "رەڭ تەركىبىدىكى كۆك رەڭ مىقدارى."
+
+#: ../gtk/gtkcolorsel.c:467
+msgid "Op_acity:"
+msgstr "سۈزۈكلۈك(_A):"
+
+#: ../gtk/gtkcolorsel.c:475 ../gtk/gtkcolorsel.c:485
+msgid "Transparency of the color."
+msgstr "رەڭ سۈزۈكلۈكى."
+
+#: ../gtk/gtkcolorsel.c:492
+msgid "Color _name:"
+msgstr "رەڭ ئاتى(_N):"
+
+#: ../gtk/gtkcolorsel.c:507
+msgid ""
+"You can enter an HTML-style hexadecimal color value, or simply a color name "
+"such as 'orange' in this entry."
+msgstr ""
+"سىز بۇ جايغا HTML ئۇسلۇبىدىكى 16 لىك سىستېما رەت نومۇرى ياكى “orange” گە "
+"ئوخشاش رەڭ ئاتلىرىنى كىرگۈزسىڭىز بولىدۇ."
+
+#: ../gtk/gtkcolorsel.c:539
+msgid "_Palette:"
+msgstr "رەڭ تاختىسى(_P):"
+
+#: ../gtk/gtkcolorsel.c:569
+msgid "Color Wheel"
+msgstr "رەڭ ھالقىسى"
+
+#: ../gtk/gtkcolorsel.c:1042
+msgid ""
+"The previously-selected color, for comparison to the color you're selecting "
+"now. You can drag this color to a palette entry, or select this color as "
+"current by dragging it to the other color swatch alongside."
+msgstr ""
+"ئىلگىرى تاللانغان رەڭ، سىزنىڭ ھازىر تاللىغىنىڭىزغا قارىتىلغان. سىز بۇ رەڭنى "
+"رەڭ تاللاش تاختىسىغا سۆرەپ ياكى بۇ رەڭنى كېيىنكى رەڭ كاتەكچىسىگە سۆرەپ "
+"نۆۋەتتىكى رەڭ قىلىپ بەلگىلىسىڭىز بولىدۇ."
+
+#: ../gtk/gtkcolorsel.c:1048
+msgid ""
+"The color you've chosen. You can drag this color to a palette entry to save "
+"it for use in the future."
+msgstr ""
+"سىز تاللىغان رەڭ .سىز بۇ رەڭنى تاللاپ ساقلاپ قويۇپ كىيىن ئىشلەتسىڭىز بولىدۇ."
+
+#: ../gtk/gtkcolorsel.c:1054
+msgid ""
+"The previously-selected color, for comparison to the color you're selecting "
+"now."
+msgstr "ئىلگىرى تاللانغان رەڭ، سىزنىڭ ھازىر تاللىغىنىڭىزغا قارىتىلغان."
+
+#: ../gtk/gtkcolorsel.c:1058
+msgid "The color you've chosen."
+msgstr "سىز تاللىغان رەڭ."
+
+#: ../gtk/gtkcolorsel.c:1460
+msgid "_Save color here"
+msgstr "رەڭنى بۇ جايغا ساقلا(_S)"
+
+#: ../gtk/gtkcolorsel.c:1665
+msgid ""
+"Click this palette entry to make it the current color. To change this entry, "
+"drag a color swatch here or right-click it and select \"Save color here.\""
+msgstr ""
+"رەڭ تاختىسىدىكى رەڭنى تاق چەكسىڭىز نۆۋەتتىكى رەڭ بولۇپ تاللىنىدۇ. بۇ تۈرنى "
+"ئۆزگەرتىشتە، رەڭنى بۇ جايغا سۆرەڭ ياكى چاشقىنەك ئوڭ توپچىسىنى چەككەندىن "
+"كېيىن بۇ جايدا «رەڭنى بۇ جايغا ساقلا»نى تاللاڭ."
+
+#: ../gtk/gtkcolorseldialog.c:213
+msgid "Color Selection"
+msgstr "رەڭ تاللاش"
+
+#. Translate to the default units to use for presenting
+#. * lengths to the user. Translate to default:inch if you
+#. * want inches, otherwise translate to default:mm.
+#. * Do *not* translate it to "predefinito:mm", if it
+#. * it isn't default:mm or default:inch it will not work
+#.
+#: ../gtk/gtkcustompaperunixdialog.c:116
+msgid "default:mm"
+msgstr "default:mm"
+
+#. And show the custom paper dialog
+#: ../gtk/gtkcustompaperunixdialog.c:372 ../gtk/gtkprintunixdialog.c:3325
+msgid "Manage Custom Sizes"
+msgstr "ئىختىيارى چوڭلۇقنى باشقۇر"
+
+#: ../gtk/gtkcustompaperunixdialog.c:533 ../gtk/gtkpagesetupunixdialog.c:783
+msgid "inch"
+msgstr "دىيۇيم"
+
+#: ../gtk/gtkcustompaperunixdialog.c:535 ../gtk/gtkpagesetupunixdialog.c:781
+msgid "mm"
+msgstr "mm"
+
+#: ../gtk/gtkcustompaperunixdialog.c:580
+msgid "Margins from Printer..."
+msgstr "پرىنتېر ئارىلىقى…"
+
+#: ../gtk/gtkcustompaperunixdialog.c:746
+#, c-format
+msgid "Custom Size %d"
+msgstr "ئىختىيارى چوڭلۇقى %d"
+
+#: ../gtk/gtkcustompaperunixdialog.c:1084
+msgid "_Width:"
+msgstr "كەڭلىك(_W):"
+
+#: ../gtk/gtkcustompaperunixdialog.c:1097
+msgid "_Height:"
+msgstr "ئېگىزلىك(_H):"
+
+#: ../gtk/gtkcustompaperunixdialog.c:1110
+msgid "Paper Size"
+msgstr "قەغەز چوڭلۇقى"
+
+#: ../gtk/gtkcustompaperunixdialog.c:1119
+msgid "_Top:"
+msgstr "ئۈستى(_T):"
+
+#: ../gtk/gtkcustompaperunixdialog.c:1132
+msgid "_Bottom:"
+msgstr "ئاستى(_B):"
+
+#: ../gtk/gtkcustompaperunixdialog.c:1145
+msgid "_Left:"
+msgstr "سول(_L):"
+
+#: ../gtk/gtkcustompaperunixdialog.c:1158
+msgid "_Right:"
+msgstr "ئوڭ(_R):"
+
+#: ../gtk/gtkcustompaperunixdialog.c:1200
+msgid "Paper Margins"
+msgstr "قەغەز يان ئارىلىقى"
+
+#: ../gtk/gtkentry.c:8949 ../gtk/gtktextview.c:8277
+msgid "Input _Methods"
+msgstr "كىرگۈزگۈچ(_M)"
+
+#: ../gtk/gtkentry.c:8963 ../gtk/gtktextview.c:8291
+msgid "_Insert Unicode Control Character"
+msgstr "يۇنىكودلۇق كونترول بەلگىسى قىستۇر(_I)"
+
+#: ../gtk/gtkentry.c:10434
+msgid "Caps Lock and Num Lock are on"
+msgstr "Caps Lock ۋە Num Lock ئوچۇق"
+
+#: ../gtk/gtkentry.c:10436
+msgid "Num Lock is on"
+msgstr "Num Lock ئوچۇق"
+
+#: ../gtk/gtkentry.c:10438
+msgid "Caps Lock is on"
+msgstr "Caps Lock ئوچۇق"
+
+#. *
+#. * SECTION:gtkfilechooserbutton
+#. * @Short_description: A button to launch a file selection dialog
+#. * @Title: GtkFileChooserButton
+#. * @See_also:#GtkFileChooserDialog
+#. *
+#. * The #GtkFileChooserButton is a widget that lets the user select a
+#. * file.  It implements the #GtkFileChooser interface.  Visually, it is a
+#. * file name with a button to bring up a #GtkFileChooserDialog.
+#. * The user can then use that dialog to change the file associated with
+#. * that button.  This widget does not support setting the
+#. * #GtkFileChooser:select-multiple property to %TRUE.
+#. *
+#. * <example>
+#. * <title>Create a button to let the user select a file in /etc</title>
+#. * <programlisting>
+#. * {
+#. *   GtkWidget *button;
+#. *
+#. *   button = gtk_file_chooser_button_new (_("Select a file"),
+#. *                                         GTK_FILE_CHOOSER_ACTION_OPEN);
+#. *   gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (button),
+#. *                                        "/etc");
+#. * }
+#. * </programlisting>
+#. * </example>
+#. *
+#. * The #GtkFileChooserButton supports the #GtkFileChooserAction<!-- -->s
+#. * %GTK_FILE_CHOOSER_ACTION_OPEN and %GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
+#. *
+#. * <important>
+#. * The #GtkFileChooserButton will ellipsize the label,
+#. * and thus will thus request little horizontal space.  To give the button
+#. * more space, you should call gtk_widget_get_preferred_size(),
+#. * gtk_file_chooser_button_set_width_chars(), or pack the button in
+#. * such a way that other interface elements give space to the widget.
+#. * </important>
+#.
+#. **************** *
+#. *  Private Macros  *
+#. * ****************
+#: ../gtk/gtkfilechooserbutton.c:105
+msgid "Select a File"
+msgstr "بىر ھۆججەت تاللاڭ"
+
+#: ../gtk/gtkfilechooserbutton.c:106 ../gtk/gtkfilechooserdefault.c:1871
+msgid "Desktop"
+msgstr "ئۈستەلئۈستى"
+
+#: ../gtk/gtkfilechooserbutton.c:107
+msgid "(None)"
+msgstr "(يوق)"
+
+#: ../gtk/gtkfilechooserbutton.c:2046
+msgid "Other..."
+msgstr "باشقا…"
+
+#: ../gtk/gtkfilechooserdefault.c:147
+msgid "Type name of new folder"
+msgstr "يېڭى ھۆججەت قىسقۇچنىڭ ئاتىنى كىرگۈزۈڭ"
+
+#: ../gtk/gtkfilechooserdefault.c:965
+msgid "Could not retrieve information about the file"
+msgstr "ھۆججەتكە مۇناسىۋەتلىك ئۇچۇرلارغا ئېرىشكىلى بولمايدۇ"
+
+#: ../gtk/gtkfilechooserdefault.c:976
+msgid "Could not add a bookmark"
+msgstr "قىسقۇچ قىستۇرالمايدۇ"
+
+#: ../gtk/gtkfilechooserdefault.c:987
+msgid "Could not remove bookmark"
+msgstr "قىسقۇچنى چىقىرىۋېتەلمەيدۇ"
+
+#: ../gtk/gtkfilechooserdefault.c:998
+msgid "The folder could not be created"
+msgstr "قىسقۇچ قۇرالمايدۇ"
+
+#: ../gtk/gtkfilechooserdefault.c:1011
+msgid ""
+"The folder could not be created, as a file with the same name already "
+"exists.  Try using a different name for the folder, or rename the file first."
+msgstr ""
+"قىسقۇچ قۇرالمايدۇ، چۈنكى ئوخشاش ئاتلىق قىسقۇچ مەۋجۇت. باشقا ئات ئىشلىتىپ "
+"سىناڭ ياكى ھۆججەت ئاتىنى ئۆزگەرتىڭ."
+
+#: ../gtk/gtkfilechooserdefault.c:1025
+msgid "You need to choose a valid filename."
+msgstr "ئىناۋەتلىك ھۆججەت ئاتى تاللىشىڭىز زۆرۈر."
+
+#: ../gtk/gtkfilechooserdefault.c:1028
+#, c-format
+msgid "Cannot create a file under %s as it is not a folder"
+msgstr "%s قىسقۇچ بولمىغاچقا، ئۇنىڭ ئاستىغا ھۆججەت قۇرغىلى بولمىدى."
+
+#: ../gtk/gtkfilechooserdefault.c:1040
+msgid ""
+"You may only select folders.  The item that you selected is not a folder; "
+"try using a different item."
+msgstr ""
+"سىز قىسقۇچلا تاللىيالايسىز. سىز تاللىغان تۈر قىسقۇچ ئېمە؛ باشقا تۈرنى "
+"ئىشلىتىپ سىناڭ."
+
+#: ../gtk/gtkfilechooserdefault.c:1050
+msgid "Invalid file name"
+msgstr "ئىناۋەتسىز ھۆججەت ئاتى"
+
+#: ../gtk/gtkfilechooserdefault.c:1060
+msgid "The folder contents could not be displayed"
+msgstr "قىسقۇچ مەزمۇنىنى كۆرسىتەلمىدى"
+
+#. Translators: the first string is a path and the second string
+#. * is a hostname. Nautilus and the panel contain the same string
+#. * to translate.
+#.
+#: ../gtk/gtkfilechooserdefault.c:1614
+#, c-format
+msgid "%1$s on %2$s"
+msgstr "%2$s ئۈستىدىكى %1$s"
+
+#: ../gtk/gtkfilechooserdefault.c:1790
+msgid "Search"
+msgstr "ئىزدە"
+
+#: ../gtk/gtkfilechooserdefault.c:1814 ../gtk/gtkfilechooserdefault.c:9539
+msgid "Recently Used"
+msgstr "يېقىندا ئىشلەتكەن"
+
+#: ../gtk/gtkfilechooserdefault.c:2470
+msgid "Select which types of files are shown"
+msgstr "كۆرسىتىلىدىغان ھۆججەت تىپىنى تاللاڭ"
+
+#: ../gtk/gtkfilechooserdefault.c:2829
+#, c-format
+msgid "Add the folder '%s' to the bookmarks"
+msgstr "'%s' قىسقۇچنى خەتكۈچكە قوش"
+
+#: ../gtk/gtkfilechooserdefault.c:2873
+#, c-format
+msgid "Add the current folder to the bookmarks"
+msgstr "نۆۋەتتىكى قىسقۇچنى خەتكۈچكە قوش"
+
+#: ../gtk/gtkfilechooserdefault.c:2875
+#, c-format
+msgid "Add the selected folders to the bookmarks"
+msgstr "تاللانغان قىسقۇچنى خەتكۈچكە قوش"
+
+#: ../gtk/gtkfilechooserdefault.c:2913
+#, c-format
+msgid "Remove the bookmark '%s'"
+msgstr "'%s' خەتكۈچنى چىقىرىۋەت"
+
+#: ../gtk/gtkfilechooserdefault.c:2915
+#, c-format
+msgid "Bookmark '%s' cannot be removed"
+msgstr "'%s' خەتكۈچنى چىقىرىۋېتەلمىدى."
+
+#: ../gtk/gtkfilechooserdefault.c:2922 ../gtk/gtkfilechooserdefault.c:3807
+msgid "Remove the selected bookmark"
+msgstr "تاللانغان خەتكۈچنى چىقىرىۋەت"
+
+#: ../gtk/gtkfilechooserdefault.c:3486
+msgid "Remove"
+msgstr "چىقىرىۋەت"
+
+#: ../gtk/gtkfilechooserdefault.c:3495
+msgid "Rename..."
+msgstr "ئات ئۆزگەرت…"
+
+#. Accessible object name for the file chooser's shortcuts pane
+#: ../gtk/gtkfilechooserdefault.c:3659
+msgid "Places"
+msgstr "ئورۇن"
+
+#. Column header for the file chooser's shortcuts pane
+#: ../gtk/gtkfilechooserdefault.c:3716
+msgid "_Places"
+msgstr "ئورۇن(_P)"
+
+#: ../gtk/gtkfilechooserdefault.c:3795
+msgid "Add the selected folder to the Bookmarks"
+msgstr "تاللانغان قىسقۇچنى خەتكۈچكە قوش"
+
+#: ../gtk/gtkfilechooserdefault.c:3942
+msgid "Could not select file"
+msgstr "ھۆججەت تاللىيالمىدى"
+
+#: ../gtk/gtkfilechooserdefault.c:4115
+msgid "_Add to Bookmarks"
+msgstr "خەتكۈچكە قوش(_A)"
+
+#: ../gtk/gtkfilechooserdefault.c:4128
+msgid "Show _Hidden Files"
+msgstr "يوشۇرۇن ھۆججەتلەرنى كۆرسەت(_H)"
+
+#: ../gtk/gtkfilechooserdefault.c:4135
+msgid "Show _Size Column"
+msgstr "چوڭلۇق ئىستونىنى كۆرسەت(_S)"
+
+#: ../gtk/gtkfilechooserdefault.c:4360
+msgid "Files"
+msgstr "ھۆججەتلەر"
+
+#: ../gtk/gtkfilechooserdefault.c:4411
+msgid "Name"
+msgstr "ئاتى"
+
+#: ../gtk/gtkfilechooserdefault.c:4434
+msgid "Size"
+msgstr "چوڭلۇقى"
+
+#: ../gtk/gtkfilechooserdefault.c:4448
+msgid "Modified"
+msgstr "ئۆزگەرتىلدى"
+
+#. Label
+#: ../gtk/gtkfilechooserdefault.c:4702 ../gtk/gtkprinteroptionwidget.c:799
+msgid "_Name:"
+msgstr "ئاتى(_N):"
+
+#. Expander
+#: ../gtk/gtkfilechooserdefault.c:4745
+msgid "_Browse for other folders"
+msgstr "باشقا قىسقۇچقا كۆز يۈگۈرت(_B)"
+
+#: ../gtk/gtkfilechooserdefault.c:5018
+msgid "Type a file name"
+msgstr "ھۆججەت ئاتىنى كىرگۈزۈڭ"
+
+#. Create Folder
+#: ../gtk/gtkfilechooserdefault.c:5061
+msgid "Create Fo_lder"
+msgstr "قىسقۇچ قۇر(_L)"
+
+#: ../gtk/gtkfilechooserdefault.c:5071
+msgid "_Location:"
+msgstr "ئورنى(_L):"
+
+#: ../gtk/gtkfilechooserdefault.c:5278
+msgid "Save in _folder:"
+msgstr "قىسقۇچقا ساقلا(_F):"
+
+#: ../gtk/gtkfilechooserdefault.c:5280
+msgid "Create in _folder:"
+msgstr "قىسقۇچتا قۇر(_F):"
+
+#: ../gtk/gtkfilechooserdefault.c:6402
+#, c-format
+msgid "Could not read the contents of %s"
+msgstr "%s نىڭ مەزمۇنىنى ئوقۇيالمىدى"
+
+#: ../gtk/gtkfilechooserdefault.c:6406
+msgid "Could not read the contents of the folder"
+msgstr "قىسقۇچنىڭ مەزمۇنىنى ئوقۇيالمىدى"
+
+#: ../gtk/gtkfilechooserdefault.c:6499 ../gtk/gtkfilechooserdefault.c:6567
+#: ../gtk/gtkfilechooserdefault.c:6719
+msgid "Unknown"
+msgstr "نامەلۇم"
+
+#: ../gtk/gtkfilechooserdefault.c:6514
+msgid "%H:%M"
+msgstr "%H:%M"
+
+#: ../gtk/gtkfilechooserdefault.c:6516
+msgid "Yesterday at %H:%M"
+msgstr "ئەتە %H:%M"
+
+#: ../gtk/gtkfilechooserdefault.c:7185
+msgid "Cannot change to folder because it is not local"
+msgstr "قىسقۇچقا ئۆزگەرتەلمەيدۇ چۈنكى ئۇ يەرلىك قىسقۇچ ئەمەس"
+
+#: ../gtk/gtkfilechooserdefault.c:7777 ../gtk/gtkfilechooserdefault.c:7798
+#, c-format
+msgid "Shortcut %s already exists"
+msgstr "%s قىسقا يول مەۋجۇت"
+
+#: ../gtk/gtkfilechooserdefault.c:7888
+#, c-format
+msgid "Shortcut %s does not exist"
+msgstr "%s قىسقا يول مەۋجۇت ئەمەس"
+
+#: ../gtk/gtkfilechooserdefault.c:8146 ../gtk/gtkprintunixdialog.c:550
+#, c-format
+msgid "A file named \"%s\" already exists.  Do you want to replace it?"
+msgstr "\"%s\" ئاتلىق ھۆججەت مەۋجۇت. ئۇنى ئالماشتۇرۇۋېتەمسىز؟"
+
+#: ../gtk/gtkfilechooserdefault.c:8149 ../gtk/gtkprintunixdialog.c:554
+#, c-format
+msgid ""
+"The file already exists in \"%s\".  Replacing it will overwrite its contents."
+msgstr ""
+"ئىچىدە مەۋجۇت . ھۆججەتنى ئالماشتۇرسا ئىچىدىكى مەزمۇنلار قاپلىنىدۇ “%s”ھۆججەت "
+"ئاللىبۇرۇن"
+
+#: ../gtk/gtkfilechooserdefault.c:8154 ../gtk/gtkprintunixdialog.c:561
+msgid "_Replace"
+msgstr "ئالماشتۇر(_R)"
+
+#: ../gtk/gtkfilechooserdefault.c:8881
+msgid "Could not start the search process"
+msgstr "ئىزدىگۈچنى قوزغىتالمىدى"
+
+#: ../gtk/gtkfilechooserdefault.c:8882
+msgid ""
+"The program was not able to create a connection to the indexer daemon.  "
+"Please make sure it is running."
+msgstr ""
+"indexer daemon غا باغلىنالمىدى. indexer daemon نىڭ ئىجرا ھالىتىنى جەزملەڭ"
+
+#: ../gtk/gtkfilechooserdefault.c:8896
+msgid "Could not send the search request"
+msgstr "ئىزدەش ئىلتىماسىنى يوللىيالمىدى"
+
+#: ../gtk/gtkfilechooserdefault.c:9115
+msgid "Search:"
+msgstr "ئىزدە:"
+
+#: ../gtk/gtkfilechooserdefault.c:9723
+#, c-format
+msgid "Could not mount %s"
+msgstr "%s نى ئېگەرلىگىلى بولمىدى"
+
+#. Translators: this is shown in the feedback for Tab-completion in a file
+#. * chooser's text entry, when the user enters an invalid path.
+#: ../gtk/gtkfilechooserentry.c:702 ../gtk/gtkfilechooserentry.c:1174
+msgid "Invalid path"
+msgstr "ئىناۋەتسىز يول"
+
+#. translators: this text is shown when there are no completions
+#. * for something the user typed in a file chooser entry
+#.
+#: ../gtk/gtkfilechooserentry.c:1106
+msgid "No match"
+msgstr "ماس كېلىدىغىنى يوق"
+
+#. translators: this text is shown when there is exactly one completion
+#. * for something the user typed in a file chooser entry
+#.
+#: ../gtk/gtkfilechooserentry.c:1117
+msgid "Sole completion"
+msgstr "بىردىنبىر تاماملاش"
+
+#. translators: this text is shown when the text in a file chooser
+#. * entry is a complete filename, but could be continued to find
+#. * a longer match
+#.
+#: ../gtk/gtkfilechooserentry.c:1133
+msgid "Complete, but not unique"
+msgstr "تاماملاندى، ئەمما بىردىنبىر ئەمەس"
+
+#. Translators: this text is shown while the system is searching
+#. * for possible completions for filenames in a file chooser entry.
+#: ../gtk/gtkfilechooserentry.c:1165
+msgid "Completing..."
+msgstr "تاماملاۋاتىدۇ…"
+
+#. hostnames in a local_only file chooser?  user error
+#. Translators: this is shown in the feedback for Tab-completion in a
+#. * file chooser's text entry when the user enters something like
+#. * "sftp://blahblah" in an app that only supports local filenames.
+#: ../gtk/gtkfilechooserentry.c:1187 ../gtk/gtkfilechooserentry.c:1212
+msgid "Only local files may be selected"
+msgstr "يەرلىك ھۆججەتنىلا تاللىغىلى بولىدۇ"
+
+#. Another option is to complete the hostname based on the remote volumes that are mounted
+#. Translators: this is shown in the feedback for Tab-completion in a
+#. * file chooser's text entry when the user hasn't entered the first '/'
+#. * after a hostname and yet hits Tab (such as "sftp://blahblah[Tab]")
+#: ../gtk/gtkfilechooserentry.c:1196
+msgid "Incomplete hostname; end it with '/'"
+msgstr "كومپيۇتېر ئاتى كەمتۈك؛ '/' بىلەن ئاخىرلىشىدۇ"
+
+#. Translators: this is shown in the feedback for Tab-completion in a file
+#. * chooser's text entry when the user enters a path that does not exist
+#. * and then hits Tab
+#: ../gtk/gtkfilechooserentry.c:1207
+msgid "Path does not exist"
+msgstr "يول مەۋجۇت ئەمەس."
+
+#. The pointers we return for a GtkFileSystemVolume are opaque tokens; they are
+#. * really pointers to GDrive, GVolume or GMount objects.  We need an extra
+#. * token for the fake "File System" volume.  So, we'll return a pointer to
+#. * this particular string.
+#.
+#: ../gtk/gtkfilesystem.c:48
+msgid "File System"
+msgstr "ھۆججەت سىستېمىسى"
+
+#: ../gtk/gtkfontbutton.c:153 ../gtk/gtkfontbutton.c:277
+msgid "Pick a Font"
+msgstr "خەت نۇسخا تاللا"
+
+#. Initialize fields
+#: ../gtk/gtkfontbutton.c:271
+msgid "Sans 12"
+msgstr "UKIJ Tuz Tom 10"
+
+#: ../gtk/gtkfontbutton.c:796
+msgid "Font"
+msgstr "خەت نۇسخا"
+
+#. This is the default text shown in the preview entry, though the user
+#. can set it. Remember that some fonts only have capital letters.
+#: ../gtk/gtkfontsel.c:119
+msgid "abcdefghijk ABCDEFGHIJK"
+msgstr "ئا  ئە ب پ ت ج چ خ د ر ز ژ abcdefghijk ABCDEFGHIJK"
+
+#: ../gtk/gtkfontsel.c:388
+msgid "_Family:"
+msgstr "خەت نۇسخا تۈرى(_F):"
+
+#: ../gtk/gtkfontsel.c:395
+msgid "_Style:"
+msgstr "ئۇسلۇب(_S):"
+
+#: ../gtk/gtkfontsel.c:402
+msgid "Si_ze:"
+msgstr "چوڭلۇقى(_Z):"
+
+#. create the text entry widget
+#: ../gtk/gtkfontsel.c:579
+msgid "_Preview:"
+msgstr "ئالدىن كۆزەت(_P):"
+
+#: ../gtk/gtkfontsel.c:1701
+msgid "Font Selection"
+msgstr "خەت نۇسخا تاللاش"
+
+#: ../gtk/gtkicontheme.c:1605
+#, c-format
+msgid "Icon '%s' not present in theme"
+msgstr "'%s' سىنبەلگە باش تېمىدا كۆرۈلمىدى"
+
+#: ../gtk/gtkicontheme.c:3115
+msgid "Failed to load icon"
+msgstr "سىنبەلگە يۈكلىيەلمىدى"
+
+#: ../gtk/gtkimmodule.c:525
+msgid "Simple"
+msgstr "ئاددىي"
+
+#: ../gtk/gtkimmulticontext.c:588
+msgctxt "input method menu"
+msgid "System"
+msgstr "سىستېما"
+
+#: ../gtk/gtkimmulticontext.c:598
+msgctxt "input method menu"
+msgid "None"
+msgstr "يوق"
+
+#: ../gtk/gtkimmulticontext.c:681
+#, c-format
+msgctxt "input method menu"
+msgid "System (%s)"
+msgstr "سىستېما(%s)"
+
+#. Open Link
+#: ../gtk/gtklabel.c:6309
+msgid "_Open Link"
+msgstr "ئۇلانما ئاچ(_O)"
+
+#. Copy Link Address
+#: ../gtk/gtklabel.c:6321
+msgid "Copy _Link Address"
+msgstr "ئۇلانما ئادرېسىنى كۆچۈر(_L)"
+
+#: ../gtk/gtklinkbutton.c:484
+msgid "Copy URL"
+msgstr "URL كۆچۈر"
+
+#: ../gtk/gtklinkbutton.c:647
+msgid "Invalid URI"
+msgstr "ئىناۋەتسىز URI"
+
+#: ../gtk/gtklockbutton.c:288
+msgid "Lock"
+msgstr "قۇلۇپلا"
+
+#: ../gtk/gtklockbutton.c:297
+msgid "Unlock"
+msgstr "قۇلۇپ ئاچ"
+
+#: ../gtk/gtklockbutton.c:306
+msgid ""
+"Dialog is unlocked.\n"
+"Click to prevent further changes"
+msgstr ""
+"سۆزلەشكۈ قۇلۇپسىزلاندى.\n"
+"ئەمدى ئۆزگەرتمەسلىك ئۈچۈن چېكىڭ"
+
+#: ../gtk/gtklockbutton.c:315
+msgid ""
+"Dialog is locked.\n"
+"Click to make changes"
+msgstr ""
+"سۆزلەشكۈ قۇلۇپلانغان.\n"
+"ئۆزگەرتىش ئۈچۈن چېكىڭ"
+
+#: ../gtk/gtklockbutton.c:324
+msgid ""
+"System policy prevents changes.\n"
+"Contact your system administrator"
+msgstr ""
+"سىستېما تاكتىكىسى ئۆزگەرتىشنى چەكلىگەن.\n"
+"سىستېما باشقۇرغۇچىڭىز بىلەن ئالاقىلىشىڭ"
+
+#. Description of --gtk-module=MODULES in --help output
+#: ../gtk/gtkmain.c:562
+msgid "Load additional GTK+ modules"
+msgstr "قوشۇمچە GTK+ بۆلىكىنى يۈكلە"
+
+#. Placeholder in --gtk-module=MODULES in --help output
+#: ../gtk/gtkmain.c:563
+msgid "MODULES"
+msgstr "بۆلەك"
+
+#. Description of --g-fatal-warnings in --help output
+#: ../gtk/gtkmain.c:565
+msgid "Make all warnings fatal"
+msgstr "ھەممە ئاگاھلاندۇرۇشنى ئېغىر خاتالىققا ئۆزگەرت"
+
+#. Description of --gtk-debug=FLAGS in --help output
+#: ../gtk/gtkmain.c:568
+msgid "GTK+ debugging flags to set"
+msgstr "تەڭشەيدىغان GTK+ سازلاش بەلگىسى"
+
+#. Description of --gtk-no-debug=FLAGS in --help output
+#: ../gtk/gtkmain.c:571
+msgid "GTK+ debugging flags to unset"
+msgstr "قالدۇرماقچى بولغان GTK+ سازلاش بەلگىسى"
+
+#. Translate to default:RTL if you want your widgets
+#. * to be RTL, otherwise translate to default:LTR.
+#. * Do *not* translate it to "predefinito:LTR", if it
+#. * it isn't default:LTR or default:RTL it will not work
+#.
+#: ../gtk/gtkmain.c:848
+msgid "default:LTR"
+msgstr "default:RTL"
+
+#: ../gtk/gtkmain.c:914
+#, c-format
+msgid "Cannot open display: %s"
+msgstr "ئېكران ئېچىلمىدى: (%s)"
+
+#: ../gtk/gtkmain.c:980
+msgid "GTK+ Options"
+msgstr "GTK+ تاللانما"
+
+#: ../gtk/gtkmain.c:980
+msgid "Show GTK+ Options"
+msgstr "GTK+ تاللانما كۆرسەت"
+
+#: ../gtk/gtkmountoperation.c:489
+msgid "Co_nnect"
+msgstr "باغلا(_N)"
+
+#: ../gtk/gtkmountoperation.c:559
+msgid "Connect _anonymously"
+msgstr "ئاتسىز باغلىنىش(_A)"
+
+#: ../gtk/gtkmountoperation.c:568
+msgid "Connect as u_ser:"
+msgstr "باغلىنىش سالاھىيىتى(_S):"
+
+#: ../gtk/gtkmountoperation.c:602
+msgid "_Username:"
+msgstr "ئىشلەتكۈچى ئاتى(_U):"
+
+#: ../gtk/gtkmountoperation.c:607
+msgid "_Domain:"
+msgstr "دائىرە(_D):"
+
+#: ../gtk/gtkmountoperation.c:613
+msgid "_Password:"
+msgstr "ئىم(_P):"
+
+#: ../gtk/gtkmountoperation.c:631
+msgid "Forget password _immediately"
+msgstr "ئىمنى دەرھال ئۇنتۇ(_I)"
+
+#: ../gtk/gtkmountoperation.c:641
+msgid "Remember password until you _logout"
+msgstr "تىزىمدىن چىقىشتىن ئىلگىرى ئىمنى ئەستە تۇت(_L)"
+
+#: ../gtk/gtkmountoperation.c:651
+msgid "Remember _forever"
+msgstr "مەڭگۈ ئەستە تۇت(_F)"
+
+#: ../gtk/gtkmountoperation.c:880
+#, c-format
+msgid "Unknown Application (PID %d)"
+msgstr "نامەلۇم پروگرامما (PID %d)"
+
+#: ../gtk/gtkmountoperation.c:1063
+msgid "Unable to end process"
+msgstr "ئىجرانى ئاخىرلاشتۇرالمايدۇ"
+
+#: ../gtk/gtkmountoperation.c:1100
+msgid "_End Process"
+msgstr "ئىجرانى ئاخىرلاشتۇر(_E)"
+
+#: ../gtk/gtkmountoperation-stub.c:64
+#, c-format
+msgid "Cannot kill process with PID %d. Operation is not implemented."
+msgstr "PID %d ئىجرانى يوقىتالمايدۇ. مەشغۇلاتنى ئىجرا قىلغىلى بولمايدۇ."
+
+#. translators: this string is a name for the 'less' command
+#: ../gtk/gtkmountoperation-x11.c:859
+msgid "Terminal Pager"
+msgstr "تېرمىنال ئوقۇغۇچ"
+
+#: ../gtk/gtkmountoperation-x11.c:860
+msgid "Top Command"
+msgstr "كۆپ ئىشلىتىدىغان بۇيرۇق"
+
+#: ../gtk/gtkmountoperation-x11.c:861
+msgid "Bourne Again Shell"
+msgstr "Bourne Again Shell"
+
+#: ../gtk/gtkmountoperation-x11.c:862
+msgid "Bourne Shell"
+msgstr "Bourne Shell"
+
+#: ../gtk/gtkmountoperation-x11.c:863
+msgid "Z Shell"
+msgstr "Z Shell"
+
+#: ../gtk/gtkmountoperation-x11.c:960
+#, c-format
+msgid "Cannot end process with PID %d: %s"
+msgstr "PID %d ئىجرانى ئاخىرلاشتۇرالمايدۇ: %s"
+
+#: ../gtk/gtknotebook.c:4922 ../gtk/gtknotebook.c:7611
+#, c-format
+msgid "Page %u"
+msgstr "%u-بەت"
+
+#. Translators: the format here is used to build the string that will be rendered
+#. * in the number emblem.
+#.
+#: ../gtk/gtknumerableicon.c:482
+#, c-format
+msgctxt "Number format"
+msgid "%d"
+msgstr "%d"
+
+#: ../gtk/gtkpagesetup.c:648 ../gtk/gtkpapersize.c:849
+#: ../gtk/gtkpapersize.c:889
+msgid "Not a valid page setup file"
+msgstr "ئىناۋەتلىك بەت تەڭشەك ھۆججىتى ئەمەس"
+
+#: ../gtk/gtkpagesetupunixdialog.c:172
+msgid "Any Printer"
+msgstr "خالىغان پرىنتېر"
+
+#: ../gtk/gtkpagesetupunixdialog.c:172
+msgid "For portable documents"
+msgstr "ئەپچىل پۈتۈك ئۈچۈن"
+
+#: ../gtk/gtkpagesetupunixdialog.c:802
+#, c-format
+msgid ""
+"Margins:\n"
+" Left: %s %s\n"
+" Right: %s %s\n"
+" Top: %s %s\n"
+" Bottom: %s %s"
+msgstr ""
+"يان ئارىلىقى:\n"
+"سول: %s %s\n"
+"ئوڭ: %s %s\n"
+" ئۈستى: %s %s\n"
+" ئاستى: %s %s"
+
+#: ../gtk/gtkpagesetupunixdialog.c:851 ../gtk/gtkprintunixdialog.c:3376
+msgid "Manage Custom Sizes..."
+msgstr "ئىختىيارى چوڭلۇق باشقۇر…"
+
+#: ../gtk/gtkpagesetupunixdialog.c:902
+msgid "_Format for:"
+msgstr "فورمات(_F):"
+
+#: ../gtk/gtkpagesetupunixdialog.c:925 ../gtk/gtkprintunixdialog.c:3556
+msgid "_Paper size:"
+msgstr "قەغەز چوڭلۇقى(_P):"
+
+#: ../gtk/gtkpagesetupunixdialog.c:958
+msgid "_Orientation:"
+msgstr "يۆنىلىش(_O):"
+
+#: ../gtk/gtkpagesetupunixdialog.c:1023 ../gtk/gtkprintunixdialog.c:3620
+msgid "Page Setup"
+msgstr "بەت تەڭشەك"
+
+#: ../gtk/gtkpathbar.c:156
+msgid "Up Path"
+msgstr "ئۈستۈنكى يول"
+
+#: ../gtk/gtkpathbar.c:158
+msgid "Down Path"
+msgstr "ئاستىنقى يول"
+
+#: ../gtk/gtkpathbar.c:1516
+msgid "File System Root"
+msgstr "ھۆججەت سىستېما غولى"
+
+#: ../gtk/gtkprintbackend.c:749
+msgid "Authentication"
+msgstr "سالاھىيەت دەلىللەش"
+
+#: ../gtk/gtkprinteroptionwidget.c:692
+msgid "Not available"
+msgstr "ئىشلەتكىلى بولمايدۇ"
+
+#: ../gtk/gtkprinteroptionwidget.c:792
+msgid "Select a folder"
+msgstr "قىسقۇچ تاللاڭ"
+
+#: ../gtk/gtkprinteroptionwidget.c:812
+msgid "_Save in folder:"
+msgstr "قىسقۇچتا ساقلا(_S):"
+
+#. translators: this string is the default job title for print
+#. * jobs. %s gets replaced by the application name, %d gets replaced
+#. * by the job number.
+#.
+#: ../gtk/gtkprintoperation.c:263
+#, c-format
+msgid "%s job #%d"
+msgstr "%s نىڭ بېسىش ۋەزىپىسى #%d"
+
+#: ../gtk/gtkprintoperation.c:1768
+msgctxt "print operation status"
+msgid "Initial state"
+msgstr "دەسلەپكى ھالەت"
+
+#: ../gtk/gtkprintoperation.c:1769
+msgctxt "print operation status"
+msgid "Preparing to print"
+msgstr "بېسىشقا تەييارلىنىۋاتىدۇ"
+
+#: ../gtk/gtkprintoperation.c:1770
+msgctxt "print operation status"
+msgid "Generating data"
+msgstr "سانلىق مەلۇمات ياساۋاتىدۇ"
+
+#: ../gtk/gtkprintoperation.c:1771
+msgctxt "print operation status"
+msgid "Sending data"
+msgstr "ئۇچۇر يوللاۋاتىدۇ"
+
+#: ../gtk/gtkprintoperation.c:1772
+msgctxt "print operation status"
+msgid "Waiting"
+msgstr "ساقلاۋاتىدۇ"
+
+#: ../gtk/gtkprintoperation.c:1773
+msgctxt "print operation status"
+msgid "Blocking on issue"
+msgstr "توسۇلۇش مەسىلىسى"
+
+#: ../gtk/gtkprintoperation.c:1774
+msgctxt "print operation status"
+msgid "Printing"
+msgstr "بېسىۋاتىدۇ"
+
+#: ../gtk/gtkprintoperation.c:1775
+msgctxt "print operation status"
+msgid "Finished"
+msgstr "تاماملاندى"
+
+#: ../gtk/gtkprintoperation.c:1776
+msgctxt "print operation status"
+msgid "Finished with error"
+msgstr "خاتالىق بىلەن تاماملاندى"
+
+#: ../gtk/gtkprintoperation.c:2343
+#, c-format
+msgid "Preparing %d"
+msgstr "%d تەييارلاۋاتىدۇ"
+
+#: ../gtk/gtkprintoperation.c:2345 ../gtk/gtkprintoperation.c:2975
+msgid "Preparing"
+msgstr "تەييارلىق ھالەت"
+
+#: ../gtk/gtkprintoperation.c:2348
+#, c-format
+msgid "Printing %d"
+msgstr "%d نى بېسىۋاتىدۇ"
+
+#: ../gtk/gtkprintoperation.c:3005
+msgid "Error creating print preview"
+msgstr "بېسىشنى ئالدىن كۆزىتىش قۇرۇشتا خاتالىق كۆرۈلدى"
+
+#: ../gtk/gtkprintoperation.c:3008
+msgid "The most probable reason is that a temporary file could not be created."
+msgstr ""
+"مۇمكىنچىلىكى يۇقىرى سەۋەب ۋاقىتلىق ھۆججەت قۇرغىلى بولماسلىق بولۇشى مۇمكىن."
+
+#: ../gtk/gtkprintoperation-unix.c:304
+msgid "Error launching preview"
+msgstr "ئالدىن كۆزىتىشنى قوزغىتىشتا خاتالىق كۆرۈلدى"
+
+#: ../gtk/gtkprintoperation-unix.c:477 ../gtk/gtkprintoperation-win32.c:1447
+msgid "Application"
+msgstr "پروگرامما"
+
+#: ../gtk/gtkprintoperation-win32.c:611
+msgid "Printer offline"
+msgstr "پرىنتېر ئۈزۈك ھالەتتە"
+
+#: ../gtk/gtkprintoperation-win32.c:613
+msgid "Out of paper"
+msgstr "قەغەز يېتىشمىدى"
+
+#. Translators: this is a printer status.
+#: ../gtk/gtkprintoperation-win32.c:615
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2022
+msgid "Paused"
+msgstr "ۋاقىتلىق توختىدى"
+
+#: ../gtk/gtkprintoperation-win32.c:617
+msgid "Need user intervention"
+msgstr "ئىشلەتكۈچىنىڭ مەشغۇلاتىغا موھتاج"
+
+#: ../gtk/gtkprintoperation-win32.c:717
+msgid "Custom size"
+msgstr "ئىختىيارى چوڭلۇق"
+
+#: ../gtk/gtkprintoperation-win32.c:1539
+msgid "No printer found"
+msgstr "پرىنتېر تېپىلمىدى"
+
+#: ../gtk/gtkprintoperation-win32.c:1566
+msgid "Invalid argument to CreateDC"
+msgstr "CreateDC نىڭ پارامېتىرى ئىناۋەتسىز"
+
+#: ../gtk/gtkprintoperation-win32.c:1602 ../gtk/gtkprintoperation-win32.c:1829
+msgid "Error from StartDoc"
+msgstr "StartDoc دىن خاتالىق كۆرۈلدى"
+
+#: ../gtk/gtkprintoperation-win32.c:1684 ../gtk/gtkprintoperation-win32.c:1707
+#: ../gtk/gtkprintoperation-win32.c:1755
+msgid "Not enough free memory"
+msgstr "يېتەرلىك بوش ئەسلەك يوق."
+
+#: ../gtk/gtkprintoperation-win32.c:1760
+msgid "Invalid argument to PrintDlgEx"
+msgstr "PrintDlgEx نىڭ پارامېتىرى ئىناۋەتسىز"
+
+#: ../gtk/gtkprintoperation-win32.c:1765
+msgid "Invalid pointer to PrintDlgEx"
+msgstr "PrintDlgEx نىڭ ئىسترېلكىسى ئىناۋەتسىز"
+
+#: ../gtk/gtkprintoperation-win32.c:1770
+msgid "Invalid handle to PrintDlgEx"
+msgstr "PrintDlgEx نىڭ تۇتقۇسى ئىناۋەتسىز"
+
+#: ../gtk/gtkprintoperation-win32.c:1775
+msgid "Unspecified error"
+msgstr "ئېنىقسىز خاتالىق"
+
+#: ../gtk/gtkprintunixdialog.c:688
+msgid "Getting printer information failed"
+msgstr "پرىنتېر ئۇچۇرىغا ئېرىشەلمىدى"
+
+#: ../gtk/gtkprintunixdialog.c:1942
+msgid "Getting printer information..."
+msgstr "پرىنتېر ئۇچۇرىغا ئېرىشىۋاتىدۇ…"
+
+#: ../gtk/gtkprintunixdialog.c:2216
+msgid "Printer"
+msgstr "پرىنتېر"
+
+#. Translators: this is the header for the location column in the print dialog
+#: ../gtk/gtkprintunixdialog.c:2226
+msgid "Location"
+msgstr "ئورنى"
+
+#. Translators: this is the header for the printer status column in the print dialog
+#: ../gtk/gtkprintunixdialog.c:2237
+msgid "Status"
+msgstr "ھالىتى"
+
+#: ../gtk/gtkprintunixdialog.c:2263
+msgid "Range"
+msgstr "دائىرىسى"
+
+#: ../gtk/gtkprintunixdialog.c:2267
+msgid "_All Pages"
+msgstr "ھەممە بەت(_A)"
+
+#: ../gtk/gtkprintunixdialog.c:2274
+msgid "C_urrent Page"
+msgstr "نۆۋەتتىكى بەت(_U)"
+
+#: ../gtk/gtkprintunixdialog.c:2284
+msgid "Se_lection"
+msgstr "تاللا(_L)"
+
+#: ../gtk/gtkprintunixdialog.c:2293
+msgid "Pag_es:"
+msgstr "بەتلەر(_E):"
+
+#: ../gtk/gtkprintunixdialog.c:2294
+msgid ""
+"Specify one or more page ranges,\n"
+" e.g. 1-3,7,11"
+msgstr ""
+"بىر ياكى كۆپ بەت دائىرە بەلگىلەڭ،\n"
+"مەسىلەن: 1-3,7,11"
+
+#: ../gtk/gtkprintunixdialog.c:2304
+msgid "Pages"
+msgstr "بەتلەر"
+
+#: ../gtk/gtkprintunixdialog.c:2317
+msgid "Copies"
+msgstr "نۇسخا"
+
+#. FIXME chpe: too much space between Copies and spinbutton, put those 2 in a hbox and make it span 2 columns
+#: ../gtk/gtkprintunixdialog.c:2322
+msgid "Copie_s:"
+msgstr "نۇسخا سانى(_S):"
+
+#: ../gtk/gtkprintunixdialog.c:2341
+msgid "C_ollate"
+msgstr "رەت بويىچە(_O)"
+
+#: ../gtk/gtkprintunixdialog.c:2349
+msgid "_Reverse"
+msgstr "ئەكسىچە(_R)"
+
+#: ../gtk/gtkprintunixdialog.c:2369
+msgid "General"
+msgstr "ئادەتتىكى"
+
+#. Translators: These strings name the possible arrangements of
+#. * multiple pages on a sheet when printing (same as in gtkprintbackendcups.c)
+#.
+#. Translators: These strings name the possible arrangements of
+#. * multiple pages on a sheet when printing
+#.
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
+msgid "Left to right, top to bottom"
+msgstr "سولدىن ئوڭغا، ئۈستىدىن ئاستىغا"
+
+#: ../gtk/gtkprintunixdialog.c:3109
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3572
+msgid "Left to right, bottom to top"
+msgstr "سولدىن ئوڭغا، ئاستىدىن ئۈستىگە"
+
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
+msgid "Right to left, top to bottom"
+msgstr "ئوڭدىن سولغا، ئۈستىدىن ئاستىغا"
+
+#: ../gtk/gtkprintunixdialog.c:3110
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3573
+msgid "Right to left, bottom to top"
+msgstr "ئوڭدىن سولغا، ئاستىدىن ئۈستىگە"
+
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
+msgid "Top to bottom, left to right"
+msgstr "ئۈستىدىن ئاستىغا، سولدىن ئوڭغا"
+
+#: ../gtk/gtkprintunixdialog.c:3111
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3574
+msgid "Top to bottom, right to left"
+msgstr "ئۈستىدىن ئاستىغا، ئوڭدىن سولغا"
+
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
+msgid "Bottom to top, left to right"
+msgstr "ئاستىدىن ئۈستىگە، سولدىن ئوڭغا"
+
+#: ../gtk/gtkprintunixdialog.c:3112
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3575
+msgid "Bottom to top, right to left"
+msgstr "ئاستىدىن ئۈستىگە، ئوڭدىن سولغا"
+
+#. Translators, this string is used to label the option in the print
+#. * dialog that controls in what order multiple pages are arranged
+#.
+#: ../gtk/gtkprintunixdialog.c:3116 ../gtk/gtkprintunixdialog.c:3129
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3609
+msgid "Page Ordering"
+msgstr "بەت تەرتىپى"
+
+#: ../gtk/gtkprintunixdialog.c:3145
+msgid "Left to right"
+msgstr "سولدىن ئوڭغا"
+
+#: ../gtk/gtkprintunixdialog.c:3146
+msgid "Right to left"
+msgstr "ئوڭدىن سولغا"
+
+#: ../gtk/gtkprintunixdialog.c:3158
+msgid "Top to bottom"
+msgstr "ئۈستىدىن ئاستىغا"
+
+#: ../gtk/gtkprintunixdialog.c:3159
+msgid "Bottom to top"
+msgstr "ئاستىدىن ئۈستىگە"
+
+#: ../gtk/gtkprintunixdialog.c:3399
+msgid "Layout"
+msgstr "ئۇسلۇب"
+
+#: ../gtk/gtkprintunixdialog.c:3403
+msgid "T_wo-sided:"
+msgstr "قوش يۈزلۈك(_W):"
+
+#: ../gtk/gtkprintunixdialog.c:3419
+msgid "Pages per _side:"
+msgstr "ھەربىر يۈزىنىڭ بەت سانى(_S):"
+
+#: ../gtk/gtkprintunixdialog.c:3437
+msgid "Page or_dering:"
+msgstr "بەت تەرتىپى(_D):"
+
+#: ../gtk/gtkprintunixdialog.c:3454
+msgid "_Only print:"
+msgstr "بېسىشلا(_O):"
+
+#. In enum order
+#: ../gtk/gtkprintunixdialog.c:3470
+msgid "All sheets"
+msgstr "ھەممە ۋاراقلار"
+
+#: ../gtk/gtkprintunixdialog.c:3471
+msgid "Even sheets"
+msgstr "تاق ۋاراقلار"
+
+#: ../gtk/gtkprintunixdialog.c:3472
+msgid "Odd sheets"
+msgstr "جۈپ ۋاراقلار"
+
+#: ../gtk/gtkprintunixdialog.c:3475
+msgid "Sc_ale:"
+msgstr "نىسبەت(_A):"
+
+#: ../gtk/gtkprintunixdialog.c:3503
+msgid "Paper"
+msgstr "قەغەز"
+
+#: ../gtk/gtkprintunixdialog.c:3507
+msgid "Paper _type:"
+msgstr "قەغەز تىپى(_T):"
+
+#: ../gtk/gtkprintunixdialog.c:3523
+msgid "Paper _source:"
+msgstr "قەغەز مەنبەسى(_S):"
+
+#: ../gtk/gtkprintunixdialog.c:3539
+msgid "Output t_ray:"
+msgstr "قەغەز قۇتىسى(_R):"
+
+#: ../gtk/gtkprintunixdialog.c:3581
+msgid "Or_ientation:"
+msgstr "يۆنىلىش(_I):"
+
+#. In enum order
+#: ../gtk/gtkprintunixdialog.c:3597
+msgid "Portrait"
+msgstr "بوي يۆنىلىش"
+
+#: ../gtk/gtkprintunixdialog.c:3598
+msgid "Landscape"
+msgstr "توغرا يۆنىلىش"
+
+#: ../gtk/gtkprintunixdialog.c:3599
+msgid "Reverse portrait"
+msgstr "تەتۈر بوي يۆنىلىش"
+
+#: ../gtk/gtkprintunixdialog.c:3600
+msgid "Reverse landscape"
+msgstr "تەتۈر توغرا يۆنىلىش"
+
+#: ../gtk/gtkprintunixdialog.c:3645
+msgid "Job Details"
+msgstr "ۋەزىپە تەپسىلاتى"
+
+#: ../gtk/gtkprintunixdialog.c:3651
+msgid "Pri_ority:"
+msgstr "ئالدىنلىق(_O):"
+
+#: ../gtk/gtkprintunixdialog.c:3667
+msgid "_Billing info:"
+msgstr "ھەق ھېسابلاش ئۇچۇرى(_B):"
+
+#: ../gtk/gtkprintunixdialog.c:3686
+msgid "Print Document"
+msgstr "پۈتۈك باس"
+
+#. Translators: this is one of the choices for the print at option
+#. * in the print dialog
+#.
+#: ../gtk/gtkprintunixdialog.c:3695
+msgid "_Now"
+msgstr "دەرھال(_N)"
+
+#: ../gtk/gtkprintunixdialog.c:3706
+msgid "A_t:"
+msgstr "دە(_T):"
+
+#. Translators: Ability to parse the am/pm format depends on actual locale.
+#. * You can remove the am/pm values below for your locale if they are not
+#. * supported.
+#.
+#: ../gtk/gtkprintunixdialog.c:3712
+msgid ""
+"Specify the time of print,\n"
+" e.g. 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"
+msgstr ""
+"بېسىش ۋاقتى بەلگىلىنىدۇ،\n"
+" مەسىلەن: 15:30, 2:35 pm, 14:15:20, 11:46:30 am, 4 pm"
+
+#: ../gtk/gtkprintunixdialog.c:3722
+msgid "Time of print"
+msgstr "بېسىش ۋاقتى"
+
+#: ../gtk/gtkprintunixdialog.c:3738
+msgid "On _hold"
+msgstr "كۈت(_H)"
+
+#: ../gtk/gtkprintunixdialog.c:3739
+msgid "Hold the job until it is explicitly released"
+msgstr "ۋەزىپىنى ئېنىق ئاجرىتىلغانغا قەدەر داۋاملاشتۇر"
+
+#: ../gtk/gtkprintunixdialog.c:3759
+msgid "Add Cover Page"
+msgstr "مۇقاۋا بەت قوش"
+
+#. Translators, this is the label used for the option in the print
+#. * dialog that controls the front cover page.
+#.
+#: ../gtk/gtkprintunixdialog.c:3768
+msgid "Be_fore:"
+msgstr "ئالدى(_F):"
+
+#. Translators, this is the label used for the option in the print
+#. * dialog that controls the back cover page.
+#.
+#: ../gtk/gtkprintunixdialog.c:3787
+msgid "_After:"
+msgstr "كەينى(_A):"
+
+#. Translators: this is the tab label for the notebook tab containing
+#. * job-specific options in the print dialog
+#.
+#: ../gtk/gtkprintunixdialog.c:3806
+msgid "Job"
+msgstr "ۋەزىپە"
+
+#: ../gtk/gtkprintunixdialog.c:3872
+msgid "Advanced"
+msgstr "ئالىي"
+
+#. Translators: this will appear as tab label in print dialog.
+#: ../gtk/gtkprintunixdialog.c:3910
+msgid "Image Quality"
+msgstr "سۈرەت سۈپىتى"
+
+#. Translators: this will appear as tab label in print dialog.
+#: ../gtk/gtkprintunixdialog.c:3914
+msgid "Color"
+msgstr "رەڭ"
+
+#. Translators: this will appear as tab label in print dialog.
+#. It's a typographical term, as in "Binding and finishing"
+#: ../gtk/gtkprintunixdialog.c:3919
+msgid "Finishing"
+msgstr "تامام"
+
+#: ../gtk/gtkprintunixdialog.c:3929
+msgid "Some of the settings in the dialog conflict"
+msgstr "سۆزلەشكۈ رامكىسىدىكى بەزى تەڭشەكلەردە توقۇنۇش بار"
+
+#: ../gtk/gtkprintunixdialog.c:3952
+msgid "Print"
+msgstr "باس"
+
+#: ../gtk/gtkrecentchooserdefault.c:485
+msgid "Select which type of documents are shown"
+msgstr "كۆرسەتمەكچى بولغان پۈتۈك تىپىنى تاللاڭ"
+
+#: ../gtk/gtkrecentchooserdefault.c:1142 ../gtk/gtkrecentchooserdefault.c:1179
+#, c-format
+msgid "No item for URI '%s' found"
+msgstr "URI“%s” تۈرنى تاپالمىدى"
+
+#: ../gtk/gtkrecentchooserdefault.c:1306
+msgid "Untitled filter"
+msgstr "تېمىسىز سۈزگۈچ"
+
+#: ../gtk/gtkrecentchooserdefault.c:1659
+msgid "Could not remove item"
+msgstr "تۈرنى چىقىرىۋېتەلمەيدۇ"
+
+#: ../gtk/gtkrecentchooserdefault.c:1703
+msgid "Could not clear list"
+msgstr "تىزىمنى تازىلىيالمايدۇ"
+
+#: ../gtk/gtkrecentchooserdefault.c:1787
+msgid "Copy _Location"
+msgstr "ئورۇن كۆچۈر(_L)"
+
+#: ../gtk/gtkrecentchooserdefault.c:1800
+msgid "_Remove From List"
+msgstr "تىزىمدىن چىقىرىۋەت(_R)"
+
+#: ../gtk/gtkrecentchooserdefault.c:1809
+msgid "_Clear List"
+msgstr "تىزىمنى تازىلا(_C)"
+
+#: ../gtk/gtkrecentchooserdefault.c:1823
+msgid "Show _Private Resources"
+msgstr "شەخسى مەنبەنى كۆرسەت(_P)"
+
+#. we create a placeholder menuitem, to be used in case
+#. * the menu is empty. this placeholder will stay around
+#. * for the entire lifetime of the menu, and we just hide it
+#. * when it's not used. we have to do this, and do it here,
+#. * because we need a marker for the beginning of the recent
+#. * items list, so that we can insert the new items at the
+#. * right place when idly populating the menu in case the
+#. * user appended or prepended custom menu items to the
+#. * recent chooser menu widget.
+#.
+#: ../gtk/gtkrecentchoosermenu.c:362
+msgid "No items found"
+msgstr "تۈر تېپىلمىدى"
+
+#: ../gtk/gtkrecentchoosermenu.c:528 ../gtk/gtkrecentchoosermenu.c:584
+#, c-format
+msgid "No recently used resource found with URI `%s'"
+msgstr "يېقىندا ئىشلىتىلگەن مەنبەدىن URI“%s” تېپىلمىدى"
+
+#: ../gtk/gtkrecentchoosermenu.c:794
+#, c-format
+msgid "Open '%s'"
+msgstr "'%s' ئاچ"
+
+#: ../gtk/gtkrecentchoosermenu.c:824
+msgid "Unknown item"
+msgstr "نامەلۇم تۈر"
+
+#. This is the label format that is used for the first 10 items
+#. * in a recent files menu. The %d is the number of the item,
+#. * the %s is the name of the item. Please keep the _ in front
+#. * of the number to give these menu items a mnemonic.
+#.
+#: ../gtk/gtkrecentchoosermenu.c:835
+#, c-format
+msgctxt "recent menu label"
+msgid "_%d. %s"
+msgstr "_%d. %s"
+
+#. This is the format that is used for items in a recent files menu.
+#. * The %d is the number of the item, the %s is the name of the item.
+#.
+#: ../gtk/gtkrecentchoosermenu.c:840
+#, c-format
+msgctxt "recent menu label"
+msgid "%d. %s"
+msgstr "%d. %s"
+
+#: ../gtk/gtkrecentmanager.c:1006 ../gtk/gtkrecentmanager.c:1019
+#: ../gtk/gtkrecentmanager.c:1156 ../gtk/gtkrecentmanager.c:1166
+#: ../gtk/gtkrecentmanager.c:1218 ../gtk/gtkrecentmanager.c:1227
+#: ../gtk/gtkrecentmanager.c:1242
+#, c-format
+msgid "Unable to find an item with URI '%s'"
+msgstr "URI '%s' تۈر تېپىلمىدى"
+
+#: ../gtk/gtkrecentmanager.c:2442
+#, c-format
+msgid "No registered application with name '%s' for item with URI '%s' found"
+msgstr "تۈرنىڭ '%s' ئاتلىق خەتلەتكەن پروگراممىسىنىڭ URI '%s' تېپىلمىدى"
+
+#. KEEP IN SYNC with gtkiconfactory.c stock icons, when appropriate
+#: ../gtk/gtkstock.c:313
+msgctxt "Stock label"
+msgid "Information"
+msgstr "ئۇچۇر"
+
+#: ../gtk/gtkstock.c:314
+msgctxt "Stock label"
+msgid "Warning"
+msgstr "ئاگاھلاندۇرۇش"
+
+#: ../gtk/gtkstock.c:315
+msgctxt "Stock label"
+msgid "Error"
+msgstr "خاتالىق"
+
+#: ../gtk/gtkstock.c:316
+msgctxt "Stock label"
+msgid "Question"
+msgstr "سوئال"
+
+#. FIXME these need accelerators when appropriate, and
+#. * need the mnemonics to be rationalized
+#.
+#: ../gtk/gtkstock.c:321
+msgctxt "Stock label"
+msgid "_About"
+msgstr "ھەققىدە(_A)"
+
+#: ../gtk/gtkstock.c:322
+msgctxt "Stock label"
+msgid "_Add"
+msgstr "قوش(_A)"
+
+#: ../gtk/gtkstock.c:323
+msgctxt "Stock label"
+msgid "_Apply"
+msgstr "قوللان(_A)"
+
+#: ../gtk/gtkstock.c:324
+msgctxt "Stock label"
+msgid "_Bold"
+msgstr "توم(_B)"
+
+#: ../gtk/gtkstock.c:325
+msgctxt "Stock label"
+msgid "_Cancel"
+msgstr "ئەمەلدىن قالدۇر(_C)"
+
+#: ../gtk/gtkstock.c:326
+msgctxt "Stock label"
+msgid "_CD-ROM"
+msgstr "_CD-ROM"
+
+#: ../gtk/gtkstock.c:327
+msgctxt "Stock label"
+msgid "_Clear"
+msgstr "ئۆچۈر(_C)"
+
+#: ../gtk/gtkstock.c:328
+msgctxt "Stock label"
+msgid "_Close"
+msgstr "ياپ(_C)"
+
+#: ../gtk/gtkstock.c:329
+msgctxt "Stock label"
+msgid "C_onnect"
+msgstr "باغلا(_O)"
+
+#: ../gtk/gtkstock.c:330
+msgctxt "Stock label"
+msgid "_Convert"
+msgstr "ئايلاندۇر(_C)"
+
+#: ../gtk/gtkstock.c:331
+msgctxt "Stock label"
+msgid "_Copy"
+msgstr "كۆچۈر(_C)"
+
+#: ../gtk/gtkstock.c:332
+msgctxt "Stock label"
+msgid "Cu_t"
+msgstr "كەس(_T)"
+
+#: ../gtk/gtkstock.c:333
+msgctxt "Stock label"
+msgid "_Delete"
+msgstr "ئۆچۈر(_D)"
+
+#: ../gtk/gtkstock.c:334
+msgctxt "Stock label"
+msgid "_Discard"
+msgstr "تاشلىۋەت(_D)"
+
+#: ../gtk/gtkstock.c:335
+msgctxt "Stock label"
+msgid "_Disconnect"
+msgstr "ئۈز(_D)"
+
+#: ../gtk/gtkstock.c:336
+msgctxt "Stock label"
+msgid "_Execute"
+msgstr "ئىجرا قىل(_E)"
+
+#: ../gtk/gtkstock.c:337
+msgctxt "Stock label"
+msgid "_Edit"
+msgstr "تەھرىر(_E)"
+
+#: ../gtk/gtkstock.c:338
+msgctxt "Stock label"
+msgid "_File"
+msgstr "ھۆججەت(_F)"
+
+#: ../gtk/gtkstock.c:339
+msgctxt "Stock label"
+msgid "_Find"
+msgstr "ئىزدە(_F)"
+
+#: ../gtk/gtkstock.c:340
+msgctxt "Stock label"
+msgid "Find and _Replace"
+msgstr "ئىزدەپ ئالماشتۇر(_R)"
+
+#: ../gtk/gtkstock.c:341
+msgctxt "Stock label"
+msgid "_Floppy"
+msgstr "يۇمشاق دىسكا(_F)"
+
+#: ../gtk/gtkstock.c:342
+msgctxt "Stock label"
+msgid "_Fullscreen"
+msgstr "تولۇق ئېكران( _F)"
+
+#: ../gtk/gtkstock.c:343
+msgctxt "Stock label"
+msgid "_Leave Fullscreen"
+msgstr "تولۇق ئېكراندىن ئايرىل(_L)"
+
+#. This is a navigation label as in "go to the bottom of the page"
+#: ../gtk/gtkstock.c:345
+msgctxt "Stock label, navigation"
+msgid "_Bottom"
+msgstr "ئاستى(_B)"
+
+#. This is a navigation label as in "go to the first page"
+#: ../gtk/gtkstock.c:347
+msgctxt "Stock label, navigation"
+msgid "_First"
+msgstr "بىرىنچى(_F)"
+
+#. This is a navigation label as in "go to the last page"
+#: ../gtk/gtkstock.c:349
+msgctxt "Stock label, navigation"
+msgid "_Last"
+msgstr "ئاخىرقى(_L)"
+
+#. This is a navigation label as in "go to the top of the page"
+#: ../gtk/gtkstock.c:351
+msgctxt "Stock label, navigation"
+msgid "_Top"
+msgstr "بېشى(_T)"
+
+#. This is a navigation label as in "go back"
+#: ../gtk/gtkstock.c:353
+msgctxt "Stock label, navigation"
+msgid "_Back"
+msgstr "كەينى(_B)"
+
+#. This is a navigation label as in "go down"
+#: ../gtk/gtkstock.c:355
+msgctxt "Stock label, navigation"
+msgid "_Down"
+msgstr "ئاستىغا(_D)"
+
+#. This is a navigation label as in "go forward"
+#: ../gtk/gtkstock.c:357
+msgctxt "Stock label, navigation"
+msgid "_Forward"
+msgstr "جاۋاب يوللا(_F)"
+
+#. This is a navigation label as in "go up"
+#: ../gtk/gtkstock.c:359
+msgctxt "Stock label, navigation"
+msgid "_Up"
+msgstr "ئۈستىگە(_U)"
+
+#: ../gtk/gtkstock.c:360
+msgctxt "Stock label"
+msgid "_Hard Disk"
+msgstr "قاتتىق دىسكا(_H)"
+
+#: ../gtk/gtkstock.c:361
+msgctxt "Stock label"
+msgid "_Help"
+msgstr "ياردەم(_H)"
+
+#: ../gtk/gtkstock.c:362
+msgctxt "Stock label"
+msgid "_Home"
+msgstr "باش بەت(_H)"
+
+#: ../gtk/gtkstock.c:363
+msgctxt "Stock label"
+msgid "Increase Indent"
+msgstr "كېڭەيت"
+
+#: ../gtk/gtkstock.c:364
+msgctxt "Stock label"
+msgid "Decrease Indent"
+msgstr "تارايت"
+
+#: ../gtk/gtkstock.c:365
+msgctxt "Stock label"
+msgid "_Index"
+msgstr "ئىندېكس(_I)"
+
+#: ../gtk/gtkstock.c:366
+msgctxt "Stock label"
+msgid "_Information"
+msgstr "ئۇچۇر(_I)"
+
+#: ../gtk/gtkstock.c:367
+msgctxt "Stock label"
+msgid "_Italic"
+msgstr "يانتۇ(_I)"
+
+#: ../gtk/gtkstock.c:368
+msgctxt "Stock label"
+msgid "_Jump to"
+msgstr "ئاتلا(_J)"
+
+#. This is about text justification, "centered text"
+#: ../gtk/gtkstock.c:370
+msgctxt "Stock label"
+msgid "_Center"
+msgstr "ئوتتۇرا(_C)"
+
+#. This is about text justification
+#: ../gtk/gtkstock.c:372
+msgctxt "Stock label"
+msgid "_Fill"
+msgstr "تولدۇر(_F)"
+
+#. This is about text justification, "left-justified text"
+#: ../gtk/gtkstock.c:374
+msgctxt "Stock label"
+msgid "_Left"
+msgstr "سول(_L)"
+
+#. This is about text justification, "right-justified text"
+#: ../gtk/gtkstock.c:376
+msgctxt "Stock label"
+msgid "_Right"
+msgstr "ئوڭ(_R)"
+
+#. Media label, as in "fast forward"
+#: ../gtk/gtkstock.c:379
+msgctxt "Stock label, media"
+msgid "_Forward"
+msgstr "جاۋاب يوللا(_F)"
+
+#. Media label, as in "next song"
+#: ../gtk/gtkstock.c:381
+msgctxt "Stock label, media"
+msgid "_Next"
+msgstr "كېيىنكى(_N)"
+
+#. Media label, as in "pause music"
+#: ../gtk/gtkstock.c:383
+msgctxt "Stock label, media"
+msgid "P_ause"
+msgstr "ۋاقىتلىق توختات(_A)"
+
+#. Media label, as in "play music"
+#: ../gtk/gtkstock.c:385
+msgctxt "Stock label, media"
+msgid "_Play"
+msgstr "قوي(_P)"
+
+#. Media label, as in  "previous song"
+#: ../gtk/gtkstock.c:387
+msgctxt "Stock label, media"
+msgid "Pre_vious"
+msgstr "ئالدىنقى(_V)"
+
+#. Media label
+#: ../gtk/gtkstock.c:389
+msgctxt "Stock label, media"
+msgid "_Record"
+msgstr "خاتىرىلە(_R)"
+
+#. Media label
+#: ../gtk/gtkstock.c:391
+msgctxt "Stock label, media"
+msgid "R_ewind"
+msgstr "تېز چېكىن(_E)"
+
+#. Media label
+#: ../gtk/gtkstock.c:393
+msgctxt "Stock label, media"
+msgid "_Stop"
+msgstr "توختا (&S)"
+
+#: ../gtk/gtkstock.c:394
+msgctxt "Stock label"
+msgid "_Network"
+msgstr "تور(_N)"
+
+#: ../gtk/gtkstock.c:395
+msgctxt "Stock label"
+msgid "_New"
+msgstr "يېڭى(_N)"
+
+#: ../gtk/gtkstock.c:396
+msgctxt "Stock label"
+msgid "_No"
+msgstr "ياق(_N)"
+
+#: ../gtk/gtkstock.c:397
+msgctxt "Stock label"
+msgid "_OK"
+msgstr "جەزملە(_O)"
+
+#: ../gtk/gtkstock.c:398
+msgctxt "Stock label"
+msgid "_Open"
+msgstr "ئاچ(_O)"
+
+#. Page orientation
+#: ../gtk/gtkstock.c:400
+msgctxt "Stock label"
+msgid "Landscape"
+msgstr "توغرا يۆنىلىش"
+
+#. Page orientation
+#: ../gtk/gtkstock.c:402
+msgctxt "Stock label"
+msgid "Portrait"
+msgstr "بوي يۆنىلىش"
+
+#. Page orientation
+#: ../gtk/gtkstock.c:404
+msgctxt "Stock label"
+msgid "Reverse landscape"
+msgstr "تەتۈر توغرا يۆنىلىش"
+
+#. Page orientation
+#: ../gtk/gtkstock.c:406
+msgctxt "Stock label"
+msgid "Reverse portrait"
+msgstr "تەتۈر بوي يۆنىلىش"
+
+#: ../gtk/gtkstock.c:407
+msgctxt "Stock label"
+msgid "Page Set_up"
+msgstr "بەت تەڭشەك(_U)"
+
+#: ../gtk/gtkstock.c:408
+msgctxt "Stock label"
+msgid "_Paste"
+msgstr "چاپلا(_P)"
+
+#: ../gtk/gtkstock.c:409
+msgctxt "Stock label"
+msgid "_Preferences"
+msgstr "مايىللىق(_P)"
+
+#: ../gtk/gtkstock.c:410
+msgctxt "Stock label"
+msgid "_Print"
+msgstr "باس(_P)"
+
+#: ../gtk/gtkstock.c:411
+msgctxt "Stock label"
+msgid "Print Pre_view"
+msgstr "بېسىشنى ئالدىن كۆزەت(_V)"
+
+#: ../gtk/gtkstock.c:412
+msgctxt "Stock label"
+msgid "_Properties"
+msgstr "خاسلىق(_P)"
+
+#: ../gtk/gtkstock.c:413
+msgctxt "Stock label"
+msgid "_Quit"
+msgstr "چېكىن(_Q)"
+
+#: ../gtk/gtkstock.c:414
+msgctxt "Stock label"
+msgid "_Redo"
+msgstr "قايتىلا(_R)"
+
+#: ../gtk/gtkstock.c:415
+msgctxt "Stock label"
+msgid "_Refresh"
+msgstr "يېڭىلا(_R)"
+
+#: ../gtk/gtkstock.c:416
+msgctxt "Stock label"
+msgid "_Remove"
+msgstr "ئۆچۈر(_R)"
+
+#: ../gtk/gtkstock.c:417
+msgctxt "Stock label"
+msgid "_Revert"
+msgstr "ئەسلىگە قايتۇر(_R)"
+
+#: ../gtk/gtkstock.c:418
+msgctxt "Stock label"
+msgid "_Save"
+msgstr "ساقلا(_S)"
+
+#: ../gtk/gtkstock.c:419
+msgctxt "Stock label"
+msgid "Save _As"
+msgstr "باشقا ئاتتا ساقلا(_A)"
+
+#: ../gtk/gtkstock.c:420
+msgctxt "Stock label"
+msgid "Select _All"
+msgstr "ھەممىنى تاللا(_A)"
+
+#: ../gtk/gtkstock.c:421
+msgctxt "Stock label"
+msgid "_Color"
+msgstr "رەڭ(_C)"
+
+#: ../gtk/gtkstock.c:422
+msgctxt "Stock label"
+msgid "_Font"
+msgstr "خەت نۇسخا(_F)"
+
+#. Sorting direction
+#: ../gtk/gtkstock.c:424
+msgctxt "Stock label"
+msgid "_Ascending"
+msgstr "ئۆسكۈچى(_A)"
+
+#. Sorting direction
+#: ../gtk/gtkstock.c:426
+msgctxt "Stock label"
+msgid "_Descending"
+msgstr "كېمەيگۈچى(_D)"
+
+#: ../gtk/gtkstock.c:427
+msgctxt "Stock label"
+msgid "_Spell Check"
+msgstr "ئىملا تەكشۈر(_S)"
+
+#: ../gtk/gtkstock.c:428
+msgctxt "Stock label"
+msgid "_Stop"
+msgstr "توختا (&S)"
+
+#. Font variant
+#: ../gtk/gtkstock.c:430
+msgctxt "Stock label"
+msgid "_Strikethrough"
+msgstr "ئۆچۈرۈش سىزىقى(_S)"
+
+#: ../gtk/gtkstock.c:431
+msgctxt "Stock label"
+msgid "_Undelete"
+msgstr "ئەسلىگە كەلتۈر(_U)"
+
+#. Font variant
+#: ../gtk/gtkstock.c:433
+msgctxt "Stock label"
+msgid "_Underline"
+msgstr "ئاستى سىزىق(_U)"
+
+#: ../gtk/gtkstock.c:434
+msgctxt "Stock label"
+msgid "_Undo"
+msgstr "يېنىۋال(_U)"
+
+#: ../gtk/gtkstock.c:435
+msgctxt "Stock label"
+msgid "_Yes"
+msgstr "ھەئە(_Y)"
+
+#. Zoom
+#: ../gtk/gtkstock.c:437
+msgctxt "Stock label"
+msgid "_Normal Size"
+msgstr "ئادەتتىكى چوڭلۇقى(_N)"
+
+#. Zoom
+#: ../gtk/gtkstock.c:439
+msgctxt "Stock label"
+msgid "Best _Fit"
+msgstr "ئەڭ مۇناسىپ(_F)"
+
+#: ../gtk/gtkstock.c:440
+msgctxt "Stock label"
+msgid "Zoom _In"
+msgstr "چوڭايت(_I)"
+
+#: ../gtk/gtkstock.c:441
+msgctxt "Stock label"
+msgid "Zoom _Out"
+msgstr "كىچىكلەت(_O)"
+
+#. Translators: if the "on" state label requires more than three
+#. * glyphs then use MEDIUM VERTICAL BAR (U+2759) as the text for
+#. * the state
+#.
+#: ../gtk/gtkswitch.c:336 ../gtk/gtkswitch.c:396 ../gtk/gtkswitch.c:603
+msgctxt "switch"
+msgid "ON"
+msgstr "ئاچ"
+
+#. Translators: if the "off" state label requires more than three
+#. * glyphs then use WHITE CIRCLE (U+25CB) as the text for the state
+#.
+#: ../gtk/gtkswitch.c:344 ../gtk/gtkswitch.c:397 ../gtk/gtkswitch.c:632
+msgctxt "switch"
+msgid "OFF"
+msgstr "تاقا"
+
+#: ../gtk/gtktextbufferrichtext.c:651
+#, c-format
+msgid "Unknown error when trying to deserialize %s"
+msgstr "ئەكسىچە تەرتىپلىگەندە خاتالىق كۆرۈلدى %s"
+
+#: ../gtk/gtktextbufferrichtext.c:710
+#, c-format
+msgid "No deserialize function found for format %s"
+msgstr "%s فورماتتىن ئەكسىچە تەرتىپلەش فۇنكسىيىسى تېپىلمىدى"
+
+#: ../gtk/gtktextbufferserialize.c:800 ../gtk/gtktextbufferserialize.c:826
+#, c-format
+msgid "Both \"id\" and \"name\" were found on the <%s> element"
+msgstr "<%s> ئېلېمېنتنىڭ بىرلا ۋاقىتتا تاپقىنى “id”بىلەن“name”"
+
+#: ../gtk/gtktextbufferserialize.c:810 ../gtk/gtktextbufferserialize.c:836
+#, c-format
+msgid "The attribute \"%s\" was found twice on the <%s> element"
+msgstr "<%s> ئېلېمېنت ئىككى قېتىم تاپتى “%s”"
+
+#: ../gtk/gtktextbufferserialize.c:852
+#, c-format
+msgid "<%s> element has invalid ID \"%s\""
+msgstr "<%s> ئېلېمېنتنىڭ ID سى «%s» ئىناۋەتسىز"
+
+#: ../gtk/gtktextbufferserialize.c:862
+#, c-format
+msgid "<%s> element has neither a \"name\" nor an \"id\" attribute"
+msgstr "<%s> ئېلېمېنتنىڭ ھەم “name” ھەم “id” خاسلىقى يوق"
+
+#: ../gtk/gtktextbufferserialize.c:949
+#, c-format
+msgid "Attribute \"%s\" repeated twice on the same <%s> element"
+msgstr "خاسلىق \"%s\" ئوخشاش بىر <%s> ئېلېمېنتتا ئىككى قېتىم تەكرارلاندى"
+
+#: ../gtk/gtktextbufferserialize.c:967 ../gtk/gtktextbufferserialize.c:992
+#, c-format
+msgid "Attribute \"%s\" is invalid on <%s> element in this context"
+msgstr "بۇ تىل مۇھىتىدا \"%s\" خاسلىق <%s> ئېلېمېنتقا نىسبەتەن ئىناۋەتسىز"
+
+#: ../gtk/gtktextbufferserialize.c:1031
+#, c-format
+msgid "Tag \"%s\" has not been defined."
+msgstr "“%s” بەلگە ئېنىقلانمىغان."
+
+#: ../gtk/gtktextbufferserialize.c:1043
+msgid "Anonymous tag found and tags can not be created."
+msgstr "ئاتسىز بەلگە بايقالدى. بەلگە قۇرۇشقا بولمايدۇ"
+
+#: ../gtk/gtktextbufferserialize.c:1054
+#, c-format
+msgid "Tag \"%s\" does not exist in buffer and tags can not be created."
+msgstr "\"%s\"بەلگە يىغلەكتە مەۋجۇت ئەمەس. بەلگە قۇرۇشقا بولمايدۇ."
+
+#: ../gtk/gtktextbufferserialize.c:1153 ../gtk/gtktextbufferserialize.c:1228
+#: ../gtk/gtktextbufferserialize.c:1333 ../gtk/gtktextbufferserialize.c:1407
+#, c-format
+msgid "Element <%s> is not allowed below <%s>"
+msgstr "<%s> ئېلېمېنت <%s> ئاستىدا بولۇشقا يول قويۇلمايدۇ"
+
+#: ../gtk/gtktextbufferserialize.c:1184
+#, c-format
+msgid "\"%s\" is not a valid attribute type"
+msgstr "\"%s\" ئىناۋەتلىك خاسلىق تىپى ئەمەس"
+
+#: ../gtk/gtktextbufferserialize.c:1192
+#, c-format
+msgid "\"%s\" is not a valid attribute name"
+msgstr "\"%s\" ئىناۋەتلىك خاسلىق ئاتى ئەمەس"
+
+#: ../gtk/gtktextbufferserialize.c:1202
+#, c-format
+msgid ""
+"\"%s\" could not be converted to a value of type \"%s\" for attribute \"%s\""
+msgstr ""
+"\"%s\"نى \"%s\" تىپلىق قىممەتكە ئالماشتۇرالمايدۇ، بۇ قىممەت  \"%s\" خاسلىققا "
+"ئىشلىتىلىدۇ"
+
+#: ../gtk/gtktextbufferserialize.c:1211
+#, c-format
+msgid "\"%s\" is not a valid value for attribute \"%s\""
+msgstr "\"%s\" بولسا \"%s\" خاسلىقنىڭ ئىناۋەتلىك قىممىتى ئەمەس"
+
+#: ../gtk/gtktextbufferserialize.c:1296
+#, c-format
+msgid "Tag \"%s\" already defined"
+msgstr "\"%s\" بەلگە ئېنىقلاندى"
+
+#: ../gtk/gtktextbufferserialize.c:1309
+#, c-format
+msgid "Tag \"%s\" has invalid priority \"%s\""
+msgstr "بەلگە \"%s\" نىڭ ئالدىنلىقى \"%s\" ئىناۋەتسىز"
+
+#: ../gtk/gtktextbufferserialize.c:1362
+#, c-format
+msgid "Outermost element in text must be <text_view_markup> not <%s>"
+msgstr ""
+"تېكىستنىڭ ئەڭ سىرتىدىكى ئېلېمېنت <text_view_markup> بولىدۇ،  <%s> بولمايدۇ"
+
+#: ../gtk/gtktextbufferserialize.c:1371 ../gtk/gtktextbufferserialize.c:1387
+#, c-format
+msgid "A <%s> element has already been specified"
+msgstr "<%s> ئېلېمېنت بەلگىلەندى"
+
+#: ../gtk/gtktextbufferserialize.c:1393
+msgid "A <text> element can't occur before a <tags> element"
+msgstr "<text> ئېلېمېنتى <tags> نىڭ ئالدىدا كۆرۈلمەيدۇ"
+
+#: ../gtk/gtktextbufferserialize.c:1793
+msgid "Serialized data is malformed"
+msgstr "تەرتىپلەشكەن سانلىق مەلۇمات فورماتى خاتا"
+
+#: ../gtk/gtktextbufferserialize.c:1871
+msgid ""
+"Serialized data is malformed. First section isn't GTKTEXTBUFFERCONTENTS-0001"
+msgstr ""
+"تەرتىپلەشكەن سانلىق مەلۇمات فورماتى خاتا. بىرىنچى بۆلىكى "
+"GTKTEXTBUFFERCONTENTS-0001"
+
+#: ../gtk/gtktextutil.c:60
+msgid "LRM _Left-to-right mark"
+msgstr "LRM سولدىن ئوڭغا بەلگىسى(_L)"
+
+#: ../gtk/gtktextutil.c:61
+msgid "RLM _Right-to-left mark"
+msgstr "RLM ئوڭدىن سولغا بەلگىسى(_R)"
+
+#: ../gtk/gtktextutil.c:62
+msgid "LRE Left-to-right _embedding"
+msgstr "LRE سولدىن ئوڭغا سىڭدۈرمە(_E)"
+
+#: ../gtk/gtktextutil.c:63
+msgid "RLE Right-to-left e_mbedding"
+msgstr "RLE ئوڭدىن سولغا سىڭدۈرمە(_M)"
+
+#: ../gtk/gtktextutil.c:64
+msgid "LRO Left-to-right _override"
+msgstr "LRO سولدىن ئوڭغا قاپلاش(_O)"
+
+#: ../gtk/gtktextutil.c:65
+msgid "RLO Right-to-left o_verride"
+msgstr "RLO ئوڭدىن سولغا قاپلاش(_V)"
+
+#: ../gtk/gtktextutil.c:66
+msgid "PDF _Pop directional formatting"
+msgstr "PDF قاڭقىش يۆنىلىش فورماتى(_P)"
+
+#: ../gtk/gtktextutil.c:67
+msgid "ZWS _Zero width space"
+msgstr "ZWS نۆل كەڭلىكتىكى بوشلۇق(_Z)"
+
+#: ../gtk/gtktextutil.c:68
+msgid "ZWJ Zero width _joiner"
+msgstr "ZWJ نۆل كەڭلىكتىكى ئۇلاش بەلگىسى(_J)"
+
+#: ../gtk/gtktextutil.c:69
+msgid "ZWNJ Zero width _non-joiner"
+msgstr "ZWNJ نۆل كەڭلىكتىكى ئۇلىماسلىق بەلگىسى (_N)"
+
+#: ../gtk/gtkuimanager.c:1760
+#, c-format
+msgid "Unexpected start tag '%s' on line %d char %d"
+msgstr "'%s' ئويلىشىلمىغان باشلاش بەلگىسى %d -قۇر %d -ھەرپتە"
+
+#: ../gtk/gtkuimanager.c:1850
+#, c-format
+msgid "Unexpected character data on line %d char %d"
+msgstr "%d- قۇر %d -ھەرپتە ئويلىشىلمىغان بەلگە بار"
+
+#: ../gtk/gtkuimanager.c:2682
+msgid "Empty"
+msgstr "بوش"
+
+#: ../gtk/gtkvolumebutton.c:170
+msgid "Volume"
+msgstr "دىسكا"
+
+#: ../gtk/gtkvolumebutton.c:172
+msgid "Turns volume down or up"
+msgstr "ئاۋازنى يۇقىرىلات ياكى تۆۋەنلەت"
+
+#: ../gtk/gtkvolumebutton.c:175
+msgid "Adjusts the volume"
+msgstr "ئاۋاز تەڭشىكى"
+
+#: ../gtk/gtkvolumebutton.c:181 ../gtk/gtkvolumebutton.c:184
+msgid "Volume Down"
+msgstr "ئاۋازنى تۆۋەنلەت"
+
+#: ../gtk/gtkvolumebutton.c:183
+msgid "Decreases the volume"
+msgstr "ئاۋازنى كېمەيت"
+
+#: ../gtk/gtkvolumebutton.c:187 ../gtk/gtkvolumebutton.c:190
+msgid "Volume Up"
+msgstr "ئاۋازنى يۇقىرىلات"
+
+#: ../gtk/gtkvolumebutton.c:189
+msgid "Increases the volume"
+msgstr "ئاۋازنى ئاشۇر"
+
+#: ../gtk/gtkvolumebutton.c:247
+msgid "Muted"
+msgstr "ئۈنسىز"
+
+#: ../gtk/gtkvolumebutton.c:251
+msgid "Full Volume"
+msgstr "ئەڭ يۇقىرى ئاۋاز"
+
+#. Translators: this is the percentage of the current volume,
+#. * as used in the tooltip, eg. "49 %".
+#. * Translate the "%d" to "%Id" if you want to use localised digits,
+#. * or otherwise translate the "%d" to "%d".
+#.
+#: ../gtk/gtkvolumebutton.c:264
+#, c-format
+msgctxt "volume percentage"
+msgid "%d %%"
+msgstr "%d %%"
+
+#: ../gtk/paper_names_offsets.c:4
+msgctxt "paper size"
+msgid "asme_f"
+msgstr "asme_f"
+
+#: ../gtk/paper_names_offsets.c:5
+msgctxt "paper size"
+msgid "A0x2"
+msgstr "A0x2"
+
+#: ../gtk/paper_names_offsets.c:6
+msgctxt "paper size"
+msgid "A0"
+msgstr "A0"
+
+#: ../gtk/paper_names_offsets.c:7
+msgctxt "paper size"
+msgid "A0x3"
+msgstr "A0x3"
+
+#: ../gtk/paper_names_offsets.c:8
+msgctxt "paper size"
+msgid "A1"
+msgstr "A1"
+
+#: ../gtk/paper_names_offsets.c:9
+msgctxt "paper size"
+msgid "A10"
+msgstr "A10"
+
+#: ../gtk/paper_names_offsets.c:10
+msgctxt "paper size"
+msgid "A1x3"
+msgstr "A1x3"
+
+#: ../gtk/paper_names_offsets.c:11
+msgctxt "paper size"
+msgid "A1x4"
+msgstr "A1x4"
+
+#: ../gtk/paper_names_offsets.c:12
+msgctxt "paper size"
+msgid "A2"
+msgstr "A2"
+
+#: ../gtk/paper_names_offsets.c:13
+msgctxt "paper size"
+msgid "A2x3"
+msgstr "A2x3"
+
+#: ../gtk/paper_names_offsets.c:14
+msgctxt "paper size"
+msgid "A2x4"
+msgstr "A2x4"
+
+#: ../gtk/paper_names_offsets.c:15
+msgctxt "paper size"
+msgid "A2x5"
+msgstr "A2x5"
+
+#: ../gtk/paper_names_offsets.c:16
+msgctxt "paper size"
+msgid "A3"
+msgstr "A3"
+
+#: ../gtk/paper_names_offsets.c:17
+msgctxt "paper size"
+msgid "A3 Extra"
+msgstr "A3 Extra"
+
+#: ../gtk/paper_names_offsets.c:18
+msgctxt "paper size"
+msgid "A3x3"
+msgstr "A3x3"
+
+#: ../gtk/paper_names_offsets.c:19
+msgctxt "paper size"
+msgid "A3x4"
+msgstr "A3x4"
+
+#: ../gtk/paper_names_offsets.c:20
+msgctxt "paper size"
+msgid "A3x5"
+msgstr "A3x5"
+
+#: ../gtk/paper_names_offsets.c:21
+msgctxt "paper size"
+msgid "A3x6"
+msgstr "A3x6"
+
+#: ../gtk/paper_names_offsets.c:22
+msgctxt "paper size"
+msgid "A3x7"
+msgstr "A3x7"
+
+#: ../gtk/paper_names_offsets.c:23
+msgctxt "paper size"
+msgid "A4"
+msgstr "A4"
+
+#: ../gtk/paper_names_offsets.c:24
+msgctxt "paper size"
+msgid "A4 Extra"
+msgstr "A4 Extra"
+
+#: ../gtk/paper_names_offsets.c:25
+msgctxt "paper size"
+msgid "A4 Tab"
+msgstr "A4 Tab"
+
+#: ../gtk/paper_names_offsets.c:26
+msgctxt "paper size"
+msgid "A4x3"
+msgstr "A4x3"
+
+#: ../gtk/paper_names_offsets.c:27
+msgctxt "paper size"
+msgid "A4x4"
+msgstr "A4x4"
+
+#: ../gtk/paper_names_offsets.c:28
+msgctxt "paper size"
+msgid "A4x5"
+msgstr "A4x5"
+
+#: ../gtk/paper_names_offsets.c:29
+msgctxt "paper size"
+msgid "A4x6"
+msgstr "A4x6"
+
+#: ../gtk/paper_names_offsets.c:30
+msgctxt "paper size"
+msgid "A4x7"
+msgstr "A4x7"
+
+#: ../gtk/paper_names_offsets.c:31
+msgctxt "paper size"
+msgid "A4x8"
+msgstr "A4x8"
+
+#: ../gtk/paper_names_offsets.c:32
+msgctxt "paper size"
+msgid "A4x9"
+msgstr "A4x9"
+
+#: ../gtk/paper_names_offsets.c:33
+msgctxt "paper size"
+msgid "A5"
+msgstr "A5"
+
+#: ../gtk/paper_names_offsets.c:34
+msgctxt "paper size"
+msgid "A5 Extra"
+msgstr "A5 Extra"
+
+#: ../gtk/paper_names_offsets.c:35
+msgctxt "paper size"
+msgid "A6"
+msgstr "A6"
+
+#: ../gtk/paper_names_offsets.c:36
+msgctxt "paper size"
+msgid "A7"
+msgstr "A7"
+
+#: ../gtk/paper_names_offsets.c:37
+msgctxt "paper size"
+msgid "A8"
+msgstr "A8"
+
+#: ../gtk/paper_names_offsets.c:38
+msgctxt "paper size"
+msgid "A9"
+msgstr "A9"
+
+#: ../gtk/paper_names_offsets.c:39
+msgctxt "paper size"
+msgid "B0"
+msgstr "B0"
+
+#: ../gtk/paper_names_offsets.c:40
+msgctxt "paper size"
+msgid "B1"
+msgstr "B1"
+
+#: ../gtk/paper_names_offsets.c:41
+msgctxt "paper size"
+msgid "B10"
+msgstr "B10"
+
+#: ../gtk/paper_names_offsets.c:42
+msgctxt "paper size"
+msgid "B2"
+msgstr "B2"
+
+#: ../gtk/paper_names_offsets.c:43
+msgctxt "paper size"
+msgid "B3"
+msgstr "B3"
+
+#: ../gtk/paper_names_offsets.c:44
+msgctxt "paper size"
+msgid "B4"
+msgstr "B4"
+
+#: ../gtk/paper_names_offsets.c:45
+msgctxt "paper size"
+msgid "B5"
+msgstr "B5"
+
+#: ../gtk/paper_names_offsets.c:46
+msgctxt "paper size"
+msgid "B5 Extra"
+msgstr "B5 Extra"
+
+#: ../gtk/paper_names_offsets.c:47
+msgctxt "paper size"
+msgid "B6"
+msgstr "B6"
+
+#: ../gtk/paper_names_offsets.c:48
+msgctxt "paper size"
+msgid "B6/C4"
+msgstr "B6/C4"
+
+#: ../gtk/paper_names_offsets.c:49
+msgctxt "paper size"
+msgid "B7"
+msgstr "B7"
+
+#: ../gtk/paper_names_offsets.c:50
+msgctxt "paper size"
+msgid "B8"
+msgstr "B8"
+
+#: ../gtk/paper_names_offsets.c:51
+msgctxt "paper size"
+msgid "B9"
+msgstr "B9"
+
+#: ../gtk/paper_names_offsets.c:52
+msgctxt "paper size"
+msgid "C0"
+msgstr "C0"
+
+#: ../gtk/paper_names_offsets.c:53
+msgctxt "paper size"
+msgid "C1"
+msgstr "C1"
+
+#: ../gtk/paper_names_offsets.c:54
+msgctxt "paper size"
+msgid "C10"
+msgstr "C10"
+
+#: ../gtk/paper_names_offsets.c:55
+msgctxt "paper size"
+msgid "C2"
+msgstr "C2"
+
+#: ../gtk/paper_names_offsets.c:56
+msgctxt "paper size"
+msgid "C3"
+msgstr "C3"
+
+#: ../gtk/paper_names_offsets.c:57
+msgctxt "paper size"
+msgid "C4"
+msgstr "C4"
+
+#: ../gtk/paper_names_offsets.c:58
+msgctxt "paper size"
+msgid "C5"
+msgstr "C5"
+
+#: ../gtk/paper_names_offsets.c:59
+msgctxt "paper size"
+msgid "C6"
+msgstr "C6"
+
+#: ../gtk/paper_names_offsets.c:60
+msgctxt "paper size"
+msgid "C6/C5"
+msgstr "C6/C5"
+
+#: ../gtk/paper_names_offsets.c:61
+msgctxt "paper size"
+msgid "C7"
+msgstr "C7"
+
+#: ../gtk/paper_names_offsets.c:62
+msgctxt "paper size"
+msgid "C7/C6"
+msgstr "C7/C6"
+
+#: ../gtk/paper_names_offsets.c:63
+msgctxt "paper size"
+msgid "C8"
+msgstr "C8"
+
+#: ../gtk/paper_names_offsets.c:64
+msgctxt "paper size"
+msgid "C9"
+msgstr "C9"
+
+#: ../gtk/paper_names_offsets.c:65
+msgctxt "paper size"
+msgid "DL Envelope"
+msgstr "DL لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:66
+msgctxt "paper size"
+msgid "RA0"
+msgstr "RA0"
+
+#: ../gtk/paper_names_offsets.c:67
+msgctxt "paper size"
+msgid "RA1"
+msgstr "RA1"
+
+#: ../gtk/paper_names_offsets.c:68
+msgctxt "paper size"
+msgid "RA2"
+msgstr "RA2"
+
+#: ../gtk/paper_names_offsets.c:69
+msgctxt "paper size"
+msgid "SRA0"
+msgstr "SRA0"
+
+#: ../gtk/paper_names_offsets.c:70
+msgctxt "paper size"
+msgid "SRA1"
+msgstr "SRA1"
+
+#: ../gtk/paper_names_offsets.c:71
+msgctxt "paper size"
+msgid "SRA2"
+msgstr "SRA2"
+
+#: ../gtk/paper_names_offsets.c:72
+msgctxt "paper size"
+msgid "JB0"
+msgstr "JB0"
+
+#: ../gtk/paper_names_offsets.c:73
+msgctxt "paper size"
+msgid "JB1"
+msgstr "JB1"
+
+#: ../gtk/paper_names_offsets.c:74
+msgctxt "paper size"
+msgid "JB10"
+msgstr "JB10"
+
+#: ../gtk/paper_names_offsets.c:75
+msgctxt "paper size"
+msgid "JB2"
+msgstr "JB2"
+
+#: ../gtk/paper_names_offsets.c:76
+msgctxt "paper size"
+msgid "JB3"
+msgstr "JB3"
+
+#: ../gtk/paper_names_offsets.c:77
+msgctxt "paper size"
+msgid "JB4"
+msgstr "JB4"
+
+#: ../gtk/paper_names_offsets.c:78
+msgctxt "paper size"
+msgid "JB5"
+msgstr "JB5"
+
+#: ../gtk/paper_names_offsets.c:79
+msgctxt "paper size"
+msgid "JB6"
+msgstr "JB6"
+
+#: ../gtk/paper_names_offsets.c:80
+msgctxt "paper size"
+msgid "JB7"
+msgstr "JB7"
+
+#: ../gtk/paper_names_offsets.c:81
+msgctxt "paper size"
+msgid "JB8"
+msgstr "JB8"
+
+#: ../gtk/paper_names_offsets.c:82
+msgctxt "paper size"
+msgid "JB9"
+msgstr "JB9"
+
+#: ../gtk/paper_names_offsets.c:83
+msgctxt "paper size"
+msgid "jis exec"
+msgstr "jis exec"
+
+#: ../gtk/paper_names_offsets.c:84
+msgctxt "paper size"
+msgid "Choukei 2 Envelope"
+msgstr "Choukei 2 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:85
+msgctxt "paper size"
+msgid "Choukei 3 Envelope"
+msgstr "Choukei 3 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:86
+msgctxt "paper size"
+msgid "Choukei 4 Envelope"
+msgstr "houkei 4 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:87
+msgctxt "paper size"
+msgid "hagaki (postcard)"
+msgstr "hagaki (پوچتا كارتىسى)"
+
+#: ../gtk/paper_names_offsets.c:88
+msgctxt "paper size"
+msgid "kahu Envelope"
+msgstr "kahu لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:89
+msgctxt "paper size"
+msgid "kaku2 Envelope"
+msgstr "kaku2 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:90
+msgctxt "paper size"
+msgid "oufuku (reply postcard)"
+msgstr "oufuku (جاۋاب پوچتا كارتىسى)"
+
+#: ../gtk/paper_names_offsets.c:91
+msgctxt "paper size"
+msgid "you4 Envelope"
+msgstr "you4 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:92
+msgctxt "paper size"
+msgid "10x11"
+msgstr "10x11"
+
+#: ../gtk/paper_names_offsets.c:93
+msgctxt "paper size"
+msgid "10x13"
+msgstr "10x13"
+
+#: ../gtk/paper_names_offsets.c:94
+msgctxt "paper size"
+msgid "10x14"
+msgstr "10x14"
+
+#: ../gtk/paper_names_offsets.c:95 ../gtk/paper_names_offsets.c:96
+msgctxt "paper size"
+msgid "10x15"
+msgstr "10x15"
+
+#: ../gtk/paper_names_offsets.c:97
+msgctxt "paper size"
+msgid "11x12"
+msgstr "11x12"
+
+#: ../gtk/paper_names_offsets.c:98
+msgctxt "paper size"
+msgid "11x15"
+msgstr "11x15"
+
+#: ../gtk/paper_names_offsets.c:99
+msgctxt "paper size"
+msgid "12x19"
+msgstr "12x19"
+
+#: ../gtk/paper_names_offsets.c:100
+msgctxt "paper size"
+msgid "5x7"
+msgstr "5x7"
+
+#: ../gtk/paper_names_offsets.c:101
+msgctxt "paper size"
+msgid "6x9 Envelope"
+msgstr "6x9 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:102
+msgctxt "paper size"
+msgid "7x9 Envelope"
+msgstr "7x9 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:103
+msgctxt "paper size"
+msgid "9x11 Envelope"
+msgstr "9x11 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:104
+msgctxt "paper size"
+msgid "a2 Envelope"
+msgstr "a2 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:105
+msgctxt "paper size"
+msgid "Arch A"
+msgstr "ئەگمە A"
+
+#: ../gtk/paper_names_offsets.c:106
+msgctxt "paper size"
+msgid "Arch B"
+msgstr "ئەگمە B"
+
+#: ../gtk/paper_names_offsets.c:107
+msgctxt "paper size"
+msgid "Arch C"
+msgstr "ئەگمە C"
+
+#: ../gtk/paper_names_offsets.c:108
+msgctxt "paper size"
+msgid "Arch D"
+msgstr "ئەگمە D"
+
+#: ../gtk/paper_names_offsets.c:109
+msgctxt "paper size"
+msgid "Arch E"
+msgstr "ئەگمە E"
+
+#: ../gtk/paper_names_offsets.c:110
+msgctxt "paper size"
+msgid "b-plus"
+msgstr "b-plus"
+
+#: ../gtk/paper_names_offsets.c:111
+msgctxt "paper size"
+msgid "c"
+msgstr "c"
+
+#: ../gtk/paper_names_offsets.c:112
+msgctxt "paper size"
+msgid "c5 Envelope"
+msgstr "c5 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:113
+msgctxt "paper size"
+msgid "d"
+msgstr "d"
+
+#: ../gtk/paper_names_offsets.c:114
+msgctxt "paper size"
+msgid "e"
+msgstr "e"
+
+#: ../gtk/paper_names_offsets.c:115
+msgctxt "paper size"
+msgid "edp"
+msgstr "edp"
+
+#: ../gtk/paper_names_offsets.c:116
+msgctxt "paper size"
+msgid "European edp"
+msgstr "ياۋروپا edp"
+
+#: ../gtk/paper_names_offsets.c:117
+msgctxt "paper size"
+msgid "Executive"
+msgstr "مەمۇرىي"
+
+#: ../gtk/paper_names_offsets.c:118
+msgctxt "paper size"
+msgid "f"
+msgstr "f"
+
+#: ../gtk/paper_names_offsets.c:119
+msgctxt "paper size"
+msgid "FanFold European"
+msgstr "FanFold ياۋروپا"
+
+#: ../gtk/paper_names_offsets.c:120
+msgctxt "paper size"
+msgid "FanFold US"
+msgstr "FanFold ئا ق ش"
+
+#: ../gtk/paper_names_offsets.c:121
+msgctxt "paper size"
+msgid "FanFold German Legal"
+msgstr "FanFold گېرمانىيە قانۇنى"
+
+#: ../gtk/paper_names_offsets.c:122
+msgctxt "paper size"
+msgid "Government Legal"
+msgstr "ھۆكۈمەت قانۇنى"
+
+#: ../gtk/paper_names_offsets.c:123
+msgctxt "paper size"
+msgid "Government Letter"
+msgstr "ھۆكۈمەت خەت-چەك"
+
+#: ../gtk/paper_names_offsets.c:124
+msgctxt "paper size"
+msgid "Index 3x5"
+msgstr "Index 3x5"
+
+#: ../gtk/paper_names_offsets.c:125
+msgctxt "paper size"
+msgid "Index 4x6 (postcard)"
+msgstr "Index 4x6 (پوچتا كارتىسى)"
+
+#: ../gtk/paper_names_offsets.c:126
+msgctxt "paper size"
+msgid "Index 4x6 ext"
+msgstr "Index 4x6 ext"
+
+#: ../gtk/paper_names_offsets.c:127
+msgctxt "paper size"
+msgid "Index 5x8"
+msgstr "Index 5x8"
+
+#: ../gtk/paper_names_offsets.c:128
+msgctxt "paper size"
+msgid "Invoice"
+msgstr "Invoice"
+
+#: ../gtk/paper_names_offsets.c:129
+msgctxt "paper size"
+msgid "Tabloid"
+msgstr "تەرمىلەر"
+
+#: ../gtk/paper_names_offsets.c:130
+msgctxt "paper size"
+msgid "US Legal"
+msgstr "ئا ق ش قانۇن"
+
+#: ../gtk/paper_names_offsets.c:131
+msgctxt "paper size"
+msgid "US Legal Extra"
+msgstr "ئا ق ش قانۇنى زىيادە چوڭ"
+
+#: ../gtk/paper_names_offsets.c:132
+msgctxt "paper size"
+msgid "US Letter"
+msgstr "ئا ق ش لېپاپى"
+
+#: ../gtk/paper_names_offsets.c:133
+msgctxt "paper size"
+msgid "US Letter Extra"
+msgstr "ئا ق ش لېپاپى زىيادە چوڭ"
+
+#: ../gtk/paper_names_offsets.c:134
+msgctxt "paper size"
+msgid "US Letter Plus"
+msgstr "ئا ق ش لېپاپى چوڭ"
+
+#: ../gtk/paper_names_offsets.c:135
+msgctxt "paper size"
+msgid "Monarch Envelope"
+msgstr "Monarch لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:136
+msgctxt "paper size"
+msgid "#10 Envelope"
+msgstr "#10 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:137
+msgctxt "paper size"
+msgid "#11 Envelope"
+msgstr "#11 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:138
+msgctxt "paper size"
+msgid "#12 Envelope"
+msgstr "#12 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:139
+msgctxt "paper size"
+msgid "#14 Envelope"
+msgstr "#14 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:140
+msgctxt "paper size"
+msgid "#9 Envelope"
+msgstr "#9 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:141
+msgctxt "paper size"
+msgid "Personal Envelope"
+msgstr "شەخسىي لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:142
+msgctxt "paper size"
+msgid "Quarto"
+msgstr "Quarto"
+
+#: ../gtk/paper_names_offsets.c:143
+msgctxt "paper size"
+msgid "Super A"
+msgstr "Super A"
+
+#: ../gtk/paper_names_offsets.c:144
+msgctxt "paper size"
+msgid "Super B"
+msgstr "Super B"
+
+#: ../gtk/paper_names_offsets.c:145
+msgctxt "paper size"
+msgid "Wide Format"
+msgstr "كەڭ فورمات"
+
+#: ../gtk/paper_names_offsets.c:146
+msgctxt "paper size"
+msgid "Dai-pa-kai"
+msgstr "Dai-pa-kai"
+
+#: ../gtk/paper_names_offsets.c:147
+msgctxt "paper size"
+msgid "Folio"
+msgstr "Folio"
+
+#: ../gtk/paper_names_offsets.c:148
+msgctxt "paper size"
+msgid "Folio sp"
+msgstr "Folio sp"
+
+#: ../gtk/paper_names_offsets.c:149
+msgctxt "paper size"
+msgid "Invite Envelope"
+msgstr "تەكلىپ لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:150
+msgctxt "paper size"
+msgid "Italian Envelope"
+msgstr "ئىتالىيە لېپاپى"
+
+#: ../gtk/paper_names_offsets.c:151
+msgctxt "paper size"
+msgid "juuro-ku-kai"
+msgstr "juuro-ku-kai"
+
+#: ../gtk/paper_names_offsets.c:152
+msgctxt "paper size"
+msgid "pa-kai"
+msgstr "pa-kai"
+
+#: ../gtk/paper_names_offsets.c:153
+msgctxt "paper size"
+msgid "Postfix Envelope"
+msgstr "Postfix لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:154
+msgctxt "paper size"
+msgid "Small Photo"
+msgstr "كىچىك سۈرەت"
+
+#: ../gtk/paper_names_offsets.c:155
+msgctxt "paper size"
+msgid "prc1 Envelope"
+msgstr "prc1 شەخسىي لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:156
+msgctxt "paper size"
+msgid "prc10 Envelope"
+msgstr "ج خ ج 10 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:157
+msgctxt "paper size"
+msgid "prc 16k"
+msgstr "ج خ ج 16 كەسلەم"
+
+#: ../gtk/paper_names_offsets.c:158
+msgctxt "paper size"
+msgid "prc2 Envelope"
+msgstr "ج خ ج 2 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:159
+msgctxt "paper size"
+msgid "prc3 Envelope"
+msgstr "ج خ ج 3 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:160
+msgctxt "paper size"
+msgid "prc 32k"
+msgstr "ج خ ج 32 كەسلەم"
+
+#: ../gtk/paper_names_offsets.c:161
+msgctxt "paper size"
+msgid "prc4 Envelope"
+msgstr "ج خ ج 4 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:162
+msgctxt "paper size"
+msgid "prc5 Envelope"
+msgstr "ج خ ج 5 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:163
+msgctxt "paper size"
+msgid "prc6 Envelope"
+msgstr "ج خ ج 6 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:164
+msgctxt "paper size"
+msgid "prc7 Envelope"
+msgstr "ج خ ج 7 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:165
+msgctxt "paper size"
+msgid "prc8 Envelope"
+msgstr "ج خ ج 8 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:166
+msgctxt "paper size"
+msgid "prc9 Envelope"
+msgstr "ج خ ج 9 لېپاپ"
+
+#: ../gtk/paper_names_offsets.c:167
+msgctxt "paper size"
+msgid "ROC 16k"
+msgstr "ج م 16 كەسلەم"
+
+#: ../gtk/paper_names_offsets.c:168
+msgctxt "paper size"
+msgid "ROC 8k"
+msgstr "ج م 8 كەسلەم"
+
+#: ../gtk/updateiconcache.c:1370
+#, c-format
+msgid "Failed to write header\n"
+msgstr "بېشىغا يازالمىدى\n"
+
+#: ../gtk/updateiconcache.c:1376
+#, c-format
+msgid "Failed to write hash table\n"
+msgstr "مۇكەممەللىك جەدۋىلىگە يازالمىدى\n"
+
+#: ../gtk/updateiconcache.c:1382
+#, c-format
+msgid "Failed to write folder index\n"
+msgstr "قىسقۇچ ئىندېكسقا يازالمىدى\n"
+
+#: ../gtk/updateiconcache.c:1390
+#, c-format
+msgid "Failed to rewrite header\n"
+msgstr "بېشىغا قايتا يازالمىدى\n"
+
+#: ../gtk/updateiconcache.c:1484
+#, c-format
+msgid "Failed to open file %s : %s\n"
+msgstr "%s ھۆججەتنى ئاچالمىدى: %s\n"
+
+#: ../gtk/updateiconcache.c:1492 ../gtk/updateiconcache.c:1522
+#, c-format
+msgid "Failed to write cache file: %s\n"
+msgstr "غەملەك ھۆججىتىگە يازالمىدى: %s\n"
+
+#: ../gtk/updateiconcache.c:1533
+#, c-format
+msgid "The generated cache was invalid.\n"
+msgstr "قۇرغان غەملەك ئىناۋەتسىز.\n"
+
+#: ../gtk/updateiconcache.c:1547
+#, c-format
+msgid "Could not rename %s to %s: %s, removing %s then.\n"
+msgstr "%s نى %s غا ئات ئۆزگەرتەلمىدى:%s،  %s چىقىرىۋاتىدۇ\n"
+
+#: ../gtk/updateiconcache.c:1561
+#, c-format
+msgid "Could not rename %s to %s: %s\n"
+msgstr "%s نى %s غا ئات ئۆزگەرتەلمىدى:%s\n"
+
+#: ../gtk/updateiconcache.c:1571
+#, c-format
+msgid "Could not rename %s back to %s: %s.\n"
+msgstr "%s نى %s غا قايتۇرۇپ ئات ئۆزگەرتەلمىدى:%s\n"
+
+#: ../gtk/updateiconcache.c:1598
+#, c-format
+msgid "Cache file created successfully.\n"
+msgstr "غەملەك ھۆججىتى مۇۋەپپەقىيەتلىك قۇرۇلدى.\n"
+
+#: ../gtk/updateiconcache.c:1637
+msgid "Overwrite an existing cache, even if up to date"
+msgstr "نۆۋەتتىكى غەملەك ئەڭ يېڭى بولسىمۇ قاپلىۋەت"
+
+#: ../gtk/updateiconcache.c:1638
+msgid "Don't check for the existence of index.theme"
+msgstr "مەۋجۇت index.theme نى تەكشۈرمە"
+
+#: ../gtk/updateiconcache.c:1639
+msgid "Don't include image data in the cache"
+msgstr "غەملەكتە سۈرەت سانلىق مەلۇماتىنى ساقلىما"
+
+#: ../gtk/updateiconcache.c:1640
+msgid "Output a C header file"
+msgstr "C باش ھۆججەتنى چىقار"
+
+#: ../gtk/updateiconcache.c:1641
+msgid "Turn off verbose output"
+msgstr "تەپسىلىي چىقىرىشنى ياپ"
+
+#: ../gtk/updateiconcache.c:1642
+msgid "Validate existing icon cache"
+msgstr "مەۋجۇت سىنبەلگە غەملىكىنى دەلىللە"
+
+#: ../gtk/updateiconcache.c:1709
+#, c-format
+msgid "File not found: %s\n"
+msgstr "ھۆججەتنى تاپالمىدى: %s\n"
+
+#: ../gtk/updateiconcache.c:1715
+#, c-format
+msgid "Not a valid icon cache: %s\n"
+msgstr "ئىناۋەتلىك سىنبەلگە غەملەك ئەمەس: %s\n"
+
+#: ../gtk/updateiconcache.c:1728
+#, c-format
+msgid "No theme index file.\n"
+msgstr "باش تېما ئىندېكس ھۆججىتى يوق.\n"
+
+#: ../gtk/updateiconcache.c:1732
+#, c-format
+msgid ""
+"No theme index file in '%s'.\n"
+"If you really want to create an icon cache here, use --ignore-theme-index.\n"
+msgstr ""
+"“%s دا باش تېما ئىندېكس ھۆججىتى يوق.\n"
+"ئەگەر بۇ جايغا راستىنىلا سىنبەلگە غەملەك قۇرماقچى بولسىڭىز --ignore-theme-"
+"index ئىشلىتىڭ\n"
+
+#. ID
+#: ../modules/input/imam-et.c:454
+msgid "Amharic (EZ+)"
+msgstr "ئامخاراچە(EZ+)"
+
+#. ID
+#: ../modules/input/imcedilla.c:92
+msgid "Cedilla"
+msgstr "ئاۋاز ئۆزگەرتىش بەلگىسى"
+
+#. ID
+#: ../modules/input/imcyrillic-translit.c:217
+msgid "Cyrillic (Transliterated)"
+msgstr "سلاۋيانچە (ئاھاڭ تەرجىمىسى)"
+
+#. ID
+#: ../modules/input/iminuktitut.c:127
+msgid "Inuktitut (Transliterated)"
+msgstr "ئىنۇكتىتۇت (ئاھاڭ تەرجىمىسى)"
+
+#. ID
+#: ../modules/input/imipa.c:145
+msgid "IPA"
+msgstr "IPA"
+
+#. ID
+#: ../modules/input/immultipress.c:31
+msgid "Multipress"
+msgstr "ئېغىر بىسىم"
+
+#. ID
+#: ../modules/input/imthai.c:35
+msgid "Thai-Lao"
+msgstr "تايلاند-لائۇس"
+
+#. ID
+#: ../modules/input/imti-er.c:453
+msgid "Tigrigna-Eritrean (EZ+)"
+msgstr "تىگرىگنا-ئېرىترىيە(EZ+)"
+
+#. ID
+#: ../modules/input/imti-et.c:453
+msgid "Tigrigna-Ethiopian (EZ+)"
+msgstr "تىگرىگنا-ئېفىئوپىيە(EZ+)"
+
+#. ID
+#: ../modules/input/imviqr.c:244
+msgid "Vietnamese (VIQR)"
+msgstr "ۋيېتنامچە(VIQR)"
+
+#. ID
+#: ../modules/input/imxim.c:28
+msgid "X Input Method"
+msgstr "X كىرگۈزگۈچ"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:828
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1038
+msgid "Username:"
+msgstr "ئىشلەتكۈچى ئاتى:"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:829
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1047
+msgid "Password:"
+msgstr "ئىم:"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:868
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1060
+#, c-format
+msgid "Authentication is required to print document '%s' on printer %s"
+msgstr "باسىدىغان '%s' پۈتۈكنى %s پرىنتېردا بېسىشتا دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:870
+#, c-format
+msgid "Authentication is required to print a document on %s"
+msgstr "%s دا پۈتۈكتىن بىرنى بېسىشتا دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:874
+#, c-format
+msgid "Authentication is required to get attributes of job '%s'"
+msgstr "ۋەزىپە '%s' نىڭ خاسلىقىغا ئېرىشىشتە دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:876
+msgid "Authentication is required to get attributes of a job"
+msgstr "بىر ۋەزىپىنىڭ خاسلىقىغا ئېرىشىش ئۈچۈن دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:880
+#, c-format
+msgid "Authentication is required to get attributes of printer %s"
+msgstr "%s پرىنتېرنىڭ خاسلىقىغا ئېرىشىشتە دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:882
+msgid "Authentication is required to get attributes of a printer"
+msgstr "بىر پرىنتېرنىڭ خاسلىقىغا ئېرىشىشتە دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:885
+#, c-format
+msgid "Authentication is required to get default printer of %s"
+msgstr "%s نىڭ كۆڭۈلدىكى پرىنتېرىغا ئېرىشىشتە دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:888
+#, c-format
+msgid "Authentication is required to get printers from %s"
+msgstr "%s دىن پرىنتېرغا ئېرىشىشتە دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:893
+#, c-format
+msgid "Authentication is required to get a file from %s"
+msgstr "%s دىن ھۆججەتكە ئېرىشىشتە دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:895
+#, c-format
+msgid "Authentication is required on %s"
+msgstr "%s دا دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1032
+msgid "Domain:"
+msgstr "دائىرە:"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1062
+#, c-format
+msgid "Authentication is required to print document '%s'"
+msgstr "%s دا پۈتۈك بېسىشتا دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1067
+#, c-format
+msgid "Authentication is required to print this document on printer %s"
+msgstr "بۇ پۈتۈكنى %s دا بېسىشتا دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1069
+msgid "Authentication is required to print this document"
+msgstr "بۇ پۈتۈكنى بېسىشتا دەلىللەش لازىم"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1690
+#, c-format
+msgid "Printer '%s' is low on toner."
+msgstr "'%s' پرىنتېرنىڭ سىياھى ئاز."
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1691
+#, c-format
+msgid "Printer '%s' has no toner left."
+msgstr "'%s' پرىنتېرنىڭ سىياھى قالمىغان."
+
+#. Translators: "Developer" like on photo development context
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1693
+#, c-format
+msgid "Printer '%s' is low on developer."
+msgstr "'%s' پرىنتېر روشەنلەشتۈرۈش خۇرۇچى ئاز"
+
+#. Translators: "Developer" like on photo development context
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1695
+#, c-format
+msgid "Printer '%s' is out of developer."
+msgstr "'%s' پرىنتېر روشەنلەشتۈرۈش خۇرۇچى قالمىغان."
+
+#. Translators: "marker" is one color bin of the printer
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1697
+#, c-format
+msgid "Printer '%s' is low on at least one marker supply."
+msgstr "'%s' پرىنتېرنىڭ ئاز دېگەندە بىر رەڭ قۇتىسىنىڭ سىياھى ئاز."
+
+#. Translators: "marker" is one color bin of the printer
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1699
+#, c-format
+msgid "Printer '%s' is out of at least one marker supply."
+msgstr "'%s' پرىنتېرنىڭ ئاز دېگەندە بىر رەڭ قۇتىسىنىڭ سىياھى تۈگىگەن."
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1700
+#, c-format
+msgid "The cover is open on printer '%s'."
+msgstr "'%s' پرىنتېرنىڭ قاپقىقى ئوچۇق."
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1701
+#, c-format
+msgid "The door is open on printer '%s'."
+msgstr "'%s' پرىنتېرنىڭ ئىشىكى ئوچۇق."
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1702
+#, c-format
+msgid "Printer '%s' is low on paper."
+msgstr "'%s' پرىنتېرنىڭ قەغىزى قالمىغان."
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1703
+#, c-format
+msgid "Printer '%s' is out of paper."
+msgstr "'%s' پرىنتېردا قەغەز كەم."
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1704
+#, c-format
+msgid "Printer '%s' is currently offline."
+msgstr "'%s' پرىنتېر نۆۋەتتە توردا يوق."
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:1705
+#, c-format
+msgid "There is a problem on printer '%s'."
+msgstr "'%s' پرىنتېردا مەسىلە بار."
+
+#. Translators: this is a printer status.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2019
+msgid "Paused ; Rejecting Jobs"
+msgstr "ۋاقىتلىق توختىتىلدى؛ ۋەزىپىنى رەت قىلىدۇ"
+
+#. Translators: this is a printer status.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2025
+msgid "Rejecting Jobs"
+msgstr "ۋەزىپىنى رەت قىلىدۇ"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2798
+msgid "Two Sided"
+msgstr "قوش يۈزلۈك"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2799
+msgid "Paper Type"
+msgstr "قەغەز تىپى"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2800
+msgid "Paper Source"
+msgstr "قەغەز مەنبەسى"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2801
+msgid "Output Tray"
+msgstr "قەغەز چىقارغۇچ"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2802
+msgid "Resolution"
+msgstr "ئېنىقلىق"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2803
+msgid "GhostScript pre-filtering"
+msgstr "GhostScript ئالدىن سۈزگۈچ"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2812
+msgid "One Sided"
+msgstr "تاق تەرەپلىك"
+
+#. Translators: this is an option of "Two Sided"
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2814
+msgid "Long Edge (Standard)"
+msgstr "ئۇزۇن يان (ئۆلچەملىك)"
+
+#. Translators: this is an option of "Two Sided"
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2816
+msgid "Short Edge (Flip)"
+msgstr "قىسقا يان (ئۆرۈ)"
+
+#. Translators: this is an option of "Paper Source"
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2818
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2820
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2828
+msgid "Auto Select"
+msgstr "ئۆزلۈكىدىن تاللا"
+
+#. Translators: this is an option of "Paper Source"
+#. Translators: this is an option of "Resolution"
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2822
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2824
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2826
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2830
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3326
+msgid "Printer Default"
+msgstr "ئالدىن تەڭشەلگەن پرىنتېر"
+
+#. Translators: this is an option of "GhostScript"
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2832
+msgid "Embed GhostScript fonts only"
+msgstr "GhostScript خەت نۇسخىنىلا سىڭدۈر"
+
+#. Translators: this is an option of "GhostScript"
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2834
+msgid "Convert to PS level 1"
+msgstr "PS دەرىجە 1 گە ئايلاندۇر"
+
+#. Translators: this is an option of "GhostScript"
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2836
+msgid "Convert to PS level 2"
+msgstr "PS دەرىجە 2 گە ئايلاندۇر"
+
+#. Translators: this is an option of "GhostScript"
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2838
+msgid "No pre-filtering"
+msgstr "ئالدىن سۈزگۈچ يوق"
+
+#. Translators: "Miscellaneous" is the label for a button, that opens
+#. up an extra panel of settings in a print dialog.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:2847
+msgid "Miscellaneous"
+msgstr "باشقىلار"
+
+#. Translators: These strings name the possible values of the
+#. * job priority option in the print dialog
+#.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
+msgid "Urgent"
+msgstr "جىددىي"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
+msgid "High"
+msgstr "يۇقىرى"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
+msgid "Medium"
+msgstr "ئوتتۇرا"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3567
+msgid "Low"
+msgstr "تۆۋەن"
+
+#. Cups specific, non-ppd related settings
+#. Translators, this string is used to label the pages-per-sheet option
+#. * in the print dialog
+#.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3593
+msgid "Pages per Sheet"
+msgstr "ھەر ۋاراق بەت سانى"
+
+#. Translators, this string is used to label the job priority option
+#. * in the print dialog
+#.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3630
+msgid "Job Priority"
+msgstr "ۋەزىپە ئالدىنلىق"
+
+#. Translators, this string is used to label the billing info entry
+#. * in the print dialog
+#.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3641
+msgid "Billing Info"
+msgstr "ھەق ھېسابلاش ئۇچۇرى"
+
+#. Translators, these strings are names for various 'standard' cover
+#. * pages that the printing system may support.
+#.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
+msgid "None"
+msgstr "يوق"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
+msgid "Classified"
+msgstr "تۈرگە ئايرىلغان"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
+msgid "Confidential"
+msgstr "مەخپىي"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
+msgid "Secret"
+msgstr "سىر"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
+msgid "Standard"
+msgstr "ئۆلچەملىك"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
+msgid "Top Secret"
+msgstr "قەتئىي مەخپىي"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3656
+msgid "Unclassified"
+msgstr "بۆلۈنمىگەن"
+
+#. Translators, this is the label used for the option in the print
+#. * dialog that controls the front cover page.
+#.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3691
+msgid "Before"
+msgstr "ئاۋۋال"
+
+#. Translators, this is the label used for the option in the print
+#. * dialog that controls the back cover page.
+#.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3706
+msgid "After"
+msgstr "كېيىن"
+
+#. Translators: this is the name of the option that controls when
+#. * a print job is printed. Possible values are 'now', a specified time,
+#. * or 'on hold'
+#.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3726
+msgid "Print at"
+msgstr "باسىدۇ"
+
+#. Translators: this is the name of the option that allows the user
+#. * to specify a time when a print job will be printed.
+#.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3737
+msgid "Print at time"
+msgstr "بەلگىلەنگەن ۋاقىتتا باسىدۇ"
+
+#. Translators: this format is used to display a custom paper
+#. * size. The two placeholders are replaced with the width and height
+#. * in points. E.g: "Custom 230.4x142.9"
+#.
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3772
+#, c-format
+msgid "Custom %sx%s"
+msgstr "ئىختىيارى %sx%s"
+
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3853
+msgid "Printer Profile"
+msgstr "پرىنتېر سەپلىمە ھۆججەت"
+
+#. TRANSLATORS: this is when color profile information is unavailable
+#: ../modules/printbackends/cups/gtkprintbackendcups.c:3860
+msgid "Unavailable"
+msgstr "ئىشلەتكىلى بولمايدۇ"
+
+#. default filename used for print-to-file
+#: ../modules/printbackends/file/gtkprintbackendfile.c:250
+#, c-format
+msgid "output.%s"
+msgstr "چىقىش.%s"
+
+#: ../modules/printbackends/file/gtkprintbackendfile.c:501
+msgid "Print to File"
+msgstr "ھۆججەتكە باس"
+
+#: ../modules/printbackends/file/gtkprintbackendfile.c:627
+msgid "PDF"
+msgstr "PDF"
+
+#: ../modules/printbackends/file/gtkprintbackendfile.c:627
+msgid "Postscript"
+msgstr "Postscript"
+
+#: ../modules/printbackends/file/gtkprintbackendfile.c:627
+msgid "SVG"
+msgstr "SVG"
+
+#: ../modules/printbackends/file/gtkprintbackendfile.c:640
+#: ../modules/printbackends/test/gtkprintbackendtest.c:503
+msgid "Pages per _sheet:"
+msgstr "ھەر ۋاراق بەت سانى(_S):"
+
+#: ../modules/printbackends/file/gtkprintbackendfile.c:699
+msgid "File"
+msgstr "ھۆججەت"
+
+#: ../modules/printbackends/file/gtkprintbackendfile.c:709
+msgid "_Output format"
+msgstr "چىقىرىش فورماتى(_O)"
+
+#: ../modules/printbackends/lpr/gtkprintbackendlpr.c:395
+msgid "Print to LPR"
+msgstr "LPR غا باس"
+
+#: ../modules/printbackends/lpr/gtkprintbackendlpr.c:421
+msgid "Pages Per Sheet"
+msgstr "ھەر ۋاراقتىكى بەت سانى"
+
+#: ../modules/printbackends/lpr/gtkprintbackendlpr.c:428
+msgid "Command Line"
+msgstr "بۇيرۇق قۇرى"
+
+#. SUN_BRANDING
+#: ../modules/printbackends/papi/gtkprintbackendpapi.c:811
+msgid "printer offline"
+msgstr "پرىنتېر ئۈزۈك ھالەتتە"
+
+#. SUN_BRANDING
+#: ../modules/printbackends/papi/gtkprintbackendpapi.c:829
+msgid "ready to print"
+msgstr "بېسىشقا تەييار"
+
+#. SUN_BRANDING
+#: ../modules/printbackends/papi/gtkprintbackendpapi.c:832
+msgid "processing job"
+msgstr "ۋەزىپىنى بىر تەرەپ قىلىۋاتىدۇ"
+
+#. SUN_BRANDING
+#: ../modules/printbackends/papi/gtkprintbackendpapi.c:836
+msgid "paused"
+msgstr "ۋاقىتلىق توختىتىلدى"
+
+#. SUN_BRANDING
+#: ../modules/printbackends/papi/gtkprintbackendpapi.c:839
+msgid "unknown"
+msgstr "نامەلۇم"
+
+#. default filename used for print-to-test
+#: ../modules/printbackends/test/gtkprintbackendtest.c:234
+#, c-format
+msgid "test-output.%s"
+msgstr "test-output.%s"
+
+#: ../modules/printbackends/test/gtkprintbackendtest.c:467
+msgid "Print to Test Printer"
+msgstr "سىناق پرىنتېردا باس"
+
+#: ../tests/testfilechooser.c:207
+#, c-format
+msgid "Could not get information for file '%s': %s"
+msgstr "'%s' ھۆججەتنىڭ ئۇچۇرىغا ئېرىشەلمىدى:%s"
+
+#: ../tests/testfilechooser.c:222
+#, c-format
+msgid "Failed to open file '%s': %s"
+msgstr "ھۆججەت «%s» نى ئاچالمىدى: %s"
+
+#: ../tests/testfilechooser.c:267
+#, c-format
+msgid ""
+"Failed to load image '%s': reason not known, probably a corrupt image file"
+msgstr ""
+"'%s' سۈرەتنى يۈكلىيەلمىدى. سەۋەبى  ئېنىق ئەمەس بۇ ھۆججەت بۇزۇلۇپ كەتكەن "
+"بولۇشى مۇمكىن"
+
+#~ msgctxt "throbbing progress animation widget"
+#~ msgid "Spinner"
+#~ msgstr "مىكرو تەڭشەك"
+
+#~ msgid "Provides visual indication of progress"
+#~ msgstr "كۆرۈنمە كۆرسەتكۈچ جەريانى تەمىنلەيدۇ"
+
+#~ msgctxt "light switch widget"
+#~ msgid "Switch"
+#~ msgstr "ئالماشتۇرغۇچ"
+
+#~ msgid "Switches between on and off states"
+#~ msgstr "ئېچىش بىلەن تاقاش ھالىتى ئارىسىدا ئالماشتۇرىدۇ"
+
+#~ msgid "Received invalid color data\n"
+#~ msgstr "ئىناۋەتسىز رەڭ سانلىق-مەلۇماتى تاپشۇرۇۋالدى\n"
+
+#~ msgid "Error loading icon: %s"
+#~ msgstr "سىنبەلگە يۈكلىگەندە خاتالىق كۆرۈلدى: %s"
+
+#~ msgid ""
+#~ "Could not find the icon '%s'. The '%s' theme\n"
+#~ "was not found either, perhaps you need to install it.\n"
+#~ "You can get a copy from:\n"
+#~ "\t%s"
+#~ msgstr ""
+#~ "'%s' سىنبەلگىنى تاپالمىدى. '%s' باش تېمىنىمۇ تاپالمىدى، ئۇنى ئورنىتىشىڭىز "
+#~ "زۆرۈردەك قىلىدۇ. ئۇنىڭ كۆچۈرۈلمە نۇسخىسىنى تۆۋەندىكى ئادرېستىن "
+#~ "تاپالايسىز:\n"
+#~ "%s"
+
+#~ msgid "Unable to locate image file in pixmap_path: \"%s\""
+#~ msgstr "پىكسېل رەسىم يولىدىن رەسىم ھۆججىتى تېپىلمىدى:“%s”"
+
+#~ msgid "This function is not implemented for widgets of class '%s'"
+#~ msgstr "فۇنكسىيە “%s” تۈردىكى تۇلۇقتا ئەمەلگە ئاشمايدۇ"
+
+#~ msgid "different idatas found for symlinked '%s' and '%s'\n"
+#~ msgstr "ھەرپ بەلگە ئۇلىنىش “%s”بىلەن“%s” ئىشلەتكەن idatas ئوخشىمايدۇ\n"
index 2a74ceb701ebdcc4635515d3ad1f4f6cacaebe6e..7bed9b251dcc4e17f4aa393dc1a536f49e54d826 100644 (file)
@@ -1,7 +1,7 @@
 ## Makefile.am for gtk+/tests
 include $(top_srcdir)/Makefile.decl
 
-SUBDIRS = css reftests
+SUBDIRS = css reftests a11y
 
 INCLUDES =                             \
        -I$(top_srcdir)                 \
diff --git a/tests/a11y/Makefile.am b/tests/a11y/Makefile.am
new file mode 100644 (file)
index 0000000..d3fb9ab
--- /dev/null
@@ -0,0 +1,62 @@
+include $(top_srcdir)/Makefile.decl
+
+check_PROGRAMS = $(TEST_PROGS)
+
+AM_CPPFLAGS =                          \
+       -I$(top_srcdir)                 \
+       -I$(top_builddir)/gdk           \
+       -I$(top_srcdir)/gdk             \
+       -DGDK_DISABLE_DEPRECATED        \
+       -DGTK_DISABLE_DEPRECATED        \
+       -DGTK_VERSION=\"$(GTK_VERSION)\"\
+       $(GTK_DEBUG_FLAGS)              \
+       $(GTK_DEP_CFLAGS)
+
+LDADD = \
+       $(top_builddir)/gdk/libgdk-3.la \
+       $(top_builddir)/gtk/libgtk-3.la \
+       $(GTK_DEP_LIBS)
+
+TEST_PROGS += accessibility-dump
+
+TEST_PROGS += tree-performance
+
+TEST_PROGS += text
+
+TEST_PROGS += children
+
+TEST_PROGS += focus
+
+TEST_PROGS += util
+
+noinst_PROGS = testfocus
+
+EXTRA_DIST += \
+       hello-world.ui hello-world.txt \
+       mnemonic.ui mnemonic.txt \
+       accessible-name.ui accessible-name.txt \
+       notebook.ui notebook.txt \
+       range.ui range.txt \
+       link.ui link.txt \
+       text.ui text.txt \
+       tree.ui tree.txt \
+       buttons.ui buttons.txt \
+       colorchooser.ui colorchooser.txt \
+       about.ui about.txt \
+       appchooser.ui appchooser.txt \
+       messagedialog.ui messagedialog.txt \
+       expander.ui expander.txt \
+       assistant.ui assistant.txt \
+       pickers.ui pickers.txt \
+       lockbutton.ui lockbutton.txt \
+       spinner.ui spinner.txt \
+       progress.ui progress.txt \
+       infobar.ui infobar.txt \
+       calendar.ui calendar.txt \
+       statusbar.ui statusbar.txt \
+       paned.ui paned.txt \
+       iconview.ui iconview.txt \
+       entries.ui entries.txt \
+       scale-drawvalue.ui scale-drawvalue.txt \
+       placeholder-text.ui placeholder-text.txt \
+       menu.ui menu.txt
diff --git a/tests/a11y/README b/tests/a11y/README
new file mode 100644 (file)
index 0000000..434b0d7
--- /dev/null
@@ -0,0 +1,18 @@
+accessibility-dump is a test runner that can do tests of static
+accessibility information. Run it like this:
+
+./accessibility-dump [OPTIONS] TESTFILE [TESTFILES...]
+
+where TESTFILE is a GtkBuilder .ui file. accessibility-dump creates
+a textual dump of the accessibility information for the created
+widget hierarchy and compares it to a preexisting .txt file.
+
+To create an initial dump, you can use the --generate option with
+a single .ui file. You should carefully inspect the output before
+blessing it as the official .txt to compare against.
+
+To find out details about a failure, you can use the --verbose
+option to see differences between expected and actual output.
+
+When run without any arguments, all the .ui files in the current
+directory are tested.
diff --git a/tests/a11y/about.txt b/tests/a11y/about.txt
new file mode 100644 (file)
index 0000000..21274e2
--- /dev/null
@@ -0,0 +1,366 @@
+window1
+  "dialog"
+  index: 0
+  name: About FancyPants
+  state: enabled sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  unnamed-GtkBoxAccessible-0
+    "filler"
+    parent: window1
+    index: 0
+    state: enabled sensitive showing vertical visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    unnamed-GtkBoxAccessible-1
+      "filler"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 0
+      state: enabled sensitive showing vertical visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      unnamed-GtkImageAccessible-2
+        "icon"
+        parent: unnamed-GtkBoxAccessible-1
+        index: 0
+        state: enabled sensitive showing visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: -1 x -1
+        image description: (null)
+      FancyPants
+        "label"
+        parent: unnamed-GtkBoxAccessible-1
+        index: 1
+        name: FancyPants
+        state: enabled focusable multi-line sensitive showing visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkText>
+        text: FancyPants
+        character count: 10
+        caret offset: 0
+        default attributes: bg-color: <omitted>
+                            bg-full-height: 0
+                            direction: <omitted>
+                            editable: false
+                            family-name: <omitted>
+                            fg-color: <omitted>
+                            indent: 0
+                            invisible: false
+                            justification: center
+                            language: <omitted>
+                            left-margin: 0
+                            pixels-above-lines: 0
+                            pixels-below-lines: 0
+                            pixels-inside-wrap: 0
+                            right-margin: 0
+                            rise: 0
+                            scale: 1
+                            size: <omitted>
+                            stretch: <omitted>
+                            strikethrough: false
+                            style: <omitted>
+                            underline: none
+                            variant: <omitted>
+                            weight: <omitted>
+                            wrap-mode: word
+      unnamed-GtkNotebookAccessible-3
+        "page tab list"
+        parent: unnamed-GtkBoxAccessible-1
+        index: 2
+        state: enabled sensitive showing visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkSelection>
+        selected children: unnamed-GtkNotebookPageAccessible-4
+        unnamed-GtkNotebookPageAccessible-4
+          "page tab"
+          parent: unnamed-GtkNotebookAccessible-3
+          index: 0
+          state: enabled selectable selected showing visible
+          <AtkComponent>
+          layer: widget
+          alpha: 1
+          unnamed-GtkBoxAccessible-5
+            "filler"
+            index: 0
+            state: enabled sensitive showing vertical visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: widget
+            alpha: 1
+            0.99
+              "label"
+              parent: unnamed-GtkBoxAccessible-5
+              index: 0
+              name: 0.99
+              state: enabled focusable multi-line sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: 0.99
+              character count: 4
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: center
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+            comments
+              "label"
+              parent: unnamed-GtkBoxAccessible-5
+              index: 1
+              name: comments
+              state: enabled focusable multi-line sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: comments
+              character count: 8
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: center
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+            unnamed-GtkBoxAccessible-6
+              "filler"
+              parent: unnamed-GtkBoxAccessible-5
+              index: 2
+              state: enabled horizontal sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              Homepage
+                "label"
+                parent: unnamed-GtkBoxAccessible-6
+                index: 0
+                name: Homepage
+                state: enabled focusable multi-line sensitive showing visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                <AtkText>
+                text: Homepage
+                character count: 8
+                caret offset: 0
+                default attributes: bg-color: <omitted>
+                                    bg-full-height: 0
+                                    direction: <omitted>
+                                    editable: false
+                                    family-name: <omitted>
+                                    fg-color: <omitted>
+                                    indent: 0
+                                    invisible: false
+                                    justification: left
+                                    language: <omitted>
+                                    left-margin: 0
+                                    pixels-above-lines: 0
+                                    pixels-below-lines: 0
+                                    pixels-inside-wrap: 0
+                                    right-margin: 0
+                                    rise: 0
+                                    scale: 1
+                                    size: <omitted>
+                                    stretch: <omitted>
+                                    strikethrough: false
+                                    style: <omitted>
+                                    underline: none
+                                    variant: <omitted>
+                                    weight: <omitted>
+                                    wrap-mode: word
+            no comments
+              "label"
+              parent: unnamed-GtkBoxAccessible-5
+              index: 3
+              name: no comments
+              state: enabled focusable multi-line sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: no comments
+              character count: 11
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: center
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+            This program comes with ABSOLUTELY NO WARRANTY; for details, visit http://www.gnu.org/licenses/gpl.html
+              "label"
+              parent: unnamed-GtkBoxAccessible-5
+              index: 4
+              name: This program comes with ABSOLUTELY NO WARRANTY; for details, visit http://www.gnu.org/licenses/gpl.html
+              state: enabled focusable multi-line sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: This program comes with ABSOLUTELY NO WARRANTY; for details, visit http://www.gnu.org/licenses/gpl.html
+              character count: 103
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: center
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+    unnamed-GtkBoxAccessible-7
+      "filler"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 1
+      state: enabled horizontal sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      unnamed-GtkToggleButtonAccessible-8
+        "toggle button"
+        parent: unnamed-GtkBoxAccessible-7
+        index: 0
+        name: License
+        state: enabled focusable sensitive
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: -1 x -1
+        image description: (null)
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: <Alt>l
+      unnamed-GtkToggleButtonAccessible-9
+        "toggle button"
+        parent: unnamed-GtkBoxAccessible-7
+        index: 1
+        name: Credits
+        state: enabled focusable sensitive
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: 20 x 20
+        image description: (null)
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: <Alt>r
+      unnamed-GtkButtonAccessible-10
+        "push button"
+        parent: unnamed-GtkBoxAccessible-7
+        index: 2
+        name: Close
+        state: enabled focusable sensitive showing visible default
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: 20 x 20
+        image description: (null)
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: <Alt>c
diff --git a/tests/a11y/about.ui b/tests/a11y/about.ui
new file mode 100644 (file)
index 0000000..baf99f3
--- /dev/null
@@ -0,0 +1,12 @@
+
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkAboutDialog" id="window1">
+    <property name="program-name">FancyPants</property>
+    <property name="version">0.99</property>
+    <property name="copyright">no comments</property>
+    <property name="comments">comments</property>
+    <property name="license-type">gpl-3-0</property>
+    <property name="website">http://www.gtk.org</property>
+  </object>
+</interface>
diff --git a/tests/a11y/accessibile-name.txt b/tests/a11y/accessibile-name.txt
new file mode 100644 (file)
index 0000000..27d9076
--- /dev/null
@@ -0,0 +1,44 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gail
+  button1
+    "push button"
+    parent: window1
+    index: 0
+    name: Accessible name
+    state: enabled focusable sensitive showing visible
+    toolkit: gail
+    text: Hello World!
+    character count: 12
+    caret offset: 0
+    default attributes: left-margin: 0
+                        right-margin: 0
+                        indent: 0
+                        invisible: false
+                        editable: false
+                        pixels-above-lines: 0
+                        pixels-below-lines: 0
+                        pixels-inside-wrap: 0
+                        bg-full-height: 0
+                        scale: 1
+                        rise: 0
+                        underline: none
+                        strikethrough: false
+                        bg-stipple: false
+                        fg-stipple: false
+                        fg-color: <omitted>
+                        bg-color: <omitted>
+                        wrap-mode: word
+                        justification: left
+                        size: <omitted>
+                        weight: <omitted>
+                        family-name: <omitted>
+                        stretch: <omitted>
+                        variant: <omitted>
+                        style: <omitted>
+                        language: <omitted>
+                        direction: <omitted>
+    image size: -1 x -1
+    image description: (null)
diff --git a/tests/a11y/accessibility-dump.c b/tests/a11y/accessibility-dump.c
new file mode 100644 (file)
index 0000000..0901997
--- /dev/null
@@ -0,0 +1,867 @@
+/*
+ * Copyright (C) 2011 Red Hat Inc.
+ *
+ * Author:
+ *      Benjamin Otte <otte@redhat.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include "config.h"
+
+#include <string.h>
+#include <glib/gstdio.h>
+#include <gtk/gtk.h>
+
+#define DEPTH_INCREMENT 2
+
+static char *
+get_test_file (const char *test_file,
+               const char *extension,
+               gboolean    must_exist)
+{
+  GString *file = g_string_new (NULL);
+
+  if (g_str_has_suffix (test_file, ".ui"))
+    g_string_append_len (file, test_file, strlen (test_file) - strlen (".ui"));
+  else
+    g_string_append (file, test_file);
+  
+  g_string_append (file, extension);
+
+  if (must_exist &&
+      !g_file_test (file->str, G_FILE_TEST_EXISTS))
+    {
+      g_string_free (file, TRUE);
+      return NULL;
+    }
+
+  return g_string_free (file, FALSE);
+}
+
+static char *
+diff_with_file (const char  *file1,
+                char        *text,
+                gssize       len,
+                GError     **error)
+{
+  const char *command[] = { "diff", "-u", file1, NULL, NULL };
+  char *diff, *tmpfile;
+  int fd;
+
+  diff = NULL;
+
+  if (len < 0)
+    len = strlen (text);
+  
+  /* write the text buffer to a temporary file */
+  fd = g_file_open_tmp (NULL, &tmpfile, error);
+  if (fd < 0)
+    return NULL;
+
+  if (write (fd, text, len) != (int) len)
+    {
+      close (fd);
+      g_set_error (error,
+                   G_FILE_ERROR, G_FILE_ERROR_FAILED,
+                   "Could not write data to temporary file '%s'", tmpfile);
+      goto done;
+    }
+  close (fd);
+  command[3] = tmpfile;
+
+  /* run diff command */
+  g_spawn_sync (NULL,
+                (char **) command,
+                NULL,
+                G_SPAWN_SEARCH_PATH,
+                NULL, NULL,
+               &diff,
+                NULL, NULL,
+                error);
+
+done:
+  g_unlink (tmpfile);
+  g_free (tmpfile);
+
+  return diff;
+}
+
+static int unnamed_object_count;
+
+static void
+setup_test (void)
+{
+  unnamed_object_count = 0;
+}
+
+static const char *
+get_name (AtkObject *accessible)
+{
+  char *name;
+
+  name = g_object_get_data (G_OBJECT (accessible), "gtk-accessibility-dump-name");
+  if (name)
+    return name;
+
+  if (GTK_IS_ACCESSIBLE (accessible))
+    {
+      GtkWidget *widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (accessible));
+
+      name = g_strdup (gtk_buildable_get_name (GTK_BUILDABLE (widget)));
+    }
+
+  if (name == NULL && ATK_IS_TEXT (accessible))
+    {
+      name = atk_text_get_text (ATK_TEXT (accessible), 0, -1);
+    }
+
+  if (name == NULL)
+    {
+      /* Generate a unique, repeatable name */
+      name = g_strdup_printf ("unnamed-%s-%d", G_OBJECT_TYPE_NAME (accessible), unnamed_object_count++);
+    }
+
+  g_object_set_data_full (G_OBJECT (accessible), "gtk-accessibility-dump-name", name, g_free);
+  return name;
+}
+
+static void
+dump_relation (GString     *string,
+               guint        depth,
+               AtkRelation *relation)
+{
+  GPtrArray *targets;
+  const char *name;
+  guint i;
+
+  targets = atk_relation_get_target (relation);
+  if (targets == NULL || targets->len == 0)
+    return;
+
+  name = atk_relation_type_get_name (atk_relation_get_relation_type (relation));
+  g_string_append_printf (string, "%*s%s: %s\n", depth, "", name, get_name (g_ptr_array_index (targets, 0)));
+  depth += strlen (name) + 2;
+
+  for (i = 1; i < targets->len; i++)
+    {
+      g_string_append_printf (string, "%*s%s\n", depth, "", get_name (g_ptr_array_index (targets, i)));
+    }
+}
+
+static void
+dump_relation_set (GString        *string,
+                   guint           depth,
+                   AtkRelationSet *set)
+{
+  guint i;
+
+  if (set == NULL)
+    return;
+
+  for (i = 0; i < atk_relation_set_get_n_relations (set); i++)
+    {
+      AtkRelation *relation;
+      
+      relation = atk_relation_set_get_relation (set, i);
+
+      dump_relation (string, depth, relation);
+    }
+
+  g_object_unref (set);
+}
+
+static void
+dump_state_set (GString     *string,
+                guint        depth,
+                AtkStateSet *set)
+{
+  guint i;
+
+  if (set == NULL)
+    return;
+
+  if (!atk_state_set_is_empty (set))
+    {
+      g_string_append_printf (string, "%*sstate:", depth, "");
+      for (i = 0; i < ATK_STATE_LAST_DEFINED; i++)
+        {
+          if (atk_state_set_contains_state (set, i))
+            g_string_append_printf (string, " %s", atk_state_type_get_name (i));
+        }
+      g_string_append_c (string, '\n');
+    }
+
+  g_object_unref (set);
+}
+
+static void
+dump_attribute (GString      *string,
+                guint         depth,
+                AtkAttribute *attribute)
+{
+  g_string_append_printf (string, "%*s%s: %s\n", depth, "", attribute->name, attribute->value);
+}
+
+static void
+dump_attribute_set (GString         *string,
+                    guint            depth,
+                    AtkAttributeSet *set)
+{
+  GSList *l;
+  AtkAttribute *attribute;
+
+  for (l = set; l; l = l->next)
+    {
+      attribute = l->data;
+
+      dump_attribute (string, depth, attribute);
+    }
+}
+
+static gint
+compare_attr (gconstpointer a, gconstpointer b)
+{
+  const AtkAttribute *aattr = a;
+  const AtkAttribute *battr = b;
+
+  return strcmp (aattr->name, battr->name);
+}
+
+static void
+dump_text_attributes (GString         *string,
+                      gint             depth,
+                      const gchar     *name,
+                      AtkAttributeSet *attributes)
+{
+  GSList *l;
+  AtkAttribute *attr;
+  const gchar *value;
+
+  if (attributes == NULL)
+    return;
+
+  attributes = g_slist_sort (attributes, compare_attr);
+
+  for (l = attributes; l; l = l->next)
+    {
+      attr = l->data;
+      /* don't dump values that depend on the environment */
+      if (strcmp (attr->name, "family-name") == 0 ||
+          strcmp (attr->name, "size") == 0 ||
+          strcmp (attr->name, "weight") == 0 ||
+          strcmp (attr->name, "stretch") == 0 ||
+          strcmp (attr->name, "variant") == 0 ||
+          strcmp (attr->name, "style") == 0 ||
+          strcmp (attr->name, "language") == 0 ||
+          strcmp (attr->name, "fg-color") == 0 ||
+          strcmp (attr->name, "bg-color") == 0 ||
+          strcmp (attr->name, "direction") == 0)
+        value = "<omitted>";
+      else
+        value = attr->value;
+
+      if (name)
+        {
+          /* first time this loop is run */
+          g_string_append_printf (string, "%*s%s: %s: %s\n", depth, "", name, attr->name, value);
+          depth += strlen (name) + 2;
+          name = NULL;
+        }
+      else
+        {
+          /* every other time */
+          g_string_append_printf (string, "%*s%s: %s\n", depth, "", attr->name, value);
+        }
+    }
+
+  atk_attribute_set_free (attributes);
+}
+
+extern GType atk_layer_get_type (void);
+
+static const gchar *
+layer_name (AtkLayer layer)
+{
+  GEnumClass *class;
+  GEnumValue *value;
+
+  class = g_type_class_ref (atk_layer_get_type ());
+  value = g_enum_get_value (class, layer);
+  g_type_class_unref (class);
+
+  return value->value_nick;
+}
+
+static void
+dump_atk_component (AtkComponent *atk_component,
+                    guint         depth,
+                    GString      *string)
+{
+  AtkLayer layer;
+
+  g_string_append_printf (string, "%*s<AtkComponent>\n", depth, "");
+
+  layer = atk_component_get_layer (atk_component);
+  g_string_append_printf (string, "%*slayer: %s\n", depth, "", layer_name (layer));
+
+  g_string_append_printf (string, "%*salpha: %g\n", depth, "", atk_component_get_alpha (atk_component));
+}
+
+static void
+dump_atk_text (AtkText *atk_text,
+               guint    depth,
+               GString *string)
+{
+  gchar *text;
+  gint i, start, end;
+
+  g_string_append_printf (string, "%*s<AtkText>\n", depth, "");
+
+  text = atk_text_get_text (atk_text, 0, -1);
+  g_string_append_printf (string, "%*stext: %s\n", depth, "", text);
+  g_free (text);
+
+  g_string_append_printf (string, "%*scharacter count: %d\n", depth, "", atk_text_get_character_count (atk_text));
+
+  g_string_append_printf (string, "%*scaret offset: %d\n", depth, "", atk_text_get_caret_offset (atk_text));
+
+  for (i = 0; i < atk_text_get_n_selections (atk_text); i++)
+    {
+      text = atk_text_get_selection (atk_text, i, &start, &end);
+      if (text)
+        g_string_append_printf (string, "%*sselection %d: (%d, %d) %s\n", depth, "", i, start, end, text);
+      g_free (text);
+    }
+
+  dump_text_attributes (string, depth, "default attributes", atk_text_get_default_attributes (atk_text));
+}
+
+static void
+dump_atk_image (AtkImage *atk_image,
+                guint     depth,
+                GString  *string)
+{
+  gint width, height;
+
+  g_string_append_printf (string, "%*s<AtkImage>\n", depth, "");
+
+  atk_image_get_image_size (atk_image, &width, &height);
+  g_string_append_printf (string, "%*simage size: %d x %d\n", depth, "", width, height);
+
+  g_string_append_printf (string, "%*simage description: %s\n", depth, "", atk_image_get_image_description (atk_image));
+}
+
+static void
+dump_atk_action (AtkAction *atk_action,
+                 guint      depth,
+                 GString   *string)
+{
+  gint i;
+
+  g_string_append_printf (string, "%*s<AtkAction>\n", depth, "");
+
+  for (i = 0; i < atk_action_get_n_actions (atk_action); i++)
+    {
+      if (atk_action_get_name (atk_action, i))
+        g_string_append_printf (string, "%*saction %d name: %s\n", depth, "", i, atk_action_get_name (atk_action, i));
+      if (atk_action_get_description (atk_action, i))
+        g_string_append_printf (string, "%*saction %d description: %s\n", depth, "", i, atk_action_get_description (atk_action, i));
+      if (atk_action_get_keybinding (atk_action, i))
+        g_string_append_printf (string, "%*saction %d keybinding: %s\n", depth, "", i, atk_action_get_keybinding (atk_action, i));
+    }
+}
+
+static void
+dump_atk_selection (AtkSelection *atk_selection,
+                    guint         depth,
+                    GString      *string)
+{
+  guint n_selections, n_counted_selections;
+  gint i;
+
+  g_string_append_printf (string, "%*s<AtkSelection>\n", depth, "");
+
+  n_selections = atk_selection_get_selection_count (atk_selection);
+
+  n_counted_selections = 0;
+  for (i = 0; i < atk_object_get_n_accessible_children (ATK_OBJECT (atk_selection)); i++)
+    {
+      if (atk_selection_is_child_selected (atk_selection, i))
+        {
+          AtkObject *object = atk_object_ref_accessible_child (ATK_OBJECT (atk_selection), i);
+          
+          g_assert (object);
+          
+          if (n_counted_selections == 0)
+            {
+              g_string_append_printf (string, "%*sselected children: %s\n", depth, "", get_name (object));
+              depth += strlen ("selected children: ");
+            }
+          else
+            g_string_append_printf (string, "%*s%s\n", depth, "", get_name (object));
+          n_counted_selections++;
+        }
+    }
+  
+  g_assert_cmpint (n_selections, ==, n_counted_selections);
+  g_assert_cmpint (n_selections, ==, atk_selection_get_selection_count (atk_selection));
+}
+
+static void
+dump_atk_value (AtkValue *atk_value,
+                guint     depth,
+                GString  *string)
+{
+  GValue value = { 0, };
+  GValue svalue = { 0, };
+
+  g_string_append_printf (string, "%*s<AtkValue>\n", depth, "");
+
+  g_value_init (&value, G_TYPE_DOUBLE);
+  g_value_init (&svalue, G_TYPE_STRING);
+
+  atk_value_get_minimum_value (atk_value, &value);
+  if (g_value_transform (&value, &svalue))
+    g_string_append_printf (string, "%*sminimum value: %s\n", depth, "", g_value_get_string (&svalue));
+  else
+    g_string_append_printf (string, "%*sminimum value: <%s>\n", depth, "", G_VALUE_TYPE_NAME (&value));
+
+  g_value_reset (&value);
+  g_value_reset (&svalue);
+
+  atk_value_get_maximum_value (atk_value, &value);
+  if (g_value_transform (&value, &svalue))
+    g_string_append_printf (string, "%*smaximum value: %s\n", depth, "", g_value_get_string (&svalue));
+  else
+    g_string_append_printf (string, "%*smaximum value: <%s>\n", depth, "", G_VALUE_TYPE_NAME (&value));
+
+  g_value_reset (&value);
+  g_value_reset (&svalue);
+
+  atk_value_get_current_value (atk_value, &value);
+  if (g_value_transform (&value, &svalue))
+    g_string_append_printf (string, "%*scurrent value: %s\n", depth, "", g_value_get_string (&svalue));
+  else
+    g_string_append_printf (string, "%*scurrent value: %s\n", depth, "", G_VALUE_TYPE_NAME (&value));
+
+  g_value_reset (&value);
+  g_value_reset (&svalue);
+
+  atk_value_get_minimum_increment (atk_value, &value);
+  if (g_value_transform (&value, &svalue))
+    g_string_append_printf (string, "%*sminimum increment: %s\n", depth, "", g_value_get_string (&svalue));
+  else
+    g_string_append_printf (string, "%*sminimum increment: %s\n", depth, "", G_VALUE_TYPE_NAME (&value));
+
+  g_value_reset (&value);
+  g_value_reset (&svalue);
+}
+
+static void
+dump_atk_hyperlink_impl (AtkHyperlinkImpl *impl,
+                         guint             depth,
+                         GString          *string)
+{
+  AtkHyperlink *atk_link;
+  gint i;
+
+  g_string_append_printf (string, "%*s<AtkHyperlinkImpl>\n", depth, "");
+
+  atk_link = atk_hyperlink_impl_get_hyperlink (impl);
+
+  g_string_append_printf (string, "%*sanchors:", depth, "");
+
+  for (i = 0; i < atk_hyperlink_get_n_anchors (atk_link); i++)
+    {
+      gchar *uri;
+
+      uri = atk_hyperlink_get_uri (atk_link, i);
+      g_string_append_printf (string, " %s", uri);
+      g_free (uri);
+    }
+  g_string_append_c (string, '\n');
+
+  g_object_unref (atk_link);
+}
+
+static void
+dump_atk_streamable_content (AtkStreamableContent *content,
+                             guint                 depth,
+                             GString              *string)
+{
+  gint i;
+
+  g_string_append_printf (string, "%*s<AtkStreamableContent>\n", depth, "");
+
+  g_string_append_printf (string, "%*smime types:", depth, "");
+  for (i = 0; i < atk_streamable_content_get_n_mime_types (content); i++)
+    g_string_append_printf (string, " %s", atk_streamable_content_get_mime_type (content, i));
+  g_string_append_c (string, '\n');
+}
+
+static void dump_accessible (AtkObject *accessible,
+                             guint      depth,
+                             GString   *string);
+
+static void
+dump_atk_table (AtkTable *table,
+                guint     depth,
+                GString  *string)
+{
+  gint *selected;
+  gint n_selected;
+  gint i;
+  AtkObject *obj;
+  const gchar *desc;
+
+  g_string_append_printf (string, "%*s<AtkTable>\n", depth, "");
+
+  obj = atk_table_get_summary (table);
+  if (obj)
+    {
+      g_string_append_printf (string, "%*s<summary>\n", depth, "");
+      dump_accessible (obj, depth, string);
+    }
+
+  obj = atk_table_get_caption (table);
+  if (obj)
+    {
+      g_string_append_printf (string, "%*s<caption>\n", depth, "");
+      dump_accessible (obj, depth, string);
+    }
+
+  g_string_append_printf (string, "%*srows: %d\n", depth, "", atk_table_get_n_rows (table));
+  g_string_append_printf (string, "%*scolumns: %d\n", depth, "", atk_table_get_n_columns (table));
+
+  selected = NULL;
+  n_selected = atk_table_get_selected_rows (table, &selected);
+  if (n_selected > 0)
+    {
+      g_string_append_printf (string, "%*sselected rows:", depth, "");
+      for (i = 0; i < n_selected; i++)
+        g_string_append_printf (string, " %d", selected[i]);
+      g_string_append_c (string, '\n');
+    }
+  g_free (selected);
+
+  selected = NULL;
+  n_selected = atk_table_get_selected_columns (table, &selected);
+  if (n_selected > 0)
+    {
+      g_string_append_printf (string, "%*sselected columns:", depth, "");
+      for (i = 0; i < n_selected; i++)
+        g_string_append_printf (string, " %d", selected[i]);
+      g_string_append_c (string, '\n');
+    }
+  g_free (selected);
+
+  
+  for (i = 0; i < atk_table_get_n_columns (table); i++)
+    {
+      desc = atk_table_get_column_description (table, i);
+      if (desc)
+        g_string_append_printf (string, "%*scolumn %d description: %s\n", depth, "", i, desc);
+      obj = atk_table_get_column_header (table, i);
+      if (obj)
+        {
+          g_string_append_printf (string, "%*s<column %d header>\n", depth, "", i);
+          dump_accessible (obj, depth, string);
+        }
+    }
+
+  for (i = 0; i < atk_table_get_n_rows (table); i++)
+    {
+      desc = atk_table_get_row_description (table, i);
+      if (desc)
+        g_string_append_printf (string, "%*srow %d description: %s\n", depth, "", i, desc);
+      obj = atk_table_get_row_header (table, i);
+      if (obj)
+        {
+          g_string_append_printf (string, "%*s<row %d header>\n", depth, "", i);
+          dump_accessible (obj, depth, string);
+        }
+    }
+}
+
+static void
+dump_accessible (AtkObject     *accessible,
+                 guint          depth,
+                 GString       *string)
+{
+  guint i;
+
+  g_string_append_printf (string, "%*s%s\n", depth, "", get_name (accessible));
+  depth += DEPTH_INCREMENT;
+
+  g_string_append_printf (string, "%*s\"%s\"\n", depth, "", atk_role_get_name (atk_object_get_role (accessible)));
+  if (GTK_IS_ACCESSIBLE (atk_object_get_parent (accessible)))
+    g_string_append_printf (string, "%*sparent: %s\n", depth, "", get_name (atk_object_get_parent (accessible)));
+  if (atk_object_get_index_in_parent (accessible) != -1)
+    g_string_append_printf (string, "%*sindex: %d\n", depth, "", atk_object_get_index_in_parent (accessible));
+  if (atk_object_get_name (accessible))
+    g_string_append_printf (string, "%*sname: %s\n", depth, "", atk_object_get_name (accessible));
+  if (atk_object_get_description (accessible))
+    g_string_append_printf (string, "%*sdescription: %s\n", depth, "", atk_object_get_description (accessible));
+  dump_relation_set (string, depth, atk_object_ref_relation_set (accessible));
+  dump_state_set (string, depth, atk_object_ref_state_set (accessible));
+  dump_attribute_set (string, depth, atk_object_get_attributes (accessible));
+
+  if (ATK_IS_COMPONENT (accessible))
+    dump_atk_component (ATK_COMPONENT (accessible), depth, string);
+
+  if (ATK_IS_TEXT (accessible))
+    dump_atk_text (ATK_TEXT (accessible), depth, string);
+
+  if (ATK_IS_IMAGE (accessible))
+    dump_atk_image (ATK_IMAGE (accessible), depth, string);
+
+  if (ATK_IS_ACTION (accessible))
+    dump_atk_action (ATK_ACTION (accessible), depth, string);
+
+  if (ATK_IS_SELECTION (accessible))
+    dump_atk_selection (ATK_SELECTION (accessible), depth, string);
+
+  if (ATK_IS_VALUE (accessible))
+    dump_atk_value (ATK_VALUE (accessible), depth, string);
+
+  if (ATK_IS_HYPERLINK_IMPL (accessible))
+    dump_atk_hyperlink_impl (ATK_HYPERLINK_IMPL (accessible), depth, string);
+
+  if (ATK_IS_STREAMABLE_CONTENT (accessible))
+    dump_atk_streamable_content (ATK_STREAMABLE_CONTENT (accessible), depth, string);
+
+  if (ATK_IS_TABLE (accessible))
+    dump_atk_table (ATK_TABLE (accessible), depth, string);
+
+  for (i = 0; i < atk_object_get_n_accessible_children (accessible); i++)
+    {
+      AtkObject *child = atk_object_ref_accessible_child (accessible, i);
+      dump_accessible (child, depth, string);
+      g_object_unref (child);
+    }
+}
+
+static GtkWidget *
+builder_get_toplevel (GtkBuilder *builder)
+{
+  GSList *list, *walk;
+  GtkWidget *window = NULL;
+
+  list = gtk_builder_get_objects (builder);
+  for (walk = list; walk; walk = walk->next)
+    {
+      if (GTK_IS_WINDOW (walk->data) &&
+          gtk_widget_get_parent (walk->data) == NULL)
+        {
+          window = walk->data;
+          break;
+        }
+    }
+  
+  g_slist_free (list);
+
+  return window;
+}
+
+static void
+dump_ui_file (const char *ui_file,
+              GString *string)
+{
+  GtkWidget *window;
+  GtkBuilder *builder;
+  GError *error = NULL;
+
+  builder = gtk_builder_new ();
+  gtk_builder_add_from_file (builder, ui_file, &error);
+  g_assert_no_error (error);
+  window = builder_get_toplevel (builder);
+  g_object_unref (builder);
+  g_assert (window);
+
+  gtk_widget_show (window);
+
+  dump_accessible (gtk_widget_get_accessible (window), 0, string);
+  gtk_widget_destroy (window);
+}
+
+static void
+dump_to_stdout (GFile *file)
+{
+  char *ui_file;
+  GString *dump;
+
+  ui_file = g_file_get_path (file);
+  dump = g_string_new ("");
+
+  dump_ui_file (ui_file, dump);
+  g_print ("%s", dump->str);
+
+  g_string_free (dump, TRUE);
+  g_free (ui_file);
+}
+
+static void
+test_ui_file (GFile *file)
+{
+  char *ui_file, *a11y_file;
+  GString *dump;
+  GError *error = NULL;
+
+  ui_file = g_file_get_path (file);
+  a11y_file = get_test_file (ui_file, ".txt", TRUE);
+  dump = g_string_new ("");
+
+  dump_ui_file (ui_file, dump);
+
+  if (a11y_file)
+    {
+      char *diff = diff_with_file (a11y_file, dump->str, dump->len, &error);
+      g_assert_no_error (error);
+
+      if (diff && diff[0])
+        {
+          g_test_message ("Contents don't match expected contents:\n%s", diff);
+          g_test_fail ();
+          g_free (diff);
+        }
+    }
+  else if (dump->str[0])
+    {
+      g_test_message ("Expected a reference file:\n%s", dump->str);
+      g_test_fail ();
+    }
+
+  g_string_free (dump, TRUE);
+  g_free (a11y_file);
+  g_free (ui_file);
+}
+
+static void
+add_test_for_file (GFile *file)
+{
+  g_test_add_vtable (g_file_get_path (file),
+                     0,
+                     g_object_ref (file),
+                     (GTestFixtureFunc) setup_test,
+                     (GTestFixtureFunc) test_ui_file,
+                     (GTestFixtureFunc) g_object_unref);
+}
+
+static int
+compare_files (gconstpointer a, gconstpointer b)
+{
+  GFile *file1 = G_FILE (a);
+  GFile *file2 = G_FILE (b);
+  char *path1, *path2;
+  int result;
+
+  path1 = g_file_get_path (file1);
+  path2 = g_file_get_path (file2);
+
+  result = strcmp (path1, path2);
+
+  g_free (path1);
+  g_free (path2);
+
+  return result;
+}
+
+static void
+add_tests_for_files_in_directory (GFile *dir)
+{
+  GFileEnumerator *enumerator;
+  GFileInfo *info;
+  GList *files;
+  GError *error = NULL;
+
+  enumerator = g_file_enumerate_children (dir, G_FILE_ATTRIBUTE_STANDARD_NAME, 0, NULL, &error);
+  g_assert_no_error (error);
+  files = NULL;
+
+  while ((info = g_file_enumerator_next_file (enumerator, NULL, &error)))
+    {
+      const char *filename;
+
+      filename = g_file_info_get_name (info);
+
+      if (!g_str_has_suffix (filename, ".ui"))
+        {
+          g_object_unref (info);
+          continue;
+        }
+
+      files = g_list_prepend (files, g_file_get_child (dir, filename));
+
+      g_object_unref (info);
+    }
+  
+  g_assert_no_error (error);
+  g_object_unref (enumerator);
+
+  files = g_list_sort (files, compare_files);
+  g_list_foreach (files, (GFunc) add_test_for_file, NULL);
+  g_list_free_full (files, g_object_unref);
+}
+
+int
+main (int argc, char **argv)
+{
+  gtk_test_init (&argc, &argv);
+
+  if (argc < 2)
+    {
+      const char *basedir;
+      GFile *dir;
+
+      if (g_getenv ("srcdir"))
+        basedir = g_getenv ("srcdir");
+      else
+        basedir = ".";
+        
+      dir = g_file_new_for_path (basedir);
+      
+      add_tests_for_files_in_directory (dir);
+
+      g_object_unref (dir);
+    }
+  else if (argc == 3 && strcmp (argv[1], "--generate") == 0)
+    {
+      GFile *file = g_file_new_for_commandline_arg (argv[2]);
+
+      dump_to_stdout (file);
+
+      g_object_unref (file);
+
+      return 0;
+    }
+  else
+    {
+      guint i;
+
+      for (i = 1; i < argc; i++)
+        {
+          GFile *file = g_file_new_for_commandline_arg (argv[i]);
+
+          add_test_for_file (file);
+
+          g_object_unref (file);
+        }
+    }
+
+  return g_test_run ();
+}
+
diff --git a/tests/a11y/accessible-name.txt b/tests/a11y/accessible-name.txt
new file mode 100644 (file)
index 0000000..dd3a6ce
--- /dev/null
@@ -0,0 +1,23 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  button1
+    "push button"
+    parent: window1
+    index: 0
+    name: Accessible name
+    state: enabled focusable sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkImage>
+    image size: -1 x -1
+    image description: (null)
+    <AtkAction>
+    action 0 name: click
diff --git a/tests/a11y/accessible-name.ui b/tests/a11y/accessible-name.ui
new file mode 100644 (file)
index 0000000..8fc76d0
--- /dev/null
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkButton" id="button1">
+        <property name="label" translatable="yes">Hello World!</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <child internal-child="accessible">
+          <object class="AtkObject" id="button1-accessible">
+            <property name="accessible-name" translatable="yes">Accessible name</property>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/appchooser.txt b/tests/a11y/appchooser.txt
new file mode 100644 (file)
index 0000000..1a68ab3
--- /dev/null
@@ -0,0 +1,407 @@
+window1
+  "dialog"
+  index: 0
+  name: 
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  unnamed-GtkBoxAccessible-0
+    "filler"
+    parent: window1
+    index: 0
+    state: enabled sensitive showing vertical visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    unnamed-GtkBoxAccessible-1
+      "filler"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 0
+      state: enabled sensitive showing vertical visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      unnamed-GtkBoxAccessible-2
+        "filler"
+        parent: unnamed-GtkBoxAccessible-1
+        index: 0
+        state: enabled sensitive showing vertical visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        Select an application for "(null)" files
+          "label"
+          parent: unnamed-GtkBoxAccessible-2
+          index: 0
+          name: Select an application for "(null)" files
+          state: enabled multi-line sensitive showing visible
+          toolkit: gtk
+          <AtkComponent>
+          layer: widget
+          alpha: 1
+          <AtkText>
+          text: Select an application for "(null)" files
+          character count: 40
+          caret offset: 0
+          default attributes: bg-color: <omitted>
+                              bg-full-height: 0
+                              direction: <omitted>
+                              editable: false
+                              family-name: <omitted>
+                              fg-color: <omitted>
+                              indent: 0
+                              invisible: false
+                              justification: left
+                              language: <omitted>
+                              left-margin: 0
+                              pixels-above-lines: 0
+                              pixels-below-lines: 0
+                              pixels-inside-wrap: 0
+                              right-margin: 0
+                              rise: 0
+                              scale: 1
+                              size: <omitted>
+                              stretch: <omitted>
+                              strikethrough: false
+                              style: <omitted>
+                              underline: none
+                              variant: <omitted>
+                              weight: <omitted>
+                              wrap-mode: word
+        unnamed-GtkBoxAccessible-3
+          "filler"
+          parent: unnamed-GtkBoxAccessible-2
+          index: 1
+          state: enabled sensitive showing vertical visible
+          toolkit: gtk
+          <AtkComponent>
+          layer: widget
+          alpha: 1
+          unnamed-GtkScrolledWindowAccessible-4
+            "scroll pane"
+            parent: unnamed-GtkBoxAccessible-3
+            index: 0
+            state: enabled focusable sensitive showing visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: widget
+            alpha: 1
+            unnamed-GtkTreeViewAccessible-5
+              "table"
+              parent: unnamed-GtkScrolledWindowAccessible-4
+              index: 0
+              state: enabled focusable sensitive showing visible manages-descendants
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkSelection>
+              <AtkTable>
+              rows: 1
+              columns: 1
+              column 0 description: 
+              <column 0 header>
+              unnamed-GtkButtonAccessible-6
+                "table column header"
+                parent: unnamed-GtkTreeViewAccessible-5
+                index: 0
+                name: 
+                state: enabled focusable selectable sensitive
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                <AtkImage>
+                image size: -1 x -1
+                image description: (null)
+                <AtkAction>
+                action 0 name: click
+              unnamed-GtkButtonAccessible-6
+                "table column header"
+                parent: unnamed-GtkTreeViewAccessible-5
+                index: 0
+                name: 
+                state: enabled focusable selectable sensitive
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                <AtkImage>
+                image size: -1 x -1
+                image description: (null)
+                <AtkAction>
+                action 0 name: click
+              unnamed-GtkContainerCellAccessible-7
+                "table cell"
+                parent: unnamed-GtkTreeViewAccessible-5
+                index: 1
+                state: enabled focusable focused selectable sensitive transient visible
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                <AtkAction>
+                
+                  "table cell"
+                  index: 0
+                  name: 
+                  state: enabled focusable focused selectable sensitive single-line transient visible
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+                  <AtkText>
+                  text: 
+                  character count: 0
+                  caret offset: 0
+                  default attributes: bg-color: <omitted>
+                                      bg-full-height: 0
+                                      editable: false
+                                      family-name: <omitted>
+                                      fg-color: <omitted>
+                                      indent: 0
+                                      invisible: false
+                                      justification: left
+                                      language: <omitted>
+                                      left-margin: 0
+                                      pixels-above-lines: 0
+                                      pixels-below-lines: 0
+                                      pixels-inside-wrap: 0
+                                      right-margin: 0
+                                      rise: 0
+                                      scale: 1
+                                      size: <omitted>
+                                      stretch: <omitted>
+                                      strikethrough: false
+                                      style: <omitted>
+                                      underline: none
+                                      variant: <omitted>
+                                      weight: <omitted>
+                                      wrap-mode: word
+                  <AtkAction>
+                  action 0 name: activate
+                  action 0 description: activate the cell
+                No applications available to open "(null)" files
+Click "Show other applications", for more options, or "Find applications online" to install a new application
+                  "table cell"
+                  index: 1
+                  name: No applications available to open "(null)" files
+Click "Show other applications", for more options, or "Find applications online" to install a new application
+                  state: enabled focusable focused selectable sensitive single-line transient visible
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+                  <AtkText>
+                  text: No applications available to open "(null)" files
+Click "Show other applications", for more options, or "Find applications online" to install a new application
+                  character count: 158
+                  caret offset: 0
+                  default attributes: bg-color: <omitted>
+                                      bg-full-height: 0
+                                      editable: false
+                                      family-name: <omitted>
+                                      fg-color: <omitted>
+                                      indent: 0
+                                      invisible: false
+                                      justification: left
+                                      language: <omitted>
+                                      left-margin: 0
+                                      pixels-above-lines: 0
+                                      pixels-below-lines: 0
+                                      pixels-inside-wrap: 0
+                                      right-margin: 0
+                                      rise: 0
+                                      scale: 1
+                                      size: <omitted>
+                                      stretch: <omitted>
+                                      strikethrough: false
+                                      style: <omitted>
+                                      underline: none
+                                      variant: <omitted>
+                                      weight: <omitted>
+                                      wrap-mode: word
+                  <AtkAction>
+                  action 0 name: activate
+                  action 0 description: activate the cell
+                
+                  "table cell"
+                  index: 2
+                  name: 
+                  state: enabled focusable focused selectable sensitive single-line transient visible
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+                  <AtkText>
+                  text: 
+                  character count: 0
+                  caret offset: 0
+                  default attributes: bg-color: <omitted>
+                                      bg-full-height: 0
+                                      editable: false
+                                      family-name: <omitted>
+                                      fg-color: <omitted>
+                                      indent: 0
+                                      invisible: false
+                                      justification: left
+                                      language: <omitted>
+                                      left-margin: 0
+                                      pixels-above-lines: 0
+                                      pixels-below-lines: 0
+                                      pixels-inside-wrap: 0
+                                      right-margin: 0
+                                      rise: 0
+                                      scale: 1
+                                      size: <omitted>
+                                      stretch: <omitted>
+                                      strikethrough: false
+                                      style: <omitted>
+                                      underline: none
+                                      variant: <omitted>
+                                      weight: <omitted>
+                                      wrap-mode: word
+                  <AtkAction>
+                  action 0 name: activate
+                  action 0 description: activate the cell
+                unnamed-GtkImageCellAccessible-8
+                  "table cell"
+                  index: 3
+                  state: enabled focusable focused selectable sensitive transient visible
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+                  <AtkImage>
+                  image size: 0 x 0
+                  image description: (null)
+                  <AtkAction>
+                  action 0 name: activate
+                  action 0 description: activate the cell
+                
+                  "table cell"
+                  index: 4
+                  name: 
+                  state: enabled focusable focused selectable sensitive single-line transient visible
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+                  <AtkText>
+                  text: 
+                  character count: 0
+                  caret offset: 0
+                  default attributes: bg-color: <omitted>
+                                      bg-full-height: 0
+                                      editable: false
+                                      family-name: <omitted>
+                                      fg-color: <omitted>
+                                      indent: 0
+                                      invisible: false
+                                      justification: left
+                                      language: <omitted>
+                                      left-margin: 0
+                                      pixels-above-lines: 0
+                                      pixels-below-lines: 0
+                                      pixels-inside-wrap: 0
+                                      right-margin: 0
+                                      rise: 0
+                                      scale: 1
+                                      size: <omitted>
+                                      stretch: <omitted>
+                                      strikethrough: false
+                                      style: <omitted>
+                                      underline: none
+                                      variant: <omitted>
+                                      weight: <omitted>
+                                      wrap-mode: word
+                  <AtkAction>
+                  action 0 name: activate
+                  action 0 description: activate the cell
+            unnamed-GtkScrollbarAccessible-9
+              "scroll bar"
+              parent: unnamed-GtkScrolledWindowAccessible-4
+              index: 1
+              state: enabled horizontal sensitive
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkAction>
+              action 0 name: activate
+              <AtkValue>
+              minimum value: 0.000000
+              maximum value: 0.000000
+              current value: 0.000000
+              minimum increment: 39.800000
+            unnamed-GtkScrollbarAccessible-10
+              "scroll bar"
+              parent: unnamed-GtkScrolledWindowAccessible-4
+              index: 2
+              state: enabled sensitive vertical
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkAction>
+              action 0 name: activate
+              <AtkValue>
+              minimum value: 0.000000
+              maximum value: 0.000000
+              current value: 0.000000
+              minimum increment: 29.800000
+          unnamed-GtkButtonAccessible-11
+            "push button"
+            parent: unnamed-GtkBoxAccessible-3
+            index: 1
+            name: Show other applications
+            state: enabled focusable sensitive showing visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: widget
+            alpha: 1
+            <AtkImage>
+            image size: 20 x 20
+            image description: (null)
+            <AtkAction>
+            action 0 name: click
+    unnamed-GtkBoxAccessible-12
+      "filler"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 1
+      state: enabled horizontal sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      unnamed-GtkButtonAccessible-13
+        "push button"
+        parent: unnamed-GtkBoxAccessible-12
+        index: 0
+        name: Select
+        state: enabled focusable sensitive showing visible default
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: -1 x -1
+        image description: (null)
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: <Alt>s
+      unnamed-GtkButtonAccessible-14
+        "push button"
+        parent: unnamed-GtkBoxAccessible-12
+        index: 1
+        name: Cancel
+        state: enabled focusable sensitive showing visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: 20 x 20
+        image description: (null)
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: <Alt>c
diff --git a/tests/a11y/appchooser.ui b/tests/a11y/appchooser.ui
new file mode 100644 (file)
index 0000000..37ea4ad
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkAppChooserDialog" id="window1">
+  </object>
+</interface>
diff --git a/tests/a11y/assistant.txt b/tests/a11y/assistant.txt
new file mode 100644 (file)
index 0000000..eb0f95a
--- /dev/null
@@ -0,0 +1,141 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  button1
+    "push button"
+    index: 0
+    name: Page 1
+    state: enabled focusable sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkImage>
+    image size: -1 x -1
+    image description: (null)
+    <AtkAction>
+    action 0 name: click
+  button2
+    "push button"
+    index: 0
+    name: Page 2
+    state: enabled focusable sensitive visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkImage>
+    image size: -1 x -1
+    image description: (null)
+    <AtkAction>
+    action 0 name: click
+  unnamed-GtkBoxAccessible-0
+    "filler"
+    parent: unnamed-GtkBoxAccessible-1
+    index: 1
+    state: enabled horizontal sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    unnamed-GtkButtonAccessible-2
+      "push button"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 0
+      name: Close
+      state: enabled focusable sensitive
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: 20 x 20
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>c
+    unnamed-GtkButtonAccessible-3
+      "push button"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 1
+      name: Cancel
+      state: enabled focusable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: 20 x 20
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>c
+    unnamed-GtkButtonAccessible-4
+      "push button"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 2
+      name: Finish
+      state: focusable
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>f
+    unnamed-GtkButtonAccessible-5
+      "push button"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 3
+      name: Go Back
+      state: enabled focusable sensitive
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>b
+    unnamed-GtkButtonAccessible-6
+      "push button"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 4
+      name: Continue
+      state: focusable showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: 20 x 20
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>o
+    unnamed-GtkButtonAccessible-7
+      "push button"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 5
+      name: Apply
+      state: enabled focusable sensitive
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: 20 x 20
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>a
diff --git a/tests/a11y/assistant.ui b/tests/a11y/assistant.ui
new file mode 100644 (file)
index 0000000..aed2044
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkAssistant" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkButton" id="button1">
+        <property name="label" translatable="yes">Button 1</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+      </object>
+      <packing>
+        <property name="title" translatable="yes">Page 1</property>
+      </packing>
+    </child>
+    <child>
+      <object class="GtkButton" id="button2">
+        <property name="label" translatable="yes">Button 2</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+      </object>
+      <packing>
+        <property name="title" translatable="yes">Page 2</property>
+      </packing>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/buttons.txt b/tests/a11y/buttons.txt
new file mode 100644 (file)
index 0000000..ff44776
--- /dev/null
@@ -0,0 +1,94 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  grid1
+    "panel"
+    parent: window1
+    index: 0
+    state: enabled horizontal sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    button5
+      "toggle button"
+      parent: grid1
+      index: 0
+      name: Switch
+      description: Switches between on and off states
+      state: checked enabled focusable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkAction>
+      action 0 name: toggle
+    button4
+      "radio button"
+      parent: grid1
+      index: 1
+      name: Hello World!
+      member-of: button4
+                 button3
+      state: enabled focusable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+    button3
+      "radio button"
+      parent: grid1
+      index: 2
+      name: Hello World!
+      member-of: button4
+                 button3
+      state: armed checked enabled focusable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+    button2
+      "check box"
+      parent: grid1
+      index: 3
+      name: Hello World!
+      state: enabled focusable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+    button1
+      "toggle button"
+      parent: grid1
+      index: 4
+      name: Hello World!
+      state: armed checked enabled focusable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
diff --git a/tests/a11y/buttons.ui b/tests/a11y/buttons.ui
new file mode 100644 (file)
index 0000000..88cbc0d
--- /dev/null
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkGrid" id="grid1">
+        <property name="visible">True</property>
+        <child>
+          <object class="GtkToggleButton" id="button1">
+            <property name="label" translatable="yes">Hello World!</property>
+            <property name="visible">True</property>
+            <property name="active">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkCheckButton" id="button2">
+            <property name="label" translatable="yes">Hello World!</property>
+            <property name="visible">True</property>
+            <property name="active">False</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRadioButton" id="button3">
+            <property name="label" translatable="yes">Hello World!</property>
+            <property name="visible">True</property>
+            <property name="active">False</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkRadioButton" id="button4">
+            <property name="label" translatable="yes">Hello World!</property>
+            <property name="visible">True</property>
+            <property name="active">True</property>
+            <property name="group">button3</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkSwitch" id="button5">
+            <property name="visible">True</property>
+            <property name="active">True</property>
+            <property name="can_focus">True</property>
+            <property name="receives_default">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">4</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/calendar.txt b/tests/a11y/calendar.txt
new file mode 100644 (file)
index 0000000..06985b9
--- /dev/null
@@ -0,0 +1,17 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  calendar1
+    "calendar"
+    parent: window1
+    index: 0
+    state: enabled focusable sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
diff --git a/tests/a11y/calendar.ui b/tests/a11y/calendar.ui
new file mode 100644 (file)
index 0000000..f4562c4
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkCalendar" id="calendar1">
+        <property name="visible">True</property>
+        <property name="day">1</property>
+        <property name="month">2</property>
+        <property name="year">1970</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/children.c b/tests/a11y/children.c
new file mode 100644 (file)
index 0000000..4b76165
--- /dev/null
@@ -0,0 +1,211 @@
+/*
+ * Copyright (C) 2011 Red Hat Inc.
+ *
+ * Author:
+ *      Matthias Clasen <mclasen@redhat.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gtk/gtk.h>
+#include <string.h>
+
+static void
+test_scrolled_window_child_count (void)
+{
+  GtkWidget *sw;
+  AtkObject *accessible;
+
+  sw = gtk_scrolled_window_new (NULL, NULL);
+  g_object_ref_sink (sw);
+  gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw),
+                                  GTK_POLICY_ALWAYS, GTK_POLICY_ALWAYS);
+  gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (sw), gtk_label_new ("Bla"));
+
+  accessible = gtk_widget_get_accessible (sw);
+  g_assert_cmpint (atk_object_get_n_accessible_children (accessible), ==, 3);
+
+  g_object_unref (sw);
+}
+
+typedef struct {
+  gint count;
+  gint index;
+  gint n_children;
+  gpointer parent;
+} SignalData;
+
+static void
+children_changed (AtkObject  *accessible,
+                  guint       index,
+                  gpointer    child,
+                  SignalData *data)
+{
+  data->count++;
+  data->index = index;
+  data->n_children = atk_object_get_n_accessible_children (accessible);
+}
+
+static void
+add_child (GtkWidget *container,
+           GtkWidget *child)
+{
+  if (GTK_IS_SCROLLED_WINDOW (container))
+    gtk_scrolled_window_add_with_viewport (GTK_SCROLLED_WINDOW (container), child);
+  else
+    gtk_container_add (GTK_CONTAINER (container), child);
+}
+
+static void
+remove_child (GtkWidget *container,
+              GtkWidget *child)
+{
+  if (GTK_IS_SCROLLED_WINDOW (container))
+    {
+      if (gtk_widget_get_parent (child) != container)
+        child = gtk_widget_get_parent (child);
+    }
+
+  gtk_container_remove (GTK_CONTAINER (container), child);
+}
+
+static void
+parent_notify (AtkObject *obj, GParamSpec *pspec, SignalData *data)
+{
+  data->count++;
+  data->parent = atk_object_get_parent (obj);
+}
+
+static void
+test_add_remove (GtkWidget *widget)
+{
+  AtkObject *accessible;
+  AtkObject *child_accessible;
+  SignalData add_data;
+  SignalData remove_data;
+  SignalData parent_data[3];
+  GtkWidget *child[3];
+  gint i, j;
+  gint step_children;
+
+  accessible = gtk_widget_get_accessible (widget);
+
+  add_data.count = 0;
+  remove_data.count = 0;
+  g_signal_connect (accessible, "children_changed::add",
+                    G_CALLBACK (children_changed), &add_data);
+  g_signal_connect (accessible, "children_changed::remove",
+                    G_CALLBACK (children_changed), &remove_data);
+
+  step_children = atk_object_get_n_accessible_children (accessible);
+
+  for (i = 0; i < 3; i++)
+    {
+      if (gtk_container_child_type (GTK_CONTAINER (widget)) == G_TYPE_NONE)
+        break;
+
+      child[i] = gtk_label_new ("bla");
+      parent_data[i].count = 0;
+      child_accessible = gtk_widget_get_accessible (child[i]);
+      g_signal_connect (child_accessible, "notify::accessible-parent",
+                        G_CALLBACK (parent_notify), &(parent_data[i]));
+      add_child (widget, child[i]);
+
+      g_assert_cmpint (add_data.count, ==, i + 1);
+      g_assert_cmpint (add_data.n_children, ==, step_children + i + 1);
+      g_assert_cmpint (remove_data.count, ==, 0);
+      g_assert_cmpint (parent_data[i].count, ==, 1);
+      if (GTK_IS_SCROLLED_WINDOW (widget) ||
+          GTK_IS_NOTEBOOK (widget))
+        g_assert (atk_object_get_parent (ATK_OBJECT (parent_data[i].parent)) == accessible);
+      else
+        g_assert (parent_data[i].parent == accessible);
+    }
+  for (j = 0 ; j < i; j++)
+    {
+      remove_child (widget, child[j]);
+      g_assert_cmpint (add_data.count, ==, i);
+      g_assert_cmpint (remove_data.count, ==, j + 1);
+      g_assert_cmpint (remove_data.n_children, ==, step_children + i - j - 1);
+      if (parent_data[j].count == 2)
+        g_assert (parent_data[j].parent == NULL);
+      else
+        {
+          AtkStateSet *set;
+          set = atk_object_ref_state_set (ATK_OBJECT (parent_data[j].parent));
+          g_assert (atk_state_set_contains_state (set, ATK_STATE_DEFUNCT));
+          g_object_unref (set);
+        }
+    }
+
+  g_signal_handlers_disconnect_by_func (accessible, G_CALLBACK (children_changed), &add_data);
+  g_signal_handlers_disconnect_by_func (accessible, G_CALLBACK (children_changed), &remove_data);
+}
+
+static void
+add_child_test (const gchar      *prefix,
+                GTestFixtureFunc  test_func,
+                GtkWidget        *widget)
+{
+  gchar *path;
+
+  path = g_strdup_printf ("%s/%s", prefix, G_OBJECT_TYPE_NAME (widget));
+  g_test_add_vtable (path,
+                     0,
+                     g_object_ref (widget),
+                     0,
+                     (GTestFixtureFunc) test_func,
+                     (GTestFixtureFunc) g_object_unref);
+  g_free (path);
+}
+
+static void
+add_child_tests (GtkWidget *widget)
+{
+  g_object_ref_sink (widget);
+  add_child_test ("/child/add-remove", (GTestFixtureFunc)test_add_remove, widget);
+  g_object_unref (widget);
+}
+
+int
+main (int argc, char *argv[])
+{
+  gtk_test_init (&argc, &argv, NULL);
+
+  g_test_add_func ("/scrolledwindow/child-count", test_scrolled_window_child_count);
+
+  add_child_tests (gtk_scrolled_window_new (NULL, NULL));
+  add_child_tests (gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 0));
+  add_child_tests (gtk_paned_new (GTK_ORIENTATION_HORIZONTAL));
+  add_child_tests (gtk_grid_new ());
+  add_child_tests (gtk_event_box_new ());
+  add_child_tests (gtk_window_new (GTK_WINDOW_TOPLEVEL));
+  add_child_tests (gtk_assistant_new ());
+  add_child_tests (gtk_frame_new ("frame"));
+  add_child_tests (gtk_expander_new ("expander"));
+  add_child_tests (gtk_table_new (2, 2, FALSE));
+  add_child_tests (gtk_text_view_new ());
+  add_child_tests (gtk_tree_view_new ());
+#if 0
+  /* gail doesn't handle non-label children in these */
+  add_child_tests (gtk_button_new ());
+  add_child_tests (gtk_statusbar_new ());
+#endif
+  add_child_tests (gtk_notebook_new ());
+
+  return g_test_run ();
+}
+
diff --git a/tests/a11y/colorchooser.txt b/tests/a11y/colorchooser.txt
new file mode 100644 (file)
index 0000000..cdd5ffb
--- /dev/null
@@ -0,0 +1,1359 @@
+window1
+  "color chooser"
+  index: 0
+  name: Color Selection
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  unnamed-GtkBoxAccessible-0
+    "filler"
+    parent: window1
+    index: 0
+    state: enabled sensitive showing vertical visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    unnamed-GtkBoxAccessible-1
+      "color chooser"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 0
+      state: enabled sensitive showing vertical visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      unnamed-GtkBoxAccessible-2
+        "filler"
+        parent: unnamed-GtkBoxAccessible-1
+        index: 0
+        state: enabled horizontal sensitive showing visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        unnamed-GtkBoxAccessible-3
+          "filler"
+          parent: unnamed-GtkBoxAccessible-2
+          index: 0
+          state: enabled sensitive showing vertical visible
+          toolkit: gtk
+          <AtkComponent>
+          layer: widget
+          alpha: 1
+          unnamed-GtkWidgetAccessible-4
+            "color chooser"
+            parent: unnamed-GtkBoxAccessible-3
+            index: 0
+            name: Color Wheel
+            description: Select the color you want from the outer ring. Select the darkness or lightness of that color using the inner triangle.
+            controlled-by: 0
+            state: enabled focusable sensitive showing visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: widget
+            alpha: 1
+          unnamed-GtkBoxAccessible-5
+            "filler"
+            parent: unnamed-GtkBoxAccessible-3
+            index: 1
+            state: enabled horizontal sensitive showing visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: widget
+            alpha: 1
+            unnamed-GtkFrameAccessible-6
+              "panel"
+              parent: unnamed-GtkBoxAccessible-5
+              index: 0
+              state: enabled sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              unnamed-GtkBoxAccessible-7
+                "filler"
+                parent: unnamed-GtkFrameAccessible-6
+                index: 0
+                state: enabled horizontal sensitive showing visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-8
+                  "unknown"
+                  parent: unnamed-GtkBoxAccessible-7
+                  index: 0
+                  description: The previously-selected color, for comparison to the color you're selecting now.
+                  state: enabled sensitive showing visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+                unnamed-GtkWidgetAccessible-9
+                  "unknown"
+                  parent: unnamed-GtkBoxAccessible-7
+                  index: 1
+                  description: The color you've chosen.
+                  state: enabled sensitive showing visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+            unnamed-GtkButtonAccessible-10
+              "push button"
+              parent: unnamed-GtkBoxAccessible-5
+              index: 1
+              description: Click the eyedropper, then click a color anywhere on your screen to select that color.
+              state: enabled focusable sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkImage>
+              image size: -1 x -1
+              image description: (null)
+              <AtkAction>
+              action 0 name: click
+        unnamed-GtkBoxAccessible-11
+          "filler"
+          parent: unnamed-GtkBoxAccessible-2
+          index: 1
+          state: enabled sensitive showing vertical visible
+          toolkit: gtk
+          <AtkComponent>
+          layer: widget
+          alpha: 1
+          unnamed-GtkContainerAccessible-12
+            "panel"
+            parent: unnamed-GtkBoxAccessible-11
+            index: 0
+            state: enabled sensitive showing visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: widget
+            alpha: 1
+            #FFFFFF
+              "text"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 0
+              description: You can enter an HTML-style hexadecimal color value, or simply a color name such as 'orange' in this entry.
+              labelled-by: Color name:
+              state: editable enabled focusable sensitive showing single-line visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: #FFFFFF
+              character count: 7
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+              <AtkAction>
+              action 0 name: activate
+              action 0 keybinding: <Alt>n
+            Color name:
+              "label"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 1
+              name: Color name:
+              label-for: #FFFFFF
+              state: enabled multi-line sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: Color name:
+              character count: 11
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+            255
+              "text"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 2
+              description: Transparency of the color.
+              state: editable enabled focusable sensitive single-line
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: 255
+              character count: 3
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+              <AtkAction>
+              action 0 name: activate
+            unnamed-GtkScaleAccessible-13
+              "slider"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 3
+              description: Transparency of the color.
+              labelled-by: Opacity:
+              state: enabled focusable horizontal sensitive
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkAction>
+              action 0 name: activate
+              action 0 keybinding: <Alt>a
+              <AtkValue>
+              minimum value: 0.000000
+              maximum value: 255.000000
+              current value: 255.000000
+              minimum increment: 1.000000
+            Opacity:
+              "label"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 4
+              name: Opacity:
+              label-for: unnamed-GtkScaleAccessible-13
+              state: enabled multi-line sensitive
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: Opacity:
+              character count: 8
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+            unnamed-GtkWidgetAccessible-14
+              "separator"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 5
+              state: enabled horizontal sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+            255
+              "spin button"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 6
+              description: Amount of blue light in the color.
+              controller-for: unnamed-GtkWidgetAccessible-4
+              labelled-by: Blue:
+              state: editable enabled focusable sensitive showing single-line visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: 255
+              character count: 3
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+              <AtkAction>
+              action 0 name: activate
+              action 0 keybinding: <Alt>b
+              <AtkValue>
+              minimum value: 0.000000
+              maximum value: 255.000000
+              current value: 255.000000
+              minimum increment: 1.000000
+            Blue:
+              "label"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 7
+              name: Blue:
+              label-for: 255
+              state: enabled multi-line sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: Blue:
+              character count: 5
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+            255
+              "spin button"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 8
+              description: Amount of green light in the color.
+              controller-for: unnamed-GtkWidgetAccessible-4
+              labelled-by: Green:
+              state: editable enabled focusable sensitive showing single-line visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: 255
+              character count: 3
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+              <AtkAction>
+              action 0 name: activate
+              action 0 keybinding: <Alt>g
+              <AtkValue>
+              minimum value: 0.000000
+              maximum value: 255.000000
+              current value: 255.000000
+              minimum increment: 1.000000
+            Green:
+              "label"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 9
+              name: Green:
+              label-for: 255
+              state: enabled multi-line sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: Green:
+              character count: 6
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+            255
+              "spin button"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 10
+              description: Amount of red light in the color.
+              controller-for: unnamed-GtkWidgetAccessible-4
+              labelled-by: Red:
+              state: editable enabled focusable sensitive showing single-line visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: 255
+              character count: 3
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+              <AtkAction>
+              action 0 name: activate
+              action 0 keybinding: <Alt>r
+              <AtkValue>
+              minimum value: 0.000000
+              maximum value: 255.000000
+              current value: 255.000000
+              minimum increment: 1.000000
+            Red:
+              "label"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 11
+              name: Red:
+              label-for: 255
+              state: enabled multi-line sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: Red:
+              character count: 4
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+            100
+              "spin button"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 12
+              description: Brightness of the color.
+              controller-for: unnamed-GtkWidgetAccessible-4
+              labelled-by: Value:
+              state: editable enabled focusable sensitive showing single-line visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: 100
+              character count: 3
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+              <AtkAction>
+              action 0 name: activate
+              action 0 keybinding: <Alt>v
+              <AtkValue>
+              minimum value: 0.000000
+              maximum value: 100.000000
+              current value: 100.000000
+              minimum increment: 1.000000
+            Value:
+              "label"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 13
+              name: Value:
+              label-for: 100
+              state: enabled multi-line sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: Value:
+              character count: 6
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+            0
+              "spin button"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 14
+              description: Intensity of the color.
+              controller-for: unnamed-GtkWidgetAccessible-4
+              labelled-by: Saturation:
+              state: editable enabled focusable sensitive showing single-line visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: 0
+              character count: 1
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+              <AtkAction>
+              action 0 name: activate
+              action 0 keybinding: <Alt>s
+              <AtkValue>
+              minimum value: 0.000000
+              maximum value: 100.000000
+              current value: 0.000000
+              minimum increment: 1.000000
+            Saturation:
+              "label"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 15
+              name: Saturation:
+              label-for: 0
+              state: enabled multi-line sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: Saturation:
+              character count: 11
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+            0
+              "spin button"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 16
+              description: Position on the color wheel.
+              controller-for: unnamed-GtkWidgetAccessible-4
+              labelled-by: Hue:
+              state: editable enabled focusable sensitive showing single-line visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: 0
+              character count: 1
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+              <AtkAction>
+              action 0 name: activate
+              action 0 keybinding: <Alt>h
+              <AtkValue>
+              minimum value: 0.000000
+              maximum value: 360.000000
+              current value: 0.000000
+              minimum increment: 1.000000
+            Hue:
+              "label"
+              parent: unnamed-GtkContainerAccessible-12
+              index: 17
+              name: Hue:
+              label-for: 0
+              state: enabled multi-line sensitive showing visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: Hue:
+              character count: 4
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+          unnamed-GtkBoxAccessible-15
+            "filler"
+            parent: unnamed-GtkBoxAccessible-11
+            index: 1
+            state: enabled sensitive vertical
+            toolkit: gtk
+            <AtkComponent>
+            layer: widget
+            alpha: 1
+            Palette:
+              "label"
+              parent: unnamed-GtkBoxAccessible-15
+              index: 0
+              name: Palette:
+              label-for: unnamed-GtkWidgetAccessible-16
+              state: enabled multi-line sensitive visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              <AtkText>
+              text: Palette:
+              character count: 8
+              caret offset: 0
+              default attributes: bg-color: <omitted>
+                                  bg-full-height: 0
+                                  direction: <omitted>
+                                  editable: false
+                                  family-name: <omitted>
+                                  fg-color: <omitted>
+                                  indent: 0
+                                  invisible: false
+                                  justification: left
+                                  language: <omitted>
+                                  left-margin: 0
+                                  pixels-above-lines: 0
+                                  pixels-below-lines: 0
+                                  pixels-inside-wrap: 0
+                                  right-margin: 0
+                                  rise: 0
+                                  scale: 1
+                                  size: <omitted>
+                                  stretch: <omitted>
+                                  strikethrough: false
+                                  style: <omitted>
+                                  underline: none
+                                  variant: <omitted>
+                                  weight: <omitted>
+                                  wrap-mode: word
+            unnamed-GtkContainerAccessible-17
+              "panel"
+              parent: unnamed-GtkBoxAccessible-15
+              index: 1
+              state: enabled sensitive visible
+              toolkit: gtk
+              <AtkComponent>
+              layer: widget
+              alpha: 1
+              unnamed-GtkFrameAccessible-18
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 0
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-19
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-18
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-20
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 1
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-21
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-20
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-22
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 2
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-23
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-22
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-24
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 3
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-25
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-24
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-26
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 4
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-27
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-26
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-28
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 5
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-29
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-28
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-30
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 6
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-31
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-30
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-32
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 7
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-33
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-32
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-34
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 8
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-35
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-34
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-36
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 9
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-37
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-36
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-38
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 10
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-39
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-38
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-40
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 11
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-41
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-40
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-42
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 12
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-43
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-42
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-44
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 13
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-45
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-44
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-46
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 14
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-47
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-46
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-48
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 15
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-49
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-48
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-50
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 16
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-51
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-50
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-52
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 17
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-53
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-52
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-54
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 18
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-55
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-54
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+              unnamed-GtkFrameAccessible-56
+                "panel"
+                parent: unnamed-GtkContainerAccessible-17
+                index: 19
+                state: enabled sensitive visible
+                toolkit: gtk
+                <AtkComponent>
+                layer: widget
+                alpha: 1
+                unnamed-GtkWidgetAccessible-16
+                  "unknown"
+                  parent: unnamed-GtkFrameAccessible-56
+                  index: 0
+                  description: Click this palette entry to make it the current color. To change this entry, drag a color swatch here or right-click it and select "Save color here."
+                  labelled-by: Palette:
+                  state: enabled focusable sensitive visible
+                  toolkit: gtk
+                  <AtkComponent>
+                  layer: widget
+                  alpha: 1
+    unnamed-GtkBoxAccessible-57
+      "filler"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 1
+      state: enabled horizontal sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      unnamed-GtkButtonAccessible-58
+        "push button"
+        parent: unnamed-GtkBoxAccessible-57
+        index: 0
+        name: Help
+        state: enabled focusable sensitive
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: 20 x 20
+        image description: (null)
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: <Alt>h
+      unnamed-GtkButtonAccessible-59
+        "push button"
+        parent: unnamed-GtkBoxAccessible-57
+        index: 1
+        name: OK
+        state: enabled focusable sensitive showing visible default
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: 20 x 20
+        image description: (null)
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: <Alt>o
+      unnamed-GtkButtonAccessible-60
+        "push button"
+        parent: unnamed-GtkBoxAccessible-57
+        index: 2
+        name: Cancel
+        state: enabled focusable sensitive showing visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: 20 x 20
+        image description: (null)
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: <Alt>c
diff --git a/tests/a11y/colorchooser.ui b/tests/a11y/colorchooser.ui
new file mode 100644 (file)
index 0000000..c17f97d
--- /dev/null
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkColorSelectionDialog" id="window1">
+  </object>
+</interface>
diff --git a/tests/a11y/entries.txt b/tests/a11y/entries.txt
new file mode 100644 (file)
index 0000000..08815e5
--- /dev/null
@@ -0,0 +1,102 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  box1
+    "filler"
+    parent: window1
+    index: 0
+    state: enabled horizontal sensitive
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    entry1
+      "text"
+      parent: box1
+      index: 0
+      state: editable enabled focusable sensitive single-line visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: text
+      character count: 4
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          direction: <omitted>
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+    spinbutton1
+      "spin button"
+      parent: box1
+      index: 1
+      state: editable enabled focusable sensitive single-line visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: 
+      character count: 0
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          direction: <omitted>
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+      <AtkValue>
+      minimum value: 0.500000
+      maximum value: 99.500000
+      current value: 45.500000
+      minimum increment: 0.500000
diff --git a/tests/a11y/entries.ui b/tests/a11y/entries.ui
new file mode 100644 (file)
index 0000000..28d072a
--- /dev/null
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="lower">0.5</property>
+    <property name="upper">99.5</property>
+    <property name="page-size">0</property>
+    <property name="value">45.5</property>
+    <property name="step-increment">0.5</property>
+    <property name="page-increment">5.0</property>
+  </object>
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkBox" id="box1">
+        <child>
+          <object class="GtkEntry" id="entry1">
+            <property name="text" translatable="yes">text</property>
+            <property name="visible">True</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkSpinButton" id="spinbutton1">
+            <property name="adjustment">adjustment1</property>
+            <property name="visible">True</property>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/expander.txt b/tests/a11y/expander.txt
new file mode 100644 (file)
index 0000000..4416d4b
--- /dev/null
@@ -0,0 +1,59 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  expander1
+    "toggle button"
+    parent: window1
+    index: 0
+    name: Reveal this
+    state: enabled expandable focusable sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkAction>
+    action 0 name: activate
+    label1
+      "label"
+      parent: expander1
+      index: 0
+      name: Hello World!
+      state: enabled multi-line sensitive visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Hello World!
+      character count: 12
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          direction: <omitted>
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
diff --git a/tests/a11y/expander.ui b/tests/a11y/expander.ui
new file mode 100644 (file)
index 0000000..a0baf67
--- /dev/null
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkExpander" id="expander1">
+        <property name="label" translatable="yes">Reveal this</property>
+        <property name="visible">True</property>
+        <child>
+          <object class="GtkLabel" id="label1">
+            <property name="label" translatable="yes">Hello World!</property>
+            <property name="visible">True</property>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/focus.c b/tests/a11y/focus.c
new file mode 100644 (file)
index 0000000..59b58fd
--- /dev/null
@@ -0,0 +1,128 @@
+/*
+ * Copyright (C) 2011 Red Hat Inc.
+ *
+ * Author:
+ *      Matthias Clasen <mclasen@redhat.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gtk/gtk.h>
+#include <string.h>
+const gchar data[] =
+  "<interface>"
+  "  <object class='GtkWindow' id='window1'>"
+  "    <property name='visible'>True</property>"
+  "    <child>"
+  "      <object class='GtkBox' id='box1'>"
+  "        <property name='visible'>True</property>"
+  "        <child>"
+  "          <object class='GtkEntry' id='entry1'>"
+  "            <property name='visible'>True</property>"
+  "            <property name='text'>entry1</property>"
+  "          </object>"
+  "        </child>"
+  "        <child>"
+  "          <object class='GtkEntry' id='entry2'>"
+  "            <property name='visible'>True</property>"
+  "            <property name='text'>entry2</property>"
+  "          </object>"
+  "        </child>"
+  "      </object>"
+  "    </child>"
+  "  </object>"
+  "</interface>";
+
+static void
+got_active (GObject *win, GParamSpec *pspec, gpointer data)
+{
+  gtk_main_quit ();
+}
+
+static void
+test_focus_change (void)
+{
+  GtkBuilder *builder;
+  GError *error;
+  GtkWidget *window;
+  GtkWidget *entry1;
+  GtkWidget *entry2;
+  AtkObject *wa;
+  AtkObject *ea1;
+  AtkObject *ea2;
+  GtkWidget *focus;
+  AtkStateSet *set;
+  gboolean ret;
+
+  builder = gtk_builder_new ();
+  error = NULL;
+  gtk_builder_add_from_string (builder, data, -1, &error);
+  g_assert_no_error (error);
+  window = (GtkWidget*)gtk_builder_get_object (builder, "window1");
+  entry1 = (GtkWidget*)gtk_builder_get_object (builder, "entry1");
+  entry2 = (GtkWidget*)gtk_builder_get_object (builder, "entry2");
+
+  wa = gtk_widget_get_accessible (window);
+  ea1 = gtk_widget_get_accessible (entry1);
+  ea2 = gtk_widget_get_accessible (entry2);
+
+#if 0
+  g_signal_connect (window, "notify::is-active", G_CALLBACK (got_active), NULL);
+  gtk_widget_show (window);
+  gtk_main ();
+  g_assert (gtk_window_is_active (GTK_WINDOW (window)));
+#endif
+
+  focus = gtk_window_get_focus (GTK_WINDOW (window));
+  g_assert (focus == entry1);
+
+  set = atk_object_ref_state_set (ea1);
+  ret = atk_state_set_contains_state (set, ATK_STATE_FOCUSED);
+  g_assert (ret);
+  g_object_unref (set);
+  set = atk_object_ref_state_set (ea2);
+  ret = atk_state_set_contains_state (set, ATK_STATE_FOCUSED);
+  g_assert (!ret);
+  g_object_unref (set);
+
+  gtk_widget_grab_focus (entry2);
+
+  focus = gtk_window_get_focus (GTK_WINDOW (window));
+  g_assert (focus == entry2);
+
+  set = atk_object_ref_state_set (ea1);
+  ret = atk_state_set_contains_state (set, ATK_STATE_FOCUSED);
+  g_assert (!ret);
+  g_object_unref (set);
+  set = atk_object_ref_state_set (ea2);
+  ret = atk_state_set_contains_state (set, ATK_STATE_FOCUSED);
+  g_assert (ret);
+  g_object_unref (set);
+
+  g_object_unref (builder);
+}
+
+
+int
+main (int argc, char *argv[])
+{
+  gtk_test_init (&argc, &argv, NULL);
+
+  g_test_add_func ("/focus/change", test_focus_change);
+
+  return g_test_run ();
+}
+
diff --git a/tests/a11y/hello-world.txt b/tests/a11y/hello-world.txt
new file mode 100644 (file)
index 0000000..c4746de
--- /dev/null
@@ -0,0 +1,23 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  button1
+    "push button"
+    parent: window1
+    index: 0
+    name: Hello World!
+    state: enabled focusable sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkImage>
+    image size: -1 x -1
+    image description: (null)
+    <AtkAction>
+    action 0 name: click
diff --git a/tests/a11y/hello-world.ui b/tests/a11y/hello-world.ui
new file mode 100644 (file)
index 0000000..3dc8075
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkButton" id="button1">
+        <property name="label" translatable="yes">Hello World!</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="receives_default">True</property>
+        <property name="use_action_appearance">False</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/iconview.txt b/tests/a11y/iconview.txt
new file mode 100644 (file)
index 0000000..c71c8e0
--- /dev/null
@@ -0,0 +1,90 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  iv1
+    "layered pane"
+    parent: window1
+    index: 0
+    state: enabled focusable sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkSelection>
+    One
+      "icon"
+      parent: iv1
+      index: 0
+      state: enabled focusable selectable sensitive showing visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: One
+      character count: 3
+      caret offset: 0
+      <AtkImage>
+      image size: 0 x 0
+      image description: (null)
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: Activate item
+    Three
+      "icon"
+      parent: iv1
+      index: 1
+      state: enabled focusable selectable sensitive showing visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Three
+      character count: 5
+      caret offset: 0
+      <AtkImage>
+      image size: 0 x 0
+      image description: (null)
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: Activate item
+    Five
+      "icon"
+      parent: iv1
+      index: 2
+      state: enabled focusable selectable sensitive showing visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Five
+      character count: 4
+      caret offset: 0
+      <AtkImage>
+      image size: 0 x 0
+      image description: (null)
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: Activate item
+    Seven
+      "icon"
+      parent: iv1
+      index: 3
+      state: enabled focusable selectable sensitive showing visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Seven
+      character count: 5
+      caret offset: 0
+      <AtkImage>
+      image size: 0 x 0
+      image description: (null)
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: Activate item
diff --git a/tests/a11y/iconview.ui b/tests/a11y/iconview.ui
new file mode 100644 (file)
index 0000000..ba5d89c
--- /dev/null
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkListStore" id="liststore1">
+    <columns>
+      <column type="gchararray"/>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row><col id="0">One</col><col id="1">Two</col></row>
+      <row><col id="0">Three</col><col id="1">Four</col></row>
+      <row><col id="0">Five</col><col id="1">Six</col></row>
+      <row><col id="0">Seven</col><col id="1">Eight</col></row>
+    </data>
+  </object>
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkIconView" id="iv1">
+        <property name="visible">True</property>
+        <property name="model">liststore1</property>
+        <child>
+          <object class="GtkCellRendererText" id="renderer1">
+          </object>
+          <attributes>
+            <attribute name="text">0</attribute>
+          </attributes>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/infobar.txt b/tests/a11y/infobar.txt
new file mode 100644 (file)
index 0000000..73aaf18
--- /dev/null
@@ -0,0 +1,74 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  bar1
+    "filler"
+    parent: window1
+    index: 0
+    state: enabled horizontal sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    box1
+      "filler"
+      parent: bar1
+      index: 0
+      state: enabled horizontal sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      label1
+        "label"
+        parent: box1
+        index: 0
+        name: Some important info
+        state: enabled multi-line sensitive showing visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkText>
+        text: Some important info
+        character count: 19
+        caret offset: 0
+        default attributes: bg-color: <omitted>
+                            bg-full-height: 0
+                            direction: <omitted>
+                            editable: false
+                            family-name: <omitted>
+                            fg-color: <omitted>
+                            indent: 0
+                            invisible: false
+                            justification: left
+                            language: <omitted>
+                            left-margin: 0
+                            pixels-above-lines: 0
+                            pixels-below-lines: 0
+                            pixels-inside-wrap: 0
+                            right-margin: 0
+                            rise: 0
+                            scale: 1
+                            size: <omitted>
+                            stretch: <omitted>
+                            strikethrough: false
+                            style: <omitted>
+                            underline: none
+                            variant: <omitted>
+                            weight: <omitted>
+                            wrap-mode: word
+    unnamed-GtkBoxAccessible-0
+      "filler"
+      parent: bar1
+      index: 1
+      state: enabled sensitive showing vertical visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
diff --git a/tests/a11y/infobar.ui b/tests/a11y/infobar.ui
new file mode 100644 (file)
index 0000000..a082198
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkInfoBar" id="bar1">
+        <property name="visible">True</property>
+        <property name="message-type">info</property>
+        <child internal-child="content_area">
+          <object class="GtkBox" id="box1">
+            <child>
+              <object class="GtkLabel" id="label1">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Some important info</property>
+              </object>
+            </child>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/link.txt b/tests/a11y/link.txt
new file mode 100644 (file)
index 0000000..c9b9b40
--- /dev/null
@@ -0,0 +1,25 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  button1
+    "push button"
+    parent: window1
+    index: 0
+    name: Hello World!
+    state: enabled focusable sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkImage>
+    image size: -1 x -1
+    image description: (null)
+    <AtkAction>
+    action 0 name: click
+    <AtkHyperlinkImpl>
+    anchors: http://www.gtk.org
diff --git a/tests/a11y/link.ui b/tests/a11y/link.ui
new file mode 100644 (file)
index 0000000..d8cff27
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkLinkButton" id="button1">
+        <property name="label" translatable="yes">Hello World!</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="uri">http://www.gtk.org</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/lockbutton.txt b/tests/a11y/lockbutton.txt
new file mode 100644 (file)
index 0000000..9fe8dcd
--- /dev/null
@@ -0,0 +1,25 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  button1
+    "push button"
+    parent: window1
+    index: 0
+    name: Lock
+    description: Dialog is unlocked.
+Click to prevent further changes
+    state: enabled focusable sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkImage>
+    image size: -1 x -1
+    image description: (null)
+    <AtkAction>
+    action 0 name: click
diff --git a/tests/a11y/lockbutton.ui b/tests/a11y/lockbutton.ui
new file mode 100644 (file)
index 0000000..7df14c8
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkLockButton" id="button1">
+        <property name="visible">True</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/menu.txt b/tests/a11y/menu.txt
new file mode 100644 (file)
index 0000000..f7e3d44
--- /dev/null
@@ -0,0 +1,297 @@
+window1
+  "frame"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  menubar1
+    "menu bar"
+    parent: window1
+    index: 0
+    state: enabled sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkSelection>
+    menuitem1
+      "menu"
+      parent: menubar1
+      index: 0
+      name: File
+      state: enabled selectable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: popup
+      alpha: 1
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>f;<Alt>f;
+      <AtkSelection>
+      imagemenuitem1
+        "menu item"
+        parent: menuitem1
+        index: 0
+        name: New
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: n;<Alt>f:n;
+        <AtkSelection>
+      imagemenuitem2
+        "menu"
+        parent: menuitem1
+        index: 1
+        name: Open
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: o;<Alt>f:o;
+        <AtkSelection>
+        radiomenuitem1
+          "radio menu item"
+          parent: imagemenuitem2
+          index: 0
+          name: One
+          member-of: radiomenuitem3
+                     radiomenuitem2
+                     radiomenuitem1
+          state: checked enabled selectable sensitive visible
+          toolkit: gtk
+          <AtkComponent>
+          layer: popup
+          alpha: 1
+          <AtkAction>
+          action 0 name: click
+          <AtkSelection>
+        radiomenuitem2
+          "radio menu item"
+          parent: imagemenuitem2
+          index: 1
+          name: Two
+          member-of: radiomenuitem3
+                     radiomenuitem2
+                     radiomenuitem1
+          state: enabled selectable sensitive visible
+          toolkit: gtk
+          <AtkComponent>
+          layer: popup
+          alpha: 1
+          <AtkAction>
+          action 0 name: click
+          <AtkSelection>
+        radiomenuitem3
+          "radio menu item"
+          parent: imagemenuitem2
+          index: 2
+          name: Three
+          member-of: radiomenuitem3
+                     radiomenuitem2
+                     radiomenuitem1
+          state: enabled selectable sensitive visible
+          toolkit: gtk
+          <AtkComponent>
+          layer: popup
+          alpha: 1
+          <AtkAction>
+          action 0 name: click
+          <AtkSelection>
+      imagemenuitem3
+        "menu item"
+        parent: menuitem1
+        index: 2
+        name: Save
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: s;<Alt>f:s;
+        <AtkSelection>
+      imagemenuitem4
+        "menu item"
+        parent: menuitem1
+        index: 3
+        name: Save As
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: a;<Alt>f:a;
+        <AtkSelection>
+      separatormenuitem1
+        "separator"
+        parent: menuitem1
+        index: 4
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        <AtkSelection>
+      checkmenuitem1
+        "check menu item"
+        parent: menuitem1
+        index: 5
+        name: awesome
+        state: selectable sensitive visible indeterminate
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        <AtkSelection>
+      separatormenuitem2
+        "separator"
+        parent: menuitem1
+        index: 6
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        <AtkSelection>
+      imagemenuitem5
+        "menu item"
+        parent: menuitem1
+        index: 7
+        name: Quit
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: q;<Alt>f:q;
+        <AtkSelection>
+    menuitem2
+      "menu"
+      parent: menubar1
+      index: 1
+      name: Edit
+      state: enabled selectable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: popup
+      alpha: 1
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>e;<Alt>e;
+      <AtkSelection>
+      imagemenuitem6
+        "menu item"
+        parent: menuitem2
+        index: 0
+        name: Cut
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: t;<Alt>e:t;
+        <AtkSelection>
+      imagemenuitem7
+        "menu item"
+        parent: menuitem2
+        index: 1
+        name: Copy
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: c;<Alt>e:c;
+        <AtkSelection>
+      imagemenuitem8
+        "menu item"
+        parent: menuitem2
+        index: 2
+        name: Paste
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: p;<Alt>e:p;
+        <AtkSelection>
+      imagemenuitem9
+        "menu item"
+        parent: menuitem2
+        index: 3
+        name: Delete
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: d;<Alt>e:d;
+        <AtkSelection>
+    menuitem3
+      "menu item"
+      parent: menubar1
+      index: 2
+      name: View
+      state: enabled selectable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: popup
+      alpha: 1
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>v;<Alt>v;
+      <AtkSelection>
+    menuitem4
+      "menu"
+      parent: menubar1
+      index: 3
+      name: Help
+      state: enabled selectable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: popup
+      alpha: 1
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>h;<Alt>h;
+      <AtkSelection>
+      imagemenuitem10
+        "menu item"
+        parent: menuitem4
+        index: 0
+        name: About
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: a;<Alt>h:a;
+        <AtkSelection>
diff --git a/tests/a11y/menu.ui b/tests/a11y/menu.ui
new file mode 100644 (file)
index 0000000..bb2274f
--- /dev/null
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <child>
+      <object class="GtkMenuBar" id="menubar1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <child>
+          <object class="GtkMenuItem" id="menuitem1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="use_action_appearance">False</property>
+            <property name="label" translatable="yes">_File</property>
+            <property name="use_underline">True</property>
+            <child type="submenu">
+              <object class="GtkMenu" id="menu1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem1">
+                    <property name="label">gtk-new</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_stock">True</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem2">
+                    <property name="label">gtk-open</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_stock">True</property>
+                    <child type="submenu">
+                      <object class="GtkMenu" id="menu4">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <child>
+                          <object class="GtkRadioMenuItem" id="radiomenuitem1">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="use_action_appearance">False</property>
+                            <property name="label" translatable="yes">One</property>
+                            <property name="use_underline">True</property>
+                            <property name="active">True</property>
+                            <property name="draw_as_radio">True</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkRadioMenuItem" id="radiomenuitem2">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="use_action_appearance">False</property>
+                            <property name="label" translatable="yes">Two</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_as_radio">True</property>
+                            <property name="group">radiomenuitem1</property>
+                          </object>
+                        </child>
+                        <child>
+                          <object class="GtkRadioMenuItem" id="radiomenuitem3">
+                            <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <property name="use_action_appearance">False</property>
+                            <property name="label" translatable="yes">Three</property>
+                            <property name="use_underline">True</property>
+                            <property name="draw_as_radio">True</property>
+                            <property name="group">radiomenuitem1</property>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem3">
+                    <property name="label">gtk-save</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_stock">True</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem4">
+                    <property name="label">gtk-save-as</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_stock">True</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkSeparatorMenuItem" id="separatormenuitem1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkCheckMenuItem" id="checkmenuitem1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="label" translatable="yes">awesome</property>
+                    <property name="use_underline">True</property>
+                    <property name="inconsistent">True</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkSeparatorMenuItem" id="separatormenuitem2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem5">
+                    <property name="label">gtk-quit</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_stock">True</property>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child>
+          <object class="GtkMenuItem" id="menuitem2">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="use_action_appearance">False</property>
+            <property name="label" translatable="yes">_Edit</property>
+            <property name="use_underline">True</property>
+            <child type="submenu">
+              <object class="GtkMenu" id="menu2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem6">
+                    <property name="label">gtk-cut</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_stock">True</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem7">
+                    <property name="label">gtk-copy</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_stock">True</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem8">
+                    <property name="label">gtk-paste</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_stock">True</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem9">
+                    <property name="label">gtk-delete</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_stock">True</property>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child>
+          <object class="GtkMenuItem" id="menuitem3">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="use_action_appearance">False</property>
+            <property name="label" translatable="yes">_View</property>
+            <property name="use_underline">True</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkMenuItem" id="menuitem4">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="use_action_appearance">False</property>
+            <property name="label" translatable="yes">_Help</property>
+            <property name="use_underline">True</property>
+            <child type="submenu">
+              <object class="GtkMenu" id="menu3">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem10">
+                    <property name="label">gtk-about</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_stock">True</property>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/menus.txt b/tests/a11y/menus.txt
new file mode 100644 (file)
index 0000000..4c2b21f
--- /dev/null
@@ -0,0 +1,127 @@
+window1
+  "frame"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  menubar1
+    "menu bar"
+    parent: window1
+    index: 0
+    state: enabled sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkSelection>
+    menuitem1
+      "menu"
+      parent: menubar1
+      index: 0
+      name: File
+      state: enabled selectable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: popup
+      alpha: 1
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>f;<Alt>f;
+      <AtkSelection>
+      imagemenuitem1
+        "menu item"
+        parent: menuitem1
+        index: 0
+        name: New
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: n;<Alt>f:n;
+        <AtkSelection>
+      imagemenuitem2
+        "menu item"
+        parent: menuitem1
+        index: 1
+        name: bla
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        <AtkSelection>
+      separatormenuitem1
+        "separator"
+        parent: menuitem1
+        index: 2
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        <AtkSelection>
+      menuitem3
+        "check menu item"
+        parent: menuitem1
+        index: 3
+        name: check item
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        <AtkSelection>
+    menuitem2
+      "menu"
+      parent: menubar1
+      index: 1
+      name: Edit
+      state: enabled selectable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: popup
+      alpha: 1
+      <AtkAction>
+      action 0 name: click
+      action 0 keybinding: <Alt>e;<Alt>e;
+      <AtkSelection>
+      menuitem4
+        "radio menu item"
+        parent: menuitem2
+        index: 0
+        name: radio1
+        member-of: menuitem5
+                   menuitem4
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        <AtkSelection>
+      menuitem5
+        "radio menu item"
+        parent: menuitem2
+        index: 1
+        name: radio2
+        member-of: menuitem5
+                   menuitem4
+        state: enabled selectable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkAction>
+        action 0 name: click
+        <AtkSelection>
diff --git a/tests/a11y/menus.ui b/tests/a11y/menus.ui
new file mode 100644 (file)
index 0000000..5b926f3
--- /dev/null
@@ -0,0 +1,106 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkImage" id="image1">
+    <property name="visible">True</property>
+    <property name="can_focus">False</property>
+    <property name="stock">gtk-go-up</property>
+    <property name="icon-size">5</property>
+  </object>
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <child>
+      <object class="GtkMenuBar" id="menubar1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <child>
+          <object class="GtkMenuItem" id="menuitem1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="use_action_appearance">False</property>
+            <property name="label" translatable="yes">_File</property>
+            <property name="use_underline">True</property>
+            <child type="submenu">
+              <object class="GtkMenu" id="menu1">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem1">
+                    <property name="label">gtk-new</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="use_underline">True</property>
+                    <property name="use_stock">True</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkImageMenuItem" id="imagemenuitem2">
+                    <property name="label" translatable="yes">bla</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="image">image1</property>
+                    <property name="use_stock">False</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkSeparatorMenuItem" id="separatormenuitem1">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkCheckMenuItem" id="menuitem3">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="label" translatable="yes">check item</property>
+                    <property name="use_underline">True</property>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+        <child>
+          <object class="GtkMenuItem" id="menuitem2">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="use_action_appearance">False</property>
+            <property name="label" translatable="yes">_Edit</property>
+            <property name="use_underline">True</property>
+            <child type="submenu">
+              <object class="GtkMenu" id="menu2">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <child>
+                  <object class="GtkRadioMenuItem" id="menuitem4">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="label" translatable="yes">radio1</property>
+                    <property name="use_underline">True</property>
+                    <property name="draw_as_radio">True</property>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkRadioMenuItem" id="menuitem5">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="use_action_appearance">False</property>
+                    <property name="label" translatable="yes">radio2</property>
+                    <property name="use_underline">True</property>
+                    <property name="draw_as_radio">True</property>
+                    <property name="group">menuitem4</property>
+                  </object>
+                </child>
+              </object>
+            </child>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/messagedialog.txt b/tests/a11y/messagedialog.txt
new file mode 100644 (file)
index 0000000..418a51e
--- /dev/null
@@ -0,0 +1,136 @@
+window1
+  "alert"
+  index: 0
+  name: Information
+  state: enabled sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  unnamed-GtkBoxAccessible-0
+    "filler"
+    parent: window1
+    index: 0
+    state: enabled sensitive showing vertical visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    unnamed-GtkBoxAccessible-1
+      "filler"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 0
+      state: enabled horizontal sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      unnamed-GtkImageAccessible-2
+        "icon"
+        parent: unnamed-GtkBoxAccessible-1
+        index: 0
+        name: Information
+        state: enabled sensitive showing visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: 48 x 48
+        image description: (null)
+      unnamed-GtkBoxAccessible-3
+        "filler"
+        parent: unnamed-GtkBoxAccessible-1
+        index: 1
+        state: enabled sensitive showing vertical visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        Information
+          "label"
+          parent: unnamed-GtkBoxAccessible-3
+          index: 0
+          name: Information
+          state: enabled focusable multi-line sensitive showing visible
+          toolkit: gtk
+          <AtkComponent>
+          layer: widget
+          alpha: 1
+          <AtkText>
+          text: Information
+          character count: 11
+          caret offset: 0
+          default attributes: bg-color: <omitted>
+                              bg-full-height: 0
+                              direction: <omitted>
+                              editable: false
+                              family-name: <omitted>
+                              fg-color: <omitted>
+                              indent: 0
+                              invisible: false
+                              justification: left
+                              language: <omitted>
+                              left-margin: 0
+                              pixels-above-lines: 0
+                              pixels-below-lines: 0
+                              pixels-inside-wrap: 0
+                              right-margin: 0
+                              rise: 0
+                              scale: 1
+                              size: <omitted>
+                              stretch: <omitted>
+                              strikethrough: false
+                              style: <omitted>
+                              underline: none
+                              variant: <omitted>
+                              weight: <omitted>
+                              wrap-mode: word
+        More Information
+          "label"
+          parent: unnamed-GtkBoxAccessible-3
+          index: 1
+          name: More Information
+          state: enabled focusable multi-line sensitive showing visible
+          toolkit: gtk
+          <AtkComponent>
+          layer: widget
+          alpha: 1
+          <AtkText>
+          text: More Information
+          character count: 16
+          caret offset: 0
+          default attributes: bg-color: <omitted>
+                              bg-full-height: 0
+                              direction: <omitted>
+                              editable: false
+                              family-name: <omitted>
+                              fg-color: <omitted>
+                              indent: 0
+                              invisible: false
+                              justification: left
+                              language: <omitted>
+                              left-margin: 0
+                              pixels-above-lines: 0
+                              pixels-below-lines: 0
+                              pixels-inside-wrap: 0
+                              right-margin: 0
+                              rise: 0
+                              scale: 1
+                              size: <omitted>
+                              stretch: <omitted>
+                              strikethrough: false
+                              style: <omitted>
+                              underline: none
+                              variant: <omitted>
+                              weight: <omitted>
+                              wrap-mode: word
+    unnamed-GtkBoxAccessible-4
+      "filler"
+      parent: unnamed-GtkBoxAccessible-0
+      index: 1
+      state: enabled horizontal sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
diff --git a/tests/a11y/messagedialog.ui b/tests/a11y/messagedialog.ui
new file mode 100644 (file)
index 0000000..a6a080e
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkMessageDialog" id="window1">
+    <property name="visible">True</property>
+    <property name="message-type">info</property>
+    <property name="text" translatable="yes">Information</property>
+    <property name="secondary-text" translatable="yes">More Information</property>
+  </object>
+</interface>
diff --git a/tests/a11y/mnemonic.txt b/tests/a11y/mnemonic.txt
new file mode 100644 (file)
index 0000000..0fb56a9
--- /dev/null
@@ -0,0 +1,99 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  box1
+    "filler"
+    parent: window1
+    index: 0
+    state: enabled horizontal sensitive
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    label1
+      "label"
+      parent: box1
+      index: 0
+      name: Entry:
+      label-for: entry1
+      state: enabled multi-line sensitive visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Entry:
+      character count: 6
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          direction: <omitted>
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+    entry1
+      "text"
+      parent: box1
+      index: 1
+      labelled-by: label1
+      state: editable enabled focusable sensitive single-line visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: text
+      character count: 4
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          direction: <omitted>
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+      action 0 keybinding: <Alt>e
diff --git a/tests/a11y/mnemonic.ui b/tests/a11y/mnemonic.ui
new file mode 100644 (file)
index 0000000..443f2cd
--- /dev/null
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkBox" id="box1">
+        <child>
+          <object class="GtkLabel" id="label1">
+            <property name="label" translatable="yes">_Entry:</property>
+            <property name="visible">True</property>
+            <property name="use_underline">True</property>
+            <property name="mnemonic_widget">entry1</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkEntry" id="entry1">
+            <property name="text" translatable="yes">text</property>
+            <property name="visible">True</property>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/notebook.txt b/tests/a11y/notebook.txt
new file mode 100644 (file)
index 0000000..458b429
--- /dev/null
@@ -0,0 +1,67 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  notebook1
+    "page tab list"
+    parent: window1
+    index: 0
+    state: enabled focusable sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkSelection>
+    selected children: unnamed-GtkNotebookPageAccessible-0
+    unnamed-GtkNotebookPageAccessible-0
+      "page tab"
+      parent: notebook1
+      index: 0
+      name: Tab 1
+      state: enabled multi-line selectable selected sensitive showing visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      page1
+        "push button"
+        index: 0
+        name: Yes
+        state: enabled focusable sensitive showing visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: 20 x 20
+        image description: (null)
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: <Alt>y
+    unnamed-GtkNotebookPageAccessible-1
+      "page tab"
+      parent: notebook1
+      index: 1
+      name: Tab 2
+      state: enabled multi-line selectable sensitive showing visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      page2
+        "push button"
+        index: 0
+        name: No
+        state: enabled focusable sensitive visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: 20 x 20
+        image description: (null)
+        <AtkAction>
+        action 0 name: click
+        action 0 keybinding: <Alt>n
diff --git a/tests/a11y/notebook.ui b/tests/a11y/notebook.ui
new file mode 100644 (file)
index 0000000..95d1328
--- /dev/null
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkNotebook" id="notebook1">
+        <property name="visible">True</property>
+        <child>
+          <object class="GtkButton" id="page1">
+            <property name="label">gtk-yes</property>
+            <property name="use_stock">True</property>
+            <property name="visible">True</property>
+          </object>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="tab1">
+            <property name="label" translatable="yes">Tab 1</property>
+            <property name="visible">True</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkButton" id="page2">
+            <property name="label">gtk-no</property>
+            <property name="use_stock">True</property>
+            <property name="visible">True</property>
+          </object>
+        </child>
+        <child type="tab">
+          <object class="GtkLabel" id="tab2">
+            <property name="label" translatable="yes">Tab 2</property>
+            <property name="visible">True</property>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/paned.txt b/tests/a11y/paned.txt
new file mode 100644 (file)
index 0000000..c1eecc7
--- /dev/null
@@ -0,0 +1,100 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  paned1
+    "split pane"
+    parent: window1
+    index: 0
+    state: enabled focusable horizontal sensitive
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkValue>
+    minimum value: 0
+    maximum value: 0
+    current value: 0
+    minimum increment: 0
+    label1
+      "label"
+      parent: paned1
+      index: 0
+      name: Left
+      state: enabled multi-line sensitive visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Left
+      character count: 4
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          direction: <omitted>
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+    label2
+      "label"
+      parent: paned1
+      index: 1
+      name: Right
+      state: enabled multi-line sensitive visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Right
+      character count: 5
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          direction: <omitted>
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
diff --git a/tests/a11y/paned.ui b/tests/a11y/paned.ui
new file mode 100644 (file)
index 0000000..2126257
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkPaned" id="paned1">
+        <child>
+          <object class="GtkLabel" id="label1">
+            <property name="label" translatable="yes">Left</property>
+            <property name="visible">True</property>
+          </object>
+        </child>
+        <child>
+          <object class="GtkLabel" id="label2">
+            <property name="label" translatable="yes">Right</property>
+            <property name="visible">True</property>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/pickers.txt b/tests/a11y/pickers.txt
new file mode 100644 (file)
index 0000000..dc6dcf8
--- /dev/null
@@ -0,0 +1,183 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  grid1
+    "panel"
+    parent: window1
+    index: 0
+    state: enabled horizontal sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    button4
+      "filler"
+      parent: grid1
+      index: 0
+      state: enabled horizontal sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      unnamed-GtkButtonAccessible-0
+        "push button"
+        parent: button4
+        index: 0
+        name: (None)
+        state: enabled focusable sensitive showing visible
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkImage>
+        image size: -1 x -1
+        image description: (null)
+        <AtkAction>
+        action 0 name: click
+      unnamed-GtkComboBoxAccessible-1
+        "combo box"
+        parent: button4
+        index: 1
+        state: enabled sensitive
+        toolkit: gtk
+        <AtkComponent>
+        layer: widget
+        alpha: 1
+        <AtkAction>
+        action 0 name: press
+        <AtkSelection>
+        unnamed-GtkMenuAccessible-2
+          "menu"
+          parent: unnamed-GtkComboBoxAccessible-1
+          index: 0
+          state: enabled selectable sensitive
+          toolkit: gtk
+          <AtkComponent>
+          layer: popup
+          alpha: 1
+          <AtkSelection>
+          unnamed-GtkMenuItemAccessible-3
+            "menu item"
+            parent: unnamed-GtkMenuAccessible-2
+            index: 0
+            state: enabled selectable sensitive visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: popup
+            alpha: 1
+            <AtkAction>
+            action 0 name: click
+          unnamed-GtkMenuItemAccessible-4
+            "menu item"
+            parent: unnamed-GtkMenuAccessible-2
+            index: 1
+            name: File System
+            state: enabled selectable sensitive visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: popup
+            alpha: 1
+            <AtkAction>
+            action 0 name: click
+          unnamed-GtkMenuItemAccessible-5
+            "menu item"
+            parent: unnamed-GtkMenuAccessible-2
+            index: 2
+            name: _F15-Livecd-Desk
+            state: enabled selectable sensitive visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: popup
+            alpha: 1
+            <AtkAction>
+            action 0 name: click
+          unnamed-GtkMenuItemAccessible-6
+            "separator"
+            parent: unnamed-GtkMenuAccessible-2
+            index: 3
+            state: enabled selectable sensitive visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: popup
+            alpha: 1
+            <AtkAction>
+            action 0 name: click
+          unnamed-GtkMenuItemAccessible-7
+            "separator"
+            parent: unnamed-GtkMenuAccessible-2
+            index: 4
+            state: enabled selectable sensitive visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: popup
+            alpha: 1
+            <AtkAction>
+            action 0 name: click
+          unnamed-GtkMenuItemAccessible-8
+            "menu item"
+            parent: unnamed-GtkMenuAccessible-2
+            index: 5
+            name: Other...
+            state: enabled selectable sensitive visible
+            toolkit: gtk
+            <AtkComponent>
+            layer: popup
+            alpha: 1
+            <AtkAction>
+            action 0 name: click
+    button3
+      "push button"
+      parent: grid1
+      index: 1
+      name: Sans
+      state: enabled focusable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+    button2
+      "push button"
+      parent: grid1
+      index: 2
+      state: enabled focusable sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+    button1
+      "combo box"
+      parent: grid1
+      index: 3
+      state: enabled sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkAction>
+      action 0 name: press
+      <AtkSelection>
+      unnamed-GtkMenuAccessible-9
+        "menu"
+        parent: button1
+        index: 0
+        state: enabled selectable sensitive
+        toolkit: gtk
+        <AtkComponent>
+        layer: popup
+        alpha: 1
+        <AtkSelection>
diff --git a/tests/a11y/pickers.ui b/tests/a11y/pickers.ui
new file mode 100644 (file)
index 0000000..91b2cd1
--- /dev/null
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkGrid" id="grid1">
+        <property name="visible">True</property>
+        <child>
+          <object class="GtkAppChooserButton" id="button1">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkColorButton" id="button2">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFontButton" id="button3">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">2</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkFileChooserButton" id="button4">
+            <property name="visible">True</property>
+          </object>
+          <packing>
+            <property name="left_attach">3</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/placeholder-text.txt b/tests/a11y/placeholder-text.txt
new file mode 100644 (file)
index 0000000..226a16e
--- /dev/null
@@ -0,0 +1,140 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  box1
+    "filler"
+    parent: window1
+    index: 0
+    state: enabled sensitive showing vertical visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    entry1
+      "text"
+      parent: box1
+      index: 0
+      state: editable enabled focusable sensitive showing single-line visible
+      toolkit: gtk
+      placeholder-text: Subject or Addresses contain
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: 
+      character count: 0
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          direction: <omitted>
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+    entry2
+      "text"
+      parent: box1
+      index: 1
+      state: editable enabled focusable sensitive showing single-line visible
+      toolkit: gtk
+      placeholder-text: Message contains
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Some text
+      character count: 9
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          direction: <omitted>
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+    entry3
+      "text"
+      parent: box1
+      index: 2
+      state: editable enabled focusable sensitive showing single-line visible
+      toolkit: gtk
+      placeholder-text: Body contains
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: 
+      character count: 0
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          direction: <omitted>
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
diff --git a/tests/a11y/placeholder-text.ui b/tests/a11y/placeholder-text.ui
new file mode 100644 (file)
index 0000000..4657cb5
--- /dev/null
@@ -0,0 +1,60 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkBox" id="box1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <child>
+          <object class="GtkEntry" id="entry1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="invisible_char">●</property>
+            <property name="invisible_char_set">True</property>
+            <property name="placeholder_text">Subject or Addresses contain</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkEntry" id="entry2">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="invisible_char">●</property>
+            <property name="text" translatable="yes">Some text</property>
+            <property name="invisible_char_set">True</property>
+            <property name="placeholder_text">Message contains</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkEntry" id="entry3">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="has_focus">True</property>
+            <property name="is_focus">True</property>
+            <property name="invisible_char">●</property>
+            <property name="invisible_char_set">True</property>
+            <property name="placeholder_text">Body contains</property>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">2</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/progress.txt b/tests/a11y/progress.txt
new file mode 100644 (file)
index 0000000..186711a
--- /dev/null
@@ -0,0 +1,22 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  progress1
+    "progress bar"
+    parent: window1
+    index: 0
+    state: enabled horizontal sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkValue>
+    minimum value: 0.000000
+    maximum value: 1.000000
+    current value: 0.500000
+    minimum increment: 0.000000
diff --git a/tests/a11y/progress.ui b/tests/a11y/progress.ui
new file mode 100644 (file)
index 0000000..f34c13b
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkProgressBar" id="progress1">
+        <property name="visible">True</property>
+        <property name="fraction">0.5</property>
+        <property name="text">Good progress!</property>
+        <property name="show-text">True</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/range.txt b/tests/a11y/range.txt
new file mode 100644 (file)
index 0000000..656a800
--- /dev/null
@@ -0,0 +1,50 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  grid1
+    "panel"
+    parent: window1
+    index: 0
+    state: enabled horizontal sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    scrollbar1
+      "scroll bar"
+      parent: grid1
+      index: 0
+      state: enabled focusable horizontal sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkAction>
+      action 0 name: activate
+      <AtkValue>
+      minimum value: 0.500000
+      maximum value: 99.500000
+      current value: 45.500000
+      minimum increment: 0.500000
+    scale1
+      "slider"
+      parent: grid1
+      index: 1
+      description: 45.5
+      state: enabled focusable horizontal sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkAction>
+      action 0 name: activate
+      <AtkValue>
+      minimum value: 0.500000
+      maximum value: 99.500000
+      current value: 45.500000
+      minimum increment: 0.500000
diff --git a/tests/a11y/range.ui b/tests/a11y/range.ui
new file mode 100644 (file)
index 0000000..9c1ac45
--- /dev/null
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="lower">0.5</property>
+    <property name="upper">99.5</property>
+    <property name="page-size">0</property>
+    <property name="value">45.5</property>
+    <property name="step-increment">0.5</property>
+    <property name="page-increment">5.0</property>
+  </object>
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkGrid" id="grid1">
+        <property name="visible">True</property>
+        <child>
+          <object class="GtkScale" id="scale1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="adjustment">adjustment1</property>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkScrollbar" id="scrollbar1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="adjustment">adjustment1</property>
+          </object>
+          <packing>
+            <property name="left_attach">1</property>
+            <property name="top_attach">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/scale-drawvalue.txt b/tests/a11y/scale-drawvalue.txt
new file mode 100644 (file)
index 0000000..0c5e406
--- /dev/null
@@ -0,0 +1,25 @@
+window1
+  "frame"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  scale1
+    "slider"
+    parent: window1
+    index: 0
+    description: -42.0
+    state: enabled focusable horizontal sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkAction>
+    action 0 name: activate
+    <AtkValue>
+    minimum value: -100.000000
+    maximum value: 100.000000
+    current value: -42.000000
+    minimum increment: 1.000000
diff --git a/tests/a11y/scale-drawvalue.ui b/tests/a11y/scale-drawvalue.ui
new file mode 100644 (file)
index 0000000..ad6abbe
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkAdjustment" id="adjustment1">
+    <property name="lower">-100</property>
+    <property name="upper">100</property>
+    <property name="value">-42</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <child>
+      <object class="GtkScale" id="scale1">
+        <property name="width-request">100</property>
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="adjustment">adjustment1</property>
+        <property name="round_digits">1</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/spinner.txt b/tests/a11y/spinner.txt
new file mode 100644 (file)
index 0000000..dd7c9f0
--- /dev/null
@@ -0,0 +1,22 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  spinner1
+    "animation"
+    parent: window1
+    index: 0
+    name: Spinner
+    description: Provides visual indication of progress
+    state: enabled sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkImage>
+    image size: 12 x 12
+    image description: (null)
diff --git a/tests/a11y/spinner.ui b/tests/a11y/spinner.ui
new file mode 100644 (file)
index 0000000..3873564
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkSpinner" id="spinner1">
+        <property name="visible">True</property>
+        <property name="active">True</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/statusbar.txt b/tests/a11y/statusbar.txt
new file mode 100644 (file)
index 0000000..f98fc9a
--- /dev/null
@@ -0,0 +1,18 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  statusbar1
+    "statusbar"
+    parent: window1
+    index: 0
+    name: 
+    state: enabled horizontal sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
diff --git a/tests/a11y/statusbar.ui b/tests/a11y/statusbar.ui
new file mode 100644 (file)
index 0000000..bc635bc
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkStatusbar" id="statusbar1">
+        <property name="visible">True</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/testfocus.c b/tests/a11y/testfocus.c
new file mode 100644 (file)
index 0000000..131a82a
--- /dev/null
@@ -0,0 +1,117 @@
+#include <gtk/gtk.h>
+
+static const gchar *
+get_name (gpointer obj)
+{
+  GtkWidget *widget;
+  if (obj == NULL)
+    return "(nil)";
+  else if (GTK_IS_WIDGET (obj))
+    widget = GTK_WIDGET (obj);
+  else if (GTK_IS_ACCESSIBLE (obj))
+    widget = gtk_accessible_get_widget (GTK_ACCESSIBLE (obj));
+  else
+    return "OOPS";
+  if (GTK_IS_BUILDABLE (widget))
+    return gtk_buildable_get_name (GTK_BUILDABLE (widget));
+  else
+    return G_OBJECT_TYPE_NAME (widget);
+}
+
+static gboolean
+compare_focus (gpointer data)
+{
+  AtkObject *atk_focus;
+  AtkObject *gtk_focus;
+  GtkWidget *focus_widget;
+  GList *list, *l;
+
+  atk_focus = atk_get_focus_object ();
+
+  focus_widget = NULL;
+  list = gtk_window_list_toplevels ();
+  for (l = list; l; l = l->next)
+    {
+      GtkWindow *w = l->data;
+      if (gtk_window_is_active (w))
+        {
+          focus_widget = gtk_window_get_focus (w);
+          break;
+        }
+    }
+  g_list_free (list);
+
+  if (GTK_IS_WIDGET (focus_widget))
+    gtk_focus = gtk_widget_get_accessible (focus_widget);
+  else
+    gtk_focus = NULL;
+
+  if (gtk_focus != atk_focus)
+    g_print ("gtk focus: %s != atk focus: %s\n",
+             get_name (gtk_focus), get_name (atk_focus));
+
+  return TRUE;
+}
+
+static void
+notify_cb (GObject *obj, GParamSpec *pspec, gpointer data)
+{
+  gboolean value;
+
+  if (g_strcmp0 (pspec->name, "has-focus") != 0)
+    return;
+
+  g_object_get (obj, "has-focus", &value, NULL);
+  g_print ("widget %s %p has-focus -> %d\n", get_name (obj), obj, value);
+}
+
+static void
+state_change_cb (AtkObject *obj, const gchar *name, gboolean state_set)
+{
+  AtkStateSet *set;
+
+  set = atk_object_ref_state_set (obj);
+  g_print ("accessible %s %p focused -> %d\n", get_name (obj), obj,
+           atk_state_set_contains_state (set, ATK_STATE_FOCUSED));
+  g_object_unref (set);
+}
+
+int
+main (int argc, char *argv[])
+{
+  GtkBuilder *builder;
+  GtkWidget *window;
+  GSList *o, *l;
+  GtkWidget *widget;
+  AtkObject *accessible;
+
+  gtk_init (&argc, &argv);
+
+  builder = gtk_builder_new ();
+  gtk_builder_add_from_file (builder, argv[1], NULL);
+
+  window = (GtkWidget *)gtk_builder_get_object (builder, "window1");
+
+  o = gtk_builder_get_objects (builder);
+  for (l = o; l;l = l->next)
+    {
+       if (!GTK_IS_WIDGET (l->data))
+         continue;
+
+       widget = l->data;
+       g_signal_connect (widget, "notify::has-focus", G_CALLBACK (notify_cb), NULL);
+       accessible = gtk_widget_get_accessible (widget);
+       g_signal_connect (accessible, "state-change::focused", G_CALLBACK (state_change_cb), NULL);
+
+    }
+  g_slist_free (o);
+
+  g_timeout_add (100, compare_focus, NULL);
+
+  gtk_widget_show_all (window);
+
+  gtk_main ();
+
+  return 0;
+}
+
diff --git a/tests/a11y/text.c b/tests/a11y/text.c
new file mode 100644 (file)
index 0000000..80b8b77
--- /dev/null
@@ -0,0 +1,753 @@
+/*
+ * Copyright (C) 2011 Red Hat Inc.
+ *
+ * Author:
+ *      Matthias Clasen <mclasen@redhat.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gtk/gtk.h>
+#include <string.h>
+
+static void
+set_text (GtkWidget   *widget,
+          const gchar *text)
+{
+  if (GTK_IS_LABEL (widget))
+    gtk_label_set_text (GTK_LABEL (widget), text);
+  else if (GTK_IS_ENTRY (widget))
+    gtk_entry_set_text (GTK_ENTRY (widget), text);
+  else if (GTK_IS_TEXT_VIEW (widget))
+    gtk_text_buffer_set_text (gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget)), text, -1);
+  else
+    g_assert_not_reached ();
+}
+
+static void
+test_basic (GtkWidget *widget)
+{
+  AtkText *atk_text;
+  const gchar *text = "Text goes here";
+  gchar *ret;
+  gint count;
+  gunichar c;
+
+  atk_text = ATK_TEXT (gtk_widget_get_accessible (widget));
+
+  set_text (widget, text);
+  ret = atk_text_get_text (atk_text, 5, 9);
+  g_assert_cmpstr (ret, ==, "goes");
+  g_free (ret);
+
+  ret = atk_text_get_text (atk_text, 0, 14);
+  g_assert_cmpstr (ret, ==, text);
+  g_free (ret);
+
+  ret = atk_text_get_text (atk_text, 0, -1);
+  g_assert_cmpstr (ret, ==, text);
+  g_free (ret);
+
+  count = atk_text_get_character_count (atk_text);
+  g_assert_cmpint (count, ==, g_utf8_strlen (text, -1));
+
+  c = atk_text_get_character_at_offset (atk_text, 0);
+  g_assert_cmpint (c, ==, 'T');
+
+  c = atk_text_get_character_at_offset (atk_text, 13);
+  g_assert_cmpint (c, ==, 'e');
+}
+
+typedef struct {
+  gint count;
+  gint position;
+  gint length;
+} SignalData;
+
+static void
+text_deleted (AtkText *atk_text, gint position, gint length, SignalData *data)
+{
+  data->count++;
+  data->position = position;
+  data->length = length;
+}
+
+static void
+text_inserted (AtkText *atk_text, gint position, gint length, SignalData *data)
+{
+  data->count++;
+  data->position = position;
+  data->length = length;
+}
+
+static void
+test_text_changed (GtkWidget *widget)
+{
+  AtkText *atk_text;
+  const gchar *text = "Text goes here";
+  const gchar *text2 = "Text again";
+  SignalData delete_data;
+  SignalData insert_data;
+
+  atk_text = ATK_TEXT (gtk_widget_get_accessible (widget));
+
+  delete_data.count = 0;
+  insert_data.count = 0;
+
+  g_signal_connect (atk_text, "text_changed::delete",
+                    G_CALLBACK (text_deleted), &delete_data);
+  g_signal_connect (atk_text, "text_changed::insert",
+                    G_CALLBACK (text_inserted), &insert_data);
+
+  set_text (widget, text);
+
+  g_assert_cmpint (delete_data.count, ==, 0);
+
+  g_assert_cmpint (insert_data.count, ==, 1);
+  g_assert_cmpint (insert_data.position, ==, 0);
+  g_assert_cmpint (insert_data.length, ==, g_utf8_strlen (text, -1));
+
+  set_text (widget, text2);
+
+  g_assert_cmpint (delete_data.count, ==, 1);
+  g_assert_cmpint (delete_data.position, ==, 0);
+  g_assert_cmpint (delete_data.length, ==, g_utf8_strlen (text, -1));
+
+  g_assert_cmpint (insert_data.count, ==, 2);
+  g_assert_cmpint (insert_data.position, ==, 0);
+  g_assert_cmpint (insert_data.length, ==, g_utf8_strlen (text2, -1));
+
+  set_text (widget, "");
+
+  g_assert_cmpint (delete_data.count, ==, 2);
+  g_assert_cmpint (delete_data.position, ==, 0);
+  g_assert_cmpint (delete_data.length, ==, g_utf8_strlen (text2, -1));
+
+  g_assert_cmpint (insert_data.count, ==, 2);
+
+  g_signal_handlers_disconnect_by_func (atk_text, G_CALLBACK (text_deleted), &delete_data);
+  g_signal_handlers_disconnect_by_func (atk_text, G_CALLBACK (text_inserted), &insert_data);
+}
+
+typedef struct {
+  gint gravity;
+  gint offset;
+  AtkTextBoundary boundary;
+  gint start;
+  gint end;
+  const gchar *word;
+} Word;
+
+#ifdef DUMP_RESULTS
+static const gchar *
+boundary (AtkTextBoundary b)
+{
+  switch (b)
+    {
+    case ATK_TEXT_BOUNDARY_CHAR:           return "ATK_TEXT_BOUNDARY_CHAR,          ";
+    case ATK_TEXT_BOUNDARY_WORD_START:     return "ATK_TEXT_BOUNDARY_WORD_START,    ";
+    case ATK_TEXT_BOUNDARY_WORD_END:       return "ATK_TEXT_BOUNDARY_WORD_END,      ";
+    case ATK_TEXT_BOUNDARY_SENTENCE_START: return "ATK_TEXT_BOUNDARY_SENTENCE_START,";
+    case ATK_TEXT_BOUNDARY_SENTENCE_END:   return "ATK_TEXT_BOUNDARY_SENTENCE_END,  ";
+    case ATK_TEXT_BOUNDARY_LINE_START:     return "ATK_TEXT_BOUNDARY_LINE_START,    ";
+    case ATK_TEXT_BOUNDARY_LINE_END:       return "ATK_TEXT_BOUNDARY_LINE_END,      ";
+    default: g_assert_not_reached ();
+    }
+}
+
+static const gchar *
+gravity (gint g)
+{
+  if (g < 0) return "before";
+  else if (g > 0) return "after";
+  else return "around";
+}
+
+const gchar *
+char_rep (gunichar c)
+{
+  static gchar out[6];
+
+  switch (c)
+    {
+      case '\n': return "\\n";
+      case 196: return "?";
+      case 214: return "?";
+      case 220: return "?";
+      default:
+        memset (out, 0, 6);
+        g_unichar_to_utf8 (c, out);
+        return out;
+    }
+}
+
+gchar *
+escape (const gchar *p)
+{
+  GString *s;
+
+  s = g_string_new ("");
+
+  while (*p)
+    {
+      if (*p == '\n')
+        g_string_append (s, "\\n");
+      else
+        g_string_append_c (s, *p);
+      p++;
+    }
+
+  return g_string_free (s, FALSE);
+}
+#endif
+
+#ifdef SHOW_TEXT_ATTRIBUTES
+static void
+show_text_attributes (PangoLayout *l)
+{
+  const PangoLogAttr *attr;
+  gint n_attrs;
+  const gchar *s;
+  gchar e;
+  const gchar *p;
+  gint i;
+  const gchar *text;
+  GSList *lines, *li;
+  glong so, eo;
+
+  printf ("\n");
+
+  text = pango_layout_get_text (l);
+  attr = pango_layout_get_log_attrs_readonly (l, &n_attrs);
+
+  p = text;
+  while (*p)
+    {
+      s = char_rep (g_utf8_get_char (p));
+      printf (" %s", s);
+      p = g_utf8_next_char (p);
+    }
+  printf ("\n");
+  p = text;
+  i = 0;
+  do
+    {
+      if (*p)
+        s = char_rep (g_utf8_get_char (p));
+      else
+        s = "";
+      if (attr[i].is_word_start && attr[i].is_word_end)
+        e = '|';
+      else if (attr[i].is_word_start)
+        e = '<';
+      else if (attr[i].is_word_end)
+        e = '>';
+      else
+        e = ' ';
+      printf ("%c%*s", e, strlen (s), "");
+      if (*p)
+        p = g_utf8_next_char (p);
+      i++;
+    }
+  while (*p || i < n_attrs);
+  printf ("\n");
+
+  p = text;
+  i = 0;
+  do
+    {
+      if (*p)
+        s = char_rep (g_utf8_get_char (p));
+      else
+        s = "";
+      if (attr[i].is_sentence_start && attr[i].is_sentence_end)
+        e = '|';
+      else if (attr[i].is_sentence_start)
+        e = '<';
+      else if (attr[i].is_sentence_end)
+        e = '>';
+      else
+        e = ' ';
+      printf ("%c%*s", e, strlen (s), "");
+      if (*p)
+        p = g_utf8_next_char (p);
+      i++;
+    }
+  while (*p || i < n_attrs);
+  printf ("\n");
+
+  lines = pango_layout_get_lines_readonly (l);
+  p = text;
+  i = 0;
+  do
+    {
+      gboolean start, end;
+
+      if (*p)
+        s = char_rep (g_utf8_get_char (p));
+      else
+        s = "";
+      start = end = FALSE;
+      for (li = lines; li; li = li->next)
+        {
+          PangoLayoutLine *line = li->data;
+          so = g_utf8_pointer_to_offset (text, text + line->start_index);
+          eo = g_utf8_pointer_to_offset (text, text + line->start_index + line->length);
+          if (so == i)
+            start = TRUE;
+          if (eo == i)
+            end = TRUE;
+        }
+      if (start && end)
+        e = '|';
+      else if (start)
+        e = '<';
+      else if (end)
+        e = '>';
+      else
+        e = ' ';
+      printf ("%c%*s", e, strlen (s), "");
+      if (*p)
+        p = g_utf8_next_char (p);
+      i++;
+    }
+  while (*p || i < n_attrs);
+  printf ("\n");
+}
+#endif
+
+static void
+test_words (GtkWidget *widget)
+{
+  AtkText *atk_text;
+  const gchar *text = "abc! def\nghi jkl\nmno";
+  Word expected[] = {
+    { -1,  0, ATK_TEXT_BOUNDARY_CHAR,  0,  0, "" },
+    { -1,  1, ATK_TEXT_BOUNDARY_CHAR,  0,  1, "a" },
+    { -1,  2, ATK_TEXT_BOUNDARY_CHAR,  1,  2, "b" },
+    { -1,  3, ATK_TEXT_BOUNDARY_CHAR,  2,  3, "c" },
+    { -1,  4, ATK_TEXT_BOUNDARY_CHAR,  3,  4, "!" },
+    { -1,  5, ATK_TEXT_BOUNDARY_CHAR,  4,  5, " " },
+    { -1,  6, ATK_TEXT_BOUNDARY_CHAR,  5,  6, "d" },
+    { -1,  7, ATK_TEXT_BOUNDARY_CHAR,  6,  7, "e" },
+    { -1,  8, ATK_TEXT_BOUNDARY_CHAR,  7,  8, "f" },
+    { -1,  9, ATK_TEXT_BOUNDARY_CHAR,  8,  9, "\n" },
+    { -1, 10, ATK_TEXT_BOUNDARY_CHAR,  9, 10, "g" },
+    { -1, 11, ATK_TEXT_BOUNDARY_CHAR, 10, 11, "h" },
+    { -1, 12, ATK_TEXT_BOUNDARY_CHAR, 11, 12, "i" },
+    { -1, 13, ATK_TEXT_BOUNDARY_CHAR, 12, 13, " " },
+    { -1, 14, ATK_TEXT_BOUNDARY_CHAR, 13, 14, "j" },
+    { -1, 15, ATK_TEXT_BOUNDARY_CHAR, 14, 15, "k" },
+    { -1, 16, ATK_TEXT_BOUNDARY_CHAR, 15, 16, "l" },
+    { -1, 17, ATK_TEXT_BOUNDARY_CHAR, 16, 17, "\n" },
+    { -1, 18, ATK_TEXT_BOUNDARY_CHAR, 17, 18, "m" },
+    { -1, 19, ATK_TEXT_BOUNDARY_CHAR, 18, 19, "n" },
+    { -1, 20, ATK_TEXT_BOUNDARY_CHAR, 19, 20, "o" },
+    { -1,  0, ATK_TEXT_BOUNDARY_WORD_START,  0,  0, "" },
+    { -1,  1, ATK_TEXT_BOUNDARY_WORD_START,  0,  0, "" },
+    { -1,  2, ATK_TEXT_BOUNDARY_WORD_START,  0,  0, "" },
+    { -1,  3, ATK_TEXT_BOUNDARY_WORD_START,  0,  0, "" },
+    { -1,  4, ATK_TEXT_BOUNDARY_WORD_START,  0,  0, "" },
+    { -1,  5, ATK_TEXT_BOUNDARY_WORD_START,  0,  5, "abc! " },
+    { -1,  6, ATK_TEXT_BOUNDARY_WORD_START,  0,  5, "abc! " },
+    { -1,  7, ATK_TEXT_BOUNDARY_WORD_START,  0,  5, "abc! " },
+    { -1,  8, ATK_TEXT_BOUNDARY_WORD_START,  0,  5, "abc! " },
+    { -1,  9, ATK_TEXT_BOUNDARY_WORD_START,  5,  9, "def\n" },
+    { -1, 10, ATK_TEXT_BOUNDARY_WORD_START,  5,  9, "def\n" },
+    { -1, 11, ATK_TEXT_BOUNDARY_WORD_START,  5,  9, "def\n" },
+    { -1, 12, ATK_TEXT_BOUNDARY_WORD_START,  5,  9, "def\n" },
+    { -1, 13, ATK_TEXT_BOUNDARY_WORD_START,  9, 13, "ghi " },
+    { -1, 14, ATK_TEXT_BOUNDARY_WORD_START,  9, 13, "ghi " },
+    { -1, 15, ATK_TEXT_BOUNDARY_WORD_START,  9, 13, "ghi " },
+    { -1, 16, ATK_TEXT_BOUNDARY_WORD_START,  9, 13, "ghi " },
+    { -1, 17, ATK_TEXT_BOUNDARY_WORD_START, 13, 17, "jkl\n" },
+    { -1, 18, ATK_TEXT_BOUNDARY_WORD_START, 13, 17, "jkl\n" },
+    { -1, 19, ATK_TEXT_BOUNDARY_WORD_START, 13, 17, "jkl\n" },
+    { -1, 20, ATK_TEXT_BOUNDARY_WORD_START, 13, 17, "jkl\n" },
+    { -1,  0, ATK_TEXT_BOUNDARY_WORD_END,  0,  0, "" },
+    { -1,  1, ATK_TEXT_BOUNDARY_WORD_END,  0,  0, "" },
+    { -1,  2, ATK_TEXT_BOUNDARY_WORD_END,  0,  0, "" },
+    { -1,  3, ATK_TEXT_BOUNDARY_WORD_END,  0,  3, "abc" },
+    { -1,  4, ATK_TEXT_BOUNDARY_WORD_END,  0,  3, "abc" },
+    { -1,  5, ATK_TEXT_BOUNDARY_WORD_END,  0,  3, "abc" },
+    { -1,  6, ATK_TEXT_BOUNDARY_WORD_END,  0,  3, "abc" },
+    { -1,  7, ATK_TEXT_BOUNDARY_WORD_END,  0,  3, "abc" },
+    { -1,  8, ATK_TEXT_BOUNDARY_WORD_END,  3,  8, "! def" },
+    { -1,  9, ATK_TEXT_BOUNDARY_WORD_END,  3,  8, "! def" },
+    { -1, 10, ATK_TEXT_BOUNDARY_WORD_END,  3,  8, "! def" },
+    { -1, 11, ATK_TEXT_BOUNDARY_WORD_END,  3,  8, "! def" },
+    { -1, 12, ATK_TEXT_BOUNDARY_WORD_END,  8, 12, "\nghi" },
+    { -1, 13, ATK_TEXT_BOUNDARY_WORD_END,  8, 12, "\nghi" },
+    { -1, 14, ATK_TEXT_BOUNDARY_WORD_END,  8, 12, "\nghi" },
+    { -1, 15, ATK_TEXT_BOUNDARY_WORD_END,  8, 12, "\nghi" },
+    { -1, 16, ATK_TEXT_BOUNDARY_WORD_END, 12, 16, " jkl" },
+    { -1, 17, ATK_TEXT_BOUNDARY_WORD_END, 12, 16, " jkl" },
+    { -1, 18, ATK_TEXT_BOUNDARY_WORD_END, 12, 16, " jkl" },
+    { -1, 19, ATK_TEXT_BOUNDARY_WORD_END, 12, 16, " jkl" },
+    { -1, 20, ATK_TEXT_BOUNDARY_WORD_END, 16, 20, "\nmno" },
+    { -1,  0, ATK_TEXT_BOUNDARY_SENTENCE_START,  0,  0, "" },
+    { -1,  1, ATK_TEXT_BOUNDARY_SENTENCE_START,  0,  0, "" },
+    { -1,  2, ATK_TEXT_BOUNDARY_SENTENCE_START,  0,  0, "" },
+    { -1,  3, ATK_TEXT_BOUNDARY_SENTENCE_START,  0,  0, "" },
+    { -1,  4, ATK_TEXT_BOUNDARY_SENTENCE_START,  0,  0, "" },
+    { -1,  5, ATK_TEXT_BOUNDARY_SENTENCE_START,  0,  5, "abc! " },
+    { -1,  6, ATK_TEXT_BOUNDARY_SENTENCE_START,  0,  5, "abc! " },
+    { -1,  7, ATK_TEXT_BOUNDARY_SENTENCE_START,  0,  5, "abc! " },
+    { -1,  8, ATK_TEXT_BOUNDARY_SENTENCE_START,  0,  5, "abc! " },
+    { -1,  9, ATK_TEXT_BOUNDARY_SENTENCE_START,  5,  9, "def\n" },
+    { -1, 10, ATK_TEXT_BOUNDARY_SENTENCE_START,  5,  9, "def\n" },
+    { -1, 11, ATK_TEXT_BOUNDARY_SENTENCE_START,  5,  9, "def\n" },
+    { -1, 12, ATK_TEXT_BOUNDARY_SENTENCE_START,  5,  9, "def\n" },
+    { -1, 13, ATK_TEXT_BOUNDARY_SENTENCE_START,  5,  9, "def\n" },
+    { -1, 14, ATK_TEXT_BOUNDARY_SENTENCE_START,  5,  9, "def\n" },
+    { -1, 15, ATK_TEXT_BOUNDARY_SENTENCE_START,  5,  9, "def\n" },
+    { -1, 16, ATK_TEXT_BOUNDARY_SENTENCE_START,  5,  9, "def\n" },
+    { -1, 17, ATK_TEXT_BOUNDARY_SENTENCE_START,  9, 17, "ghi jkl\n" },
+    { -1, 18, ATK_TEXT_BOUNDARY_SENTENCE_START,  9, 17, "ghi jkl\n" },
+    { -1, 19, ATK_TEXT_BOUNDARY_SENTENCE_START,  9, 17, "ghi jkl\n" },
+    { -1, 20, ATK_TEXT_BOUNDARY_SENTENCE_START,  9, 17, "ghi jkl\n" },
+    { -1,  0, ATK_TEXT_BOUNDARY_SENTENCE_END,  0,  0, "" },
+    { -1,  1, ATK_TEXT_BOUNDARY_SENTENCE_END,  0,  0, "" },
+    { -1,  2, ATK_TEXT_BOUNDARY_SENTENCE_END,  0,  0, "" },
+    { -1,  3, ATK_TEXT_BOUNDARY_SENTENCE_END,  0,  0, "" },
+    { -1,  4, ATK_TEXT_BOUNDARY_SENTENCE_END,  0,  4, "abc!" },
+    { -1,  5, ATK_TEXT_BOUNDARY_SENTENCE_END,  0,  4, "abc!" },
+    { -1,  6, ATK_TEXT_BOUNDARY_SENTENCE_END,  0,  4, "abc!" },
+    { -1,  7, ATK_TEXT_BOUNDARY_SENTENCE_END,  0,  4, "abc!" },
+    { -1,  8, ATK_TEXT_BOUNDARY_SENTENCE_END,  4,  8, " def" },
+    { -1,  9, ATK_TEXT_BOUNDARY_SENTENCE_END,  4,  8, " def" },
+    { -1, 10, ATK_TEXT_BOUNDARY_SENTENCE_END,  4,  8, " def" },
+    { -1, 11, ATK_TEXT_BOUNDARY_SENTENCE_END,  4,  8, " def" },
+    { -1, 12, ATK_TEXT_BOUNDARY_SENTENCE_END,  4,  8, " def" },
+    { -1, 13, ATK_TEXT_BOUNDARY_SENTENCE_END,  4,  8, " def" },
+    { -1, 14, ATK_TEXT_BOUNDARY_SENTENCE_END,  4,  8, " def" },
+    { -1, 15, ATK_TEXT_BOUNDARY_SENTENCE_END,  4,  8, " def" },
+    { -1, 16, ATK_TEXT_BOUNDARY_SENTENCE_END,  8, 16, "\nghi jkl" },
+    { -1, 17, ATK_TEXT_BOUNDARY_SENTENCE_END,  8, 16, "\nghi jkl" },
+    { -1, 18, ATK_TEXT_BOUNDARY_SENTENCE_END,  8, 16, "\nghi jkl" },
+    { -1, 19, ATK_TEXT_BOUNDARY_SENTENCE_END,  8, 16, "\nghi jkl" },
+    { -1, 20, ATK_TEXT_BOUNDARY_SENTENCE_END, 16, 20, "\nmno" },
+    { -1,  0, ATK_TEXT_BOUNDARY_LINE_START,  0,  0, "" },
+    { -1,  1, ATK_TEXT_BOUNDARY_LINE_START,  0,  0, "" },
+    { -1,  2, ATK_TEXT_BOUNDARY_LINE_START,  0,  0, "" },
+    { -1,  3, ATK_TEXT_BOUNDARY_LINE_START,  0,  0, "" },
+    { -1,  4, ATK_TEXT_BOUNDARY_LINE_START,  0,  0, "" },
+    { -1,  5, ATK_TEXT_BOUNDARY_LINE_START,  0,  0, "" },
+    { -1,  6, ATK_TEXT_BOUNDARY_LINE_START,  0,  0, "" },
+    { -1,  7, ATK_TEXT_BOUNDARY_LINE_START,  0,  0, "" },
+    { -1,  8, ATK_TEXT_BOUNDARY_LINE_START,  0,  0, "" },
+    { -1,  9, ATK_TEXT_BOUNDARY_LINE_START,  0,  9, "abc! def\n" },
+    { -1, 10, ATK_TEXT_BOUNDARY_LINE_START,  0,  9, "abc! def\n" },
+    { -1, 11, ATK_TEXT_BOUNDARY_LINE_START,  0,  9, "abc! def\n" },
+    { -1, 12, ATK_TEXT_BOUNDARY_LINE_START,  0,  9, "abc! def\n" },
+    { -1, 13, ATK_TEXT_BOUNDARY_LINE_START,  0,  9, "abc! def\n" },
+    { -1, 14, ATK_TEXT_BOUNDARY_LINE_START,  0,  9, "abc! def\n" },
+    { -1, 15, ATK_TEXT_BOUNDARY_LINE_START,  0,  9, "abc! def\n" },
+    { -1, 16, ATK_TEXT_BOUNDARY_LINE_START,  0,  9, "abc! def\n" },
+    { -1, 17, ATK_TEXT_BOUNDARY_LINE_START,  9, 17, "ghi jkl\n" },
+    { -1, 18, ATK_TEXT_BOUNDARY_LINE_START,  9, 17, "ghi jkl\n" },
+    { -1, 19, ATK_TEXT_BOUNDARY_LINE_START,  9, 17, "ghi jkl\n" },
+    { -1, 20, ATK_TEXT_BOUNDARY_LINE_START,  9, 17, "ghi jkl\n" },
+    { -1,  0, ATK_TEXT_BOUNDARY_LINE_END,  0,  0, "" },
+    { -1,  1, ATK_TEXT_BOUNDARY_LINE_END,  0,  0, "" },
+    { -1,  2, ATK_TEXT_BOUNDARY_LINE_END,  0,  0, "" },
+    { -1,  3, ATK_TEXT_BOUNDARY_LINE_END,  0,  0, "" },
+    { -1,  4, ATK_TEXT_BOUNDARY_LINE_END,  0,  0, "" },
+    { -1,  5, ATK_TEXT_BOUNDARY_LINE_END,  0,  0, "" },
+    { -1,  6, ATK_TEXT_BOUNDARY_LINE_END,  0,  0, "" },
+    { -1,  7, ATK_TEXT_BOUNDARY_LINE_END,  0,  0, "" },
+    { -1,  8, ATK_TEXT_BOUNDARY_LINE_END,  0,  0, "" },
+    { -1,  9, ATK_TEXT_BOUNDARY_LINE_END,  0,  8, "abc! def" },
+    { -1, 10, ATK_TEXT_BOUNDARY_LINE_END,  0,  8, "abc! def" },
+    { -1, 11, ATK_TEXT_BOUNDARY_LINE_END,  0,  8, "abc! def" },
+    { -1, 12, ATK_TEXT_BOUNDARY_LINE_END,  0,  8, "abc! def" },
+    { -1, 13, ATK_TEXT_BOUNDARY_LINE_END,  0,  8, "abc! def" },
+    { -1, 14, ATK_TEXT_BOUNDARY_LINE_END,  0,  8, "abc! def" },
+    { -1, 15, ATK_TEXT_BOUNDARY_LINE_END,  0,  8, "abc! def" },
+    { -1, 16, ATK_TEXT_BOUNDARY_LINE_END,  0,  8, "abc! def" },
+    { -1, 17, ATK_TEXT_BOUNDARY_LINE_END,  8, 16, "\nghi jkl" },
+    { -1, 18, ATK_TEXT_BOUNDARY_LINE_END,  8, 16, "\nghi jkl" },
+    { -1, 19, ATK_TEXT_BOUNDARY_LINE_END,  8, 16, "\nghi jkl" },
+    { -1, 20, ATK_TEXT_BOUNDARY_LINE_END,  8, 16, "\nghi jkl" },
+    {  0, -1, }
+  };
+  gint start, end;
+  gchar *word;
+  gint i;
+
+  atk_text = ATK_TEXT (gtk_widget_get_accessible (widget));
+
+  set_text (widget, text);
+#ifdef SHOW_TEXT_ATTRIBUTES
+  if (GTK_IS_LABEL (widget))
+    show_text_attributes (gtk_label_get_layout (GTK_LABEL (widget)));
+  else if (GTK_IS_ENTRY (widget))
+    show_text_attributes (gtk_entry_get_layout (GTK_ENTRY (widget)));
+#endif
+
+#if DUMP_RESULTS
+  for (i = -1; i < 2; i++)
+    {
+      gint j, k;
+      for (j = ATK_TEXT_BOUNDARY_CHAR; j <= ATK_TEXT_BOUNDARY_LINE_END; j++)
+        for (k = 0; k <= strlen (text); k++)
+          {
+            switch (i)
+              {
+              case -1:
+                word = atk_text_get_text_before_offset (atk_text, k, j, &start, &end);
+                break;
+              case 0:
+                word = atk_text_get_text_at_offset (atk_text, k, j, &start, &end);
+                break;
+              case 1:
+                word = atk_text_get_text_after_offset (atk_text, k, j, &start, &end);
+                break;
+              default:
+                g_assert_not_reached ();
+                break;
+              }
+            printf ("    { %2d, %2d, %s %2d, %2d, \"%s\" },\n", i, k, boundary(j), start, end, escape (word));
+            g_free (word);
+          }
+    }
+#endif
+
+  for (i = 0; expected[i].offset != -1; i++)
+    {
+      if (GTK_IS_ENTRY (widget))
+        {
+          /* GtkEntry sets single-paragraph mode on its pango layout */
+          if (expected[i].boundary == ATK_TEXT_BOUNDARY_LINE_START ||
+              expected[i].boundary == ATK_TEXT_BOUNDARY_LINE_END)
+            continue;
+        }
+
+      switch (expected[i].gravity)
+        {
+          case -1:
+            word = atk_text_get_text_before_offset (atk_text,
+                                                    expected[i].offset,
+                                                    expected[i].boundary,
+                                                    &start, &end);
+            break;
+          case 0:
+            word = atk_text_get_text_at_offset (atk_text,
+                                                expected[i].offset,
+                                                expected[i].boundary,
+                                                &start, &end);
+            break;
+          case 1:
+            word = atk_text_get_text_after_offset (atk_text,
+                                                   expected[i].offset,
+                                                   expected[i].boundary,
+                                                   &start, &end);
+            break;
+          default:
+            g_assert_not_reached ();
+            break;
+        }
+
+      g_assert_cmpstr (word, ==, expected[i].word);
+      g_assert_cmpint (start, ==, expected[i].start);
+      g_assert_cmpint (end, ==, expected[i].end);
+      g_free (word);
+    }
+}
+
+static void
+select_region (GtkWidget *widget,
+               gint       start,
+               gint       end)
+{
+  if (GTK_IS_EDITABLE (widget))
+    gtk_editable_select_region (GTK_EDITABLE (widget), start, end);
+  else if (GTK_IS_LABEL (widget))
+    gtk_label_select_region (GTK_LABEL (widget), start, end);
+  else if (GTK_IS_TEXT_VIEW (widget))
+    {
+      GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+      GtkTextIter start_iter, end_iter;
+
+      gtk_text_buffer_get_iter_at_offset (buffer, &start_iter, end);
+      gtk_text_buffer_get_iter_at_offset (buffer, &end_iter, start);
+
+      gtk_text_buffer_select_range (buffer, &start_iter, &end_iter);
+    }
+  else
+    g_assert_not_reached ();
+}
+
+typedef struct {
+  gint count;
+  gint position;
+  gint bound;
+} SelectionData;
+
+static void
+caret_moved_cb (AtkText *text, gint position, SelectionData *data)
+{
+  data->count++;
+  data->position = position;
+}
+
+static void
+selection_changed_cb (AtkText *text, SelectionData *data)
+{
+  data->count++;
+
+  atk_text_get_selection (text, 0, &data->bound, &data->position);
+}
+
+static void
+test_selection (GtkWidget *widget)
+{
+  AtkText *atk_text;
+  const gchar *text = "Bla bla bla";
+  gint n;
+  gchar *ret;
+  gint start, end;
+  SelectionData data1;
+  SelectionData data2;
+
+  if (GTK_IS_LABEL (widget))
+    gtk_label_set_selectable (GTK_LABEL (widget), TRUE);
+
+  atk_text = ATK_TEXT (gtk_widget_get_accessible (widget));
+
+  data1.count = 0;
+  data2.count = 0;
+  g_signal_connect (atk_text, "text_caret_moved",
+                    G_CALLBACK (caret_moved_cb), &data1);
+  g_signal_connect (atk_text, "text_selection_changed",
+                    G_CALLBACK (selection_changed_cb), &data2);
+
+  set_text (widget, text);
+
+  n = atk_text_get_n_selections (atk_text);
+  g_assert_cmpint (n, ==, 0);
+
+  if (data1.count == 1)
+    /* insertion before cursor */
+    g_assert_cmpint (data1.position, ==, 11);
+  else
+    /* insertion after cursor */
+    g_assert_cmpint (data1.count, ==, 0);
+  g_assert_cmpint (data2.count, ==, 0);
+
+  select_region (widget, 4, 7);
+
+  g_assert_cmpint (data1.count, >=, 1);
+  g_assert_cmpint (data1.position, ==, 7);
+  g_assert_cmpint (data2.count, >=, 1);
+  g_assert_cmpint (data2.bound, ==, 4);
+  g_assert_cmpint (data2.position, ==, 7);
+
+  n = atk_text_get_n_selections (atk_text);
+  g_assert_cmpint (n, ==, 1);
+
+  ret = atk_text_get_selection (atk_text, 0, &start, &end);
+  g_assert_cmpstr (ret, ==, "bla");
+  g_assert_cmpint (start, ==, 4);
+  g_assert_cmpint (end, ==, 7);
+  g_free (ret);
+
+  atk_text_remove_selection (atk_text, 0);
+  n = atk_text_get_n_selections (atk_text);
+  g_assert_cmpint (n, ==, 0);
+
+  g_assert_cmpint (data1.count, >=, 1);
+  g_assert_cmpint (data2.count, >=, 2);
+  g_assert_cmpint (data2.position, ==, 7);
+  g_assert_cmpint (data2.bound, ==, 7);
+}
+
+static void
+setup_test (GtkWidget *widget)
+{
+  set_text (widget, "");
+}
+
+static void
+add_text_test (const gchar      *prefix,
+               GTestFixtureFunc  test_func,
+               GtkWidget        *widget)
+{
+  gchar *path;
+
+  path = g_strdup_printf ("%s/%s", prefix, G_OBJECT_TYPE_NAME (widget));
+  g_test_add_vtable (path,
+                     0,
+                     g_object_ref (widget),
+                     (GTestFixtureFunc) setup_test,
+                     (GTestFixtureFunc) test_func,
+                     (GTestFixtureFunc) g_object_unref);
+  g_free (path);
+}
+
+static void
+add_text_tests (GtkWidget *widget)
+{
+  g_object_ref_sink (widget);
+  add_text_test ("/text/basic", (GTestFixtureFunc) test_basic, widget);
+  add_text_test ("/text/words", (GTestFixtureFunc) test_words, widget);
+  add_text_test ("/text/changed", (GTestFixtureFunc) test_text_changed, widget);
+  add_text_test ("/text/selection", (GTestFixtureFunc) test_selection, widget);
+  g_object_unref (widget);
+}
+
+static void
+test_bold_label (void)
+{
+  GtkWidget *label;
+  AtkObject *atk_obj;
+  gchar *text;
+
+  g_test_bug ("126797");
+
+  label = gtk_label_new ("<b>Bold?</b>");
+  g_object_ref_sink (label);
+
+  atk_obj = gtk_widget_get_accessible (label);
+
+  text = atk_text_get_text (ATK_TEXT (atk_obj), 0, -1);
+  g_assert_cmpstr (text, ==, "<b>Bold?</b>");
+  g_free (text);
+
+  gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
+
+  text = atk_text_get_text (ATK_TEXT (atk_obj), 0, -1);
+  g_assert_cmpstr (text, ==, "Bold?");
+  g_free (text);
+
+  g_object_unref (label);
+}
+
+int
+main (int argc, char *argv[])
+{
+  gtk_test_init (&argc, &argv, NULL);
+
+  g_test_bug_base ("http://bugzilla.gnome.org/");
+
+  g_test_add_func ("/text/bold/GtkLabel", test_bold_label);
+
+  add_text_tests (gtk_label_new (""));
+  add_text_tests (gtk_entry_new ());
+  add_text_tests (gtk_text_view_new ());
+
+  return g_test_run ();
+}
diff --git a/tests/a11y/text.txt b/tests/a11y/text.txt
new file mode 100644 (file)
index 0000000..a90741d
--- /dev/null
@@ -0,0 +1,49 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  text1
+    "text"
+    parent: window1
+    index: 0
+    state: editable enabled focusable multi-line sensitive showing visible
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkText>
+    text: Twas brillig, and the slithy toves
+Did gyre and gimple in the wabe
+    character count: 66
+    caret offset: 66
+    default attributes: bg-color: <omitted>
+                        bg-full-height: false
+                        direction: <omitted>
+                        editable: true
+                        family-name: <omitted>
+                        fg-color: <omitted>
+                        indent: 0
+                        invisible: false
+                        justification: left
+                        language: <omitted>
+                        left-margin: 0
+                        pixels-above-lines: 0
+                        pixels-below-lines: 0
+                        pixels-inside-wrap: 0
+                        right-margin: 0
+                        rise: 0
+                        scale: 1
+                        size: <omitted>
+                        stretch: <omitted>
+                        strikethrough: false
+                        style: <omitted>
+                        underline: none
+                        variant: <omitted>
+                        weight: <omitted>
+                        wrap-mode: none
+    <AtkStreamableContent>
+    mime types: application/x-gtk-text-buffer-rich-text text/plain
diff --git a/tests/a11y/text.ui b/tests/a11y/text.ui
new file mode 100644 (file)
index 0000000..508efd5
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkTextBuffer" id="buffer1">
+    <property name="text">Twas brillig, and the slithy toves
+Did gyre and gimple in the wabe</property>
+  </object>
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkTextView" id="text1">
+        <property name="visible">True</property>
+        <property name="can_focus">True</property>
+        <property name="buffer">buffer1</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/tree-performance.c b/tests/a11y/tree-performance.c
new file mode 100644 (file)
index 0000000..1361f07
--- /dev/null
@@ -0,0 +1,367 @@
+/*
+ * Copyright (C) 2011 Red Hat Inc.
+ *
+ * Author:
+ *      Matthias Clasen <mclasen@redhat.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gtk/gtk.h>
+
+const gchar list_ui[] =
+  "<interface>"
+  "  <object class='GtkListStore' id='liststore1'>"
+  "    <columns>"
+  "      <column type='gchararray'/>"
+  "      <column type='gchararray'/>"
+  "      <column type='gchararray'/>"
+  "      <column type='gboolean'/>"
+  "      <column type='gint'/>"
+  "      <column type='gint'/>"
+  "    </columns>"
+  "    <data>"
+  "      <row><col id='0'>One</col><col id='1'>Two</col><col id='2'>Three</col><col id='3'>True</col><col id='4'>50</col><col id='5'>50</col></row>"
+  "    </data>"
+  "  </object>"
+  "  <object class='GtkWindow' id='window1'>"
+  "    <child>"
+  "      <object class='GtkTreeView' id='treeview1'>"
+  "        <property name='visible'>True</property>"
+  "        <property name='model'>liststore1</property>"
+  "        <child>"
+  "          <object class='GtkTreeViewColumn' id='column1'>"
+  "            <property name='title' translatable='yes'>First column</property>"
+  "            <child>"
+  "              <object class='GtkCellRendererText' id='renderer1'>"
+  "              </object>"
+  "              <attributes>"
+  "                <attribute name='text'>0</attribute>"
+  "              </attributes>"
+  "            </child>"
+  "            <child>"
+  "              <object class='GtkCellRendererToggle' id='renderer2'>"
+  "              </object>"
+  "              <attributes>"
+  "                <attribute name='active'>3</attribute>"
+  "              </attributes>"
+  "            </child>"
+  "          </object>"
+  "        </child>"
+  "        <child>"
+  "          <object class='GtkTreeViewColumn' id='column2'>"
+  "            <property name='title' translatable='yes'>Second column</property>"
+  "            <child>"
+  "              <object class='GtkCellRendererText' id='renderer3'>"
+  "              </object>"
+  "              <attributes>"
+  "                <attribute name='text'>1</attribute>"
+  "              </attributes>"
+  "            </child>"
+  "            <child>"
+  "              <object class='GtkCellRendererProgress' id='renderer4'>"
+  "              </object>"
+  "              <attributes>"
+  "                <attribute name='value'>4</attribute>"
+  "              </attributes>"
+  "            </child>"
+  "          </object>"
+  "        </child>"
+  "      </object>"
+  "    </child>"
+  "  </object>"
+  "</interface>";
+
+static void
+walk_accessible_tree (AtkObject *accessible,
+                      gpointer   data)
+{
+  gint *count = data;
+  gint i;
+
+  (*count)++;
+
+  for (i = 0; i < atk_object_get_n_accessible_children (accessible); i++)
+    {
+      AtkObject *child = atk_object_ref_accessible_child (accessible, i);
+      walk_accessible_tree (child, data);
+      g_object_unref (child);
+    }
+}
+
+static GtkWidget *
+builder_get_toplevel (GtkBuilder *builder)
+{
+  GSList *list, *walk;
+  GtkWidget *window = NULL;
+
+  list = gtk_builder_get_objects (builder);
+  for (walk = list; walk; walk = walk->next)
+    {
+      if (GTK_IS_WINDOW (walk->data) &&
+          gtk_widget_get_parent (walk->data) == NULL)
+        {
+          window = walk->data;
+          break;
+        }
+    }
+
+  g_slist_free (list);
+
+  return window;
+}
+
+static void
+populate_list (GtkBuilder *builder)
+{
+  GtkTreeView *tv;
+  GtkListStore *store;
+  GtkTreeIter iter;
+  gint i;
+
+  tv = (GtkTreeView *)gtk_builder_get_object (builder, "treeview1");
+  store = (GtkListStore *)gtk_tree_view_get_model (tv);
+
+  /* append a thousand rows */
+  for (i = 0; i < 1000; i++)
+    {
+      gtk_list_store_append (store, &iter);
+      gtk_list_store_set (store, &iter, 0, "Bla", 1, "Bla bla", 2, "Bla bla bla", 3, i % 2 == 0 ? TRUE : FALSE, 4, i % 100, 5, i, -1);
+    }
+}
+
+static void
+test_performance_list (void)
+{
+  GtkBuilder *builder;
+  gdouble elapsed;
+  GtkWidget *window;
+  GError *error = NULL;
+
+  builder = gtk_builder_new ();
+  gtk_builder_add_from_string (builder, list_ui, -1, &error);
+  g_assert_no_error (error);
+  window = builder_get_toplevel (builder);
+  g_assert (window);
+
+  gtk_widget_show (window);
+
+  g_test_timer_start ();
+
+  populate_list (builder);
+
+  elapsed = g_test_timer_elapsed ();
+  g_test_minimized_result (elapsed, "large list test: %gsec", elapsed);
+  g_object_unref (builder);
+}
+
+static void
+test_a11y_performance_list (void)
+{
+  GtkBuilder *builder;
+  gdouble elapsed;
+  GtkWidget *window;
+  GError *error = NULL;
+  gint count_before;
+  gint count_after;
+
+  builder = gtk_builder_new ();
+  gtk_builder_add_from_string (builder, list_ui, -1, &error);
+  g_assert_no_error (error);
+  window = builder_get_toplevel (builder);
+  g_assert (window);
+
+  gtk_widget_show (window);
+
+  g_test_timer_start ();
+
+  /* make sure all accessibles exist */
+  count_before = 0;
+  walk_accessible_tree (gtk_widget_get_accessible (window), &count_before);
+
+  populate_list (builder);
+
+  /* for good measure, do this again */
+  count_after = 0;
+  walk_accessible_tree (gtk_widget_get_accessible (window), &count_after);
+
+  elapsed = g_test_timer_elapsed ();
+  g_test_minimized_result (elapsed, "large list with a11y: %gsec", elapsed);
+  g_object_unref (builder);
+
+  g_test_message ("%d accessibles before, %d after\n", count_before, count_after);
+}
+
+const gchar tree_ui[] =
+  "<interface>"
+  "  <object class='GtkTreeStore' id='treestore1'>"
+  "    <columns>"
+  "      <column type='gchararray'/>"
+  "      <column type='gchararray'/>"
+  "      <column type='gchararray'/>"
+  "      <column type='gboolean'/>"
+  "      <column type='gint'/>"
+  "      <column type='gint'/>"
+  "    </columns>"
+  "  </object>"
+  "  <object class='GtkWindow' id='window1'>"
+  "    <child>"
+  "      <object class='GtkTreeView' id='treeview1'>"
+  "        <property name='visible'>True</property>"
+  "        <property name='model'>treestore1</property>"
+  "        <child>"
+  "          <object class='GtkTreeViewColumn' id='column1'>"
+  "            <property name='title' translatable='yes'>First column</property>"
+  "            <child>"
+  "              <object class='GtkCellRendererText' id='renderer1'>"
+  "              </object>"
+  "              <attributes>"
+  "                <attribute name='text'>0</attribute>"
+  "              </attributes>"
+  "            </child>"
+  "            <child>"
+  "              <object class='GtkCellRendererToggle' id='renderer2'>"
+  "              </object>"
+  "              <attributes>"
+  "                <attribute name='active'>3</attribute>"
+  "              </attributes>"
+  "            </child>"
+  "          </object>"
+  "        </child>"
+  "        <child>"
+  "          <object class='GtkTreeViewColumn' id='column2'>"
+  "            <property name='title' translatable='yes'>Second column</property>"
+  "            <child>"
+  "              <object class='GtkCellRendererText' id='renderer3'>"
+  "              </object>"
+  "              <attributes>"
+  "                <attribute name='text'>1</attribute>"
+  "              </attributes>"
+  "            </child>"
+  "            <child>"
+  "              <object class='GtkCellRendererProgress' id='renderer4'>"
+  "              </object>"
+  "              <attributes>"
+  "                <attribute name='value'>4</attribute>"
+  "              </attributes>"
+  "            </child>"
+  "          </object>"
+  "        </child>"
+  "      </object>"
+  "    </child>"
+  "  </object>"
+  "</interface>";
+
+static void
+populate_tree (GtkBuilder *builder)
+{
+  GtkTreeView *tv;
+  GtkTreeStore *store;
+  GtkTreeIter iter;
+  gint i;
+
+  tv = (GtkTreeView *)gtk_builder_get_object (builder, "treeview1");
+  store = (GtkTreeStore *)gtk_tree_view_get_model (tv);
+
+  /* append a thousand rows */
+  for (i = 0; i < 333; i++)
+    {
+      gtk_tree_store_append (store, &iter, NULL);
+      gtk_tree_store_set (store, &iter, 0, "Bla", 1, "Bla bla", 2, "Bla bla bla", 3, i % 2 == 0 ? TRUE : FALSE, 4, i % 100, 5, i, -1);
+      gtk_tree_store_append (store, &iter, &iter);
+      gtk_tree_store_set (store, &iter, 0, "Bla", 1, "Bla bla", 2, "Bla bla bla", 3, i % 2 == 0 ? TRUE : FALSE, 4, i % 100, 5, i, -1);
+      gtk_tree_store_append (store, &iter, &iter);
+      gtk_tree_store_set (store, &iter, 0, "Bla", 1, "Bla bla", 2, "Bla bla bla", 3, i % 2 == 0 ? TRUE : FALSE, 4, i % 100, 5, i, -1);
+    }
+}
+
+static void
+test_performance_tree (void)
+{
+  GtkBuilder *builder;
+  gdouble elapsed;
+  GtkWidget *window;
+  GError *error = NULL;
+
+  builder = gtk_builder_new ();
+  gtk_builder_add_from_string (builder, tree_ui, -1, &error);
+  g_assert_no_error (error);
+  window = builder_get_toplevel (builder);
+  g_assert (window);
+
+  gtk_widget_show (window);
+
+  g_test_timer_start ();
+
+  populate_tree (builder);
+
+  elapsed = g_test_timer_elapsed ();
+  g_test_minimized_result (elapsed, "large tree test: %gsec", elapsed);
+  g_object_unref (builder);
+}
+
+static void
+test_a11y_performance_tree (void)
+{
+  GtkBuilder *builder;
+  gdouble elapsed;
+  GtkWidget *window;
+  GError *error = NULL;
+  gint count_before;
+  gint count_after;
+
+  builder = gtk_builder_new ();
+  gtk_builder_add_from_string (builder, tree_ui, -1, &error);
+  g_assert_no_error (error);
+  window = builder_get_toplevel (builder);
+  g_assert (window);
+
+  gtk_widget_show (window);
+
+  g_test_timer_start ();
+
+  /* make sure all accessibles exist */
+  count_before = 0;
+  walk_accessible_tree (gtk_widget_get_accessible (window), &count_before);
+
+  populate_tree (builder);
+
+  /* for good measure, do this again */
+  count_after = 0;
+  walk_accessible_tree (gtk_widget_get_accessible (window), &count_after);
+
+  elapsed = g_test_timer_elapsed ();
+  g_test_minimized_result (elapsed, "large tree with a11y: %gsec", elapsed);
+  g_object_unref (builder);
+
+  g_test_message ("%d accessibles before, %d after\n", count_before, count_after);
+}
+
+int
+main (int argc, char *argv[])
+{
+  gtk_test_init (&argc, &argv, NULL);
+
+  if (!g_test_perf ())
+    return 0;
+
+  g_test_add_func ("/performance/list", test_performance_list);
+  g_test_add_func ("/a11y/performance/list", test_a11y_performance_list);
+  g_test_add_func ("/performance/tree", test_performance_tree);
+  g_test_add_func ("/a11y/performance/tree", test_a11y_performance_tree);
+
+  return g_test_run ();
+}
diff --git a/tests/a11y/tree.txt b/tests/a11y/tree.txt
new file mode 100644 (file)
index 0000000..4e54aa6
--- /dev/null
@@ -0,0 +1,408 @@
+window1
+  "window"
+  index: 0
+  state: enabled resizable sensitive showing visible
+  toolkit: gtk
+  <AtkComponent>
+  layer: window
+  alpha: 1
+  tree1
+    "table"
+    parent: window1
+    index: 0
+    state: enabled focusable sensitive showing visible manages-descendants
+    toolkit: gtk
+    <AtkComponent>
+    layer: widget
+    alpha: 1
+    <AtkSelection>
+    selected children: One
+                       Two
+    <AtkTable>
+    rows: 4
+    columns: 2
+    selected rows: 0
+    column 0 description: Column 1
+    <column 0 header>
+    unnamed-GtkButtonAccessible-0
+      "table column header"
+      parent: tree1
+      index: 0
+      name: Column 1
+      state: enabled sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+    column 1 description: Column 2
+    <column 1 header>
+    unnamed-GtkButtonAccessible-1
+      "table column header"
+      parent: tree1
+      index: 1
+      name: Column 2
+      state: enabled sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+    unnamed-GtkButtonAccessible-0
+      "table column header"
+      parent: tree1
+      index: 0
+      name: Column 1
+      state: enabled sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+    unnamed-GtkButtonAccessible-1
+      "table column header"
+      parent: tree1
+      index: 1
+      name: Column 2
+      state: enabled sensitive showing visible
+      toolkit: gtk
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkImage>
+      image size: -1 x -1
+      image description: (null)
+      <AtkAction>
+      action 0 name: click
+    One
+      "table cell"
+      parent: tree1
+      index: 2
+      name: One
+      state: enabled focusable focused selectable selected sensitive single-line transient visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: One
+      character count: 3
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: activate the cell
+    Two
+      "table cell"
+      parent: tree1
+      index: 3
+      name: Two
+      state: enabled focusable selectable selected sensitive showing single-line transient visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Two
+      character count: 3
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: activate the cell
+    Three
+      "table cell"
+      parent: tree1
+      index: 4
+      name: Three
+      state: enabled focusable selectable sensitive single-line transient visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Three
+      character count: 5
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: activate the cell
+    Four
+      "table cell"
+      parent: tree1
+      index: 5
+      name: Four
+      state: enabled focusable selectable sensitive showing single-line transient visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Four
+      character count: 4
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: activate the cell
+    Five
+      "table cell"
+      parent: tree1
+      index: 6
+      name: Five
+      state: enabled focusable selectable sensitive single-line transient visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Five
+      character count: 4
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: activate the cell
+    Six
+      "table cell"
+      parent: tree1
+      index: 7
+      name: Six
+      state: enabled focusable selectable sensitive showing single-line transient visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Six
+      character count: 3
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: activate the cell
+    Seven
+      "table cell"
+      parent: tree1
+      index: 8
+      name: Seven
+      state: enabled focusable selectable sensitive single-line transient visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Seven
+      character count: 5
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: activate the cell
+    Eight
+      "table cell"
+      parent: tree1
+      index: 9
+      name: Eight
+      state: enabled focusable selectable sensitive showing single-line transient visible
+      <AtkComponent>
+      layer: widget
+      alpha: 1
+      <AtkText>
+      text: Eight
+      character count: 5
+      caret offset: 0
+      default attributes: bg-color: <omitted>
+                          bg-full-height: 0
+                          editable: false
+                          family-name: <omitted>
+                          fg-color: <omitted>
+                          indent: 0
+                          invisible: false
+                          justification: left
+                          language: <omitted>
+                          left-margin: 0
+                          pixels-above-lines: 0
+                          pixels-below-lines: 0
+                          pixels-inside-wrap: 0
+                          right-margin: 0
+                          rise: 0
+                          scale: 1
+                          size: <omitted>
+                          stretch: <omitted>
+                          strikethrough: false
+                          style: <omitted>
+                          underline: none
+                          variant: <omitted>
+                          weight: <omitted>
+                          wrap-mode: word
+      <AtkAction>
+      action 0 name: activate
+      action 0 description: activate the cell
diff --git a/tests/a11y/tree.ui b/tests/a11y/tree.ui
new file mode 100644 (file)
index 0000000..ea7f65b
--- /dev/null
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkListStore" id="liststore1">
+    <columns>
+      <column type="gchararray"/>
+      <column type="gchararray"/>
+    </columns>
+    <data>
+      <row><col id="0">One</col><col id="1">Two</col></row>
+      <row><col id="0">Three</col><col id="1">Four</col></row>
+      <row><col id="0">Five</col><col id="1">Six</col></row>
+      <row><col id="0">Seven</col><col id="1">Eight</col></row>
+    </data>
+  </object>
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkTreeView" id="tree1">
+        <property name="visible">True</property>
+        <property name="model">liststore1</property>
+        <child>
+          <object class="GtkTreeViewColumn" id="column1">
+            <property name="title" translatable="yes">Column 1</property>
+            <child>
+              <object class="GtkCellRendererText" id="renderer1">
+              </object>
+              <attributes>
+                <attribute name="text">0</attribute>
+              </attributes>
+            </child>
+          </object>
+        </child>
+        <child>
+          <object class="GtkTreeViewColumn" id="column2">
+            <property name="title" translatable="yes">Column 2</property>
+            <child>
+              <object class="GtkCellRendererText" id="renderer2">
+              </object>
+              <attributes>
+                <attribute name="text">1</attribute>
+              </attributes>
+            </child>
+          </object>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/a11y/util.c b/tests/a11y/util.c
new file mode 100644 (file)
index 0000000..96194c2
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * Copyright (C) 2011 Red Hat Inc.
+ *
+ * Author:
+ *      Matthias Clasen <mclasen@redhat.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ * Boston, MA 02111-1307, USA.
+ */
+
+#include <gtk/gtk.h>
+
+static void
+test_toolkit_name (void)
+{
+  const gchar *s;
+
+  s = atk_get_toolkit_name ();
+  g_assert_cmpstr (s, ==, "gtk");
+}
+
+static void
+test_toolkit_version (void)
+{
+  const gchar *s;
+
+  s = atk_get_toolkit_version ();
+  g_assert_cmpstr (s, ==, GTK_VERSION);
+}
+
+static void
+test_root (void)
+{
+  AtkObject *obj;
+
+  obj = atk_get_root ();
+
+  g_assert (atk_object_get_role (obj) == ATK_ROLE_APPLICATION);
+  g_assert (atk_object_get_parent (obj) == NULL);
+}
+
+int
+main (int argc, char *argv[])
+{
+  gtk_test_init (&argc, &argv, NULL);
+
+  g_test_add_func ("/util/toolkit-name", test_toolkit_name);
+  g_test_add_func ("/util/toolkit-version", test_toolkit_version);
+  g_test_add_func ("/util/root", test_root);
+
+  return g_test_run ();
+}
index 27d2ac0e66a0e4ce093e16849699b1dfa8643fe4..5b0e8faf09de90496bb86fdcbaeef673224f0152 100644 (file)
@@ -25,6 +25,130 @@ clean-local:
        rm $(builddir)/*.out.css || true
 
 EXTRA_DIST += \
+       at-invalid-01.css \
+       at-invalid-01.errors \
+       at-invalid-01.ref.css \
+       at-invalid-02.css \
+       at-invalid-02.errors \
+       at-invalid-02.ref.css \
+       at-invalid-03.css \
+       at-invalid-03.errors \
+       at-invalid-03.ref.css \
+       at-invalid-04.css \
+       at-invalid-04.errors \
+       at-invalid-04.ref.css \
+       at-invalid-05.css \
+       at-invalid-05.errors \
+       at-invalid-05.ref.css \
+       at-invalid-06.css \
+       at-invalid-06.errors \
+       at-invalid-06.ref.css \
+       at-invalid-07.css \
+       at-invalid-07.errors \
+       at-invalid-07.ref.css \
+       at-invalid-08.css \
+       at-invalid-08.errors \
+       at-invalid-08.ref.css \
+       at-invalid-09.css \
+       at-invalid-09.errors \
+       at-invalid-09.ref.css \
+       at-invalid-10.css \
+       at-invalid-10.errors \
+       at-invalid-10.ref.css \
+       at-invalid-11.css \
+       at-invalid-11.errors \
+       at-invalid-11.ref.css \
+       at-invalid-12.css \
+       at-invalid-12.errors \
+       at-invalid-12.ref.css \
+       at-invalid-13.css \
+       at-invalid-13.errors \
+       at-invalid-13.ref.css \
+       at-invalid-14.css \
+       at-invalid-14.errors \
+       at-invalid-14.ref.css \
+       at-invalid-15.css \
+       at-invalid-15.errors \
+       at-invalid-15.ref.css \
+       at-invalid-16.css \
+       at-invalid-16.errors \
+       at-invalid-16.ref.css \
+       at-invalid-17.css \
+       at-invalid-17.errors \
+       at-invalid-17.ref.css \
+       at-invalid-18.css \
+       at-invalid-18.errors \
+       at-invalid-18.ref.css \
+       at-invalid-19.css \
+       at-invalid-19.errors \
+       at-invalid-19.ref.css \
+       at-invalid-20.css \
+       at-invalid-20.errors \
+       at-invalid-20.ref.css \
+       at-invalid-21.css \
+       at-invalid-21.errors \
+       at-invalid-21.ref.css \
+       at-invalid-22.css \
+       at-invalid-22.errors \
+       at-invalid-22.ref.css \
+       at-invalid-23.css \
+       at-invalid-23.errors \
+       at-invalid-23.ref.css \
+       at-invalid-24.css \
+       at-invalid-24.errors \
+       at-invalid-24.ref.css \
+       at-invalid-25.css \
+       at-invalid-25.errors \
+       at-invalid-25.ref.css \
+       at-invalid-26.css \
+       at-invalid-26.errors \
+       at-invalid-26.ref.css \
+       at-invalid-27.css \
+       at-invalid-27.errors \
+       at-invalid-27.ref.css \
+       at-valid-01.css \
+       at-valid-01.ref.css \
+       at-valid-02.css \
+       at-valid-02.ref.css \
+       at-valid-03.css \
+       at-valid-03.ref.css \
+       at-valid-04.css \
+       at-valid-04.ref.css \
+       at-valid-05.css \
+       at-valid-05.ref.css \
+       at-valid-06.css \
+       at-valid-06.ref.css \
+       at-valid-07.css \
+       at-valid-08.css \
+       at-valid-08.ref.css \
+       at-valid-09.css \
+       at-valid-09.ref.css \
+       at-valid-10.css \
+       at-valid-10.ref.css \
+       at-valid-11.css \
+       at-valid-11.ref.css \
+       at-valid-12.css \
+       at-valid-12.ref.css \
+       at-valid-13.css \
+       at-valid-13.ref.css \
+       at-valid-14.css \
+       at-valid-14.ref.css \
+       at-valid-15.css \
+       at-valid-15.ref.css \
+       at-valid-16.css \
+       at-valid-16.ref.css \
+       at-valid-17.css \
+       at-valid-18.css \
+       at-valid-18.ref.css \
+       at-valid-19.css \
+       at-valid-19.errors \
+       at-valid-19.ref.css \
+       at-valid-20.css \
+       at-valid-20.errors \
+       at-valid-20.ref.css \
+       at-valid-21.css \
+       at-valid-21.errors \
+       at-valid-21.ref.css \
        boolean.css \
        boolean.errors \
        boolean.ref.css \
@@ -51,9 +175,85 @@ EXTRA_DIST += \
        declarations.css \
        declarations.errors \
        declarations.ref.css \
+       declarations-invalid-01.css \
+       declarations-invalid-01.errors \
+       declarations-invalid-01.ref.css \
+       declarations-invalid-02.css \
+       declarations-invalid-02.errors \
+       declarations-invalid-02.ref.css \
+       declarations-invalid-03.css \
+       declarations-invalid-03.errors \
+       declarations-invalid-03.ref.css \
+       declarations-invalid-04.css \
+       declarations-invalid-04.errors \
+       declarations-invalid-04.ref.css \
+       declarations-invalid-05.css \
+       declarations-invalid-05.errors \
+       declarations-invalid-05.ref.css \
+       declarations-invalid-06.css \
+       declarations-invalid-06.errors \
+       declarations-invalid-06.ref.css \
+       declarations-invalid-07.css \
+       declarations-invalid-07.errors \
+       declarations-invalid-07.ref.css \
+       declarations-invalid-08.css \
+       declarations-invalid-08.errors \
+       declarations-invalid-08.ref.css \
+       declarations-valid-01.css \
+       declarations-valid-01.ref.css \
+       declarations-valid-02.css \
+       declarations-valid-02.ref.css \
+       declarations-valid-03.css \
+       declarations-valid-03.ref.css \
+       declarations-valid-04.css \
+       declarations-valid-04.ref.css \
+       declarations-valid-05.css \
+       declarations-valid-05.ref.css \
+       declarations-valid-06.css \
+       declarations-valid-06.ref.css \
+       declarations-valid-07.css \
+       declarations-valid-07.ref.css \
+       declarations-valid-08.css \
+       declarations-valid-08.ref.css \
+       declarations-valid-09.css \
+       declarations-valid-09.ref.css \
+       declarations-valid-10.css \
+       declarations-valid-10.ref.css \
+       declarations-valid-11.css \
+       declarations-valid-11.ref.css \
+       declarations-valid-12.css \
+       declarations-valid-12.ref.css \
+       declarations-valid-13.css \
+       declarations-valid-13.ref.css \
+       declarations-valid-14.css \
+       declarations-valid-14.ref.css \
+       declarations-valid-15.css \
+       declarations-valid-15.ref.css \
+       declarations-valid-16.css \
+       declarations-valid-16.ref.css \
+       declarations-valid-17.css \
+       declarations-valid-17.ref.css \
+       declarations-valid-18.css \
+       declarations-valid-18.errors \
+       declarations-valid-18.ref.css \
+       declarations-valid-19.css \
+       declarations-valid-19.ref.css \
+       declarations-valid-20.css \
+       declarations-valid-20.ref.css \
+       declarations-valid-21.css \
+       declarations-valid-21.ref.css \
+       declarations-valid-22.css \
+       declarations-valid-22.ref.css \
+       declarations-valid-23.css \
+       declarations-valid-23.ref.css \
+       declarations-valid-24.css \
+       declarations-valid-24.ref.css \
+       declarations-valid-25.css \
+       declarations-valid-25.ref.css \
        does-not-exist.css \
        does-not-exist.errors \
        does-not-exist.ref.css \
+       empty.css \
        enum.css \
        enum.errors \
        enum.ref.css \
@@ -91,4 +291,5 @@ EXTRA_DIST += \
        single-slash.css \
        single-slash.errors\
        single-slash.ref.css \
+       test.png \
        widget-style-property.css
diff --git a/tests/css/parser/at-invalid-01.css b/tests/css/parser/at-invalid-01.css
new file mode 100644 (file)
index 0000000..4471b63
--- /dev/null
@@ -0,0 +1 @@
+@import ./test.css ;
diff --git a/tests/css/parser/at-invalid-01.errors b/tests/css/parser/at-invalid-01.errors
new file mode 100644 (file)
index 0000000..1bb2528
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-01.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-02.css b/tests/css/parser/at-invalid-02.css
new file mode 100644 (file)
index 0000000..d3f9378
--- /dev/null
@@ -0,0 +1 @@
+@import url ( "./test.css" xyz );
diff --git a/tests/css/parser/at-invalid-02.errors b/tests/css/parser/at-invalid-02.errors
new file mode 100644 (file)
index 0000000..9cf27d4
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-02.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-02.ref.css b/tests/css/parser/at-invalid-02.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-03.css b/tests/css/parser/at-invalid-03.css
new file mode 100644 (file)
index 0000000..36e809e
--- /dev/null
@@ -0,0 +1 @@
+@import url(");
diff --git a/tests/css/parser/at-invalid-03.errors b/tests/css/parser/at-invalid-03.errors
new file mode 100644 (file)
index 0000000..1437e5a
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-03.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-03.ref.css b/tests/css/parser/at-invalid-03.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-04.css b/tests/css/parser/at-invalid-04.css
new file mode 100644 (file)
index 0000000..c04f7c3
--- /dev/null
@@ -0,0 +1 @@
+@import url(');
diff --git a/tests/css/parser/at-invalid-04.errors b/tests/css/parser/at-invalid-04.errors
new file mode 100644 (file)
index 0000000..dc09c87
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-04.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-04.ref.css b/tests/css/parser/at-invalid-04.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-05.css b/tests/css/parser/at-invalid-05.css
new file mode 100644 (file)
index 0000000..e37b697
--- /dev/null
@@ -0,0 +1 @@
+@import url("abc');
diff --git a/tests/css/parser/at-invalid-05.errors b/tests/css/parser/at-invalid-05.errors
new file mode 100644 (file)
index 0000000..3939d20
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-05.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-05.ref.css b/tests/css/parser/at-invalid-05.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-06.css b/tests/css/parser/at-invalid-06.css
new file mode 100644 (file)
index 0000000..80eb1b6
--- /dev/null
@@ -0,0 +1 @@
+@ import ;
diff --git a/tests/css/parser/at-invalid-06.errors b/tests/css/parser/at-invalid-06.errors
new file mode 100644 (file)
index 0000000..a21622d
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-06.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-06.ref.css b/tests/css/parser/at-invalid-06.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-07.css b/tests/css/parser/at-invalid-07.css
new file mode 100644 (file)
index 0000000..e86c694
--- /dev/null
@@ -0,0 +1 @@
+@define_color blue  red;
diff --git a/tests/css/parser/at-invalid-07.errors b/tests/css/parser/at-invalid-07.errors
new file mode 100644 (file)
index 0000000..cc515cc
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-07.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-07.ref.css b/tests/css/parser/at-invalid-07.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-08.css b/tests/css/parser/at-invalid-08.css
new file mode 100644 (file)
index 0000000..0918be3
--- /dev/null
@@ -0,0 +1 @@
+@define-color blue #12234;
diff --git a/tests/css/parser/at-invalid-08.errors b/tests/css/parser/at-invalid-08.errors
new file mode 100644 (file)
index 0000000..46f6b7a
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-08.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-08.ref.css b/tests/css/parser/at-invalid-08.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-09.css b/tests/css/parser/at-invalid-09.css
new file mode 100644 (file)
index 0000000..6ba62b4
--- /dev/null
@@ -0,0 +1 @@
+@define-color blue #12g234;
diff --git a/tests/css/parser/at-invalid-09.errors b/tests/css/parser/at-invalid-09.errors
new file mode 100644 (file)
index 0000000..a2b6339
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-09.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-09.ref.css b/tests/css/parser/at-invalid-09.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-10.css b/tests/css/parser/at-invalid-10.css
new file mode 100644 (file)
index 0000000..d1740bd
--- /dev/null
@@ -0,0 +1 @@
+@define-color blue @@;
diff --git a/tests/css/parser/at-invalid-10.errors b/tests/css/parser/at-invalid-10.errors
new file mode 100644 (file)
index 0000000..b6f8505
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-10.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-10.ref.css b/tests/css/parser/at-invalid-10.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-11.css b/tests/css/parser/at-invalid-11.css
new file mode 100644 (file)
index 0000000..0efc782
--- /dev/null
@@ -0,0 +1 @@
+@define-color blue 5!#%4@DG$##x;
diff --git a/tests/css/parser/at-invalid-11.errors b/tests/css/parser/at-invalid-11.errors
new file mode 100644 (file)
index 0000000..2a3ab68
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-11.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-11.ref.css b/tests/css/parser/at-invalid-11.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-12.css b/tests/css/parser/at-invalid-12.css
new file mode 100644 (file)
index 0000000..cc51f45
--- /dev/null
@@ -0,0 +1 @@
+@define-color color mix(@red, @blue, @green);
diff --git a/tests/css/parser/at-invalid-12.errors b/tests/css/parser/at-invalid-12.errors
new file mode 100644 (file)
index 0000000..4d0bfbc
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-12.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-12.ref.css b/tests/css/parser/at-invalid-12.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-13.css b/tests/css/parser/at-invalid-13.css
new file mode 100644 (file)
index 0000000..790636c
--- /dev/null
@@ -0,0 +1 @@
+@define-color color mix(@blue, 0.2, @red);
diff --git a/tests/css/parser/at-invalid-13.errors b/tests/css/parser/at-invalid-13.errors
new file mode 100644 (file)
index 0000000..a1bf963
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-13.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-13.ref.css b/tests/css/parser/at-invalid-13.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-14.css b/tests/css/parser/at-invalid-14.css
new file mode 100644 (file)
index 0000000..486ed3b
--- /dev/null
@@ -0,0 +1 @@
+@define-color color mix(0.2, @blue, @red);
diff --git a/tests/css/parser/at-invalid-14.errors b/tests/css/parser/at-invalid-14.errors
new file mode 100644 (file)
index 0000000..2ce10f4
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-14.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-14.ref.css b/tests/css/parser/at-invalid-14.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-15.css b/tests/css/parser/at-invalid-15.css
new file mode 100644 (file)
index 0000000..c0d7899
--- /dev/null
@@ -0,0 +1 @@
+@define-color color mix(@blue, @red);
diff --git a/tests/css/parser/at-invalid-15.errors b/tests/css/parser/at-invalid-15.errors
new file mode 100644 (file)
index 0000000..c94855a
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-15.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-15.ref.css b/tests/css/parser/at-invalid-15.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-16.css b/tests/css/parser/at-invalid-16.css
new file mode 100644 (file)
index 0000000..5cea89a
--- /dev/null
@@ -0,0 +1 @@
+@define-color color mix(@blue);
diff --git a/tests/css/parser/at-invalid-16.errors b/tests/css/parser/at-invalid-16.errors
new file mode 100644 (file)
index 0000000..cb821d9
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-16.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-16.ref.css b/tests/css/parser/at-invalid-16.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-17.css b/tests/css/parser/at-invalid-17.css
new file mode 100644 (file)
index 0000000..6a0b290
--- /dev/null
@@ -0,0 +1 @@
+@define-color color mix();
diff --git a/tests/css/parser/at-invalid-17.errors b/tests/css/parser/at-invalid-17.errors
new file mode 100644 (file)
index 0000000..0e12961
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-17.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-17.ref.css b/tests/css/parser/at-invalid-17.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-18.css b/tests/css/parser/at-invalid-18.css
new file mode 100644 (file)
index 0000000..32e51ea
--- /dev/null
@@ -0,0 +1 @@
+@define-color color rgba(50%, 50%, 50%);
diff --git a/tests/css/parser/at-invalid-18.errors b/tests/css/parser/at-invalid-18.errors
new file mode 100644 (file)
index 0000000..52e5d54
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-18.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-18.ref.css b/tests/css/parser/at-invalid-18.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-19.css b/tests/css/parser/at-invalid-19.css
new file mode 100644 (file)
index 0000000..d297da4
--- /dev/null
@@ -0,0 +1 @@
+@define-color color rgb(50%, a);
diff --git a/tests/css/parser/at-invalid-19.errors b/tests/css/parser/at-invalid-19.errors
new file mode 100644 (file)
index 0000000..1adccb2
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-19.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-19.ref.css b/tests/css/parser/at-invalid-19.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-20.css b/tests/css/parser/at-invalid-20.css
new file mode 100644 (file)
index 0000000..1e2e25f
--- /dev/null
@@ -0,0 +1 @@
+@define-color 1col rgb(50%, a);
diff --git a/tests/css/parser/at-invalid-20.errors b/tests/css/parser/at-invalid-20.errors
new file mode 100644 (file)
index 0000000..075ca99
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-20.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-20.ref.css b/tests/css/parser/at-invalid-20.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-21.css b/tests/css/parser/at-invalid-21.css
new file mode 100644 (file)
index 0000000..96955d7
--- /dev/null
@@ -0,0 +1 @@
+@three-dee { some other crap };
diff --git a/tests/css/parser/at-invalid-21.errors b/tests/css/parser/at-invalid-21.errors
new file mode 100644 (file)
index 0000000..3cc8423
--- /dev/null
@@ -0,0 +1,2 @@
+at-invalid-21.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
+at-invalid-21.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-21.ref.css b/tests/css/parser/at-invalid-21.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-22.css b/tests/css/parser/at-invalid-22.css
new file mode 100644 (file)
index 0000000..c5cd8a3
--- /dev/null
@@ -0,0 +1 @@
+@binding-set "foo";
diff --git a/tests/css/parser/at-invalid-22.errors b/tests/css/parser/at-invalid-22.errors
new file mode 100644 (file)
index 0000000..8aa7420
--- /dev/null
@@ -0,0 +1 @@
+at-invalid-22.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/at-invalid-22.ref.css b/tests/css/parser/at-invalid-22.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-23.css b/tests/css/parser/at-invalid-23.css
new file mode 100644 (file)
index 0000000..4ecc50c
--- /dev/null
@@ -0,0 +1 @@
+@binding-set foo { bind key { "action"() }; };
diff --git a/tests/css/parser/at-invalid-23.errors b/tests/css/parser/at-invalid-23.errors
new file mode 100644 (file)
index 0000000..a2dbe8d
--- /dev/null
@@ -0,0 +1,2 @@
+at-invalid-23.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
+at-invalid-23.css:1: error: GTK_CSS_PROVIDER_ERROR_DEPRECATED
diff --git a/tests/css/parser/at-invalid-23.ref.css b/tests/css/parser/at-invalid-23.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-24.css b/tests/css/parser/at-invalid-24.css
new file mode 100644 (file)
index 0000000..4ecc50c
--- /dev/null
@@ -0,0 +1 @@
+@binding-set foo { bind key { "action"() }; };
diff --git a/tests/css/parser/at-invalid-24.errors b/tests/css/parser/at-invalid-24.errors
new file mode 100644 (file)
index 0000000..717e6b1
--- /dev/null
@@ -0,0 +1,2 @@
+at-invalid-24.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
+at-invalid-24.css:1: error: GTK_CSS_PROVIDER_ERROR_DEPRECATED
diff --git a/tests/css/parser/at-invalid-24.ref.css b/tests/css/parser/at-invalid-24.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-25.css b/tests/css/parser/at-invalid-25.css
new file mode 100644 (file)
index 0000000..94123fb
--- /dev/null
@@ -0,0 +1 @@
+@binding-set foo { bind "key" { action() }; };
diff --git a/tests/css/parser/at-invalid-25.errors b/tests/css/parser/at-invalid-25.errors
new file mode 100644 (file)
index 0000000..3f1ad85
--- /dev/null
@@ -0,0 +1,2 @@
+at-invalid-25.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
+at-invalid-25.css:1: error: GTK_CSS_PROVIDER_ERROR_DEPRECATED
diff --git a/tests/css/parser/at-invalid-25.ref.css b/tests/css/parser/at-invalid-25.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-26.css b/tests/css/parser/at-invalid-26.css
new file mode 100644 (file)
index 0000000..0ea47d6
--- /dev/null
@@ -0,0 +1 @@
+@binding-set foo { bind "key"; };
diff --git a/tests/css/parser/at-invalid-26.errors b/tests/css/parser/at-invalid-26.errors
new file mode 100644 (file)
index 0000000..bbe9763
--- /dev/null
@@ -0,0 +1,2 @@
+at-invalid-26.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
+at-invalid-26.css:1: error: GTK_CSS_PROVIDER_ERROR_DEPRECATED
diff --git a/tests/css/parser/at-invalid-26.ref.css b/tests/css/parser/at-invalid-26.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-invalid-27.css b/tests/css/parser/at-invalid-27.css
new file mode 100644 (file)
index 0000000..b0c81e1
--- /dev/null
@@ -0,0 +1 @@
+@binding-set foo { unbind "key" { "bla" () }; };
diff --git a/tests/css/parser/at-invalid-27.errors b/tests/css/parser/at-invalid-27.errors
new file mode 100644 (file)
index 0000000..e15ca48
--- /dev/null
@@ -0,0 +1,2 @@
+at-invalid-27.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
+at-invalid-27.css:1: error: GTK_CSS_PROVIDER_ERROR_DEPRECATED
diff --git a/tests/css/parser/at-invalid-27.ref.css b/tests/css/parser/at-invalid-27.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-valid-01.css b/tests/css/parser/at-valid-01.css
new file mode 100644 (file)
index 0000000..0628b89
--- /dev/null
@@ -0,0 +1 @@
+@import "./simple.css";
diff --git a/tests/css/parser/at-valid-01.ref.css b/tests/css/parser/at-valid-01.ref.css
new file mode 100644 (file)
index 0000000..d6caa99
--- /dev/null
@@ -0,0 +1,3 @@
+foo {
+  color: rgb(0,0,0);
+}
diff --git a/tests/css/parser/at-valid-02.css b/tests/css/parser/at-valid-02.css
new file mode 100644 (file)
index 0000000..1a82849
--- /dev/null
@@ -0,0 +1 @@
+@import './simple.css';
diff --git a/tests/css/parser/at-valid-02.ref.css b/tests/css/parser/at-valid-02.ref.css
new file mode 100644 (file)
index 0000000..d6caa99
--- /dev/null
@@ -0,0 +1,3 @@
+foo {
+  color: rgb(0,0,0);
+}
diff --git a/tests/css/parser/at-valid-03.css b/tests/css/parser/at-valid-03.css
new file mode 100644 (file)
index 0000000..c652f4e
--- /dev/null
@@ -0,0 +1 @@
+@import url("./simple.css");
diff --git a/tests/css/parser/at-valid-03.ref.css b/tests/css/parser/at-valid-03.ref.css
new file mode 100644 (file)
index 0000000..d6caa99
--- /dev/null
@@ -0,0 +1,3 @@
+foo {
+  color: rgb(0,0,0);
+}
diff --git a/tests/css/parser/at-valid-04.css b/tests/css/parser/at-valid-04.css
new file mode 100644 (file)
index 0000000..d59e12b
--- /dev/null
@@ -0,0 +1 @@
+@import url('./simple.css');
diff --git a/tests/css/parser/at-valid-04.ref.css b/tests/css/parser/at-valid-04.ref.css
new file mode 100644 (file)
index 0000000..d6caa99
--- /dev/null
@@ -0,0 +1,3 @@
+foo {
+  color: rgb(0,0,0);
+}
diff --git a/tests/css/parser/at-valid-05.css b/tests/css/parser/at-valid-05.css
new file mode 100644 (file)
index 0000000..3a50fbc
--- /dev/null
@@ -0,0 +1,2 @@
+@import
+url(   "./simple.css" ) ;
diff --git a/tests/css/parser/at-valid-05.ref.css b/tests/css/parser/at-valid-05.ref.css
new file mode 100644 (file)
index 0000000..d6caa99
--- /dev/null
@@ -0,0 +1,3 @@
+foo {
+  color: rgb(0,0,0);
+}
diff --git a/tests/css/parser/at-valid-06.css b/tests/css/parser/at-valid-06.css
new file mode 100644 (file)
index 0000000..81c788f
--- /dev/null
@@ -0,0 +1 @@
+@define-color bg_color #f9a039;
diff --git a/tests/css/parser/at-valid-06.ref.css b/tests/css/parser/at-valid-06.ref.css
new file mode 100644 (file)
index 0000000..9a713d3
--- /dev/null
@@ -0,0 +1 @@
+@define-color bg_color rgb(249,160,57);
diff --git a/tests/css/parser/at-valid-07.css b/tests/css/parser/at-valid-07.css
new file mode 100644 (file)
index 0000000..0b03a93
--- /dev/null
@@ -0,0 +1 @@
+@define-color color @bg_color;
diff --git a/tests/css/parser/at-valid-08.css b/tests/css/parser/at-valid-08.css
new file mode 100644 (file)
index 0000000..0454e0a
--- /dev/null
@@ -0,0 +1 @@
+@define-color color rgb(100, 99, 88);
diff --git a/tests/css/parser/at-valid-08.ref.css b/tests/css/parser/at-valid-08.ref.css
new file mode 100644 (file)
index 0000000..6f6d0ee
--- /dev/null
@@ -0,0 +1 @@
+@define-color color rgb(100,99,88);
diff --git a/tests/css/parser/at-valid-09.css b/tests/css/parser/at-valid-09.css
new file mode 100644 (file)
index 0000000..0688220
--- /dev/null
@@ -0,0 +1 @@
+@define-color color rgba(50%, 50%, 50%, 0.5);
diff --git a/tests/css/parser/at-valid-09.ref.css b/tests/css/parser/at-valid-09.ref.css
new file mode 100644 (file)
index 0000000..4eac516
--- /dev/null
@@ -0,0 +1 @@
+@define-color color rgba(128,128,128,0.5);
diff --git a/tests/css/parser/at-valid-10.css b/tests/css/parser/at-valid-10.css
new file mode 100644 (file)
index 0000000..6ea6b96
--- /dev/null
@@ -0,0 +1 @@
+@define-color color lighter(#f9a039);
diff --git a/tests/css/parser/at-valid-10.ref.css b/tests/css/parser/at-valid-10.ref.css
new file mode 100644 (file)
index 0000000..ce6c4e2
--- /dev/null
@@ -0,0 +1 @@
+@define-color color shade (rgb(249,160,57), 1.3);
diff --git a/tests/css/parser/at-valid-11.css b/tests/css/parser/at-valid-11.css
new file mode 100644 (file)
index 0000000..db96269
--- /dev/null
@@ -0,0 +1 @@
+@define-color color darker ( @blue ) ;
diff --git a/tests/css/parser/at-valid-11.ref.css b/tests/css/parser/at-valid-11.ref.css
new file mode 100644 (file)
index 0000000..02962b8
--- /dev/null
@@ -0,0 +1 @@
+@define-color color shade (@blue, 0.69999999999999996);
diff --git a/tests/css/parser/at-valid-12.css b/tests/css/parser/at-valid-12.css
new file mode 100644 (file)
index 0000000..b4f20ce
--- /dev/null
@@ -0,0 +1 @@
+@define-color color shade(@blue, 1.3);
diff --git a/tests/css/parser/at-valid-12.ref.css b/tests/css/parser/at-valid-12.ref.css
new file mode 100644 (file)
index 0000000..f6b40c2
--- /dev/null
@@ -0,0 +1 @@
+@define-color color shade (@blue, 1.3);
diff --git a/tests/css/parser/at-valid-13.css b/tests/css/parser/at-valid-13.css
new file mode 100644 (file)
index 0000000..836b77a
--- /dev/null
@@ -0,0 +1 @@
+@define-color color alpha(@blue, 1.3);
diff --git a/tests/css/parser/at-valid-13.ref.css b/tests/css/parser/at-valid-13.ref.css
new file mode 100644 (file)
index 0000000..6bb4096
--- /dev/null
@@ -0,0 +1 @@
+@define-color color alpha (@blue, 1.3);
diff --git a/tests/css/parser/at-valid-14.css b/tests/css/parser/at-valid-14.css
new file mode 100644 (file)
index 0000000..843ea03
--- /dev/null
@@ -0,0 +1 @@
+@define-color color mix(@blue, @red, 0.2);
diff --git a/tests/css/parser/at-valid-14.ref.css b/tests/css/parser/at-valid-14.ref.css
new file mode 100644 (file)
index 0000000..1cf85d7
--- /dev/null
@@ -0,0 +1 @@
+@define-color color mix (@blue, @red, 0.20000000000000001);
diff --git a/tests/css/parser/at-valid-15.css b/tests/css/parser/at-valid-15.css
new file mode 100644 (file)
index 0000000..9546c5b
--- /dev/null
@@ -0,0 +1 @@
+@define-color color red;
diff --git a/tests/css/parser/at-valid-15.ref.css b/tests/css/parser/at-valid-15.ref.css
new file mode 100644 (file)
index 0000000..56e909a
--- /dev/null
@@ -0,0 +1 @@
+@define-color color rgb(255,0,0);
diff --git a/tests/css/parser/at-valid-16.css b/tests/css/parser/at-valid-16.css
new file mode 100644 (file)
index 0000000..cc36511
--- /dev/null
@@ -0,0 +1 @@
+@define-color color mix(shade (#121212, 0.5), mix (rgb(10%,20%,100%), @blue,0.5), 0.2);
diff --git a/tests/css/parser/at-valid-16.ref.css b/tests/css/parser/at-valid-16.ref.css
new file mode 100644 (file)
index 0000000..4ca61c7
--- /dev/null
@@ -0,0 +1 @@
+@define-color color mix (shade (rgb(18,18,18), 0.5), mix (rgb(26,51,255), @blue, 0.5), 0.20000000000000001);
diff --git a/tests/css/parser/at-valid-17.css b/tests/css/parser/at-valid-17.css
new file mode 100644 (file)
index 0000000..15af74f
--- /dev/null
@@ -0,0 +1 @@
+@define-color blue @blue;
diff --git a/tests/css/parser/at-valid-18.css b/tests/css/parser/at-valid-18.css
new file mode 100644 (file)
index 0000000..d2d0f6e
--- /dev/null
@@ -0,0 +1 @@
+@define-color blue123_a-b #123;
diff --git a/tests/css/parser/at-valid-18.ref.css b/tests/css/parser/at-valid-18.ref.css
new file mode 100644 (file)
index 0000000..3bae68d
--- /dev/null
@@ -0,0 +1 @@
+@define-color blue123_a-b rgb(17,34,51);
diff --git a/tests/css/parser/at-valid-19.css b/tests/css/parser/at-valid-19.css
new file mode 100644 (file)
index 0000000..026aad2
--- /dev/null
@@ -0,0 +1 @@
+@binding-set gtk-emacs-menu { bind "<ctrl>n" { "move-current" (next) }; };
diff --git a/tests/css/parser/at-valid-19.errors b/tests/css/parser/at-valid-19.errors
new file mode 100644 (file)
index 0000000..8c865f1
--- /dev/null
@@ -0,0 +1 @@
+at-valid-19.css:1: error: GTK_CSS_PROVIDER_ERROR_DEPRECATED
diff --git a/tests/css/parser/at-valid-19.ref.css b/tests/css/parser/at-valid-19.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-valid-20.css b/tests/css/parser/at-valid-20.css
new file mode 100644 (file)
index 0000000..e2ac94d
--- /dev/null
@@ -0,0 +1,4 @@
+@binding-set gtk-emacs-text-view {
+  bind "<ctrl>u" { "move-cursor" (paragraph-ends, -1, 0)
+                   "delete-from-cursor" (paragraph-ends, 1) };
+};
diff --git a/tests/css/parser/at-valid-20.errors b/tests/css/parser/at-valid-20.errors
new file mode 100644 (file)
index 0000000..b404d39
--- /dev/null
@@ -0,0 +1 @@
+at-valid-20.css:4: error: GTK_CSS_PROVIDER_ERROR_DEPRECATED
diff --git a/tests/css/parser/at-valid-20.ref.css b/tests/css/parser/at-valid-20.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/at-valid-21.css b/tests/css/parser/at-valid-21.css
new file mode 100644 (file)
index 0000000..d4933bb
--- /dev/null
@@ -0,0 +1,4 @@
+@binding-set test {
+  bind "<ctrl>space" { "set-anchor" () };
+  unbind "<ctrl>v";
+};
diff --git a/tests/css/parser/at-valid-21.errors b/tests/css/parser/at-valid-21.errors
new file mode 100644 (file)
index 0000000..1bd8d5b
--- /dev/null
@@ -0,0 +1 @@
+at-valid-21.css:4: error: GTK_CSS_PROVIDER_ERROR_DEPRECATED
diff --git a/tests/css/parser/at-valid-21.ref.css b/tests/css/parser/at-valid-21.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/declarations-invalid-01.css b/tests/css/parser/declarations-invalid-01.css
new file mode 100644 (file)
index 0000000..e1aae2c
--- /dev/null
@@ -0,0 +1 @@
+* { color }
diff --git a/tests/css/parser/declarations-invalid-01.errors b/tests/css/parser/declarations-invalid-01.errors
new file mode 100644 (file)
index 0000000..2cfb1d5
--- /dev/null
@@ -0,0 +1 @@
+declarations-invalid-01.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/declarations-invalid-01.ref.css b/tests/css/parser/declarations-invalid-01.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/declarations-invalid-02.css b/tests/css/parser/declarations-invalid-02.css
new file mode 100644 (file)
index 0000000..14df5df
--- /dev/null
@@ -0,0 +1 @@
+* { color:green; color }
diff --git a/tests/css/parser/declarations-invalid-02.errors b/tests/css/parser/declarations-invalid-02.errors
new file mode 100644 (file)
index 0000000..6bee217
--- /dev/null
@@ -0,0 +1 @@
+declarations-invalid-02.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/declarations-invalid-02.ref.css b/tests/css/parser/declarations-invalid-02.ref.css
new file mode 100644 (file)
index 0000000..272b697
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  color: rgb(0,255,0);
+}
diff --git a/tests/css/parser/declarations-invalid-03.css b/tests/css/parser/declarations-invalid-03.css
new file mode 100644 (file)
index 0000000..2a007fb
--- /dev/null
@@ -0,0 +1 @@
+* { color:red; color; color:green }
diff --git a/tests/css/parser/declarations-invalid-03.errors b/tests/css/parser/declarations-invalid-03.errors
new file mode 100644 (file)
index 0000000..b2b74f0
--- /dev/null
@@ -0,0 +1 @@
+declarations-invalid-03.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/declarations-invalid-03.ref.css b/tests/css/parser/declarations-invalid-03.ref.css
new file mode 100644 (file)
index 0000000..272b697
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  color: rgb(0,255,0);
+}
diff --git a/tests/css/parser/declarations-invalid-04.css b/tests/css/parser/declarations-invalid-04.css
new file mode 100644 (file)
index 0000000..5a8ee1e
--- /dev/null
@@ -0,0 +1 @@
+* { color:green; color: }
diff --git a/tests/css/parser/declarations-invalid-04.errors b/tests/css/parser/declarations-invalid-04.errors
new file mode 100644 (file)
index 0000000..e16010d
--- /dev/null
@@ -0,0 +1 @@
+declarations-invalid-04.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/declarations-invalid-04.ref.css b/tests/css/parser/declarations-invalid-04.ref.css
new file mode 100644 (file)
index 0000000..272b697
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  color: rgb(0,255,0);
+}
diff --git a/tests/css/parser/declarations-invalid-05.css b/tests/css/parser/declarations-invalid-05.css
new file mode 100644 (file)
index 0000000..7de3031
--- /dev/null
@@ -0,0 +1 @@
+* { color:red; color:; color:green }
diff --git a/tests/css/parser/declarations-invalid-05.errors b/tests/css/parser/declarations-invalid-05.errors
new file mode 100644 (file)
index 0000000..1eb9974
--- /dev/null
@@ -0,0 +1 @@
+declarations-invalid-05.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/declarations-invalid-05.ref.css b/tests/css/parser/declarations-invalid-05.ref.css
new file mode 100644 (file)
index 0000000..272b697
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  color: rgb(0,255,0);
+}
diff --git a/tests/css/parser/declarations-invalid-06.css b/tests/css/parser/declarations-invalid-06.css
new file mode 100644 (file)
index 0000000..3d3f863
--- /dev/null
@@ -0,0 +1 @@
+* { color:green; color{;color:maroon} }
diff --git a/tests/css/parser/declarations-invalid-06.errors b/tests/css/parser/declarations-invalid-06.errors
new file mode 100644 (file)
index 0000000..bc97576
--- /dev/null
@@ -0,0 +1 @@
+declarations-invalid-06.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/declarations-invalid-06.ref.css b/tests/css/parser/declarations-invalid-06.ref.css
new file mode 100644 (file)
index 0000000..272b697
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  color: rgb(0,255,0);
+}
diff --git a/tests/css/parser/declarations-invalid-07.css b/tests/css/parser/declarations-invalid-07.css
new file mode 100644 (file)
index 0000000..3abf590
--- /dev/null
@@ -0,0 +1 @@
+* { color:red; color{;color:maroon}; color:green }
diff --git a/tests/css/parser/declarations-invalid-07.errors b/tests/css/parser/declarations-invalid-07.errors
new file mode 100644 (file)
index 0000000..73f5e0e
--- /dev/null
@@ -0,0 +1 @@
+declarations-invalid-07.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/declarations-invalid-07.ref.css b/tests/css/parser/declarations-invalid-07.ref.css
new file mode 100644 (file)
index 0000000..272b697
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  color: rgb(0,255,0);
+}
diff --git a/tests/css/parser/declarations-invalid-08.css b/tests/css/parser/declarations-invalid-08.css
new file mode 100644 (file)
index 0000000..e7d9860
--- /dev/null
@@ -0,0 +1 @@
+* { content: 'Hello
diff --git a/tests/css/parser/declarations-invalid-08.errors b/tests/css/parser/declarations-invalid-08.errors
new file mode 100644 (file)
index 0000000..e97a2d5
--- /dev/null
@@ -0,0 +1,3 @@
+declarations-invalid-08.css:1: error: GTK_CSS_PROVIDER_ERROR_NAME
+declarations-invalid-08.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
+declarations-invalid-08.css:2: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/declarations-invalid-08.ref.css b/tests/css/parser/declarations-invalid-08.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/declarations-valid-01.css b/tests/css/parser/declarations-valid-01.css
new file mode 100644 (file)
index 0000000..611907d
--- /dev/null
@@ -0,0 +1 @@
+* {}
diff --git a/tests/css/parser/declarations-valid-01.ref.css b/tests/css/parser/declarations-valid-01.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/declarations-valid-02.css b/tests/css/parser/declarations-valid-02.css
new file mode 100644 (file)
index 0000000..4cf729c
--- /dev/null
@@ -0,0 +1 @@
+* { font: Sans 15 }
diff --git a/tests/css/parser/declarations-valid-02.ref.css b/tests/css/parser/declarations-valid-02.ref.css
new file mode 100644 (file)
index 0000000..3f5a75a
--- /dev/null
@@ -0,0 +1,7 @@
+* {
+  font-family: "Sans";
+  font-size: 15;
+  font-style: normal;
+  font-variant: normal;
+  font-weight: normal;
+}
diff --git a/tests/css/parser/declarations-valid-03.css b/tests/css/parser/declarations-valid-03.css
new file mode 100644 (file)
index 0000000..6d85fa8
--- /dev/null
@@ -0,0 +1 @@
+* { font: Sans 15; }
diff --git a/tests/css/parser/declarations-valid-03.ref.css b/tests/css/parser/declarations-valid-03.ref.css
new file mode 100644 (file)
index 0000000..3f5a75a
--- /dev/null
@@ -0,0 +1,7 @@
+* {
+  font-family: "Sans";
+  font-size: 15;
+  font-style: normal;
+  font-variant: normal;
+  font-weight: normal;
+}
diff --git a/tests/css/parser/declarations-valid-04.css b/tests/css/parser/declarations-valid-04.css
new file mode 100644 (file)
index 0000000..41852c6
--- /dev/null
@@ -0,0 +1 @@
+* { font: bold }
diff --git a/tests/css/parser/declarations-valid-04.ref.css b/tests/css/parser/declarations-valid-04.ref.css
new file mode 100644 (file)
index 0000000..805d477
--- /dev/null
@@ -0,0 +1,7 @@
+* {
+  font-family: "Sans";
+  font-size: 10;
+  font-style: normal;
+  font-variant: normal;
+  font-weight: bold;
+}
diff --git a/tests/css/parser/declarations-valid-05.css b/tests/css/parser/declarations-valid-05.css
new file mode 100644 (file)
index 0000000..c3997d3
--- /dev/null
@@ -0,0 +1 @@
+* { color: red }
diff --git a/tests/css/parser/declarations-valid-05.ref.css b/tests/css/parser/declarations-valid-05.ref.css
new file mode 100644 (file)
index 0000000..55b9031
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  color: rgb(255,0,0);
+}
diff --git a/tests/css/parser/declarations-valid-06.css b/tests/css/parser/declarations-valid-06.css
new file mode 100644 (file)
index 0000000..3bc5c6d
--- /dev/null
@@ -0,0 +1 @@
+* { /* just a comment */ }
diff --git a/tests/css/parser/declarations-valid-06.ref.css b/tests/css/parser/declarations-valid-06.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/declarations-valid-07.css b/tests/css/parser/declarations-valid-07.css
new file mode 100644 (file)
index 0000000..d91593c
--- /dev/null
@@ -0,0 +1,3 @@
+* { /* multi
+line
+comment */ }
diff --git a/tests/css/parser/declarations-valid-07.ref.css b/tests/css/parser/declarations-valid-07.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/declarations-valid-08.css b/tests/css/parser/declarations-valid-08.css
new file mode 100644 (file)
index 0000000..58a4c07
--- /dev/null
@@ -0,0 +1 @@
+* { font: /* comment here */ Sans 15 }
diff --git a/tests/css/parser/declarations-valid-08.ref.css b/tests/css/parser/declarations-valid-08.ref.css
new file mode 100644 (file)
index 0000000..3f5a75a
--- /dev/null
@@ -0,0 +1,7 @@
+* {
+  font-family: "Sans";
+  font-size: 15;
+  font-style: normal;
+  font-variant: normal;
+  font-weight: normal;
+}
diff --git a/tests/css/parser/declarations-valid-09.css b/tests/css/parser/declarations-valid-09.css
new file mode 100644 (file)
index 0000000..88530f0
--- /dev/null
@@ -0,0 +1 @@
+* { color: red; background-color: shade (@bg_color, 0.5) }
diff --git a/tests/css/parser/declarations-valid-09.ref.css b/tests/css/parser/declarations-valid-09.ref.css
new file mode 100644 (file)
index 0000000..48d9070
--- /dev/null
@@ -0,0 +1,4 @@
+* {
+  background-color: shade (@bg_color, 0.5);
+  color: rgb(255,0,0);
+}
diff --git a/tests/css/parser/declarations-valid-10.css b/tests/css/parser/declarations-valid-10.css
new file mode 100644 (file)
index 0000000..9591970
--- /dev/null
@@ -0,0 +1 @@
+* { margin: 5 }
diff --git a/tests/css/parser/declarations-valid-10.ref.css b/tests/css/parser/declarations-valid-10.ref.css
new file mode 100644 (file)
index 0000000..d0fdbf0
--- /dev/null
@@ -0,0 +1,6 @@
+* {
+  margin-bottom: 5;
+  margin-left: 5;
+  margin-right: 5;
+  margin-top: 5;
+}
diff --git a/tests/css/parser/declarations-valid-11.css b/tests/css/parser/declarations-valid-11.css
new file mode 100644 (file)
index 0000000..4eb9973
--- /dev/null
@@ -0,0 +1 @@
+* { margin: 5 10 }
diff --git a/tests/css/parser/declarations-valid-11.ref.css b/tests/css/parser/declarations-valid-11.ref.css
new file mode 100644 (file)
index 0000000..83ce35b
--- /dev/null
@@ -0,0 +1,6 @@
+* {
+  margin-bottom: 5;
+  margin-left: 10;
+  margin-right: 10;
+  margin-top: 5;
+}
diff --git a/tests/css/parser/declarations-valid-12.css b/tests/css/parser/declarations-valid-12.css
new file mode 100644 (file)
index 0000000..022ae30
--- /dev/null
@@ -0,0 +1 @@
+* { margin: 5 10 3 }
diff --git a/tests/css/parser/declarations-valid-12.ref.css b/tests/css/parser/declarations-valid-12.ref.css
new file mode 100644 (file)
index 0000000..daafbf9
--- /dev/null
@@ -0,0 +1,6 @@
+* {
+  margin-bottom: 3;
+  margin-left: 10;
+  margin-right: 10;
+  margin-top: 5;
+}
diff --git a/tests/css/parser/declarations-valid-13.css b/tests/css/parser/declarations-valid-13.css
new file mode 100644 (file)
index 0000000..252547f
--- /dev/null
@@ -0,0 +1 @@
+* { margin: 5 10 3 5 }
diff --git a/tests/css/parser/declarations-valid-13.ref.css b/tests/css/parser/declarations-valid-13.ref.css
new file mode 100644 (file)
index 0000000..481a2dd
--- /dev/null
@@ -0,0 +1,6 @@
+* {
+  margin-bottom: 3;
+  margin-left: 5;
+  margin-right: 10;
+  margin-top: 5;
+}
diff --git a/tests/css/parser/declarations-valid-14.css b/tests/css/parser/declarations-valid-14.css
new file mode 100644 (file)
index 0000000..226e3af
--- /dev/null
@@ -0,0 +1 @@
+* { padding: 5 }
diff --git a/tests/css/parser/declarations-valid-14.ref.css b/tests/css/parser/declarations-valid-14.ref.css
new file mode 100644 (file)
index 0000000..28b5f81
--- /dev/null
@@ -0,0 +1,6 @@
+* {
+  padding-bottom: 5;
+  padding-left: 5;
+  padding-right: 5;
+  padding-top: 5;
+}
diff --git a/tests/css/parser/declarations-valid-15.css b/tests/css/parser/declarations-valid-15.css
new file mode 100644 (file)
index 0000000..b2c3cde
--- /dev/null
@@ -0,0 +1 @@
+* { padding: 5 10 }
diff --git a/tests/css/parser/declarations-valid-15.ref.css b/tests/css/parser/declarations-valid-15.ref.css
new file mode 100644 (file)
index 0000000..a6aa976
--- /dev/null
@@ -0,0 +1,6 @@
+* {
+  padding-bottom: 5;
+  padding-left: 10;
+  padding-right: 10;
+  padding-top: 5;
+}
diff --git a/tests/css/parser/declarations-valid-16.css b/tests/css/parser/declarations-valid-16.css
new file mode 100644 (file)
index 0000000..deff898
--- /dev/null
@@ -0,0 +1 @@
+* { border-width: 5; border-radius: 10 }
diff --git a/tests/css/parser/declarations-valid-16.ref.css b/tests/css/parser/declarations-valid-16.ref.css
new file mode 100644 (file)
index 0000000..215fde7
--- /dev/null
@@ -0,0 +1,10 @@
+* {
+  border-bottom-left-radius: 10;
+  border-bottom-right-radius: 10;
+  border-bottom-width: 5;
+  border-left-width: 5;
+  border-right-width: 5;
+  border-top-left-radius: 10;
+  border-top-right-radius: 10;
+  border-top-width: 5;
+}
diff --git a/tests/css/parser/declarations-valid-17.css b/tests/css/parser/declarations-valid-17.css
new file mode 100644 (file)
index 0000000..a08963d
--- /dev/null
@@ -0,0 +1 @@
+* { border-color: #ff00ff }
diff --git a/tests/css/parser/declarations-valid-17.ref.css b/tests/css/parser/declarations-valid-17.ref.css
new file mode 100644 (file)
index 0000000..261af12
--- /dev/null
@@ -0,0 +1,6 @@
+* {
+  border-bottom-color: rgb(255,0,255);
+  border-left-color: rgb(255,0,255);
+  border-right-color: rgb(255,0,255);
+  border-top-color: rgb(255,0,255);
+}
diff --git a/tests/css/parser/declarations-valid-18.css b/tests/css/parser/declarations-valid-18.css
new file mode 100644 (file)
index 0000000..8b4b092
--- /dev/null
@@ -0,0 +1 @@
+* { engine: definitelydoesnotexist }
diff --git a/tests/css/parser/declarations-valid-18.errors b/tests/css/parser/declarations-valid-18.errors
new file mode 100644 (file)
index 0000000..9b00258
--- /dev/null
@@ -0,0 +1 @@
+declarations-valid-18.css:1: error: GTK_CSS_PROVIDER_ERROR_SYNTAX
diff --git a/tests/css/parser/declarations-valid-18.ref.css b/tests/css/parser/declarations-valid-18.ref.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/declarations-valid-19.css b/tests/css/parser/declarations-valid-19.css
new file mode 100644 (file)
index 0000000..423f672
--- /dev/null
@@ -0,0 +1,3 @@
+* { background-image: -gtk-gradient (linear,               
+                                    left top, right top,   
+                                    from (#fff), to (#000)) }
diff --git a/tests/css/parser/declarations-valid-19.ref.css b/tests/css/parser/declarations-valid-19.ref.css
new file mode 100644 (file)
index 0000000..a95b753
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  background-image: -gtk-gradient (linear, left top, right top, from (rgb(255,255,255)), to (rgb(0,0,0)));
+}
diff --git a/tests/css/parser/declarations-valid-20.css b/tests/css/parser/declarations-valid-20.css
new file mode 100644 (file)
index 0000000..1095225
--- /dev/null
@@ -0,0 +1,5 @@
+* { background-image: -gtk-gradient (linear,               
+                                    0.0 0.5, 0.5 1.0,      
+                                    from (#fff),           
+                                    color-stop (0.5, #f00),
+                                    to (#000))              }
diff --git a/tests/css/parser/declarations-valid-20.ref.css b/tests/css/parser/declarations-valid-20.ref.css
new file mode 100644 (file)
index 0000000..d9d6c17
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  background-image: -gtk-gradient (linear, left center, center bottom, from (rgb(255,255,255)), color-stop (0.5, rgb(255,0,0)), to (rgb(0,0,0)));
+}
diff --git a/tests/css/parser/declarations-valid-21.css b/tests/css/parser/declarations-valid-21.css
new file mode 100644 (file)
index 0000000..8986615
--- /dev/null
@@ -0,0 +1,6 @@
+* { background-image: -gtk-gradient (radial,               
+                                     center center, 0.25,   
+                                     center center, 0.75,   
+                                     color-stop (0.0,#fff),
+                                     color-stop (1.0,#000))}
+
diff --git a/tests/css/parser/declarations-valid-21.ref.css b/tests/css/parser/declarations-valid-21.ref.css
new file mode 100644 (file)
index 0000000..4495fa6
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  background-image: -gtk-gradient (radial, center center, 0.25, center center, 0.75, from (rgb(255,255,255)), to (rgb(0,0,0)));
+}
diff --git a/tests/css/parser/declarations-valid-22.css b/tests/css/parser/declarations-valid-22.css
new file mode 100644 (file)
index 0000000..dff2506
--- /dev/null
@@ -0,0 +1 @@
+* { border-image: url("./test.png") 3 4 3 4 stretch       }
diff --git a/tests/css/parser/declarations-valid-22.ref.css b/tests/css/parser/declarations-valid-22.ref.css
new file mode 100644 (file)
index 0000000..b853db8
--- /dev/null
@@ -0,0 +1,6 @@
+* {
+  border-image-repeat: stretch;
+  border-image-slice: 3 4;
+  border-image-source: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAABmJLR0QA/wD/AP+gvaeTAAAAFUlEQVQImQXBAQEAAACAEP9PF1CpMCnkBftPnd1xAAAAAElFTkSuQmCC");
+  border-image-width: none;
+}
diff --git a/tests/css/parser/declarations-valid-23.css b/tests/css/parser/declarations-valid-23.css
new file mode 100644 (file)
index 0000000..1cbeeb9
--- /dev/null
@@ -0,0 +1 @@
+* { border-image: url("./test.png") 3 4 3 4 repeat stretch}
diff --git a/tests/css/parser/declarations-valid-23.ref.css b/tests/css/parser/declarations-valid-23.ref.css
new file mode 100644 (file)
index 0000000..7eb45bc
--- /dev/null
@@ -0,0 +1,6 @@
+* {
+  border-image-repeat: repeat stretch;
+  border-image-slice: 3 4;
+  border-image-source: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAIAAAD91JpzAAAABmJLR0QA/wD/AP+gvaeTAAAAFUlEQVQImQXBAQEAAACAEP9PF1CpMCnkBftPnd1xAAAAAElFTkSuQmCC");
+  border-image-width: none;
+}
diff --git a/tests/css/parser/declarations-valid-24.css b/tests/css/parser/declarations-valid-24.css
new file mode 100644 (file)
index 0000000..cb1794a
--- /dev/null
@@ -0,0 +1 @@
+* { transition: 150ms ease-in-out                          }
diff --git a/tests/css/parser/declarations-valid-24.ref.css b/tests/css/parser/declarations-valid-24.ref.css
new file mode 100644 (file)
index 0000000..0dd35d6
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  transition: 150ms ease-in-out;
+}
diff --git a/tests/css/parser/declarations-valid-25.css b/tests/css/parser/declarations-valid-25.css
new file mode 100644 (file)
index 0000000..957cc63
--- /dev/null
@@ -0,0 +1 @@
+* { transition: 1s linear loop                             }
diff --git a/tests/css/parser/declarations-valid-25.ref.css b/tests/css/parser/declarations-valid-25.ref.css
new file mode 100644 (file)
index 0000000..502fa01
--- /dev/null
@@ -0,0 +1,3 @@
+* {
+  transition: 1s linear loop;
+}
diff --git a/tests/css/parser/empty.css b/tests/css/parser/empty.css
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/tests/css/parser/test.png b/tests/css/parser/test.png
new file mode 100644 (file)
index 0000000..7f48e1a
Binary files /dev/null and b/tests/css/parser/test.png differ
index 625c56ff8a86707ae3ffe37e9964ae1f75ce0c0b..8364dde4f1eeb6e5184553e4bc78f7a3a4c1dcc2 100644 (file)
@@ -51,6 +51,9 @@ EXTRA_DIST += \
        border-image-url.css \
        border-image-url.ref.ui \
        border-image-url.ui \
+       border-radius-clamp.css\
+       border-radius-clamp.ref.ui \
+       border-radius-clamp.ui \
        box-packing.css \
        box-packing.ref.ui \
        box-packing.ui \
@@ -119,6 +122,8 @@ EXTRA_DIST += \
        label-small-ellipsized.ui \
        label-wrap-justify.ref.ui \
        label-wrap-justify.ui \
+       messagedialog-secondarytext.ui \
+       messagedialog-secondarytext.ref.ui \
        misc-alignment.css \
        misc-alignment.ui \
        misc-alignment.ref.ui \
@@ -139,6 +144,9 @@ EXTRA_DIST += \
        shorthand-entry-border.ui \
        simple.ref.ui \
        simple.ui \
+       style-properties-nth-child.css \
+       style-properties-nth-child.ref.ui \
+       style-properties-nth-child.ui \
        toplevel-vs-popup.ref.ui \
        toplevel-vs-popup.ui \
        unresolvable.css \
diff --git a/tests/reftests/border-radius-clamp.css b/tests/reftests/border-radius-clamp.css
new file mode 100644 (file)
index 0000000..f7b3da6
--- /dev/null
@@ -0,0 +1,9 @@
+.progressbar {
+  engine: none;
+  border-image: none;
+  border-radius: 25;
+}
+
+#reference .progressbar {
+  border-radius: 10;
+}
diff --git a/tests/reftests/border-radius-clamp.ref.ui b/tests/reftests/border-radius-clamp.ref.ui
new file mode 100644 (file)
index 0000000..c38df4f
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="name">reference</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkProgressBar" id="progressbar1">
+        <property name="width_request">150</property>
+        <property name="height_request">20</property>
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="fraction">0.5</property>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/reftests/border-radius-clamp.ui b/tests/reftests/border-radius-clamp.ui
new file mode 100644 (file)
index 0000000..1617d3f
--- /dev/null
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <child>
+      <object class="GtkProgressBar" id="progressbar1">
+        <property name="width_request">150</property>
+        <property name="height_request">20</property>
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="fraction">0.5</property>
+      </object>
+    </child>
+  </object>
+</interface>
index 2a4d203fe4847d114862f2095d1452790cfdaf79..2de71a4a5a8ee246e03372b1a46538df8cfd873e 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <!-- interface-requires gtk+ 3.0 -->
-  <object class="GtkWindow" id="window1">
+  <object class="GtkOffscreenWindow" id="window1">
     <property name="can_focus">False</property>
     <property name="type">popup</property>
     <child>
@@ -10,7 +10,7 @@
         <property name="can_focus">False</property>
         <property name="row_spacing">1</property>
         <property name="column_spacing">1</property>
-        <property name="row-homogeneous">True</property>
+        <property name="row_homogeneous">True</property>
         <child>
           <object class="GtkLabel" id="label2">
             <property name="visible">True</property>
                       <object class="GtkLabel" id="required-required1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
                       <object class="GtkLabel" id="required-natural1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
                       <object class="GtkLabel" id="natural-required1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
                       <object class="GtkLabel" id="natural-natural1">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
                       <object class="GtkLabel" id="required-required2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -349,9 +349,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -384,8 +384,8 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -407,8 +407,8 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -505,8 +505,8 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required3">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -528,8 +528,8 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural3">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -562,8 +562,8 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required3">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -585,8 +585,8 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural3">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -683,8 +683,8 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required4">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -706,9 +706,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural4">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">…
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">A
 …</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -741,8 +741,8 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required4">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -764,8 +764,8 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural4">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -862,9 +862,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required5">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -886,9 +886,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural5">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -921,9 +921,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required5">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -945,9 +945,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural5">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1044,10 +1044,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required6">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1069,10 +1069,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural6">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1105,9 +1105,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required6">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1129,9 +1129,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural6">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1228,9 +1228,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required7">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1252,9 +1252,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural7">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1287,9 +1287,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required7">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1311,9 +1311,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural7">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1410,9 +1410,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required8">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1434,10 +1434,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural8">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">ABC…
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">ABCD
 ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1470,9 +1470,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required8">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1494,9 +1494,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural8">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1593,9 +1593,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required9">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1617,9 +1617,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural9">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1652,9 +1652,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required9">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1676,9 +1676,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural9">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1775,10 +1775,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required10">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1800,10 +1800,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural10">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1836,9 +1836,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required10">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1860,9 +1860,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural10">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1959,9 +1959,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required11">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -1983,9 +1983,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural11">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2018,9 +2018,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required11">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2042,9 +2042,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural11">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2141,9 +2141,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required12">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2165,10 +2165,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural12">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2201,9 +2201,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required12">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2225,9 +2225,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural12">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2324,9 +2324,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required13">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2348,9 +2348,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural13">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2383,9 +2383,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required13">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2407,9 +2407,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural13">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2506,9 +2506,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required14">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2530,9 +2530,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural14">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2565,9 +2565,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required14">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2589,9 +2589,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural14">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2688,9 +2688,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required15">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2712,9 +2712,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural15">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2747,9 +2747,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required15">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2771,9 +2771,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural15">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2870,9 +2870,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required16">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2894,9 +2894,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural16">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2929,9 +2929,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required16">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -2953,9 +2953,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural16">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3052,9 +3052,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required17">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3076,9 +3076,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural17">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3111,9 +3111,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required17">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3135,9 +3135,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural17">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3234,10 +3234,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required18">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3259,10 +3259,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural18">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3295,10 +3295,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required18">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3320,10 +3320,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural18">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3420,9 +3420,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required19">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3444,9 +3444,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural19">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3479,9 +3479,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required19">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3503,9 +3503,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural19">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3602,9 +3602,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required20">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3626,10 +3626,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural20">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">…
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">A
 …</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3662,9 +3662,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required20">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3686,10 +3686,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural20">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">ABC…
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">ABCD
 ABCD</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3786,10 +3786,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required21">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3811,10 +3811,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural21">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3847,10 +3847,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required21">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3872,10 +3872,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural21">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3972,11 +3972,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required22">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -3998,11 +3998,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural22">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4035,11 +4035,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required22">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4061,11 +4061,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural22">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4162,10 +4162,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required23">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4187,10 +4187,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural23">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4223,10 +4223,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required23">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4248,10 +4248,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural23">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4348,10 +4348,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required24">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4373,11 +4373,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural24">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">ABC…
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">ABCD
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4410,10 +4410,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required24">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4435,11 +4435,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural24">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">ABC…
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">ABCD
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4536,10 +4536,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required25">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4561,10 +4561,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural25">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4597,10 +4597,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required25">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4622,10 +4622,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural25">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4722,11 +4722,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required26">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4748,11 +4748,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural26">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4785,11 +4785,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required26">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4811,11 +4811,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural26">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4912,10 +4912,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required27">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4937,10 +4937,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural27">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4973,10 +4973,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required27">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -4998,10 +4998,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural27">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5098,10 +5098,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required28">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5123,11 +5123,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural28">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5160,10 +5160,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required28">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5185,11 +5185,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural28">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5286,10 +5286,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required29">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5311,10 +5311,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural29">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5347,10 +5347,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required29">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5372,10 +5372,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural29">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5472,10 +5472,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required30">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5497,10 +5497,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural30">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5533,10 +5533,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required30">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5558,10 +5558,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural30">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5658,10 +5658,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required31">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5683,10 +5683,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural31">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5719,10 +5719,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required31">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5744,10 +5744,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural31">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5844,10 +5844,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required32">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5869,10 +5869,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural32">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5905,10 +5905,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required32">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -5930,10 +5930,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural32">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">4</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6030,9 +6030,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required33">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6054,9 +6054,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural33">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6089,9 +6089,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required33">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6113,9 +6113,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural33">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6212,10 +6212,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required34">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6237,10 +6237,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural34">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6273,10 +6273,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required34">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6298,10 +6298,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural34">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6398,9 +6398,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required35">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6422,9 +6422,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural35">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6457,9 +6457,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required35">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6481,9 +6481,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural35">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6580,9 +6580,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required36">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6604,10 +6604,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural36">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">…
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">A
 …</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6640,9 +6640,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required36">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6664,10 +6664,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural36">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6764,10 +6764,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required37">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6789,10 +6789,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural37">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6825,10 +6825,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required37">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6850,10 +6850,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural37">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6950,11 +6950,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required38">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -6976,11 +6976,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural38">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7013,11 +7013,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required38">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7039,11 +7039,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural38">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7140,10 +7140,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required39">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7165,10 +7165,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural39">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7201,10 +7201,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required39">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7226,10 +7226,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural39">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7326,10 +7326,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required40">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7351,11 +7351,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural40">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">ABC…
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">ABCD
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7388,10 +7388,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required40">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7413,11 +7413,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural40">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7514,10 +7514,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required41">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7539,10 +7539,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural41">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7575,10 +7575,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required41">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7600,10 +7600,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural41">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7700,11 +7700,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required42">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7726,11 +7726,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural42">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7763,11 +7763,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required42">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7789,11 +7789,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural42">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7890,10 +7890,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required43">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7915,10 +7915,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural43">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7951,10 +7951,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required43">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -7976,10 +7976,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural43">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8076,10 +8076,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required44">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8101,11 +8101,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural44">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8138,10 +8138,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required44">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8163,11 +8163,11 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural44">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8264,10 +8264,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required45">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8289,10 +8289,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural45">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8325,10 +8325,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required45">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8350,10 +8350,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural45">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8450,10 +8450,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required46">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8475,10 +8475,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural46">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8511,10 +8511,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required46">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8536,10 +8536,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural46">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8636,10 +8636,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required47">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8661,10 +8661,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural47">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8697,10 +8697,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required47">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8722,10 +8722,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural47">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8822,10 +8822,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required48">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8847,10 +8847,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural48">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8883,10 +8883,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required48">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -8908,10 +8908,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural48">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">8</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9008,9 +9008,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required49">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9032,9 +9032,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural49">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9067,9 +9067,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required49">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9091,9 +9091,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural49">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9190,10 +9190,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required50">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9215,10 +9215,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural50">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9251,9 +9251,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required50">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9275,9 +9275,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural50">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9374,9 +9374,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required51">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9398,9 +9398,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural51">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9433,9 +9433,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required51">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9457,9 +9457,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural51">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9556,9 +9556,9 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required52">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">…</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9580,10 +9580,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural52">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">…
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">A
 …</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9616,9 +9616,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required52">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9640,9 +9640,9 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural52">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9739,10 +9739,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required53">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9764,10 +9764,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural53">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9800,10 +9800,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required53">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9825,10 +9825,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural53">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9925,11 +9925,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required54">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9951,11 +9951,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural54">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -9988,10 +9988,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required54">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10013,10 +10013,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural54">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10113,10 +10113,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required55">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10138,10 +10138,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural55">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10174,10 +10174,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required55">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10199,10 +10199,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural55">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10299,10 +10299,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required56">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABC…</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10324,11 +10324,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural56">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">ABC…
+                        <property name="xalign">0</property>
+                        <property name="label" translatable="yes">ABCD
 ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10361,10 +10361,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required56">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10386,10 +10386,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural56">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">4</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10486,10 +10486,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required57">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10511,10 +10511,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural57">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10547,10 +10547,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required57">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10572,10 +10572,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural57">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10672,11 +10672,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required58">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10698,11 +10698,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural58">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10735,10 +10735,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required58">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10760,10 +10760,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural58">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10860,10 +10860,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required59">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10885,10 +10885,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural59">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10921,10 +10921,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required59">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -10946,10 +10946,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural59">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11046,10 +11046,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required60">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE A…</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11071,11 +11071,11 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural60">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE   
 ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11108,10 +11108,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required60">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11133,10 +11133,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural60">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD</property>
                         <property name="width_chars">8</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11233,10 +11233,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required61">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11258,10 +11258,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural61">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11294,10 +11294,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required61">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11319,10 +11319,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural61">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11419,10 +11419,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required62">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11444,10 +11444,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural62">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11480,10 +11480,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required62">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11505,10 +11505,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural62">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11605,10 +11605,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required63">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11630,10 +11630,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural63">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11666,10 +11666,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required63">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11691,10 +11691,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural63">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11791,10 +11791,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-required64">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11816,10 +11816,10 @@ ABCD</property>
                       <object class="GtkLabel" id="required-natural64">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11852,10 +11852,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-required64">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
@@ -11877,10 +11877,10 @@ ABCD</property>
                       <object class="GtkLabel" id="natural-natural64">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
+                        <property name="xalign">0</property>
                         <property name="label" translatable="yes">ABCDE ABCD  </property>
                         <property name="width_chars">12</property>
                         <property name="max_width_chars">12</property>
-                        <property name="xalign">0.0</property>
                         <attributes>
                           <attribute name="font-desc" value="Monospace"/>
                         </attributes>
index 36822911041ea0e4f367317aeac3276a838ab24a..9031bfe6f61728556166ed54c8cdc35abf6646d4 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <!-- interface-requires gtk+ 3.0 -->
-  <object class="GtkWindow" id="window1">
+  <object class="GtkOffscreenWindow" id="window1">
     <property name="can_focus">False</property>
     <property name="type">popup</property>
     <child>
diff --git a/tests/reftests/messagedialog-secondarytext.ref.ui b/tests/reftests/messagedialog-secondarytext.ref.ui
new file mode 100644 (file)
index 0000000..6f7381c
--- /dev/null
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkMessageDialog" id="messagedialog1">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="type">popup</property>
+    <property name="type_hint">dialog</property>
+    <property name="skip_taskbar_hint">True</property>
+    <property name="buttons">ok</property>
+    <property name="text" translatable="yes">Text</property>
+    <property name="secondary_text" translatable="yes">Secondary text #5</property>
+  </object>
+</interface>
diff --git a/tests/reftests/messagedialog-secondarytext.ui b/tests/reftests/messagedialog-secondarytext.ui
new file mode 100644 (file)
index 0000000..ed1767b
--- /dev/null
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkMessageDialog" id="messagedialog1">
+    <property name="can_focus">False</property>
+    <property name="border_width">5</property>
+    <property name="type">popup</property>
+    <property name="type_hint">dialog</property>
+    <property name="skip_taskbar_hint">True</property>
+    <property name="buttons">ok</property>
+    <property name="text" translatable="yes">Text</property>
+    <!-- We set the property multiple times on purpose here -->
+    <property name="secondary_text" translatable="yes">Secondary text #1</property>
+    <property name="secondary_text" translatable="yes">Secondary text #2</property>
+    <property name="secondary_text" translatable="yes">Secondary text #3</property>
+    <property name="secondary_text" translatable="yes">Secondary text #4</property>
+    <property name="secondary_text" translatable="yes">Secondary text #5</property>
+  </object>
+</interface>
diff --git a/tests/reftests/style-properties-nth-child.css b/tests/reftests/style-properties-nth-child.css
new file mode 100644 (file)
index 0000000..d3d406c
--- /dev/null
@@ -0,0 +1,11 @@
+* {
+  -GtkToolbar-button-relief: none;
+}
+
+.grid-toolbar {
+    -GtkToolbar-button-relief: normal;
+}
+
+.box-toolbar {
+    -GtkToolbar-button-relief: normal;
+}
diff --git a/tests/reftests/style-properties-nth-child.ref.ui b/tests/reftests/style-properties-nth-child.ref.ui
new file mode 100644 (file)
index 0000000..2cf5d5f
--- /dev/null
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <property name="width_request">300</property>
+    <property name="height_request">300</property>
+    <child>
+      <object class="GtkGrid" id="grid1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <child>
+          <object class="GtkScrolledWindow" id="scrolledwindow1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="hexpand">True</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">0</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolbar" id="toolbar1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <style>
+              <class name="grid-toolbar"/>
+            </style>
+            <child>
+              <object class="GtkToolButton" id="add_button">
+                <property name="visible">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="icon_name">list-add-symbolic</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="add_button2">
+                <property name="visible">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="icon_name">list-add-symbolic</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="left_attach">0</property>
+            <property name="top_attach">1</property>
+            <property name="width">1</property>
+            <property name="height">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
diff --git a/tests/reftests/style-properties-nth-child.ui b/tests/reftests/style-properties-nth-child.ui
new file mode 100644 (file)
index 0000000..fe6aaed
--- /dev/null
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<interface>
+  <!-- interface-requires gtk+ 3.0 -->
+  <object class="GtkWindow" id="window1">
+    <property name="can_focus">False</property>
+    <property name="type">popup</property>
+    <property name="width_request">300</property>
+    <property name="height_request">300</property>
+    <child>
+      <object class="GtkBox" id="box1">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="orientation">vertical</property>
+        <child>
+          <object class="GtkScrolledWindow" id="scrolledwindow1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="hexpand">True</property>
+            <property name="shadow_type">in</property>
+            <child>
+              <placeholder/>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkToolbar" id="toolbar1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="hexpand">True</property>
+            <style>
+              <class name="box-toolbar"/>
+            </style>
+            <child>
+              <object class="GtkToolButton" id="add_button">
+                <property name="visible">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="icon_name">list-add-symbolic</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkToolButton" id="add_button2">
+                <property name="visible">True</property>
+                <property name="use_action_appearance">False</property>
+                <property name="icon_name">list-add-symbolic</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="homogeneous">True</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+  </object>
+</interface>
index 3235bda9914011e11fd97cacb2640c8522f5f799..3425122fabb1b11b49d68b788b3c6e4a566a0e84 100644 (file)
 
 #include <gtk/gtk.h>
 
+static void
+dark_toggled (GtkCheckMenuItem *item, gpointer data)
+{
+  gboolean dark;
+
+  dark = gtk_check_menu_item_get_active (item);
+  g_object_set (gtk_settings_get_default (),
+                "gtk-application-prefer-dark-theme", dark,
+                NULL);
+}
+
 int
 main (int argc, char *argv[])
 {
   GtkBuilder *builder;
   GtkWidget  *window;
+  GtkWidget  *widget;
+  gboolean    dark = FALSE;
 
   gtk_init (&argc, &argv);
 
-  if (argc > 1 && 
-      (g_strcmp0 (argv[1], "--dark") == 0))
-    g_object_set (gtk_settings_get_default (),
-                  "gtk-application-prefer-dark-theme", TRUE,
-                  NULL);
+  if (argc > 1 && (g_strcmp0 (argv[1], "--dark") == 0))
+    dark = TRUE;
 
   builder = gtk_builder_new ();
   gtk_builder_add_from_file (builder, "./widget-factory.ui", NULL);
@@ -44,6 +54,10 @@ main (int argc, char *argv[])
   window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
   gtk_builder_connect_signals (builder, NULL);
 
+  widget = (GtkWidget*) gtk_builder_get_object (builder, "darkmenuitem");
+  g_signal_connect (widget, "toggled", G_CALLBACK (dark_toggled), NULL);
+  gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (widget), dark);
+
   g_object_unref (G_OBJECT (builder));
 
   gtk_widget_show (window);
index 1484912f07ffd71e9d95cce8e20dc3e9a90be20f..f78007d9daca455f19717e7844c884eec2329716 100644 (file)
@@ -189,6 +189,21 @@ Suspendisse feugiat quam quis dolor accumsan cursus. </property>
                 <property name="use_action_appearance">False</property>
                 <property name="label" translatable="yes">_View</property>
                 <property name="use_underline">True</property>
+                <child type="submenu">
+                  <object class="GtkMenu" id="view-menu">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <child>
+                      <object class="GtkCheckMenuItem" id="darkmenuitem">
+                        <property name="label">_Dark theme</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="use_action_appearance">False</property>
+                        <property name="use_underline">True</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
               </object>
             </child>
             <child>
@@ -304,7 +319,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. </property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="invisible_char">•</property>
-                    <property name="text" translatable="yes">search...</property>
+                    <property name="placeholder-text" translatable="yes">search...</property>
                   </object>
                 </child>
               </object>
@@ -1018,7 +1033,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. </property>
                             <property name="has_tooltip">True</property>
                             <property name="use_action_appearance">False</property>
                             <property name="relief">none</property>
-                            <property name="uri">http://www.ubuntu.com</property>
+                            <property name="uri">http://www.gtk.org</property>
                           </object>
                         </child>
                       </object>