From 87366694d82c8d4c7f0bc210e6baa0ccd651d0c2 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Tue, 7 Jul 2009 19:35:54 +0200 Subject: Remove the internal GUI The GUI is badly designed and too closely coupled to the internal details of other code. The GUI code is in bad shape and unmaintained for years. There is no indication that anyone would maintain it in the future either. Even if someone did volunteer to implement a better integrated GUI having the current code in the tree probably wouldn't help much. So get rid of it. --- gui/win32/skinload.c | 776 --------------------------------------------------- 1 file changed, 776 deletions(-) delete mode 100644 gui/win32/skinload.c (limited to 'gui/win32/skinload.c') diff --git a/gui/win32/skinload.c b/gui/win32/skinload.c deleted file mode 100644 index 3c3c21234e..0000000000 --- a/gui/win32/skinload.c +++ /dev/null @@ -1,776 +0,0 @@ -/* - * MPlayer GUI for Win32 - * Copyright (C) 2003 Sascha Sommer - * Copyright (C) 2006 Erik Augustson - * Copyright (C) 2006 Gianluigi Tiesi - * - * This file is part of MPlayer. - * - * MPlayer 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. - * - * MPlayer 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 MPlayer; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include -#include -#include - -#include "mp_msg.h" -#include "cpudetect.h" -#include "libswscale/rgb2rgb.h" -#include "libswscale/swscale.h" -#include "gui.h" -#include "gui/bitmap.h" - -#define MAX_LINESIZE 256 - -typedef struct -{ - int msg; - char *name; -} evName; - -static const evName evNames[] = -{ - { evNone, "evNone" }, - { evPlay, "evPlay" }, - { evDropFile, "evDropFile" }, - { evStop, "evStop" }, - { evPause, "evPause" }, - { evPrev, "evPrev" }, - { evNext, "evNext" }, - { evLoad, "evLoad" }, - { evEqualizer, "evEqualizer" }, - { evEqualizer, "evEqualeaser" }, - { evPlayList, "evPlaylist" }, - { evExit, "evExit" }, - { evIconify, "evIconify" }, - { evIncBalance, "evIncBalance" }, - { evDecBalance, "evDecBalance" }, - { evFullScreen, "evFullScreen" }, - { evFName, "evFName" }, - { evMovieTime, "evMovieTime" }, - { evAbout, "evAbout" }, - { evLoadPlay, "evLoadPlay" }, - { evPreferences, "evPreferences" }, - { evSkinBrowser, "evSkinBrowser" }, - { evBackward10sec, "evBackward10sec" }, - { evForward10sec, "evForward10sec" }, - { evBackward1min, "evBackward1min" }, - { evForward1min, "evForward1min" }, - { evBackward10min, "evBackward10min" }, - { evForward10min, "evForward10min" }, - { evIncVolume, "evIncVolume" }, - { evDecVolume, "evDecVolume" }, - { evMute, "evMute" }, - { evIncAudioBufDelay, "evIncAudioBufDelay" }, - { evDecAudioBufDelay, "evDecAudioBufDelay" }, - { evPlaySwitchToPause, "evPlaySwitchToPause" }, - { evPauseSwitchToPlay, "evPauseSwitchToPlay" }, - { evNormalSize, "evNormalSize" }, - { evDoubleSize, "evDoubleSize" }, - { evSetMoviePosition, "evSetMoviePosition" }, - { evSetVolume, "evSetVolume" }, - { evSetBalance, "evSetBalance" }, - { evHelp, "evHelp" }, - { evLoadSubtitle, "evLoadSubtitle" }, - { evPlayDVD, "evPlayDVD" }, - { evPlayVCD, "evPlayVCD" }, - { evSetURL, "evSetURL" }, - { evLoadAudioFile, "evLoadAudioFile" }, - { evDropSubtitle, "evDropSubtitle" }, - { evSetAspect, "evSetAspect" } -}; - -static const int evBoxs = sizeof(evNames) / sizeof(evName); - -static char *geteventname(int event) -{ - int i; - for(i=0; iskindir) + strlen(fname) + 6); - sprintf(filename, "%s\\%s.png", skin->skindir, fname); - if(!(fp = fopen(filename, "rb"))) - { - mp_msg(MSGT_GPLAYER, MSGL_ERR, "[png] cannot find image %s\n", filename); - free(filename); - return 0; - } - } - fclose(fp); - - for (i=0; i < skin->imagecount; i++) - if(!strcmp(fname, skin->images[i]->name)) - { -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[png] skinfile %s already exists\n", fname); -#endif - free(filename); - return skin->images[i]; - } - (skin->imagecount)++; - skin->images = realloc(skin->images, sizeof(image *) * skin->imagecount); - bf = skin->images[(skin->imagecount) - 1] = calloc(1, sizeof(image)); - bf->name = strdup(fname); - bpRead(filename ? filename : fname, &bmp); - free(filename); - bf->width = bmp.Width; bf->height = bmp.Height; - -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[png] loaded image %s\n", fname); - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[png] size: %dx%d bits: %d\n", bf->width, bf->height, BPP); - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[png] imagesize: %u\n", imgsize); -#endif - - bf->size = bf->width * bf->height * skin->desktopbpp / 8; - if (skin->desktopbpp == 32) - bf->data = bmp.Image; - else { - bf->data = malloc(bf->size); - rgb32tobgr32(bmp.Image, bmp.Image, bmp.ImageSize); - if(skin->desktopbpp == 16) rgb32tobgr15(bmp.Image, bf->data, bmp.ImageSize); - else if(skin->desktopbpp == 24) rgb32tobgr24(bmp.Image, bf->data, bmp.ImageSize); - free(bmp.Image); - } - return bf; -} - -/* frees all skin images */ -static void freeimages(skin_t *skin) -{ - unsigned int i; - for (i=0; iimagecount; i++) - { - if(skin->images && skin->images[i]) - { - if(skin->images[i]->data) free(skin->images[i]->data); - if(skin->images[i]->name) free(skin->images[i]->name); - free(skin->images[i]); - } - } - free(skin->images); -} - -#ifdef DEBUG -void dumpwidgets(skin_t *skin) -{ - unsigned int i; - for (i=0; iwidgetcount; i++) - mp_msg(MSGT_GPLAYER, MSGL_V, "widget %p id %i\n", skin->widgets[i], skin->widgets[i]->id); -} -#endif - -static int counttonextchar(const char *s1, char c) -{ - unsigned int i; - for (i=0; iskindir) - { - free(skin->skindir); - skin->skindir = NULL; - } - - for (i=1; i<=skin->lastusedid; i++) - skin->removewidget(skin, i); - - if(skin->widgets) - { - free(skin->widgets); - skin->widgets = NULL; - } - - freeimages(skin); - for(i=0; iwindowcount; i++) - { - if(skin->windows[i]->name) - { - free(skin->windows[i]->name); - skin->windows[i]->name = NULL; - } - free(skin->windows[i]); - } - - free(skin->windows); - skin->windows = NULL; - - for (i=0; ifontcount; i++) - { - unsigned int x; - if(skin->fonts[i]->name) - { - free(skin->fonts[i]->name); - skin->fonts[i]->name = NULL; - } - - if(skin->fonts[i]->id) - { - free(skin->fonts[i]->id); - skin->fonts[i]->id = NULL; - } - - for (x=0; xfonts[i]->charcount; x++) - { - free(skin->fonts[i]->chars[x]); - skin->fonts[i]->chars[x] = NULL; - } - - if(skin->fonts[i]->chars) - { - free(skin->fonts[i]->chars); - skin->fonts[i]->chars = NULL; - } - - free(skin->fonts[i]); - skin->fonts[i] = NULL; - } - free(skin->fonts); - skin->fonts = NULL; -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN FREE] skin freed\n"); -#endif - free(skin); - skin = NULL; -} - -static void removewidget(skin_t *skin, int id) -{ - unsigned int i; - unsigned int pos=0; - widget **temp = calloc(skin->widgetcount - 1, sizeof(widget *)); - - for (i=0; iwidgetcount; i++) - { - if(skin->widgets[i]->id == id) - { - if(skin->widgets[i]->label) - free(skin->widgets[i]->label); - free(skin->widgets[i]); - skin->widgets[i] = NULL; - } - else - { - temp[pos] = skin->widgets[i]; - pos++; - } - } - if (pos != i) - { - (skin->widgetcount)--; - free(skin->widgets); - skin->widgets = temp; -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "removed widget %i\n", id); -#endif - return; - } - free(temp); - mp_msg(MSGT_GPLAYER, MSGL_ERR, "widget %i not found\n", id); -} - -static void addwidget(skin_t *skin, window *win, const char *desc) -{ - widget *mywidget; - char *temp = calloc(1, strlen(desc) + 1); - (skin->widgetcount)++; - (skin->lastusedid)++; - skin->widgets = realloc(skin->widgets, sizeof(widget *) * skin->widgetcount); - mywidget = skin->widgets[(skin->widgetcount) - 1] = calloc(1, sizeof(widget)); - mywidget->id = skin->lastusedid; - mywidget->window = win->type; - /* parse and fill widget specific info */ - if(!strncmp(desc, "base", 4)) - { - int base = counttonextchar(desc, '=') + 1; - mywidget->type = tyBase; - mywidget->bitmap[0] = pngRead(skin, findnextstring(temp, desc, &base)); - mywidget->wx = mywidget->x = atoi(findnextstring(temp, desc, &base)); - mywidget->wy = mywidget->y = atoi(findnextstring(temp, desc, &base)); - mywidget->wwidth = mywidget->width = atoi(findnextstring(temp, desc, &base)); - mywidget->wheight = mywidget->height = atoi(findnextstring(temp, desc, &base)); - win->base = mywidget; -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [ITEM] [BASE] %s %i %i %i %i\n", - (mywidget->bitmap[0]) ? mywidget->bitmap[0]->name : NULL, - mywidget->x, mywidget->y, mywidget->width, mywidget->height); -#endif - } - else if(!strncmp(desc, "button", 6)) - { - int base = counttonextchar(desc, '=') + 1; - int i; - mywidget->type = tyButton; - mywidget->bitmap[0] = pngRead(skin, findnextstring(temp, desc, &base)); - mywidget->wx = mywidget->x = atoi(findnextstring(temp, desc, &base)); - mywidget->wy = mywidget->y = atoi(findnextstring(temp, desc, &base)); - mywidget->wwidth = mywidget->width = atoi(findnextstring(temp, desc, &base)); - mywidget->wheight = mywidget->height = atoi(findnextstring(temp, desc, &base)); - findnextstring(temp, desc, &base); - - /* Assign corresponding event to the widget */ - mywidget->msg = evNone; - for (i=0; imsg = evNames[i].msg; - break; - } - } - -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [ITEM] [BUTTON] %s %i %i %i %i msg %i\n", - (mywidget->bitmap[0]) ? mywidget->bitmap[0]->name : NULL, - mywidget->x, mywidget->y, mywidget->width, mywidget->height, mywidget->msg); -#endif - } - else if(!strncmp(desc, "hpotmeter", 9) || !strncmp(desc, "vpotmeter", 9)) - { - int base = counttonextchar(desc, '=') + 1; - int i; - /* hpotmeter = button, bwidth, bheight, phases, numphases, default, X, Y, width, height, message */ - if(!strncmp(desc, "hpotmeter", 9)) mywidget->type = tyHpotmeter; - else mywidget->type = tyVpotmeter; - mywidget->bitmap[0] = pngRead(skin, findnextstring(temp, desc, &base)); - mywidget->width = atoi(findnextstring(temp, desc, &base)); - mywidget->height = atoi(findnextstring(temp, desc, &base)); - mywidget->bitmap[1] = pngRead(skin, findnextstring(temp, desc, &base)); - mywidget->phases = atoi(findnextstring(temp, desc, &base)); - mywidget->value = atof(findnextstring(temp, desc, &base)); - mywidget->x = mywidget->wx = atoi(findnextstring(temp, desc, &base)); - mywidget->y = mywidget->wy = atoi(findnextstring(temp, desc, &base)); - mywidget->wwidth = atoi(findnextstring(temp, desc, &base)); - mywidget->wheight = atoi(findnextstring(temp, desc, &base)); - findnextstring(temp, desc, &base); - mywidget->msg = evNone; - for (i=0; imsg = evNames[i].msg; - break; - } - } -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [ITEM] %s %s %i %i %s %i %f %i %i %i %i msg %i\n", - (mywidget->type == tyHpotmeter) ? "[HPOTMETER]" : "[VPOTMETER]", - (mywidget->bitmap[0]) ? mywidget->bitmap[0]->name : NULL, - mywidget->width, mywidget->height, - (mywidget->bitmap[1]) ? mywidget->bitmap[1]->name : NULL, - mywidget->phases, mywidget->value, - mywidget->wx, mywidget->wy, mywidget->wwidth, mywidget->wwidth, - mywidget->msg); -#endif - } - else if(!strncmp(desc, "potmeter", 8)) - { - int base = counttonextchar(desc, '=') + 1; - int i; - /* potmeter = phases, numphases, default, X, Y, width, height, message */ - mywidget->type = tyPotmeter; - mywidget->bitmap[0] = pngRead(skin, findnextstring(temp, desc, &base)); - mywidget->phases = atoi(findnextstring(temp, desc, &base)); - mywidget->value = atof(findnextstring(temp, desc, &base)); - mywidget->wx = mywidget->x = atoi(findnextstring(temp, desc, &base)); - mywidget->wy = mywidget->y = atoi(findnextstring(temp, desc, &base)); - mywidget->wwidth = mywidget->width = atoi(findnextstring(temp, desc, &base)); - mywidget->wheight = mywidget->height = atoi(findnextstring(temp, desc, &base)); - findnextstring(temp, desc, &base); - mywidget->msg = evNone; - for (i=0; imsg=evNames[i].msg; - break; - } - } -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [ITEM] [POTMETER] %s %i %i %i %f %i %i msg %i\n", - (mywidget->bitmap[0]) ? mywidget->bitmap[0]->name : NULL, - mywidget->width, mywidget->height, - mywidget->phases, mywidget->value, - mywidget->x, mywidget->y, - mywidget->msg); -#endif - } - else if(!strncmp(desc, "menu", 4)) - { - int base = counttonextchar(desc, '=') + 1; - int i; - mywidget->type = tyMenu; - mywidget->wx=atoi(findnextstring(temp, desc, &base)); - mywidget->x=0; - mywidget->wy=mywidget->y=atoi(findnextstring(temp, desc, &base)); - mywidget->wwidth=mywidget->width=atoi(findnextstring(temp, desc, &base)); - mywidget->wheight=mywidget->height=atoi(findnextstring(temp, desc, &base)); - findnextstring(temp, desc, &base); - mywidget->msg = evNone; - for (i=0; imsg = evNames[i].msg; - break; - } - } -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [ITEM] [MENU] %i %i %i %i msg %i\n", - mywidget->x, mywidget->y, mywidget->width, mywidget->height, mywidget->msg); -#endif - } - else if(!strncmp(desc, "selected", 8)) - { - win->base->bitmap[1] = pngRead(skin, (char *) desc + 9); -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [ITEM] [BASE] added image %s\n", win->base->bitmap[1]->name); -#endif - } - else if(!strncmp(desc, "slabel",6)) - { - int base = counttonextchar(desc, '=') + 1; - unsigned int i; - mywidget->type = tySlabel; - mywidget->wx = mywidget->x = atoi(findnextstring(temp, desc, &base)); - mywidget->wy = mywidget->y = atoi(findnextstring(temp, desc, &base)); - findnextstring(temp, desc, &base); - mywidget->font = NULL; - for (i=0; ifontcount; i++) - { - if(!strcmp(temp, skin->fonts[i]->name)) - { - mywidget->font = skin->fonts[i]; - break; - } - } - mywidget->label = strdup(findnextstring(temp, desc, &base)); -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [ITEM] [SLABEL] %i %i %s %s\n", - mywidget->x, mywidget->y, mywidget->font->name, mywidget->label); -#endif - } - else if(!strncmp(desc, "dlabel", 6)) - { - int base = counttonextchar(desc, '=') + 1; - unsigned int i; - mywidget->type = tyDlabel; - mywidget->wx = mywidget->x = atoi(findnextstring(temp, desc, &base)); - mywidget->wy = mywidget->y = atoi(findnextstring(temp, desc, &base)); - mywidget->length = atoi(findnextstring(temp, desc, &base)); - mywidget->align = atoi(findnextstring(temp, desc, &base)); - findnextstring(temp, desc, &base); - mywidget->font = NULL; - for (i=0; ifontcount; i++) - { - if(!strcmp(temp, skin->fonts[i]->name)) - { - mywidget->font=skin->fonts[i]; - break; - } - } - mywidget->label=strdup(findnextstring(temp, desc, &base)); -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [ITEM] [DLABEL] %i %i %i %i %s \"%s\"\n", - mywidget->x, mywidget->y, mywidget->length, mywidget->align, mywidget->font->name, mywidget->label); -#endif - } - free(temp); -} - -static void loadfonts(skin_t* skin) -{ - unsigned int x; - for (x=0; xfontcount; x++) - { - FILE *fp; - int linenumber=0; - char *filename; - char *tmp = calloc(1, MAX_LINESIZE); - char *desc = calloc(1, MAX_LINESIZE); - filename = calloc(1, strlen(skin->skindir) + strlen(skin->fonts[x]->name) + 6); - sprintf(filename, "%s\\%s.fnt", skin->skindir, skin->fonts[x]->name); - if(!(fp = fopen(filename,"rb"))) - { - mp_msg(MSGT_GPLAYER, MSGL_ERR, "[FONT LOAD] Font not found \"%s\"\n", skin->fonts[x]->name); - return; - } - while(!feof(fp)) - { - int pos = 0; - unsigned int i; - fgets(tmp, MAX_LINESIZE, fp); - linenumber++; - memset(desc, 0, MAX_LINESIZE); - for (i=0; i parse it */ - if(!strncmp(desc, "image", 5)) - { - skin->fonts[x]->image = pngRead(skin, desc + 6); -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[FONT] [IMAGE] \"%s\"\n", desc + 6); -#endif - } - else - { - int base = 4; - if(*desc != '"') break; - if(*(desc + 1) == 0) break; - (skin->fonts[x]->charcount)++; - skin->fonts[x]->chars = realloc(skin->fonts[x]->chars, sizeof(char_t *) *skin->fonts[x]->charcount); - skin->fonts[x]->chars[skin->fonts[x]->charcount - 1]=calloc(1, sizeof(char_t)); - skin->fonts[x]->chars[skin->fonts[x]->charcount - 1]->c = ((*(desc + 1) == '"') && (*(desc + 2) != '"')) ? ' ': *(desc + 1); - if((*(desc + 1) == '"') && (*(desc + 2) != '"')) base = 3; - skin->fonts[x]->chars[skin->fonts[x]->charcount - 1]->x = atoi(findnextstring(tmp, desc, &base)); - skin->fonts[x]->chars[skin->fonts[x]->charcount - 1]->y = atoi(findnextstring(tmp, desc, &base)); - skin->fonts[x]->chars[skin->fonts[x]->charcount - 1]->width = atoi(findnextstring(tmp, desc, &base)); - skin->fonts[x]->chars[skin->fonts[x]->charcount - 1]->height = atoi(findnextstring(tmp, desc, &base)); -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[FONT] [CHAR] %c %i %i %i %i\n", - skin->fonts[x]->chars[skin->fonts[x]->charcount - 1]->c, - skin->fonts[x]->chars[skin->fonts[x]->charcount - 1]->x, - skin->fonts[x]->chars[skin->fonts[x]->charcount - 1]->y, - skin->fonts[x]->chars[skin->fonts[x]->charcount - 1]->width, - skin->fonts[x]->chars[skin->fonts[x]->charcount - 1]->height); -#endif - } - } - free(desc); - free(filename); - free(tmp); - fclose(fp); - } -} - -skin_t* loadskin(char* skindir, int desktopbpp) -{ - FILE *fp; - int reachedendofwindow = 0; - int linenumber = 0; - skin_t *skin = calloc(1, sizeof(skin_t)); - char *filename; - char *tmp = calloc(1, MAX_LINESIZE); - char *desc = calloc(1, MAX_LINESIZE); - window* mywindow = NULL; - - /* init swscaler */ - sws_rgb2rgb_init(get_sws_cpuflags()); - /* setup funcs */ - skin->freeskin = freeskin; - skin->pngRead = pngRead; - skin->addwidget = addwidget; - skin->removewidget = removewidget; - skin->geteventname = geteventname; - skin->desktopbpp = desktopbpp; - skin->skindir = strdup(skindir); - - filename = calloc(1, strlen(skin->skindir) + strlen("skin") + 2); - sprintf(filename, "%s\\skin", skin->skindir); - if(!(fp = fopen(filename, "rb"))) - { - mp_msg(MSGT_GPLAYER, MSGL_FATAL, "[SKIN LOAD] Skin \"%s\" not found\n", skindir); - skin->freeskin(skin); - return NULL; - } - - while(!feof(fp)) - { - int pos = 0; - unsigned int i; - int insidequote = 0; - fgets(tmp, MAX_LINESIZE, fp); - linenumber++; - memset(desc, 0, MAX_LINESIZE); - for (i=0; i parse it */ - /* parse window specific info */ - if(!strncmp(desc, "section", 7)) - { -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [SECTION] \"%s\"\n", desc + 8); -#endif - } - else if(!strncmp(desc, "window", 6)) - { -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [WINDOW] \"%s\"\n", desc + 7); -#endif - reachedendofwindow = 0; - (skin->windowcount)++; - skin->windows = realloc(skin->windows, sizeof(window *) * skin->windowcount); - mywindow = skin->windows[(skin->windowcount) - 1] = calloc(1, sizeof(window)); - mywindow->name = strdup(desc + 7); - if(!strncmp(desc + 7, "main", 4)) mywindow->type = wiMain; - else if(!strncmp(desc+7, "sub", 3)) - { - mywindow->type = wiSub; - mywindow->decoration = 1; - } - else if(!strncmp(desc + 7, "menu", 4)) mywindow->type = wiMenu; - else if(!strncmp(desc + 7, "playbar", 7)) mywindow->type = wiPlaybar; - else mp_msg(MSGT_GPLAYER, MSGL_V, "[SKIN] warning found unknown windowtype"); - } - else if(!strncmp(desc, "decoration", 10) && !strncmp(desc + 11, "enable", 6)) - { - mywindow->decoration = 1; -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [DECORATION] enabled decoration for window \"%s\"\n", mywindow->name); -#endif - } - else if(!strncmp(desc, "background", 10)) - { - int base = counttonextchar(desc, '=') + 1; - char temp[MAX_LINESIZE]; - mywindow->backgroundcolor[0] = atoi(findnextstring(temp, desc, &base)); - mywindow->backgroundcolor[1] = atoi(findnextstring(temp, desc, &base)); - mywindow->backgroundcolor[2] = atoi(findnextstring(temp, desc, &base)); -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [BACKGROUND] window \"%s\" has backgroundcolor (%i,%i,%i)\n", mywindow->name, - mywindow->backgroundcolor[0], - mywindow->backgroundcolor[1], - mywindow->backgroundcolor[2]); -#endif - } - else if(!strncmp(desc, "end", 3)) - { - if(reachedendofwindow) - { -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [END] of section\n"); -#endif - } - else - { - reachedendofwindow = 1; -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [END] of window \"%s\"\n", mywindow->name); -#endif - } - } - else if(!strncmp(desc, "font", 4)) - { - unsigned int i; - int id = 0; - char temp[MAX_LINESIZE]; - int base = counttonextchar(desc, '=')+1; - findnextstring(temp, desc, &base); - findnextstring(temp, desc, &base); - for (i=0; ifontcount; i++) - if(!strcmp(skin->fonts[i]->id, temp)) - { - id = i; - break; - } - if(!id) - { - int base = counttonextchar(desc, '=') + 1; - findnextstring(temp, desc, &base); - id = skin->fontcount; - (skin->fontcount)++; - skin->fonts = realloc(skin->fonts, sizeof(font_t *) * skin->fontcount); - skin->fonts[id]=calloc(1, sizeof(font_t)); - skin->fonts[id]->name = strdup(temp); - skin->fonts[id]->id = strdup(findnextstring(temp, desc, &base)); - } -#ifdef DEBUG - mp_msg(MSGT_GPLAYER, MSGL_DBG4, "[SKIN] [FONT] id \"%s\" name \"%s\"\n", skin->fonts[id]->name, skin->fonts[id]->id); -#endif - } - else - skin->addwidget(skin, mywindow, desc); - } - - free(desc); - free(filename); - free(tmp); - fclose(fp); - loadfonts(skin); - mp_msg(MSGT_GPLAYER, MSGL_V, "[SKIN LOAD] loaded skin \"%s\"\n", skin->skindir); - /* dumpwidgets(skin); */ - return skin; -} -- cgit v1.2.3