Page 1 of 1

Jak získat overlay ikonu

Posted: 09 Mar 2009, 09:22
by stepand76
Ahoj, v jednom rozpracovaném prohlížecím pluginu by se mi líbilo zobrazovat ikonu souboru tak jak ji zobrazuje AS (včetně overlay). Je v SDK nějaká přímá podpora pro její získání?

Posted: 09 Mar 2009, 12:24
by Jan Rysavy
Taková funkce v API Salamandera neexistuje a ani by nebylo snadné ji publikovat, protože načítání ikonek je poměrně složitý proces: napřed se načítají ikony pro položky zobrazené v panelu, potom v okolí panelu (nad panelem a pod panelem) a na závěr všechny ostatní. Pro každou z uvedených tří fází se získávají v druhém kole overlay ikony, aby se na ně nečekalo. Každý panel má vyhrazeno jedno vlákno, ve kterém toto probíhá.

Probrali jsme to s kolegou a navrhovali bychom použití SHGetFileInfo(). Měla by vracet prakticky stejné ikonky, které ukazuje Salamander v panelu. Pokud neplánujete získání ikon od desítek tisíc položek, neměl by nastat problém.

Posted: 09 Mar 2009, 13:30
by stepand76
Jan Rysavy wrote:...napřed se načítají ikony pro položky zobrazené v panelu, potom v okolí panelu (nad panelem a pod panelem) a na závěr všechny ostatní...
Nad panelem a pod panelem? To sice nechápu, ale ta funkce mi asi stačit bude. Díky.

Posted: 09 Mar 2009, 13:41
by zarevak
Nad panelem, pod panelem nikdo nesmí stát.... jinak načtu ikony.

To znamená, že se načtou ikony zobazené v panelu, pak ikony nezobrazené v panelu, ale pár položek nad aktuálním pohledem a pod aktuálním pohledem. Tím se zajistí, že malý posun seznamu v panelu (scrollování) zobrazí načtené ikony, přestože nejsou všechny ikony načtené.

Jedna z drobných vychytávek, kvůli které Salamandera milujeme :oops:

Posted: 09 Mar 2009, 13:51
by stepand76
zarevak wrote:Nad panelem, pod panelem nikdo nesmí stát.... jinak načtu ikony.

To znamená, že se načtou ikony zobazené v panelu, pak ikony nezobrazené v panelu, ale pár položek nad aktuálním pohledem a pod aktuálním pohledem. Tím se zajistí, že malý posun seznamu v panelu (scrollování) zobrazí načtené ikony, přestože nejsou všechny ikony načtené.

Jedna z drobných vychytávek, kvůli které Salamandera milujeme :oops:
Aha, půvopdně jsem to chápal jinak a to mi nedávalo smysl. Díky.

BTW: Ta říkanka mě taky napadla :-)