Generalized animated info

This commit is contained in:
Crom (Thibaut CHARLES) 2014-11-19 16:24:46 +01:00
parent 53fe5511e0
commit 33ccf7d8f0
1 changed files with 37 additions and 36 deletions

View File

@ -22,7 +22,8 @@ import gtk.AccelGroup;
import gtk.HBox;
MainWindow window;
__gshared MainWindow window;
__gshared HBox statusbar;
void main(string[] args)
{
@ -87,7 +88,7 @@ void main(string[] args)
}
//Status bar
auto statusbar = new HBox(false, 0);
statusbar = new HBox(false, 0);
cont.packEnd(statusbar, false, false, 5);
statusbar.packStart(buttonRenumber, false, false, 5);
statusbar.packStart(buttonInsert, false, false, 5);
@ -126,31 +127,6 @@ void main(string[] args)
//Configure button callbacks
buttonSave.addOnClicked((Button){
Save(tree);
import core.thread;
new Thread({
Thread.getThis.sleep(dur!"msecs"(100));
auto lbl = new Label("");
lbl.setMarkup("<i>File saved</i>");
statusbar.packEnd(lbl, false, false, 5);
//Wow, much animation, very badass
lbl.setOpacity(0.0);
lbl.show();
foreach(i ; 0..20){
lbl.setOpacity(i/20.0);
Thread.getThis.sleep(dur!"msecs"(10));
}
Thread.getThis.sleep(dur!"msecs"(1500));
foreach(i ; 1..20){
lbl.setOpacity(1.0-i/20.0);
Thread.getThis.sleep(dur!"msecs"(10));
}
//Destroy
lbl.destroy();
}).start();
});
buttonOpen.addOnClicked((Button){
@ -219,8 +195,6 @@ void main(string[] args)
types~=GType.STRING;
titles~="new_col";
writeln(types);
auto store = new ListStore(types);
tree.setModel(store);
@ -273,6 +247,32 @@ int GetColumnStoreIndex(TreeView tree, int colindex){
return -1;
}
void SaySomething(string msg){
import core.thread;
new Thread({
Thread.getThis.sleep(dur!"msecs"(100));
auto lbl = new Label("");
lbl.setMarkup("<i>"~msg~"</i>");
statusbar.packEnd(lbl, false, false, 5);
//Wow, much animation, very badass
lbl.setOpacity(0.0);
lbl.show();
foreach(i ; 0..20){
lbl.setOpacity(i/20.0);
Thread.getThis.sleep(dur!"msecs"(10));
}
Thread.getThis.sleep(dur!"msecs"(1500));
foreach(i ; 1..20){
lbl.setOpacity(1.0-i/20.0);
Thread.getThis.sleep(dur!"msecs"(10));
}
//Destroy
lbl.destroy();
}).start();
}
void Save(ref TreeView tree){
auto store = cast(ListStore)tree.getModel();
if(store !is null){
@ -292,14 +292,15 @@ void Save(ref TreeView tree){
}
file.write("\n");
}while(store.iterNext(it));
}
file.flush();
file.close();
writeln("File written: ",openedFile);
}
SaySomething("Saved to "~openedFile);
}
else
writeln("Nothing to save !");
SaySomething("Nothing to save !");
}
string openedFile;
@ -384,7 +385,7 @@ auto ref SetupColumn(TreeView tree, string sName, size_t index){
store.setValue(t, cast(int)crt.getData("colnumber"), n);
}
catch(Exception e){
writeln("Not a number");
SaySomething("Not a number !");
}
});
@ -417,7 +418,7 @@ auto ref SetupColumn(TreeView tree, string sName, size_t index){
if(newname.countchars(" \t\n\r")==0)
col.setTitle(newname);
else
writeln("Unauthorized caracters in column name");
SaySomething("Spaces are forbidden in column name");
}
dlg.destroy();