diff options
author | Rodrigo Arias Mallo <rodarima@gmail.com> | 2024-12-10 22:30:12 +0100 |
---|---|---|
committer | Rodrigo Arias Mallo <rodarima@gmail.com> | 2024-12-10 22:30:12 +0100 |
commit | 429d5f88b94ff28416cbfc6420b6389fa284df97 (patch) | |
tree | fb6fdaf7731de1ef396f98b748c56f3149801c84 /objects/objview_stacktrace.hh |
Import RTFL 0.1.1v0.1.1
Diffstat (limited to 'objects/objview_stacktrace.hh')
-rw-r--r-- | objects/objview_stacktrace.hh | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/objects/objview_stacktrace.hh b/objects/objview_stacktrace.hh new file mode 100644 index 0000000..5ea8d7e --- /dev/null +++ b/objects/objview_stacktrace.hh @@ -0,0 +1,60 @@ +#ifndef __OBJECTS_OBJVIEW_STRACKTRACE_HH__ +#define __OBJECTS_OBJVIEW_STRACKTRACE_HH__ + +#include <FL/Fl_Window.H> +#include <FL/Fl_Hold_Browser.H> + +#include "lout/object.hh" + +namespace rtfl { + +namespace objects { + +class ObjViewFunction +{ +public: + virtual char *createName () = 0; + virtual void freeName (char *name) = 0; + virtual int getColor () = 0; // as 0xRRGGBB + virtual ObjViewFunction *getParent () = 0; + virtual bool isSelectable () = 0; + virtual void select () = 0; +}; + +class ObjViewStacktraceWindow; + +// Somewhat simpler than using signals +class ObjViewListener +{ +public: + virtual ~ObjViewListener () { } + virtual void close (ObjViewStacktraceWindow *window) = 0; +}; + +class ObjViewStacktraceWindow: public Fl_Window, public lout::object::Object +{ +private: + enum { WIDTH = 450, HEIGHT = 300, BUTTON_WIDTH = 80, BUTTON_HEIGHT = 25, + SPACE = 10 }; + + Fl_Hold_Browser *browser; + ObjViewFunction *topFunction; + ObjViewListener *listener; + + static void windowCallback (Fl_Widget *widget, void *data); + static void jumpTo (Fl_Widget *widget, void *data); + static void close (Fl_Widget *widget, void *data); + +public: + ObjViewStacktraceWindow (ObjViewFunction *topFunction, + ObjViewListener *listener); + ~ObjViewStacktraceWindow (); + + void update (); +}; + +} // namespace objects + +} // namespace rtfl + +#endif // __OBJECTS_OBJVIEW_STRACKTRACE_HH__ |