Notes on API wrapper pieces ... SvxZoomDialog::SvxZoomDialog( Window* pParent, const SfxItemSet& rCoreSet ) : Dialog( pParent, SVX_RES( RID_SVXDLG_ZOOM ) ), What do we do ? + lots of potential VCL/Svx/Sfx etc. top-levels ... + Create the window & the 1st member: 'FooHandle' ? + Multiply inherited ? + object from where ? + Default: + a pseudo-Dialog / wrapper ... + load using layout (etc.) + register an SID table ? + necessary ? + SIDs ? - post it ... + [ Otherwise ... hook up via a helper / constructor member ... ] * Fixed: + OKButton / CancelButton + don't chain to PushButton::Click + if there is no ClickHdl set ... [ !urgh! ...] * FIXME: other widgets ... * How do we cope ? * .... + priorities ? Layout ? + de-coupling ? + native widgets ? + hmm... + custom widgets ? + 'OKButton' ... (?) :-) + 'CancelButton' + 'HelpButton' ... + a VCL hack ... + create an 'addLayout()' method ? + [ like cl's ? ] + implement this ... ** Lifecycle ? + how do we track the 'Impl' vs. the pImpl vs. (etc.) + held by mutual references ? + pointer to the widget itself passed in ? + MI ? + when the widget dies - just NULL the listener's back-ptr ? + Locking [!?] - how / why / what / who ? + urgh ... + threading bits ... + SID table (?) ... + [ necessary ? - just use the SID name as the XML attr ? ] + LAYOUT_ID(a) -> "#a" - stringified ... ** FIXME: + we need a decent MetricField implementation + it is more than a SpinField + need to move the 'Border' property down (etc.) + re-arrange the properties to be next to the impls. in awt ... + fix the XCurrencyField (huh) needs implementing for VCLXMetricField (non-existent) ... copy the code from XCurrencyField ? make a sub-class there ?