GTKD - CSS class color "flash" delay

TheDGuy via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Jun 25 15:10:40 PDT 2016


On Saturday, 25 June 2016 at 21:57:35 UTC, TheDGuy wrote:
> But i want to flash (e.g. change the CSS class) the buttons one 
> by one and not all at the sime time? How am i going to do that?

Okay, i tried it with a new private int-variable which contains 
the current index of the for-loop, like this:

     private void letButtonsFlash(){
         foreach(Button btn;bArr){
             btn.setSensitive(false);
         }
         for(int i = 0; i < level; i++){
             index = i; //index is public
             Button currentButton = bArr[rndButtonBlink[i]];
             ListG list = 
currentButton.getStyleContext().listClasses();
             string CSSClassName = 
to!string(cast(char*)list.next().data);
             currentButton.getStyleContext().addClass(CSSClassName 
~ "-flash");
             Timeout t = new Timeout(&timeout_delay,1,false);
         }

         foreach(Button btn;bArr){
             btn.setSensitive(true);
         }
     }
     bool timeout_delay(){
         Button currentButton = bArr[rndButtonBlink[index]];
         ListG list = 
currentButton.getStyleContext().listClasses();
         string CSSClassName = 
to!string(cast(char*)list.next().data);
         currentButton.getStyleContext().removeClass(CSSClassName 
~ "-flash");
         return false;
     }

But now the strange thing happens, that the first button lights 
up as expected but the second button remains at its "flash color" 
and doesn't go back to normal color, i don't understand why this 
happens? Any ideas?


More information about the Digitalmars-d-learn mailing list