summaryrefslogtreecommitdiff
path: root/toolkit/doc/layout/notes.txt
blob: ebe5c55572a188232a1119dd651e64059b6cf0d0 (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
# *************************************************************
#  
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#  
#    http://www.apache.org/licenses/LICENSE-2.0
#  
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.
#  
# *************************************************************
--- How layout / hierarchy should work ---

On-screen:

+-------------------+
| Label:   [Entry]  |
| - - - - - - - - - |                  |
|             [ Ok ]|
+-------------------+

AWT Window hierarcy:
	Window
		+ Label
		+ Entry
		+ Ok

	ie. unchanged, and backwards compatible - a flat
representation.

Toolkit Hierachy

	WindowContainer [Bin?]
		+ Vbox
			+ HBox
				+ Label
				+ Entry
		+ Alignment
			+ Ok

	the layout process would happen inside the toolkit code
(perhaps eventually genericisd itself), and the result from the
(re-)layout process would be a set of SetPosition/SetSize calls made
to VCL.

--- code pointers ---

** AWT interfaces:
    + offapi/com/sun/star/awt/* - eg. XButton.idl
	+ 'XLayoutConstrains.idl' [ published & mis-named ! ]

    + We can build 'Layout' into the AWT at the toolkit level
	+ this should be fairly easy, and wouldn't touch VCL much.

** Toolkit (awt) implementation:
    + toolkit/source/awt/vclxwindows.cxx:
	+ much of the implementation lurks in here ...
    + The size information is in 'vclxwindows.cxx' ...

    + toolkit/source/helper/unowrapper.cxx
	+ factories / code to associate UNO peers with VCL windows
	+ pWindow->

--- Tests ---

Integration tests:
    cf. http://www.openoffice.org/issues/show_bug.cgi?id=78747


--- more thoughts ---

** Extra Design constraints: [!?]
	+ accessibility
	+ QA test-tool-age ... - tests ~will need re-write (unfortunately)

* New functionality we would like:
	+ ShowAll (vs. Show/Hide) && HideAll ...

Necessary to re- build && deliver svtools/ having delivered toolkit ...
    rm unxlngi6.pro/slo/textwindowaccessibility.* # first ...

** Layout containers:
    + XIndexAccess ? - sorted container (?)

* Consider 'XLayoutRoot' top-level ...
    + inherit from XNameContainer - widgets by name / id ...
    + hack a VCL dialog ?
	+ we need a handle we can pass back of some form:
	+ XWindowPeer getPeer() ... [ can use that I guess ? ]
    + also need a service interface ?
	+ or parameters passed as Anys ? [ugh]

* Decided
    + use 'layout' by itself & small patches
      to toolkit/ in ooo-build.

* TODO:
    + need a 'queueResize' method ...
	+ trigger on show/hide ...
    + allocateSize should take an awt::Rectangle ...
    + impl. XLayoutRoot
    + special cases:
        + radio-button-group
	+ notebook

* svx/source/dialog/zoom*

Michael's Todo:
    + handle MetricField: 'unit' enum etc. - introspection ? or ...
    + make OK/Cancel buttons function as they should ...
    + merge layout-svtools.diff into CWS as last step before inclusion ...
    + FixedLine:
	+ get sizing right ...
	+ hook up new virtual methods into toolkit/ (m225) - i#80754
	+ copy the crud from toolkit's custom vclxwindows.cxx
	  "calcMinimumSize" logic ...
    + get ok/help/cancel buttons working ...

    + fix / rationalise property adding in toolkit ...
	+ simplify it with the new VCLWindow base :-)
	+ simplify it ...
	    + spreadsheet ...
	+ VCLXImageConsumer - can't be instantiated itself
             anyway ! -> bin the 'true' & just add all these
	     props unconditionally ...	

    + switch construction attributes into their own xmlns to
      avoid treading on other properties ...