[vlc-devel] [PATCH] UI: add iconizable menus

Francois Cartegnie fcvlcdev at free.fr
Tue Jun 23 13:21:06 CEST 2009


---
 modules/gui/qt4/Modules.am                     |    2 +
 modules/gui/qt4/menus.cpp                      |    9 ++-
 modules/gui/qt4/pixmaps/menus/ratio_11.png     |  Bin 0 -> 258 bytes
 modules/gui/qt4/pixmaps/menus/ratio_1610.png   |  Bin 0 -> 251 bytes
 modules/gui/qt4/pixmaps/menus/ratio_169.png    |  Bin 0 -> 256 bytes
 modules/gui/qt4/pixmaps/menus/ratio_2211.png   |  Bin 0 -> 232 bytes
 modules/gui/qt4/pixmaps/menus/ratio_43.png     |  Bin 0 -> 251 bytes
 modules/gui/qt4/pixmaps/menus/ratio_54.png     |  Bin 0 -> 251 bytes
 modules/gui/qt4/pixmaps/menus/size_1.png       |  Bin 0 -> 217 bytes
 modules/gui/qt4/pixmaps/menus/size_double.png  |  Bin 0 -> 558 bytes
 modules/gui/qt4/pixmaps/menus/size_half.png    |  Bin 0 -> 618 bytes
 modules/gui/qt4/pixmaps/menus/size_quarter.png |  Bin 0 -> 709 bytes
 modules/gui/qt4/qt4_ui_resources_provider.cpp  |  129 ++++++++++++++++++++++++
 modules/gui/qt4/qt4_ui_resources_provider.hpp  |   33 ++++++
 modules/gui/qt4/vlc.qrc                        |   14 +++
 15 files changed, 186 insertions(+), 1 deletions(-)
 create mode 100644 modules/gui/qt4/pixmaps/menus/ratio_11.png
 create mode 100644 modules/gui/qt4/pixmaps/menus/ratio_1610.png
 create mode 100644 modules/gui/qt4/pixmaps/menus/ratio_169.png
 create mode 100644 modules/gui/qt4/pixmaps/menus/ratio_2211.png
 create mode 100644 modules/gui/qt4/pixmaps/menus/ratio_43.png
 create mode 100644 modules/gui/qt4/pixmaps/menus/ratio_54.png
 create mode 100644 modules/gui/qt4/pixmaps/menus/size_1.png
 create mode 100644 modules/gui/qt4/pixmaps/menus/size_double.png
 create mode 100644 modules/gui/qt4/pixmaps/menus/size_half.png
 create mode 100644 modules/gui/qt4/pixmaps/menus/size_quarter.png
 create mode 100644 modules/gui/qt4/qt4_ui_resources_provider.cpp
 create mode 100644 modules/gui/qt4/qt4_ui_resources_provider.hpp

diff --git a/modules/gui/qt4/Modules.am b/modules/gui/qt4/Modules.am
index a863447..a98d411 100644
--- a/modules/gui/qt4/Modules.am
+++ b/modules/gui/qt4/Modules.am
@@ -197,6 +197,7 @@ SOURCES_qt4 = 	qt4.cpp \
 		actions_manager.cpp \
 		recents.cpp \
 		variables.cpp \
+        qt4_ui_resources_provider.cpp \
 		dialogs/playlist.cpp \
 		dialogs/bookmarks.cpp \
 		dialogs/preferences.cpp \
@@ -244,6 +245,7 @@ noinst_HEADERS = \
 	actions_manager.hpp \
 	recents.hpp \
 	variables.hpp \
+    qt4_ui_resources_provider.hpp \
 	dialogs/playlist.hpp \
 	dialogs/bookmarks.hpp \
 	dialogs/mediainfo.hpp \
diff --git a/modules/gui/qt4/menus.cpp b/modules/gui/qt4/menus.cpp
index b5713e4..dffc6e4 100644
--- a/modules/gui/qt4/menus.cpp
+++ b/modules/gui/qt4/menus.cpp
@@ -41,6 +41,7 @@
 #include "input_manager.hpp"     /* Input Management */
 #include "recents.hpp"           /* Recent Items */
 #include "actions_manager.hpp"
+#include "qt4_ui_resources_provider.hpp"
 
 #include <QMenu>
 #include <QMenuBar>
@@ -1272,7 +1273,7 @@ static bool CheckTitle( vlc_object_t *p_object, const char *psz_var )
 
 
 int QVLCMenu::CreateChoicesMenu( QMenu *submenu, const char *psz_var,
-        vlc_object_t *p_object, bool b_root )
+                                 vlc_object_t *p_object, bool b_root )
 {
     vlc_value_t val, val_list, text_list;
     int i_type, i;
@@ -1365,6 +1366,9 @@ int QVLCMenu::CreateChoicesMenu( QMenu *submenu, const char *psz_var,
     return submenu->isEmpty() ? VLC_EGENERIC : VLC_SUCCESS;
 }
 
+/*
+Create and connect menu actions (end leaves of submenus).
+*/
 void QVLCMenu::CreateAndConnect( QMenu *menu, const char *psz_var,
         QString text, QString help,
         int i_item_type, vlc_object_t *p_obj,
@@ -1378,6 +1382,9 @@ void QVLCMenu::CreateAndConnect( QMenu *menu, const char *psz_var,
     {
         action = new QAction( text, menu );
         menu->addAction( action );
+        QIcon *icon = UIResProvider::getIcon( psz_var, val, i_val_type );
+        if ( icon != NULL )
+            action->setIcon( *icon );
         b_new = true;
     }
 
diff --git a/modules/gui/qt4/pixmaps/menus/ratio_11.png b/modules/gui/qt4/pixmaps/menus/ratio_11.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e3fb411b75f9c49576a247625e3936bac94972d
GIT binary patch
literal 258
zcmeAS at N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p
zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQsrpT^vI!
zdf!go$a~m;ho!%Z-Q)1F+ZhXdCO2;B<~F at w!Eo5;p~*xZ<pyRI*9g1+^B)Lr>3HC?
zH2Bqg1Bobw=QcZj?{J?M;;nglVdL)pm`8p`eqA!~epko5%$d1i`Hx!(#u4s+>pJG|
xXJSapyuI__J;Mnh+qe8apmH_u+JEs1hKVt%-T4V#VL+!ac)I$ztaD0e0s!R<UYP&@

literal 0
HcmV?d00001

diff --git a/modules/gui/qt4/pixmaps/menus/ratio_1610.png b/modules/gui/qt4/pixmaps/menus/ratio_1610.png
new file mode 100644
index 0000000000000000000000000000000000000000..104b25956392c09797f51e2f48e85d62433df0af
GIT binary patch
literal 251
zcmeAS at N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p
zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQl+ST^vI!
zde2VU$kps1;BtRXQtI?u_ir8I_u06As#U^7uMgL}EP_@%VY0fK_pvRtOhoXCM(D-u
z1{vLvX=Za8 at BC$DY1k%kc8&T|^$ju~crAP1{rkC(K`Cv?aXq<@de>h&|9LI$@Twtm
q`UI=4PpeiG-IcDt`c*MZdd-}DYJBk*uJ!`mz~JfX=d#Wzp$PyYsa?JR

literal 0
HcmV?d00001

diff --git a/modules/gui/qt4/pixmaps/menus/ratio_169.png b/modules/gui/qt4/pixmaps/menus/ratio_169.png
new file mode 100644
index 0000000000000000000000000000000000000000..2f2d52fa09476983f0ebf4732a959de76312c5d1
GIT binary patch
literal 256
zcmeAS at N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p
zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQo88T^vI!
zdf#4N$lKt+!+PQ0Vub(>nb~)FcnUAyN#hV=;bLrEw4-Ih1T_wUklN4lGlExW*-Cz2
z at t3oq|H0n%u1id&&R8z-xPWO|DPO^rh=$a;)=F9a4b7W`w74HEs6939knT6D31u5J
vSr%Ljx+PM?_-PHtHRESzE>HaUpXsgN7uB4$FYSUrhcI}$`njxgN at xNA+Xq_d

literal 0
HcmV?d00001

diff --git a/modules/gui/qt4/pixmaps/menus/ratio_2211.png b/modules/gui/qt4/pixmaps/menus/ratio_2211.png
new file mode 100644
index 0000000000000000000000000000000000000000..68d4761f895eceea3b166f1623971325a874c4f8
GIT binary patch
literal 232
zcmeAS at N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p
zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQnK*T^vI!
zdf#5&$lGAR<8tx6Kqu=8$xfqS1HRxCoh+^>t|F1dMimjwg8zQ%(Po}oda^IYvQ#t(
z9Exd9?%93b_7dBj);fl1G77OXd|hL#7PPC at 6|<gkd!RGv<{rkAYq#>g`Ohj>Q7xL~
Su)P=LbOujXKbLh*2~7ZkmPy9|

literal 0
HcmV?d00001

diff --git a/modules/gui/qt4/pixmaps/menus/ratio_43.png b/modules/gui/qt4/pixmaps/menus/ratio_43.png
new file mode 100644
index 0000000000000000000000000000000000000000..d065d952b8933ebd69166b57175e0b352734ebe9
GIT binary patch
literal 251
zcmeAS at N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p
zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQl+ST^vI!
zdXxYB|8LK%+R&+VxA_o*Sc+dngoHFRb2AI0t$x_rsIT0s8F_g2he*tbu#%9F`1k0-
znKK{W`?E4LA2yX?GXMi40|Sl+1`oJ*9XP<QRGQ4l_0QPApyt5Bc{3XrbIK+D89sTi
keezpYqy9n at eFFxDo-5)WA-ru*fNo&$boFyt=akR{0KIcgPyhe`

literal 0
HcmV?d00001

diff --git a/modules/gui/qt4/pixmaps/menus/ratio_54.png b/modules/gui/qt4/pixmaps/menus/ratio_54.png
new file mode 100644
index 0000000000000000000000000000000000000000..0779c676ac64487996e800a24e13be2982e56f72
GIT binary patch
literal 251
zcmeAS at N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p
zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQl+ST^vI!
zdXxYB|8LK%+R&+VxA_o*SV`lI83{Av_s`fUb>`T&@AoIEX3u|M`rvy0vXwkO|NkW#
z1DR at SY;0`xd)N$&{{H{?- at aMGj9Fslzx__)(mx!Q)am^BfBeM313&&Vn;rfC->^u)
oq at nj~yxG1C7x847v)nukT6fgq+caBMfo@>%boFyt=akR{0EkLk(EtDd

literal 0
HcmV?d00001

diff --git a/modules/gui/qt4/pixmaps/menus/size_1.png b/modules/gui/qt4/pixmaps/menus/size_1.png
new file mode 100644
index 0000000000000000000000000000000000000000..a4e40fd469d3913af51af9784473a8dada082304
GIT binary patch
literal 217
zcmeAS at N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf<Z~8yL>2?p
zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4<ivthz5Jr|+3#$mfQrIAT^vI!
zdf!e~6lyRKU^e#&HQj&6=!2Vt&VHxsY>XN_=B6F%tS9#FJYi<4(vT at vUeM_}^?IuG
zrP3V=Ul;DFWhmKr&D{3_%YT78(E)XJzpYO(teX3obKXx85lP>rXMr{_c)I$ztaD0e
F0sxayMW_G(

literal 0
HcmV?d00001

diff --git a/modules/gui/qt4/pixmaps/menus/size_double.png b/modules/gui/qt4/pixmaps/menus/size_double.png
new file mode 100644
index 0000000000000000000000000000000000000000..402e0ee36d3a3d6d361eca8f9ef8dca108a548e0
GIT binary patch
literal 558
zcmV+}0 at 3}6P)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ at H10jo(wK~y-6#gR>K+CUUV at 3Rd7e+-T>RAPZB7|1_K|NjQZs at iU<
zNEi>`!GnXrubT=H;i&DZcRlCKd-o9l696-FjeiIc5dez-v>nIJI^AyW32zt8qaQ*D
z-2`c^ACfqk=6UWHMd2Uyabhv^Dd-1>Y?F<S`q-O{CwWy?c9Wp4>Q=f=$4V(r2$5;l
z8w&tD&&yA5Coc$st!>+<kH&7d+vhM0GiHY4IynGX05FSY->09aveW5Q>vX+%dRo>*
z#P4yYI8G>vqHpv0{AW=X<yG()JgTa!9sppuT-49cUq<~Pc!y_F;&Q29Req=d!0ox)
ztKc?<VQ at bPFdTlmTfsEVyGt1#?fbX+|AM;?n3*yu?;d7SqUM?!1xl$d)nv6=txFug
z7|i@?7{<H8n3-PU#2ADF695<6!o3QTIGM>zj>0h9E*6Wg`Cgry#vKlZ#%i at 1ODTQZ
zu_f at kgM&H<rIbk1G-v{EBc=5B`@OFV?E!#AL}s_!@kLK;Y};1)O_z>vc1^I}X~%IL
w2|`sKOP7dx1fUJTW9IBnzu$(4dH~M90KXf=jL?CbTL1t607*qoM6N<$f?yo)r~m)}

literal 0
HcmV?d00001

diff --git a/modules/gui/qt4/pixmaps/menus/size_half.png b/modules/gui/qt4/pixmaps/menus/size_half.png
new file mode 100644
index 0000000000000000000000000000000000000000..669fdf87f35c76e8764eed3981ab51f97355df04
GIT binary patch
literal 618
zcmV-w0+s!VP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ at H10q03XK~y-6&63ZK(oht}&uvRXTUwhbhBPU`1pjm(xNzqrG6 at OK
z;Oq#Q_y&CqjawF|QHGH{yTLb@)x^?jG~GaB<&OwL>9q8^Ff`1-EQ}k!<#)dCmz;Ai
z!WhH9hynn}<@b$Jsnm_dsL*xY7{f6BuJC#mh9NpT>*S5DS)c#_4iAgwc=Y2DNs^&q
z7(%U9`?w3BX__jEqAv)7e{k?v at 9IWC006|}@c<!&Tdmd|$8ngO*6R2BOuOAyMxznU
z^Sl?WFrUw9UDt0VlgZ^^FkqUejcg{9 at ixoT>6EnXJ|{`i(y}Zrd3%qE0363%*6a0)
z)oO)azj<}naU3xSg4I>Pj5s=a`u+I$*%z9o!^X*57XX0R43Q*>RrP@@Nz#=v0DvIy
zVc}t6LDO`&=@Zw3f2;oxFq!-$XR}{h{$k;x;c!S at _oHXjG)?XGdaP~RY_(eXmd$3D
zo5AsTOucyiQfZ#Nmt<L9+`FGWj{qFUT_zHVz_Khpl}fplO7$y25L>^g at vgaNSr(s8
zr{|(5x)C4<0)ppxzg#Zcwrw-J$^ZbeEW3)LEEGj?J<p>601(C)_H(LPEIu(=mh~r-
z3A3he-{;TF_kFU{`H=r)e$F9`F(8BpjB&WDbd%Pd-+p}B4lwOeN&o-=07*qoM6N<$
Ef-W!{VgLXD

literal 0
HcmV?d00001

diff --git a/modules/gui/qt4/pixmaps/menus/size_quarter.png b/modules/gui/qt4/pixmaps/menus/size_quarter.png
new file mode 100644
index 0000000000000000000000000000000000000000..d85eeb504946ac4c0a2f2b5fc036dcac5ce02f11
GIT binary patch
literal 709
zcmV;$0y_PPP)<h;3K|Lk000e1NJLTq000mG000mO1^@s6AM^iV00004b3#c}2nYxW
zd<bNS00009a7bBm000fw000fw0YWI7cmMzZ8FWQhbW?9;ba!ELWdL_~cP?peYja~^
zaAhuUa%Y?FJQ at H10zyedK~y-6rBcmK8etT@^H&GM3_r#RW&(E6G!-;ylO|XeL>4Sf
z+PZP2gt&l>%ZX1QyugGI7QTTR7sf>U0xX+~Lz9+a1SV<XP>C~$A0J;=V=Az)=~>=$
z&&jzz6d?ru2P^<UY<a1cN~JW8<M4AtqtS>uKfj1w)wC5B03ex6)_-?<Z}a*5HP7=S
zj4{P9%+zQYV at g%ka3b;HvUYhjqyYeUo*(Y)?6gXyQn*^Jin&~Fd0e==yBjqOgI85G
zyt%n)3W6{I0HEClK at e~}9`7oOveIley|!&LE@#^|Q?J*>Y&QFDZEfvFk|gAEj|K=K
zs#2-EWEh5YyWN at 7)6+SZJ3Bj at vn-2u9EU9yi?1=p)RQFw0B{^f4h{~!T9(D0oSaC;
zwJ~>ed>8-#(CQkyv9ZxyUtj+fi^c4TEBuXMFgVO)GM%I2L!sBZ^#A}wqf7lyA3ryy
zEtQ^D{1;3$FirCXA%H~D*B3=!pJCVsUDx?(y^kYUmc{Px at 4srbTC=8UdJ2WYw?raw
z3jkmk#?02%)_X~k?iUso97R!nP9z8hgF~;^J8U!>g3sqetE;O$my1LqgZcUSdtKMP
z9LEt^mIo6F5JHsS?|(?A)16MI<DqH#$tQ+Fq5k6HqAkmE|L*RNd18Purd3sqY;SM3
z1A)M>-EPl}&$_p__d}NDf#W!Ixm*s5KJN_x07VFarRW<inM`W4vmP`qoCbstb8+z{
rR at c5qDMAQP6h#w4M$Zwua5aAb<682t=D(Qu00000NkvXXu0mjfa$+vE

literal 0
HcmV?d00001

diff --git a/modules/gui/qt4/qt4_ui_resources_provider.cpp b/modules/gui/qt4/qt4_ui_resources_provider.cpp
new file mode 100644
index 0000000..2b8de18
--- /dev/null
+++ b/modules/gui/qt4/qt4_ui_resources_provider.cpp
@@ -0,0 +1,129 @@
+/*****************************************************************************
+ * qt4_ui_resources_provider.cpp : Qt UI resources provider
+ *****************************************************************************
+ * Copyright © 2006-2009 the VideoLAN team
+ *
+ * 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 Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+#include "qt4_ui_resources_provider.hpp"
+
+/*
+    Icon <-> values directories, according to vout_Intf's values
+*/
+
+typedef struct {
+     double f_val;
+     const char * psz_icon;
+} fval_icon_directory_entry;
+
+typedef struct {
+     const char * psz_val;
+     const char * psz_icon;
+} sval_icon_directory_entry;
+
+sval_icon_directory_entry aspect_ratio_icon_directory[] = {
+    { "1:1",    "ratio_11" },
+    { "4:3",    "ratio_43" },
+    { "16:9",   "ratio_169" },
+    { "16:10",  "ratio_1610" },
+    { "221:100","ratio_2211" },
+    { "5:4",    "ratio_54" },
+    { NULL,     NULL }
+};
+
+fval_icon_directory_entry video_size_icon_directory[] = {
+    { 0.25,     "size_quarter" },
+    { 0.50,     "size_half" },
+    { 1.0,      "size_normal" },
+    { 2.0,      "size_double" },
+    { 0,     NULL }
+};
+
+#define STRING_TYPE TRUE
+#define DOUBLE_TYPE FALSE
+
+static const struct
+{
+    const char *psz_menuname;
+    char *p_directory;
+} p_menuname_lookup_table[] = {
+    { "aspect-ratio",   (char *) aspect_ratio_icon_directory },
+    { "zoom",           (char *) video_size_icon_directory },
+    { NULL,             NULL }
+};
+
+QIcon * UIResProvider::getIcon(const char * psz_menuname,
+                           vlc_value_t val, int i_val_type)
+{
+    char *p_directory=NULL;
+    bool b_type;
+    QString *name = NULL;
+    const char *iconname = NULL;
+
+    /* find the directory for our icon resource */
+    for ( int i=0; p_menuname_lookup_table[i].psz_menuname; i++) {
+        if ( !strcmp(p_menuname_lookup_table[i].psz_menuname, psz_menuname) ){
+            p_directory = p_menuname_lookup_table[i].p_directory;
+            break;
+        }
+    }
+
+    if ( !p_directory ) return NULL;
+
+    switch( i_val_type & VLC_VAR_TYPE )
+    {
+            case VLC_VAR_STRING:
+        sval_icon_directory_entry *p_my_directory;
+        p_my_directory = (sval_icon_directory_entry *) p_directory;
+        for ( int i=0; p_my_directory[i].psz_icon ; i++ )
+        {
+            if ( !strcmp( p_my_directory[i].psz_val, val.psz_string ) ){
+                iconname = p_my_directory[i].psz_icon;
+                break;
+            }
+        }
+        break;
+            case VLC_VAR_INTEGER:
+            case VLC_VAR_FLOAT:
+        fval_icon_directory_entry *p_my_float_directory;
+        p_my_float_directory = (fval_icon_directory_entry *) p_directory;
+        for ( int i=0; p_my_float_directory[i].psz_icon ; i++ )
+        {
+            if ( p_my_float_directory[i].f_val == val.f_float ){
+                iconname = p_my_float_directory[i].psz_icon;
+                break;
+            }
+        }
+        break;
+            case VLC_VAR_VOID:
+            case VLC_VAR_BOOL:
+            case VLC_VAR_VARIABLE:
+            default:
+        /* Variable doesn't exist or isn't handled */
+        break;
+    }
+
+
+    if ( iconname ) {
+            name = new QString( ":/menuicons/" );
+            name->append( psz_menuname );
+            name->append( "/" );
+            name->append( iconname );
+            QIcon *icon = new QIcon(*name);
+            delete name;
+            return icon;
+    }
+    return NULL;
+}
diff --git a/modules/gui/qt4/qt4_ui_resources_provider.hpp b/modules/gui/qt4/qt4_ui_resources_provider.hpp
new file mode 100644
index 0000000..ee8d049
--- /dev/null
+++ b/modules/gui/qt4/qt4_ui_resources_provider.hpp
@@ -0,0 +1,33 @@
+/*****************************************************************************
+ * qt4_ui_resources_provider.hpp : Qt UI resources provider
+ *****************************************************************************
+ * Copyright © 2006-2009 the VideoLAN team
+ *
+ * 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 Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+#ifndef QT4_UI_RESOURCES_PROVIDER_HPP
+#define QT4_UI_RESOURCES_PROVIDER_HPP
+
+#include <QMenu>
+#include <vlc_common.h>
+
+class UIResProvider
+{
+public:    
+    static QIcon * getIcon(const char * psz_menuname,
+                           vlc_value_t val, int i_val_type);
+};
+
+#endif // QT4_UI_RESOURCES_PROVIDER_HPP
diff --git a/modules/gui/qt4/vlc.qrc b/modules/gui/qt4/vlc.qrc
index bfb9b37..f1e9cb0 100644
--- a/modules/gui/qt4/vlc.qrc
+++ b/modules/gui/qt4/vlc.qrc
@@ -108,4 +108,18 @@
         <file alias="sout" >pixmaps/prefs/advprefs_sout.png</file>
         <file alias="video" >pixmaps/prefs/advprefs_video.png</file>
     </qresource>
+    <qresource prefix="/menuicons/aspect-ratio" >
+        <file alias="ratio_11" >pixmaps/menus/ratio_11.png</file>
+        <file alias="ratio_43" >pixmaps/menus/ratio_43.png</file>
+        <file alias="ratio_54" >pixmaps/menus/ratio_54.png</file>
+        <file alias="ratio_169" >pixmaps/menus/ratio_169.png</file>
+        <file alias="ratio_1610" >pixmaps/menus/ratio_1610.png</file>
+        <file alias="ratio_2211" >pixmaps/menus/ratio_2211.png</file>
+    </qresource>
+    <qresource prefix="/menuicons/zoom" >
+        <file alias="size_normal" >pixmaps/menus/size_1.png</file>
+        <file alias="size_double" >pixmaps/menus/size_double.png</file>
+        <file alias="size_quarter" >pixmaps/menus/size_quarter.png</file>
+        <file alias="size_half" >pixmaps/menus/size_half.png</file>
+    </qresource>
 </RCC>
-- 
1.6.2.4




More information about the vlc-devel mailing list