From fb63887447b18d2f12dbae6518c5210f90623a02 Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Sat, 24 Sep 2005 22:04:03 +0000 Subject: Add application icon to running program Subversion-branch: /trunk/chocolate-doom Subversion-revision: 126 --- src/Makefile.am | 12 ++++++---- src/convert-icon | 71 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/i_video.c | 29 +++++++++++++++++++++-- 3 files changed, 105 insertions(+), 7 deletions(-) create mode 100755 src/convert-icon (limited to 'src') diff --git a/src/Makefile.am b/src/Makefile.am index 83bc4e16..163eb5be 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,11 +1,10 @@ bindir = $(prefix)/bin +bin_PROGRAMS = chocolate-doom + CFLAGS = @CFLAGS@ @SDL_CFLAGS@ @SDLMIXER_CFLAGS@ @SDLNET_CFLAGS@ -Wall -chocolate_doom_LDADD = @LDFLAGS@ \ - @SDL_LIBS@ \ - @SDLMIXER_LIBS@ \ - @SDLNET_LIBS@ +chocolate_doom_LDADD = @LDFLAGS@ @SDL_LIBS@ @SDLMIXER_LIBS@ @SDLNET_LIBS@ SOURCE_FILES=\ am_map.c d_think.h i_video.c p_floor.c p_tick.c r_things.h \ @@ -36,8 +35,11 @@ else chocolate_doom_SOURCES=$(SOURCE_FILES) endif -bin_PROGRAMS = chocolate-doom +EXTRA_DIST = convert-icon chocolate_doom_icon.c .rc.o: windres $^ -o $@ +chocolate_doom_icon.c : ../data/chocolate-doom.png + ./convert-icon $^ > $@ + diff --git a/src/convert-icon b/src/convert-icon new file mode 100755 index 00000000..a55d8138 --- /dev/null +++ b/src/convert-icon @@ -0,0 +1,71 @@ +#!/usr/bin/python +# +# $Id: convert-icon 126 2005-09-24 22:04:03Z fraggle $ +# +# Copyright(C) 2005 Simon Howard +# +# 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, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. +# +# Converts images into C structures to be inserted in programs +# +# $Log$ +# Revision 1.1 2005/09/24 22:04:03 fraggle +# Add application icon to running program +# + +import Image +import sys +import os +import re + +def convert_image(filename): + + im = Image.open(filename).convert("RGB") + + size = im.size + + struct_name = os.path.basename(filename) + struct_name = re.sub(re.compile("\\..*$"), "", struct_name) + struct_name = re.sub(re.compile("\W"), "_", struct_name) + + print "static int %s_w = %i;" % (struct_name, size[0]) + print "static int %s_h = %i;" % (struct_name, size[1]) + + print + print "static unsigned char %s_data[] = {" % (struct_name) + + elements_on_line = 0 + + print " ", + + for y in range(size[1]): + for x in range(size[0]): + val = im.getpixel((x, y)) + print "%i,%i,%i, " % val, + elements_on_line += 1 + + if elements_on_line > 4: + elements_on_line = 0 + print + print " ", + + print + print "};\n" + +for filename in sys.argv[1:len(sys.argv)]: + convert_image(filename) + + diff --git a/src/i_video.c b/src/i_video.c index 50c95e95..8e337db6 100644 --- a/src/i_video.c +++ b/src/i_video.c @@ -1,7 +1,7 @@ // Emacs style mode select -*- C++ -*- //----------------------------------------------------------------------------- // -// $Id: i_video.c 111 2005-09-17 20:50:46Z fraggle $ +// $Id: i_video.c 126 2005-09-24 22:04:03Z fraggle $ // // Copyright(C) 1993-1996 Id Software, Inc. // Copyright(C) 2005 Simon Howard @@ -22,6 +22,9 @@ // 02111-1307, USA. // // $Log$ +// Revision 1.28 2005/09/24 22:04:03 fraggle +// Add application icon to running program +// // Revision 1.27 2005/09/17 20:50:46 fraggle // Mouse acceleration code to emulate old DOS drivers // @@ -121,12 +124,14 @@ //----------------------------------------------------------------------------- static const char -rcsid[] = "$Id: i_video.c 111 2005-09-17 20:50:46Z fraggle $"; +rcsid[] = "$Id: i_video.c 126 2005-09-24 22:04:03Z fraggle $"; #include #include #include +#include "chocolate_doom_icon.c" + #include "config.h" #include "doomdef.h" #include "doomstat.h" @@ -694,6 +699,25 @@ static void SetCaption(void) Z_Free(buf); } +// Set the application icon + +static void SetIcon(void) +{ + SDL_Surface *surface; + + surface = SDL_CreateRGBSurfaceFrom(chocolate_doom_data, + chocolate_doom_w, + chocolate_doom_h, + 24, + chocolate_doom_w * 3, + 0xff << 0, + 0xff << 8, + 0xff << 16, + 0); + + SDL_WM_SetIcon(surface, NULL); + SDL_FreeSurface(surface); +} void I_InitGraphics(void) { @@ -754,6 +778,7 @@ void I_InitGraphics(void) } SetCaption(); + SetIcon(); UpdateFocus(); UpdateGrab(); -- cgit v1.2.3