We want to add something like this:
to the next version of ContextContacts. Me and Renaud have been working on it for a bit and today I thought I’d really get to the bottom of it. Here are my notes on how it went:
We want to activate a menu from the right-key-press on the idle screen. It has to be an app, so it can be bound to the key on S60V2.6 on. We want it to be less than full-screen. It seems that the UI framework assumes all apps It is obviously possible, as that's what the fast task-switch does. On the other hand, the fast task switching always reacts to a long press of the menu key. It might be a background process doing it's own draw and input handling, or it might be an app that just draws that bit. So it might not actually be possible to have a less-than-fullscreen app. Try to derive from CEikAppUi instead CAknAppUi -> loses skin support. CAknAppUis seem to always come with a status pane. It can be set to invisible, but that doesn't create a redraw of things behind it, so the screen is messed up. There is no single application RWindow that we could resize. We don't have the source code for the current platform. The latest UI source code is for 6.0, and it's not that complete anyway. The Series 60 application framework handbook states that the fast-swap window is 'only a sleeping popup dialog, not a full application itself'. It doesn't say how to implement one, though. There is a 'ENoScreenFurniture' flag you can pass to the AppUi's BaseConstructL(). It is of course more than adequately documented: 'Application uses no screen furniture'. According to a Google search some people are using it, but no more information is given. On discussion.epoc.C++ there's a post asking how to have an app without a statuspane and stating that ENoScreenFurniture doesn't do it. The poster later comments that they will try setting up a dummy status pane in the EIK_APP_INFO instead, but don't tell whether they succeed or not. The documentation states that layouts used for status panes are fixed on any UI variant. It's not clear whether anything else than EEikStatusPaneUseDefaults is available on S60. Hmm. According to some Forum Nokia posts, there is a R_AVKON_STATUS_PANE_LAYOUT_EMPTY. Let's try that. At least E32Frodo is using it. So it seems to do about the same as hiding the status pane: the status pane does not get drawn, but neither are things below it. So we are still basically where we started.
This is how it looks now:
Not quite optimal…