#!/bin/bash inc="`pkg-config --variable=includedir libxfcegui4-1.0`"/xfce4 for s in "${inc}"/libxfcegui4/*.h do t="${s##*/}" t="${t%.h}" if [ "${t#netk-}" = "$t" ] then defs="${t/-/_}.defs" defs="${defs/-/_}" python /usr/share/pygtk/2.0/codegen/h2def.py "$s" >"${defs}" fi done rm -f util.defs for s in xfce_*.defs do t="${s#xfce_}" mv "$s" "$t" done #mmv -o 'xfce-*.defs' '#1.defs' #rm -f libxfce4util.defs #rm -f libxfce4util-config.defs #rm -f generics.defs #rm -f debug.defs rm -f libnetk.defs rm -f marshal.defs rm -f preview_filesel.* # totally weird rm -f xinerama* # obsolete # rm -f icontheme.defs # ? # fix up the enums: #egrep -v '(gtype-id "(XFCE_TYPE_CLOCK_LED_SIZE|XFCE_TYPE_CLOCK_MODE)")' clock.defs >clock.defs.new && mv clock.defs.new clock.defs #egrep -v '(gtype-id "XFCE_TYPE_DECORBUTTON_TYPE")' decorbutton.defs >decorbutton.defs.new && mv decorbutton.defs.new decorbutton.defs #egrep -v '(gtype-id "XFCE_TYPE_FILE_CHOOSER_ACTION")' filechooser.defs >filechooser.defs.new && mv filechooser.defs.new filechooser.defs #egrep -v '(gtype-id "XFCE_TYPE_FILTER_STATUS")' gtktoxevent.defs >gtktoxevent.defs.new && mv gtktoxevent.defs.new gtktoxevent.defs #egrep -v '(gtype-id "XFCE_TYPE_ICON_THEME_CATEGORY")' icontheme.defs \ # |sed -e 's;"icon-category-;";' \ # |grep -v "n-builtin-icon-categories" \ # >icontheme.defs.new && mv icontheme.defs.new icontheme.defs #egrep -v '(gtype-id "(SESSION_TYPE_INTERACT_STYLE|SESSION_TYPE_RESTART_STYLE|SESSION_TYPE_CLIENT_STATE)")' \ # session_client.defs >session_client.defs.new && mv session_client.defs.new session_client.defs sed -e 's;(define-function xfce_themed_icon_lookup;(define-function themed_icon_lookup;' \ -e 's;(define-function xfce_themed_icon_add_search_path;(define-function themed_icon_add_search_path;' \ -e 's;(define-function xfce_set_icon_theme;(define-function themed_icon_set_icon_theme;' \ icons.defs >icons.defs.new && mv icons.defs.new icons.defs sed \ -e 's;(define-function xfce_confirm;(define-function confirm;' \ dialogs.defs > dialogs.defs.new && mv dialogs.defs.new dialogs.defs sed \ -e 's;(define-function xfce_app_menu_item_set_icon_size;(define-function app_menu_item_set_icon_size;' \ -e 's;(define-function xfce_app_menu_item_set_icon_theme_name;(define-function app_menu_item_set_icon_theme_name;' \ appmenuitem.defs >appmenuitem.defs.new && mv appmenuitem.defs.new appmenuitem.defs for s in *.defs do sed -e 's;(define-function xfce_;(define-function ;' "$s" >"${s}.new" && mv "${s}.new" "$s" done cat >>icontheme.defs << EOF (define-function icon_theme_new (c-name "xfce_icon_theme_new") (is-constructor-of "XfceIconTheme") (return-type "XfceIconTheme*") (parameters '("GdkScreen*" "screen") ) ) (object IconTheme (in-module (Xfce)) (parent Object) (c-name XfceIconTheme) ) EOF cat >>aboutdialog.defs << EOF (object AboutDialog (in-module (Xfce)) (parent Dialog (Gtk)) (c-name XfceIconTheme) (field (type-and-name gchar* program) (access readwrite)) (field (type-and-name gchar* version) (access readwrite)) (field (type-and-name GdkPixbuf* icon) (access readwrite)) (field (type-and-name gchar* description) (access readwrite)) (field (type-and-name gchar* copyright) (access readwrite)) (field (type-and-name gchar* license) (access readwrite)) (field (type-and-name gchar* homepage) (access readwrite)) ) EOF # TODO: credits cat >>appmenuitem.defs << EOF (object AppMenuItem (in-module (gui)) (parent Object) (c-name XfceAppMenuItem) (field (type-and-name gchar* needs_term) (access readwrite)) (field (type-and-name gchar* command) (access readwrite)) (field (type-and-name gchar* icon_name) (access readwrite)) ) EOF grep -v '(is-constructor-of "XfceAboutDialog")' aboutdialog.defs \ |sed -e 's;(c-name "xfce_about_dialog_new_empty");(c-name "xfce_about_dialog_new_empty")\ (is-constructor-of "XfceAboutDialog");' \ >aboutdialog.defs.new && mv aboutdialog.defs.new aboutdialog.defs