Code: Select all
[size=85]
; Application : OnScreen Keyboard GUI Framework
; Author : David Tupponce ( Mohawk70 )
; Date : Wednesday February 23, 2016
; License : Unrestricted - Do anything you want with it ! All I ask is that you post any modified or improved code
Global Win_OSK
Global Btn_ESC, Btn_F01, Btn_F02, Btn_F03, Btn_F04, Btn_F05, Btn_F06, Btn_F07, Btn_F08, Btn_F09, Btn_F10, Btn_F11, Btn_F12, Btn_INS, Btn_DEL
Global Btn_SQL, Btn_001, Btn_002, Btn_003, Btn_004, Btn_005, Btn_006, Btn_007, Btn_008, Btn_009, Btn_000, Btn_MIN, Btn_EQU, Btn_BAK
Global Btn_TAB, Btn_QQQ, Btn_WWW, Btn_EEE, Btn_RRR, Btn_TTT, Btn_YYY, Btn_UUU, Btn_III, Btn_OOO, Btn_PPP, Btn_SLB, Btn_SRB, Btn_FSL
Global Btn_CAP, Btn_AAA, Btn_SSS, Btn_DDD, Btn_FFF, Btn_GGG, Btn_HHH, Btn_JJJ, Btn_KKK, Btn_LLL, Btn_SEM, Btn_SQR, Btn_ENT
Global Btn_SHL, Btn_ZZZ, Btn_XXX, Btn_CCC, Btn_VVV, Btn_BBB, Btn_NNN, Btn_MMM, Btn_COM, Btn_PER, Btn_BSL, Btn_SHR
Global Btn_SPC
Enumeration FormFont
#Font_Win_OSK_0
EndEnumeration
Procedure OnScreenKeyboard()
Win_OSK = OpenWindow(#PB_Any, #PB_Ignore, #PB_Ignore, 620, 245, "OnScreen Keyboard GUI", #PB_Window_TitleBar | #PB_Window_SystemMenu | #PB_Window_BorderLess | #PB_Window_ScreenCentered )
SetWindowColor(Win_OSK,RGB(120,120,120))
; /* FN KEYS */
Btn_ESC = ButtonGadget(#PB_Any, 010, 010, 040, 030, "ESC")
Btn_F01 = ButtonGadget(#PB_Any, 070, 010, 030, 030, "F1")
Btn_F02 = ButtonGadget(#PB_Any, 105, 010, 030, 030, "F2")
Btn_F03 = ButtonGadget(#PB_Any, 140, 010, 030, 030, "F3")
Btn_F04 = ButtonGadget(#PB_Any, 175, 010, 030, 030, "F4")
Btn_F05 = ButtonGadget(#PB_Any, 210, 010, 030, 030, "F5")
Btn_F06 = ButtonGadget(#PB_Any, 245, 010, 030, 030, "F6")
Btn_F07 = ButtonGadget(#PB_Any, 280, 010, 030, 030, "F7")
Btn_F08 = ButtonGadget(#PB_Any, 315, 010, 030, 030, "F8")
Btn_F09 = ButtonGadget(#PB_Any, 350, 010, 030, 030, "F9")
Btn_F10 = ButtonGadget(#PB_Any, 385, 010, 030, 030, "F10")
Btn_F11 = ButtonGadget(#PB_Any, 420, 010, 030, 030, "F11")
Btn_F12 = ButtonGadget(#PB_Any, 455, 010, 030, 030, "F12")
Btn_INS = ButtonGadget(#PB_Any, 500, 010, 050, 030, "INS")
Btn_DEL = ButtonGadget(#PB_Any, 560, 010, 050, 030, "DEL")
; /* ROW 2 */
Btn_SQL = ButtonGadget(#PB_Any, 010, 050, 030, 030, "`")
Btn_001 = ButtonGadget(#PB_Any, 050, 050, 030, 030, "1")
Btn_002 = ButtonGadget(#PB_Any, 090, 050, 030, 030, "2")
Btn_003 = ButtonGadget(#PB_Any, 130, 050, 030, 030, "3")
Btn_004 = ButtonGadget(#PB_Any, 170, 050, 030, 030, "4")
Btn_005 = ButtonGadget(#PB_Any, 210, 050, 030, 030, "5")
Btn_006 = ButtonGadget(#PB_Any, 250, 050, 030, 030, "6")
Btn_007 = ButtonGadget(#PB_Any, 290, 050, 030, 030, "7")
Btn_008 = ButtonGadget(#PB_Any, 330, 050, 030, 030, "8")
Btn_009 = ButtonGadget(#PB_Any, 370, 050, 030, 030, "9")
Btn_000 = ButtonGadget(#PB_Any, 410, 050, 030, 030, "0")
Btn_MIN = ButtonGadget(#PB_Any, 450, 050, 030, 030, "-")
Btn_EQU = ButtonGadget(#PB_Any, 490, 050, 030, 030, "=")
Btn_BAK = ButtonGadget(#PB_Any, 530, 050, 080, 030, "Backspace")
; /* ROW 3 */
Btn_TAB = ButtonGadget(#PB_Any, 010, 090, 050, 030, "TAB")
Btn_QUP = ButtonGadget(#PB_Any, 070, 090, 030, 030, "Q")
Btn_WUP = ButtonGadget(#PB_Any, 110, 090, 030, 030, "W")
Btn_EUP = ButtonGadget(#PB_Any, 150, 090, 030, 030, "E")
Btn_RUP = ButtonGadget(#PB_Any, 190, 090, 030, 030, "R")
Btn_TUP = ButtonGadget(#PB_Any, 230, 090, 030, 030, "T")
Btn_YUP = ButtonGadget(#PB_Any, 270, 090, 030, 030, "Y")
Btn_UUP = ButtonGadget(#PB_Any, 310, 090, 030, 030, "U")
Btn_IUP = ButtonGadget(#PB_Any, 350, 090, 030, 030, "I")
Btn_OUP = ButtonGadget(#PB_Any, 390, 090, 030, 030, "O")
Btn_PUP = ButtonGadget(#PB_Any, 430, 090, 030, 030, "P")
Btn_SLB = ButtonGadget(#PB_Any, 470, 090, 030, 030, "[")
Btn_SRB = ButtonGadget(#PB_Any, 510, 090, 030, 030, "]")
Btn_FSL = ButtonGadget(#PB_Any, 550, 090, 060, 030, "\")
; /* ROW 4 */
Btn_CAP = ButtonGadget(#PB_Any, 010, 130, 060, 030, "CAPS")
Btn_AAA = ButtonGadget(#PB_Any, 080, 130, 030, 030, "A")
Btn_SSS = ButtonGadget(#PB_Any, 120, 130, 030, 030, "S")
Btn_DDD = ButtonGadget(#PB_Any, 160, 130, 030, 030, "D")
Btn_FFF = ButtonGadget(#PB_Any, 200, 130, 030, 030, "F")
Btn_GGG = ButtonGadget(#PB_Any, 240, 130, 030, 030, "G")
Btn_HHH = ButtonGadget(#PB_Any, 280, 130, 030, 030, "H")
Btn_JJJ = ButtonGadget(#PB_Any, 360, 130, 030, 030, "J")
Btn_KKK = ButtonGadget(#PB_Any, 320, 130, 030, 030, "K")
Btn_LLL = ButtonGadget(#PB_Any, 400, 130, 030, 030, "L")
Btn_SEM = ButtonGadget(#PB_Any, 440, 130, 030, 030, ";")
Btn_SQR = ButtonGadget(#PB_Any, 480, 130, 030, 030, "'")
Btn_ENT = ButtonGadget(#PB_Any, 520, 130, 090, 030, "Enter")
; /* ROW 5 */
Btn_SHL = ButtonGadget(#PB_Any, 010, 170, 070, 030, "SHIFT")
Btn_ZZZ = ButtonGadget(#PB_Any, 090, 170, 030, 030, "Z")
Btn_XXX = ButtonGadget(#PB_Any, 130, 170, 030, 030, "X")
Btn_CCC = ButtonGadget(#PB_Any, 170, 170, 030, 030, "C")
Btn_VVV = ButtonGadget(#PB_Any, 210, 170, 030, 030, "V")
Btn_BBB = ButtonGadget(#PB_Any, 250, 170, 030, 030, "B")
Btn_NNN = ButtonGadget(#PB_Any, 290, 170, 030, 030, "N")
Btn_MMM = ButtonGadget(#PB_Any, 330, 170, 030, 030, "M")
Btn_COM = ButtonGadget(#PB_Any, 370, 170, 030, 030, ",")
Btn_PER = ButtonGadget(#PB_Any, 410, 170, 030, 030, ".")
Btn_BSL = ButtonGadget(#PB_Any, 450, 170, 030, 030, "/")
Btn_SHR = ButtonGadget(#PB_Any, 490, 170, 120, 30, "SHIFT")
; /* ROW 6 */
Btn_SPC = ButtonGadget(#PB_Any, 10, 210, 600, 030, "SPACE")
EndProcedure
Procedure Win_OSK_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
OnScreenKeyboard()
Repeat
event = WaitWindowEvent()
Until Win_OSK_Events(event) = #False
[/size]