Differenze tra le versioni di "Attivare la finestra di un programma con le funzioni del API di X11"

Da Gambas-it.org - Wikipedia.
 
(3 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
 
''Attivare'' una finestra significa portarla al di sopra delle altre finestre presenti sul ''desktop'', attribuendole così il ''focus''.
 
''Attivare'' una finestra significa portarla al di sopra delle altre finestre presenti sul ''desktop'', attribuendole così il ''focus''.
 
+
<BR>Per attivare, dunque, la finestra di un programma si può utilizzare la funzione ''XRaiseWindow()'' della libreria condivisa (nella sua attuale versione) ''libX11.so.6.4.0'' .
Per attivare, dunque, la finestra di un programma si può utilizzare la funzione ''XRaiseWindow()'' della libreria condivisa (nella sua attuale versione) ''libX11.so.6.3.0'' .
+
<BR>Tale funzione esterna richiede, fra l'altro, la specificazione del numero identificativo della finestra del programma da chiudere.
 
 
Tale funzione esterna richiede, fra l'altro, la specificazione del numero identificativo della finestra del programma da chiudere.
 
 
 
  
 
Mostriamo un esempio essenziale:
 
Mostriamo un esempio essenziale:
  Library "libX11:6.3.0"
+
  Library "libX11:6.4.0"
 
   
 
   
 
  <FONT Color=gray>' ''Display *XOpenDisplay(char *display_name)''
 
  <FONT Color=gray>' ''Display *XOpenDisplay(char *display_name)''
 
  ' ''Opens a connection to the X server that controls a display.''</font>
 
  ' ''Opens a connection to the X server that controls a display.''</font>
  Private Extern XOpenDisplay(display$ As String) As Pointer
+
  Private Extern XOpenDisplay(display_name As Pointer) As Pointer
 
   
 
   
 
  <FONT Color=gray>' ''XRaiseWindow(Display *display, Window w)''
 
  <FONT Color=gray>' ''XRaiseWindow(Display *display, Window w)''
 
  ' ''Raises the specified window to the top of the stack so that no sibling window obscures it.''</font>
 
  ' ''Raises the specified window to the top of the stack so that no sibling window obscures it.''</font>
  Private Extern XRaiseWindow(displayP As Pointer, w As Integer) As Integer
+
  Private Extern XRaiseWindow(display As Pointer, w As Long) As Integer
 
   
 
   
 
  <FONT Color=gray>' ''XCloseDisplay(Display *display)''
 
  <FONT Color=gray>' ''XCloseDisplay(Display *display)''
 
  ' ''Closes the connection to the X server for the display specified in the Display structure and destroys all windows.''</font>
 
  ' ''Closes the connection to the X server for the display specified in the Display structure and destroys all windows.''</font>
  Private Extern XCloseDisplay(displayP As Pointer)
+
  Private Extern XCloseDisplay(display As Pointer)
 
   
 
   
 
   
 
   
  '''Public Sub Main()
+
  '''Public''' Sub Main()
 
   
 
   
 
   Dim disp As Pointer
 
   Dim disp As Pointer
 
   
 
   
 
  <FONT Color=gray>' ''Connessione al server X ed impostazione di default:''</font>
 
  <FONT Color=gray>' ''Connessione al server X ed impostazione di default:''</font>
  disp = XOpenDisplay(Null)
+
  disp = XOpenDisplay(0)
 +
  If disp == 0 Then Error.Raise("Errore !")
 
   
 
   
  <FONT Color=#B22222>XRaiseWindow(disp, ''num_ID_della_finestra'')</font>
+
  <FONT Color=#B22222>XRaiseWindow(disp, ''num_ID_della_finestra'')</font>
 
   
 
   
 
  <FONT Color=gray>' ''Chiude la libreria:''</font>
 
  <FONT Color=gray>' ''Chiude la libreria:''</font>
  XCloseDisplay(disp)
+
  XCloseDisplay(disp)
 
   
 
   
 
  '''End'''
 
  '''End'''
 
  
  

Versione attuale delle 16:00, 1 mag 2023

Attivare una finestra significa portarla al di sopra delle altre finestre presenti sul desktop, attribuendole così il focus.
Per attivare, dunque, la finestra di un programma si può utilizzare la funzione XRaiseWindow() della libreria condivisa (nella sua attuale versione) libX11.so.6.4.0 .
Tale funzione esterna richiede, fra l'altro, la specificazione del numero identificativo della finestra del programma da chiudere.

Mostriamo un esempio essenziale:

Library "libX11:6.4.0"

' Display *XOpenDisplay(char *display_name)
' Opens a connection to the X server that controls a display.
Private Extern XOpenDisplay(display_name As Pointer) As Pointer

' XRaiseWindow(Display *display, Window w)
' Raises the specified window to the top of the stack so that no sibling window obscures it.
Private Extern XRaiseWindow(display As Pointer, w As Long) As Integer

' XCloseDisplay(Display *display)
' Closes the connection to the X server for the display specified in the Display structure and destroys all windows.
Private Extern XCloseDisplay(display As Pointer)


Public Sub Main()

 Dim disp As Pointer

' Connessione al server X ed impostazione di default:
 disp = XOpenDisplay(0)
 If disp == 0 Then Error.Raise("Errore !")

 XRaiseWindow(disp, num_ID_della_finestra)

' Chiude la libreria:
 XCloseDisplay(disp)

End


Riferimenti