/src/libreoffice/svx/source/dialog/GenericCheckDialog.cxx
Line | Count | Source |
1 | | /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
2 | | /* |
3 | | * This file is part of the LibreOffice project. |
4 | | * |
5 | | * This Source Code Form is subject to the terms of the Mozilla Public |
6 | | * License, v. 2.0. If a copy of the MPL was not distributed with this |
7 | | * file, You can obtain one at http://mozilla.org/MPL/2.0/. |
8 | | * |
9 | | */ |
10 | | |
11 | | #include <svx/GenericCheckDialog.hxx> |
12 | | #include <vcl/svapp.hxx> |
13 | | |
14 | | namespace svx |
15 | | { |
16 | | GenericCheckEntry::GenericCheckEntry(weld::Container* pParent, |
17 | | std::unique_ptr<CheckData>& pCheckData) |
18 | 0 | : m_xBuilder(Application::CreateBuilder(pParent, u"svx/ui/genericcheckentry.ui"_ustr)) |
19 | 0 | , m_xContainer(m_xBuilder->weld_container(u"checkEntryBox"_ustr)) |
20 | 0 | , m_xLabel(m_xBuilder->weld_label(u"label"_ustr)) |
21 | 0 | , m_xMarkButton(m_xBuilder->weld_button(u"markButton"_ustr)) |
22 | 0 | , m_xPropertiesButton(m_xBuilder->weld_button(u"propertiesButton"_ustr)) |
23 | 0 | , m_pCheckData(pCheckData) |
24 | 0 | { |
25 | 0 | m_xLabel->set_label(m_pCheckData->getText()); |
26 | 0 | m_xMarkButton->set_visible(m_pCheckData->canMarkObject()); |
27 | 0 | m_xMarkButton->connect_clicked(LINK(this, GenericCheckEntry, MarkButtonClicked)); |
28 | 0 | m_xPropertiesButton->set_visible(m_pCheckData->hasProperties()); |
29 | 0 | m_xPropertiesButton->connect_clicked(LINK(this, GenericCheckEntry, PropertiesButtonClicked)); |
30 | |
|
31 | 0 | m_xContainer->show(); |
32 | 0 | } |
33 | | |
34 | | IMPL_LINK_NOARG(GenericCheckEntry, MarkButtonClicked, weld::Button&, void) |
35 | 0 | { |
36 | 0 | m_pCheckData->markObject(); |
37 | 0 | } |
38 | | |
39 | | IMPL_LINK_NOARG(GenericCheckEntry, PropertiesButtonClicked, weld::Button&, void) |
40 | 0 | { |
41 | 0 | m_pCheckData->runProperties(); |
42 | 0 | } |
43 | | |
44 | | GenericCheckDialog::GenericCheckDialog(weld::Window* pParent, |
45 | | CheckDataCollection& rCheckDataCollection) |
46 | 0 | : GenericDialogController(pParent, u"svx/ui/genericcheckdialog.ui"_ustr, |
47 | 0 | u"GenericCheckDialog"_ustr) |
48 | 0 | , m_rCheckDataCollection(rCheckDataCollection) |
49 | 0 | , m_xCheckBox(m_xBuilder->weld_box(u"checkBox"_ustr)) |
50 | 0 | { |
51 | 0 | set_title(m_rCheckDataCollection.getTitle()); |
52 | 0 | } |
53 | | |
54 | 0 | GenericCheckDialog::~GenericCheckDialog() {} |
55 | | |
56 | | short GenericCheckDialog::run() |
57 | 0 | { |
58 | 0 | sal_Int32 i = 0; |
59 | |
|
60 | 0 | for (std::unique_ptr<CheckData>& pCheckData : m_rCheckDataCollection.getCollection()) |
61 | 0 | { |
62 | 0 | auto xEntry = std::make_unique<GenericCheckEntry>(m_xCheckBox.get(), pCheckData); |
63 | 0 | m_xCheckBox->reorder_child(xEntry->get_widget(), i++); |
64 | 0 | m_aCheckEntries.push_back(std::move(xEntry)); |
65 | 0 | } |
66 | 0 | return GenericDialogController::run(); |
67 | 0 | } |
68 | | |
69 | | } // end svx namespace |
70 | | |
71 | | /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |