[M1 Mac, Big Sur 11.6.7, FLTK 1.3.8, clang 13.0.0, no IDE]
Guiファイルについてはincludeのところを修正しました。
std_lib_facilities.hはストラウストラップ氏のホームページに公開しています。
#ifndef GUI_GUARD
#define GUI_GUARD
#include "Point.h"
#include <FL/Fl_Widget.H>
#include "Window.h"
namespace Graph_lib {
typedef void* Address;
typedef void (*Callback)(Address,Address);
template<class W> W& reference_to(Address pw)
{
return *static_cast<W*>(pw);
}
class Widget {
public:
Widget(Point xy, int w, int h, const string& s, Callback cb)
:loc(xy), width(w), height(h), label(s), do_it(cb)
{ }
virtual void move(int dx,int dy) { hide(); pw->position(loc.x+=dx, loc.y+=dy); show(); }
virtual void hide() { pw->hide(); }
virtual void show() { pw->show(); }
virtual void attach(Window&) = 0;
Point loc;
int width;
int height;
string label;
Callback do_it;
virtual ~Widget() { }
Gui.h, Gui.cpp 全ソースコード
Window.h, Window.cpp 全ソースコード
Simple_window.h, Point.h, main.cpp 全ソースコード