summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/util/path.h
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2021-09-06 06:34:42 +1000
committer Vas Crabb <vas@vastheman.com>2021-09-06 06:34:42 +1000
commit4f495994c41cd2fbaf89c08f755e828ae3261828 (patch)
tree8ea2c8522b807e394ea942460687b66e3ec7e381 /src/lib/util/path.h
parent5e02ff231e2472e7e75a97b6e8758a070b227f8e (diff)
-ui: Made zoom controls a bit more intuitive.
* The UI controls are described as zoom in/out, but they had the opposite effect on the palette and tile viewers. That has been changed to make them consistent with the tilemap viewer. * Made the default zoom key not act as a toggle. People are familiar with the function of Ctrl+0/=/- in web browsers, so making them behave similarly in MAME should make it more approachable. Also added the default zoom key to the relevant documentation page. * Implemented the default zoom key for the palette and tile viewers. * In the tilemap viewer, if the view is in default expand to fit mode, zoom in/out starting from the actual zoom ratio. Once again, this behaves more like the zoom controls in a web browser displaying an image so it should be more intuitive. * Made more messages from the tilemap viewer localisable. -util/zippath.cpp: Fixed MT08074. * There were multiple issues at play here. After #8443 was applied, is_root was simply never returning true on Windows, as OSD_WINDOWS isn't actually defined outside libosd and libocore. This caused phantom parent items to appear in disk roots on Windows, but it meant that the check in zippath_resolve would always fail so the trailing backslash would be trimmed. Fixing the macro test in is_root meant the trailing backslash from C:\ would no longer be trimmed, which caused the stat in zippath_resolve to fail. -bigbord2.cpp: Hooked up floppy DRQ that had somehow got lost. -Reduced tag map lookups in several drivers and devices. -util/coretmpl.h: Removed an overload of bitswap that can be avoided using if constexpr. -Added doxygen comments to some classes, and fixed several doxygen warnings. -util, osd: Test for _WIN32 rather than WIN32. * In C++17 mode, WIN32 is no longer a predefined macro, although various things in 3rdparty define it to maintain legacy support. We're better off moving forward anyway for when WIN32 disappears entirely. (WIN32 is not a reserved name, while _WIN32 is, starting with an underscore follwed by an uppercase letter.)
Diffstat (limited to 'src/lib/util/path.h')
-rw-r--r--src/lib/util/path.h40
1 files changed, 29 insertions, 11 deletions
diff --git a/src/lib/util/path.h b/src/lib/util/path.h
index 1291d7b17d3..8638bcb332b 100644
--- a/src/lib/util/path.h
+++ b/src/lib/util/path.h
@@ -18,15 +18,19 @@
namespace util {
-/***************************************************************************
- INLINE FUNCTIONS
-***************************************************************************/
-
-// is a given character a directory separator?
-
+/// \defgroup pathutils Filesystem path utilities
+/// \{
+
+/// \brief Is a character a directory separator?
+///
+/// Determine whether a character is used to separate components within
+/// a filesystem path.
+/// \param [in] c A character to test.
+/// \return True if the character is used to separate components in
+/// filesystem paths.
constexpr bool is_directory_separator(char c)
{
-#if defined(WIN32)
+#if defined(_WIN32)
return ('\\' == c) || ('/' == c) || (':' == c);
#else
return '/' == c;
@@ -34,8 +38,15 @@ constexpr bool is_directory_separator(char c)
}
-// append to a path
-
+/// \brief Append components to a filesystem path
+///
+/// Appends directory components to a filesystem path.
+/// \param [in,out] path The path to append to.
+/// \param [in] next The first directory component to append to the
+/// path.
+/// \param [in] more Additional directory components to append to the
+/// path.
+/// \return A reference to the modified path.
template <typename T, typename... U>
inline std::string &path_append(std::string &path, T &&next, U &&... more)
{
@@ -49,8 +60,13 @@ inline std::string &path_append(std::string &path, T &&next, U &&... more)
}
-// concatenate paths
-
+/// \brief Concatenate filsystem paths
+///
+/// Concatenates multiple filesystem paths.
+/// \param [in] first Initial filesystem path.
+/// \param [in] more Additional directory components to append to the
+/// intial path.
+/// \return The concatenated filesystem path.
template <typename T, typename... U>
inline std::string path_concat(T &&first, U &&... more)
{
@@ -60,6 +76,8 @@ inline std::string path_concat(T &&first, U &&... more)
return result;
}
+/// \}
+
} // namespace util
#endif // MAME_LIB_UTIL_PATH_H