Your presentation on LibreOffice code

Miklos Vajna vmiklos at collabora.com
Thu Feb 13 08:27:30 UTC 2020


Hi Arvind,

On Wed, Feb 12, 2020 at 06:41:24PM -0600, Arvind Kumar <arvind.kumar at gmail.com> wrote:
> I came across your presentation on the code structure of LibreOffice source
> code.
> https://libocon.org/assets/Conference/Rome/Slides/beginners-structure-locon-rome-2k17.pdf
> 
> I was able to download the code and compile it on my Linux machine. I'm now
> trying to make sense of the code and wish to know the following. If you
> don't mind, I have three questions.
> 
> (1) Are the pages in a LibreOffice document GtkTextView objects? If so,
> where is the code for the creation of the TextView object?

git grep GtkTextView vcl/

should give you some hints, the gtk3 case either creates widgets using
.ui files ("welded" case) or using the VclBuilder (non-welded case).

> (2) Where is the code to get the input from the keyboard and then set the
> text in the TextView object?

Keyboard input is typically handled by the KeyInput() virtual member
function of vcl::Window subclasses. See include/vcl/weld.hxx for the
interface that is an abstraction on top of the gtk3 and vcl (non-gtk3)
cases.

> (3) Where is the code to save the text from the TextView object into a file?

A typical Writer/Calc/Impress document content is presented using custom
widgets in gtk3 terms, so it's rare that a GtkTextView content would be
really saved to a file as-is.

> By understanding the code for the creation, read, and write operations, it
> will get me started off since that is the core functionality of a document
> writer.

Perhaps ask something more specific, so you can get specific answers.
:-)

Regards,

Miklos
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: Digital signature
URL: <https://lists.freedesktop.org/archives/libreoffice/attachments/20200213/efa5e9f4/attachment.sig>


More information about the LibreOffice mailing list