File "Input_Box.inc"

Path: /HotKeyMgr/inc/Input_Box.inc
File size: 3.16 KB
MIME-type:
Charset: utf-8

'
' Prototype:
' ----------
'       FUNCTION Input_Box( BYVAL hParent AS DWORD, BYVAL title AS STRING, _
'                           BYVAL message AS STRING, BYVAL defaut AS STRING _
'                          ) AS STRING
'
'------------------------------------------------------------------------------
'   ** Globals **
'------------------------------------------------------------------------------
GLOBAL inpb_str     AS STRING
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** CallBacks **
'------------------------------------------------------------------------------
CALLBACK FUNCTION ProcInputBox()
    SELECT CASE AS LONG CB.MSG
        CASE %WM_INITDIALOG
            ' Initialization handler
            LOCAL e AS STRING
            CONTROL SET FOCUS CB.HNDL, 101
            CONTROL GET TEXT CB.HNDL, 101 TO e
            CONTROL SEND CB.HNDL, 101, %EM_SETSEL, LEN(e)+1, LEN(e)+1

        CASE %WM_COMMAND
            ' Process control notifications
            IF CB.CTL = %IDCANCEL THEN
                DIALOG END CB.HNDL, 0
            ELSEIF CB.CTL = %IDOK THEN
                CONTROL GET TEXT CB.HNDL, 101 TO inpb_str
                DIALOG END CB.HNDL, -1
            END IF

    END SELECT
END FUNCTION
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
'   ** Dialogs **
'------------------------------------------------------------------------------
FUNCTION Input_Box(BYVAL hParent AS DWORD, BYVAL title AS STRING, _
                   BYVAL message AS STRING, BYVAL defaut AS STRING) AS STRING
    LOCAL lRes  AS LONG
    inpb_str = ""
    lRes = ShowInputBox(hParent, title, message, defaut)
    IF lRes <> 0 THEN FUNCTION = inpb_str
    inpb_str = ""
END FUNCTION
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
FUNCTION ShowInputBox(BYVAL hParent AS DWORD, BYVAL title AS STRING, _
                      BYVAL message AS STRING, BYVAL defaut AS STRING) AS LONG
    LOCAL lRes  AS LONG
    LOCAL hDlg  AS DWORD
    LOCAL hIco  AS DWORD

    DIALOG NEW PIXELS, hParent, title, 0, 0, 260, 100, _
        %WS_POPUP OR%WS_BORDER OR %WS_DLGFRAME OR %WS_SYSMENU OR %WS_VISIBLE OR _
        %WS_CLIPSIBLINGS OR %DS_MODALFRAME OR %DS_3DLOOK OR %DS_NOFAILCREATE OR _
        %DS_SETFONT, %WS_EX_CONTROLPARENT OR %WS_EX_LEFT OR _
        %WS_EX_LTRREADING OR %WS_EX_RIGHTSCROLLBAR, TO hDlg

    hIco = ExtractIcon(GetModuleHandle(""), "shell32.dll", 23)
    SetClassLong(hDlg, %GCL_HICONSM, hIco)
    SetClassLong(hDlg, %GCL_HICON, hIco)
    DeleteObject(hIco)

    CONTROL ADD LABEL,    hDlg, 102, message, 6, 6, 180, 60

    CONTROL ADD BUTTON,   hDlg, %IDOK, "OK", 196, 6, 54, 24
    CONTROL ADD BUTTON,   hDlg, %IDCANCEL, "Cancel", 196, 32, 54, 24

    CONTROL ADD TEXTBOX,  hDlg, 101, defaut, 6, 70, 248, 24

    DIALOG SHOW MODAL hDlg, CALL ProcInputBox TO lRes
    FUNCTION = lRes
END FUNCTION
'------------------------------------------------------------------------------