| # ************************************************************* |
| # |
| # 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 ... |