LMMS
Loading...
Searching...
No Matches
Fl_Osc_ListView.cpp
Go to the documentation of this file.
1/*
2 ZynAddSubFX - a software synthesizer
3
4 Fl_Osc_ListView.cpp - OSC Based List View
5 Copyright (C) 2016 Mark McCurry
6
7 This program is free software; you can redistribute it and/or
8 modify it under the terms of the GNU General Public License
9 as published by the Free Software Foundation; either version 2
10 of the License, or (at your option) any later version.
11*/
12#include "Fl_Osc_ListView.H"
13#include "Fl_Osc_Pane.H"
14#include <cstdio>
15#include <rtosc/rtosc.h>
16
17Fl_Osc_ListView::Fl_Osc_ListView(int x,int y, int w, int h, const char *label)
18 :Fl_Browser(x,y,w,h,label), data(0)
19{}
20
22{
23 delete data;
24};
25
26void Fl_Osc_ListView::init(const char *path_)
27{
28 Fl_Osc_Pane *pane = fetch_osc_pane(this);
29 assert(pane);
30 osc = pane->osc;
31 loc = pane->base;
32 assert(osc);
33 path = path_;
35 data->callback = [this](Osc_SimpleListModel::list_t l){this->doUpdate(l);};
36 data->doUpdate(loc+path_);
37}
38
40{
41 this->clear();
42 for(int i=0; i<(int)l.size(); ++i) {
43 this->add(l[i].c_str());
44 }
45}
47{
48 data->doUpdate(loc+path);
49}
50
51void Fl_Osc_ListView::insert(std::string s, int offset)
52{
53 assert(offset);
54 data->list.insert(data->list.begin()+offset-1, s);
55 data->apply();
56 //fprintf(stderr, "UNIMPLEMENTED\n");
57}
58void Fl_Osc_ListView::append(std::string s)
59{
60 data->list.push_back(s);
61 data->apply();
62}
64{
65 assert(i);
66 assert(j);
67 auto &list = data->list;
68 std::string value = list[j-1];
69 list.erase(list.begin()+j-1);
70 list.insert(list.begin()+i-1, value);
71 //std::swap(data->list[i-1], data->list[j-1]);
72 data->apply();
73}
75{
76 assert(offset);
77 data->list.erase(data->list.begin()+offset-1);
78 data->apply();
79}
81{
82}
assert(0)
void doMove(int i, int j)
Definition Fl_Osc_ListView.cpp:63
Osc_SimpleListModel * data
Definition Fl_Osc_ListView.H:36
void insert(std::string s, int offset)
Definition Fl_Osc_ListView.cpp:51
void update(void)
Definition Fl_Osc_ListView.cpp:46
virtual ~Fl_Osc_ListView(void)
Definition Fl_Osc_ListView.cpp:21
std::string path
Definition Fl_Osc_ListView.H:35
void init(const char *path_)
Definition Fl_Osc_ListView.cpp:26
Fl_Osc_ListView(int x, int y, int w, int h, const char *label=0)
Definition Fl_Osc_ListView.cpp:17
void doUpdate(Osc_SimpleListModel::list_t l)
Definition Fl_Osc_ListView.cpp:39
void sendUpdate() const
Definition Fl_Osc_ListView.cpp:80
void doRemove(int offset)
Definition Fl_Osc_ListView.cpp:74
void append(std::string s)
Definition Fl_Osc_ListView.cpp:58
Definition Fl_Osc_Pane.H:20
std::string base
Definition Fl_Osc_Pane.H:24
class Fl_Osc_Interface * osc
Definition Fl_Osc_Pane.H:23
Fl_Osc_Interface * osc
Definition Fl_Osc_Widget.H:65
std::string loc
Definition Fl_Osc_Widget.H:62
class Fl_Osc_Pane * fetch_osc_pane(Fl_Widget *w)
Definition Fl_Osc_Widget.cpp:103
Definition Osc_SimpleListModel.h:19
std::vector< std::string > list_t
Definition Osc_SimpleListModel.h:27
UINT_D64 w
Definition inflate.c:942
int * l
Definition inflate.c:1579
register unsigned j
Definition inflate.c:1576
int y
Definition inflate.c:1588
register unsigned i
Definition inflate.c:1575
unsigned s
Definition inflate.c:1555
unsigned x[BMAX+1]
Definition inflate.c:1586
static PuglViewHint int value
Definition pugl.h:1708
uch h[RAND_HEAD_LEN]
Definition crypt.c:459
typedef int(UZ_EXP MsgFn)()