Changeset 41

Show
Ignore:
Timestamp:
03/03/08 08:01:36 (7 months ago)
Author:
Chris Miller
Message:

ListView? onSelectedIndexChanged/selectedIndexChanged

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/win32/dfl/listview.d

    r12 r41  
    19091909    // TODO: 
    19101910    //  itemActivate, itemDrag 
    1911     //EventHandler selectedIndexChanged; 
    19121911    //CancelEventHandler selectedIndexChanging; // ? 
    19131912     
     
    19171916    //Event!(ListView, ItemCheckEventArgs) itemCheck; /// 
    19181917    Event!(ListView, ItemCheckedEventArgs) itemChecked; /// 
    1919      
    1920      
     1918    Event!(ListView, EventArgs) selectedIndexChanged; /// 
     1919     
     1920     
     1921    /// 
    19211922    protected void onColumnClick(ColumnClickEventArgs ea) 
    19221923    { 
     
    19471948     
    19481949     
     1950    /// 
    19491951    protected void onItemChecked(ItemCheckedEventArgs ea) 
    19501952    { 
    19511953        itemChecked(this, ea); 
     1954    } 
     1955     
     1956     
     1957    /// 
     1958    protected void onSelectedIndexChanged(EventArgs ea) 
     1959    { 
     1960        selectedIndexChanged(this, ea); 
    19521961    } 
    19531962     
     
    22022211                                if(-1 != nmlv.iItem) 
    22032212                                { 
    2204                                     UINT stchg = nmlv.uNewState ^ nmlv.uOldState; 
    2205                                     if(stchg & (3 << 12)) 
     2213                                    if(nmlv.uChanged & LVIF_STATE) 
    22062214                                    { 
    2207                                         scope ItemCheckedEventArgs ea = new ItemCheckedEventArgs(items[nmlv.iItem]); 
    2208                                         onItemChecked(ea); 
     2215                                        UINT stchg = nmlv.uNewState ^ nmlv.uOldState; 
     2216                                         
     2217                                        //if(stchg & LVIS_SELECTED) 
     2218                                        { 
     2219                                            // Only fire for the selected one; don't fire twice for old/new. 
     2220                                            if(nmlv.uNewState & LVIS_SELECTED) 
     2221                                            { 
     2222                                                onSelectedIndexChanged(EventArgs.empty); 
     2223                                            } 
     2224                                        } 
     2225                                         
     2226                                        if(stchg & (3 << 12)) 
     2227                                        { 
     2228                                            scope ItemCheckedEventArgs ea = new ItemCheckedEventArgs(items[nmlv.iItem]); 
     2229                                            onItemChecked(ea); 
     2230                                        } 
    22092231                                    } 
    22102232                                }