Kaydet (Commit) ecb5fcff authored tarafından Milian Wolff's avatar Milian Wolff Kaydeden (comit) Thorsten Behrens

Introduce gtk3_kde5 vcl plugin

This is a hybrid plugin which mostly wraps the GTK3 vclplug. Only
the file and folder picker are replaced by KDE dialogs. This gives
us a well-maintained GTK LO base with basic KDE integration with
minimum effort.

To prevent issues with nested event loops, the KDE dialogs are
launched from a separate process, the new lo_kde5filepicker helper
executable. A trivial stdin/stdout IPC mechanism transfers the data
between LO and the Qt/KDE helper. The usage of an external process
also allows us to copy'n'paste between LO and the KDE file dialog
without freezing the UI, as would happen when one would do this
in-process. This is in general also the architecture applied by the
kmozillahelper, which is used to integrate KDE file dialogs into
Firefox.

While the KDE dialog is shown, the GTK3 main window is disabled and
close requests are ignored. The KDE dialog in turn also sets the LO
window as transient parent. Together, this makes the illusion perfect
and the KDE dialog behaves like a modal dialog. This works properly
also with multiple LO main windows, and only individual windows will
get blocked as one would expect.

Functionality wise, most of the features of the KDE4 dialog are
supported. You can pick files and folders, and save files under a new
name. Some custom checkbox widgets are supported, but lists, buttons
and preview widgets are not yet implemented. Also, loading remote
files via KIO is not possible yet.

Change-Id: I1a97cf7c272307a19ace4222d5f12253bc722829
Reviewed-on: https://gerrit.libreoffice.org/47718Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarThorsten Behrens <Thorsten.Behrens@CIB.de>
üst f811979b
......@@ -302,8 +302,14 @@ $(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,kde, \
$(if $(ENABLE_KDE4),vclplug_kde4) \
$(if $(ENABLE_KDE5),vclplug_kde5) \
$(if $(ENABLE_QT5),vclplug_qt5) \
$(if $(ENABLE_GTK3_KDE5),vclplug_gtk3_kde5) \
) \
))
ifneq ($(ENABLE_GTK3_KDE5),)
$(eval $(call gb_Helper_register_executables_for_install,OOO,kde, \
lo_kde5filepicker \
))
endif
$(eval $(call gb_Helper_register_libraries_for_install,OOOLIBS,math, \
sm \
......
......@@ -158,6 +158,7 @@ export ENABLE_PDFIMPORT=@ENABLE_PDFIMPORT@
export ENABLE_PDFIUM=@ENABLE_PDFIUM@
export ENABLE_QT5=@ENABLE_QT5@
export ENABLE_KDE5=@ENABLE_KDE5@
export ENABLE_GTK3_KDE5=@ENABLE_GTK3_KDE5@
export ENABLE_RANDR=@ENABLE_RANDR@
export ENABLE_RELEASE_BUILD=@ENABLE_RELEASE_BUILD@
export ENABLE_REPORTBUILDER=@ENABLE_REPORTBUILDER@
......
/*
Settings for GTK3/KDE5 integration.
*/
#ifndef CONFIG_GTK3_KDE5_H
#define CONFIG_GTK3_KDE5_H
#define ENABLE_GTK3_KDE5 0
#endif
......@@ -10,5 +10,6 @@ Settings about which X11 desktops have support enabled.
#define ENABLE_GTK 0
#define ENABLE_KDE4 0
#define ENABLE_KDE5 0
#define ENABLE_GTK3_KDE5 0
#endif
......@@ -595,6 +595,7 @@ linux-gnu*|k*bsd*-gnu*)
test_kde4=yes
test_kde5=yes
test_qt5=yes
test_gtk3_kde5=yes
if test "$enable_fuzzers" != yes; then
test_freetype=yes
test_fontconfig=yes
......@@ -691,6 +692,7 @@ freebsd*)
test_kde4=yes
test_kde5=yes
test_qt5=yes
test_gtk3_kde5=yes
test_freetype=yes
AC_MSG_CHECKING([the FreeBSD operating system release])
if test -n "$with_os_version"; then
......@@ -721,6 +723,7 @@ freebsd*)
test_kde4=yes
test_kde5=yes
test_qt5=yes
test_gtk3_kde5=yes
test_freetype=yes
PTHREAD_LIBS="-pthread -lpthread"
_os=NetBSD
......@@ -748,6 +751,7 @@ dragonfly*)
test_kde4=yes
test_kde5=yes
test_qt5=yes
test_gtk3_kde5=yes
test_freetype=yes
PTHREAD_LIBS="-pthread"
_os=DragonFly
......@@ -773,6 +777,7 @@ linux-android*)
test_kde4=no
test_kde5=no
test_qt5=no
test_gtk3_kde5=no
test_randr=no
test_xrender=no
_os=Android
......@@ -1227,6 +1232,12 @@ AC_ARG_ENABLE(kde5,
KF5 are available.]),
,)
AC_ARG_ENABLE(gtk3_kde5,
AS_HELP_STRING([--enable-gtk3-kde5],
[Determines whether to use Gtk3 vclplug with KDE file dialogs on
platforms where Gtk3, Qt5 and Plasma is available.]),
,)
libo_FUZZ_ARG_ENABLE(gui,
AS_HELP_STRING([--disable-gui],
[Disable use of X11 or Wayland to reduce dependencies. Not related to the --headless
......@@ -4542,6 +4553,7 @@ if test "$USING_X11" != TRUE; then
test_kde4=no
test_kde5=no
test_qt5=no
test_gtk3_kde5=no
enable_cairo_canvas=no
fi
......@@ -9797,6 +9809,14 @@ if test "x$enable_kde5" = "xyes"; then
fi
AC_SUBST(ENABLE_KDE5)
ENABLE_GTK3_KDE5=""
if test "x$enable_gtk3_kde5" = "xyes"; then
ENABLE_GTK3_KDE5="TRUE"
AC_DEFINE(ENABLE_GTK3_KDE5)
R="$R gtk3_kde5"
fi
AC_SUBST(ENABLE_GTK3_KDE5)
build_vcl_plugins="$R"
if test -z "$build_vcl_plugins"; then
build_vcl_plugins="none"
......@@ -10804,7 +10824,8 @@ QT5_GLIB_CFLAGS=""
QT5_GLIB_LIBS=""
QT5_HAVE_GLIB=""
if test \( "$test_kde5" = "yes" -a "$ENABLE_KDE5" = "TRUE" \) -o \
\( "$test_qt5" = "yes" -a "$ENABLE_QT5" = "TRUE" \)
\( "$test_qt5" = "yes" -a "$ENABLE_QT5" = "TRUE" \) -o \
\( "$test_gtk3_kde5" = "yes" -a "$ENABLE_GTK3_KDE5" = "TRUE" \)
then
qt5_incdirs="$QT5INC /usr/include/qt5 /usr/include $x_includes"
qt5_libdirs="$QT5LIB /usr/lib/qt5 /usr/lib $x_libraries"
......@@ -10892,7 +10913,8 @@ KF5_CFLAGS=""
KF5_LIBS=""
KF5_CONFIG="kf5-config"
if test \( "$test_kde5" = "yes" -a "$ENABLE_KDE5" = "TRUE" \) -o \
\( "$test_kf5" = "yes" -a "$ENABLE_KF5" = "TRUE" \)
\( "$test_kf5" = "yes" -a "$ENABLE_KF5" = "TRUE" \) -o \
\( "$test_gtk3_kde5" = "yes" -a "$ENABLE_GTK3_KDE5" = "TRUE" \)
then
kf5_incdirs="$KF5INC /usr/include/ $x_includes"
kf5_libdirs="$KF5LIB /usr/lib /usr/lib/kf5 /usr/lib/kf5/devel $x_libraries"
......@@ -10942,8 +10964,8 @@ then
PKG_CHECK_MODULES(KF5_XCB,[xcb],,[AC_MSG_ERROR([XCB not installed])])
KF5_CFLAGS="-I$kf5_incdir -I$kf5_incdir/KCoreAddons -I$kf5_incdir/KI18n -I$kf5_incdir/KConfigCore -I$kf5_incdir/KWindowSystem -I$kf5_incdir/KIOCore -I$qt5_incdir -I$qt5_incdir/QtCore -I$qt5_incdir/QtGui -I$qt5_incdir/QtWidgets -I$qt5_incdir/QtNetwork -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT $KF5_XCB_CFLAGS"
KF5_LIBS="-L$kf5_libdir -lKF5CoreAddons -lKF5I18n -lKF5ConfigCore -lKF5WindowSystem -lKF5KIOCore -L$qt5_libdir -lQt5Core -lQt5Gui -lQt5Widgets -lQt5Network -lQt5X11Extras $KF5_XCB_LIBS"
KF5_CFLAGS="-I$kf5_incdir -I$kf5_incdir/KCoreAddons -I$kf5_incdir/KI18n -I$kf5_incdir/KConfigCore -I$kf5_incdir/KWindowSystem -I$kf5_incdir/KIOCore -I$kf5_incdir/KIOWidgets -I$kf5_incdir/KIOFileWidgets -I$qt5_incdir -I$qt5_incdir/QtCore -I$qt5_incdir/QtGui -I$qt5_incdir/QtWidgets -I$qt5_incdir/QtNetwork -DQT_CLEAN_NAMESPACE -DQT_THREAD_SUPPORT $KF5_XCB_CFLAGS"
KF5_LIBS="-L$kf5_libdir -lKF5CoreAddons -lKF5I18n -lKF5ConfigCore -lKF5WindowSystem -lKF5KIOCore -lKF5KIOWidgets -lKF5KIOFileWidgets -L$qt5_libdir -lQt5Core -lQt5Gui -lQt5Widgets -lQt5Network -lQt5X11Extras $KF5_XCB_LIBS"
KF5_CFLAGS=$(printf '%s' "$KF5_CFLAGS" | sed -e "s/-I/${ISYSTEM?}/g")
AC_LANG_PUSH([C++])
......@@ -12513,6 +12535,7 @@ AC_CONFIG_HEADERS([config_host/config_mpl.h])
AC_CONFIG_HEADERS([config_host/config_kde4.h])
AC_CONFIG_HEADERS([config_host/config_qt5.h])
AC_CONFIG_HEADERS([config_host/config_kde5.h])
AC_CONFIG_HEADERS([config_host/config_gtk3_kde5.h])
AC_CONFIG_HEADERS([config_host/config_oox.h])
AC_CONFIG_HEADERS([config_host/config_options.h])
AC_CONFIG_HEADERS([config_host/config_options_calc.h])
......
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
$(eval $(call gb_CustomTarget_CustomTarget,vcl/unx/gtk3_kde5))
$(call gb_CustomTarget_get_target,vcl/unx/gtk3_kde5) : \
$(call gb_CustomTarget_get_workdir,vcl/unx/gtk3_kde5)/kde5_filepicker.moc \
$(call gb_CustomTarget_get_workdir,vcl/unx/gtk3_kde5)/kde5_filepicker_ipc.moc \
$(call gb_CustomTarget_get_workdir,vcl/unx/gtk3_kde5)/%.moc : \
$(SRCDIR)/vcl/unx/gtk3_kde5/%.hxx \
| $(call gb_CustomTarget_get_workdir,vcl/unx/gtk3_kde5)/.dir
$(call gb_Output_announce,$(subst $(WORKDIR)/,,$@),$(true),MOC,1)
$(MOC5) $< -o $@
# vim: set noet sw=4:
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This file incorporates work covered by the following license notice:
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed
# with this work for additional information regarding copyright
# ownership. The ASF licenses this file to you under the Apache
# License, Version 2.0 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.apache.org/licenses/LICENSE-2.0 .
#
$(eval $(call gb_Executable_Executable,lo_kde5filepicker))
# FIXME: how to find the moc files automatically?!
$(eval $(call gb_Executable_set_include,lo_kde5filepicker,\
$$(INCLUDE) \
-I$(SRCDIR)/vcl/inc \
-I$(WORKDIR)/CustomTarget/vcl/unx/gtk3_kde5 \
))
$(eval $(call gb_Executable_add_cxxflags,lo_kde5filepicker,\
$$(INCLUDE) \
$$(BOOST_CXXFLAGS) \
))
$(eval $(call gb_Executable_use_custom_headers,lo_kde5filepicker,\
officecfg/registry \
))
$(eval $(call gb_Executable_use_sdk_api,lo_kde5filepicker))
$(eval $(call gb_Executable_add_libs,lo_kde5filepicker,\
-lX11 \
-lXext \
-lSM \
-lICE \
))
$(eval $(call gb_Executable_use_libraries,lo_kde5filepicker,\
vclplug_gen \
vcl \
tl \
utl \
sot \
ucbhelper \
basegfx \
comphelper \
cppuhelper \
i18nlangtag \
i18nutil \
$(if $(ENABLE_JAVA), \
jvmaccess) \
cppu \
sal \
))
$(eval $(call gb_Executable_use_externals,lo_kde5filepicker,\
boost_headers \
epoxy \
kde5 \
dbus \
))
$(eval $(call gb_Executable_add_defs,lo_kde5filepicker,\
$(QT5_CFLAGS) \
$(QT5_GLIB_CFLAGS) \
$(KF5_CFLAGS) \
))
$(eval $(call gb_Executable_add_libs,lo_kde5filepicker,\
$(QT5_LIBS) \
$(QT5_GLIB_LIBS) \
$(KF5_LIBS) \
$(BOOST_PROCESS_LIB) \
$(BOOST_FILESYSTEM_LIB) \
))
$(eval $(call gb_Executable_add_exception_objects,lo_kde5filepicker,\
vcl/unx/gtk3_kde5/kde5_lo_filepicker_main \
vcl/unx/gtk3_kde5/kde5_filepicker \
vcl/unx/gtk3_kde5/kde5_filepicker_ipc \
))
ifeq ($(OS),LINUX)
$(eval $(call gb_Executable_add_libs,lo_kde5filepicker,\
-lm \
-ldl \
-lpthread \
))
endif
# vim: set noet sw=4 ts=4:
# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*-
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This file incorporates work covered by the following license notice:
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed
# with this work for additional information regarding copyright
# ownership. The ASF licenses this file to you under the Apache
# License, Version 2.0 (the "License"); you may not use this file
# except in compliance with the License. You may obtain a copy of
# the License at http://www.apache.org/licenses/LICENSE-2.0 .
#
$(eval $(call gb_Library_Library,vclplug_gtk3_kde5))
# Silence deprecation warnings wholesale as long as vcl/unx/gtk3/*.cxx just
# forward to vcl/unx/gtk/*.cxx:
$(eval $(call gb_Library_add_cxxflags,vclplug_gtk3_kde5, \
-Wno-deprecated-declarations \
))
$(eval $(call gb_Library_set_include,vclplug_gtk3_kde5,\
$$(INCLUDE) \
-I$(SRCDIR)/vcl/inc \
-I$(SRCDIR)/vcl/unx \
-I$(SRCDIR)/vcl/unx/gtk3 \
))
$(eval $(call gb_Library_add_cxxflags,vclplug_gtk3_kde5,\
$$(INCLUDE) \
$$(GTK3_CFLAGS) \
))
$(eval $(call gb_Library_add_defs,vclplug_gtk3_kde5,\
-DVCLPLUG_GTK_IMPLEMENTATION -DVCLPLUG_GTK3_KDE5_IMPLEMENTATION \
))
$(eval $(call gb_Library_use_custom_headers,vclplug_gtk3_kde5,\
officecfg/registry \
))
$(eval $(call gb_Library_use_sdk_api,vclplug_gtk3_kde5))
$(eval $(call gb_Library_add_libs,vclplug_gtk3_kde5,\
$(GTK3_LIBS) \
$(GTHREAD_LIBS) \
-lX11 \
-lXext \
-lSM \
-lICE \
))
$(eval $(call gb_Library_use_libraries,vclplug_gtk3_kde5,\
vclplug_gen \
vcl \
tl \
utl \
sot \
ucbhelper \
basegfx \
comphelper \
cppuhelper \
i18nlangtag \
i18nutil \
$(if $(ENABLE_JAVA), \
jvmaccess) \
cppu \
sal \
))
$(eval $(call gb_Library_use_externals,vclplug_gtk3_kde5,\
boost_headers \
boost_filesystem \
epoxy \
dbus \
))
$(eval $(call gb_Library_add_exception_objects,vclplug_gtk3_kde5,\
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkaction \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkbridge \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkcomponent \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkeditabletext \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkfactory \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkhypertext \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkimage \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atklistener \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkregistry \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkselection \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atktable \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atktextattributes \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atktext \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkutil \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkvalue \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkwindow \
vcl/unx/gtk3_kde5/a11y/gtk3_kde5_atkwrapper \
vcl/unx/gtk3_kde5/gtk3_kde5_gtkdata \
vcl/unx/gtk3_kde5/gtk3_kde5_gtkinst \
vcl/unx/gtk3_kde5/gtk3_kde5_gtksys \
vcl/unx/gtk3_kde5/gtk3_kde5_filepicker \
vcl/unx/gtk3_kde5/gtk3_kde5_filepicker_ipc \
vcl/unx/gtk3_kde5/gtk3_kde5_folderpicker \
vcl/unx/gtk3_kde5/gtk3_kde5_cairo \
vcl/unx/gtk3_kde5/gtk3_kde5_printwrapper \
vcl/unx/gtk3_kde5/gtk3_kde5_salnativewidgets-gtk \
vcl/unx/gtk3_kde5/gtk3_kde5_salprn-gtk \
vcl/unx/gtk3_kde5/gtk3_kde5_gtkframe \
vcl/unx/gtk3_kde5/gtk3_kde5_gtkobject \
vcl/unx/gtk3_kde5/gtk3_kde5_gtksalmenu \
vcl/unx/gtk3_kde5/gtk3_kde5_glomenu \
vcl/unx/gtk3_kde5/gtk3_kde5_gloactiongroup \
vcl/unx/gtk3_kde5/gtk3_kde5_hudawareness \
))
ifeq ($(OS),LINUX)
$(eval $(call gb_Library_add_libs,vclplug_gtk3_kde5,\
-lm \
-ldl \
-lpthread \
))
endif
# vim: set noet sw=4 ts=4:
......@@ -94,6 +94,13 @@ $(eval $(call gb_Module_add_targets,vcl,\
Library_vclplug_qt5 \
))
endif
ifneq ($(ENABLE_GTK3_KDE5),)
$(eval $(call gb_Module_add_targets,vcl,\
CustomTarget_gtk3_kde5_moc \
Library_vclplug_gtk3_kde5 \
Executable_lo_kde5filepicker \
))
endif
endif
ifeq ($(OS),MACOSX)
......
......@@ -99,7 +99,7 @@ static SalInstance* tryInstance( const OUString& rModuleBase, bool bForce = fals
* #i109007# KDE3 seems to have the same problem.
* And same applies for KDE4.
*/
if( rModuleBase == "gtk" || rModuleBase == "gtk3" || rModuleBase == "kde4" )
if( rModuleBase == "gtk" || rModuleBase == "gtk3" || rModuleBase == "kde4" || rModuleBase == "gtk3_kde5")
{
pCloseModule = nullptr;
}
......@@ -163,6 +163,9 @@ static SalInstance* autodetect_plugin()
{
static const char* const pKDEFallbackList[] =
{
#if ENABLE_GTK3_KDE5
"gtk3_kde5",
#endif
#if ENABLE_KDE4
"kde4",
#endif
......
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#pragma once
// the service names
#define FILE_PICKER_SERVICE_NAME "com.sun.star.ui.dialogs.Gtk3KDE5FilePicker"
// the implementation names
#define FILE_PICKER_IMPL_NAME "com.sun.star.ui.dialogs.Gtk3KDE5FilePicker"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkaction.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkbridge.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkcomponent.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkeditabletext.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkfactory.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkhypertext.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkimage.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atklistener.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkregistry.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkselection.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atktable.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atktext.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atktextattributes.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkutil.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkvalue.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkwindow.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include "../../gtk/a11y/atkwrapper.cxx"
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#pragma once
#include <cstdint>
#include <iostream>
#include <vector>
#include <sal/types.h>
#include <com/sun/star/uno/Sequence.hxx>
// #define DEBUG_FILEPICKER_IPC
namespace rtl
{
class OUString;
}
class QString;
enum class Commands : uint16_t
{
SetTitle,