Jump to content

Set GuiCtrlCreateTabItem text to file name


 Share

Recommended Posts

  • Moderators

zsutton92,

From the Help file for GUICtrlSetData: "TabItem, TreeViewItem: Replaces the text". So you just need to store the ControlID of the TabItem when you create it and then use it in that function when you want to change the title. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

zsutton92,

From the Help file for GUICtrlSetData: "TabItem, TreeViewItem: Replaces the text". So you just need to store the ControlID of the TabItem when you create it and then use it in that function when you want to change the title. :)

M23

Thanks for your help, but I am not seeing this is in the help file...What I am doing is opening a file, and I want the file name to be inserted where into the GuiCtrlCreateTabItem field.

edit:

bad grammar

Edited by zsutton92
Link to comment
Share on other sites

  • Moderators

zsutton92,

Sorry, I misunderstood what you wanted. You must already have the filename in your script (how else do you open it?) so why do you not use that name in the Create function when you create the tab item as you show in your first snippet? :huh:

; You have the file name
$sFileName = "Fred.txt"

; So use it here
GUICtrlCreateTabItem($sFileName)

Or have I missed the point again? ;)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

zsutton92,

Sorry, I misunderstood what you wanted. You must already have the filename in your script (how else do you open it?) so why do you not use that name in the Create function when you create the tab item as you show in your first snippet? :huh:

; You have the file name
$sFileName = "Fred.txt"

; So use it here
GUICtrlCreateTabItem($sFileName)

Or have I missed the point again? ;)

M23

Now we are getting somewhere. I don't declare the file name in the code...maybe this will help

;Select file to open
Local $message = "Choose a File."
Local $var = FileOpenDialog($message, @WindowsDir & "\", "Log Files (*.txt;*.log)", 1)

If @error Then
MsgBox(4096, "", "No File(s) chosen")
Else
$var = StringReplace($var, "|", @CRLF)
MsgBox(4096, "", "You Chose " & $var)
EndIf

Local $file = FileOpen($var)

; Check if file opened for reading OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
$text= FileRead($file)
FileClose($file)
;Create the main GUI
GUICreate("Log Viewer", 800, 700)
$Fing = GUICtrlCreateButton("Fing", 20, 670, 100, 20)
$Find = GUICtrlCreateButton("Find", 200, 670, 100, 20)
$hEdit = GUICtrlCreateEdit('', 20, 20, 760, 640, _
BitOR($ES_AUTOVSCROLL, $WS_VSCROLL, $ES_MULTILINE, $WS_HSCROLL, $ES_NOHIDESEL))
$new = GUICtrlCreateButton("Open", 600, 670, 100, 20)
GUICtrlSetData($hEdit,$text)
GUISetState(@SW_SHOW)

GUISetBkColor(0x00E0FFFF)
GUISetFont(9, 300)

GUICtrlCreateTab(21, 5, 100, 50)
GUICtrlCreateTabItem($file)

I do have a $file variable, but it doesn't do what I want, which I suppose is expected since I have not declared a file name. So I guess I need to declare something sort of like $sfileName= (whatever file I opened). I suppose thats a better question.

edit.

Nevermind! I have found the solution. I use the $var declaration thats already there...duh..

Edited by zsutton92
Link to comment
Share on other sites

  • Moderators

zsutton92,

I use the $var declaration thats already there

Exactly! :)

And do not worry - we all get those moments from time to time. ;)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

  • Moderators

zsutton92,

Of course. I suggest you use arrays to hold the various variables associated with each tab - along these lines:

#include <GUIConstantsEx.au3>

Global $aTabData[1][3] = [[0]] ; 0=tab 1=file 2=edit

GUICreate("Log Viewer", 800, 700)

$cNew = GUICtrlCreateButton("Open", 600, 670, 100, 20)

$cTab = GUICtrlCreateTab(10, 10, 780, 640)

_Open_File()

GUISetState(@SW_SHOW)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $cNew
            _Open_File()
    EndSwitch
WEnd

Func _Open_File()

    ;Select file to open
    Local $sMessage = "Choose a File."
    Local $sFile = FileOpenDialog($sMessage, @WindowsDir & "\", "Log Files (*.txt;*.log)", 1)
    If @error Then
        MsgBox(4096, "", "No File(s) chosen")
    Else
        $var = StringReplace($sFile, "|", @CRLF)
        MsgBox(4096, "", "You Chose " & $sFile)
    EndIf
    ; Read file
    Local $hFile = FileOpen($sFile)
    ; Check if file opened for reading OK
    If $hFile = -1 Then
        MsgBox(0, "Error", "Unable to open file.")
        Exit
    EndIf
    $sText= FileRead($hFile)
    FileClose($hFile)
    ; Create the tab and edit
    $aTabData[0][0] += 1
    ReDim $aTabData[$aTabData[0][0] + 1][3]
    $aTabData[$aTabData[0][0]][0] = GUICtrlCreateTabItem($sFile)
    $aTabData[$aTabData[0][0]][1] = $sFile
    $aTabData[$aTabData[0][0]][2] = GUICtrlCreateEdit($sText, 20, 40, 760, 600)
    GUICtrlCreateTabItem("")

EndFunc

Any questions? :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

zsutton92,

Of course. I suggest you use arrays to hold the various variables associated with each tab - along these lines:

#include <GUIConstantsEx.au3>

Global $aTabData[1][3] = [[0]] ; 0=tab 1=file 2=edit

GUICreate("Log Viewer", 800, 700)

$cNew = GUICtrlCreateButton("Open", 600, 670, 100, 20)

$cTab = GUICtrlCreateTab(10, 10, 780, 640)

_Open_File()

GUISetState(@SW_SHOW)

While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
Exit
Case $cNew
_Open_File()
EndSwitch
WEnd

Func _Open_File()

;Select file to open
Local $sMessage = "Choose a File."
Local $sFile = FileOpenDialog($sMessage, @WindowsDir & "\", "Log Files (*.txt;*.log)", 1)
If @error Then
MsgBox(4096, "", "No File(s) chosen")
Else
$var = StringReplace($sFile, "|", @CRLF)
MsgBox(4096, "", "You Chose " & $sFile)
EndIf
; Read file
Local $hFile = FileOpen($sFile)
; Check if file opened for reading OK
If $hFile = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
$sText= FileRead($hFile)
FileClose($hFile)
; Create the tab and edit
$aTabData[0][0] += 1
ReDim $aTabData[$aTabData[0][0] + 1][3]
$aTabData[$aTabData[0][0]][0] = GUICtrlCreateTabItem($sFile)
$aTabData[$aTabData[0][0]][1] = $sFile
$aTabData[$aTabData[0][0]][2] = GUICtrlCreateEdit($sText, 20, 40, 760, 600)
GUICtrlCreateTabItem("")

EndFunc

Any questions? :)

M23

Uhhh....Doesn't look right. The tabs switch...it opens with two tabs already. Care to take a look?

;tabexample.au3


#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>
mainGUI()

Func mainGUI()
;Select file to open
Local $message = "Choose a File."
Local $var = FileOpenDialog($message, @WindowsDir & "\", "Log Files (*.txt;*.log)", 1)

If @error Then
MsgBox(4096, "", "No File(s) chosen")
Else
$var = StringReplace($var, "|", @CRLF)
MsgBox(4096, "", "You Chose " & $var)
EndIf

Local $file = FileOpen($var)

; Check if file opened for reading OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
$text = FileRead($file)
FileClose($file)
;Create the main GUI
Global $aTabData[1][3] = [[0]] ; 0=tab 1=file 2=edit
GUICreate("Log Viewer", 800, 700)
$cNew = GUICtrlCreateButton("Open", 600, 670, 100, 20)
$cTab = GUICtrlCreateTab(10, 10, 780, 640)
$Fing = GUICtrlCreateButton("Fing", 20, 670, 100, 20)
$Find = GUICtrlCreateButton("Find", 200, 670, 100, 20)
$hEdit = GUICtrlCreateEdit('', 20, 20, 760, 640, _
BitOR($ES_AUTOVSCROLL, $WS_VSCROLL, $ES_MULTILINE, $WS_HSCROLL, $ES_NOHIDESEL))
$new = GUICtrlCreateButton("Open", 600, 670, 100, 20)
$aTabData[0][0] += 1
ReDim $aTabData[$aTabData[0][0] + 1][3]
$aTabData[$aTabData[0][0]][0] = GUICtrlCreateTabItem($File)
$aTabData[$aTabData[0][0]][1] = $File
$aTabData[$aTabData[0][0]][2] = GUICtrlCreateEdit($Text, 20, 40, 760, 600)
GUICtrlSetData($hEdit, $text)
GUISetState(@SW_SHOW)

GUISetBkColor(0x00E0FFFF)
GUISetFont(9, 300)

GUICtrlCreateTab(21, 1, 165, 60)
GUICtrlCreateTabItem($var)

GUISetState()

While 1
$nMsg = GUIGetMsg()
Select
Case $nMsg = $GUI_EVENT_CLOSE
ExitLoop
Case $nMsg = $Fing
Run(@ComSpec & " /c " & "C:\fing.lnk")
Case $nMsg = $Find
_GUICtrlEdit_Find($hEdit)
Case $nMsg = $new
openNew()
EndSelect
WEnd
EndFunc

Sleep(1000)

Func openNew()
Local $var = FileOpenDialog("", @WindowsDir & "\", "Log Files (*.txt;*.log)", 1)
Local $file = FileOpen($var)

; Check if file opened for reading OK
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
$textx = FileRead($file)
FileClose($file)

If @error Then
MsgBox(4096, "", "No File(s) chosen")
Else
$var = StringReplace($var, "|", @CRLF)
MsgBox(4096, "", "You Chose " & $var)
EndIf

$Fing = GUICtrlCreateButton("Fing", 20, 670, 100, 20, $BS_ICON)
$Find = GUICtrlCreateButton("Find", 200, 670, 100, 20)
$hEditx = GUICtrlCreateEdit('', 20, 20, 760, 640, _
BitOR($ES_AUTOVSCROLL, $WS_VSCROLL, $ES_MULTILINE, $WS_HSCROLL, $ES_NOHIDESEL))
$new = GUICtrlCreateButton("Open", 600, 670, 100, 20)
GUICtrlSetData($hEditx, $textx)
GUISetState(@SW_SHOW)
GUICtrlCreateTab(30, 1, 165, 60)
GUICtrlCreateTabItem($var)
; Create the tab and edit
$aTabData[0][0] += 1
ReDim $aTabData[$aTabData[0][0] + 1][3]
$aTabData[$aTabData[0][0]][0] = GUICtrlCreateTabItem($File)
$aTabData[$aTabData[0][0]][1] = $File
$aTabData[$aTabData[0][0]][2] = GUICtrlCreateEdit($Text, 20, 40, 760, 600)

While 1
$nMsg = GUIGetMsg()
Select
Case $nMsg = $GUI_EVENT_CLOSE
ExitLoop
Case $nMsg = $Fing
Run(@ComSpec & " /c " & "C:\fing.lnk")
Case $nMsg = $Find
_GUICtrlEdit_Find($hEditx)
Case $nMsg = $new
openNew()
EndSelect
WEnd
Sleep(1000)

EndFunc ;==>openNew

edit..

also the open button doesnt work anymore

Edited by zsutton92
Link to comment
Share on other sites

  • Moderators

zsutton92,

As you have 2 GUICtrlCreateEdit lines in both your openNew function and in the completely unnecessary code you have stuck into the script when you create the GUI initially, why are you surprised that you have 2 edit controls created? And you keep recreating the the 3 buttons - so it is little suprise that you have problems. You also have 2 GUIGetMsg idle loops. Quite frankly the script is a complete mess. :(

Here is a tidied-up version which does work: ;)

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>

; Global variables should be declared OUTSIDE functions
Global $aTabData[1][3] = [[0]] ; 0=tab 1=file 2=edit

mainGUI()

Func mainGUI()

    ; Create the GUI
    GUICreate("Log Viewer", 800, 700)
    GUISetBkColor(0x00E0FFFF)
    GUISetFont(9, 300)

    $cTab = GUICtrlCreateTab(10, 10, 780, 640)
    $Fing = GUICtrlCreateButton("Fing", 20, 670, 100, 20)
    $Find = GUICtrlCreateButton("Find", 200, 670, 100, 20)
    $new = GUICtrlCreateButton("Open", 600, 670, 100, 20)

    ; Read a file before showing the GUI so that the tab and edit are create before we show the GUI
    openNew()

    ; Now show the GUI
    GUISetState(@SW_SHOW)

    ; Note there is only the one GUIGetMsg loop in the script
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $Fing
                Run(@ComSpec & " /c " & "C:\fing.lnk")
            Case $Find
                ; Which tab is displayed
                $iIndex = GUICtrlRead($cTab) + 1
                ; So now we know which edit is displayed
                _GUICtrlEdit_Find($aTabData[$iIndex][2])
            Case $new
                openNew() ; Every time we want a new tab we call the function again
        EndSwitch
    WEnd
EndFunc   ;==>mainGUI

Func openNew()

    ; Choose a file
    Local $var = FileOpenDialog("", @WindowsDir & "\", "Log Files (*.txt;*.log)", 1)
    ; Open it
    Local $file = FileOpen($var)
    If $file = -1 Then
        MsgBox(0, "Error", "Unable to open file.")
        Exit
    EndIf
    ; Read it
    $textx = FileRead($file)
    If @error Then ; If you check for error it must be IMEDIATELY AFTER the function you check
        MsgBox(4096, "", "No File(s) chosen")
    Else
        $var = StringReplace($var, "|", @CRLF)
        MsgBox(4096, "", "You Chose " & $var)
        ; Create the tab and edit for this file ONLY if it was read
        $aTabData[0][0] += 1
        ReDim $aTabData[$aTabData[0][0] + 1][3]
        $aTabData[$aTabData[0][0]][0] = GUICtrlCreateTabItem($var)
        $aTabData[$aTabData[0][0]][1] = $var
        ; Sorry, you do need the NOHIDESEL style to see the found text
        $aTabData[$aTabData[0][0]][2] = GUICtrlCreateEdit($textx, 20, 40, 760, 600, BitOR($GUI_SS_DEFAULT_EDIT, $ES_NOHIDESEL))
        ConsoleWrite("Edit: " & $aTabData[$aTabData[0][0]][2] & @CRLF)
        GUICtrlCreateTabItem("")
    EndIf
    ; Close file
    FileClose($file)

EndFunc   ;==>openNew

Look through it and see if you can understand why this works and yours did not. If you have questions then do please ask - we want you to learn. :)

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

zsutton92,

As you have 2 GUICtrlCreateEdit lines in both your openNew function and in the completely unnecessary code you have stuck into the script when you create the GUI initially, why are you surprised that you have 2 edit controls created? And you keep recreating the the 3 buttons - so it is little suprise that you have problems. You also have 2 GUIGetMsg idle loops. Quite frankly the script is a complete mess. :(

Here is a tidied-up version which does work: ;)

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiEdit.au3>

; Global variables should be declared OUTSIDE functions
Global $aTabData[1][3] = [[0]] ; 0=tab 1=file 2=edit

mainGUI()

Func mainGUI()

; Create the GUI
GUICreate("Log Viewer", 800, 700)
GUISetBkColor(0x00E0FFFF)
GUISetFont(9, 300)

$cTab = GUICtrlCreateTab(10, 10, 780, 640)
$Fing = GUICtrlCreateButton("Fing", 20, 670, 100, 20)
$Find = GUICtrlCreateButton("Find", 200, 670, 100, 20)
$new = GUICtrlCreateButton("Open", 600, 670, 100, 20)

; Read a file before showing the GUI so that the tab and edit are create before we show the GUI
openNew()

; Now show the GUI
GUISetState(@SW_SHOW)

; Note there is only the one GUIGetMsg loop in the script
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Fing
Run(@ComSpec & " /c " & "C:\fing.lnk")
Case $Find
; Which tab is displayed
$iIndex = GUICtrlRead($cTab) + 1
; So now we know which edit is displayed
_GUICtrlEdit_Find($aTabData[$iIndex][2])
Case $new
openNew() ; Every time we want a new tab we call the function again
EndSwitch
WEnd
EndFunc ;==>mainGUI

Func openNew()

; Choose a file
Local $var = FileOpenDialog("", @WindowsDir & "\", "Log Files (*.txt;*.log)", 1)
; Open it
Local $file = FileOpen($var)
If $file = -1 Then
MsgBox(0, "Error", "Unable to open file.")
Exit
EndIf
; Read it
$textx = FileRead($file)
If @error Then ; If you check for error it must be IMEDIATELY AFTER the function you check
MsgBox(4096, "", "No File(s) chosen")
Else
$var = StringReplace($var, "|", @CRLF)
MsgBox(4096, "", "You Chose " & $var)
; Create the tab and edit for this file ONLY if it was read
$aTabData[0][0] += 1
ReDim $aTabData[$aTabData[0][0] + 1][3]
$aTabData[$aTabData[0][0]][0] = GUICtrlCreateTabItem($var)
$aTabData[$aTabData[0][0]][1] = $var
; Sorry, you do need the NOHIDESEL style to see the found text
$aTabData[$aTabData[0][0]][2] = GUICtrlCreateEdit($textx, 20, 40, 760, 600, BitOR($GUI_SS_DEFAULT_EDIT, $ES_NOHIDESEL))
ConsoleWrite("Edit: " & $aTabData[$aTabData[0][0]][2] & @CRLF)
GUICtrlCreateTabItem("")
EndIf
; Close file
FileClose($file)

EndFunc ;==>openNew

Look through it and see if you can understand why this works and yours did not. If you have questions then do please ask - we want you to learn. :)

M23

Works like a charm! I need to work on the way I organize things I suppose.
Link to comment
Share on other sites

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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...