]> git.lyx.org Git - lyx.git/blob - src/frontends/xforms/FormAboutlyx.C
Change glob() API to accept a dir parameter.
[lyx.git] / src / frontends / xforms / FormAboutlyx.C
1 /**
2  * \file FormAboutlyx.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Edwin Leuven
7  * \author Angus Leeming
8  * \author Rob Lahaye
9  *
10  * Full author contact details are available in file CREDITS.
11  */
12
13 #include <config.h>
14
15 #include "FormAboutlyx.h"
16 #include "xformsBC.h"
17 #include "ControlAboutlyx.h"
18 #include "forms/form_aboutlyx.h"
19 #include "xforms_helpers.h"
20 #include "version.h"
21
22 #include "lyx_forms.h"
23
24 #include <sstream>
25
26 using std::ostringstream;
27
28 namespace lyx {
29 namespace frontend {
30
31 namespace {
32
33 #if FL_VERSION == 0 || (FL_REVISION == 0 && FL_FIXLEVEL < 2)
34 bool const scalableTabfolders = false;
35 #else
36 bool const scalableTabfolders = true;
37 #endif
38
39 } // namespace anon
40
41
42 typedef FormController<ControlAboutlyx, FormView<FD_aboutlyx> > base_class;
43
44 FormAboutlyx::FormAboutlyx(Dialog & parent)
45         : base_class(parent, _("About LyX"), scalableTabfolders)
46 {}
47
48
49 void FormAboutlyx::build()
50 {
51         dialog_.reset(build_aboutlyx(this));
52
53         // create version tab
54         version_.reset(build_aboutlyx_version(this));
55
56         ostringstream vs;
57         vs << controller().getVersion()
58            << '\n' << lyx_version_info;
59
60         fl_add_browser_line(version_->browser_version, vs.str().c_str());
61
62         // create credits tab
63         credits_.reset(build_aboutlyx_credits(this));
64
65         ostringstream crs;
66         controller().getCredits(crs);
67
68         fl_add_browser_line(credits_->browser_credits, crs.str().c_str());
69
70         // create license tab
71         license_.reset(build_aboutlyx_license(this));
72         int const width = license_->browser_license->w - 10;
73
74         ostringstream cs;
75         cs << controller().getCopyright() << "\n\n"
76            << formatted(controller().getLicense(), width) << "\n\n"
77            << formatted(controller().getDisclaimer(), width);
78
79         fl_add_browser_line(license_->browser_license, cs.str().c_str());
80
81         // Enable the tabfolder to be rescaled correctly.
82         if (scalableTabfolders)
83                 fl_set_tabfolder_autofit(dialog_->tabfolder, FL_FIT);
84
85         // Stack tabs
86         fl_addto_tabfolder(dialog_->tabfolder, _("Version").c_str(),
87                            version_->form);
88         fl_addto_tabfolder(dialog_->tabfolder, _("Credits").c_str(),
89                            credits_->form);
90         fl_addto_tabfolder(dialog_->tabfolder, _("License").c_str(),
91                            license_->form);
92
93         // Manage the cancel/close button
94         bcview().setCancel(dialog_->button_close);
95 }
96
97 } // namespace frontend
98 } // namespace lyx