November 13, 2009
SelectionListener for calendar is called twice after button has been pressed. You have to select other than today's date first.
I want for the listener to trigger only once.

What am I doing wrong?


November 13, 2009
Mitja Wrote:

> SelectionListener for calendar is called twice after button has been pressed. You have to select other than today's date first.
> I want for the listener to trigger only once.
> 
> What am I doing wrong?
> 
module datetime;

import Clock = tango.time.Clock;
import tango.io.Stdout;

import dwt.DWT;
import dwt.widgets.Button;
import dwt.widgets.Shell;
import dwt.widgets.Display;
import dwt.widgets.DateTime;
import dwt.layout.GridLayout;
import dwt.widgets.Listener;
import dwt.widgets.Event;
import dwt.events.SelectionAdapter;
import dwt.events.SelectionEvent;

void main()
{
    Display display = new Display;
    Shell shell = new Shell(display);
    shell.setLayout(new GridLayout(1, false));

    DateTime calendar = new DateTime(shell, DWT.CALENDAR);

    calendar.addSelectionListener(new class(calendar) SelectionAdapter
    {
	DateTime cal;
	this(DateTime cal)
	{
	    this.cal = calendar;
	}
	public void widgetSelected(SelectionEvent e)
	{
	    Stdout("selected").newline;
	}
    });

    Button b = new Button(shell, DWT.NONE);
    b.setText("TODAY");

    b.addListener(DWT.Selection, new class(calendar) Listener
    {
	DateTime cal;
	this(DateTime d)
	{
	    this.cal = calendar;
	}
	public void handleEvent(Event event)
	{
	    auto date = Clock.Clock().toDate.date;
	    this.cal.setDate(date.year, date.month - 1, date.day);
	}
    });

    shell.open;
    while(!shell.isDisposed)
    {
	if(!display.readAndDispatch)
	    display.sleep;
    }
    display.dispose;
}

November 14, 2009
Windows/Linux/Mac ?
Please provide more information.
I tried it on winxp with no problem.
November 16, 2009
Linux 2.6.18-5-686 Debian Lenny
DMD v1.033
Tango 0.99.7
DWT 3.4-1

Frank Benoit Wrote:

> Windows/Linux/Mac ?
> Please provide more information.
> I tried it on winxp with no problem.

Top | Discussion index | About this forum | D home