/* Copyright (C) 2001 The Free Software Foundation
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License along
 * with this program; if not, see <https://www.gnu.org/licenses/>.
 */

#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
// We always need to generate the .defs for all types because the code
// using deprecated API is generated unconditionally and only disabled
// at compile time.
#undef GDK_PIXBUF_DISABLE_DEPRECATED
#undef GDK_DISABLE_DEPRECATED
#undef GTK_DISABLE_DEPRECATED
#define GDK_DISABLE_DEPRECATION_WARNINGS 1

#include <glibmm_generate_extra_defs/generate_extra_defs.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk/gdk.h>
#include <gtk/gtk.h>

#ifndef G_OS_WIN32
# include <gtk/gtkunixprint.h>
#endif

std::string get_child_properties(GType gtype);

int main(int /* argc */, char** /* argv */)
{
  gtk_init();

  std::cout << get_defs( GTK_TYPE_ABOUT_DIALOG )
            << get_defs( GTK_TYPE_ACCESSIBLE )
            << get_defs( GTK_TYPE_ACTIONABLE )
            << get_defs( GTK_TYPE_ACTION_BAR )
            << get_defs( GTK_TYPE_ADJUSTMENT )
            << get_defs( GTK_TYPE_ALERT_DIALOG )
            << get_defs( GTK_TYPE_ALTERNATIVE_TRIGGER )
            << get_defs( GTK_TYPE_APP_CHOOSER )
            << get_defs( GTK_TYPE_APP_CHOOSER_BUTTON )
            << get_defs( GTK_TYPE_APP_CHOOSER_DIALOG )
            << get_defs( GTK_TYPE_APP_CHOOSER_WIDGET )
            << get_defs( GTK_TYPE_APPLICATION )
            << get_defs( GTK_TYPE_APPLICATION_WINDOW )
            << get_defs( GTK_TYPE_ASPECT_FRAME )
            << get_defs( GTK_TYPE_ASSISTANT )
            << get_defs( GTK_TYPE_ASSISTANT_PAGE )
            << get_defs( GTK_TYPE_AT_CONTEXT )
            << get_defs( GTK_TYPE_BOOL_FILTER )
            << get_defs( GTK_TYPE_BOX )
            << get_defs( GTK_TYPE_BOX_LAYOUT )
            << get_defs( GTK_TYPE_BUILDER )
            << get_defs( GTK_TYPE_BUTTON )
            << get_defs( GTK_TYPE_CALENDAR )
            << get_defs( GTK_TYPE_CHECK_BUTTON )
            << get_defs( GTK_TYPE_CELL_AREA )
            << get_defs( GTK_TYPE_CELL_AREA_BOX )
            << get_defs( GTK_TYPE_CELL_AREA_CONTEXT )
            << get_defs( GTK_TYPE_CELL_EDITABLE )
            << get_defs( GTK_TYPE_CELL_LAYOUT )
            << get_defs( GTK_TYPE_CELL_RENDERER )
            << get_defs( GTK_TYPE_CELL_RENDERER_ACCEL )
            << get_defs( GTK_TYPE_CELL_RENDERER_COMBO )
            << get_defs( GTK_TYPE_CELL_RENDERER_PROGRESS )
            << get_defs( GTK_TYPE_CELL_RENDERER_TEXT )
            << get_defs( GTK_TYPE_CELL_RENDERER_TOGGLE )
            << get_defs( GTK_TYPE_CELL_RENDERER_PIXBUF )
            << get_defs( GTK_TYPE_CELL_RENDERER_PROGRESS )
            << get_defs( GTK_TYPE_CELL_RENDERER_SPIN )
            << get_defs( GTK_TYPE_CELL_RENDERER_SPINNER )
            << get_defs( GTK_TYPE_CENTER_BOX )
            << get_defs( GTK_TYPE_CENTER_LAYOUT )
            << get_defs( GTK_TYPE_COLOR_BUTTON )
            << get_defs( GTK_TYPE_COLOR_CHOOSER )
            << get_defs( GTK_TYPE_COLOR_CHOOSER_DIALOG )
            << get_defs( GTK_TYPE_COLOR_DIALOG )
            << get_defs( GTK_TYPE_COLOR_DIALOG_BUTTON )
            << get_defs( GTK_TYPE_COLUMN_VIEW )
            << get_defs( GTK_TYPE_COLUMN_VIEW_CELL )
            << get_defs( GTK_TYPE_COLUMN_VIEW_COLUMN )
            << get_defs( GTK_TYPE_COLUMN_VIEW_ROW )
            << get_defs( GTK_TYPE_COLUMN_VIEW_SORTER )
            << get_defs( GTK_TYPE_COMBO_BOX )
            << get_defs( GTK_TYPE_CONSTRAINT )
            << get_defs( GTK_TYPE_CONSTRAINT_GUIDE )
            << get_defs( GTK_TYPE_CELL_VIEW )
            << get_defs( GTK_TYPE_CSS_PROVIDER )
            << get_defs( GTK_TYPE_DIALOG )
            << get_defs( GTK_TYPE_DIRECTORY_LIST )
            << get_defs( GTK_TYPE_DRAG_ICON )
            << get_defs( GTK_TYPE_DRAG_SOURCE )
            << get_defs( GTK_TYPE_DRAWING_AREA )
            << get_defs( GTK_TYPE_DROP_CONTROLLER_MOTION )
            << get_defs( GTK_TYPE_DROP_DOWN )
            << get_defs( GTK_TYPE_DROP_TARGET )
            << get_defs( GTK_TYPE_DROP_TARGET_ASYNC )
            << get_defs( GTK_TYPE_EDITABLE )
            << get_defs( GTK_TYPE_EDITABLE_LABEL )
            << get_defs( GTK_TYPE_EMOJI_CHOOSER )
            << get_defs( GTK_TYPE_ENTRY )
            << get_defs( GTK_TYPE_ENTRY_COMPLETION )
            << get_defs( GTK_TYPE_ENTRY_BUFFER )
            << get_defs( GTK_TYPE_EVENT_CONTROLLER )
            << get_defs( GTK_TYPE_EVENT_CONTROLLER_FOCUS )
            << get_defs( GTK_TYPE_EVENT_CONTROLLER_KEY )
            << get_defs( GTK_TYPE_EVENT_CONTROLLER_LEGACY )
            << get_defs( GTK_TYPE_EVENT_CONTROLLER_MOTION )
            << get_defs( GTK_TYPE_EVENT_CONTROLLER_SCROLL )
            << get_defs( GTK_TYPE_EXPANDER )
            << get_defs( GTK_TYPE_FILE_FILTER )
            << get_defs( GTK_TYPE_FILE_CHOOSER )
            << get_defs( GTK_TYPE_FILE_CHOOSER_DIALOG )
            << get_defs( GTK_TYPE_FILE_CHOOSER_NATIVE )
            << get_defs( GTK_TYPE_FILE_CHOOSER_WIDGET )
            << get_defs( GTK_TYPE_FILE_DIALOG )
            << get_defs( GTK_TYPE_FILE_LAUNCHER )
            << get_defs( GTK_TYPE_FILTER )
            << get_defs( GTK_TYPE_FILTER_LIST_MODEL )
            << get_defs( GTK_TYPE_FIXED )
            << get_defs( GTK_TYPE_FIXED_LAYOUT_CHILD )
            << get_defs( GTK_TYPE_FLATTEN_LIST_MODEL )
            << get_defs( GTK_TYPE_FLOW_BOX )
            << get_defs( GTK_TYPE_FLOW_BOX_CHILD )
            << get_defs( GTK_TYPE_FONT_BUTTON )
            << get_defs( GTK_TYPE_FONT_CHOOSER )
            << get_defs( GTK_TYPE_FONT_CHOOSER_DIALOG )
            << get_defs( GTK_TYPE_FONT_CHOOSER_WIDGET )
            << get_defs( GTK_TYPE_FONT_DIALOG )
            << get_defs( GTK_TYPE_FONT_DIALOG_BUTTON )
            << get_defs( GTK_TYPE_FRAME )
            << get_defs( GTK_TYPE_GESTURE )
            << get_defs( GTK_TYPE_GESTURE_CLICK )
            << get_defs( GTK_TYPE_GESTURE_DRAG )
            << get_defs( GTK_TYPE_GESTURE_LONG_PRESS )
            << get_defs( GTK_TYPE_GESTURE_PAN )
            << get_defs( GTK_TYPE_GESTURE_ROTATE )
            << get_defs( GTK_TYPE_GESTURE_SINGLE )
            << get_defs( GTK_TYPE_GESTURE_STYLUS )
            << get_defs( GTK_TYPE_GESTURE_SWIPE )
            << get_defs( GTK_TYPE_GESTURE_ZOOM )
            << get_defs( GTK_TYPE_GL_AREA )
            << get_defs( GTK_TYPE_GRAPHICS_OFFLOAD )
            << get_defs( GTK_TYPE_GRID )
            << get_defs( GTK_TYPE_GRID_LAYOUT )
            << get_defs( GTK_TYPE_GRID_LAYOUT_CHILD )
            << get_defs( GTK_TYPE_GRID_VIEW )
            << get_defs( GTK_TYPE_HEADER_BAR )
            << get_defs( GTK_TYPE_IMAGE )
            << get_defs( GTK_TYPE_INFO_BAR )
            << get_defs( GTK_TYPE_ICON_PAINTABLE )
            << get_defs( GTK_TYPE_ICON_THEME )
            << get_defs( GTK_TYPE_ICON_VIEW )
            << get_defs( GTK_TYPE_INSCRIPTION )
            << get_defs( GTK_TYPE_KEYVAL_TRIGGER )
            << get_defs( GTK_TYPE_LABEL )
            << get_defs( GTK_TYPE_LAYOUT_CHILD )
            << get_defs( GTK_TYPE_LEVEL_BAR)
            << get_defs( GTK_TYPE_LINK_BUTTON )
            << get_defs( GTK_TYPE_LIST_BOX )
            << get_defs( GTK_TYPE_LIST_BOX_ROW )
            << get_defs( GTK_TYPE_LIST_HEADER )
            << get_defs( GTK_TYPE_LIST_ITEM )
            << get_defs( GTK_TYPE_LIST_VIEW )
            << get_defs( GTK_TYPE_LOCK_BUTTON )
            << get_defs( GTK_TYPE_MEDIA_CONTROLS )
            << get_defs( GTK_TYPE_MEDIA_FILE )
            << get_defs( GTK_TYPE_MEDIA_STREAM )
            << get_defs( GTK_TYPE_MENU_BUTTON )
            << get_defs( GTK_TYPE_MESSAGE_DIALOG )
            << get_defs( GTK_TYPE_MNEMONIC_TRIGGER )
            << get_defs( GTK_TYPE_MULTI_FILTER )
            << get_defs( GTK_TYPE_MULTI_SELECTION )
            << get_defs( GTK_TYPE_MULTI_SORTER )
            << get_defs( GTK_TYPE_NAMED_ACTION )
            << get_defs( GTK_TYPE_NATIVE_DIALOG )
            << get_defs( GTK_TYPE_NO_SELECTION )
            << get_defs( GTK_TYPE_NOTEBOOK )
            << get_defs( GTK_TYPE_NOTEBOOK_PAGE )
            << get_defs( GTK_TYPE_NUMERIC_SORTER )
            << get_defs( GTK_TYPE_ORIENTABLE )
            << get_defs( GTK_TYPE_OVERLAY )
            << get_defs( GTK_TYPE_OVERLAY_LAYOUT )
            << get_defs( GTK_TYPE_PAD_CONTROLLER )
            << get_defs( GTK_TYPE_PANED )
            << get_defs( GTK_TYPE_PASSWORD_ENTRY )
            << get_defs( GTK_TYPE_PICTURE )
            << get_defs( GTK_TYPE_POPOVER )
            << get_defs( GTK_TYPE_POPOVER_MENU )
            << get_defs( GTK_TYPE_POPOVER_MENU_BAR )
            << get_defs( GTK_TYPE_PRINT_DIALOG )
#if !defined(G_OS_WIN32)
            << get_defs( GTK_TYPE_PRINTER )
            << get_defs( GTK_TYPE_PRINT_JOB )
#endif /* G_OS_WIN32 */
            << get_defs( GTK_TYPE_PRINT_OPERATION )
            << get_defs( GTK_TYPE_PRINT_OPERATION_PREVIEW )
#if !defined(G_OS_WIN32)
            << get_defs( GTK_TYPE_PAGE_SETUP_UNIX_DIALOG )
            << get_defs( GTK_TYPE_PRINT_UNIX_DIALOG )
#endif /* G_OS_WIN32 */
            << get_defs( GTK_TYPE_PRINT_SETTINGS )
            << get_defs( GTK_TYPE_PRINT_OPERATION_PREVIEW )
            << get_defs( GTK_TYPE_PROGRESS_BAR )
            << get_defs( GTK_TYPE_RANGE )
            << get_defs( GTK_TYPE_RECENT_MANAGER )
            << get_defs( GTK_TYPE_REVEALER )
            << get_defs( GTK_TYPE_ROOT )
            << get_defs( GTK_TYPE_SCALE )
            << get_defs( GTK_TYPE_SCALE_BUTTON )
            << get_defs( GTK_TYPE_SCROLLABLE )
            << get_defs( GTK_TYPE_SCROLLBAR )
            << get_defs( GTK_TYPE_SCROLLED_WINDOW )
            << get_defs( GTK_TYPE_SEARCH_BAR )
            << get_defs( GTK_TYPE_SEARCH_ENTRY )
            << get_defs( GTK_TYPE_SECTION_MODEL )
            << get_defs( GTK_TYPE_SELECTION_MODEL )
            << get_defs( GTK_TYPE_SELECTION_FILTER_MODEL )
            << get_defs( GTK_TYPE_SEPARATOR )
            << get_defs( GTK_TYPE_SETTINGS )
            << get_defs( GTK_TYPE_SHORTCUT )
            << get_defs( GTK_TYPE_SHORTCUT_CONTROLLER )
            << get_defs( GTK_TYPE_SHORTCUT_LABEL )
            << get_defs( GTK_TYPE_SHORTCUTS_GROUP )
            << get_defs( GTK_TYPE_SHORTCUTS_SECTION )
            << get_defs( GTK_TYPE_SHORTCUTS_SHORTCUT )
            << get_defs( GTK_TYPE_SHORTCUTS_WINDOW )
            << get_defs( GTK_TYPE_SIGNAL_ACTION )
            << get_defs( GTK_TYPE_SIGNAL_LIST_ITEM_FACTORY )
            << get_defs( GTK_TYPE_SINGLE_SELECTION )
            << get_defs( GTK_TYPE_SIZE_GROUP )
            << get_defs( GTK_TYPE_SLICE_LIST_MODEL )
            << get_defs( GTK_TYPE_SORTER )
            << get_defs( GTK_TYPE_SORT_LIST_MODEL )
            << get_defs( GTK_TYPE_SPINNER )
            << get_defs( GTK_TYPE_SPIN_BUTTON )
            << get_defs( GTK_TYPE_STACK )
            << get_defs( GTK_TYPE_STACK_PAGE )
            << get_defs( GTK_TYPE_STACK_SIDEBAR )
            << get_defs( GTK_TYPE_STACK_SWITCHER )
            << get_defs( GTK_TYPE_STATUSBAR )
            << get_defs( GTK_TYPE_STRING_FILTER )
            << get_defs( GTK_TYPE_STRING_OBJECT )
            << get_defs( GTK_TYPE_STRING_SORTER )
            << get_defs( GTK_TYPE_STYLE_CONTEXT )
            << get_defs( GTK_TYPE_STYLE_PROVIDER )
            << get_defs( GTK_TYPE_SWITCH )
            << get_defs( GTK_TYPE_TEXT )
            << get_defs( GTK_TYPE_TEXT_BUFFER )
            << get_defs( GTK_TYPE_TEXT_MARK )
            << get_defs( GTK_TYPE_TEXT_TAG )
            << get_defs( GTK_TYPE_TEXT_TAG_TABLE )
            << get_defs( GTK_TYPE_TEXT_VIEW )
            << get_defs( GTK_TYPE_TOGGLE_BUTTON )
            << get_defs( GTK_TYPE_TOOLTIP )
            << get_defs( GTK_TYPE_TREE_EXPANDER )
            << get_defs( GTK_TYPE_TREE_MODEL )
            << get_defs( GTK_TYPE_TREE_LIST_MODEL )
            << get_defs( GTK_TYPE_TREE_LIST_ROW )
            << get_defs( GTK_TYPE_TREE_SELECTION )
            << get_defs( GTK_TYPE_TREE_SORTABLE )
            << get_defs( GTK_TYPE_TREE_MODEL_FILTER )
            << get_defs( GTK_TYPE_TREE_MODEL_SORT )
            << get_defs( GTK_TYPE_TREE_STORE )
            << get_defs( GTK_TYPE_TREE_VIEW )
            << get_defs( GTK_TYPE_TREE_VIEW_COLUMN )
            << get_defs( GTK_TYPE_URI_LAUNCHER )
            << get_defs( GTK_TYPE_VIDEO )
            << get_defs( GTK_TYPE_VIEWPORT )
            << get_defs( GTK_TYPE_VOLUME_BUTTON )
            << get_defs( GTK_TYPE_WIDGET )
            << get_defs( GTK_TYPE_WIDGET_PAINTABLE )
            << get_defs( GTK_TYPE_WINDOW )
            << get_defs( GTK_TYPE_WINDOW_CONTROLS )
            << get_defs( GTK_TYPE_WINDOW_HANDLE )
            ;
  return 0;
}
