* KOOo::Part

 component built aroung KOOo::OfficeWidget

 configuration (cuckooopartui.ini UNO .ini file; KConfig cuckooorc)

 ui-merging (cuckooopartui.rc)

 persistence (loading only)

 whats that QConSpec = "pipe,name=%1_cuckooo-OOo_pipe"? cf. initOffice.

* KOOo::Factory

* KOOo::OfficeWidget 

** helpers for string conversions

** paintEvent

 only splash screen painting

** initOffice, serviceManager

 see p 75, example code on p 77 (in pdf version of the developer's guide)
 
 example in devguide doesn't use inifile (thus requires some env variables set)
 for settings in that inifile read
 http://udk.openoffice.org/common/man/concept/uno_default_bootstrapping.html

 cuckooo code has existing error handling

 pipe vs. socket: p 79, the example can't use a pipe (not available with java binding)

 TODO: read the sections about what's deprecated

** createFrame

 creates Frame, attaches it to this window (winId() being a method of QWidget):

 anyParent <<= winId() and
 rChildFactory->createSystemChild(anyParent, seqProcessId, 
				  lang::SystemDependent::SYSTEM_XWINDOW)

 on frames:
 http://api.openoffice.org/docs/DevelopersGuide/OfficeDev/OfficeDev.htm

 especially the example in 6.1.4

 "there are two ways to obtain it"
  -> the first way is deprecated since 643 (says devguide)

** loadDocument

 tries to reuse m_frame or createFrame

 loads the doc from url, readonly

 XComponentLoader, devguide 6.1.5

 hideOfficeControls()

** hideOfficeControls

 hides menu bar, common task bar, inetbar, macrobar, navigationbar,
 objectbar, optionbar, statusbar, toolbar

 this is where it needs sfx2 headers (for SIDs)

** dispatchUrl

 gets an XDispatch for the frame

 what's the URLTransformer for?

 uses that to dispatch urls (think verbs)

** getUniqueFrameName

 kooo-frame-<basename><number>

 loops through all frames to eliminate all used <number>s

 unique name is needed for the componentLoader to load the document in
 the correct frame
 BETTER: don't use ComponentLoader, it's possible to load with a
 Reference<XFrame>, so names don't have to be unique.

* Don't forget to test this:

** run OOo app, then open use component

** run component, then OOo app (does the app appear?)

** view file in component, keep open, then open in OOo app (does it
   create a new editable frame)

** press Ctrl-Q or Ctrl-W when the control has focus
