Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Vývoj Windows Sidebar Gadgets

Podobné prezentace


Prezentace na téma: "Vývoj Windows Sidebar Gadgets"— Transkript prezentace:

1 Vývoj Windows Sidebar Gadgets
Jaroslav Klíma, MFF UK

2 Vývoj Windows Sidebar Gadgets
Co jsou to Microsoft Gadgets? Sidebar gadget overview Nástroje pro vývoj Hello World Lokalizace Manifest Windows Sidebar API Instalace COM interop

3 Co jsou to Microsoft Gadgets?
Jednoduché jednoúčelové „miniaplikace“ Na desktopu, na webu, na jiném zařízení V budoucnu: Univerzální gadgety Nyní: Windows SideShow gadgets Web gadgets Windows Sidebar gadgets

4 Device gadgets Windows SideShow (přídavný display na telefonu, na dálkovém ovládání a podobně)

5 Web gadgets někdy též Live Gadgets Windows Live Spaces – Live.com

6 Desktop gadgets Windows Sidebar

7 Sidebar gadget - přehled
Postranní panel Umístění vlevo/vpravo, na konkrétní monitor Matoucí „On top of other windows“ Galerie gadgetů Inteligentní umístění gadgetů

8 Instalace gadgetů Distribuce ve formě souboru *.gadget
Jde o *.zip nebo *.cab archiv s novou koncovkou Po double kliknutí se automaticky nainstaluje Umístění souborů gadgetu C:\Program Files\Windows Sidebar\Gadgets\ nebo C:\Users\{profile}\AppData\Local\Microsoft\Windows Sidebar\Gadgets\

9 Přidání gadgetu do postranního panelu
Galerie gadgetů Systémové i uživatelské gadgety Preview image Detaily výrobce Double-click / drag & drop

10 Stavy gadgetu Docked/undocked Flyout Settings Více instancí
V postranním panelu, nebo volně Flyout Po kliknutí může gadget „expandovat“ Settings Panel nastavení gadgetu Více instancí Každá má vlastní nastavení

11 Gadget z pohledu programátora
DHTML soubor se styly a manifestem Obsah v HTML Skripty v JavaScriptu nebo VBscriptu Styly CSS Popis gadgetu v manifestu – gadget.xml Jméno, verze, autor, popis HTML soubor s obsahem gadgetu

12 Nástroje pro vývoj Notepad, PSPad... Microsoft Visual Studio + IE
Syntax highlighting IntelliSense (*) Validace (*) Debugging (*)

13 Hello world! Manifest Obsah Jméno Verze Jméno souboru s obsahem
Platorma Obsah HTML soubor

14 Lokalizace Jazyk podle jazykového balíčku OS :-/
Podadresáře v kořenovém adresáři Všechny soubory s relativní cestou se hledají v pořadí: 1) \cs-CZ\path\file.ext 2) \cs\path\file.ext 3) \en-US\path\file.ext 4) \en\path\file.ext 5) \path\file.ext

15 Manifest Povinné elementy
Kódování souboru a verze XML <?xml...?> Jméno gadgetu <name> Verze gadgetu <version> Hostitelská aplikace <host> Jméno a verze Typ a umístění souboru s obsahem Požadované oprávnění

16 Nepovinné elementy: Údaje o autorovi, www, logo <author>
<info url=“…”/> <logo src=“…”/> (48x48) </author> Copyright <copyright> Popis gadgetu <description> Ikony <icon> Náhled <defaultImage>

17 Obsah gadgetu Používáme HTML, CSS a JavaScript
Na renderování se použije Internet Explorer Rozdíly proti web stránce: Gadget API Nefunkční alert() Debugging debugger;

18 Gadget je interaktivní
Vznikají události - events Specifikujeme skripty které se pustí při vzniku událostí, například: <body onLoad=“LoadHandler()” onMouseEnter=“MouseEnterHandler()” onMouseLeave=“MouseLeaveHandler()” onClick=“ClickHandler()” >

19 Windows Sidebar API System.Debug System.Diagnostics System.Environment
Metoda outputString(string) System.Diagnostics Metoda EventLog.writeEntry(string [, type]) type 0 = Success 1 = Error 2 = Warning 3 = Information System.Environment Metoda getEnvironmentVariable(varName)

20 System.Machine Properties:
availableMemory, processorArchitecture, totalMemory Kolekce CPUs – informace o procesorech jde o kolekci, nikoliv o pole – používáme .item(i) namísto indexeru vlastnosti “name” a “usagePercentage” PowerStatus.* properties batteryCapacityRemaining batteryCapacityTotal batteryPercentRemaining batteryStatus enumBatteryStatus isBatteryCharging isPowerLineConnected Událost PowerStatus.powerLineStatusChanged

21 System.Network.Wireless
Properties: address ipv6Address primaryDNSAddress secureConnection signalStrength ssid Events: connectionChanged signalStrengthChanged

22 System.Shell Metody: chooseFile(…), chooseFolder(…) - vrací System.Shell.Item drive(driveLetter) - vrací System.ShellDrive execute(...) - jako ShellExecute z Win API itemFromPath(path) – vrací System.Shell.Item knownFolder(path) – vrací System.Shell.Folder knownFolderPath(name) – vrací System.Shell.Folder refreshDesktop() – znovu načte ikony na desktop saveFileDialog(...) – vrací string, vybranou cestu

23 metoda itemFromFileDrop(…) – podpora Drag & Drop:
System.Shell metoda itemFromFileDrop(…) – podpora Drag & Drop: <BODY ondragenter=event.returnValue = false"    ondragover=event.returnValue = false"    ondrop="fileDragDropped"> function fileDragDropped(event) { var sFile; var i=0; try while(System.Shell.itemFromFileDrop(event.dataTransfer, i).path)  {   sFile = System.Shell.itemFromFileDrop(event.dataTransfer, i).path;   i++;  } } catch(err) {} }

24 System.Shell.Folder metody: properties: copyHere(…) moveHere(…)
newFolder(…) parse(path) properties: Self – vrací System.Shell.Folder Parent – vrací string s cestou

25 System.Shell.Item metody: properties:
invokeVerb(verb) – „open“, „edit“... metadata() – např. pro obrázky rozměry, dpi... properties: isFile isFileSystem isFolder isLink link modifyDate name path SHFolder size type

26 Ostatní objekty Windows Sidebar API:
System.ContactManager System.MessageStore System.Shell.RecycleBin – event i metody System.Sound – beep() a playSound() System.Time – getLocalTime(), timeZones System.Gadget...

27 Gadget API – System.Gadget
události: onDock, onUndock onShowSettings, onSettingsClosing, onSettingsClosed visibilityChanged

28 metody: beginTransition() endTransition(transitionType, seconds)
System.Gadget.TransitionType.morph System.Gadget.TransitionType.none close()

29 properties: background – cesta k obrázku s pozadím docked - dock state (true nebo false) name – jméno gadgetu z manifestu opacity – průhlednost v procentech path – cesta k HTML s obsahem gadgetu platformVersion - verze OS settingsUI – cesta k HTML nastavení gadgetu version – verze gadgetu z manifestu visible – viditelnost gadgetu (true nebo false)

30 System.Gadget.Sidebar událost onDockSideChanged property dockSide

31 System.Gadget.Flyout události onHide a onShow properties:
file – cesta k HTML s obsahem flyoutu document – vrací objekt HTML document show – indikuje jestli je flyout zobrazen

32 System.Gadget.Settings
metody pro čtení a zápis persistentních nastavení nastavení jsou specifická pro každou instanci gadgetu write(name), writeString(name) read(name), readString(name)

33 System.Gadget.Settings.closingEvent
při ošetření události onSettingsClosing: System.Gadget.onSettingsClosing = HandleSettingsClosing; function HandleSettingsClosing(e) { ... }

34 System.Gadget.Settings.closingEvent
properties: e.closeAction System.Gadget.Settings.closeAction.commit System.Gadget.Settings.closeAction.cancel e.action - .commit nebo .cancel e.cancel – nastavíme na true nebo false e.cancellable – můžeme nastavit cancel na true?

35 Grafické objekty podobně jako v ASP.NET, existují nové objekty kterých vlastnosti můžeme nastavovat jak v skriptu, tak deklarativně nové elementy html: <g:background> = objekt gbackground <g:image> = objekt gimage objekt gText (?)

36 Grafické objekty - pozadí
<g:background> document.body.g.background – nefunguje musíme přiřadit ID a pak najít podle něj properties: attributes: src, rotation, opacity blur, brightness, softEdge left, top, height, width metody: addGlow, addShadow addImageObject, addTextObject, removeObjects move

37 Grafické objekty – obrázky
<g:image> var image = document.getElementById(id); properties: jako gbackground metody: addGlow(color, radius, alpha) addShadow(color, radius, alpha, deltaX, deltaY) addImageObject(path, offsetX, offsetY) addTextObject(text, font, size, color, offsetX, offsetY) removeObjects() – všechny objekty a efekty move(offsetX, offsetY)

38 Tipy Nastavit padding a margin u <body> na 0px
Automatický refresh var timer = window.setInterval(method, interval); Knihovna Math zaokrouhlování a podobně

39 COM interop můžeme použít zaregistrované objekty ActiveX
var axObject = new ActiveXObject(„Namespace.Class"); axObject.DoSomething()

40 Zdroje Galerie gadgetů: Windows Sidebar Reference
Windows Sidebar Reference Články pro začátečníky i pokročilé


Stáhnout ppt "Vývoj Windows Sidebar Gadgets"

Podobné prezentace


Reklamy Google