summaryrefslogtreecommitdiff
path: root/fluid/Fl_Function_Type.h
diff options
context:
space:
mode:
Diffstat (limited to 'fluid/Fl_Function_Type.h')
-rw-r--r--fluid/Fl_Function_Type.h230
1 files changed, 230 insertions, 0 deletions
diff --git a/fluid/Fl_Function_Type.h b/fluid/Fl_Function_Type.h
new file mode 100644
index 000000000..d5b0087c0
--- /dev/null
+++ b/fluid/Fl_Function_Type.h
@@ -0,0 +1,230 @@
+//
+// C function type header file for the Fast Light Tool Kit (FLTK).
+//
+// Copyright 1998-2021 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_FL_FUNCTION_TYPE_H
+#define _FLUID_FL_FUNCTION_TYPE_H
+
+#include "Fl_Type.h"
+
+#include "Fluid_Image.h"
+#ifdef _WIN32
+#include "ExternalCodeEditor_WIN32.h"
+#else
+#include "ExternalCodeEditor_UNIX.h"
+#endif
+
+#include <FL/Fl_Widget.H>
+#include <FL/Fl_Menu.H>
+#include <FL/fl_draw.H>
+#include <FL/fl_attr.h>
+
+#include <stdarg.h>
+#include <stdlib.h>
+
+extern Fl_Class_Type *current_class;
+
+int has_toplevel_function(const char *rtype, const char *sig);
+
+const char *c_check(const char *c, int type = 0);
+
+// ---- Fl_Function_Type declaration
+
+class Fl_Function_Type : public Fl_Type {
+ const char* return_type;
+ char public_, cdecl_, constructor, havewidgets;
+
+public:
+ Fl_Function_Type();
+ ~Fl_Function_Type();
+ Fl_Type *make();
+ void write_code1();
+ void write_code2();
+ void open();
+ int ismain() {return name_ == 0;}
+ virtual const char *type_name() {return "Function";}
+ virtual const char *title() {
+ return name() ? name() : "main()";
+ }
+ int is_parent() const {return 1;}
+ int is_code_block() const {return 1;}
+ virtual int is_public() const;
+ int pixmapID() { return 7; }
+ void write_properties();
+ void read_property(const char *);
+ int has_signature(const char *, const char*) const;
+};
+
+// ---- Fl_Code_Type declaration
+
+class Fl_Code_Type : public Fl_Type {
+ ExternalCodeEditor editor_;
+ int cursor_position_;
+
+public:
+ Fl_Code_Type();
+ Fl_Type *make();
+ void write();
+ void write_code1();
+ void write_code2() { }
+ void open();
+ virtual const char *type_name() {return "code";}
+ int is_code_block() const {return 0;}
+ int is_code() const {return 1;}
+ int pixmapID() { return 8; }
+ virtual int is_public() const { return -1; }
+ int is_editing();
+ int reap_editor();
+ int handle_editor_changes();
+};
+
+// ---- Fl_CodeBlock_Type declaration
+
+class Fl_CodeBlock_Type : public Fl_Type {
+ const char* after;
+
+public:
+ Fl_CodeBlock_Type();
+ ~Fl_CodeBlock_Type();
+ Fl_Type *make();
+ void write_code1();
+ void write_code2();
+ void open();
+ virtual const char *type_name() {return "codeblock";}
+ int is_code_block() const {return 1;}
+ int is_parent() const {return 1;}
+ virtual int is_public() const { return -1; }
+ int pixmapID() { return 9; }
+ void write_properties();
+ void read_property(const char *);
+};
+
+// ---- Fl_Decl_Type declaration
+
+class Fl_Decl_Type : public Fl_Type {
+
+protected:
+ char public_;
+ char static_;
+
+public:
+ Fl_Decl_Type();
+ Fl_Type *make();
+ void write_code1();
+ void write_code2() { }
+ void open();
+ virtual const char *type_name() {return "decl";}
+ void write_properties();
+ void read_property(const char *);
+ virtual int is_public() const;
+ int pixmapID() { return 10; }
+};
+
+// ---- Fl_Data_Type declaration
+
+class Fl_Data_Type : public Fl_Decl_Type {
+ const char *filename_;
+ int text_mode_;
+
+public:
+ Fl_Data_Type();
+ ~Fl_Data_Type();
+ Fl_Type *make();
+ void write_code1();
+ void write_code2() {}
+ void open();
+ virtual const char *type_name() {return "data";}
+ void write_properties();
+ void read_property(const char *);
+ int pixmapID() { return 49; }
+};
+
+// ---- Fl_DeclBlock_Type declaration
+
+class Fl_DeclBlock_Type : public Fl_Type {
+ const char* after;
+ char public_;
+
+public:
+ Fl_DeclBlock_Type();
+ ~Fl_DeclBlock_Type();
+ Fl_Type *make();
+ void write_code1();
+ void write_code2();
+ void open();
+ virtual const char *type_name() {return "declblock";}
+ void write_properties();
+ void read_property(const char *);
+ int is_parent() const {return 1;}
+ int is_decl_block() const {return 1;}
+ virtual int is_public() const;
+ int pixmapID() { return 11; }
+};
+
+// ---- Fl_Comment_Type declaration
+
+class Fl_Comment_Type : public Fl_Type {
+ char in_c_, in_h_, style_;
+ char title_buf[64];
+
+public:
+ Fl_Comment_Type();
+ Fl_Type *make();
+ void write_code1();
+ void write_code2() { }
+ void open();
+ virtual const char *type_name() {return "comment";}
+ virtual const char *title(); // string for browser
+ void write_properties();
+ void read_property(const char *);
+ virtual int is_public() const { return 1; }
+ virtual int is_comment() const { return 1; }
+ int pixmapID() { return 46; }
+};
+
+// ---- Fl_Class_Type declaration
+
+class Fl_Class_Type : public Fl_Type {
+ const char* subclass_of;
+ char public_;
+ const char* class_prefix;
+
+public:
+ Fl_Class_Type();
+ ~Fl_Class_Type();
+ // state variables for output:
+ char write_public_state; // true when public: has been printed
+ Fl_Class_Type* parent_class; // save class if nested
+//
+ Fl_Type *make();
+ void write_code1();
+ void write_code2();
+ void open();
+ virtual const char *type_name() {return "class";}
+ int is_parent() const {return 1;}
+ int is_decl_block() const {return 1;}
+ int is_class() const {return 1;}
+ virtual int is_public() const;
+ int pixmapID() { return 12; }
+ void write_properties();
+ void read_property(const char *);
+
+ // class prefix attribute access
+ void prefix(const char* p);
+ const char* prefix() const {return class_prefix;}
+ int has_function(const char*, const char*) const;
+};
+
+#endif // _FLUID_FL_FUNCTION_TYPE_H