From 51a55bc73660f64e8f4b32b8b4d3858f2a786f7b Mon Sep 17 00:00:00 2001 From: Matthias Melcher Date: Sun, 16 Mar 2025 17:16:12 -0400 Subject: Fluid: restructuring and rejuvenation of the source code. * Add classes for application and project * Removed all globals from Fluid.h * Extracting args and project history into their own classes * Moving globals into Application class * Initialize values inside headers for some classes. * Undo functionality wrapped in a class inside Project. * File reader and writer are now linked to a project. * Avoid global project access * Nodes (former Types) will be managed by a new Tree class. * Removed static members (hidden globals) form Node/Fl_Type. * Adding Tree iterator. * Use nullptr instead of 0, NULL, or 0L * Renamed Fl_..._Type to ..._Node, FL_OVERRIDE -> override * Renaming ..._type to ...::prototype * Splitting Widget Panel into multiple files. * Moved callback code into widget panel file. * Cleaning up Fluid_Image -> Image_asset * Moving Fd_Snap_Action into new namespace fld::app::Snap_Action etc. * Moved mergeback into proj folder. * `enum ID` is now `enum class Type`. --- fluid/app/history.h | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 fluid/app/history.h (limited to 'fluid/app/history.h') diff --git a/fluid/app/history.h b/fluid/app/history.h new file mode 100644 index 000000000..e32723b4b --- /dev/null +++ b/fluid/app/history.h @@ -0,0 +1,45 @@ +// +// Fluid Project File History header for the Fast Light Tool Kit (FLTK). +// +// Copyright 1998-2025 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// https://www.fltk.org/COPYING.php +// +// Please see the following page on how to report bugs and issues: +// +// https://www.fltk.org/bugs.php +// + +#ifndef FLUID_APP_HISTORY_H +#define FLUID_APP_HISTORY_H + +#include + +#include + +namespace fld { +namespace app { + +class History { +public: + /// Stores the absolute filename of the last 10 project files, saved in app preferences. + char abspath[10][FL_PATH_MAX] { }; + /// The list of filenames as displayed in the main menu. + char relpath[10][FL_PATH_MAX] { }; + // Create the project file history. + History() = default; + // Load the project history from the preferences database. + void load(); + // Add a new file to the project history using absolute paths. + void update(std::string project_file); +}; + +} // namespace app +} // namespace fld + +#endif // FLUID_APP_HISTORY_H + -- cgit v1.2.3