Changeset 58

Show
Ignore:
Timestamp:
03/30/08 20:23:06 (5 months ago)
Author:
Chris Miller
Message:

More ToolBar? features.

Files:

Legend:

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

    r57 r58  
    20602060    enum: BYTE 
    20612061    { 
     2062        TBSTATE_CHECKED = 0x01, 
     2063        TBSTATE_PRESSED = 0x02, 
    20622064        TBSTATE_ENABLED = 0x04, 
     2065        TBSTATE_HIDDEN = 0x08, 
     2066        TBSTATE_INDETERMINATE = 0x10, 
     2067        TBSTATE_WRAP = 0x20, 
     2068        TBSTATE_ELLIPSES = 0x40, 
     2069        TBSTATE_MARKED = 0x80, 
    20632070    } 
    20642071     
     
    20742081    enum: UINT 
    20752082    { 
     2083        TB_SETSTATE = WM_USER + 17, 
    20762084        TB_ADDBUTTONSA = WM_USER + 20, 
    20772085        TB_INSERTBUTTONA = WM_USER + 21, 
     
    20792087        TB_GETITEMRECT = WM_USER + 29, 
    20802088        TB_BUTTONSTRUCTSIZE = WM_USER + 30, 
     2089        TB_SETBUTTONSIZE = WM_USER + 31, 
    20812090        TB_SETIMAGELIST = WM_USER + 48, 
    20822091        TB_INSERTBUTTONW = WM_USER + 67, 
  • trunk/win32/dfl/toolbar.d

    r57 r58  
    9393    final void style(ToolBarButtonStyle st) // setter 
    9494    { 
    95         this._st = st; 
     95        this._style = st; 
    9696         
    9797        //if(tbar && tbar.created) 
     
    102102    final ToolBarButtonStyle style() // getter 
    103103    { 
    104         return _st
     104        return _style
    105105    } 
    106106     
     
    190190     
    191191    /// 
     192    final void visible(bool byes) // setter 
     193    { 
     194        if(byes) 
     195            _state &= ~TBSTATE_HIDDEN; 
     196        else 
     197            _state |= TBSTATE_HIDDEN; 
     198         
     199        if(tbar && tbar.created) 
     200            tbar.prevwproc(TB_SETSTATE, _id, MAKELPARAM(_state, 0)); 
     201    } 
     202     
     203    /// ditto 
    192204    final bool visible() // getter 
    193205    { 
     
    195207            return false; 
    196208        return true; // To-do: get actual hidden state. 
     209    } 
     210     
     211     
     212    /// 
     213    final void enabled(bool byes) // setter 
     214    { 
     215        if(byes) 
     216            _state |= TBSTATE_ENABLED; 
     217        else 
     218            _state &= ~TBSTATE_ENABLED; 
     219         
     220        if(tbar && tbar.created) 
     221            tbar.prevwproc(TB_SETSTATE, _id, MAKELPARAM(_state, 0)); 
     222    } 
     223     
     224    /// ditto 
     225    final bool enabled() // getter 
     226    { 
     227        if(_state & TBSTATE_ENABLED) 
     228            return true; 
     229        return false; 
     230    } 
     231     
     232     
     233    /// 
     234    final void pushed(bool byes) // setter 
     235    { 
     236        if(byes) 
     237            _state = (_state & ~TBSTATE_INDETERMINATE) | TBSTATE_CHECKED; 
     238        else 
     239            _state &= ~TBSTATE_CHECKED; 
     240         
     241        if(tbar && tbar.created) 
     242            tbar.prevwproc(TB_SETSTATE, _id, MAKELPARAM(_state, 0)); 
     243    } 
     244     
     245    /// ditto 
     246    final bool pushed() // getter 
     247    { 
     248        if(TBSTATE_CHECKED == (_state & TBSTATE_CHECKED)) 
     249            return true; 
     250        return false; 
     251    } 
     252     
     253     
     254    /// 
     255    final void partialPush(bool byes) // setter 
     256    { 
     257        if(byes) 
     258            _state = (_state & ~TBSTATE_CHECKED) | TBSTATE_INDETERMINATE; 
     259        else 
     260            _state &= ~TBSTATE_INDETERMINATE; 
     261         
     262        if(tbar && tbar.created) 
     263            tbar.prevwproc(TB_SETSTATE, _id, MAKELPARAM(_state, 0)); 
     264    } 
     265     
     266    /// ditto 
     267    final bool partialPush() // getter 
     268    { 
     269        if(TBSTATE_INDETERMINATE == (_state & TBSTATE_INDETERMINATE)) 
     270            return true; 
     271        return false; 
    197272    } 
    198273     
     
    203278    Dstring _text; 
    204279    Object _tag; 
    205     ToolBarButtonStyle _st = ToolBarButtonStyle.PUSH_BUTTON; 
     280    ToolBarButtonStyle _style = ToolBarButtonStyle.PUSH_BUTTON; 
     281    BYTE _state = TBSTATE_ENABLED; 
    206282    version(DFL_TOOLBAR_NO_MENU) 
    207283    { 
     
    537613        xtb.idCommand = tbb._id; 
    538614        xtb.dwData = cast(DWORD)cast(void*)tbb; 
    539         xtb.fsState = TBSTATE_ENABLED
    540         xtb.fsStyle = TBSTYLE_AUTOSIZE | tbb._st; // TBSTYLE_AUTOSIZE factors in the text's width instead of default button size. 
     615        xtb.fsState = tbb._state
     616        xtb.fsStyle = TBSTYLE_AUTOSIZE | tbb._style; // TBSTYLE_AUTOSIZE factors in the text's width instead of default button size. 
    541617        LRESULT lresult; 
    542618        // MSDN says iString can be either an int offset or pointer to a string buffer.