KiCad PCB EDA Suite
Loading...
Searching...
No Matches
merge_dispatch.h
Go to the documentation of this file.
1/*
2 * This program source code file is part of KiCad, a free EDA CAD application.
3 *
4 * Copyright The KiCad Developers, see AUTHORS.txt for contributors.
5 *
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 3
9 * of the License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, you may find one here:
18 * http://www.gnu.org/licenses/gpl-3.0.html
19 * or you may search the http://www.gnu.org website for the version 3 license,
20 * or you may write to the Free Software Foundation, Inc.,
21 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22 */
23
24#ifndef KICAD_DIFF_MERGE_DISPATCH_H
25#define KICAD_DIFF_MERGE_DISPATCH_H
26
27#include <kicommon.h>
28
30
31#include <wx/string.h>
32
33#include <memory>
34
36
37
38class KIWAY;
39class REPORTER;
40class wxWindow;
41
42
43namespace KICAD_DIFF
44{
45
46struct DOCUMENT_DIFF;
47
53KICOMMON_API wxString OlderFormatNotice( int aAncestorVersion, int aOursVersion, int aTheirsVersion,
54 int aCurrentVersion );
55
64KICOMMON_API int DispatchMerge( KIWAY& aKiway, DOC_KIND aKind, const wxString& aAncestor,
65 const wxString& aOurs, const wxString& aTheirs,
66 const wxString& aOutput, bool aInteractive, bool aSingleFile,
67 REPORTER* aReporter );
68
69
77KICOMMON_API int DispatchOpenDiffDialog( KIWAY& aKiway, DOC_KIND aKind, const wxString& aFileA,
78 const wxString& aFileB, const wxString& aLabelA,
79 const wxString& aLabelB, wxWindow* aParent,
80 REPORTER* aReporter = nullptr );
81
82
88{
89public:
90 virtual ~DIFF_CANVAS_CONTEXT() = default;
91};
92
93
102KICOMMON_API std::unique_ptr<DIFF_CANVAS_CONTEXT>
103 DispatchAttachDiffCanvases( KIWAY& aKiway, DOC_KIND aKind, const wxString& aFileA, const wxString& aFileB,
104 WIDGET_DIFF_CANVAS& aBefore, WIDGET_DIFF_CANVAS& aAfter, DOCUMENT_DIFF& aDiff,
105 REPORTER* aReporter = nullptr );
106
107} // namespace KICAD_DIFF
108
109#endif // KICAD_DIFF_MERGE_DISPATCH_H
Keeps the documents drawn on a pair of diff canvases alive.
virtual ~DIFF_CANVAS_CONTEXT()=default
A minimalistic software bus for communications between various DLLs/DSOs (DSOs) within the same KiCad...
Definition kiway.h:348
A pure virtual class used to derive REPORTER objects from.
Definition reporter.h:73
GAL-backed canvas for visualizing a KICAD_DIFF::DIFF_SCENE.
#define KICOMMON_API
Definition kicommon.h:27
wxString OlderFormatNotice(int aAncestorVersion, int aOursVersion, int aTheirsVersion, int aCurrentVersion)
Empty when every side is already in the current file format.
std::unique_ptr< DIFF_CANVAS_CONTEXT > DispatchAttachDiffCanvases(KIWAY &aKiway, DOC_KIND aKind, const wxString &aFileA, const wxString &aFileB, WIDGET_DIFF_CANVAS &aBefore, WIDGET_DIFF_CANVAS &aAfter, DOCUMENT_DIFF &aDiff, REPORTER *aReporter)
Diff two files in the owning kiface through its KIFACE_ATTACH_DIFF_CANVASES export.
int DispatchMerge(KIWAY &aKiway, DOC_KIND aKind, const wxString &aAncestor, const wxString &aOurs, const wxString &aTheirs, const wxString &aOutput, bool aInteractive, bool aSingleFile, REPORTER *aReporter)
Run a 3-way document/library merge by calling the owning kiface's KIFACE_MERGE_DOCUMENT function expo...
DOC_KIND
Document type a diff/merge entry point should route to, derived from a file path's extension.
int DispatchOpenDiffDialog(KIWAY &aKiway, DOC_KIND aKind, const wxString &aFileA, const wxString &aFileB, const wxString &aLabelA, const wxString &aLabelB, wxWindow *aParent, REPORTER *aReporter)
Open DIALOG_KICAD_DIFF on two files by calling the owning kiface's KIFACE_OPEN_DIFF_DIALOG function e...
The full set of changes between two parsed documents of one type.