summaryrefslogtreecommitdiff
path: root/libopie/big-screen/IDEAS
blob: 27a4d6ef66645a22bad170b7f69d893b20cb1fac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
Now that PDAs get a VGA resolution and Opie runs on Webpads
and could be used as a Kiosk secure environment the design
decision that were right for a 320x240/240x320 doesn't necessary
to be right for bigger screens.

Remember most desktops a few years ago had only a resolution 
of 800x600.
Then also to remember is that a webpad with 640x480 is different to
a PDA with the same resolution. The PDA has a much smaller
physical display.

With higher resolution the feeling of a desktop comes.

Problems with current Opie:
    -InputMethod use full width but most of the times are not high enough
     This actually makes it harder to input and looks stupid.
    -ToolBars only feels strange on bigger screens. Maybe do it like WinCE3 does
     share the ToolBar with MenuBar if they're too big for the screen allow handles
     to either show the left or right side. Note that the handle from Qt looks 
     bad and should be patched away
    -The Escape/Close back to View does not make sense on bigger screens and desktop
     on a desktop you might even want to show multiple views and detach from the 'system'
     view
    -Modality. Dunnow how you get back to the enter dialog without modality in Qt/E fix it?
     On bigger screen this is not the problem you can move windows. But you should try
     to be less modal in the future.
     I've added a small to qpeapplication to iterate over the toplevel widgets 99% 
     ( click on the taskbar to iterate over the widgets first time nothing is changed )
     , BUT it should be avoided to use modality showMaximized(), exec()
     INSTEAD we will use a modal helper where one can register to show a dialog for uid
     type and will get a signal once the settings need to be applied, rejected or discarded.
     This way you can almost work like with exec(), do not need to care for freeing.
     Problems sometimes to have more than one dialog in memory is expensive. Allow queueing
     and reusing this widget ( only set the Record new? )
    -Viewing on bigger screens you may want to have a seperate viewer widget ( topLevel ) which
     might also get spon off from the normal operation. The (X) close go back does not make
     sense on bigger screens and feels strange
    -Sizing and Auto sizing of widgets
    
Widgets and Classes

    Toolbar/Action and Popups:
	While KParts with XMLGUI provide a fantastic technology to change the GUI
	on the fly. Parsing these GUI descriptions is not an option for PDAs
	specially not on start up.
	Instead we will need to use normal object in this case QAction and QPopupMenuss. We
	will then group these Actions into groups. Each group can have children and one
	parent. Each group has two attributes one for the menubar and one for the toolbar.
	Attributes for each might be | together. Always, Never, Auto are the attributes I 
	can think of tonite. Always will place this group always there, Never yeah never, 
	Automatic lets the later described Manager decide. Also one could or MightSpinOff
	to a group. This way a child group might get spon off if enough place is there.
	You cann add QAction and QPopupMenus to the group the Group will not take owner ship
	and you might use your QAction in other places as well.
	Toplevel groups need to be registered to the manager and this manager will depending
	on global settings place and control MenuBar and ToolBar/ToolBar.
	This allows to dynamically create toolbar on the fly

    Modality class:
	It'll be a template with a QSignal to tell about changes and a method to get to know
	which action to be applied. It has three template parameters one for the WIdget used
	and one for the type of uid and the last for the editor widget which
	at least needs to provide some methods as well.
	If you need to edit an widget you simply tell the helper about it. If present it'll
	raise the widget or either queue it or create a new editor depending on a policy
	one can set manually or get from the system.
	
    Viewing:
	We will provide a special OWidgetStack which either is a real QWidgetStack or a QList
	of toplevel widgets to be raised. One has to see how one can use it with todolist
	and datebook. specially the switching back and forth need to be handled but with possible
	no code reordering ( least intrusive )
    Viewing II:
	Example Advanced FM has a tabwidget but on a SIMpad it would make perfect sense to use a
	QSplitter or QVBox. We will provide an OSplitter which either provides the one
	or the other widget depending on the size
	
	
These small changes ( replacing Q with O + bit more) should make Opie a better environment for 
bigger screens. The additional library memory is a fair trade off and memory can be recovered
by other technics