106 lines
4.6 KiB
C
106 lines
4.6 KiB
C
/*
|
|
* JoeyDev
|
|
* Copyright (C) 2018-2023 Scott Duensing <scott@kangaroopunch.com>
|
|
*
|
|
* This software is provided 'as-is', without any express or implied
|
|
* warranty. In no event will the authors be held liable for any damages
|
|
* arising from the use of this software.
|
|
*
|
|
* Permission is granted to anyone to use this software for any purpose,
|
|
* including commercial applications, and to alter it and redistribute it
|
|
* freely, subject to the following restrictions:
|
|
*
|
|
* 1. The origin of this software must not be misrepresented; you must not
|
|
* claim that you wrote the original software. If you use this software
|
|
* in a product, an acknowledgment in the product documentation would be
|
|
* appreciated but is not required.
|
|
* 2. Altered source versions must be plainly marked as such, and must not be
|
|
* misrepresented as being the original software.
|
|
* 3. This notice may not be removed or altered from any source distribution.
|
|
*/
|
|
|
|
|
|
#ifndef UTILS_H
|
|
#define UTILS_H
|
|
|
|
|
|
#include "common.h"
|
|
#include "archive.h"
|
|
#include "archive_entry.h"
|
|
|
|
|
|
#ifdef _WIN32
|
|
#define UTIL_PATH_CHAR '\\'
|
|
#else
|
|
#define UTIL_PATH_CHAR '/'
|
|
#endif
|
|
|
|
|
|
struct ArchiveS;
|
|
|
|
typedef void (*archiveCallback)(struct ArchiveS*);
|
|
|
|
typedef struct ArchiveS {
|
|
struct archive *in; // Compressed input file.
|
|
struct archive *out; // Decompressed output files.
|
|
struct archive_entry *entry; // Current archive entry.
|
|
int result; // Result of various archive functions.
|
|
int compression; // Compression percentage.
|
|
int fileCount; // Current file number being processed.
|
|
uint64_t compressed; // Compressed bytes processed.
|
|
uint64_t uncompressed; // Uncompressed bytes processed.
|
|
size_t size; // Size of compressed file.
|
|
char *archive; // Name of compressed file.
|
|
char *outPath; // Path to store uncompressed files.
|
|
char *currentFile; // Name of current file being processed.
|
|
gboolean copying; // Are we copying bytes?
|
|
gboolean finished; // Decompress complete?
|
|
gboolean success; // Did it succeed?
|
|
void *userData; // Anything the user needs to keep.
|
|
archiveCallback callback; // Non-Null, call when complete/failed.
|
|
} ArchiveT;
|
|
|
|
|
|
extern char __utilFilenameBuffer[FILENAME_MAX];
|
|
|
|
|
|
void utilAddTextToListBox(GtkListBox *list, char *text, gboolean markup);
|
|
void utilClearContainer(GtkContainer *container);
|
|
char *utilCreateString(char *format, ...);
|
|
char *utilCreateStringVArgs(char *format, va_list args);
|
|
ArchiveT *utilDecompress(char *archive, char *outPath, archiveCallback callback, void *userData);
|
|
int utilDeleteTree(const char *path);
|
|
char *utilDeobfuscateASCII(char *obfuscated);
|
|
void utilDequote(char *string);
|
|
void utilEnsureBufferSize(unsigned char **buffer, int *length, int wanted);
|
|
void utilExtractResource(char *path);
|
|
char *utilFileBasename(char *path);
|
|
gboolean utilFileCopy(char *from, char *to);
|
|
gboolean utilFileExists(char *filename);
|
|
ssize_t utilGetLine(char **lineptr, size_t *n, FILE *stream);
|
|
gboolean utilFileOpen(WindowDataT *self, char *extension, char *what);
|
|
char *utilFilePath(char *filename);
|
|
char *utilFileRemoveExtension(char *filename);
|
|
gboolean utilFileSaveAs(WindowDataT *self, char *extension, char *what);
|
|
gboolean utilFileSaveOtherAs(WindowDataT *self, char *extension, char *what, char **filename);
|
|
size_t utilFileSize(char *filename);
|
|
GtkWidget *utilFindChildWidget(GtkWidget *parent, const gchar *name);
|
|
void utilForceUpdate(void);
|
|
char *utilGetToken(char *input, char *delimit, char *openblock, char *closeblock);
|
|
WindowDataT *utilGetWindowData(GtkWidget *window);
|
|
gboolean utilGetWidgetsFromMemory(char *resource, char *name[], GtkWidget **widgets[], gpointer userData);
|
|
void utilMessageDialog(GtkWidget *parent, char *title, char *message);
|
|
gboolean utilMkDirP(const char *dir, const mode_t mode);
|
|
char *utilObfuscateASCII(char *clearText);
|
|
gboolean utilQuestionDialog(GtkWidget *parent, char *title, char *question);
|
|
void utilSetDirty(WindowDataT *self, gboolean dirty);
|
|
void utilShutdown(void);
|
|
void utilStartup(void);
|
|
void utilUpdatePath(WindowDataT *self);
|
|
void utilWindowRegister(gpointer windowData);
|
|
int utilWindowsCloseAll(void);
|
|
int utilWindowsOpen(void);
|
|
gboolean utilWindowUnRegister(gpointer windowData);
|
|
|
|
|
|
#endif // UTILS_H
|