LIBRAIRIE DE CLASSE POUR GTK+

Messages postés
48
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
1 janvier 2005
- - Dernière réponse : psykocrash
Messages postés
244
Date d'inscription
vendredi 14 juin 2002
Statut
Membre
Dernière intervention
17 mars 2009
- 13 juil. 2005 à 05:19
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28550-librairie-de-classe-pour-gtk

Afficher la suite 
cs_Light Angel
Messages postés
48
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
1 janvier 2005
-
N'hesitez pas à rajouter des commentaires
Funto66
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3 -
L'API me plaît bien...bah ça ressemble à du GTK-- (logique...^^).
Ce qui serait sympa serait de faire une version basée sur l'API Win32 sous Win et sur GTK+ sous les UNIXs (voire sous Win aussi pourquoi pas puisque c'est déjà là :p).

Par contre je trouve dommage que certaines parties du code que l'on crée soit relatif à GTK (on utilise des "GtkWidget" et gtk_init()), quitte à avoir une librairie pour masquer ça, autant tout masquer non?
cs_Light Angel
Messages postés
48
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
1 janvier 2005
-
Oui, je sais. J'ai fait des fonctions statiques dans la classe Crystal (à savoir, Run et Exit) et j'ai essayé de rajouter la fonction Init, mais sa marché pas. Surtout que gtk_init est une macro, et non ne fonction, donc, pour savoir ce que je dois mettre dans les arguments ...
Qu'est-ce qui peut nécéssité l'adresse d'un tableau de pointeur (char *[]) parce que gtk_init demande l'adresse de argc, sa c'est facile, mais l'adresse de argv, c plus compliqué ... Je pourrait éventuelement le mettre a jour, mais je ne voit pas ce que je doit rajouter ...
cs_Light Angel
Messages postés
48
Date d'inscription
dimanche 9 mai 2004
Statut
Membre
Dernière intervention
1 janvier 2005
-
Ensuite, pour ce qui est de faire la meme librairie pour l'API Win32, j'ai essayé, mais j'arrive po (honte à moi). Enfin, pour les GtkWidget * dans les CallBacks, je vois pas ce que je peut faire à part faire un typedef.
Funto66
Messages postés
1267
Date d'inscription
mercredi 1 janvier 2003
Statut
Membre
Dernière intervention
28 février 2007
3 -
Pour ta fonction gtk_init je ne pense pas que ce soit si compliqué.
En fait, le but de gtk_init() est de s'occuper de paramètres passés à l'application via la ligne de commande (+ l'initialisation de GTK+, bien entendu ^^).
Comme ça, si par exemple il y avait une option "display=" pour spécifier le numéro du Display (pour le système X Window, sous les UNIXs) tu pourrais appeler ton applciation comme ça :
mon_app display=2
Toi tu ne verrais pas la différence au niveau de la prog, vu que GTK+ aura soigneusement modifié argc et argv :)

Bref quoi qu'il en soi essaie ça :

class Crystal
{
// blabla...
public:
static void Init(int* pargc, char*** pargv);
};

void Crystal::Init(int* pargc, char*** pargv)
{
gtk_init(pargc, pargv);
}

Et bien sûr dans le main() :
Crystal::Init(&argc, &argv);

PS : j'avais pas vu, mais mettre main() qui renvoie un int est préférable en général...c'est la norme ^^