diff --git a/Makefile.am b/Makefile.am deleted file mode 100644 index 81ae6a7..0000000 --- a/Makefile.am +++ /dev/null @@ -1,32 +0,0 @@ -ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS} -AM_CPPFLAGS = src - -SUBDIRS = \ - src \ - po \ - data \ - help - -EXTRA_DIST = \ - autogen.sh \ - config.rpath \ - COPYING \ - HACKING \ - ChangeLog \ - NEWS \ - README \ - AUTHORS - -dist-hook: - @if test -d "$(srcdir)/.git"; \ - then \ - echo Creating ChangeLog && \ - ( cd "$(top_srcdir)" && \ - echo '# Generated by Makefile. Do not edit.'; echo; \ - $(top_srcdir)/missing --run git log --stat ) > ChangeLog.tmp \ - && mv -f ChangeLog.tmp $(top_distdir)/ChangeLog \ - || ( rm -f ChangeLog.tmp ; \ - echo Failed to generate ChangeLog >&2 ); \ - else \ - echo A git clone is required to generate a ChangeLog >&2; \ - fi diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index d9d12ec..0000000 --- a/autogen.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/sh -# Run this to generate all the initial makefiles, etc. -test -n "$srcdir" || srcdir=$(dirname "$0") -test -n "$srcdir" || srcdir=. - -olddir=$(pwd) - -cd $srcdir - -(test -f configure.ac) || { - echo "*** ERROR: Directory '$srcdir' does not look like the top-level project directory ***" - exit 1 -} - -# shellcheck disable=SC2016 -PKG_NAME=$(autoconf --trace 'AC_INIT:$1' configure.ac) - -if [ "$#" = 0 -a "x$NOCONFIGURE" = "x" ]; then - echo "*** WARNING: I am going to run 'configure' with no arguments." >&2 - echo "*** If you wish to pass any to it, please specify them on the" >&2 - echo "*** '$0' command line." >&2 - echo "" >&2 -fi - -autoreconf --verbose --force --install || exit 1 - -cd "$olddir" -if [ "$NOCONFIGURE" = "" ]; then - $srcdir/configure "$@" || exit 1 - - if [ "$1" = "--help" ]; then - exit 0 - else - echo "Now type 'make' to compile $PKG_NAME" || exit 1 - fi -else - echo "Skipping configure process." -fi diff --git a/configure.ac b/configure.ac deleted file mode 100644 index 5dccdb0..0000000 --- a/configure.ac +++ /dev/null @@ -1,140 +0,0 @@ -AC_INIT([Zenity],[3.32.0],[https://bugzilla.gnome.org/enter_bug.cgi?product=zenity],[zenity]) - -AC_PREREQ([2.69]) - -AC_CONFIG_HEADERS([config.h]) -AC_CONFIG_SRCDIR([src]) -AC_CONFIG_MACRO_DIR([m4]) - -AM_INIT_AUTOMAKE([1.10 foreign no-dist-gzip dist-xz]) -AM_MAINTAINER_MODE([enable]) - -m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])]) - -# ******************************* -# Debug -# ******************************* - -AX_CHECK_ENABLE_DEBUG([yes],[GNOME_ENABLE_DEBUG]) - -# Check for programs -AC_PROG_CC - -GTK_REQUIRED=3.0.0 - -PKG_CHECK_MODULES([ZENITY],[gtk+-3.0 >= $GTK_REQUIRED glib-2.0]) -AC_SUBST([ZENITY_CFLAGS]) -AC_SUBST([ZENITY_LIBS]) - -dnl ************************* -dnl Check for the GTK+ backend, if it's X11, we -lX11 -dnl ************************* - -zenity_save_cflags="$CFLAGS" -# pull in the CFLAGS to locate gdkconfig.h -CFLAGS=`$PKG_CONFIG --cflags gtk+-3.0` -AC_COMPILE_IFELSE([AC_LANG_SOURCE([ -#include - -int main(void) { -#ifndef GDK_WINDOWING_X11 -#error GDK_WINDOWING_X11 not defined -#endif - return 0; -} -])], - GDK_BACKEND_X11=yes, - GDK_BACKEND_X11=no) - -CFLAGS="$zenity_save_cflags" - -if test "x$GDK_BACKEND_X11" = "xyes"; then - PKG_CHECK_MODULES(X, x11) - ZENITY_CFLAGS="$ZENITY_CFLAGS $X_CFLAGS" - ZENITY_LIBS="$ZENITY_LIBS $X_LIBS" -fi - -# ******************************* -# perl check -# ******************************* - -AC_PATH_PROG([PERL],[perl],) - -# ******************************* -# libnotify check -# ******************************* - -LIBNOTIFY_REQUIRED=0.6.1 - -AC_ARG_ENABLE([libnotify], - [AS_HELP_STRING([--enable-libnotify], - [Enable libnotify support])], - [], - [enable_libnotify=yes]) - -if test x$enable_libnotify = xyes; then - PKG_CHECK_MODULES([LIBNOTIFY], [libnotify >= $LIBNOTIFY_REQUIRED], - [HAVE_LIBNOTIFY="yes"],[HAVE_LIBNOTIFY="no"]) - AC_SUBST([LIBNOTIFY_CFLAGS]) - AC_SUBST([LIBNOTIFY_LIBS]) - if test "x$HAVE_LIBNOTIFY" = "xyes"; then - AC_DEFINE([HAVE_LIBNOTIFY], [1], [libnotify is available on this machine]) - fi -fi - -# ******************************* -# webkit check -# ******************************* - -WEBKITGTK_REQUIRED=2.8.1 - -AC_ARG_ENABLE([webkitgtk], - [AS_HELP_STRING([--enable-webkitgtk], - [Enable webkit support])], - [], - [enable_webkitgtk=yes]) - -if test x$enable_webkitgtk = xyes; then - PKG_CHECK_MODULES([WEBKIT], [webkit2gtk-4.0 >= $WEBKITGTK_REQUIRED], - [HAVE_WEBKITGTK="yes"],[HAVE_WEBKITGTK="no"]) - AC_SUBST([WEBKIT_CFLAGS]) - AC_SUBST([WEBKIT_LIBS]) - if test "x$HAVE_WEBKITGTK" = "xyes"; then - AC_DEFINE([HAVE_WEBKITGTK], [1], [webkitgtk is available on this machine]) - fi -fi - - -# ******************************* -# Internationalization -# ******************************* -AM_GNU_GETTEXT_VERSION([0.19.4]) -AM_GNU_GETTEXT([external]) - -GETTEXT_PACKAGE=zenity -AC_SUBST([GETTEXT_PACKAGE]) -AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE],["$GETTEXT_PACKAGE"],[Gettext domain]) - -# ******************************* -# User manual -# ******************************* -YELP_HELP_INIT - -# ******************************* - -AC_SUBST([AM_CPPFLAGS]) -AC_SUBST([AM_CFLAGS]) -AC_SUBST([AM_LDFLAGS]) - -# ******************************* - -AC_CONFIG_FILES([ -Makefile -po/Makefile.in -src/Makefile -src/gdialog -data/Makefile -help/Makefile -]) - -AC_OUTPUT diff --git a/data/Makefile.am b/data/Makefile.am deleted file mode 100644 index cc18511..0000000 --- a/data/Makefile.am +++ /dev/null @@ -1,23 +0,0 @@ -clothesdir = $(datadir)/zenity/clothes -clothes_DATA = \ - monk.png \ - gnome-tshirt.png \ - sunglasses.png \ - surfboard.png \ - hawaii-shirt.png - -imagesdir = $(datadir)/zenity -images_DATA = \ - zenity.png \ - zenity-calendar.png \ - zenity-list.png \ - zenity-file.png \ - zenity-progress.png \ - zenity-text.png \ - zenity-scale.png \ - zenity-entry.png \ - zenity-notification.png - -man_MANS = zenity.1 - -EXTRA_DIST = $(images_DATA) $(clothes_DATA) $(man_MANS) diff --git a/data/meson.build b/data/meson.build new file mode 100644 index 0000000..373efcf --- /dev/null +++ b/data/meson.build @@ -0,0 +1,22 @@ +install_man('zenity.1') + +install_data( + ['zenity.png', + 'zenity-calendar.png', + 'zenity-list.png', + 'zenity-file.png', + 'zenity-progress.png', + 'zenity-text.png', + 'zenity-scale.png', + 'zenity-entry.png', + 'zenity-notification.png'] + ) + +install_data( + ['monk.png', + 'gnome-tshirt.png', + 'sunglasses.png', + 'surfboard.png', + 'hawaii-shirt.png'], + install_dir: join_paths(zenity_datadir, 'clothes') + ) diff --git a/help/LINGUAS b/help/LINGUAS new file mode 100644 index 0000000..9940fa3 --- /dev/null +++ b/help/LINGUAS @@ -0,0 +1 @@ +bg ca cs da de el en_GB es eu fi fr gl hu ja oc pl pt_BR ru sl sv uk zh_CN diff --git a/help/Makefile.am b/help/Makefile.am deleted file mode 100644 index d790472..0000000 --- a/help/Makefile.am +++ /dev/null @@ -1,45 +0,0 @@ -@YELP_HELP_RULES@ - -HELP_ID = zenity - -HELP_MEDIA = \ - figures/zenity-calendar-screenshot.png \ - figures/zenity-colorselection-screenshot.png \ - figures/zenity-entry-screenshot.png \ - figures/zenity-error-screenshot.png \ - figures/zenity-fileselection-screenshot.png \ - figures/zenity-forms-screenshot.png \ - figures/zenity-information-screenshot.png \ - figures/zenity-list-screenshot.png \ - figures/zenity-notification-listen-screenshot.png \ - figures/zenity-notification-screenshot.png \ - figures/zenity-password-screenshot.png \ - figures/zenity-progress-screenshot.png \ - figures/zenity-question-screenshot.png \ - figures/zenity-scale-screenshot.png \ - figures/zenity-text-screenshot.png \ - figures/zenity-warning-screenshot.png - -HELP_FILES = \ - legal.xml \ - calendar.page \ - color-selection.page \ - entry.page \ - error.page \ - file-selection.page \ - forms.page \ - index.page \ - info.page \ - intro.page \ - list.page \ - message.page \ - notification.page \ - password.page \ - progress.page \ - question.page \ - scale.page \ - text.page \ - usage.page \ - warning.page - -HELP_LINGUAS = bg ca cs da de el en_GB es eu fi fr gl hu ja oc pl pt_BR ru sl sv uk zh_CN diff --git a/help/meson.build b/help/meson.build new file mode 100644 index 0000000..cd09412 --- /dev/null +++ b/help/meson.build @@ -0,0 +1,48 @@ +help_pages = [ + 'legal.xml', + 'calendar.page', + 'color-selection.page', + 'entry.page', + 'error.page', + 'file-selection.page', + 'forms.page', + 'index.page', + 'info.page', + 'intro.page', + 'list.page', + 'message.page', + 'notification.page', + 'password.page', + 'progress.page', + 'question.page', + 'scale.page', + 'text.page', + 'usage.page', + 'warning.page' +] + +help_media = [ + 'figures/zenity-calendar-screenshot.png', + 'figures/zenity-colorselection-screenshot.png', + 'figures/zenity-entry-screenshot.png', + 'figures/zenity-error-screenshot.png', + 'figures/zenity-fileselection-screenshot.png', + 'figures/zenity-forms-screenshot.png', + 'figures/zenity-information-screenshot.png', + 'figures/zenity-list-screenshot.png', + 'figures/zenity-notification-listen-screenshot.png', + 'figures/zenity-notification-screenshot.png', + 'figures/zenity-password-screenshot.png', + 'figures/zenity-progress-screenshot.png', + 'figures/zenity-question-screenshot.png', + 'figures/zenity-scale-screenshot.png', + 'figures/zenity-text-screenshot.png', + 'figures/zenity-warning-screenshot.png' +] + +gnome.yelp( + meson.project_name(), + sources: help_pages, + media: help_media, + symlink_media: false +) diff --git a/meson.build b/meson.build new file mode 100644 index 0000000..f65475a --- /dev/null +++ b/meson.build @@ -0,0 +1,109 @@ +project('zenity', 'c', + version: '3.34.0', + meson_version: '>=0.53.0', + license: 'LGPL-2.1-or-later' +) + +version_arr = meson.project_version().split('.') +zenity_version_major = version_arr[0].to_int() +zenity_version_minor = version_arr[1] +zenity_version_micro = version_arr[2].to_int() + +zenity_prefix = get_option('prefix') +zenity_bindir = join_paths(zenity_prefix, get_option('bindir')) +zenity_libdir = join_paths(zenity_prefix, get_option('libdir')) +zenity_datadir = join_paths(zenity_prefix, get_option('datadir'), 'zenity') +zenity_localedir = join_paths(zenity_prefix, get_option('localedir')) + +zenity_root_dir = include_directories('.') +zenity_po_dir = join_paths(meson.source_root(), 'po') + +gnome = import('gnome') +i18n = import('i18n') + +cc = meson.get_compiler('c') + +zenity_conf = configuration_data() +zenity_conf.set_quoted('ZENITY_NAME', meson.project_name()) +zenity_conf.set_quoted('ZENITY_VERSION', meson.project_version()) +zenity_conf.set_quoted('ZENITY_STRING', + '@0@ @1@'.format(meson.project_name(), meson.project_version())) +zenity_conf.set_quoted('ZENITY_DATADIR', zenity_datadir) +zenity_conf.set_quoted('ZENITY_LIBDIR', zenity_libdir) +zenity_conf.set_quoted('ZENITY_LOCALE_DIR', zenity_localedir) + +zenity_conf.set('VERSION', 'ZENITY_VERSION') +zenity_conf.set('GETTEXT_PACKAGE', 'ZENITY_NAME') +zenity_conf.set('LOCALEDIR', 'ZENITY_LOCALE_DIR') + +zenity_conf.set('DEBUG', get_option('debug')) + +check_headers = [ + 'sys/types.h', + 'unistd.h', + 'langinfo.h', + 'locale.h' +] + +foreach h : check_headers + cc.has_header(h, required: true) +endforeach + +gtk_dep = dependency('gtk+-3.0', version: '>= 3.0.0') + +# Optional dependencies + +opt_missing_str = ''' +Requested optional @0@ support but library not found. +Please ensure you have any required development libraries installed.''' + +libnotify = dependency('libnotify', version: '>= 0.6.1', required: false) +if get_option('libnotify') + if libnotify.found() + zenity_conf.set('HAVE_LIBNOTIFY', true) + else + error(opt_missing_str.format('libnotify')) + endif +endif + +webkitgtk = dependency('webkit2gtk-4.0', version: '>= 2.8.1', required: false) +if get_option('webkitgtk') + if webkitgtk.found() + zenity_conf.set('HAVE_WEBKITGTK', true) + else + error(opt_missing_str.format('webkitgtk')) + endif +endif + +# link Xlib if we have it. This will likely be removed after gtk4 migration. +x11 = dependency('x11', required: false) + +perl = find_program('perl', required: false) +if perl.found() + zenity_conf.set('PERL', perl.path()) +endif + +configure_file( + output: 'config.h', + configuration: zenity_conf +) + +# Print a summary of options at the end. + +summary({'prefix': zenity_prefix, + 'libdir': zenity_libdir, + 'datadir': zenity_datadir, + 'localedir': zenity_localedir, + }, section: 'Directories') + +summary({'libnotify': get_option('libnotify'), + 'webkitgtk': get_option('webkitgtk'), + 'gdialog script': perl.found(), + }, section: 'Configuration') + +subdir('src') +subdir('data') +subdir('po') +subdir('help') + +meson.add_install_script('meson_post_install.py') diff --git a/meson_options.txt b/meson_options.txt new file mode 100644 index 0000000..b0554fc --- /dev/null +++ b/meson_options.txt @@ -0,0 +1,5 @@ +option('libnotify', type : 'boolean', value : true, + description : 'enable libnotify for desktop notification support') + +option('webkitgtk', type : 'boolean', value : true, + description : 'enable webkitgtk support') diff --git a/meson_post_install.py b/meson_post_install.py new file mode 100644 index 0000000..2654e49 --- /dev/null +++ b/meson_post_install.py @@ -0,0 +1,15 @@ +#!/usr/bin/env python3 + +import os +import subprocess + +prefix = os.environ.get('MESON_INSTALL_PREFIX', '/usr/local') +datadir = os.path.join(prefix, 'share') + +# Packaging tools define DESTDIR and this isn't needed for them +if 'DESTDIR' not in os.environ: + print('Updating icon cache...') + icon_cache_dir = os.path.join(datadir, 'icons', 'hicolor') + if not os.path.exists(icon_cache_dir): + os.makedirs(icon_cache_dir) + subprocess.call(['gtk-update-icon-cache', '-qtf', icon_cache_dir]) diff --git a/po/Makevars b/po/Makevars deleted file mode 100644 index ac406bb..0000000 --- a/po/Makevars +++ /dev/null @@ -1,78 +0,0 @@ -# Makefile variables for PO directory in any package using GNU gettext. - -# Usually the message domain is the same as the package name. -DOMAIN = $(PACKAGE) - -# These two variables depend on the location of this directory. -subdir = po -top_builddir = .. - -# These options get passed to xgettext. -XGETTEXT_OPTIONS = --from-code=UTF-8 --keyword=_ --keyword=N_ --keyword=C_:1c,2 --keyword=NC_:1c,2 --keyword=g_dngettext:2,3 --add-comments - -# This is the copyright holder that gets inserted into the header of the -# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding -# package. (Note that the msgstr strings, extracted from the package's -# sources, belong to the copyright holder of the package.) Translators are -# expected to transfer the copyright for their translations to this person -# or entity, or to disclaim their copyright. The empty string stands for -# the public domain; in this case the translators are expected to disclaim -# their copyright. -COPYRIGHT_HOLDER = Zenity authors - -# This tells whether or not to prepend "GNU " prefix to the package -# name that gets inserted into the header of the $(DOMAIN).pot file. -# Possible values are "yes", "no", or empty. If it is empty, try to -# detect it automatically by scanning the files in $(top_srcdir) for -# "GNU packagename" string. -PACKAGE_GNU = no - -# This is the email address or URL to which the translators shall report -# bugs in the untranslated strings: -# - Strings which are not entire sentences, see the maintainer guidelines -# in the GNU gettext documentation, section 'Preparing Strings'. -# - Strings which use unclear terms or require additional context to be -# understood. -# - Strings which make invalid assumptions about notation of date, time or -# money. -# - Pluralisation problems. -# - Incorrect English spelling. -# - Incorrect formatting. -# It can be your email address, or a mailing list address where translators -# can write to without being subscribed, or the URL of a web page through -# which the translators can contact you. -MSGID_BUGS_ADDRESS = https://gitlab.gnome.org/GNOME/zenity/issues - -# This is the list of locale categories, beyond LC_MESSAGES, for which the -# message catalogs shall be used. It is usually empty. -EXTRA_LOCALE_CATEGORIES = - -# This tells whether the $(DOMAIN).pot file contains messages with an 'msgctxt' -# context. Possible values are "yes" and "no". Set this to yes if the -# package uses functions taking also a message context, like pgettext(), or -# if in $(XGETTEXT_OPTIONS) you define keywords with a context argument. -USE_MSGCTXT = yes - -# These options get passed to msgmerge. -# Useful options are in particular: -# --previous to keep previous msgids of translated messages, -# --quiet to reduce the verbosity. -MSGMERGE_OPTIONS = - -# These options get passed to msginit. -# If you want to disable line wrapping when writing PO files, add -# --no-wrap to MSGMERGE_OPTIONS, XGETTEXT_OPTIONS, and -# MSGINIT_OPTIONS. -MSGINIT_OPTIONS = - -# This tells whether or not to regenerate a PO file when $(DOMAIN).pot -# has changed. Possible values are "yes" and "no". Set this to no if -# the POT file is checked in the repository and the version control -# program ignores timestamps. -PO_DEPENDS_ON_POT = no - -# This tells whether or not to forcibly update $(DOMAIN).pot and -# regenerate PO files on "make dist". Possible values are "yes" and -# "no". Set this to no if the POT file and PO files are maintained -# externally. -DIST_DEPENDS_ON_UPDATE_PO = no diff --git a/po/POTFILES.skip b/po/POTFILES.skip deleted file mode 100644 index 0fb3682..0000000 --- a/po/POTFILES.skip +++ /dev/null @@ -1,2 +0,0 @@ -# List of source files that should *not* be translated. -# Please keep this file sorted alphabetically. diff --git a/po/meson.build b/po/meson.build new file mode 100644 index 0000000..66362aa --- /dev/null +++ b/po/meson.build @@ -0,0 +1,4 @@ +i18n.gettext( + meson.project_name(), + preset: 'glib' +) diff --git a/src/Makefile.am b/src/Makefile.am deleted file mode 100644 index bcdd205..0000000 --- a/src/Makefile.am +++ /dev/null @@ -1,57 +0,0 @@ -bin_PROGRAMS = zenity - -bin_SCRIPTS = gdialog - -zenity_SOURCES = \ - about.c \ - calendar.c \ - entry.c \ - fileselection.c \ - main.c \ - msg.c \ - notification.c \ - option.c \ - option.h \ - progress.c \ - scale.c \ - text.c \ - tree.c \ - color.c \ - password.c \ - util.c \ - util.h \ - forms.c \ - zenity.h - -zenity_CPPFLAGS = \ - -DGNOMELOCALEDIR=\""$(datadir)/locale"\" \ - -DZENITY_DATADIR=\""$(pkgdatadir)"\" \ - $(AM_CPPFLAGS) - -zenity_CFLAGS = \ - $(ZENITY_CFLAGS) \ - $(LIBNOTIFY_CFLAGS) \ - $(WEBKIT_CFLAGS) \ - $(WARN_CFLAGS) \ - $(AM_CFLAGS) - -zenity_LDFLAGS = \ - $(AM_LDFLAGS) - -zenity_LDADD = \ - $(ZENITY_LIBS) \ - $(LIBNOTIFY_LIBS) \ - $(WEBKIT_LIBS) - -uidir = $(datadir)/zenity - -ui_DATA = \ - zenity.ui - -DISTCLEANFILES= \ - gdialog - -EXTRA_DIST = \ - $(ui_DATA) \ - gdialog \ - gdialog.in diff --git a/src/main.c b/src/main.c index 7f0c2db..18b2a72 100644 --- a/src/main.c +++ b/src/main.c @@ -43,7 +43,7 @@ main (gint argc, gchar **argv) { setlocale (LC_ALL, ""); #endif - bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR); + bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); diff --git a/src/meson.build b/src/meson.build new file mode 100644 index 0000000..748fe31 --- /dev/null +++ b/src/meson.build @@ -0,0 +1,51 @@ +# for i in `ls *.c`; do echo " '${i}',"; done +zenity_sources = [ + 'about.c', + 'calendar.c', + 'color.c', + 'entry.c', + 'fileselection.c', + 'forms.c', + 'main.c', + 'msg.c', + 'notification.c', + 'option.c', + 'password.c', + 'progress.c', + 'scale.c', + 'text.c', + 'tree.c', + 'util.c' +] + +zenity_deps = [ + gtk_dep, + libnotify, + webkitgtk, + x11 +] + +zenity_c_args = [ + '-DG_LOG_DOMAIN="Zenity"' +] + +zenity = executable( + meson.project_name(), + zenity_sources, + include_directories: zenity_root_dir, + dependencies: zenity_deps, + c_args: zenity_c_args, + install: true +) + +if perl.found() + configure_file( + input: 'gdialog.in', + output: 'gdialog', + configuration: zenity_conf, + install_dir: zenity_bindir, + install: true + ) +endif + +install_data('zenity.ui') diff --git a/src/zenity.h b/src/zenity.h index b86a264..404eec7 100644 --- a/src/zenity.h +++ b/src/zenity.h @@ -5,7 +5,6 @@ G_BEGIN_DECLS -#ifdef ENABLE_NLS #include #define _(String) dgettext (GETTEXT_PACKAGE, String) #ifdef gettext_noop @@ -13,15 +12,6 @@ G_BEGIN_DECLS #else #define N_(String) (String) #endif -#else /* NLS is disabled */ -#define _(String) (String) -#define N_(String) (String) -#define textdomain(String) (String) -#define gettext(String) (String) -#define dgettext(Domain, String) (String) -#define dcgettext(Domain, String, Type) (String) -#define bindtextdomain(Domain, Directory) (Domain) -#endif typedef struct { gchar *dialog_title;