Editting works
This commit is contained in:
parent
0653c35de5
commit
34bde5579f
36
source/app.d
36
source/app.d
@ -25,6 +25,8 @@ void[] Serialize(VT...)(VT data){
|
|||||||
|
|
||||||
void main(string[] args)
|
void main(string[] args)
|
||||||
{
|
{
|
||||||
|
//auto color = GdkColor(0, 0x5C, 0x35, 0x66);
|
||||||
|
auto color = GdkRGBA(0.36, 0.13, 0.4, 1.0);
|
||||||
auto twoda = new TwoDA("test.2da");
|
auto twoda = new TwoDA("test.2da");
|
||||||
|
|
||||||
|
|
||||||
@ -34,7 +36,8 @@ void main(string[] args)
|
|||||||
|
|
||||||
|
|
||||||
GType type[];
|
GType type[];
|
||||||
foreach(i;0..twoda.header.length)type~=GType.STRING;
|
type~=GType.STRING;
|
||||||
|
foreach(i;1..twoda.header.length)type~=GType.STRING;
|
||||||
auto store = new ListStore(type);
|
auto store = new ListStore(type);
|
||||||
|
|
||||||
auto tree = new TreeView(store);
|
auto tree = new TreeView(store);
|
||||||
@ -42,46 +45,57 @@ void main(string[] args)
|
|||||||
tree.setHeadersVisible(true);
|
tree.setHeadersVisible(true);
|
||||||
tree.setEnableSearch(true);
|
tree.setEnableSearch(true);
|
||||||
tree.setModel(store);
|
tree.setModel(store);
|
||||||
|
tree.setProperty("enable-grid-lines", GtkTreeViewGridLines.VERTICAL);
|
||||||
|
|
||||||
foreach(index, s ; twoda.header){
|
foreach(index, s ; twoda.header){
|
||||||
|
|
||||||
CellRenderer cr;
|
CellRendererText cr;
|
||||||
writeln(index);
|
|
||||||
if(index==0){
|
if(index==0){
|
||||||
cr = new CellRendererSpin();
|
cr = new CellRendererText();
|
||||||
cr.setProperty("digits", 1);
|
|
||||||
cr.setProperty("editable", true);
|
cr.setProperty("editable", true);
|
||||||
|
cr.setProperty("background-rgba", cast(ulong)(&color));
|
||||||
|
cr.setProperty("background-set", true);
|
||||||
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
cr = new CellRendererText();
|
cr = new CellRendererText();
|
||||||
|
|
||||||
cr.setProperty("editable", true);
|
cr.setProperty("editable", true);
|
||||||
|
|
||||||
|
cr.addOnEdited((string path, string newval, CellRendererText crt){
|
||||||
|
TreeIter t = new TreeIter(tree.getModel(), path);
|
||||||
|
store.setValue(t, cast(int)crt.getData("colnumber"), newval);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
cr.setData("colnumber", cast(void*)cast(int)index);
|
||||||
|
|
||||||
|
|
||||||
//cr.setSensitive(true);
|
//cr.setSensitive(true);
|
||||||
|
|
||||||
auto col = new TreeViewColumn(s, cr, "text", index);
|
auto col = new TreeViewColumn(s, cr, "text", cast(int)index);
|
||||||
col.setResizable(true);
|
col.setResizable(true);
|
||||||
//if(index!=0) col.setReorderable(true);
|
//if(index!=0) col.setReorderable(true);
|
||||||
tree.appendColumn(col);
|
tree.appendColumn(col);
|
||||||
}
|
}
|
||||||
|
|
||||||
TreeIter iter = store.createIter();
|
TreeIter iter = new TreeIter();
|
||||||
|
|
||||||
|
|
||||||
for(int i=0 ; i<=twoda.lastLine ; i++){
|
for(int i=0 ; i<=twoda.lastLine ; i++){
|
||||||
|
store.append(iter);
|
||||||
|
//itertable~= new TreeIter(iter);
|
||||||
|
|
||||||
store.setValue(iter, 0, i);
|
store.setValue(iter, 0, i);
|
||||||
|
|
||||||
if(i in twoda.values){
|
if(i in twoda.values){
|
||||||
foreach(index, v ; twoda.values[i]){
|
foreach(index, v ; twoda.values[i]){
|
||||||
store.setValue(iter, index+1, v);
|
store.setValue(iter, cast(int)index+1, v);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
foreach(index ; 1..twoda.header.length){
|
foreach(index ; 1..twoda.header.length){
|
||||||
store.setValue(iter, index+1, "_");
|
store.setValue(iter, cast(int)index+1, "_");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
store.append(iter);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user