Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 04-09-2003, 09:31   #1
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
GTK finestre senza bordo

ho cercato, ma mi ritrovo qua....
come si pu' fare a creare finestre senza bordo tramite le gtk?
da quello che posso capire questo settaggio non fa parte dei widget
gtk ma come per win e' una funzione del windows manager.....

non vorrei avere: barra del titolo, toolbox chiudi minimizza ingrandisci,
e possibilmente neanche il bordo. stile flat.
grazie.

Ultima modifica di x110 : 04-09-2003 alle 17:55.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 04-09-2003, 19:35   #2
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Re: GTK finestre senza bordo

Quote:
Originariamente inviato da x110
ho cercato, ma mi ritrovo qua....
come si pu' fare a creare finestre senza bordo tramite le gtk?
da quello che posso capire questo settaggio non fa parte dei widget
gtk ma come per win e' una funzione del windows manager.....

non vorrei avere: barra del titolo, toolbox chiudi minimizza ingrandisci,
e possibilmente neanche il bordo. stile flat.
grazie.
L'unica cosa che puoi togliere è il bottone di minimizzazione e ingrandimento, mediante accurata definizione dei parametri nella gtk_window_set_policy().

Il resto non puoi farlo perchè fa parte del Window Manager. E poi sarebbe una cosa stupida farlo, completamente inutile. A che pro?
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 04-09-2003, 19:53   #3
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
perche' deve essere stupida? a me servirebbe
mi dai qualche info in piu circa le policy?
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2003, 02:44   #4
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
E' stupida perchè non è standard. Le applicazioni grafiche non devono funzionare così. Hanno i loro standard.
E poi come la chiuderesti l'applicazione senza casella di chiusura sulla title bar??

Ti faccio l'esempio della gtk_window_set_policy():

Codice:
#include <gtk/gtk.h>

/* Dovrebbero autoesplicare i parametri di gtk_window_set_policy() */
#define ALLOW_GROW TRUE
#define NOT_ALLOW_GROW !ALLOW_GROW
#define ALLOW_SHRINK TRUE
#define NOT_ALLOW_SHRINK !ALLOW_SHRINK
#define AUTO_SHRINK  TRUE
#define NO_AUTO_SHRINK !AUTO_SHRINK

gint
delete_event_callback(GtkWidget * widget,
                      gpointer user_data)
{
        return FALSE;
}

int
main(int argc, char ** argv)
{
        GtkWidget * top_window;

        gtk_init(&argc, &argv);

        top_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_default_size(GTK_WINDOW(top_window), 320, 200);
        gtk_window_set_policy(GTK_WINDOW(top_window),
                              NOT_ALLOW_SHRINK,
                              NOT_ALLOW_GROW,
                              NO_AUTO_SHRINK);

        gtk_signal_connect(GTK_OBJECT(top_window), "delete_event",
                           GTK_SIGNAL_FUNC(delete_event_callback), NULL);
        gtk_signal_connect(GTK_OBJECT(top_window), "destroy",
                           gtk_main_quit, NULL);

        gtk_widget_show(top_window);
        gtk_main();

        return 0;
}
Te l'ho scritto molto al volo quindi se non compila cerca di aggiustarlo.

Ciao.
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2003, 12:00   #5
Icedguardian
Member
 
Iscritto dal: May 2003
Messaggi: 283
Non credo sia una cosa stupida anzi molti programmi la usano per fare "Splash screen" o come cavolo si chiamano.

Ciao
__________________
/***
* Nulla è impossibile per chi non deve farlo
***/
Icedguardian è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2003, 12:18   #6
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Quote:
Originariamente inviato da Icedguardian
Non credo sia una cosa stupida anzi molti programmi la usano per fare "Splash screen" o come cavolo si chiamano.

Ciao
Bhè...Allora dillo prima che ti servono gli spash screen ... Quelle non sono affatto finestre. Sono widgets con una gtkImage incorporata, mostrata su schermo senza l'intervento del WM. Si dovrebbe fare un pesante uso di GDK per realizzare una fighettata del genere. (A meno, ovviamente, di usare le API di gnome che dovrebbe avere una funzione apposita).
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 05-09-2003, 12:22   #7
Icedguardian
Member
 
Iscritto dal: May 2003
Messaggi: 283
Hmmm, in realtà a me non servono, ho solo cercato di immaginare a cosa potesse servire una cosa del genere
Io tra un mesetto diventerò molto presente da queste parti quando inizierò a fare la tesi
__________________
/***
* Nulla è impossibile per chi non deve farlo
***/
Icedguardian è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2003, 11:12   #8
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
non ho capito bene...
per fare uno splash bisogna usare le GDK? o c'e' una via piu' veloce?

comunque uscire dallo standard non e' stupido....
(non mollo). lo standard nei pc e' windows il che vuol dire che siamo tutti stupidi

a parte gli scherzi. a me piacerebbe ci fosse questa possibilita' che spesso usavo in vb.
anche semplicemente per dare uno stile diverso dagli altri programmi che pur che siano
fatti bene, a me non piacciono e voglio crearmi un mio stile. per esempio xmm ha un suo stile
che non e' quello standard e non usa lo stile del coontesto e del wm.

comunque sia...

grazie per la policy.
mi toglie solo il pulsante di ingrandimento e non quello di minimizzazione e chiusura.
per quello di chiusura non c'e' problema ma mi sebra mi dicesti che anche quello di
minimizzazione si potesse togliere.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2003, 17:27   #9
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
Bhe ... Tutto dipende da cosa si vuole fare ... XMMS per esempio è una combinazione fra un tema fatto apposta e la programmazione di widget ad hoc.

Comunque GDK è importantissimo per fare cose un pochino + spinte. Sopratutto per modificare il comportamento dei widgets.
Ricordatevi che con GTK+ potete far una programmazione OO e potete ereditare le caratteristiche di un widget per costruirne un altro o modificarne le funzionalità.

In ogni caso vi consiglio di cercare sul reference manual delle API. Se non c'è li, non esiste.

Comunque per creare uno splash screen in genere si fa così:

Si crea una nuova finestra che non sia una main window:

Codice:
GtkWidget * splash_screen = gtk_window_new(GTK_WINDOW_POPUP);
Lo splash screen ha una dimensione fissa ed inoltre va posizionato al centro dello schermo:

Codice:
gtk_widget_set_usize(splash_screen, 428, 314);
gtk_window_set_position(GTK_WINDOW(splash_screen), GTK_WIN_POS_CENTER);
Uno splash screen ha anche un'immagine in esso (altrimenti che splash sarebbe ):

Codice:
GtkWidget * pixmap = create_pixmap_from_data(splash_screen, splash_xpm);
gtk_container_add(GTK_CONTAINER(splash_screen, pixmap);
gtk_widget_show(pixmap);
gtk_widget_show(splash_screen);
A questo punto lo splash è costruito. Poichè dovrebbe essere visualizzato ad un certo istante di esecuzione, per forzare la sua visualizzazione usiamo la funzione:

Codice:
gdk_flush(); /* Pensatela come una fflush(stdout); ;) */
Lo splash ad un certo punto deve andare via. Impostiamo un timer di timeout che gli dica di scomparire dopo tre secondi:

Codice:
gtk_timeout_add(3000, splash_screen_cb, splash_screen);
dove splash_screen_cb è un puntatore alla funzione di callback che deve essere eseguita passati i tre secondi. La possiamo implementare per esempio così:

Codice:
gint
splash_screen_cb(GtkWidget * widget, gpointer user_data)
{
        return (gtk_widget_hide(widget) &&
                gtk_widget_destroy(widget));
}
mjordan è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2003, 18:26   #10
x110
Senior Member
 
Iscritto dal: May 2002
Città: Massa Carrara
Messaggi: 589
spiegazione chiara e lineare...
compliments.
x110 è offline   Rispondi citando il messaggio o parte di esso
Old 06-09-2003, 18:44   #11
mjordan
Bannato
 
L'Avatar di mjordan
 
Iscritto dal: Mar 2002
Città: Pescara - 未婚・恋人なし Moto: Honda CBR 1000 RR ‫Casco: XR1000 Diabolic 3
Messaggi: 27578
A proposito gente... C'è la 2.2.4 sul sito
mjordan è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
I social network hanno stancato gli ital...
Star Citizen supera i 900 milioni di dol...
Netflix ha eliminato la funzione Cast pe...
L'IA è una bolla e scoppier&agrav...
Un rapporto collega i data center di Ama...
Troppa concorrenza per Cherry (quella de...
Entro il 2035 la Cina vuole costruire de...
Tineco in super sconto: ultimo giorno di...
La Cina creerà una costellazione ...
I veicoli elettrici emettono radiazioni ...
Stai per acquistare una PS5? Attento al ...
iPhone 17 Pro Max finalmente disponibile...
Apple, Sony, Bose, Beats, Sennheiser, CM...
Arriva il Raspberry Pi 5 da 1 GB, ma por...
Draghi scuote l'Europa: 'rischio stagnaz...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 22:51.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v