In large computer displays, it is somehow hard to track the active cell, and the associated row and column. One of the solutions provided to fix this problem is to highlight the row and column. The feature request is visible in tdf#33201: (more…)
Year: 2023
ccache for a 5 minutes LibreOffice build
If you have ever tried to build LibreOffice code, you know that it can take a lot of time. LibreOffice has ~6 million lines of C++ and some Java code (<280k). But, there are tools that can help you build LibreOffice from source code much faster, if you do it repeatedly! Here I discuss how to use one of these tools: “ccache”. (more…)
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…)
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…)
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…)
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…)
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…)
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.

These are some the topics I want to discuss in 2023:
- Various data types in LibreOffice
- LibreOffice build system (gbuild)
- New EasyHacks
- Fixing crashes
- Creating user interfaces with VCL
- LibreOffice core development guide
- 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!
