2
0

system.linux.bmx 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. Strict
  2. Import "driver.bmx"
  3. Import "system.linux.c"
  4. Import "-lXxf86vm"
  5. Import pub.stdc
  6. Extern
  7. Function bbSystemStartup()
  8. Function bbSystemPoll()
  9. Function bbSystemWait()
  10. Function bbSetMouseVisible(visible)
  11. Function bbMoveMouse(x,y)
  12. Function bbSystemDisplay()
  13. Function bbSystemEventHandler( callback(xevent:Byte Ptr) )
  14. Function bbSystemPostSyncOp( syncOp( syncInfo:Object,asyncRet ),syncInfo:Object,asyncRet )
  15. Function bbSystemStartAsyncOp( asyncOp( asyncInfo ),asyncInfo,syncOp( syncInfo:Object,asyncRet ),syncInfo:Object )
  16. Function bbSystemAsyncFD()
  17. Function bbSystemFlushAsyncOps()
  18. End Extern
  19. Const XKeyPress=2
  20. Const XKeyRelease=3
  21. Function XKeyHandler(keyevent,key,mask)
  22. WriteStdout "XKeyHandler "+keyevent+","+key+","+mask+"~n"
  23. End Function
  24. Type TLinuxSystemDriver Extends TSystemDriver
  25. Method New()
  26. bbSystemStartup
  27. End Method
  28. Method Poll()
  29. bbSystemPoll()
  30. End Method
  31. Method Wait()
  32. bbSystemWait()
  33. End Method
  34. Method Emit( osevent:Byte Ptr,source:Object )
  35. Throw "simon come here"
  36. End Method
  37. Method SetMouseVisible( visible )
  38. bbSetMouseVisible(visible)
  39. End Method
  40. Method MoveMouse( x,y )
  41. bbMoveMouse x,y
  42. End Method
  43. Method Notify( text$,serious )
  44. WriteStdout text+"~r~n"
  45. End Method
  46. Method Confirm( text$,serious )
  47. WriteStdout text+" (Yes/No)?"
  48. Local t$=ReadStdin().ToLower()
  49. If t[..1]="y" Return 1
  50. Return 0
  51. End Method
  52. Method Proceed( text$,serious )
  53. WriteStdout text+" (Yes/No/Cancel)?"
  54. Local t$=ReadStdin().ToLower()
  55. If t[..1]="y" Return 1
  56. If t[..1]="n" Return 0
  57. Return -1
  58. End Method
  59. Method RequestFile$( text$,exts$,save,file$ )
  60. WriteStdout "Enter a filename:"
  61. Return ReadStdin()
  62. End Method
  63. Method RequestDir$( text$,path$ )
  64. WriteStdout "Enter a directory name:"
  65. Return ReadStdin()
  66. End Method
  67. Method OpenURL( url$ )
  68. If getenv_("KDE_FULL_DESKTOP")
  69. system_ "kfmclient exec ~q"+url+"~q"
  70. ElseIf getenv_("GNOME_DESKTOP_SESSION_ID")
  71. system_ "gnome-open ~q"+url+"~q"
  72. EndIf
  73. End Method
  74. End Type