From 230baa77e7c1eb7a9c8419fb30f839216ebb32b7 Mon Sep 17 00:00:00 2001 From: Yves Rizoud Date: Mon, 22 Jun 2009 21:30:54 +0000 Subject: [PATCH] GUI Listboxes: fixed mouse cursor display while using keyboard; Skin selector: tweaked position and made it ignore files that don't end in .PNG .GIF, or those that start with '_'; Added 2 old fonts and 2 new ones (thanks Ilkke) as files skins/_fontname.png git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@883 416bcca6-2ee7-4201-b75f-2eb2f807beb1 --- buttons.c | 31 ++++++++++++++++++++----------- engine.c | 24 ++++++++++++++++-------- skins/_classic.png | Bin 0 -> 2634 bytes skins/_fairlight.png | Bin 0 -> 2681 bytes skins/_fun.png | Bin 0 -> 2728 bytes skins/_melon.png | Bin 0 -> 2715 bytes 6 files changed, 36 insertions(+), 19 deletions(-) create mode 100644 skins/_classic.png create mode 100644 skins/_fairlight.png create mode 100644 skins/_fun.png create mode 100644 skins/_melon.png diff --git a/buttons.c b/buttons.c index ff7253cf..ec5eecd0 100644 --- a/buttons.c +++ b/buttons.c @@ -962,19 +962,28 @@ void Button_Settings(void) void Add_skin(const char *name) { char * fname; - - Add_element_to_list(name, 0); - Filelist_nb_elements++; + int namelength; // Cut the long name to keep only filename (no directory) - fname = Find_last_slash(Filelist->Full_name); - if (fname[0]=='\0') - return; - - strcpy(Filelist->Full_name, fname+1); + fname = Find_last_slash(name); + if (fname) + fname++; + else + fname=name; + namelength = strlen(fname); + if (namelength>=5 && fname[0]!='_' && (!stricmp(fname+namelength-4,".png") || !stricmp(fname+namelength-4,".gif"))) + { + Add_element_to_list(name, 0); + Filelist_nb_elements++; + + if (fname[0]=='\0') + return; - // Reformat the short name - strcpy(Filelist->Short_name,Format_filename(Filelist->Full_name, 0)); + strcpy(Filelist->Full_name, fname); + + // Reformat the short name + strcpy(Filelist->Short_name,Format_filename(Filelist->Full_name, 0)); + } } @@ -1055,7 +1064,7 @@ void Button_Skins(void) // List of skins skin_list = Window_set_list_button( // Fileselector - Window_set_special_button(9,FILESEL_Y+2,144,80), // 2 + Window_set_special_button(8,FILESEL_Y+1,144,80), // 2 // Scroller du fileselector (file_scroller = Window_set_scroller_button(160,FILESEL_Y+1,82,Filelist_nb_elements,10,selector_position)), // 3 Draw_one_skin_name); // 4 diff --git a/engine.c b/engine.c index 99bd3510..e133065c 100644 --- a/engine.c +++ b/engine.c @@ -2681,7 +2681,8 @@ short Window_clicked_button(void) list->Scroller->Position=list->List_start; Window_draw_slider(list->Scroller); } - Window_redraw_list(list);// reduce redraw? + Window_redraw_list(list); + Display_cursor(); // Store the selected value as attribute2 Window_attribute2=list->List_start + list->Cursor_position; // Return the control ID of the list. @@ -2700,7 +2701,8 @@ short Window_clicked_button(void) list->Scroller->Position=list->List_start; Window_draw_slider(list->Scroller); } - Window_redraw_list(list);// reduce redraw? + Window_redraw_list(list); + Display_cursor(); // Store the selected value as attribute2 Window_attribute2=list->List_start + list->Cursor_position; // Return the control ID of the list. @@ -2715,7 +2717,8 @@ short Window_clicked_button(void) // Mise à jour du scroller list->Scroller->Position=list->List_start; Window_draw_slider(list->Scroller); - Window_redraw_list(list);// reduce redraw? + Window_redraw_list(list); + Display_cursor(); // Store the selected value as attribute2 Window_attribute2=list->List_start + list->Cursor_position; // Return the control ID of the list. @@ -2734,7 +2737,8 @@ short Window_clicked_button(void) list->Scroller->Position=list->List_start; Window_draw_slider(list->Scroller); } - Window_redraw_list(list);// reduce redraw? + Window_redraw_list(list); + Display_cursor(); // Store the selected value as attribute2 Window_attribute2=list->List_start + list->Cursor_position; // Return the control ID of the list. @@ -2763,7 +2767,8 @@ short Window_clicked_button(void) list->Scroller->Position=list->List_start; Window_draw_slider(list->Scroller); } - Window_redraw_list(list);// reduce redraw? + Window_redraw_list(list); + Display_cursor(); // Store the selected value as attribute2 Window_attribute2=list->List_start + list->Cursor_position; // Return the control ID of the list. @@ -2788,7 +2793,8 @@ short Window_clicked_button(void) list->Scroller->Position=list->List_start; Window_draw_slider(list->Scroller); } - Window_redraw_list(list);// reduce redraw? + Window_redraw_list(list); + Display_cursor(); // Store the selected value as attribute2 Window_attribute2=list->List_start + list->Cursor_position; // Return the control ID of the list. @@ -2804,10 +2810,11 @@ short Window_clicked_button(void) list->Cursor_position-=list->List_start; // On affiche à nouveau la liste Hide_cursor(); - Window_redraw_list(list);// reduce redraw? + Window_redraw_list(list); // Mise à jour du scroller list->Scroller->Position=list->List_start; Window_draw_slider(list->Scroller); + Display_cursor(); } if (Key==KEY_MOUSEWHEELDOWN && list->List_startScroller->Nb_elements-list->Scroller->Nb_visibles) { @@ -2820,10 +2827,11 @@ short Window_clicked_button(void) list->Cursor_position-=list->List_start; // On affiche à nouveau la liste Hide_cursor(); - Window_redraw_list(list);// reduce redraw? + Window_redraw_list(list); // Mise à jour du scroller list->Scroller->Position=list->List_start; Window_draw_slider(list->Scroller); + Display_cursor(); } } diff --git a/skins/_classic.png b/skins/_classic.png new file mode 100644 index 0000000000000000000000000000000000000000..8db8d5fcef4096bf8aaf63fdfa56f602ddb2e463 GIT binary patch literal 2634 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 literal 0 HcmV?d00001 diff --git a/skins/_fun.png b/skins/_fun.png new file mode 100644 index 0000000000000000000000000000000000000000..a1e36addebfe482da2491d8d1ebcfc775cc254ca GIT binary patch literal 2728 zcmeH}`#%%<1I9lyY_4OuE0#p4Hb!*8Ft+5DIpuz9$clxzl*>kP$t5HbCqp6!QEkRi zmdGU$tw_X4qU2VHjD0(Q$M-xxJg?{VdVYG|KRxMA4g@K26>$K7)Nvx-834%d2yk%d zZ*RZsmI(k9IN7;a15hmx2>$K<(|-j1{|JzgP4mB3BWTvHG!iwC7VQ@v00`lJfiVWm zauNjq81XpX!X>6;+ASkb^)OscAb4GP6*e1+%X?gGU+JLZp(gcl(C}>F!&8#jXB)#! z=%x6!>_0M&hHu@9^nrVvOgZ7F&a2ZM>#LG=&oaD4_ny;1areK|3g1}mtB>A$TlVJJ z3V9eeL2&M)-gYvWIdD3-^0|Qj18t>ws`lA)_%qb2;WvAllo;~4dnY>-c|HJGx?;~% z=O=sOCsl!(dMVd2qK5+*>4nIc3$!X1>H$a)!{kE&Zm>|~80Ltw%<;Q+^lpYQ(*!;p z^%Rh$g_t;;O_LL7~v^FjWOjIlva}e0%W$RAY$(H0@f|cUrN&X3W;kP$!Ll5 z;`f~M&*>2VZVJV7ikd3&M}3s`<_+XymL~K+t>?~wN#g?d{?eE!Bf{FlKxV-`-g(*A z!~{vZgDU(>K+S3db=aS|rl)1bW-ogrjFLLF^p@Y-t$v$wG%h|`&68!rVc`~+-muzp zGS)kHoiElQ`BrX;;Rfu^89oABd(%T2PYOtueszPk&BrjjurvnI_YPa9NR*)^6=HlE zRC}aoBMxdDo;AgQq0IX4xk(9_>Bb9e1#Qt1xNYU+@-xzyFm4_aA~kdeawABcnZYV{ z@}6H?+sx4eFE+2xZy-%HMvcpovsyS8SrH#AA9dIE7ILHIH=$EqlJS(nTpQFJt5q^! z

ZQ^DywZ#0vgF1e3jskn@APg|&bUJ!{Yl(Z>LQ=7XMRbllKYCj&7Rl#EKJ{9Kh zNeBqYX|5W{Mw$v!bl!$${9W>p{~l{SR^bSs_f71K@K$k6LOLOUlGv?4SFGqZN@zPZ zhh{@=$Eb#PEOS=kE+%y%u+*>)gO;KwRGBc%peKiuM91o_V$G^8df=$Llp)3YhN7H9 zbFffig7D5en3_CG^pdsv;K2{!RVbXOiTK?B35MQD;HnL{KT#9#nsgF84V@F0{(!Fn zTt_o+&e3{M%Q~;};m#J2eZNrEiIy%%*ZOv+BO(U0FY(H=f&`4@fqf6sx+Bf^KJ@9_ zc)jH;Z*4!Z6Aff^=j*8W(5}?YRIM~4&U#Azj(jA`Bj?(}<8?D5B7ZLIMpbC2)=vwd z@|{xO94#Xv1}+=7^om6+Dk?M68ty6I4n8lN=;zX$yM_Q;)Z#$bU=2=WG^b5&?;pj`_>CQP@4{}qNr%*K`KqJ#P_)MIH04AGF{}XUW(SzzeyAfBP*iL%(La9 z=R2FKwqkUtrHUpqyP%)ryZ=cQ@dAY^f}Y)3tOI5IB9`O$PF-BhAM6N($^yaoxpr5D z8T9d&$W6Epe~F9h|E27%tauSM6}ZpxDa>?iJlb?JNLyV@XR|i+>^%OTDxqGkAvAv= z;jrh@&Dfc}FgSkK!XyHtrH=vRduH3X^01JS^jmBc&UV;j!0xi8^Ch3YPvco}qN=E{ z%=cM(pIZ=cnau7D_(|c=(}~QmzU{g=zuV4iCyvvxCB)}Hl`g<=z84f_;tZODp6`!a z=DZu}%Xb&85&Ftl3?!yF1!Ir477bo+m0_&5nm^%eQ4t-l)?xYLZ-!`9Wh&K z4?oo4(ug*{Q^X+x?)&t&wlJeS(V8wj-p@__xh9*fuEdsy-2?g!vjY&6WD9((J+>|&maYJMeo-o-8Bd_D vn1um(cAu9tJTzs3ir5@lC{-6K@e#nBW98H*^dcMoJsHQX9q{#*zDfTB$NYdq literal 0 HcmV?d00001 diff --git a/skins/_melon.png b/skins/_melon.png new file mode 100644 index 0000000000000000000000000000000000000000..efa4d4f0131f5c7ce1e791e6465f7e6a45c08b13 GIT binary patch literal 2715 zcmeH}`9Bl>1IORnG@GMQDrRXCa^=b=M`4*enIlJi9Q&?_oJ06JwjspaNBHzXIieLB zLJBoWA!igSM_J^aBVqgc{2kxV>xb9l^?1B~dcA&n-X>f$6&64X004x|&G5DWK=vXq zM8Nj^Rje}|02m-#ur~&vg2&@UH*Eh?|Eqr=_&=bP0?-3kIBwquj zWTHoyM)7?+Zvgo9%<(w;u)80elgTnVh&Uc^w)q+2hhMtM^qXCP~ezu5hlndP%(66XHb++4Dre4=;EiCHs9V#F(t-j6q_S_p0 z=oPw9*KYwPc)P+YS`=F<$AM8dFzrTJnMsWMuItmShJo%ryG-r?P9_f2gKh*03?L?1 z^n11kyhUlpfRlbzThUBzAOsv#m8}U7dSLIbN^_@b>*pE{I_`T;3|7ZxUC8IAL-rX4 ziM(5gfplW{3~5xllmtQB(mF#bph6w)$4cy=-bExup$vQL?wYoG7j=|^|78$jC6wuei}s)*P@KRz+ih5h@oHs3N6r!>PDk&MT9SeyhyTme$>Rs z7)U}cETQJuaVQ+qAWKLg-~lyJ7ccG5OmcTsugA7z*mbN9U=rr-BY&5|s1Sr<)M3Yn zsio_o&t!>{TcXZ2d=b?I38rL@!KBRs8;%YuaP)Uun@%FZM4f*nv#FFE+-|!^`4~5=`&fwEmf2M5!1ZD7Dp(^K`vdJ#Wq};ggRutn-$O_X@%@>^&LbM0>6!r{ zC@SrKx4qLzclrB*Dw?tH7c)zYX6%mU8o>-T=nwg*t9c^nUmVM}gGdbCTQ#sI7)w^u zmA9PA&&?BAY$iswP^Jl=m&p2KgK}B5O)juyj2UcLejQzyH-FClw3#aL(qb@9YpD6~ zA8FF)MdN*rde-4D*Bh^5OP2`jc85Ax+oYt6=S}f$gkoQ1xEFw)wt>LjUa(T7!-u9+ zNE9)j+eH}!I}w91zZ&6uYJ_lLPaI1IrlS^Pt>CaS%eWMAU*7ZdMmNI{H4ue=l;V8^?r7a0yVnnjR4JUlD7(A+=#SE!3 zPi+N}>Q3BUZpy$Ghd)VwUH-44%J>u$whl;j-0oQ$(7gA^lGU7eyk*pFvbZess{nsm zuu{)U!Y|(=3T!wpGwAF4BA7_dm3Vnx^SKPP_kXe|kIeZF@GO4<G|PQj9{abj_CVBTU=l9bEihlw)ChdA^$^{O~F(^1GU+9ej#>5gZ{MB=*HLoBz8V ztoV~77Sq8jF6NgqwAAF~~QapY^^#+cpKujg$#MdCGI6ELpIdCgeXxxFmt|9%C~EsH@uTOK5JL?1%fja1PDw`dSgfrh4}A4$kfZ~`6* zc_~=C)h<3LwTy&e#9Y^?@}MGj`gh>|VByQJoTZR8puwN+@5dX2sRwgGS__`5qk={x#p^{SqPbHyZJPs$@AMI)%7ZE sssM_6$}m7PGWy)km1YVB5fHeGN