[M1 Mac, MacOS Ventura 13.3.1, clang 14.0.3]
スレッド番号とレス数をFl_Inputで左寄せ表示していたのですが、継承クラスで右寄せ用にしました。
narkiveという掲示板で17年前(2006年)にコードがアップされていました。クラスファイル化して使わせていただきます。ありがたいことです。
Fl_InputではGUI上のデータを編集できてしまうので、本当はFl_Boxで表示させたいのですが上手くできません。
あとレス表示欄も改行を入れるなどして見やすくしました。
次に手掛けるとしたら、スレッド一覧やスレッドのリロード、未読レスのカウントあたりでしょうか。
今のところ画像表示はできませんが、AIを使って内容の安全性を確認できたら面白いかもしれません。
それにしてもFLTKに関してはChatGPTは役に立たないどころか、あることないことでっち上げてマイナス面が大きいです。ネット情報、ユーザーの少なさの証左でもあり寂しくなります。
#include "InputRt.h"
InputRt::InputRt(int x, int y, int w, int h, const char *title = 0) : Fl_Input(x, y, w, h, title){};
InputRt::~InputRt(){}
void InputRt::draw(void){
if (input_type() == FL_HIDDEN_INPUT) return;
// Simplest to just redraw the whole box every time...
Fl_Boxtype b = box();
damage(FL_DAMAGE_ALL);
draw_box(b, color());
int xo = x()+Fl::box_dx(b);
int yo = y()+Fl::box_dy(b);
int wo = w()-Fl::box_dw(b);
int ho = h()-Fl::box_dh(b);
int wt, ht;
char buf[128];
// How long is the string to display?
strncpy(buf, value(), 128);
wt = 0; ht = 0;
fl_measure(buf, wt, ht);
// Make the text window be at the right hand end
wt = wt + 5;
xo = xo + wo - wt;
wo = wt;
// Update the text window
Fl_Input_::drawtext(xo, yo, wo, ho);
}
#include <string.h>
#include <FL/Fl.H>
#include <FL/fl_draw.H>
#include <FL/Fl_Double_Window.H>
#include <FL/Fl_Button.H>
#include <FL/Fl_Input.H>
class InputRt : public Fl_Input{
public:
InputRt(int x, int y, int w, int h, const char *title);
~InputRt();
protected:
void draw(void);
private:
};