Jump to content

Help !!! transperency on Lbls and Icons


 Share

Recommended Posts

Hi

i have some problemes in gettings my Lables and icons to be transperent,

i can make my labels transperent with guictrlsetbgkcolor(-1,"-2") but then the texts look weird. As it is to thick

i can't get my icons to be transpent either Plz Plz Plz some help me

Ps. is there any way i can change the default push button to the currenly active button?

#cs*****************************************
Proxy_Switch.au3 by Krabbe
Created with ISN AutoIt Studio v. 0.94 BETA
Created with ISN Form Studio 2 for ISN AutoIt Studio
Script Version: 1.0
Last Modified: 21-11-2013
Script Function:
Enable and Disable proxy settings in IE as user don't normaly know the path

#ce*****************************************

#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GUIConstants.au3>
#include <Constants.au3>
#Include <GuiButton.au3>
#include <GDIPlus.au3>
#include <WinAPI.au3>
#include <Array.au3>
#include <IE.au3>

Global $WlanInf[7]
Global $LanInf[7]
Global $PXYSVR = "proxy.intranet.ap"
Global $PXYPRT = "80"
Global $RegKeyLoc = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Global $wbemFlagReturnImmediately = 0x10, $wbemFlagForwardOnly = 0x20
Global $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2")
Global $hImage = @Scriptdir& "\Images\hGUI1.png"
Global $cImage = @Scriptdir& "\Images\cGUI.gif"
Global $hGUI, $cGUI, $BtnEnableDisable, $BtnExit
Global $LblCurrentConnect, $LblCurrentState, $LblSuggestSetting
Global $RegGetProxyCurAdr, $RegGetProxyState

#cs==========$WlanInf============   #cs==========$LanInf=============
| [0] = Name                    |   | [0] = Name                    |
| [1] = MacAdress               |   | [1] = MacAdress               |
| [2] = Connect True/False      |   | [2] = Connect True/False      |
| [3] = Connected 2 Domain name |   | [3] = Connected 2 Domain name |
| [4] = Your Computer Domain    |   | [4] = Your Computer Domain    |
| [5] = IpAdress                |   | [5] = IpAdress                |
| [6] = Gateway                 |   | [6] = Gateway                 |
#ce==============================   #ce==============================
;====================================== Start GDI Magic ================================

_GDIPlus_Startup()                                ; Initialize GDI+ library
$hImage = _GDIPlus_ImageLoadFromFile($hImage) ; Main GUI Bckg Img
$width = _GDIPlus_ImageGetWidth($hImage)          ; Img Width  | GUI Width
$height = _GDIPlus_ImageGetHeight($hImage)        ; Img Height | GUI Height


_MainUI()

Func _MainUI()
Global $hGUI = GUICreate("MSI Recovery Image Finder", $width, $height, -1, -1, $WS_POPUP,$WS_EX_LAYERED)
GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST")
GUISetState(@SW_SHOW,$hGUI)
 For $i = 0 To 240 Step 10
   SetBitmap($hGUI, $hImage, $i)
   Sleep(10)
 Next

Global $cGUI = GUICreate('childgui', $width, $height, 4, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD,$GUI_WS_EX_PARENTDRAG), $hGUI)
$ChildBckg = GUICtrlCreatePic($cImage, 0, 0, $width, $height)
GUICtrlSetBkColor($ChildBckg, $GUI_BKCOLOR_TRANSPARENT)
GUICtrlSetState($ChildBckg, $GUI_DISABLE)

Global $BtnEnable = GUICtrlCreateButton("Enable",75,85,60,20,$BS_DEFPUSHBUTTON,-1)
GUICtrlSetFont(-1,8,400,0,"Constantia")

Global $BtnDisable = GUICtrlCreateButton("Disable",165,85,60,20,$BS_DEFPUSHBUTTON,-1)
GUICtrlSetFont(-1,8,400,0,"Constantia")

Global $LblCurrentSetting = GUICtrlCreateLabel("",226,35,42,15,-1,-1)
GUICtrlSetFont($LblCurrentSetting,8,400,0,"Constantia")

Global $LblSuggestSetting = GUICtrlCreateLabel("",226,50,42,15,-1,-1)
GUICtrlSetFont($LblSuggestSetting,8,400,0,"Constantia")

Global $LblCurrentConnect = GUICtrlCreateLabel("proxy.intranet.ap:80",173,65,95,15,-1,-1)
GUICtrlSetFont($LblCurrentConnect,8,100,0,"Constantia")
;~ GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT)

Global $IcnExit = GUICtrlCreateIcon("imageres.dll",98,267,10,16,16,-1,-1)
GUICtrlSetBkColor($IcnExit,$GUI_BKCOLOR_TRANSPARENT)

Global $IcnHelp = GUICtrlCreateIcon("imageres.dll",99,249,10,16,16,-1,-1)
GUICtrlSetBkColor($IcnHelp,0x373737)

_GetCurrentProxyState()
_GetActiveSSID()
GUISetState(@SW_SHOW,$cGUI)




    
While 1

_ChkIfProxyStateChanged()
$nMsg = GUIGetMsg()
    Switch $nMsg
        
        Case $GUI_EVENT_CLOSE, $IcnExit
            Exit
        
        Case $IcnHelp
            MsgBox(16,"Help","Coming Soon")
            
        Case $BtnEnable
            $RegWriteProxyEnable = RegWrite($RegKeyLoc, "ProxyEnable", "REG_DWORD", "1")
            DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0)
            $RegGetProxyCurAdr = RegRead($RegKeyLoc,"ProxyServer")
            If BitOr($RegGetProxyCurAdr = -1,@error > 0,$RegGetProxyCurAdr = "") Then ConsoleWrite('RegRead($RegKeyLoc,"ProxyServer") =  Failed  >Error code: ' & @error & @crlf) ;### Debug Console
            BitAND(GUICtrlSetState($BtnDisable,$GUI_ENABLE),GUICtrlSetState($BtnEnable,$GUI_DISABLE))
            BitAND(GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr),GUICtrlSetData($LblCurrentSetting,"Enabled"))
            
            
        Case $BtnDisable
            $RegWriteProxyDisable = RegWrite($RegKeyLoc, "ProxyEnable", "REG_DWORD", "0")
            DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0)
            $RegGetProxyCurAdr = RegRead($RegKeyLoc,"ProxyServer")
            If BitOr($RegGetProxyCurAdr = -1,@error > 0,$RegGetProxyCurAdr = "") Then ConsoleWrite('RegRead($RegKeyLoc,"ProxyServer") =  Failed  >Error code: ' & @error & @crlf) ;### Debug Console
            BitAND(GUICtrlSetState($BtnDisable,$GUI_DISABLE),GUICtrlSetState($BtnEnable,$GUI_ENABLE))
            BitAND(GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr),GUICtrlSetData($LblCurrentSetting,"Disabled"))
            
    EndSwitch
WEnd
EndFunc

Func _GetCurrentProxyState()
$RegGetProxyCurAdr = RegRead($RegKeyLoc,"ProxyServer")
If BitOr($RegGetProxyCurAdr = -1,@error > 0,$RegGetProxyCurAdr = "") Then ConsoleWrite('RegRead($RegKeyLoc,"ProxyServer") =  Failed  >Error code: ' & @error & @crlf) ;### Debug Console
ConsoleWrite('$RegGetProxyCurAdr = ' & $RegGetProxyCurAdr & '   >Error code: ' & @error & @crlf) ;### Debug Console
;~ If $RegGetProxyCurAdr <> "proxy.intranet.ap:80" Then
;~      $RegWriteProxyAdr = RegWrite($RegKeyLoc, "ProxyServer", "REG_SZ", $PXYSVR & ":" & $PXYPRT)
;~      DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0)
;~      $RegGetProxyCurAdr = RegRead($RegKeyLoc,"ProxyServer")
;~      GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr)
;~  Else
;~      $RegGetProxyCurAdr = RegRead($RegKeyLoc,"ProxyServer")
;~      GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr)
;~ EndIf
$RegGetProxyState = RegRead($RegKeyLoc,"ProxyEnable")
ConsoleWrite('$RegGetProxyState = ' & $RegGetProxyState & ' >Error code: ' & @error & @crlf) ;### Debug Console
If $RegGetProxyState = 0 Then BitAND(GUICtrlSetData($LblCurrentState,"Disabled"),GUICtrlSetState($BtnEnable,$GUI_ENABLE),GUICtrlSetState($BtnDisable,$GUI_DISABLE))
If $RegGetProxyState = 1 Then BitAND(GUICtrlSetData($LblCurrentState,"Enabled"),GUICtrlSetState($BtnEnable,$GUI_DISABLE),GUICtrlSetState($BtnDisable,$GUI_ENABLE))
EndFunc

Func _ChkIfProxyStateChanged()
$RegGetProxyState = RegRead($RegKeyLoc,"ProxyEnable")
ConsoleWrite('Current Proxy State = ' & $RegGetProxyState & '   >Error code: ' & @error & @crlf)

; If user changes proxy manualy while the prg is running
If GUICtrlRead($LblCurrentSetting)="Enabled" And $RegGetProxyState = 0 Then
        GUICtrlSetState($BtnDisable,$GUI_DISABLE)
        GUICtrlSetState($BtnEnable,$GUI_ENABLE)
        GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr)
        GUICtrlSetData($LblCurrentSetting,"Disabled")
EndIf

; If user changes proxy manualy while the prg is running    
If GUICtrlRead($LblCurrentSetting)="Disabled" And $RegGetProxyState = 1 Then
        GUICtrlSetState($BtnDisable,$GUI_ENABLE)
        GUICtrlSetState($BtnEnable,$GUI_DISABLE)
        GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr)
        GUICtrlSetData($LblCurrentSetting,"Enabled")
EndIf

EndFunc

Func _GetActiveSSID()
Global $Output = "", $colItems = "", $colItems1 = ""

$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) then
   For $objItem In $colItems
    If StringInStr($objItem.Caption,"Intel") Then
        If $objItem.NetConnectionID = "Wireless Network Connection" Then
            $WlanInf[0] = $objItem.Description
            $WlanInf[1] = $objItem.MACAddress
            $WlanInf[2] = $objItem.NetEnabled
        ElseIf  $objItem.NetConnectionID = "Local Area Connection" Then
            $LanInf[0] = $objItem.Description
            $LanInf[1] = $objItem.MACAddress
            $LanInf[2] = $objItem.NetEnabled
        EndIf
        $Output=""
    EndIf
   Next
Else
   Msgbox(0,"WMI Output ERROR","No WMI Objects Found for class: " & "Win32_NetworkAdapter",2)
   SetError(1,0,"Error in WMI Win32_NetworkAdapter")
Endif

$colItems1 = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration", "WQL",$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems1) then
   For $objItem In $colItems1
    If StringInStr($objItem.Caption,"Intel") <> 0 Then
        If BitAND($WlanInf[1] = $objItem.MACAddress, $WlanInf[0] = $objItem.Description) Then
            $WlanInf[3] = $objItem.DNSDomain
            $WlanInf[4] = $objItem.DNSDomainSuffixSearchOrder(0)
            $WlanInf[5] = $objItem.IPAddress(0)
            $WlanInf[6] = $objItem.DefaultIPGateway(0)
        ElseIf BitAND($LanInf[1] = $objItem.MACAddress, $LanInf[0] = $objItem.Description) Then
            $LanInf[3] = $objItem.DNSDomain
            $LanInf[4] = $objItem.DNSDomainSuffixSearchOrder(0)
            $LanInf[5] = $objItem.IPAddress(0)
            $LanInf[6] = $objItem.DefaultIPGateway(0)
        EndIf 
    EndIf
   Next
Else
   Msgbox(0,"WMI Output ERROR","No WMI Objects Found for class: " & "Win32_NetworkAdapterConfiguration",2)
   SetError(2,0,"Error in WMI Win32_NetworkAdapterConfiguration")
Endif

If $LanInf[3] <> "intranet.ap" Then 
    GUICtrlSetData($LblSuggestSetting,"Disabled")
Else
    GUICtrlSetData($LblSuggestSetting,"Enabled")
EndIf

EndFunc  

Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam)
    If ($hWnd = $hGUI) And ($iMsg = $WM_NCHITTEST) Then Return $HTCAPTION
EndFunc

Func SetBitmap($hGUI, $hImage, $iOpacity)
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
    $hScrDC = _WinAPI_GetDC(0)
    $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
    DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", $iOpacity)
    DllStructSetData($tBlend, "Format", 1)
    _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    _WinAPI_ReleaseDC(0, $hScrDC)
    _WinAPI_SelectObject($hMemDC, $hOld)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_DeleteDC($hMemDC)
EndFunc

post-62798-0-26861300-1385380029_thumb.p

post-62798-0-79065300-1385380038_thumb.g

Edited by islandspapand
Link to comment
Share on other sites

Ps. is there any way i can change the default push button to the currenly active button?

 

You can use the button style $BS_DEFPUSHBUTTON

Your main problem is the graphic part, that is how your GUI should look. Then can you provide an image of how your GUI should look ?

Regards :)

My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

Link to comment
Share on other sites

Thanks allot,

I was thinking that i want both Buttons to have $bs_defpushbutton, so the enabled button is the default push.

What sould i do to change between the Buttons as i guess there ONLY can Be One default push.

Picture of disired GUI add'ed (still with the grey around the icons and Labels that i wish to remove)
 

post-62798-0-46032900-1385384145_thumb.p

Edited by islandspapand
Link to comment
Share on other sites

Graphics part

Here we go

#include-once
#include <GUIConstantsEx.au3>
#include <ButtonConstants.au3>
#include <WindowsConstants.au3>
#include <StaticConstants.au3>
#include <GDIPlus.au3>

Global $hImage = @ScriptDir & "\Images\hGUI1.png"

_GDIPlus_Startup() ; Initialize GDI+ library
$hImage = _GDIPlus_ImageLoadFromFile($hImage) ; Main GUI Bckg Img
$width = _GDIPlus_ImageGetWidth($hImage) ; Img Width  | GUI Width
$height = _GDIPlus_ImageGetHeight($hImage) ; Img Height | GUI Height


_MainUI()

Func _MainUI()
    Global $hGUI = GUICreate("MSI Recovery Image Finder", $width, $height, -1, -1, $WS_POPUP,$WS_EX_LAYERED)
    GUISetState(@SW_SHOW, $hGUI)

    Global $cGUI = GUICreate('childgui', $width, $height, 4, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hGUI)
    GUISetBkColor(0xFFFFFF)
    _WinAPI_SetLayeredWindowAttributes($cGUI, 0xFFFFFF)

    Global $BtnDisable = GUICtrlCreateButton("Disable", 165, 85, 60, 20)
    GUICtrlSetFont(-1, 8, 400, 0, "Constantia")

    Global $BtnEnable = GUICtrlCreateButton("Enable", 75, 85, 60, 20)
    GUICtrlSetFont(-1, 8, 400, 0, "Constantia")

    GUICtrlSetDefBkColor($GUI_BKCOLOR_TRANSPARENT)

    Global $LblCurrentSetting = GUICtrlCreateLabel("Enabled", 226, 40, 42, 15, -1, -1)
    Global $LblSuggestSetting = GUICtrlCreateLabel("Enabled", 226, 52, 42, 15, -1, -1)


    Global $LblCurrentConnect = GUICtrlCreateLabel("proxy.intranet.ap:80", 173, 65, 95, 15)
    GUICtrlSetFont($LblCurrentConnect, 8, 100, 0, "Constantia")
    GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT)

    Global $IcnExit = GUICtrlCreateIcon("imageres.dll", 98, 267, 10, 16, 16, BitOR($SS_ICON, $SS_NOTIFY))
    Global $IcnHelp = GUICtrlCreateIcon("imageres.dll", 99, 249, 10, 16, 16, $BS_ICON)

    GUISetState(@SW_SHOW, $cGUI)

    For $i = 0 To 240 Step 10
        SetBitmap($hGUI, $hImage, $i)
        Sleep(10)
    Next


    While 1

        $nMsg = GUIGetMsg()
        Switch $nMsg

            Case $GUI_EVENT_CLOSE
                ExitLoop

            Case $GUI_EVENT_PRIMARYDOWN
                _SendMessage($hGUI, $WM_SYSCOMMAND, 0xF012, 0) ;SC_DRAGMOVE = 0xF012

            Case $BtnEnable
                GUICtrlSetState($BtnEnable, $GUI_DISABLE)
                GUICtrlSetState($BtnDisable, $GUI_ENABLE)
                GUICtrlSetState($BtnDisable, $GUI_FOCUS)


            Case $BtnDisable
                GUICtrlSetState($BtnDisable, $GUI_DISABLE)
                GUICtrlSetState($BtnEnable, $GUI_ENABLE)
                GUICtrlSetState($BtnEnable, $GUI_FOCUS)

        EndSwitch
    WEnd

    _GDIPlus_ImageDispose($hImage)
    _GDIPlus_Shutdown()

EndFunc   ;==>_MainUI

Func SetBitmap($hGUI, $hImage, $iOpacity)
    Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend
    $hScrDC = _WinAPI_GetDC(0)
    $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC)
    $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage)
    $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap)
    $tSize = DllStructCreate($tagSIZE)
    $pSize = DllStructGetPtr($tSize)
    DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage))
    DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage))
    $tSource = DllStructCreate($tagPOINT)
    $pSource = DllStructGetPtr($tSource)
    $tBlend = DllStructCreate($tagBLENDFUNCTION)
    $pBlend = DllStructGetPtr($tBlend)
    DllStructSetData($tBlend, "Alpha", $iOpacity)
    DllStructSetData($tBlend, "Format", 1)
    _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA)
    _WinAPI_ReleaseDC(0, $hScrDC)
    _WinAPI_SelectObject($hMemDC, $hOld)
    _WinAPI_DeleteObject($hBitmap)
    _WinAPI_DeleteDC($hMemDC)
EndFunc   ;==>SetBitmap 

Regards :)

Phoenix XL

Edited by PhoenixXL

My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

Link to comment
Share on other sites

Thank you sooooooooooooo much Phoenix XL :D

i was playing around with the     GUISetBkColor(0xABCDEF)   _WinAPI_SetLayeredWindowAttributes($cGUI, 0xABCDEF) could just not get it to work :P

Could you expaind this part to me?

    

        Case $GUI_EVENT_PRIMARYDOWN
                _SendMessage($hGUI, $WM_SYSCOMMAND, 0xF012, 0) ;SC_DRAGMOVE = 0xF012

if i want the blue around the labels to dissaper then i sould just change to the same color as my background?

Edited by islandspapand
Link to comment
Share on other sites

The painting occurs with respect to the bkcolor of the layered window.

I have modified the code (the bkcolor and a bit cleanup), check it by yourself.

_SendMessage($hGUI, $WM_SYSCOMMAND, 0xF012, 0) ;SC_DRAGMOVE = 0xF012

 

It is responsible to move the GUI whenever you drag the main GUI(instead of hittesting, this is preferred).

Regards :)

Phoenix XL

My code:

PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.

Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners.

MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. 

Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression.

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

×
×
  • Create New...