meow
This commit is contained in:
parent
6d6423a416
commit
3e7e4bd213
4 changed files with 222 additions and 117 deletions
|
|
@ -10,6 +10,7 @@ struct Person {
|
||||||
std::string year;
|
std::string year;
|
||||||
std::string name;
|
std::string name;
|
||||||
|
|
||||||
|
Person() = default;
|
||||||
Person(std::string &y, std::string &n);
|
Person(std::string &y, std::string &n);
|
||||||
std::string toString() const;
|
std::string toString() const;
|
||||||
|
|
||||||
|
|
|
||||||
169
src/main.cpp
169
src/main.cpp
|
|
@ -1,5 +1,6 @@
|
||||||
#include <FL/Enumerations.H>
|
#include <FL/Enumerations.H>
|
||||||
#include <FL/Fl_Group.H>
|
#include <FL/Fl_Group.H>
|
||||||
|
#include <FL/Fl_Text_Buffer.H>
|
||||||
#include <FL/Fl_Widget.H>
|
#include <FL/Fl_Widget.H>
|
||||||
#include <fstream>
|
#include <fstream>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
|
@ -19,7 +20,9 @@
|
||||||
#include <FL/Fl_Tile.H>
|
#include <FL/Fl_Tile.H>
|
||||||
#include <FL/Fl_Window.H>
|
#include <FL/Fl_Window.H>
|
||||||
#include <FL/fl_ask.H>
|
#include <FL/fl_ask.H>
|
||||||
|
#include <FL/Fl_Text_Editor.H>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
#include <ranges>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
|
@ -33,8 +36,24 @@ struct Selected {
|
||||||
Selected(Fl_Multi_Browser &browser_in) : browser(browser_in) {}
|
Selected(Fl_Multi_Browser &browser_in) : browser(browser_in) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
void show_callback(Fl_Widget *w, void * data);
|
// void show_callback(Fl_Widget *w, void * data);
|
||||||
void add_callback(Fl_Widget *w, void * data);
|
// void add_callback(Fl_Widget *w, void * data);
|
||||||
|
|
||||||
|
|
||||||
|
struct ProjectItem {
|
||||||
|
BasicEntry e;
|
||||||
|
std::string notes;
|
||||||
|
|
||||||
|
ProjectItem(const BasicEntry& in) {
|
||||||
|
e = in;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void loadState(Fl_Widget * w, void *data);
|
||||||
|
void SaveNote(Fl_Widget * w, void * data);
|
||||||
|
|
||||||
|
|
||||||
std::vector<BasicEntry> MakeEntires(std::string filename) {
|
std::vector<BasicEntry> MakeEntires(std::string filename) {
|
||||||
|
|
@ -121,19 +140,23 @@ std::vector<BasicEntry> MakeEntires(std::string filename) {
|
||||||
}
|
}
|
||||||
|
|
||||||
struct State {
|
struct State {
|
||||||
std::vector<BasicEntry> entries;
|
std::vector<ProjectItem> entries;
|
||||||
};
|
};
|
||||||
|
|
||||||
void changelayout(Fl_Widget *w, void *meow) {
|
|
||||||
std::pair<Fl_Flex &, SummaryManager &> *in = (std::pair<Fl_Flex &, SummaryManager &> *)meow;
|
|
||||||
in->second.show();
|
|
||||||
// in->second.parent()->redraw();
|
|
||||||
// in->first.window()->redraw();
|
// void changelayout(Fl_Widget *w, void *meow) {
|
||||||
// in->first.init_sizes();
|
// std::pair<Fl_Flex &, SummaryManager &> *in = (std::pair<Fl_Flex &, SummaryManager &> *)meow;
|
||||||
in->first.layout();
|
// in->second.show();
|
||||||
in->second.redraw();
|
// // in->second.parent()->redraw();
|
||||||
// in->first.redraw();
|
// // in->first.window()->redraw();
|
||||||
}
|
// // in->first.init_sizes();
|
||||||
|
// in->first.layout();
|
||||||
|
// in->second.redraw();
|
||||||
|
// // in->first.redraw();
|
||||||
|
// }
|
||||||
|
|
||||||
struct Topbar : Fl_Group {
|
struct Topbar : Fl_Group {
|
||||||
|
|
||||||
|
|
@ -170,16 +193,23 @@ struct MainGui : Fl_Window {
|
||||||
|
|
||||||
Fl_Tile *tilebox;
|
Fl_Tile *tilebox;
|
||||||
Fl_Multi_Browser *list;
|
Fl_Multi_Browser *list;
|
||||||
SummaryManager *summaryEditor;
|
Fl_Text_Editor * notes;
|
||||||
|
Summary * summary;
|
||||||
State s;
|
State s;
|
||||||
MainGui() : Fl_Window(0, 0, 1000, 750, "MossMan :3") {
|
MainGui() : Fl_Window(0, 0, 1000, 750, "MossMan :3") {
|
||||||
topbar = new Topbar(0, 0, 1000, 50);
|
topbar = new Topbar(0, 0, 1000, 50);
|
||||||
|
|
||||||
tilebox = new Fl_Tile(0, 50, 1000, 700); // parent is maingui, will be freed at decon
|
tilebox = new Fl_Tile(0, 50, 1000, 700); // parent is maingui, will be freed at decon
|
||||||
list = new Fl_Multi_Browser(0, 50, 250, 700);
|
list = new Fl_Multi_Browser(0, 50, 250, 700);
|
||||||
summaryEditor = new SummaryManager(250, 50, 750, 700);
|
list->callback(loadState, this);
|
||||||
topbar->inspect->callback(show_callback, this);
|
summary = new Summary(250, 50, 500, 700);
|
||||||
topbar->add->callback(add_callback, this);
|
//auto notesPane = new Fl_Group(750, 50, 250, 700);
|
||||||
|
notes = new Fl_Text_Editor(750, 50, 250, 700);
|
||||||
|
notes->callback(SaveNote, this);
|
||||||
|
notes->buffer(new Fl_Text_Buffer());
|
||||||
|
|
||||||
|
// topbar->inspect->callback(show_callback, this);
|
||||||
|
// topbar->add->callback(add_callback, this);
|
||||||
|
|
||||||
tilebox->end();
|
tilebox->end();
|
||||||
|
|
||||||
|
|
@ -190,49 +220,106 @@ struct MainGui : Fl_Window {
|
||||||
|
|
||||||
|
|
||||||
void updateList(std::string filename) {
|
void updateList(std::string filename) {
|
||||||
s.entries = MakeEntires(filename);
|
auto temp = MakeEntires(filename);
|
||||||
|
|
||||||
|
s.entries = temp | std::ranges::views::transform([](auto& in) { return ProjectItem(in);}) | std::ranges::to<std::vector<ProjectItem>>();
|
||||||
|
|
||||||
|
|
||||||
for (auto e : s.entries) {
|
for (auto e : s.entries) {
|
||||||
std::cout << e << std::endl;
|
std::cout << e.e << std::endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
for (size_t i = 0; i < s.entries.size(); i++) {
|
// for (size_t i = 0; i < s.entries.size(); i++) {
|
||||||
auto e = s.entries[i];
|
// auto e = s.entries[i];
|
||||||
auto h = ((e.A.year + "/" + e.A.name) + " and " + (e.B.year + "/" + e.B.name) + " (" +
|
// auto h = ((e.A.year + "/" + e.A.name) + " and " + (e.B.year + "/" + e.B.name) + " (" +
|
||||||
std::to_string(e.Apercent) + "%, " + std::to_string(e.Bpercent) + "%)");
|
// std::to_string(e.Apercent) + "%, " + std::to_string(e.Bpercent) + "%)");
|
||||||
list->add(h.c_str(), (void *) i);
|
// list->add(h.c_str(), (void *) i);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
void show_callback(Fl_Widget *w, void *data) {
|
// void show_callback(Fl_Widget *w, void *data) {
|
||||||
MainGui *rdata = (MainGui *)data;
|
// MainGui *rdata = (MainGui *)data;
|
||||||
|
|
||||||
auto s = rdata->list->size() + 1;
|
// auto s = rdata->list->size() + 1;
|
||||||
|
|
||||||
for (size_t i = 0; i < s; i++) {
|
// for (size_t i = 0; i < s; i++) {
|
||||||
if (rdata->list->selected(i)) {
|
// if (rdata->list->selected(i)) {
|
||||||
//fl_alert("%s", rdata->list->text(i));
|
// //fl_alert("%s", rdata->list->text(i));
|
||||||
auto c = ComplexEntry(rdata->s.entries[ (size_t) rdata->list->data(i)]);
|
// auto c = ComplexEntry(rdata->s.entries[ (size_t) rdata->list->data(i)]);
|
||||||
rdata->summaryEditor->addComplex(c);
|
// rdata->summaryEditor->addComplex(c);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
void loadState(Fl_Widget * w, void *data) {
|
||||||
|
MainGui * main = (MainGui *) data;
|
||||||
|
|
||||||
|
auto selLine = main->list->value();
|
||||||
|
|
||||||
|
main->list->clear();
|
||||||
|
|
||||||
|
for (size_t i = 0; i < main->s.entries.size(); i++) {
|
||||||
|
auto e = main->s.entries[i].e;
|
||||||
|
std::string format = "";
|
||||||
|
if (main->s.entries[i].notes != "") {
|
||||||
|
format = "@b@i";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
auto h = format +
|
||||||
|
((e.A.year + "/" + e.A.name) + " and " + (e.B.year + "/" + e.B.name) + " (" +
|
||||||
|
std::to_string(e.Apercent) + "%, " + std::to_string(e.Bpercent) + "%)");
|
||||||
|
main->list->add(h.c_str(), (void *)i);
|
||||||
|
}
|
||||||
|
|
||||||
|
main->list->value(selLine);
|
||||||
|
auto i = main->list->value();
|
||||||
|
if (i != 0) {
|
||||||
|
size_t index = (size_t) main->list->data(i);
|
||||||
|
main->summary->populate(main->s.entries[index].e);
|
||||||
|
main->notes->buffer()->remove(0, main->notes->buffer()->length());
|
||||||
|
main->notes->buffer()->insert(0, main->s.entries[index].notes.c_str());
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void add_callback(Fl_Widget *w, void *data) {
|
void SaveNote(Fl_Widget * w, void * data) {
|
||||||
MainGui * rdata = (MainGui *) data;
|
MainGui * main = (MainGui *) data;
|
||||||
|
|
||||||
|
auto i = main->list->value();
|
||||||
|
if (i != 0) {
|
||||||
|
size_t index = (size_t) main->list->data(i);
|
||||||
|
auto text = main->notes->buffer()->text();
|
||||||
|
main->s.entries[index].notes = std::string(text);
|
||||||
|
std::free(text);
|
||||||
|
|
||||||
auto activetab = (Summary *) rdata->summaryEditor->tabs.value();
|
|
||||||
if (rdata->summaryEditor->tabs.child(0) == activetab) {
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
loadState(w, data);
|
||||||
|
main->redraw();
|
||||||
|
|
||||||
|
|
||||||
auto v = new ComplexEntry(activetab->entry);
|
|
||||||
rdata->summaryEditor->project_items->add(activetab->title.c_str(), v);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// void add_callback(Fl_Widget *w, void *data) {
|
||||||
|
// MainGui * rdata = (MainGui *) data;
|
||||||
|
|
||||||
|
// auto activetab = (Summary *) rdata->summaryEditor->tabs.value();
|
||||||
|
// if (rdata->summaryEditor->tabs.child(0) == activetab) {
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// auto v = new ComplexEntry(activetab->entry);
|
||||||
|
// rdata->summaryEditor->project_items->add(activetab->title.c_str(), v);
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char **argv) {
|
int main(int argc, char **argv) {
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
|
|
|
||||||
|
|
@ -47,67 +47,67 @@ void SummaryCallback(Fl_Widget * w, void * data) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void SelectionCallback(Fl_Widget * w, void * data) {
|
// void SelectionCallback(Fl_Widget * w, void * data) {
|
||||||
auto sumMan = (SummaryManager * ) data;
|
// auto sumMan = (SummaryManager * ) data;
|
||||||
if (sumMan->project_items->value() == 0) return;
|
// if (sumMan->project_items->value() == 0) return;
|
||||||
sumMan->win1->begin();
|
// sumMan->win1->begin();
|
||||||
Summary * ns = new Summary( *(ComplexEntry*) sumMan->project_items->data( sumMan->project_items->value()), 201,0, 400, sumMan->project_items->h());
|
// Summary * ns = new Summary( *(ComplexEntry*) sumMan->project_items->data( sumMan->project_items->value()), 201,0, 400, sumMan->project_items->h());
|
||||||
ns->show();
|
// ns->show();
|
||||||
sumMan->win1->end();
|
// sumMan->win1->end();
|
||||||
if (sumMan->s != NULL) {
|
// if (sumMan->s != NULL) {
|
||||||
Fl::delete_widget(sumMan->s);
|
// Fl::delete_widget(sumMan->s);
|
||||||
}
|
// }
|
||||||
|
|
||||||
sumMan->s = ns;
|
// sumMan->s = ns;
|
||||||
sumMan->tabs.redraw();
|
// sumMan->tabs.redraw();
|
||||||
sumMan->win1->redraw();
|
// sumMan->win1->redraw();
|
||||||
sumMan->redraw();
|
// sumMan->redraw();
|
||||||
|
|
||||||
|
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
SummaryManager::SummaryManager(int x, int y, int w, int h)
|
// SummaryManager::SummaryManager(int x, int y, int w, int h)
|
||||||
: Fl_Group(x, y, w, h), tabs(x, y, w, h) {
|
// : Fl_Group(x, y, w, h), tabs(x, y, w, h) {
|
||||||
Fl_Group *grp1 = new Fl_Group(x, y + 30, w, h - 30, "Current Project");
|
// Fl_Group *grp1 = new Fl_Group(x, y + 30, w, h - 30, "Current Project");
|
||||||
grp1->when(FL_WHEN_CLOSED);
|
// grp1->when(FL_WHEN_CLOSED);
|
||||||
|
|
||||||
{
|
// {
|
||||||
win1 = new Fl_Window(x, y + 30, w, h - 30, "Tab1W");
|
// win1 = new Fl_Window(x, y + 30, w, h - 30, "Tab1W");
|
||||||
std::cout << "here" << std::endl;
|
// std::cout << "here" << std::endl;
|
||||||
{
|
// {
|
||||||
project_items = new Fl_Multi_Browser(0,0,200,h-160);
|
// project_items = new Fl_Multi_Browser(0,0,200,h-160);
|
||||||
project_items->callback(SelectionCallback, this);
|
// project_items->callback(SelectionCallback, this);
|
||||||
//auto butt = new Fl_Button(100, 0, 100, 200, "test");
|
// //auto butt = new Fl_Button(100, 0, 100, 200, "test");
|
||||||
}
|
// }
|
||||||
win1->end();
|
// win1->end();
|
||||||
//auto butt = new Fl_Button(0, 30, 100, 200, "nyaaa");
|
// //auto butt = new Fl_Button(0, 30, 100, 200, "nyaaa");
|
||||||
}
|
// }
|
||||||
grp1->end();
|
// grp1->end();
|
||||||
// Fl_Group *grp2 = new Fl_Group(20, 30, 280, 170, "Tab2");
|
// // Fl_Group *grp2 = new Fl_Group(20, 30, 280, 170, "Tab2");
|
||||||
// {
|
// // {
|
||||||
// }
|
// // }
|
||||||
// grp2->end();
|
// // grp2->end();
|
||||||
// Fl_Group *grp3 = new Fl_Group(20, 30, 280, 170, "Tab3");
|
// // Fl_Group *grp3 = new Fl_Group(20, 30, 280, 170, "Tab3");
|
||||||
// {
|
// // {
|
||||||
// }
|
// // }
|
||||||
// grp3->end();
|
// // grp3->end();
|
||||||
// Fl_Group *grp4 = new Fl_Group(20, 30, 280, 170, "Tab4");
|
// // Fl_Group *grp4 = new Fl_Group(20, 30, 280, 170, "Tab4");
|
||||||
// {
|
// // {
|
||||||
// }
|
// // }
|
||||||
// grp4->end();
|
// // grp4->end();
|
||||||
// Fl_Group *grp5 = new Fl_Group(20, 30, 280, 170, "Tab5");
|
// // Fl_Group *grp5 = new Fl_Group(20, 30, 280, 170, "Tab5");
|
||||||
// {
|
// // {
|
||||||
// }
|
// // }
|
||||||
// grp5->end();
|
// // grp5->end();
|
||||||
tabs.end();
|
// tabs.end();
|
||||||
tabs.handle_overflow(Fl_Tabs::OVERFLOW_DRAG);
|
// tabs.handle_overflow(Fl_Tabs::OVERFLOW_DRAG);
|
||||||
|
|
||||||
tabs.resizable(grp1);
|
// tabs.resizable(grp1);
|
||||||
|
|
||||||
end();
|
// end();
|
||||||
box(FL_FLAT_BOX);
|
// box(FL_FLAT_BOX);
|
||||||
}
|
// }
|
||||||
|
|
||||||
void style_unfinn_cb(int, void *a) {}
|
void style_unfinn_cb(int, void *a) {}
|
||||||
|
|
||||||
|
|
@ -149,6 +149,10 @@ std::string htmlCodesToNormal(std::string in) {
|
||||||
|
|
||||||
|
|
||||||
void LoadReport(std::string s, Fl_Text_Buffer * text, Fl_Text_Buffer * style) {
|
void LoadReport(std::string s, Fl_Text_Buffer * text, Fl_Text_Buffer * style) {
|
||||||
|
|
||||||
|
text->remove(0,text->length());
|
||||||
|
style->remove(0, style->length());
|
||||||
|
|
||||||
std::istringstream stream(s);
|
std::istringstream stream(s);
|
||||||
|
|
||||||
std::string line;
|
std::string line;
|
||||||
|
|
@ -203,8 +207,14 @@ void LoadReport(std::string s, Fl_Text_Buffer * text, Fl_Text_Buffer * style) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Summary::Summary(ComplexEntry c, int x, int y, int w, int h) : Fl_Group(x, y, w, h, "Loading..."), entry(c) {
|
|
||||||
title = c.basic.A.name + "+" + c.basic.B.name + "(" + std::to_string(c.basic.Apercent) + "%," + std::to_string(c.basic.Bpercent) + "%)";
|
|
||||||
|
|
||||||
|
|
||||||
|
Summary::Summary(int x, int y, int w, int h) : Fl_Group(x, y, w, h, "Loading...") {
|
||||||
|
//title = c.basic.A.name + "+" + c.basic.B.name + "(" + std::to_string(c.basic.Apercent) + "%," + std::to_string(c.basic.Bpercent) + "%)";
|
||||||
|
|
||||||
|
title = "";
|
||||||
this->label(title.c_str());
|
this->label(title.c_str());
|
||||||
this->when(FL_WHEN_CLOSED);
|
this->when(FL_WHEN_CLOSED);
|
||||||
Fl_Window * win = new Fl_Window(x, y, w, h);
|
Fl_Window * win = new Fl_Window(x, y, w, h);
|
||||||
|
|
@ -227,14 +237,10 @@ Summary::Summary(ComplexEntry c, int x, int y, int w, int h) : Fl_Group(x, y, w,
|
||||||
s2->buffer(s2buff);
|
s2->buffer(s2buff);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// s1style_buff->insert(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
|
// s1style_buff->insert(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");
|
||||||
// std::cout << c.A_buf.c_str() << std::endl;
|
// std::cout << c.A_buf.c_str() << std::endl;
|
||||||
// s1->insert(c.A_buf.c_str());
|
// s1->insert(c.A_buf.c_str());
|
||||||
|
|
||||||
LoadReport(c.A_buf, s1buff, s1style_buff);
|
|
||||||
LoadReport(c.B_buf, s2buff, s2style_buff);
|
|
||||||
|
|
||||||
// s2->buffer()->insert(0, c.B_buf.c_str());
|
// s2->buffer()->insert(0, c.B_buf.c_str());
|
||||||
|
|
||||||
|
|
@ -251,6 +257,15 @@ Summary::Summary(ComplexEntry c, int x, int y, int w, int h) : Fl_Group(x, y, w,
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Summary::populate(const ComplexEntry& c) {
|
||||||
|
title = c.basic.A.name + "+" + c.basic.B.name + "(" + std::to_string(c.basic.Apercent) + "%," + std::to_string(c.basic.Bpercent) + "%)";
|
||||||
|
|
||||||
|
LoadReport(c.A_buf, s1buff, s1style_buff);
|
||||||
|
LoadReport(c.B_buf, s2buff, s2style_buff);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
Summary::~Summary() {
|
Summary::~Summary() {
|
||||||
std::cout << "HERE" << std::endl;
|
std::cout << "HERE" << std::endl;
|
||||||
|
|
||||||
|
|
@ -263,8 +278,10 @@ Summary::~Summary() {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void SummaryManager::addComplex(ComplexEntry& c) {
|
// void SummaryManager::addComplex(ComplexEntry& c) {
|
||||||
tabs.add(new Summary(c, this->x(), this->y() +30, this->w(), this->h() - 30));
|
// tabs.add(new Summary(c, this->x(), this->y() +30, this->w(), this->h() - 30));
|
||||||
|
|
||||||
|
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -24,27 +24,27 @@ struct Summary : Fl_Group {
|
||||||
Fl_Text_Buffer * s2buff;
|
Fl_Text_Buffer * s2buff;
|
||||||
Fl_Text_Buffer * s2style_buff;
|
Fl_Text_Buffer * s2style_buff;
|
||||||
|
|
||||||
ComplexEntry entry;
|
|
||||||
|
|
||||||
Summary(ComplexEntry c, int x, int y, int w, int h);
|
Summary(int x, int y, int w, int h);
|
||||||
|
void populate(const ComplexEntry& c);
|
||||||
~Summary();
|
~Summary();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
struct SummaryManager : Fl_Group {
|
// struct SummaryManager : Fl_Group {
|
||||||
SummaryManager(int x, int y, int w, int h);
|
// SummaryManager(int x, int y, int w, int h);
|
||||||
Fl_Tabs tabs;
|
// Fl_Tabs tabs;
|
||||||
Fl_Multi_Browser * project_items;
|
// Fl_Multi_Browser * project_items;
|
||||||
Fl_Window * win1;
|
// Fl_Window * win1;
|
||||||
Fl_Widget * s;
|
// Fl_Widget * s;
|
||||||
|
|
||||||
|
|
||||||
std::vector<Summary*> items;
|
// std::vector<Summary*> items;
|
||||||
|
|
||||||
void addComplex(ComplexEntry& c);
|
// void addComplex(ComplexEntry& c);
|
||||||
|
|
||||||
void addCurrentTabToComplex();
|
// void addCurrentTabToComplex();
|
||||||
|
|
||||||
};
|
// };
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue