[Windows11, Visual C++2017, FLTK 1.3.8, GNU Make 3.81, NO IDE]
カラーアプリのアドオンライセンス確認ダイアログから遷移させて、説明ダイアログを表示するようにしました。
スキル的に特筆することはありませんが、FLTKのlibファイルが不足していたためにFl_PNG_Imageまわりでエラーが大量発生し少々あせりました。Makefileを修正してことなきを得ました。
#include "AddOnPurchase.h"
#include "AddOnDialog.h"
#include <string>
#include <vector>
using std::vector; using std::string;
extern vector<string> AddOnLabels;
AddOnPurchase::AddOnPurchase(int w, int h, const char* title)
: Fl_Double_Window(w, h, title) {
int ws1, hs1, ws2, hs2;
int xs1, ys1, xs2, ys2;
// ボタンのサイズと位置
ws1 = 100; hs1 = 50;
ws2 = 100; hs2 = 50;
xs1 = 150; ys1 = 390;
xs2 = 350; ys2 = 390;
this->color(fl_rgb_color(238, 238, 238));
// 説明画像
Fl_Box* img_box = new Fl_Box(20, 12, 560, 360);
string img_path = "AddOnDescribe.png";
Fl_PNG_Image *png = new Fl_PNG_Image(img_path.c_str());
img_box -> image(png);
img_box -> redraw();
// Purchaseボタン
Fl_Button* md_button = new Fl_Button(xs1, ys1, ws1, hs1, AddOnLabels[4].c_str());
md_button->parent(this);
md_button->callback(PushButtonPurchase, this);
md_button->down_box(FL_UP_BOX);
md_button->labelsize(14);
// QUITボタン
Fl_Button* md_button2 = new Fl_Button(xs2, ys2, ws2, hs2, "QUIT");
md_button2->parent(this);
md_button2->callback(PushButtonQuit, this);
md_button2->down_box(FL_UP_BOX);
md_button2->labelsize(14);
resizable(this);
end();
}
AddOnPurchase::~AddOnPurchase()
{
}
void AddOnPurchase::PushButtonPurchase(Fl_Widget* widget, void* x)
{
Fl_Group* window = widget->parent();
window->hide();
}
void AddOnPurchase::PushButtonQuit(Fl_Widget* widget, void* x)
{
Fl_Group* window = widget->parent();
window->hide();
}