diff Gui/win32/skinload.h @ 18914:d450ec82ae57

Initial win32 gui release.
author vayne
date Thu, 06 Jul 2006 02:07:03 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Gui/win32/skinload.h	Thu Jul 06 02:07:03 2006 +0000
@@ -0,0 +1,213 @@
+/*
+  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