Technical discussions | Discussions techniques
matttbe, Monday 27 June 2011 à 22:33
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Hello,
Je l'avais déjà évoqué, le port du dock pour utiliser GTK+-3.0 ne pouvait se faire facilement car GtkGLExt ne supporte pas (encore?) lui-même GTK+-3.0.
J'ai lancé la discussion sur la ML de ce projet, voici le sujet: http://mail.gnome.org/archives/gtkglext-list/2011-June/thread.html
D'après le dernier message, il ne faut pas s'attendre à un port dans les semaines qui viennent car ça ne semble pas intéresser beaucoup de monde pour le moment. D'un autre côté, ce message explique qu'il est possible d'utiliser des mêmes fonctions OpenGL dans en environnement GTK en se passant de GtkGLExt: http://mail.gnome.org/archives/gtkglext-list/2011-June/msg00003.html (avec un exemple et un cas concret!) |
Subscription date : 30 November 2007
Messages : 17118
|
ah merci !
effectivement il n'y a pas grand chose dans cette lib en fait (et j'avais même hésité à m'en passer, avant de me dire que comme ça, si quelque chose changeait, la couche entre les 2 m'éviterait de casser mon code après il faut pas s'étonner si les éditeurs proprios ne développent rien sous Linux bon j'arrête de troller ! )
j'imagine qu'on a encore du temps avant que gtk2 ne soit plus intégré par défaut dans les distros, donc temporisons un peu (j'aimerais éviter de rajouter trop de dépendances à X). |
matttbe, Wednesday 29 June 2011 à 09:50
|
|
fabounet, Wednesday 29 June 2011 à 16:49
|
|
Subscription date : 30 November 2007
Messages : 17118
|
oui on y viendra.
mais pour l'instant si gtkglext est portée, ça nous fera autant de travail en moins |
matttbe, Wednesday 29 June 2011 à 17:46
|
|
Subscription date : 24 January 2009
Messages : 12573
|
mais pour l'instant si gtkglext est portée, ça nous fera autant de travail en moins Oui mais ce n'est pas prévu pour tout de suite... |
matttbe, Sunday 20 November 2011 à 15:32
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Merci Fabounet, nous voilà débarrassé de GtkGLExt (en fait, qu'est-ce que ça change exactement avec les dernières modifs? qu'est-ce qu'on y perd?)
Par contre, je me demandais ce que tu avais avec la rev 930 (la dernière que tu as pushée)? Car j'ai dû faire plusieurs modifs (rev 931) pour que ça refonctionne avec GTK2. Enfin, ça ne m'a absolument pas dérangé, j'étais même content de les faire et j'espère que j'ai bien fait ça (un revert est tjs possible ) mais c'est juste que ça ne te ressemble pas ces push qui rendent la partie core du dock totalement impossible à compiler. Enfin, c'est p-ê parce que je suis sur Ubuntu Precise mais vu les modifs, ça m'étonnerait. Ou alors un push sur une mauvaise branche? (ce serait dommage car l'intention était très bonne )
Pour le reste des modifications à faire pour un port vers GTK3, il y a ce document: http://developer.gnome.org/gtk3/3.3/gtk-migrating-2-to-3.html. Il y a p-ê plus de modifs à faire que d'utiliser plus de fonctions de cairo...
Concernant GtkGLExt, il y a eu ce message ce matin: https://mail.gnome.org/archives/gtkglext-list/2011-November/msg00000.html, un portage p-ê pour bientôt?
PS: dans la rev 931, il y a deux "@ FABOUNET", pourrais-tu y jeter un coup d'oeil et éventuellement modifier le commentaire? |
fabounet, Monday 21 November 2011 à 13:09
|
|
Subscription date : 30 November 2007
Messages : 17118
|
je n'ai aucune excuse valable
merci d'être passé (encore une fois) derrière moi pour réparer les dégâts
pour les questions: oui pour libcurl, et le if(0) est normal (on n'utilise pas OpenGL pour les dialogues car peu d'intérêt, car il n'y a pas d'animations ni d'icônes dedans, même si on pourrait, mais faudrait coder les moteurs de rendu).
je poursuis le portage, il faut s'attendre à quelques instabilités dans les jours à venir
PS: merci pour MP au fait |
matttbe, Monday 21 November 2011 à 13:21
|
|
Subscription date : 24 January 2009
Messages : 12573
|
avec plaisir
ok, je corrigerais les @ fabounet |
fabounet, Friday 25 November 2011 à 12:13
|
|
Subscription date : 30 November 2007
Messages : 17118
|
bon, ça avance, mais c'est nettement plus long que je pensais
enfin le core est bientôt prêt, et après j'aurais une surprise |
matttbe, Friday 25 November 2011 à 12:32
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Chouette
N'hésite pas à pusher sur une branche parallèle |
matttbe, Wednesday 21 December 2011 à 21:41
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Je vois que le paquet "libgnome-menu-3.0" est disponible!
Par contre, ils en ont profité pour faire des changements dans l'API... Voici le diff du fichier gmenu-tree.h --- /usr/include/gnome-menus/gmenu-tree.h 2011-08-26 12:22:41.000000000 +0200
+++ /usr/include/gnome-menus-3.0/gmenu-tree.h 2011-10-05 12:36:12.000000000 +0200
@@ -1,5 +1,5 @@
*
- * Copyright (C) 2004 Red Hat, Inc.
+ * Copyright (C) 2004, 2011 Red Hat, Inc.
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
@@ -24,21 +24,34 @@
-+G_BEGIN_DECLS
-typedef struct GMenuTree GMenuTree;
-typedef struct GMenuTreeItem GMenuTreeItem;
+++++++
+typedef struct _GMenuTree GMenuTree;
+typedef struct _GMenuTreeClass GMenuTreeClass;
+
+struct _GMenuTreeClass
+{
+ GObjectClass parent_class;
+};
+
+GType gmenu_tree_get_type (void) G_GNUC_CONST;
+
+typedef struct GMenuTreeIter GMenuTreeIter;
typedef struct GMenuTreeDirectory GMenuTreeDirectory;
typedef struct GMenuTreeEntry GMenuTreeEntry;
typedef struct GMenuTreeSeparator GMenuTreeSeparator;
typedef struct GMenuTreeHeader GMenuTreeHeader;
typedef struct GMenuTreeAlias GMenuTreeAlias;
-typedef void (*GMenuTreeChangedFunc) (GMenuTree *tree,
- gpointer user_data);
-
typedef enum
{
GMENU_TREE_ITEM_INVALID = 0,
@@ -49,105 +62,87 @@
GMENU_TREE_ITEM_ALIAS
} GMenuTreeItemType;
------+GType gmenu_tree_iter_get_type (void);
+
++GType gmenu_tree_directory_get_type (void);
+GType gmenu_tree_entry_get_type (void);
+GType gmenu_tree_separator_get_type (void);
+GType gmenu_tree_header_get_type (void);
+GType gmenu_tree_alias_get_type (void);
typedef enum
{
GMENU_TREE_FLAGS_NONE = 0,
GMENU_TREE_FLAGS_INCLUDE_EXCLUDED = 1 << 0,
- GMENU_TREE_FLAGS_SHOW_EMPTY = 1 << 1,
- GMENU_TREE_FLAGS_INCLUDE_NODISPLAY = 1 << 2,
- GMENU_TREE_FLAGS_SHOW_ALL_SEPARATORS = 1 << 3,
- GMENU_TREE_FLAGS_MASK = 0x0f
+ GMENU_TREE_FLAGS_INCLUDE_NODISPLAY = 1 << 1,
+ + GMENU_TREE_FLAGS_SHOW_EMPTY = 1 << 8,
+ GMENU_TREE_FLAGS_SHOW_ALL_SEPARATORS = 1 << 9,
+ + GMENU_TREE_FLAGS_SORT_DISPLAY_NAME = 1 << 16
} GMenuTreeFlags;
+GType gmenu_tree_flags_get_type (void);
+-typedef enum
-{
- - GMENU_TREE_SORT_NAME = 0,
- GMENU_TREE_SORT_DISPLAY_NAME
- -} GMenuTreeSortKey;
-
-GMenuTree *gmenu_tree_lookup (const char *menu_file,
- GMenuTreeFlags flags);
-
-GMenuTree *gmenu_tree_ref (GMenuTree *tree);
-void gmenu_tree_unref (GMenuTree *tree);
-
-void gmenu_tree_set_user_data (GMenuTree *tree,
- gpointer user_data,
- GDestroyNotify dnotify);
-gpointer gmenu_tree_get_user_data (GMenuTree *tree);
+GMenuTree *gmenu_tree_new (const char *menu_basename,
+ GMenuTreeFlags flags);
+
+GMenuTree *gmenu_tree_new_for_path (const char *menu_path,
+ GMenuTreeFlags flags);
+
+gboolean gmenu_tree_load_sync (GMenuTree *tree,
+ GError **error);
-const char *gmenu_tree_get_menu_file (GMenuTree *tree);
+const char *gmenu_tree_get_canonical_menu_path (GMenuTree *tree);
GMenuTreeDirectory *gmenu_tree_get_root_directory (GMenuTree *tree);
GMenuTreeDirectory *gmenu_tree_get_directory_from_path (GMenuTree *tree,
const char *path);
-
-GMenuTreeSortKey gmenu_tree_get_sort_key (GMenuTree *tree);
-void gmenu_tree_set_sort_key (GMenuTree *tree,
- GMenuTreeSortKey sort_key);
-
-
+GMenuTreeEntry *gmenu_tree_get_entry_by_id (GMenuTree *tree,
+ const char *id);
gpointer gmenu_tree_item_ref (gpointer item);
void gmenu_tree_item_unref (gpointer item);
-void gmenu_tree_item_set_user_data (GMenuTreeItem *item,
- gpointer user_data,
- GDestroyNotify dnotify);
-gpointer gmenu_tree_item_get_user_data (GMenuTreeItem *item);
-
-GMenuTreeItemType gmenu_tree_item_get_type (GMenuTreeItem *item);
-GMenuTreeDirectory *gmenu_tree_item_get_parent (GMenuTreeItem *item);
-
-
-GSList *gmenu_tree_directory_get_contents (GMenuTreeDirectory *directory);
+GMenuTreeDirectory *gmenu_tree_directory_get_parent (GMenuTreeDirectory *directory);
const char *gmenu_tree_directory_get_name (GMenuTreeDirectory *directory);
+const char *gmenu_tree_directory_get_generic_name (GMenuTreeDirectory *directory);
const char *gmenu_tree_directory_get_comment (GMenuTreeDirectory *directory);
-const char *gmenu_tree_directory_get_icon (GMenuTreeDirectory *directory);
+GIcon *gmenu_tree_directory_get_icon (GMenuTreeDirectory *directory);
const char *gmenu_tree_directory_get_desktop_file_path (GMenuTreeDirectory *directory);
const char *gmenu_tree_directory_get_menu_id (GMenuTreeDirectory *directory);
-GMenuTree *gmenu_tree_directory_get_tree (GMenuTreeDirectory *directory);
gboolean gmenu_tree_directory_get_is_nodisplay (GMenuTreeDirectory *directory);
+GMenuTreeIter *gmenu_tree_directory_iter (GMenuTreeDirectory *directory);
+
+GMenuTreeIter *gmenu_tree_iter_ref (GMenuTreeIter *iter);
+void gmenu_tree_iter_unref (GMenuTreeIter *iter);
+
+GMenuTreeItemType gmenu_tree_iter_next (GMenuTreeIter *iter);
+GMenuTreeDirectory *gmenu_tree_iter_get_directory (GMenuTreeIter *iter);
+GMenuTreeEntry *gmenu_tree_iter_get_entry (GMenuTreeIter *iter);
+GMenuTreeHeader *gmenu_tree_iter_get_header (GMenuTreeIter *iter);
+GMenuTreeAlias *gmenu_tree_iter_get_alias (GMenuTreeIter *iter);
+
char *gmenu_tree_directory_make_path (GMenuTreeDirectory *directory,
GMenuTreeEntry *entry);
-const char *gmenu_tree_entry_get_name (GMenuTreeEntry *entry);
-const char *gmenu_tree_entry_get_generic_name (GMenuTreeEntry *entry);
-const char *gmenu_tree_entry_get_display_name (GMenuTreeEntry *entry);
-const char *gmenu_tree_entry_get_comment (GMenuTreeEntry *entry);
-const char *gmenu_tree_entry_get_icon (GMenuTreeEntry *entry);
-const char *gmenu_tree_entry_get_exec (GMenuTreeEntry *entry);
-gboolean gmenu_tree_entry_get_launch_in_terminal (GMenuTreeEntry *entry);
+GDesktopAppInfo *gmenu_tree_entry_get_app_info (GMenuTreeEntry *entry);
+GMenuTreeDirectory *gmenu_tree_entry_get_parent (GMenuTreeEntry *entry);
const char *gmenu_tree_entry_get_desktop_file_path (GMenuTreeEntry *entry);
const char *gmenu_tree_entry_get_desktop_file_id (GMenuTreeEntry *entry);
gboolean gmenu_tree_entry_get_is_excluded (GMenuTreeEntry *entry);
-gboolean gmenu_tree_entry_get_is_nodisplay (GMenuTreeEntry *entry);
GMenuTreeDirectory *gmenu_tree_header_get_directory (GMenuTreeHeader *header);
-GMenuTreeDirectory *gmenu_tree_alias_get_directory (GMenuTreeAlias *alias);
-GMenuTreeItem *gmenu_tree_alias_get_item (GMenuTreeAlias *alias);
-
-void gmenu_tree_add_monitor (GMenuTree *tree,
- GMenuTreeChangedFunc callback,
- gpointer user_data);
-void gmenu_tree_remove_monitor (GMenuTree *tree,
- GMenuTreeChangedFunc callback,
- gpointer user_data);
-void gmenu_tree_set_desktop_session_name (char *);
+GMenuTreeDirectory *gmenu_tree_alias_get_directory (GMenuTreeAlias *alias);
+GMenuTreeItemType gmenu_tree_alias_get_aliased_item_type (GMenuTreeAlias *alias);
+GMenuTreeDirectory *gmenu_tree_alias_get_aliased_directory (GMenuTreeAlias *alias);
+GMenuTreeEntry *gmenu_tree_alias_get_aliased_entry (GMenuTreeAlias *alias);
G_END_DECLS
et donc ça demande une remise en forme du code pour l'utiliser
Il faudra plus que simplement cette modif: === modified file 'CMakeLists.txt'
--- CMakeLists.txt 2011-12-21 15:12:31 +0000
+++ CMakeLists.txt 2011-12-21 20:12:05 +0000
@@ -415,7 +415,11 @@
message (STATUS "> GMenu:")
set (with_gmenu "no")
if (NOT "${enable-gmenu}" STREQUAL "no")
- pkg_check_modules (GMENU_PACKAGE libgnome-menu)
+ if ("${gtkversion}" STREQUAL "2")
+ pkg_check_modules (GMENU_PACKAGE libgnome-menu)
+ else()
+ pkg_check_modules (GMENU_PACKAGE libgnome-menu-3.0)
+ endif()
if ("${GMENU_PACKAGE_FOUND}" STREQUAL "")
message (STATUS "Could not find libgnome-menu; Cairo-Dock won't be built with GMenu applet.")
message (WARNING "This module is required to compile GMenu applet: libgnome-menu")
|
matttbe, Sunday 08 January 2012 à 18:21
|
|
fabounet, Wednesday 11 January 2012 à 12:58
|
|
Subscription date : 30 November 2007
Messages : 17118
|
c'est une bonne nouvele, mais je pense aussi qu'on n'y reviendra pas
à moins que la lib évolue en quelque chose de plus, ou bien que l'arrivée de wayland casse tout. |
matttbe, Wednesday 11 January 2012 à 13:27
|
|
Subscription date : 24 January 2009
Messages : 12573
|
Mais peut-être qu'il y a des solutions qu'ils utilisent qui soient intéressantes pour le dock (mouais, ok )
Sinon, une idée pour résoudre le bug avec switcher et le fond d'écran vide? |
fabounet, Thursday 12 January 2012 à 16:31
|
|
Subscription date : 30 November 2007
Messages : 17118
|
en fait on l'utilisait très peu (car la lib n'apporte justement pas grand chose)
si elle se développe, on verra |
Technical discussions | Discussions techniques
|