summaryrefslogtreecommitdiff
path: root/fluid/fluid.h
diff options
context:
space:
mode:
authorMatthias Melcher <github@matthiasm.com>2022-11-26 01:35:50 +0100
committerGitHub <noreply@github.com>2022-11-26 01:35:50 +0100
commit6e5c472cf9641426c5425ea2f404e8908d76d63e (patch)
tree0f7ec46f88f01257702f1f9a7c8323a7fdc768c3 /fluid/fluid.h
parentc1a7c4af042a593b4b3a1df3e750b0cc80362486 (diff)
Handle Fluid project settings better (#556)
Fix allocation bug in Fl_String
Diffstat (limited to 'fluid/fluid.h')
-rw-r--r--fluid/fluid.h55
1 files changed, 41 insertions, 14 deletions
diff --git a/fluid/fluid.h b/fluid/fluid.h
index 7625f0a2c..ea435abe9 100644
--- a/fluid/fluid.h
+++ b/fluid/fluid.h
@@ -20,6 +20,7 @@
#include <FL/filename.H>
#include <FL/Fl_Preferences.H>
#include <FL/Fl_Menu_Item.H>
+#include <FL/Fl_String.H>
#define BROWSERWIDTH 300
#define BROWSERHEIGHT 500
@@ -75,22 +76,48 @@ extern int compile_file; // fluid -c
extern int compile_strings; // fluic -cs
extern int batch_mode;
-extern int header_file_set;
-extern int code_file_set;
-extern const char* header_file_name;
-extern const char* code_file_name;
-
-extern int i18n_type;
-extern const char* i18n_include;
-extern const char* i18n_conditional;
-extern const char* i18n_function;
-extern const char* i18n_static_function;
-extern const char* i18n_file;
-extern const char* i18n_set;;
-extern char i18n_program[FL_PATH_MAX];
-
extern int pasteoffset;
+// ---- string handling
+
+class Fd_String : public Fl_String
+{
+public:
+ Fd_String() : Fl_String("") { }
+ Fd_String(const char* s) : Fl_String(s) { }
+ int empty() { return size()==0; }
+ void operator=(const char* s) { value(s); }
+ operator const char* () const { return value(); }
+};
+
+// ---- project settings
+
+class Project {
+public:
+ Project();
+ ~Project();
+ void reset();
+
+ int i18n_type;
+ Fd_String i18n_include;
+ Fd_String i18n_conditional;
+ Fd_String i18n_function;
+ Fd_String i18n_static_function;
+ Fd_String i18n_file;
+ Fd_String i18n_set;
+ char i18n_program[FL_PATH_MAX+1];
+ int include_H_from_C;
+ int use_FL_COMMAND;
+ int utf8_in_src;
+ int avoid_early_includes;
+ int header_file_set = 0;
+ int code_file_set = 0;
+ Fd_String header_file_name;
+ Fd_String code_file_name;
+};
+
+extern Project P;
+
// ---- public functions
extern void set_filename(const char *c);