Successfully upgraded to Vanilla Forums v2.6. Please report any issue you may find.

2.7 - I Flag delle finestre

edited May 2016 in Italian
Quando viene creata una finestra è possibile impostare alcuni flag per abilitare o disabilitare le caratteristiche elencate di seguito:

Resizeable
- Impostare a True per far si che la finestra possa essere ridimensionata dall'utente (default), se invece questo flag è impostata a False la finestra non potrà essere ridimensionata.

Closeable
- Impostare a True per far si che la finestra possa essere chiusa con il gadget di chiusura (default), in caso contrario il gadget di chiusura risulterà disabilitato.

Moveable
- Impostare a True per far si che la finestra possa essere spostata dall'utente (default), se impostato su False la finestra non potrà essere spostata.

Borderless
- Impostare a True per creare una finestra senza bordi, oppure impostare su False per creare una finestra standard (default).

Modal
- Impostare a True per creare una finestra modale (sempre in primo piano fino a che non viene chiusa), oppure impostare su False per creare una finestra standard (default).

Hideable
- Impostare a True per far si che la finestra possa essere ridotta ad icona dall'utente (default) oppure impostare su False per impedire la riduzione ad icona da parte dell'utente.

Autoclose
- Impostare a True per chiudere immediatamente la finestra quando il gadget di chiusura viene premuto (default) oppure impostare su False per far si che la chiusura non avvenga automaticamente ma che spetti al programmatore farlo subito dopo aver ricevuto la notifica di chiusura da parte di una funzione di callback.

Come di consueto adesso vedremo un esempio per comprendere meglio questo argomento, create un nuovo script e digitate il seguente codice:
; Includiamo la libreria HGui nella nostra applicazione e attiviamo il debug
@INCLUDE "yourpath/+Includes.hws"
@INCLUDE #INC_HGUI

DBG.Console.Enable(True, False)
DBG.Console.AddChannel(HGui.DebugChannel)
Il seguente codice si occuperà della creazione di 5 finestre, ognuna coni flag impostati in maniera differente, l'impostazione dei flag sarà indicata nel titolo della finestra:
; Prima finestra : impediamo il ridimensionamento
Local myWin1 = HGui.Window:new(
	{ title = "W1 : Can't be resized!",
	  name = "win1",
	  position = { x = 20, y = 20 },
	  size = { w = 300, h = 300 },
	  flags = { resizeable = False }
	  })

; Seconda finestra : impediamo lo spostamento 
Local myWin2 = HGui.Window:new(
	{ title = "W2 : Can't be moved!",
	  name = "win2",
	  position = { x = 50, y = 50 },
	  size = { w = 300, h = 300 },
	  flags = { moveable = False }
	  })

; Terza finestra : impediamo la chiusura
Local myWin3 = HGui.Window:new(
	{ title = "W3 : Can't be closed!",
	  name = "win3",
	  position = { x = 80, y = 80 },
	  size = { w = 300, h = 300 },
	  flags = { closeable = False, autoclose = False }
	  })

; Quarta finestra : creiamo una finestra senza bordi
Local myWin4 = HGui.Window:new(
	{ title = "W4 : Borderless window!",
	  name = "wi4",
	  position = { x = 110, y = 110 },
	  size = { w = 300, h = 300 },
	  flags = { borderless = True }
	  })

; Quinta finestra : Impediamo la riduzione ad icona
Local myWin5 = HGui.Window:new(
	{ title = "W5 : Can't be hided!",
	  name = "win5",
	  position = { x = 140, y = 140 },
	  size = { w = 300, h = 300 },
	  flags = { hideable = False }
	  })

; Loop infinito per la rilevazione degli eventi
Repeat
	WaitEvent()
Forever
Ovviamente i flag possono essere anche combinati tra loro, basta elencarli all'interno della tabella flags con il valore desiderato: provate a creare alcune finestre impostando più flag contemporaneamente.
Sign In or Register to comment.