mpv/Gui/win32/skinload.h

214 lines
5.7 KiB
C

/*
MPlayer Gui for win32
Copyright (c) 2003 Sascha Sommer <saschasommer@freenet.de>
Copyright (c) 2006 Erik Augustson <erik_27can@yahoo.com>
Copyright (c) 2006 Gianluigi Tiesi <sherpya@netfarm.it>
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., 51 Franklin St, Fifth Floor, Boston, MA 02111-1307 USA
*/
#ifndef _SKINLOAD_H
#define _SKINLOAD_H
typedef struct
{
char *name; /* image name */
int size; /* image data size in bytes */
int width; /* image width */
int height; /* image height */
char *data; /* pointer to image data */
} image;
typedef struct
{
char c;
int x;
int y;
int width;
int height;
} char_t;
typedef struct
{
char *name;
char *id;
image *image;
unsigned int charcount;
char_t **chars;
} font_t;
typedef struct
{
int id; /* widget id */
int type; /* widget type */
int window; /* the window it belongs to */
// ---
int x, y; /* x and y position the button */
int wx, wy; /* x and y postion of the widget */
int width, height; /* width and height of the button */
int wwidth, wheight; /* width and height of the widget */
// ---
// ---
int msg, msg2;
int pressed, tmp;
int key, key2;
int phases;
float value;
image *bitmap[2]; /* Associated image(s) in imagepool */
// ---
font_t *font;
int length;
int align;
char *label;
// ---
int event;
} widget;
typedef struct
{
char *name;
int decoration;
int type;
widget *base;
int backgroundcolor[3];
void *priv;
} window;
typedef struct skin_t skin_t;
struct skin_t
{
char *skindir;
unsigned int widgetcount; /* number of widgets */
unsigned int lastusedid; /* which widget id was used last */
widget **widgets; /* widget handle */
unsigned int imagecount; /* number of images */
image **images; /* image handle */
int desktopbpp; /* image format of those images */
unsigned int fontcount;
font_t **fonts;
unsigned int windowcount; /* number of windows */
window **windows;
void (*freeskin)(skin_t* skin);
void (*addwidget)(skin_t *skin, window *win, const char *desc);
void (*removewidget)(skin_t *skin, int id);
char *(*geteventname)(int event);
image *(*pngRead)(skin_t *skin, unsigned char *fname);
};
extern skin_t *loadskin(char *skindir, int desktopbpp);
// --- Widget types ---
#define tyBase 1
#define tyButton 2
#define tyHpotmeter 3
#define tyVpotmeter 4
#define tyPotmeter 5
#define tyMenu 6
#define tySlabel 7
#define tyDlabel 8
// --- Window types ---
#define wiMain 1
#define wiSub 2
#define wiMenu 3
#define wiPlaybar 4
// --- User events ------
#define evNone 0
#define evPlay 1
#define evStop 2
#define evPause 3
#define evPrev 6
#define evNext 7
#define evLoad 8
#define evEqualizer 9
#define evPlayList 10
#define evIconify 11
#define evAbout 12
#define evLoadPlay 13
#define evPreferences 14
#define evSkinBrowser 15
#define evPlaySwitchToPause 16
#define evPauseSwitchToPlay 17
#define evBackward10sec 18
#define evForward10sec 19
#define evBackward1min 20
#define evForward1min 21
#define evBackward10min 22
#define evForward10min 23
#define evNormalSize 24
#define evDoubleSize 25
#define evFullScreen 26
#define evSetMoviePosition 27
#define evSetVolume 28
#define evSetBalance 29
#define evMute 30
#define evIncVolume 31
#define evDecVolume 32
#define evIncAudioBufDelay 33
#define evDecAudioBufDelay 34
#define evIncBalance 35
#define evDecBalance 36
#define evHelp 37
#define evLoadSubtitle 38
#define evDropSubtitle 43
#define evPlayDVD 39
#define evPlayVCD 40
#define evPlayNetwork 41
#define evLoadAudioFile 42
#define evSetAspect 44
#define evSetAudio 45
#define evSetVideo 46
#define evDropFile 47
#define evPlayCD 48
#define evExit 1000
// --- General events ---
#define evFileLoaded 5000
#define evHideMouseCursor 5001
#define evMessageBox 5002
#define evGeneralTimer 5003
#define evGtkIsOk 5004
#define evShowPopUpMenu 5005
#define evHidePopUpMenu 5006
#define evSetDVDAudio 5007
#define evSetDVDSubtitle 5008
#define evSetDVDTitle 5009
#define evSetDVDChapter 5010
#define evSubtitleLoaded 5011
#define evSetVCDTrack 5012
#define evSetURL 5013
#define evFName 7000
#define evMovieTime 7001
#define evRedraw 7002
#define evHideWindow 7003
#define evShowWindow 7004
#define evFirstLoad 7005
#endif