Morphing windows

Registered by David Barth

See https://wiki.ubuntu.com/NotifyOSD#Giver

When someone offers you a file, a notification bubble appears containing “Accept” and “Decline” buttons. Instead … needs morphing windows (bug 347081)

Blueprint information

Status:
Complete
Approver:
David Barth
Priority:
Undefined
Drafter:
Matthew Paul Thomas
Direction:
Needs approval
Assignee:
Cody Russell
Definition:
Superseded
Series goal:
Proposed for karmic
Implementation:
Deferred
Milestone target:
None
Completed by
David Barth

Related branches

Sprints

Whiteboard

The agenda of the meeting is
 1. Introduce the concept of morphing windows
 2. Discuss the implementation
 3. Identify development steps and milestones for the karmic cycle

1. Introduction
 The concept originated from the notification development thread
 Morphing windows provide an alternative way to interact with the user.
 The concept is described in more details at https://wiki.ubuntu.com/NotificationDesignGuidelines#Morphing
 The concept encompasses
 morphing alert box
morphing windows
Feedback from the audience (Guadalinex) (correct me if i'm wrong)
using an ID card that is previously using notifications with actions (3 buttons)
we should refer to the Hermes project that makes heavy use of notifications (and actions)
The concept relies on raising a window, but in the background and unfocused by default (to prevent focus stealing if the window manager does not handle that already)

2. Implementation discussion
 The feature would be provided as a library
 It is not a service that the notification system should provide, nor should it be a part of libnotify (unless it becomes usefull as part of the xdg discussion)
 The implementation would provide a frame A and frame B
 Opportunity to use the gtk timeframe
 (that's gtk timeline really)
 Note: should follow up at Guadec/Akademy
 for the implementation details
 Note: the morphing window feature can apply to a top-level window

3 options (non-exclusive)
 - can extend or shrink the (toplevel) window frame
 - can (in-replace) replace a set of widgets with another one
 - can re-use the existing frame
 Adding to the design discussion
 The concept should allow for grouping a set of staked dialog windows, and instead re-use the available window frames
 Launchpad is using the same concept of morphing windows (searching for an example)
 On the resize operation, we should support resizing in both directions (vertical / horizontal)
 We may provide a smooth transition between two frames, including with the ability to fade out / fade in widgets
 (and/or frames)
 The Ajax library that provides this morhoinbg window feature should be taken as an example

ACTION:
 cody to implement a prototype that can swap to sets of widgets
 cody/dbarth to check the Ajax library features

(Thanks to Paolo Sammicheli for the summary)

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.