A
About screen (Settings page, Recent Project Gadgets), 222
accessibility techniques
enter key as mouse clicks, 135-137
Flyouts, 137-138
HTML, 73
keyboard access, 72-73
putting focus on gadgets after loading, 135
Settings pages, 137-138
tab controls, adding, 135
theme colors, 73
accessing information (gadget design), 51
Active Desktop feature (Windows XP), 9
initializing inside gadgets, 215
Windows Registry, reading settings via, 229-234
ad gadgets
benefits of, 82
case study, 81
Added Features check box (Settings page), Site Statistics gadgets, 199
AddFeed function, feed gadgets, 147-148
AddItem function, feed gadgets, 146
addShadow() method, 46, 304-306
Adobe AIR widgets, 25
aesthetics, user interface design, 53
buildMyContent function, Site Statistics gadgets, 205-210
getData function, 200
getHTMLAjax function, 200-201
getTextAjax function, 190, 200-203
parseData function, 190, 203-204
parseHTML function, 200
parseHTMLAjax function, 201-202
ShowFlyout function, 204-205
Site Statistics gadget
API, 188-190
displaying portions of web pages in, 190-194
XMLHTTPRequest object, 188, 192
alpha transparencies, gadget design, 71
Always On Top property, 17
animation, Silverlight World Clock Gadget, 273-274
API (Application Programming Interfaces)
Site Statistics gadgets, 187
data retrieval, 200-204
graphs, 204-210
parsing data, 190
pie charts, 204-210
pulling text data, 188-189
Windows Registry, MRU Project Gadgets, 230-231
Apollo widgets. See Adobe AIR widgets
Apple, Dashboard widgets, 23
Assert function, debugging gadgets, 164
assumptions
feed gadgets
caching data, 133
updates, 132
functionality, JavaScript errors, 130-131
Internet connections, 131
memory, 133-134
session management, 133-134
Atom feed gadgets, 91
data storage, 92
feed example, 103
audio (streaming), playing on Radio Gadget, 240
automatic updates, 289
checking for, 290
user notifications, 292-293
version checks via inserted code, 291-292
version information, posting online, 290-291
AveDesk widgets, 25
B
background images
as wallpaper, 34
gadget design, 68-69
background.png files, 35
behaviors (gadget design)
configuring gadgets, 60-61
displaying gadget statuses, 61-62
error messages, 61-62
refreshing gadgets, 61
Service Not Available information, 62-63
warnings, 61-62
blogs. See MyBlog gadget
body on load functions, feed gadgets, 104
BuildContent function, 124-125
BuildMyBlog function, feed gadgets, 111
buildMyContent function, Site Statistics gadgets, 205-210
BuildVideoObject function, YouTube Video Gadgets, 251
gadget design, 69
icons associated with button types, 163
type values list, 163
buttons parameter (MsgBox function), 165
C
CAB files
creating, 175
deploying gadgets via, 174
buying certificates, 176
signing via certificates, 178
Windows Installer, 180
caching feed gadget data, 133
case studies
ad gadgets, 81
free information gadgets, 86
gadget design information, 51-53
gadgets as side products, 83
pull models (gadget revenue models), 77
push models (gadget revenue models), 79
utility gadgets, 85
CDF (Channel Definition Format), 10
ChangeFeed() function, feed gadgets, 144-146
checkForUpdate() function, 291
click events (mouse), Silverlight World Clock Gadget, 279-280
Clock Gadget for Time, 14
Clock Gadgets, 261
designing
images, 268-269
layouts, 269-270
themes, 268-269
usability, 270
developing
animation, 273-274
existing framework integration, 271-272
handleLoad function, 277
logic, 275-280
mouse click events, 279-280
multiple locales, 278-279
SetClock function, 277-278
setting time, 276-277
SilverlightClock.XAML files, 272-273
features of, 264-265
JavaScript, 265-266
code security, JavaScript, 313
collection objects, MRU Project Gadgets, 231
color (themes), accessibility techniques, 73
Comic-Strip gadget, 319
common assumptions
feed gadgets
caching data, 133
updates, 132
functionality, JavaScript errors, 130-131
Internet connections, 131
memory, 133-134
session management, 133-134
common images, display/presentation (design patterns), 128
communities (online), gadgets, 21
comparing gadgets, 26
Comparison Gadgets (Websites), 280
configuration functions, 122
gadget behaviors, 60-61
gadget window, feed gadgets, 156-157
Settings page, feed gadgets, 155
controls, gadget design, 69
converting gadgets, 20
Counter Widget feature (Sitemeter.com website), Site Statistic gadget development, 184
country codes (localization), 302
CPU Meter Gadget, 14
CSS (Cascading Style Sheets), 32
display presentation (design patterns), 129-130
feed gadgets, data presentation in, 108
flyout.css files, 33
gadget.css files, 33
settings.css files, 33
undocked.css files, 33
customizable design patterns, 116
customizing
gadgets, 18
Windows Sidebar, 8
D
Dashboard widgets (Apple), 23
data applications, gadget development, 9
data storage, feed gadgets, 92
debugger statements, 169
debugging gadgets, 160
debugger statements, 169
Disable Script Debugging option (Internet Explorer), 168
DOM, 166-167
Systems Debugger Select window, 169
WScript, 161-163
deploying gadgets
CAB files, 174
buying certificates, 176
signing via certificates, 178
Windows Installer, 180
comparison chart, 180
installation process, 172
installation target folders, 171
packaging, 172-173
design
accessibility
adding tab controls, 135
enter key as mouse clicks, 135-137
Flyouts, 137-138
HTML, 73
keyboard access, 72-73
putting focus on gadgets after loading, 135
Settings pages, 137-138
theme colors, 73
behaviors
configuring gadgets, 60-61
displaying gadget statuses, 61-62
error messages, 61-62
refreshing gadgets, 61
Service Not Available information, 62-63
warnings, 61-62
customizable patterns, 116
directory structures, 118-119
display/presentation, 127
common images, 128
standard images, 128
Stylesheets, 129-130
extensible patterns, 117
file structures, 119
image grouping, 118
information, 50
case study, 51-53
easy access of, 51()
live data, 51
relevant to individual users, 51
showing enough for further action, 51
showing only revelant information, 54
localization, 118
maintainable patterns, 116
modular file structures, 118
PNG files, 71-72
quality, ensuring, 50
reusable functionality, 120
flyout window, 124-125
gadget window, 122-124
Settings page functions, 125-126
screen space, justifying, 49
standard file/folder layouts, 118-120
styles, 70
text, 70
transparent images, 71
usage patterns
application gadgets, 58
fun gadgets, 59
information gadgets, 57
utility gadgets, 58-59
what gadgets aren’t meant for, 60
user interfaces
aesthetics, 53
docked page dimensions, 64
flyout page dimensions, 65
guidelines for, 66
relevant information, 54
settings page dimensions, 65
simplicity, 53
standard page dimensions, 64
undocked page dimensions, 65
unobtrusiveness of, 56
visuals, 55
visual themes
background images, 68-69
buttons, 69
controls, 69
drag images, 68
icons, 67
titles, 67
Desktop (Google), 23
desktop gadgets
Adobe AIR widgets, 25
AveDesk widgets, 25
Dashboard widgets (Apple), 23
Desktop (Google), 23
DesktopX widgets, 24
KlipFolio widgets, 25
Konfabulator (Yahoo widgets), 22
Opera widgets, 26
Samurize widgets, 24
DesktopX widgets, 24
directories
feed gadget structures, 95
structures of, 118-119
Disable Script Debugging option (Internet Explorer), 168
display/presentation (design patterns), 127
images, 128
Stylesheets, 129-130
displaying
HMTL in flyouts, 193-194
web pages, Site Statistics gadgets, 190-194
docked gadgets
feed gadgets, 154-155
page dimensions, 64
YouTube Video Gadget, 258-259
Docked Views, 16
DOM (Document Object Model)
debugging gadgets, 166-167
feed gadgets, data presentation in, 109-111
Site Statistic gadgets
displaying portions of web pages in, 190-194
parsing data, 190
DOM Level 1 (Document Object Model Level 1), 36
drag images, gadget design, 68
E - F
easy access of information (gadget design), 51
effects, 302. See also graphic design
enter key as mouse clicks (accessibility techniques), 135-137
enterprise-level applications, gadgets in, 313
Enumerate Registry, MRU Project Gadgets, 231-232
error messages, gadget behaviors, 61-62
event.Action.commit property, 123
event.closeAction property, 123
extensible design patterns, 117
features, adding to gadgets, 140
adding features to, 140
advanced framework of, 141
caching data, 133
commonly used fields list, 99-100
core functionality, 104-107
data presentation, 107
CSS, 108
DOM, 109-111
data section, 103
data storage, 92
deploying, 114
framework of, 98
directory structure, 95
image files, 96
required files, 94-96
Gadget.xml manifest files, 98-99
JavaScript functions in, 112-113
Main Gadget window, 104-107
Mini Me option, 154
gadget window configuration, 156-157
Settings page configuration, 155
mouse hover functionality, 152-154
multiple feeds, 142-148
multiple pages, managing, 150-152
removing feeds from, 148-149
Settings page, 100-101
unobtrusive traversing, 152-154
updates to, 132
updating feeds, 148-150
zip files, 113-114
feed tracking, 294
FeedBurner feed tracking tool, 294
feedchanged function, feed gadgets, 102
feedchanged variable, 123
FeedURL, feed gadgets, 101
File System API
System.Environment, 43
System.Network, 43
System.Shell, 42-43
files
standard gadget layouts, 118-120
structures of, 119
Flash Media Player, embedding in YouTube Video Gadgets, 250-251
floating state, feed gadgets, 154-155
Floating Views, 16
flyout page dimensions (user interface design), 65
flyout windows, 18, 124-125, 130
flyout-related functions, 124
Flyout.css, 129
flyout.css files, 33
flyouts
accessibility techniques, 137-138
displaying HTML in, 193-194
folders, standard gadget layouts, 118-120
free information gadgets, 85
benefits of, 87
case study, 86
functionality
JavaScript errors, 130-131
resuable functionality, 120
flyout window, 124-125
gadget window, 122-124
Settings page functions, 125-126
G
Gadget Object Model, 35, 38-39
gadget development, 9
Sidebar Events API, 41
System.Contact API, 45
System.debug API, 45
System.Diagnostic.EventLog API, 45
System.Environment API, 43-44
System.Gadget API, 40
System.Gadget.Settings API, 40-42
System.Machine API, 44
System.MessageStore API, 45
System.Network API, 43
System.Shell API, 42-43
Gadget Picker window, 30
gadget revenue models, 75
ad gadgets
benefits of, 82
case study, 81
free information gadgets, 85
benefits of, 87
case study, 86
gadgets as side products, 82
benefits of, 84
case study, 83
pull models, 76
ad gadgets, 81
benefits of, 85
case study, 77
utility gadgets, 84-85
push models, 78
case study, 79
gadgets as side products, 82-84
utility gadgets, 84-85
Gadget Setup function, 122
gadget window, 129
configuration functions, 122
feed gadgets, configuring for Mini Me gadgets, 156-157
flyout-related functions, 124
gadget specific functions, 124
settings-related functions, 123
standard functions in, 122
YouTube Video Gadget, 259-260
Gadget.css, 129
gadget.css files, 33
gadget.xml files, 30-32
Gadget.xml manifest files, MyBlog gadget, 98-99
gadgets
application gadgets, 13
classifying, 12
comparison chart, 26
competing versions of, 22
converting, 20
core functionality of, 34
customizing, 18
defining, 7
development of, 8-9
development platforms, 21
fun gadgets, 14-15
history of, 9-10
information gadgets, 12
limitations of, 15-16
malware, 37
meeting points between different gadgets, 20
purposes of, 7
spyware, 37
support for, 87-88
utility gadgets, 14
web resources, online community website, 21
GadgetUndocked.css, 129
gBackground method, 45
getData function, 200
getElementById function, feed gadgets, 109
GetFeed() function, 105, 124, 132
getHTMLAjax function, 200-201
getTextAjax function, 190, 200-203
GIF (Graphics Interchange Format) files, 71-72
gImage method, 45
gimage protocol, 304
globalization
internationalization, 299
localization, 299
country codes, 302
gadget example, 300-302
globalUpdateGadgetXML variable, 291
globalUpdateURL variable, 291
Google Desktop, 23
graphic design, 302
gimage protocol, 304
GraphicDemo.gadget, 304-306
g:background protocol, 303-306
g:image protocol, 303
g:text protocol, 303
shadow effects, 309-311
transparent PNG files, 307
GraphicDemo.gadget, 304-306
graphs, Site Statistics gadgets, 204-210
g:background protocol, 303
GraphicDemo.gadget, 304-306
removeElements method, 306
removeObjects method, 306
g:image protocol, 303
g:text protocol, 303
H
handleLoad function, Silverlight World Clock Gadget, 277
Hello World XAML files, Silvelight World Clock Gadget, 268
HideArrows function, feed gadgets, 153
HideFlyout function, 124
hosting web gadgets, 19
hover functionality (mouse), feed gadgets, 152-154
href properties, changing onclick events to, 136
HTML (Hypertext Markup Language)
accessibility techniques, 73
applications versus web pages, 37
extracting for display in flyouts, 193-194
feed gadget files, 94-95
flyout.html files, 30-32
getHTMLAjax function, 200-201
MSHTML (Microsoft HTML) component, 36-37
parseHTML function, 200
parseHTMLAjax function, Site Statistics gadgets, 201-202
reading, XHR (XMLHttpRequest) object, 295, 297
retrieving via XMLHTTPRequest objects, 192
Settings page, feed gadgets, 100-101
settings.html files, 30-32
Sidebar gadgets, 37
web pages
applications versus, 37
displaying in Site Statistics gadgets, 192
I
icons
gadget design, 67
user interface design, 55
images. See also graphic design
addShadow method, 46
background images
as wallpaper, 34
gadget design, 68-69
background.png files, 35
display/presentation (design patterns), 128
drag images, gadget design, 68
feed gadgets, 96
gBackground method, 45
GIF files, gadget design, 71-72
gImage method, 45
grouping, gadget design patterns, 118
info.gif files, 35
loading.gif files, 35
MRU Project Gadgets, 220
PNG files, gadget design, 71
Silverlight World Clock Gadget, 268-269
Site Statistic gadgets, 195-196
transparent images, gadget design, 71
user interface design, 55
wallpaper, 34
info.gif files, 35
information gadgets, 57
Site Statistics gadget
Added Features check box, 199
Counter Widget feature (Sitemeter.com website), 184
data retrieval, 200-204
design considerations, 195-197
developing, 198-204
displaying portions of web pages in, 190-194
goals of, 183
images, 195-196
integration into existing frameworks, 199
layouts, 196-197
Mini Me version, 199
site summary pages (Sitemeter.com website), 185
themes, 195-196
usability, 197
Weather Gadget, 12
Initialize function, 124
Innovate.Gadget project template (reusable frameworks), 315
Installer (Windows), deploying gadgets via CAB files, 180
installing gadgets for deployment, 172
internationlization, 299
Internet
connections, common assumptions of, 131
radio stations, 238-239
Internet Explorer, Disable Script Debugging option, 168
J - K - L
JavaScript, 34
ActiveX COM objects, initializing inside gadgets, 215
debugging gadgets, 161, 166-167
errors, gadgets
design, 62
functionality, 130-131
feed gadgets, functions in, 112-113
JSON, 105
main.Js files, 30
Settings page, feed gadgets, 101
Silverlight World Clock Gadget creation, 265-266
Site Statistic gadgets, parsing data, 190
Sitemeter.com website, Count Widget feature, 184
JavaScript Compression, 313
JavaScript Obfuscator, 313
JSON (JavaScript Object Notation), 105, 295-297
keyboards, accessibility techniques, 72-73
KlipFolio widgets, 25
Konfabulator (Yahoo widgets), 22
Layer style (Photoshop), 309
layouts
files/folders, 118-120
Radio Gadgets, 241
Silverlight World Clock Gadget, 269-270
Site Statistic gadgets, 196-197
YouTube Video Gadget, 252-253
live data, gadget design, 51
Live Gadgets, 19
LoadFeed function, feed gadgets, 146
loading gadgets, putting focus on (accessibility techniques), 135
loading.gif files, 35
LoadSettings function, 101, 125
LoadXML function, 133
localization, 299
country codes, 302
gadget design patterns, 118
gadget example, 300-302
logic, Silverlight World Clock Gadget, 275-280
M
Main Gadget window, feed gadgets, 104-107
main.html files, 30-32
main.Js files, 30
maintainable design patterns, 116
malware, gadgets as, 37
mashup gadgets, creating, 281-283
media gadgets
Radio Gadget
designing, 240-242
developing, 243-248
features of, 239-240
Internet radio stations, 238-239
requirements for, 239
Windows Media Player, 244-245
YouTube Video Gadget
BuildVideoObject function, 251
designing, 251-253
developing, 255-260
embedding Flash Media Player in, 250-251
video feeds, 249-250
media player functionality, Radio Gadgets, 243-244
PlayRadio function, 247
state changes in, 245-247
memory, common assumptions, 133-134
Message function, debugging gadgets, 164
MessageDialog function, debugging gadgets, 164
MessageJS function, debugging gadgets, 162
Microsoft Feed Manager, reading online data via, 298-299
Microsoft Outlook Gadget, 13
Microsoft Popfly, creating via Sidebar gadgets
mashup gadgets, 281-283
Website Comparison Gadgets, 280
Microsoft Silverlight applications
features of, 262
origin of, 263
running, 262
Sidebar implementation, 264
Microsoft Silverlight World Clock Gadget, 261, 266
designing
images, 268-269
layouts, 269-270
themes, 268-269
usability, 270
developing, 271
animation, 273-274
existing framework integration, 271-272
handleLoad function, 277
logic, 275-280
mouse click events, 279-280
multiple locales, 278-279
SetClock function, 277-278
setting time, 276-277
SilverlightClock.XAML files, 272-273
features of, 264-265
JavaScript, 265-266
Minesweeper Gadget, 59
Mini Me option, feed gadgets, 154
gadget window configuration, 156-157
Settings page configuration, 155
Mini Me versions, Site Statistics gadgets, 199
mini web applications, gadget development, 9
modular file structures, 118
mouse
click events
enter key as (accessibility techniques), 135-137
Silverlight World Clock Gadget, 279-280
hover functionality, feed gadgets, 152-154
MRU (Most Recent Used) lists, 13
MRU (Most Recent Used) Project Gadgets, 211
ActiveX COM, 214-215
initializing inside gadgets, 215
reading Windows Registry settings, 229-234
developing
collection objects, 231
Enumerate Registry, 231-232
framework integration, 222-225
listing Windows Registry items, 225-229
reading Windows Registry, 229-235
RegRead function, 232-233
Windows Registry API, 230-231
goals of, 212
images of, 220
layout of, 220
themes of, 219
usability of, 221
Windows Power Shell, 216
MsgBox function
buttons parameter, 165
debugging gadgets, 166
prompt parameter, 165
return values of, 166
title parameter, 166
MSHTML (Microsoft HTML) component, 36-37
Multiple Views, 16
adding features to, 140
advanced framework of, 141
commonly used fields list, 99-100
core functionality, 104-107
data presentation, 107
CSS, 108
DOM, 109-111
data section, 103
deploying, 114
framework of, 98
directory structure, 95
image files, 96
required files, 94-96
Gadget.xml manifest files, 98-99
JavaScript functions in, 112-113
Main Gadget window, 104-107
Mini Me option, 154
gadget window configuration, 156-157
Settings page configuration, 155
mouse hover functionality, 152-154
multiple feeds, 142-148
multiple pages, managing, 150-152
removing feeds from, 148-149
Settings page, 100-101
unobtrusive traversing, 152-154
updating feeds, 148-150
zip files, 113-114
N
NET MRU Project Gadgets, 211
ActiveX COM, 214-215
initializing inside gadgets, 215
reading Windows Registry settings, 229-234
developing
collection objects, 231
Enumerate Registry, 231-232
framework integration, 222-225
listing Windows Registry items, 225-229
reading Windows Registry, 234-235
reading Windows Registry settings, 229-234
RegRead function, 232-233
Windows Registry API, 230-231
goals of, 212
images of, 220
layout of, 220
themes of, 219
usability of, 221
Windows Power Shell, 216
notifications, gadget updates, 292-293
O
On Load function, 122
onclick events, changing to href properties, 136
OnDock function, 122
onfocus events, 137
onfocusout events, 137
onkeydown events, 136
onkeypress events, 136
onkeyup events, 136
online data, reading
Microsoft Feed Manager, 298-299
Windows RSS platform, 298-299
XHR (XMLHttpRequest) object, 295-297
XML DOM, 297-298
online gadget communities, 21
OnMouseHover function, feed gadgets, 152
OnUndock function, 122
Opacity property, 17
Opera widgets, 26
Outlook Gadget (Microsoft), 13
P
packaging gadgets for deployment, 172
parseData function, 190, 203-204
ParseFeed function, 124
debugging gadgets, 162
feed gadgets, 150-151
parseHTML function, 200
parseHTMLAjax function, Site Statistics gadgets, 201-202
parseRSS function, feed gadgets, 109
Layer style, 309
shadow effects, 309-311
transparent PNG files, 307
Picture Slideshow Gadget, 56
pie charts, Site Statistics gadgets, 204-210
PlayRadio function, Radio Gadgets, 247
PNG (Portable Network Graphic) files
gadget design, 71
transparent files, 307
Popfly, Sidebar gadget creation via
mashup gadgets, 281-283
Website Comparison Gadgets, 280
popup function
debugging gadgets, 161
syntax of, 162-163
porting mashup gadgets, 283
power supply information, detecting, 44
PowerStatus method (System.Machine API), 44
presentation/display (design patterns), 127
images, 128
Stylesheets, 129-130
prompt parameter (MsgBox function), 165
pull models (gadget revenue models), 76
ad gadgets, 81
case study, 77
utility gadgets, 84-85
push models (gadget revenue models), 78
case study, 79
gadgets as side products, 82
benefits of, 84
case study, 83
Q - R
Question function, debugging gadgets, 164
Radio Gadget
designing
layouts, 241
themes, 240
usability, 242
developing
existing framework integration, 243
media player functionality, 243-247
volume functions, 247-248
features of, 239-240
Internet radio stations, 238-239
requirements for, 239
Windows Media Player, advanced optional parameters list, 244-245
reading online data
Microsoft Feed Manager, 298-299
Windows RSS platform, 298-299
XHR (XMLHttpRequest) object, 295-297
XML DOM, 297-298
RealPlayer, Internet radio stations, 239
Recent Documents Gadget, 13
Recent Project Gadgets, 222
Recent ProjectX Gadgets, 221
Refresh function, feed gadgets, 146
refreshing gadget behaviors, 61
RegRead function, MRU Project Gadgets, 232-233
relevant information, gadget design, 51, 54
removeElements method, g:background protocol, 306
RemoveFeed function, feed gadgets, 148-149
removeObjects method, g:background protocol, 306
removing feeds from feed gadgets, 148-149
Reset() function, feed gadgets, 144
Resize() function, 123
reusable functionality, 120
flyout window, 124-125
gadget window
configuration functions, 122
flyout-related functions, 124
gadget specific functions, 124
settings-related functions, 123
standard functions in, 122
Settings page, functions of, 125-126
reusble frameworks, 315
revenue models, 75
ad gadgets
benefits of, 82
case study, 81
free information gadgets, 85
benefits of, 87
case study, 86
gadgets as side products, 82
benefits of, 84
case study, 83
pull models, 76
ad gadgets, 81
benefits of, 85
case study, 77
utility gadgets, 84-85
push models, 78
case study, 79
gadgets as side products, 82-84
utility gadgets, 84-85
RSS (Really Simple Syndication) feed gadgets, 61, 91
data storage, 92
feed example, 103
RSS/Atom, reading, 295, 296-299
S
Samurize widgets, 24
SaveSettings function, 125-126
SaveXML function, 133-134
scripting, disabling via Disable Script Debugging option (Internet Explorer), 168
security, 312
code, 313
malware, gadgets as, 37
spyware, gadgets as, 37
User Account Control, 312
Windows Live Gallery, 312
SendPlayStateChangeEvents event, Radio Gadget media player functionality, 245
Service Not Available information (gadget behaviors), 62-63
session management, common assumptions, 133-134
SetClock function, Silverlight World Clock Gadget, 277-278
SetGlobalText function, 301
SetInterval function, feed gadgets, 132
Settings Closed function, 123
Settings page
accessibility techniques, 137-138
dimensions (user interface design), 65
feed gadgets, 100-101
adding multiple feeds, 142, 146-148
configuring for Mini Me gadgets, 155
removing feeds from, 148-149
updating feeds, 148-150
functions of, 125-126
Recent Project Gadgets, 222
Site Statistics gadgets, 199
settings window, 129
settings-related functions, 123
settings.html files, 30-32
SettingsClosing function, 126
Setup Size function, 122
shadow effects, creating in Photoshop, 309-311
shadows in images, addShadow method, 46
sharing gadgets, 320
ShellOpen function, reading Windows Registry, 234-235
shortcut keys, sidebar gadget access, 72
ShowArrows function, feed gadgets, 153
ShowFlyout function, 124
feed gadgets, 110
Site Statistics gadgets, 204-205
side products, gadgets as, 82
benefits of, 84
case study, 83
Sidebar (Windows)
customizing, 8
gadgets, functions of, 10-11
Silverlight application implementation, 264
Sidebar Events API (Gadget Object Model), 41
Sidebar gadgets, 19-20
accessibility techniques
HTML access, 73
keyboard access, 72-73
theme colors, 73
addShadow method, 46
as HTML application, 37
future of, 46
gBackground method, 45
gImage method, 45
Popfly, creating via
mashup gadgets, 281-283
Website Comparison Gadgets, 280
widget boxes, 20
Silverlight applications
features of, 262
origin of, 263
running, 262
Sidebar implementation, 264
Silverlight World Clock Gadget, 261
designing
images, 268-269
layouts, 269-270
themes, 268-269
usability, 270
developing, 271
animation, 273-274
existing framework integration, 271-272
handleLoad function, 277
logic, 275-280
mouse click events, 279-280
multiple locales, 278-279
SetClock function, 277-278
setting time, 276-277
SilverlightClock.XAML files, 272-273
features of, 264-265
JavaScript, 265-266
simplicity, user interface design, 53
Site Statistics gadget, 183
API, 187
graphs based on, 204-210
parsing data, 190
pie charts based on, 204-210
pulling text data, 188-189
designing
images, 195-196
layouts, 196-197
themes, 195-196
usability, 197
developing, 198
data retrieval, 200-204
integration into existing frameworks, 199
goals of, 183
Mini Me version, 199
Sitemeter.com website
Counter Widget feature, 184
site summary pages, 185
web pages, displaying portions of, 190-194
site summary pages (Sitemeter.com website), Site Statistic gadget development, 185
Sitemeter.com website, Site Statistics gadget development
API, 187-190
Counter Widget feature, 184
site summary pages, 185
SLQ Server, accessing, 313
Soapbox Video Gadget, gadget design case study, 51-53
sound information, detecting, 44
spyware, gadgets as, 37
standard file/folder layouts, 118-120
standard images, display/presentation (design patterns), 128
standardizing widgets, 47
startUpPage function, feed gadgets, 111
statistics
feed tracking, 294
user tracking, 294
statuses, displaying (gadget behaviors), 61-62
Stop function, debugging gadgets, 169
storing data, feed gadgets, 92
streaming audio, playing on Radio Gadget, 240
styles, gadget design, 70
Stylesheets, display/presentation (design patterns), 129-130
support for gadgets, 87-88
System Debugger Select window, debugging gadgets, 169
System.Contact API, 45
System.debug API, 45
System.Diagnostic.EventLog API, 45
System.Environment API, 43-44
System.Gadget API (Gadget Object Model), 40
System.Gadget.onSettingsClosed property, 123
System.Gadget.Settings API (Gadget Object Model), 40-42
System.Machine API, 44
System.MessageStore API, 45
System.Network API, 43
System.Shell API, 42-43
SystemSetup() function, 123
tab controls, accessibility techniques, 135
text. See also graphic design
gadget design, 70
reading, XHR (XMLHttpRequest) object, 295-297
TextBoxFeedURL, feed gadgets, 102
themes
color, 73
Radio Gadgets, 240
Silverlight World Clock Gadget, 268-269
Site Statistic gadgets, 195-196
time
information, detecting, 44
Silverlight World Clock Gadget, setting in, 276-277
title parameter (MsgBox function), 166
titles, gadget design, 67
tracking users, 294
transparent images, gadget design, 71
transparent PNG files, 307
traversing feed gadgets, 152-154
Trick-of-Mind gadget, 319
U
undocked gadgets
feed gadgets, 154-155
page dimensions, 65
YouTube Video Gadget, 258-259
undocked.css files, 33
unobtrusive traversing, feed gadgets, 152-154
updateAvailable variable, 291
UpdateFeed function, feed gadgets, 148-150
updates
automatic updates, 289
checking for, 290
posting version information online, 290-291
user notifications, 292-293
version checks via inserted code, 291-292
feed gadgets, 132
feeds in feed gadgets, 148-150
URLFeedsCurrentID variable, feed gadgets, 145
usability, designing for Site Statistic gadgets, 197
usage patterns (gadget design)
application gadgets, 58
fun gadgets, 59
information gadgets, 57
utility gadgets, 58-59
User Account Control, security, 312
user interfaces, designing
aesthetics, 53
docked page dimensions, 64
flyout page dimensions, 65
guidelines for, 66
relevant information, 54
settings page dimensions, 65
simplicity, 53
standard page dimensions, 64
undocked page dimensions, 65
unobtrusiveness of, 56
visuals, 55
user notifications, gadget updates, 292-293
user tracking, 294
benefits of, 85
case study, 85
Clock Gadget for Time, 14
CPU Meter Gadget, 14
MRU Project Gadgets, 211
ActiveX COM, 214-215
reading Windows Registry settings, 229-234
collection objects, 231
Enumerate Registry, 231-232
framework integration, 222-225
goals of, 212
images of, 220
layout of, 220
listing Windows Registry items, 225-229
reading Windows Registry, 234-235
reading Windows Registry settings, 229-234
RegRead function, 232-233
themes of, 219
usability of, 221
Windows Power Shell, 216
Windows Registry API, 230-231
WMI, 216-218
listing Windows Registry MRU items, 226-229
V
VBScript, debugging gadgets, 164-166, 169
verisign certificates, buying, 176
version checks via inserted code, 291-292
version information, posting online, 290-291
BuildVideoObject function, 251
designing
layouts, 252-253
themes, 251
usability, 253
developing
docked/undocked functionality, 258-259
existing framework integration, 255-256
gadget windows, 259-260
Flash Media Player, embedding in, 250-251
video feeds, 249-250
Visual Studio, MRU Project Gadgets, 211-213
framework integration, 222-225
goals of, 212
images of, 220
layout of, 220
themes of, 219
usability of, 221
Windows Registry
listing items, 225-229
reading, 234-235
reading settings, 229-234
visual themes (gadget design)
background images, 68-69
buttons, 69
controls, 69
drag images, 68
icons, 67
titles, 67
GIF files, 71-72
PNG files, 71
transparent images, 71
user interface design, 55
volume functions, Radio Gadgets, 247-248
W
W3C (World Wide Web Consortium), widget standardization, 47
wallpaper, 34
warnings, gadget behaviors, 61-62
web pages
displaying, Site Statistics gadgets, 190-194
HTML pages, applications versus, 37
Site Statistics gadgets, data retrieval, 200-204
web resources, sharing gadgets, 320
Website Comparison Gadgets, 280
widget boxes, 20
Widget-Box gadget, 317
widgets, standardizing, 47
Windows Cabinet (CAB) files
creating, 175
deploying gadgets, 174
buying certificates, 176
signing via certificates, 178
Windows Installer, 180
Windows Installer, deploying gadgets via CAB files, 180
Windows Live Gallery, security, 312
Windows Media Player, advanced optional parameters list, 244-245
Windows Power Shell, 216
Windows Registry
accessing
ActiveX COM, 214-215
Windows Power Shell, 216
WMI, 216-218
listing MRU items from, 225-229
reading
settings via ActiveX COM, 229-234
ShellOpen function, 234-235
Visual Studio MRU, viewing, 213
Windows Registry API, MRU Project Gadgets, 230-231
Windows RSS platform, reading online data via, 298-299
Windows Sidebar
customizing, 8
gadgets, functions of, 10-11
Windows XP, Active Desktop feature, 9
WMI (Windows Management Instrumentation), 216-218, 226-229
World Clock Gadgets, 261
designing
images, 268-269
layouts, 269-270
themes, 268-269
usability, 270
developing, 271
animation, 273-274
existing framework integration, 271-272
handleLoad function, 277
logic, 275-280
mouse click events, 279-280
multiple locales, 278-279
SetClock function, 277-278
setting time, 276-277
SilverlightClock.XAML files, 272-273
features of, 264-265
JavaScript, 265-266
WPF/E (Windows Presentation Foundation/Everywhere). See Silverlight applications, 263
WScript, debugging gadgets, 161-163
X
XAML (eXtensible Application Markup Language)
Hello World files, 268
Silverlight World Clock Gadget, 267-268, 272-276
XHR (XMLHttpRequest) object, reading online data via, 295-297
XHTML (Extensible Hypertext Markup Language), reading, 295
XML (Exentensible Markup Language)
feed gadget files, 94-95
gadget.xml files, 30-32
Gadget.xml manifest files, MyBlog gadget, 98-99
reading
XHR (XMLHttpRequest) object, 295-297
XML DOM, 297-298
XML DOM (Document Object Model), reading online data via, 297-298
XMLHTTPRequest object, 105-107, 298
XMLHTTPRequest objects
methods of, 188
properties of, 188
pulling text data, 188
retreiving HTML, 192
Y - Z
Yahoo widgets, Konfabulator, 22
YouTube Video Gadget, 249
BuildVideoObject function, 251
designing
layouts, 252-253
themes, 251
usability, 253
developing
docked/undocked functionality, 258-259
existing framework integration, 255-256
gadget windows, 259-260
Flash Media Player, embedding in, 250-251
video feeds, 249-250
zip files
deploying gadgets, 173
feed gadgets, 113-114
13.58.150.59