Page 1 of 1

Toolbar tooltips gone after second button

Posted: Tue Apr 21, 2009 8:10 pm
by Fluid Byte

Code: Select all

OpenWindow(0,0,0,320,240,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)

hwndTB = CreateToolBar(0,WindowID(0))

SetWindowLong_(hwndTB,#GWL_STYLE,#WS_CHILD | #WS_VISIBLE | #CCS_NORESIZE | #CCS_NODIVIDER | #TBSTYLE_WRAPABLE)

For i=1 To 12
	ToolBarStandardButton(i,i)
	ToolBarToolTip(0,i,"ToolTip #" + Str(i))
Next

MoveWindow_(hwndTB,10,10,50,220,1)

While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend
W00t?

Posted: Tue Apr 21, 2009 8:21 pm
by rsts

Posted: Tue Apr 21, 2009 8:30 pm
by Fluid Byte
Doing this via API is not the problem ...

Code: Select all

OpenWindow(0,0,0,320,240,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)

hwndTB = CreateToolBar(0,WindowID(0))

SetWindowLong_(hwndTB,#GWL_STYLE,#WS_CHILD | #WS_VISIBLE | #CCS_NORESIZE | #CCS_NODIVIDER | #TBSTYLE_WRAPABLE | #TBSTYLE_TOOLTIPS)

For i=0 To 13 : ToolBarStandardButton(i,i) : Next

MoveWindow_(hwndTB,10,10,50,220,1)

Procedure WindowCallback(hWnd,uMsg,wParam,lParam)
    Select uMsg
        Case #WM_NOTIFY
        *pnmh.NMHDR = lParam
        
        If *pnmh\Code = #TTN_NEEDTEXT 
            *lpttt.TOOLTIPTEXT = lParam
 
            Select *lpttt\hdr\idFrom
                Case 0 : *lpttt\lpszText = @"Freehand Selection"
                Case 1 : *lpttt\lpszText = @"Selection"
                Case 2 : *lpttt\lpszText = @"Rubber"
                Case 3 : *lpttt\lpszText = @"Color Fill"
                Case 4 : *lpttt\lpszText = @"Magnifing Glass"
                Case 5 : *lpttt\lpszText = @"Pencil "
                Case 6 : *lpttt\lpszText = @"Brush"
                Case 7 : *lpttt\lpszText = @"Airbrush"
                Case 8 : *lpttt\lpszText = @"Text"
                Case 9 : *lpttt\lpszText = @"Lines"
                Case 10 : *lpttt\lpszText = @"Poly Lines"
                Case 11 : *lpttt\lpszText = @"Rectangle"
                Case 12 : *lpttt\lpszText = @"Poly Rectangle"
            EndSelect
        EndIf
    EndSelect
     
    ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

SetWindowCallback(@WindowCallback())

While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend
But why the native PB command fails with #TBSTYLE_WRAPABLE?

Posted: Tue Apr 21, 2009 8:37 pm
by rsts
I had thought it was the movewindow that caused it to fail, since without that the tooltips work, albeit on a horizontal toolbar :)

cheers

Posted: Tue Apr 21, 2009 8:59 pm
by Fluid Byte
rsts wrote:I had thought it was the movewindow that caused it to fail, ...
And you are right! :P

The tooltips have to be set after you call MoveWindow_() :wink:

Code: Select all

OpenWindow(0,0,0,320,240,"void",#PB_Window_SystemMenu | #PB_Window_ScreenCentered)

hwndTB = CreateToolBar(0,WindowID(0))

SetWindowLong_(hwndTB,#GWL_STYLE,#WS_CHILD | #WS_VISIBLE | #CCS_NORESIZE | #CCS_NODIVIDER | #TBSTYLE_WRAPABLE)

MoveWindow_(hwndTB,10,10,50,220,1)

For i=0 To 13
	ToolBarStandardButton(i,i)
   ToolBarToolTip(0,i,"ToolTip #" + Str(i+1))
Next

While WaitWindowEvent() ! #PB_Event_CloseWindow : Wend