23 Mar 2023

Internal includes instead of global ones – EasyHack

In every C/C++ source code file, we use header files to put declarations of functions, data types, class, macro and other relevant things inside it. These files have the extension of .h (for C) and .hxx (for C++). (more…)

3 Mar 2023

VCL application in its minimal form

LibreOffice uses an internal GUI toolkit, named VCL (Visual Class Library). It creates the GUI widgets for LibreOffice, but it is not generally available for other applications. But there are ways that you can create standalone applications with VCL, at least to learn it better. (more…)

21 Feb 2023

Telemetry required? Ask users first!

In this article, I will discuss the recent problems with compiling LibreOffice using Microsoft Visual Studio, things that I did to debug and find the root cause, the source of problem itself – which is problems in Microsoft’s telemetry – and how I could fix it. (more…)

5 Feb 2023

QR code improvement – LibreOffice EasyHack

A QR code is a type of 2D barcode that is useful for encoding data, such as a URL, contact information and many other data types. One can scan the code via applications on mobile phones to capture a URL or import contact information. (more…)

28 Jan 2023

VCL example applications and tools

You may already know that LibreOffice uses its internal GUI toolkit, named VCL (Visual Class Library). This library is responsible for creating the GUI widgets for LibreOffice, providing abstraction from the operating system including the basic rendering. To see more details, you can read its documentation page: (more…)

13 Jan 2023

String types in LibreOffice C/C++ code – part 1

Strings are very important types of data that are using in LibreOffice. Firstly, they are useful for storing textual data, and is essentially a sequence of characters. As LibreOffice has many modules that depend on various libraries and languages, there are different string types in LibreOffice. Here, we discuss some of them. (more…)

3 Jan 2023

Happy new year 2023!

Happy new year 2023! I wish a great year for you, and the global LibreOffice community.

Here I briefly discuss the year 2022 around the development blog, and the outlook for 2023.

In 2022, I wrote 22 posts around LibreOffice development in this blog. (Some of them are drafts which are not yet published). I hope that my published posts were useful for you to understand LibreOffice code better, and to get involved in LibreOffice core development.

At The Document Foundation (TDF), our aim is to improve LibreOffice, the leading free/open source office software that you and many other people around the world use. Our work is community-driven, and we need your help.

Happy new year to the LibreOffice community

Happy new year to the LibreOffice community

These are some the topics I want to discuss in 2023:

  1. Various data types in LibreOffice
  2. LibreOffice build system (gbuild)
  3. New EasyHacks
  4. Fixing crashes
  5. Creating user interfaces with VCL
  6. LibreOffice core development guide
  7. SDK development guide

I will be happy if you provide feedback to me in a comment here, or via email. You can email me using hossein AT libreoffice DOT org.

As you may know, I provide mentoring to those who want to start LibreOffice development. You can contact me if you need help via the above email address.

Have a great time!

21 Dec 2022

UNO Data types in code and API

alsVarious data types are used in LibreOffice code and also in LibreOffice API. Here we discuss some of these data types, which are important when you are working with LibreOffice code and API. (more…)

3 Dec 2022

gbuild introduction – LibreOffice build system part 1

LibreOffice uses a build system called gbuild which uses GNU Make. Migrating from the old build system to gbuild started in the OpenOffice days, but the migration took a while and a lot of effort, finishing around LibreOffice 4.1. (more…)

17 Nov 2022

Formatting the code in your patch for LibreOffice

Do you want to submit a patch to LibreOffice Gerrit, and you’re wondering if your code will be accepted or not? Other than providing a good solution to resolve a problem (fix a bug, implement a feature or enhancement), you should care about the code conventions, and in particular, code formatting. Suitable code formatting for LibreOffice is what we discuss here. (more…)