changeset 36920:40ad45360c8a

Replace old item 'potmeter' by new item 'pimage'. Recent versions of the X11/GTK GUI didn't allow to control a potmeter, because that didn't seem to make any sense. In order to get rid of the confusing potmeter that doesn't distinguish from a hpotmeter and in order to allow the more useful behaviour recent versions of the X11/GTK GUI have been utilized (and because we're still supporting item 'potmeter' for reasons of compatibility with old skins), introduce new item 'pimage' that reuses most of the current potmeter code. Additionally, remove remaining code and documentation of 'potmeter'.
author ib
date Mon, 17 Mar 2014 12:29:46 +0000
parents 5c297b4d616d
children 974ee5f5bf44
files Changelog DOCS/xml/cs/skin.xml DOCS/xml/de/skin.xml DOCS/xml/en/skin.xml DOCS/xml/es/skin.xml DOCS/xml/fr/skin.xml DOCS/xml/hu/skin.xml DOCS/xml/pl/skin.xml DOCS/xml/ru/skin.xml gui/app/app.h gui/app/gui.h gui/skin/skin.c gui/ui/main.c gui/ui/playbar.c gui/ui/render.c gui/win32/gui.c gui/win32/skinload.c gui/win32/skinload.h gui/win32/widgetrender.c
diffstat 19 files changed, 76 insertions(+), 142 deletions(-) [+]
line wrap: on
line diff
--- a/Changelog	Sun Mar 16 13:30:18 2014 +0000
+++ b/Changelog	Mon Mar 17 12:29:46 2014 +0000
@@ -40,6 +40,7 @@
     * Console message with information on deprecated (but still supported)
       entries in the skin configuration file
     * New symbol character (r) and new dynamic label variables ($D, $U, $P)
+    * New item: pimage
 
   1.1: "We gave up on 1.0"
 
--- a/DOCS/xml/cs/skin.xml	Sun Mar 16 13:30:18 2014 +0000
+++ b/DOCS/xml/cs/skin.xml	Mon Mar 17 12:29:46 2014 +0000
@@ -99,8 +99,7 @@
   A <emphasis role="bold">potenciometr</emphasis> (hlavně používaný pro
   lištu převíjení a ovládání hlasitosti/stereováhy) může mít libovolný počet
   fází dělících jeho obraz na jednotlivé části pod sebou. Detaily viz
-  <link linkend="skin-hpotmeter">hpotenciometr</link> a
-  <link linkend="skin-potmeter">potenciometr</link>.
+  <link linkend="skin-hpotmeter">hpotenciometr</link>.
   </para>
 
   <para>
@@ -463,19 +462,6 @@
 
 <varlistentry>
   <term><literal>
-  <anchor id="skin-potmeter"/>potmeter = fáze, počet_fází, výchozí, X, Y, šířka, výška, zpráva
-  </literal></term>
-  <listitem><para>
-  <literal>hpotmeter</literal> bez tlačítka. (soudil bych, že byl míněn jako
-  otočný, ale reaguje pouze na horizontální tažení.) Popis parametrů je stejný
-  jako v <link linkend="skin-hpotmeter">hpotmeter</link>.
-  <literal>fáze</literal> mohou být <literal>NULL</literal>, ale je to vcelku
-  k ničemu, jelikož nemůžete vidět, jak je nastaven <literal>potmeter</literal>.
-  </para></listitem>
-</varlistentry>
-
-<varlistentry>
-  <term><literal>
   <anchor id="skin-font"/>font = soubor_fontu, id_fontu
   </literal></term>
   <listitem><para>
--- a/DOCS/xml/de/skin.xml	Sun Mar 16 13:30:18 2014 +0000
+++ b/DOCS/xml/de/skin.xml	Mon Mar 17 12:29:46 2014 +0000
@@ -99,8 +99,7 @@
               die Suchleiste und die Lautstärke-/Balance-Regler) kann durch die Aufteilung
               der Grafik in verschiedene untereinander liegende Teile
               eine beliebige Anzahl von Phasen haben. Siehe
-              <link linkend="skin-hpotmeter">hpotmeter</link> und
-              <link linkend="skin-potmeter">potmeter</link> für Details.
+              <link linkend="skin-hpotmeter">hpotmeter</link> für Details.
             </para>
             <para>
               <emphasis role="bold">Labels</emphasis> sind ein wenig speziell: Die Buchstaben und Zeichen,
@@ -527,19 +526,29 @@
         <varlistentry>
           <term>
             <literal>
-              <anchor id="skin-potmeter"/>potmeter = phases, numphases, default, X, Y, width, height, message
+              <anchor id="skin-pimage"/>pimage = phases, numphases, default, X, Y, width, height, message
             </literal>
           </term>
           <listitem>
             <para>
-              Ein <literal>hpotmeter</literal> ohne einen Button. (ich schätze, es ist dazu
-              bestimmt, herumgedreht zu werden, reagiert aber nur auf horizontales Ziehen.)
-              Eine Beschreibung der Parameter findest du unter
-              <link linkend="skin-hpotmeter">hpotmeter</link>.
-              <literal>phases</literal> können <literal>NULL</literal> sein, dies ist aber ziemlich
-              sinnlos, da du nicht sehen kannst, wo das <literal>Potentiometer</literal> hingesetzt
-              wurde.
+              Platziere verschiedene Phasen einer Grafik an Position <literal>X,Y</literal>.
+              Dieses Element kann sehr gut zusammen mit Potentiometern
+              verwendet werden, um deren Zustand zu visualisieren.
+              <literal>phases</literal> kann <literal>NULL</literal> sein,
+              was aber ziemlich sinnlos ist, weil dann nichts angezeigt wird.
+              Eine Beschreibung der Parameter findet sich unter
+              <link linkend="skin-hpotmeter">hpotmeter</link>. Der einzige
+              Unterschied zu den Parametern dort betrifft die Nachricht:
             </para>
+            <itemizedlist>
+              <listitem>
+                <para>
+                  <literal>message</literal> - die Nachricht, auf die
+                  reagiert werden (d. h. eine Änderung von
+                  <literal>pimage</literal> bewirken) soll
+                </para>
+              </listitem>
+            </itemizedlist>
           </listitem>
         </varlistentry>
 
--- a/DOCS/xml/en/skin.xml	Sun Mar 16 13:30:18 2014 +0000
+++ b/DOCS/xml/en/skin.xml	Mon Mar 17 12:29:46 2014 +0000
@@ -47,8 +47,7 @@
   A <emphasis role="bold">potmeter</emphasis> (mainly used for the seek bar and
   volume/balance control) can have any number of phases by dividing its image
   into different parts below each other. See
-  <link linkend="skin-hpotmeter">hpotmeter</link> and
-  <link linkend="skin-potmeter">potmeter</link> for details.
+  <link linkend="skin-hpotmeter">hpotmeter</link> for details.
   </para>
 
   <para>
@@ -438,15 +437,21 @@
 
 <varlistentry>
   <term><literal>
-  <anchor id="skin-potmeter"/>potmeter = phases, numphases, default, X, Y, width, height, message
+  <anchor id="skin-pimage"/>pimage = phases, numphases, default, X, Y, width, height, message
   </literal></term>
   <listitem><para>
-  A <literal>hpotmeter</literal> without a button. (I guess it is meant to be
-  turned around, but it reacts to horizontal dragging only.) For the description
-  of the parameters see <link linkend="skin-hpotmeter">hpotmeter</link>.
-  <literal>phases</literal> can be <literal>NULL</literal>, but it is quite
-  useless, since you cannot see where the <literal>potmeter</literal> is set.
-  </para></listitem>
+  Place different phases of an image at position <literal>X,Y</literal>.
+  This element goes nicely with potentiometers to visualize their state.
+  <literal>phases</literal> can be <literal>NULL</literal>, but this is quite
+  useless, since nothing will be displayed then.
+  For a description of the parameters see
+  <link linkend="skin-hpotmeter">hpotmeter</link>. There is only a difference
+  concerning the message:</para>
+  <itemizedlist><listitem><para>
+  <literal>message</literal> - the message to be reacted on, i.e. which
+  shall cause a change of <literal>pimage</literal>.
+  </para></listitem></itemizedlist>
+  </listitem>
 </varlistentry>
 
 <varlistentry>
--- a/DOCS/xml/es/skin.xml	Sun Mar 16 13:30:18 2014 +0000
+++ b/DOCS/xml/es/skin.xml	Mon Mar 17 12:29:46 2014 +0000
@@ -103,8 +103,7 @@
   Un <emphasis role="bold">medidor</emphasis> (usado principalmente para la barra
   de búsqueda y el control de volumen/balance) puede tener cualquier número de fases
   dividiendo su imagen en diferentes partes unas debajo de otras. Vea
-  <link linkend="skin-hpotmeter">hpotmeter</link> y
-  <link linkend="skin-potmeter">potmeter</link> para detalles.
+  <link linkend="skin-hpotmeter">hpotmeter</link> para detalles.
 </para><para>
   <emphasis role="bold">Etiquetas</emphasis> son un poco especiales: Los caractere
   necesarios para pintarlas se toman de un archivo de imagen, y los caracteres en
@@ -445,19 +444,6 @@
 
 <varlistentry>
   <term><literal>
-  <anchor id="skin-potmeter"/>potmeter = fases, numfases, defecto, X, Y, ancho, alto, mensaje
-  </literal></term>
-  <listitem><para>
-Un <literal>hpotmeter</literal> sin un botón. (Creo que está hecho para hacer una especie
-de botón que gire sobre sí mismo, pero reacciona a arrastre horizontal solamente). Para la
-descripción de los parámetros vea <link linkend="skin-hpotmeter">hpotmeter</link>.
-<literal>fases</literal> puede ser <literal>NULL</literal>, pero es poco útil,
-porque no le permite ver donde está establecido el valor del <literal>potmeter</literal>.
-    </para></listitem>
-</varlistentry>
-
-<varlistentry>
-  <term><literal>
   <anchor id="skin-font"/>font = fontfile, fontid
   </literal></term>
   <listitem><para>
--- a/DOCS/xml/fr/skin.xml	Sun Mar 16 13:30:18 2014 +0000
+++ b/DOCS/xml/fr/skin.xml	Mon Mar 17 12:29:46 2014 +0000
@@ -86,8 +86,7 @@
   Un <emphasis role="bold">podomètre</emphasis> (principalement utilisé pour la
   barre d'avancement et le contrôle du volume/balance) peut posséder n'importe quel
   nombre d'états en empilant ces images, verticalement. Voir
-  <link linkend="skin-hpotmeter">hpotmeter</link> et
-  <link linkend="skin-potmeter">potmeter</link> pour plus de détails.
+  <link linkend="skin-hpotmeter">hpotmeter</link> pour plus de détails.
 </para><para>
   Les <emphasis role="bold">labels</emphasis> sont un peu particuliers : les
   caractères nécessaires pour les dessiner sont récupérés depuis un fichier image,
@@ -425,19 +424,6 @@
 
 <varlistentry>
   <term><literal>
-  <anchor id="skin-potmeter"/>potmeter = phases, numphases, default, X, Y, largeur, hauteur, message
-  </literal></term>
-  <listitem><para>
-Un <literal>hpotmeter</literal> sans bouton. (je suppose qu'il est censé tourner
-en rond, mais il réagit uniquement aux tractions horizontales.) Pour une
-description de ses paramètres lisez <link linkend="skin-hpotmeter">hpotmeter</link>.
-Ses <literal>phases</literal> peuvent être fixées à <literal>NULL</literal>, mais ce n'est
-pas vraiment utile, puisque vous ne pouvez pas voir son niveau.
-    </para></listitem>
-</varlistentry>
-
-<varlistentry>
-  <term><literal>
   <anchor id="skin-font"/>font = fontfile, fontid
   </literal></term>
   <listitem><para>
--- a/DOCS/xml/hu/skin.xml	Sun Mar 16 13:30:18 2014 +0000
+++ b/DOCS/xml/hu/skin.xml	Mon Mar 17 12:29:46 2014 +0000
@@ -48,8 +48,7 @@
   Egy <emphasis role="bold">potmeter</emphasis>nek (főként a kereső sáv és a
   hangerő/balansz állító) bármennyi fázisa lehet a képének egymás alatti
   tetszőleges feldarabolásával. Lásd a
-  <link linkend="skin-hpotmeter">hpotmeter</link>t és
-  <link linkend="skin-potmeter">potmeter</link>t a részletekért.
+  <link linkend="skin-hpotmeter">hpotmeter</link>t a részletekért.
   </para>
 
   <para>
@@ -433,19 +432,6 @@
 
 <varlistentry>
   <term><literal>
-  <anchor id="skin-potmeter"/>potmeter = phases, numphases, default, X, Y, width, height, message
-  </literal></term>
-  <listitem><para>
-  Egy <literal>hpotmeter</literal> gomb nélkül. (Gondolom a megfordítása volt az
-  eredeti cél, de csak a vízszintes vonszolásra reagál.) A paraméterek leírását
-  lásd a <link linkend="skin-hpotmeter">hpotmeter</link>-nél.
-  A <literal>phases</literal> lehet <literal>NULL</literal>, de ez eléggé haszontalan,
-  mivel akkor nem látod, hogy a <literal>potmeter</literal> hova van állítva.
-  </para></listitem>
-</varlistentry>
-
-<varlistentry>
-  <term><literal>
   <anchor id="skin-font"/>font = fontfile, fontid
   </literal></term>
   <listitem><para>
--- a/DOCS/xml/pl/skin.xml	Sun Mar 16 13:30:18 2014 +0000
+++ b/DOCS/xml/pl/skin.xml	Mon Mar 17 12:29:46 2014 +0000
@@ -91,8 +91,7 @@
   jako pasek przewijania i kontrolka głośności/balansu) może składać się z
   każdej liczby stanów poprzez podzielenie jego obrazka na wiele części, z
   których jedna jest pod drugą. Zobacz
-  <link linkend="skin-hpotmeter">hpotmeter</link> oraz
-  <link linkend="skin-potmeter">potmeter</link>, by dowiedzieć się więcej.
+  <link linkend="skin-hpotmeter">hpotmeter</link> by dowiedzieć się więcej.
 </para><para>
   <emphasis role="bold">Etykiety</emphasis> są nieco specyficzne: Znaki
   potrzebne do ich narysowania są pobierane z pliku graficznego, a znaki
@@ -433,19 +432,6 @@
 
 <varlistentry>
   <term><literal>
-  <anchor id="skin-potmeter"/>potmeter = fazy, liczba_faz, domyślny, X, Y, szerokość, wysokość, sygnał
-  </literal></term>
-  <listitem><para>
-<literal>hpotmeter</literal> bez przycisku. (domyślam się, że chodzi o to, aby
-nim kręcić, ale reaguje on tylko na poziome przesuwanie). Opis parametrów znajdziesz w części o
-<link linkend="skin-hpotmeter">hpotmeter</link>.
-Parametr <literal>fazy</literal> może mieć wartość <literal>NULL</literal>, ale
-jest to zupełnie bezużyteczne, gdyż nie widać wtedy położenia potencjometru.
-    </para></listitem>
-</varlistentry>
-
-<varlistentry>
-  <term><literal>
   <anchor id="skin-font"/>font = plik_czcionek, id_czcionki
   </literal></term>
   <listitem><para>
--- a/DOCS/xml/ru/skin.xml	Sun Mar 16 13:30:18 2014 +0000
+++ b/DOCS/xml/ru/skin.xml	Mon Mar 17 12:29:46 2014 +0000
@@ -99,8 +99,7 @@
   <emphasis role="bold">Ползунок</emphasis> (в основном используется для полосы перемещения
   и управления громкостью/балансом) может иметь любое количество положений, задаваемых делением
   его изображения на различные части одна под другой. Смотрите
-  <link linkend="skin-hpotmeter">hpotmeter</link> и
-  <link linkend="skin-potmeter">potmeter</link> для подробностей.
+  <link linkend="skin-hpotmeter">hpotmeter</link> для подробностей.
   </para>
 
   <para>
@@ -464,21 +463,6 @@
 
 <varlistentry>
   <term><literal>
-  <anchor id="skin-potmeter"/>potmeter = phases, numphases, default, X, Y, width, height, message
-  </literal></term>
-  <listitem><para>
-  <literal>hpotmeter</literal> без кнопки.
-  (Я предполагаю, что это означает повернутый вокруг,
-  но он реагирует только на перетаскивание по горизонтали.) Для описания параметров смотрите
-  <link linkend="skin-hpotmeter">hpotmeter</link>.
-  <literal>phases</literal> может быть равен <literal>NULL</literal>, но это совершенно
-  бесполезно, поскольку вы не сможете определить в каком положении
-  находится <literal>potmeter</literal>.
-  </para></listitem>
-</varlistentry>
-
-<varlistentry>
-  <term><literal>
   <anchor id="skin-font"/>font = fontfile, fontid
   </literal></term>
   <listitem><para>
--- a/gui/app/app.h	Sun Mar 16 13:30:18 2014 +0000
+++ b/gui/app/app.h	Mon Mar 17 12:29:46 2014 +0000
@@ -100,7 +100,7 @@
     itDLabel,
     itHPotmeter,
     itVPotmeter,
-    itPotmeter,
+    itPimage,
     itMenu,
     itPLMButton = 100,
     itPRMButton
--- a/gui/app/gui.h	Sun Mar 16 13:30:18 2014 +0000
+++ b/gui/app/gui.h	Mon Mar 17 12:29:46 2014 +0000
@@ -51,6 +51,6 @@
 #define hasButton(item) (item.type == itButton || item.type == itHPotmeter || item.type == itVPotmeter)
 
 /// Check whether #guiItem @a item utilizes member 'value'
-#define hasValue(item) (item.type == itHPotmeter || item.type == itVPotmeter || item.type == itPotmeter)
+#define hasValue(item) (item.type == itHPotmeter || item.type == itVPotmeter || item.type == itPimage)
 
 #endif /* MPLAYER_GUI_GUI_H */
--- a/gui/skin/skin.c	Sun Mar 16 13:30:18 2014 +0000
+++ b/gui/skin/skin.c	Mon Mar 17 12:29:46 2014 +0000
@@ -713,6 +713,8 @@
  *
  *        Syntax: potmeter=phases,numphases,default,x,y,width,height,message
  *
+ * @note THIS ITEM IS DEPRECATED.
+ *
  * @param in definition to be analyzed
  *
  * @return 0 (ok) or 1 (error)
@@ -727,13 +729,25 @@
     snprintf(param, sizeof(param), "NULL,0,0,%s", in);
 
     return item_hpotmeter(param);
-/*
+}
+
+/**
+ * @brief Parse a @a pimage definition.
+ *
+ *        Syntax: pimage=phases,numphases,default,x,y,width,height,message
+ *
+ * @param in definition to be analyzed
+ *
+ * @return 0 (ok) or 1 (error)
+ */
+static int item_pimage(char *in)
+{
     unsigned char phfname[256];
     unsigned char buf[512];
     int ph, d, x, y, w, h, message;
     guiItem *item;
 
-    if (!window_item("potmeter"))
+    if (!window_item("pimage"))
         return 1;
 
     if (in_window("video"))
@@ -760,7 +774,7 @@
     else
         skin_legacy("evSetURL", buf);
 
-    mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[skin]    potmeter image: %s %d,%d %dx%d\n", phfname, x, y, w, h);
+    mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[skin]    pimage image: %s %d,%d %dx%d\n", phfname, x, y, w, h);
     mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[skin]     numphases: %d, default: %d%%\n", ph, d);
     mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[skin]     message: %s (#%d)\n", buf, message);
 
@@ -769,7 +783,7 @@
     if (!item)
         return 1;
 
-    item->type      = itPotmeter;
+    item->type      = itPimage;
     item->x         = x;
     item->y         = y;
     item->width     = w;
@@ -791,7 +805,6 @@
     }
 
     return 0;
-*/
 }
 
 /**
@@ -1024,6 +1037,7 @@
     { "font",       item_font       },
     { "hpotmeter",  item_hpotmeter  },
     { "menu",       item_menu       },
+    { "pimage",     item_pimage     },
     { "potmeter",   item_potmeter   }, // legacy
     { "section",    item_section    },
     { "selected",   item_selected   },
--- a/gui/ui/main.c	Sun Mar 16 13:30:18 2014 +0000
+++ b/gui/ui/main.c	Mon Mar 17 12:29:46 2014 +0000
@@ -146,7 +146,6 @@
           value=0;
           switch( itemtype )
            {
-            case itPotmeter:
             case itHPotmeter:
                  btnModify( item->message,100.0 * ( X - item->x ) / item->width );
 		 uiEvent( item->message,item->value );
@@ -173,7 +172,7 @@
           if (currentselected != - 1)
            {
             item=&guiApp.mainItems[currentselected];
-            if ( ( item->type == itHPotmeter )||( item->type == itVPotmeter )||( item->type == itPotmeter ) )
+            if ( ( item->type == itHPotmeter )||( item->type == itVPotmeter ) )
              {
               item->value+=value;
               btnModify( item->message,item->value );
@@ -196,7 +195,6 @@
             case itVPotmeter:
                  item->value=100.0 - 100.0 * ( Y - item->y ) / item->height;
                  goto potihandled;
-            case itPotmeter:
             case itHPotmeter:
                  item->value=100.0 * ( X - item->x ) / item->width;
 potihandled:
--- a/gui/ui/playbar.c	Sun Mar 16 13:30:18 2014 +0000
+++ b/gui/ui/playbar.c	Mon Mar 17 12:29:46 2014 +0000
@@ -175,7 +175,6 @@
 
 	switch( itemtype )
 	 {
-	  case itPotmeter:
 	  case itHPotmeter:
 	       btnModify( item->message,100.0 * ( X - item->x ) / item->width);
 	       uiEvent( item->message,item->value );
@@ -198,7 +197,7 @@
         if (currentselected != - 1)
          {
           item=&guiApp.playbarItems[currentselected];
-          if ( ( item->type == itHPotmeter )||( item->type == itVPotmeter )||( item->type == itPotmeter ) )
+          if ( ( item->type == itHPotmeter )||( item->type == itVPotmeter ) )
            {
             item->value+=value;
             btnModify( item->message,item->value );
@@ -217,7 +216,6 @@
 	  case itVPotmeter:
 	       item->value=100.0 - 100.0 * ( Y - item->y ) / item->height;
 	       goto potihandled;
-	  case itPotmeter:
 	  case itHPotmeter:
 	       item->value=100.0 * ( X - item->x ) / item->width;
 potihandled:
--- a/gui/ui/render.c	Sun Mar 16 13:30:18 2014 +0000
+++ b/gui/ui/render.c	Mon Mar 17 12:29:46 2014 +0000
@@ -358,7 +358,7 @@
             PutImage(&item->Bitmap, item->x, item->y, 3, ofs);
             break;
 
-        case itPotmeter:
+        case itPimage:
 
             if (item->numphases == 1)
                 SimplePotmeterPutImage(&item->Bitmap, item->x, item->y, item->value / 100.0);
--- a/gui/win32/gui.c	Sun Mar 16 13:30:18 2014 +0000
+++ b/gui/win32/gui.c	Mon Mar 17 12:29:46 2014 +0000
@@ -304,10 +304,10 @@
 
     if(!hwnd) return;
 
-    /* load all potmeters hpotmeters vpotmeters */
+    /* load all hpotmeters vpotmeters pimages */
     for(i=0; i<gui->skin->widgetcount; i++)
     {
-        if(gui->skin->widgets[i]->type == tyHpotmeter || gui->skin->widgets[i]->type == tyVpotmeter || gui->skin->widgets[i]->type == tyPotmeter)
+        if(gui->skin->widgets[i]->type == tyHpotmeter || gui->skin->widgets[i]->type == tyVpotmeter || gui->skin->widgets[i]->type == tyPimage)
         {
             if(gui->skin->widgets[i]->msg == evSetVolume)
                 gui->skin->widgets[i]->value = guiInfo.Volume;
@@ -825,7 +825,7 @@
             gui->mousey = GET_Y_LPARAM(lParam);
             /* inside a widget */
             gui->activewidget = clickedinsidewidget(gui, get_windowtype(hWnd), gui->mousex, gui->mousey);
-            if(gui->activewidget)
+            if(gui->activewidget && gui->activewidget->type != tyPimage)
             {
                 gui->activewidget->pressed = 1;
                 gui->mousewx = gui->mousex - gui->activewidget->x;
@@ -942,13 +942,8 @@
                         item->y = GET_Y_LPARAM(lParam) - gui->mousewy;
                         item->value = 100.0 - 100.0 * (item->y - item->wy) / (item->wheight - item->height);
                     }
-                    if(item->type == tyPotmeter)
-                    {
-                        gui->mousewx = GET_X_LPARAM(lParam) - gui->activewidget->x;
-                        item->value = 100.0 * gui->mousewx / item->wwidth;
-                    }
 
-                    if((item->type == tyPotmeter) || (item->type == tyHpotmeter) || (item->type == tyVpotmeter))
+                    if((item->type == tyHpotmeter) || (item->type == tyVpotmeter))
                     {
                         /* Bound checks */
                         if(item->value > 100.0f)
--- a/gui/win32/skinload.c	Sun Mar 16 13:30:18 2014 +0000
+++ b/gui/win32/skinload.c	Mon Mar 17 12:29:46 2014 +0000
@@ -421,12 +421,12 @@
                 mywidget->wx, mywidget->wy, mywidget->wwidth, mywidget->wwidth,
                 mywidget->msg);
     }
-    else if(!strncmp(desc, "potmeter", 8))
+    else if(!strncmp(desc, "pimage", 6))
     {
         int base = counttonextchar(desc, '=') + 1;
         int i;
-        /* potmeter = phases, numphases, default, X, Y, width, height, message */
-        mywidget->type = tyPotmeter;
+        /* pimage = phases, numphases, default, X, Y, width, height, message */
+        mywidget->type = tyPimage;
         mywidget->bitmap[0] = pngRead(skin, findnextstring(temp, desc, &base));
         mywidget->phases = atoi(findnextstring(temp, desc, &base));
         mywidget->value = atof(findnextstring(temp, desc, &base));
@@ -447,7 +447,7 @@
                 break;
             }
         }
-        mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[SKIN] [ITEM] [POTMETER] %s %i %i %i %f %i %i msg %i\n",
+        mp_msg(MSGT_GPLAYER, MSGL_DBG2, "[SKIN] [ITEM] [PIMAGE] %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,
--- a/gui/win32/skinload.h	Sun Mar 16 13:30:18 2014 +0000
+++ b/gui/win32/skinload.h	Mon Mar 17 12:29:46 2014 +0000
@@ -117,7 +117,7 @@
 #define tyButton        2
 #define tyHpotmeter     3
 #define tyVpotmeter     4
-#define tyPotmeter      5
+#define tyPimage        5
 #define tyMenu          6
 #define tySlabel        7
 #define tyDlabel        8
--- a/gui/win32/widgetrender.c	Sun Mar 16 13:30:18 2014 +0000
+++ b/gui/win32/widgetrender.c	Mon Mar 17 12:29:46 2014 +0000
@@ -318,13 +318,13 @@
     int y;
 
     if(!dest) return;
-    if((item->type == tyButton) || (item->type == tyHpotmeter) || (item->type == tyVpotmeter) || (item->type == tyPotmeter))
+    if((item->type == tyButton) || (item->type == tyHpotmeter) || (item->type == tyVpotmeter) || (item->type == tyPimage))
         img = item->bitmap[0];
 
     if(!img) return;
 
     y = item->y;
-    if(/* item->type == tyPotmeter */ /* legacy (potmeter) */ item->type == tyHpotmeter && item->width == item->wwidth)
+    if(item->type == tyPimage || /* legacy (potmeter) */ (item->type == tyHpotmeter && item->width == item->wwidth))
     {
         height = img->height / item->phases;
         y =  height * (int)(item->value * item->phases / 100);
@@ -341,7 +341,7 @@
     if(item->type == tyButton)
         render(skin->desktopbpp, dest, find_background(skin,item), item->x, item->y, item->x, item->y, img->width, height, 1);
 
-    if((item->type == tyHpotmeter) || (item->type == tyVpotmeter) || (item->type == tyPotmeter))
+    if((item->type == tyHpotmeter) || (item->type == tyVpotmeter) || (item->type == tyPimage))
     {
         if(item->type == tyVpotmeter)
         {