diff options
author | Jedidiah Barber <contact@jedbarber.id.au> | 2025-01-21 21:04:54 +1300 |
---|---|---|
committer | Jedidiah Barber <contact@jedbarber.id.au> | 2025-01-21 21:04:54 +1300 |
commit | b4438b2fbe895694be98e6e8426103deefc51448 (patch) | |
tree | 760d86cd7c06420a91dad102cc9546aee73146fc /body/c_fl_preferences.cpp | |
parent | a4703a65b015140cd4a7a985db66264875ade734 (diff) |
Split public API and private implementation files into different directories
Diffstat (limited to 'body/c_fl_preferences.cpp')
-rw-r--r-- | body/c_fl_preferences.cpp | 233 |
1 files changed, 233 insertions, 0 deletions
diff --git a/body/c_fl_preferences.cpp b/body/c_fl_preferences.cpp new file mode 100644 index 0000000..d2b0d2c --- /dev/null +++ b/body/c_fl_preferences.cpp @@ -0,0 +1,233 @@ + + +// Programmed by Jedidiah Barber +// Released into the public domain + + +#include <FL/Fl_Preferences.H> +#include <FL/filename.H> +#include <cstdlib> +#include "c_fl_preferences.h" + + + + +const int root_fl_prefs_system = Fl_Preferences::SYSTEM; +const int root_fl_prefs_user = Fl_Preferences::USER; + +const int const_fl_path_max = FL_PATH_MAX; + + + + +const char * fl_preferences_new_uuid() { + return Fl_Preferences::newUUID(); +} + + + + +class My_Preferences : public Fl_Preferences { + public: + using Fl_Preferences::Fl_Preferences; + int reference_count = 0; +}; + + + + +PREFS new_fl_pref_database_path(char * p, char * v, char * a) { + My_Preferences *e = new My_Preferences(p, v, a); + return e; +} + +PREFS new_fl_pref_database_scope(int s, char * v, char * a) { + My_Preferences *e = new My_Preferences((Fl_Preferences::Root)s, v, a); + return e; +} + +void upref_fl_pref_database(PREFS e) { + static_cast<My_Preferences*>(e)->reference_count += 1; +} + +void free_fl_pref_database(PREFS e) { + if (static_cast<My_Preferences*>(e)->reference_count <= 0) { + delete static_cast<My_Preferences*>(e); + } else { + static_cast<My_Preferences*>(e)->reference_count -= 1; + } +} + + +PREFS new_fl_pref_group_copy(PREFS e) { + Fl_Preferences *g = new Fl_Preferences(static_cast<Fl_Preferences*>(e)); + return g; +} + +PREFS new_fl_pref_group_memory(char * n) { + Fl_Preferences *g = new Fl_Preferences(NULL, n); + return g; +} + +PREFS new_fl_pref_group_name(PREFS e, char * n) { + Fl_Preferences *g = new Fl_Preferences(static_cast<Fl_Preferences*>(e), n); + return g; +} + +PREFS new_fl_pref_group_index(PREFS e, int i) { + Fl_Preferences *g = new Fl_Preferences(static_cast<Fl_Preferences*>(e), i); + return g; +} + +void free_fl_pref_group(PREFS e) { + delete static_cast<Fl_Preferences*>(e); +} + + + + +void fl_preferences_flush(PREFS e) { + static_cast<Fl_Preferences*>(e)->flush(); +} + +int fl_preferences_getuserdatapath(PREFS e, char * p, int len) { + return (int)static_cast<Fl_Preferences*>(e)->getUserdataPath(p, len); +} + + + + +int fl_preferences_deleteentry(PREFS e, const char * k) { + return (int)static_cast<Fl_Preferences*>(e)->deleteEntry(k); +} + +int fl_preferences_deleteallentries(PREFS e) { + return (int)static_cast<Fl_Preferences*>(e)->deleteAllEntries(); +} + +int fl_preferences_deletegroup(PREFS e, const char * g) { + return (int)static_cast<Fl_Preferences*>(e)->deleteGroup(g); +} + +int fl_preferences_deleteallgroups(PREFS e) { + return (int)static_cast<Fl_Preferences*>(e)->deleteAllGroups(); +} + +int fl_preferences_clear(PREFS e) { + return (int)static_cast<Fl_Preferences*>(e)->clear(); +} + + + + +int fl_preferences_entries(PREFS e) { + return static_cast<Fl_Preferences*>(e)->entries(); +} + +const char * fl_preferences_entry(PREFS e, int i) { + return static_cast<Fl_Preferences*>(e)->entry(i); +} + +int fl_preferences_entryexists(PREFS e, const char * k) { + return (int)static_cast<Fl_Preferences*>(e)->entryExists(k); +} + +int fl_preferences_size(PREFS e, const char * k) { + return static_cast<Fl_Preferences*>(e)->size(k); +} + + + + +int fl_preferences_groups(PREFS e) { + return static_cast<Fl_Preferences*>(e)->groups(); +} + +const char * fl_preferences_group(PREFS e, int i) { + return static_cast<Fl_Preferences*>(e)->group(i); +} + +int fl_preferences_groupexists(PREFS e, const char * g) { + return (int)static_cast<Fl_Preferences*>(e)->groupExists(g); +} + + + + +const char * fl_preferences_name(PREFS e) { + return static_cast<Fl_Preferences*>(e)->name(); +} + +const char * fl_preferences_path(PREFS e) { + return static_cast<Fl_Preferences*>(e)->path(); +} + + + + +int fl_preferences_get_int(PREFS e, const char * k, int& v, int d) { + return (int)static_cast<Fl_Preferences*>(e)->get(k,v,d); +} + +int fl_preferences_get_float(PREFS e, const char * k, float& v, float d) { + return (int)static_cast<Fl_Preferences*>(e)->get(k,v,d); +} + +int fl_preferences_get_double(PREFS e, const char * k, double& v, double d) { + return (int)static_cast<Fl_Preferences*>(e)->get(k,v,d); +} + +// must deallocate result afterwards +int fl_preferences_get_str(PREFS e, const char * k, char *& v, const char * d) { + return (int)static_cast<Fl_Preferences*>(e)->get(k,v,d); +} + +int fl_preferences_get_str_limit (PREFS e, const char * k, char * v, const char * d, int m) { + return (int)static_cast<Fl_Preferences*>(e)->get(k, v, d, m); +} + +// must deallocate result afterwards +int fl_preferences_get_void (PREFS e, const char * k, void *& v, const void * d, int ds) { + return (int)static_cast<Fl_Preferences*>(e)->get(k, v, d, ds); +} + +int fl_preferences_get_void_limit (PREFS e, const char * k, void * v, const void * d, int ds, int ms) { + return (int)static_cast<Fl_Preferences*>(e)->get(k, v, d, ds, ms); +} + +void free_fl_preferences_void_data(void * v) { + free(v); +} + + + + +int fl_preferences_set_int(PREFS e, const char * k, int v) { + return (int)static_cast<Fl_Preferences*>(e)->set(k,v); +} + +int fl_preferences_set_float(PREFS e, const char * k, float v) { + return (int)static_cast<Fl_Preferences*>(e)->set(k,v); +} + +int fl_preferences_set_float_prec(PREFS e, const char * k, float v, int p) { + return (int)static_cast<Fl_Preferences*>(e)->set(k,v,p); +} + +int fl_preferences_set_double(PREFS e, const char * k, double v) { + return (int)static_cast<Fl_Preferences*>(e)->set(k,v); +} + +int fl_preferences_set_double_prec(PREFS e, const char * k, double v, int p) { + return (int)static_cast<Fl_Preferences*>(e)->set(k,v,p); +} + +int fl_preferences_set_str(PREFS e, const char * k, const char * v) { + return (int)static_cast<Fl_Preferences*>(e)->set(k,v); +} + +int fl_preferences_set_void(PREFS e, const char * k, const void * d, int ds) { + return (int)static_cast<Fl_Preferences*>(e)->set(k, d, ds); +} + + |