[Libreoffice-commits] core.git: README.Code toolkit/README vcl/README

Michael Meeks michael.meeks at suse.com
Mon Apr 8 06:07:19 PDT 2013


 README.Code    |   67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 toolkit/README |    4 +++
 vcl/README     |    2 +
 3 files changed, 73 insertions(+)

New commits:
commit 6ec631942364a87965d0951c756073faf934cabb
Author: Michael Meeks <michael.meeks at suse.com>
Date:   Mon Apr 8 14:05:06 2013 +0100

    more code overview documentation.
    
    Change-Id: I1eb1ac2c88a906ea1a4c11194d79219c684afb76

diff --git a/README.Code b/README.Code
new file mode 100644
index 0000000..71fb3e4
--- /dev/null
+++ b/README.Code
@@ -0,0 +1,67 @@
+* A quick overview of the LibreOffice code structure.
+
+** Overview
+
+    You can develop for LibreOffice in one of two ways, one
+recommended and one much less so. First the somewhat less recommended
+way: it is possible to use the SDK, for wihch you can read the API
+docs here http://api.libreoffice.org/. This re-uses the (extremely
+generic) APIs we provide for macro scripting in StarBasic.
+
+    The best way to add a generally useful feature to LibreOffice
+is to work on the code code however. Overall this way makes it easier
+to compile and build your code, it avoids any arbitrary limitations of
+our scripting APIs, and in general is far more simple and intuitive -
+if you are a reasonably able C++ programmer.
+
+
+** The important bits of code
+
+    Each module should have a README file inside it which has some
+degree of documentation for that module; patches are most welcome to
+improve those. We have those turned into a web-page here:
+
+    http://docs.libreoffice.org/
+
+    However, there are two hundred modules, many of them of only
+peripheral interest for a specialist audience. So - where is the
+good-stuff, the code that is most useful. Here is a quick overview of
+the most important ones:
+
+    sal/      - this provides a simple System Abstraction Layer
+    tools/    - this provides basic internal types: 'Rectangle', 'Color' etc.
+    vcl/      - this is the widget toolkit library and one rendering abstraction
+    svx/      - graphics related helper code, including much of 'draw' / 'impress'
+    sfx2/     - core framework: document model / load/save / signals for actions etc.
+    framework - UNO wrappers around the core framework, responsible for building
+                toolbars, menus, status bars, and the chrome around the document
+                using widgets from VCL, and XML descriptions from */uiconfig/ files
+
+    Then applications
+
+    desktop/  - this is where the 'main' for the application lives, init / bootstrap
+                the name dates back to an ancient StarOffice that also drew a desktop
+    sw/       - writer.
+    sc/       - calc
+    sd/       - draw / impress
+
+    There are several other libraries that are helpful from a
+graphical perspective:
+
+    basebmp/      - enables a VCL compatible rendering API to render to bitmaps,
+                    as used for LibreOffice on-line, Android, iOS etc.
+    basegfx/      - algorithms and data-types for graphics as used in the canvas
+    canvas/       - new (UNO) canvas rendering model with various backends
+    cppcanvas/    - C++ helper classes for using the UNO canvas
+    drawinglayer/ - code to render and manage document drawing shapes and break
+                    them down into primitives we can render more easily.
+
+** Finding out more
+
+    Beyond this, you can read the README files, send us patches, ask
+on the mailing list libreoffice at lists.freedesktop.org (no subscription
+required) or poke people on IRC #libreoffice-dev on irc.freenode.net -
+we're a friendly and generally helpful mob. We know the code can be
+hard to get into at first, and so there are no silly questions.
+
+
diff --git a/toolkit/README b/toolkit/README
index 59f2e2f..e320108 100644
--- a/toolkit/README
+++ b/toolkit/README
@@ -5,3 +5,7 @@ or Java.
 Note that the "awt" here has no relation to the Java awt, as far as I know. It
 might be inspired by it API-wise, perhaps. (If you know differently, feel free
 to improve this REDAME file.)
+
+Note that toolkit/ is itself not really a toolkit, it is at root a
+reasonably simple wrapper of vcl/ - if you came here looking for a
+toolkit, please checkout vcl/ instead.
diff --git a/vcl/README b/vcl/README
index a868f2a..6fcf860 100644
--- a/vcl/README
+++ b/vcl/README
@@ -1,5 +1,7 @@
 Visual Components Library is responsible for the widgets (windowing, buttons, controls, file-pickers etc.) operating system abstraction, including basic rendering (e.g. the output device).
 
+VCL provides a graphical toolkit similar to gtk+, Qt, SWING etc.
+
 source/
 	+ the main cross-platform chunk of source
 


More information about the Libreoffice-commits mailing list