#!/bin/sh
#
# $FreeBSD: ports/x11-themes/icon-bluecurve-theme/scripts/do-build,v 1.1 2007/03/08 16:35:08 jylefort Exp $
#

### Adapted from ${WRKSRC}/art/icon/Bluecurve/sheets/Makefile.am

mkdir -p $BUILD_WRKSRC/Bluecurve
for t in added apps dialogs emblems files stock ooo; do
	icon-slicer \
		--output-dir=$BUILD_WRKSRC/Bluecurve \
		--image-dir=$BUILD_WRKSRC \
		$BUILD_WRKSRC/icons-$t.icontheme
done

mkdir -p $BUILD_WRKSRC/Bluecurve/36x36/apps
mv -f $BUILD_WRKSRC/gnome-spinner*.png $BUILD_WRKSRC/Bluecurve/36x36/apps
mv -f $BUILD_WRKSRC/../index.theme $BUILD_WRKSRC/Bluecurve

### Adapted from ${WRKDIR}/redhat-artwork.spec

# link upstream icon names to the redhat ones in bluecurve
for d in 48x48 32x32 24x24 16x16; do
	cd $BUILD_WRKSRC/Bluecurve/$d/apps
	ln -s icon-db-user.png openofficeorg-base.png
	ln -s redhat-spreadsheet.png openofficeorg-calc.png
	ln -s icon-vector-editor.png openofficeorg-draw.png
	ln -s redhat-presentations.png openofficeorg-impress.png
	ln -s icon-calculator.png openofficeorg-math.png
	ln -s redhat-word-processor.png openofficeorg-writer.png
	ln -s redhat-accessories.png gnome-util.png
	ln -sf redhat-programming.png gnome-devel.png
	ln -sf redhat-games.png gnome-joystick.png
	ln -s redhat-graphics.png gnome-graphics.png
	ln -sf redhat-internet.png gnome-globe.png
	ln -sf redhat-sound_video.png gnome-multimedia.png
	ln -sf redhat-office.png gnome-applications.png
	ln -sf redhat-preferences.png gnome-settings.png
	ln -sf redhat-system_settings.png gnome-system.png
done

cd $BUILD_WRKSRC/Bluecurve/48x48/filesystems
ln -s ../mimetypes/fileshare.png gnome-fs-ftp.png

# link upstream icon names to the redhat ones in bluecurve
for s in 16x16 20x20 24x24 32x32 36x36 48x48 64x64 96x96; do
	cd $BUILD_WRKSRC/Bluecurve/$s/apps 2>/dev/null || continue
	ln -sf redhat-office.png package_wordprocessing.png
	ln -sf redhat-internet.png package_network.png
	ln -sf redhat-accessories.png package_applications.png
	ln -sf redhat-graphics.png package_graphics.png
	ln -sf redhat-games.png package_games.png
	ln -sf redhat-sound_video.png multimedia.png
	ln -sf redhat-preferences.png package_settings.png
	ln -sf redhat-programming.png package_development.png
	ln -sf redhat-system_tools.png package_utilities.png
	ln -sf redhat-system_settings.png package_system.png
	ln -sf redhat-tools.png package_utilities.png
	# app icons
	ln -sf redhat-email.png kmail.png
	ln -sf redhat-web-browser.png konqueror.png
	ln -sf redhat-filemanager.png kfm.png
	ln -sf redhat-home.png kfm_home.png
	ln -sf redhat-logviewer.png kviewshell.png
	ln -sf system-logviewer.png logviewer.png
	# system settings
	ln -sf system-config-soundcard.png multimedia.png
done

flip_icon () {
	pngtopnm $1.png > $1.rgb
	pngtopnm -alpha $1.png > $1.alpha
	pamstack $1.rgb $1.alpha > $1.pam
	pamflip -lr $1.pam > $2.pam
	pamrgbatopng $2.pam > $2.png
	rm -f $1.rgb $1.alpha $1.pam $2.pam
}

ln_icon () {
	if [ -f $1.png ]; then
		ln -s $1.png $2.png
	fi
	if [ -f $1.icon ]; then
		ln -s $1.icon $2.icon
	fi
	if [ -f $1.svg ]; then
		ln -s $1.svg $2.svg
	fi
}

# link gtk stock icon names to bluecurve ones
for s in 16x16 24x24 36x36 48x48; do
	if cd $BUILD_WRKSRC/Bluecurve/$s/filesystems 2>/dev/null; then
		ln_icon gnome-fs-directory gtk-directory
		ln_icon gnome-fs-network gtk-network
	fi
	if cd $BUILD_WRKSRC/Bluecurve/$s/mimetypes 2>/dev/null; then
		ln_icon file-container gtk-file
		ln_icon harddrive gtk-harddisk
	fi
	if cd $BUILD_WRKSRC/Bluecurve/$s/stock 2>/dev/null; then
		ln_icon stock-about gtk-about
		ln_icon stock-connect gtk-connect
		ln_icon stock-disconnect gtk-disconnect
		ln_icon stock-edit gtk-edit
		ln_icon stock-media-ffwd gtk-media-forward-ltr 
		ln_icon stock-media-rewind gtk-media-forward-rtl
		ln_icon stock-media-next gtk-media-next-ltr
		ln_icon stock-media-prev gtk-media-next-rtl
		ln_icon stock-media-pause gtk-media-pause
		ln_icon stock-media-play gtk-media-play-ltr
		ln_icon stock-media-prev gtk-media-previous-ltr
		ln_icon stock-media-next gtk-media-previous-rtl
		ln_icon stock-media-rec gtk-media-record
		ln_icon stock-media-rewind gtk-media-rewind-ltr
		ln_icon stock-media-ffwd gtk-media-rewind-rtl 
		ln_icon stock-media-stop gtk-media-stop
		ln_icon stock-undo gtk-undo-ltr
		ln_icon stock-redo gtk-redo-ltr
		ln_icon stock-font gtk-select-font
		flip_icon stock-media-play gtk-media-play-rtl
		flip_icon stock-undo gtk-undo-rtl
		flip_icon stock-redo gtk-redo-rtl
	fi
done
if cd $BUILD_WRKSRC/Bluecurve/48x48/stock 2>/dev/null; then
	ln_icon stock-lockscreen gtk-dialog-authentication
fi

# link icon-naming spec names to bluecurve ones
for s in 16x16 20x20 24x24 32x32 36x36 48x48 64x64 96x96; do
	if cd $BUILD_WRKSRC/Bluecurve/$s/filesystems 2>/dev/null; then
		ln_icon gnome-fs-trash-empty user-trash
		ln_icon gnome-fs-trash-full user-trash-full
	fi
	if cd $BUILD_WRKSRC/Bluecurve/$s/stock 2>/dev/null; then
		ln_icon stock-properties document-properties
		ln_icon stock-find-and-replace edit-find-and-replace
		ln_icon stock-undo edit-undo
		ln_icon stock-justify-center format-justify-center
		ln_icon stock-justify-fill format-justify-fill
		ln_icon stock-justify-left format-justify-left
		ln_icon stock-justify-right format-justify-right
		ln_icon stock-strikethrough format-text-strikethrough
		ln_icon stock-underline format-text-underline
		ln_icon stock-goto-bottom go-bottom
		ln_icon stock-go-down go-down
		ln_icon stock-goto-first go-first
		ln_icon stock-goto-last go-last
		ln_icon stock-jump-to go-jump
		ln_icon stock-go-forward go-next
		ln_icon stock-go-back go-previous
		ln_icon stock-go-up go-up
		ln_icon stock-goto-top go-top
		ln_icon stock-zoom-fit zoom-best-fit
		ln_icon stock-quit system-log-out
		ln_icon stock-quit application-exit
		ln_icon stock-apply dialog-ok
		ln_icon stock-close dialog-close
		ln_icon stock-cancel dialog-cancel
		ln_icon stock-bookmark-page bookmark-new
		ln_icon stock-new document-new
		ln_icon stock-open document-open
		ln_icon stock-open document-open-recent
		ln_icon stock-print document-print
		ln_icon stock-print-preview document-print-preview
		ln_icon stock-save document-save
		ln_icon stock-save-as document-save-as
		ln_icon stock-copy edit-copy
		ln_icon stock-cut edit-cut
		ln_icon stock-delete edit-delete
		ln_icon stock-paste edit-paste
		ln_icon stock-bold format-text-bold
		ln_icon stock-italic format-text-italic
		ln_icon stock-mic audio-input-microphone
		ln_icon stock-about help-about
		ln_icon stock-book help-contents
		ln_icon stock-missing-image image-missing
		ln_icon stock-media-pause media-playback-pause
		ln_icon stock-media-play media-playback-start
		ln_icon stock-media-stop media-playback-stop
		ln_icon stock-media-rec media-record
		ln_icon stock-media-rewind media-seek-backward
		ln_icon stock-media-ffwd media-seek-forward 
		ln_icon stock-media-prev media-skip-backward
		ln_icon stock-media-next media-skip-forward
	fi
	if cd $BUILD_WRKSRC/Bluecurve/$s/stock 2>/dev/null; then
		ln_icon harddrive drive-harddisk
		ln_icon cd drive-removable-media
		ln_icon cd drive-optical
		ln_icon floppy media-floppy
		ln_icon cd media-optical
		ln_icon dvd media-flash
		ln_icon folder-home user-home
		ln_icon file-font font-x-generic
		ln_icon file-gfx image-x-generic
		ln_icon file-video video-x-generic
		ln_icon file text-x-generic
		ln_icon file text-x-generic-template
		ln_icon file-executable text-x-script
		ln_icon file-launcher application-x-executable
		ln_icon file-wordprocessor x-office-document
		ln_icon file-presentation x-office-presentation
		ln_icon file-spreadsheet x-office-spreadsheet
		# FIXME
		ln_icon file-wordprocessor x-office-calendar
		ln_icon file-wordprocessor x-office-address-book
	fi 
	if cd $BUILD_WRKSRC/Bluecurve/$s/apps 2>/dev/null; then
		ln_icon icon-calculator accessories-calculator
		ln_icon icon-character-map accessories-character-map
		ln_icon icon-documentation accessories-dictionary
		ln_icon icon-notepad accessories-text-editor
		ln_icon icon-accessories applications-accessories 
		ln_icon icon-development applications-development 
		ln_icon icon-games applications-games 
		ln_icon icon-help help-browser 
		ln_icon icon-help system-help 
		ln_icon icon-gfx applications-graphics 
		ln_icon icon-network applications-internet 
		ln_icon icon-media applications-multimedia 
		ln_icon icon-office applications-office 
		ln_icon icon-system-configuration applications-system 
		ln_icon icon-computer computer 
		ln_icon icon-system-settings preferences-desktop 
		ln_icon icon-accessibility preferences-desktop-accessibility 
		ln_icon icon-fonts preferences-desktop-font 
		ln_icon icon-keyboard preferences-desktop-keyboard 
		ln_icon icon-languages preferences-desktop-locale 
		ln_icon icon-sound preferences-desktop-multimedia 
		# preferences-desktop-peripherals
		ln_icon icon-user preferences-desktop-personal
		# preferences-desktop-screensaver
		ln_icon icon-themes preferences-desktop-theme
		ln_icon icon-background-picture preferences-desktop-wallpaper
		ln_icon icon-system-configuration preferences-system 
		ln_icon icon-network preferences-system-network
		ln_icon gpm-primary-80 battery 
		ln_icon gpm-primary-20 battery-caution 
		ln_icon gpm-primary-10 battery-low 
		ln_icon camera camera-photo 
		ln_icon icon-games input-gaming 
		ln_icon icon-keyboard input-keyboard 
		ln_icon icon-mouse input-mouse 
		ln_icon icon-systemhealth utilities-system-monitor
	fi
	if cd $BUILD_WRKSRC/Bluecurve/$s/mimetypes 2>/dev/null; then
		ln_icon stock_insert_image insert-image
		ln_icon stock_insert_url insert-link
		ln_icon stock_insert_ole-object insert-object
	fi
done
# some 48 only icons
if cd $BUILD_WRKSRC/Bluecurve/48x48/stock 2>/dev/null; then
	ln_icon stock-lockscreen dialog-password
	ln_icon dialog-info dialog-information
fi
