From 429d5f88b94ff28416cbfc6420b6389fa284df97 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Tue, 10 Dec 2024 22:30:12 +0100 Subject: Import RTFL 0.1.1 --- common/about.cc | 109 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 common/about.cc (limited to 'common/about.cc') diff --git a/common/about.cc b/common/about.cc new file mode 100644 index 0000000..01ad3ac --- /dev/null +++ b/common/about.cc @@ -0,0 +1,109 @@ +/* + * RTFL + * + * Copyright 2013-2015 Sebastian Geerken + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 3 of the License, or + * (at your option) any later version; with the following exception: + * + * The copyright holders of RTFL give you permission to link this file + * statically or dynamically against all versions of the graphviz + * library, which are published by AT&T Corp. under one of the following + * licenses: + * + * - Common Public License version 1.0 as published by International + * Business Machines Corporation (IBM), or + * - Eclipse Public License version 1.0 as published by the Eclipse + * Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#include "about.hh" + +#include "config.h" + +#include +#include + +#include +#include +#include +#include + +namespace rtfl { + +namespace common { + +void AboutWindow::close (Fl_Widget *widget, void *data) +{ + ((AboutWindow*)data)->hide (); +} + + +AboutWindow::AboutWindow (const char *prgName, const char *licenceException, + int height) : + Fl_Window (WIDTH, height, "") +{ + + const char *titleFmt = "RTFL: About %s"; + const char *textFmt = + "%s " VERSION "\n" + "\n" + "%s is part of RTFL (Read The Figurative Logfile).\n" + "\n" + "Copyright 2013-2015 Sebastian Geerken \n" + "\n" + "RTFL is free software; you can redistribute it and/or modify it under " + "the terms of the GNU General Public License as published by the Free " + "Software Foundation; either version 3 of the License, or (at your " + "option) any later version%s.\n" + "\n" + "With RTFL comes some documentation, see “doc/rtfl.html” in the " + "tarball. For more informations, updates etc. see " + "."; + + int titleLen = strlen (titleFmt) - 2 + strlen (prgName) + 1; + title = new char [titleLen]; + snprintf (title, titleLen, titleFmt, prgName); + label (title); + + char *capName = strdup (prgName); + capName[0] = toupper (capName[0]); + int textLen = + strlen (textFmt) - 2 + strlen (prgName) - 2 + strlen (capName) + 1 + - 2 + strlen (licenceException); + text = new char[textLen]; + snprintf (text, textLen, textFmt, prgName, capName, licenceException); + free (capName); + + Fl_Box *textWidget = + new Fl_Box(SPACE, SPACE, WIDTH - 2 * SPACE, + height - 3 * SPACE - BUTTON_HEIGHT, text); + textWidget->box(FL_NO_BOX); + textWidget->align(FL_ALIGN_WRAP); + + Fl_Return_Button *close = + new Fl_Return_Button(WIDTH - BUTTON_WIDTH - SPACE, + height - BUTTON_HEIGHT - SPACE, BUTTON_WIDTH, + BUTTON_HEIGHT, "Close"); + close->callback (AboutWindow::close, this); +} + +AboutWindow::~AboutWindow () +{ + delete[] title; + delete[] text; +} + +} // namespace common + +} // namespace rtfl -- cgit v1.2.3