Ostatnio zainteresowałem się ribbonem. Zainstalowałem win7 w virtual pc, skopiowałem tam gotowe sample i kolejno uruchamiałem. Fajnie by było, gdyby nie zalewała mnie krew z powodu ilości czasu potrzebnego na zainstalowanie systemu i jego uruchamianie/przywracanie stanu, lub nawet skokowe i mozolne ruchy myszy.
Wpadłem na pomysł by napisać wrappera ribbona dla XP na którym sobie siedzę. Nic prostszego, w jeden dzień napisałem dll ze wszystkimi interfejsami z uiribbon.h (sporo metod zwraca E_NOTIMPL). Drugiego dnia dodałem parsera xml (msxml3) który tworzy listę Command'ów i Tab'ów, oraz prosty handler WM_PAINT który rusuje tylko klikane zakładki i ten ładny gradient.
IUIImageFromBitmap mam kompletne, w sumie tam jest tylko jedna metoda. To samo z IUIImage.
IUIFramework po części działa. Metody Initialize, LoadUI, GetView i Destroy działają na tyle, by sample z MSDN się "uruchomiły".
LoadUI działa troszkę inaczej niż powinno. Zamiast ładować UI z zasobów lub skompilowanego xml'a, szuka pliku xml w katalogu programu i stąd odczytuje całą konfigurację.
Mam też wątek który kolejno "klika" wszystkie Command'y (odpala metodę handler->Execute).
W samplu Gallery przez kilka sekund widać jak na oknie pojawiają się kolorowe kwadraty, ale po chwili znikają, pewnie dlatego że do currentValue wstawiam przypadkowe liczby.
Odnoszę wrażenie że porwałem się z motyką na czołg, wiedząc że jestem dopiero na etapie ogarniania jak ten ribbon działa. A gdzie jeszcze mi do kompletnej implementacji grafiki i kolekcji properties.
Co myślicie o tym projekcie?
Załączam foto tego co mi już działa: http://i40.tinypic.com/21alstl.png