Jump to content

Recommended Posts

Posted

I want associate a multi line tip text to each tab items using GUICtrlSetTip.

I have recreated a simple example :

#include <GUIConstantsEx.au3>

GUICreate("My GUI Tab", 250, 150); will create a dialog box that when displayed is centered

GUISetBkColor(0x00E0FFFF)
GUISetFont(9, 300)

$sTipTxt1 = 'Line 1 : Paul' & @CR & _
    'Line 2 : Jo' & @CR & _
    'Line 3 : Al' & @CR & _
    'Line 4 : Steve'

$sTipTxt2 = 'Line 1 : Marc' & @CR & _
    'Line 6 : Mickael' & @CR & _
    'Line 7 : Franck'
Local $idTab = GUICtrlCreateTab(10, 10, 200, 100)

$idTabItem0 = GUICtrlCreateTabItem("tab0")

$idTabItem1 = GUICtrlCreateTabItem("tab----1")

$idTabItem2 = GUICtrlCreateTabItem("tab2")
GUICtrlSetState(-1, $GUI_SHOW); will be display first

GUICtrlCreateTabItem(""); end tabitem definition
GUICtrlCreateLabel("Label With Tip", 20, 130, 250, 20)
GUISetState(@SW_SHOW)

GUICtrlSetTip ( -1, $sTipTxt1, ' ', 1, 1 )
GUICtrlSetTip ( $idTabItem0, $sTipTxt2, ' ', 1, 1 )
GUICtrlSetTip ( $idTabItem1, $sTipTxt1, ' ', 1, 1 )
GUICtrlSetTip ( $idTabItem2, $sTipTxt2, ' ', 1, 1 )

Local $idMsg
; Loop until the user exits.
While 1
    $idMsg = GUIGetMsg()
    If $idMsg = $GUI_EVENT_CLOSE Then ExitLoop
    If $idMsg = $idTab Then
        ; display the clicked tab
        WinSetTitle("My GUI Tab", "", "My GUI Tab" & GUICtrlRead($idTab))
    EndIf
WEnd

Nothing found about that in help file or wiki/Tabs.

I have only seen that GUICtrlSetTip for tabitems sets incorrectly in certain situations

but i also seen it was fixed for the 3.3.10.0 AutoIt version.

So... may be not in case of multi lines

 

AutoIt 3.3.14.2 X86 - SciTE 3.6.0WIN 8.1 X64 - Other Example Scripts

Posted (edited)

I start from this:

And I make this:

#include <GuiConstantsEx.au3>
#include <GuiTab.au3>
#include <StaticConstants.au3>

; Tab colours
Global $aTabColours[4] = [0xFFC0C0, 0xC0FFC0, 0xC0C0FF, 0xC0C0C0]

; Create GUI
Global $hGUI = GUICreate("Test", 400, 300)
GUISetBkColor(0)

; Create label to cover tab "tab"
Global $ahColourTab[4]
For $i = 0 To 3
    $ahColourTab[$i] = GUICtrlCreateLabel("", 0, 0, 1, 1, BitOR($SS_NOTIFY, $SS_CENTER, $SS_SUNKEN))
Next
;~ Global $hColourTab = GUICtrlCreateLabel("", 0, 0, 1, 1, BitOR($SS_NOTIFY, $SS_CENTER, $SS_SUNKEN))

; Create tab
Global $hTab = GUICtrlCreateTab(5, 5, 390, 290)
Global $hTab_Handle = GUICtrlGetHandle($hTab)

$sTipTxt1 = 'Line 1 : Paul' & @CR & _
        'Line 2 : Jo' & @CR & _
        'Line 3 : Al' & @CR & _
        'Line 4 : Steve'

GUICtrlSetTip($ahColourTab[0], $sTipTxt1, ' ', 1, 1)


; Create tab items and colour them
Local $idTemp = 0
For $i = 0 To 3
    GUICtrlCreateTabItem("Tab item - " & $i)
    _GUICtrlTab_SetBkColor($hGUI, $hTab, $aTabColours[$i])
    GUICtrlCreateLabel('This is TAB #' & $i & ' content.', 100, 50)
    GUICtrlCreateTabItem("")
Next



GUISetState()

; Pre sets of colours
For $i = 3 To 0 Step -1
    _GUICtrlTab_ClickTab($hTab_Handle, $i)
    TabEvent()
Next
_GUICtrlTab_SetCurSel($hTab_Handle, 0)
_GUICtrlTab_SetCurFocus($hTab_Handle, 0)
TabEvent()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $ahColourTab[0]
            _GUICtrlTab_ClickTab($hTab_Handle, 0)
        Case $ahColourTab[1]
            _GUICtrlTab_ClickTab($hTab_Handle, 1)
        Case $ahColourTab[2]
            _GUICtrlTab_ClickTab($hTab_Handle, 2)
        Case $ahColourTab[3]
            _GUICtrlTab_ClickTab($hTab_Handle, 3)
;~         Case $hTab ; not needed because you click in Label not in Tab
;~             TabEvent()
    EndSwitch
WEnd

Func TabEvent()

    ; Set values
    Local $iTab_X = 5, $iTab_Y = 5, $iTab_Margin = 1
    ; Get index of current tab
    Local $iTab_Index = GUICtrlRead($hTab)
    ; Get coordinates of TabItem
    Local $aTab_Coord = _GUICtrlTab_GetItemRect($hTab_Handle, $iTab_Index)
    ; Get text of TabItem
    Local $sTab_Text = _GUICtrlTab_GetItemText($hTab_Handle, $iTab_Index)
    ; Place label
    GUICtrlSetPos($ahColourTab[$iTab_Index], $iTab_X + $aTab_Coord[0] + $iTab_Margin, $iTab_Y + $aTab_Coord[1] + $iTab_Margin, $aTab_Coord[2] - $aTab_Coord[0] - ($iTab_Margin * 2), $aTab_Coord[3] - $aTab_Coord[1] - ($iTab_Margin * 2) + 5)
    ; Set text
    GUICtrlSetData($ahColourTab[$iTab_Index], $sTab_Text)
    ; Set colour
    GUICtrlSetBkColor($ahColourTab[$iTab_Index], $aTabColours[$iTab_Index])
    ; Set focus
    _GUICtrlTab_SetCurFocus($hTab_Handle, $iTab_Index)

EndFunc   ;==>TabEvent

Func _GUICtrlTab_SetBkColor($hWnd, $hSysTab32, $sBkColor)

    ; Get tab position
    Local $aTabPos = ControlGetPos($hWnd, "", $hSysTab32)
    ; Get size of user area
    Local $aTab_Rect = _GUICtrlTab_GetItemRect($hSysTab32, -1)
    ; Create label
    GUICtrlCreateLabel("", $aTabPos[0] + 2, $aTabPos[1] + $aTab_Rect[3] + 4, $aTabPos[2] - 6, $aTabPos[3] - $aTab_Rect[3] - 7)
    ; Colour label
    GUICtrlSetBkColor(-1, $sBkColor)
    ; Disable label
    GUICtrlSetState(-1, $GUI_DISABLE)

EndFunc   ;==>_GUICtrlTab_SetBkColor

 

EDIT: Added here:

https://www.autoitscript.com/wiki/Tabs#Related_links

 

Edited by mLipok

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted (edited)
  On 9/23/2015 at 2:38 PM, wakillon said:

I have only seen that GUICtrlSetTip for tabitems sets incorrectly in certain situations

but i also seen it was fixed for the 3.3.10.0 AutoIt version.

So... may be not in case of multi lines

What do you mean "seen it was fixed for the 3.3.10.0" ?

 

I try with 3.3.10.2 and I see this as not fixed.

 

Edited by mLipok
typo

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted

Well now everything is clearly explained.
Let's wait for the response of others.

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Posted

Yes, but previously, I overlooked that you are refering to old fixed bug.

Signature beginning:
Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Codefor other useful stuff click the following button:

  Reveal hidden contents

Signature last update: 2023-04-24

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...