On Thu, 2006-12-21 at 18:07 -0600, Brian Cameron wrote: > Jedy: > > Thanks for the detail. It seems like we would want to add these > interfaces as "Consolidation Private" interfaces, so that we do > *not* recommend their usage outside of the programs that we build > ourselves. Is this correct? > > It seems like these modules are temporary, and will eventually be > replaced by more mature interfaces that are more closely integrated > with GTK+. In other words, we only want to include them now so that > we can provide some additional functionality with a few modules that > we ship. > > If so, I'd recommend that we *not* install any header files or > /usr/lib/pkgconfig files. Instead we should only use these files > during our build process but not ship them. Does this make sense? > We might want to install any libraries to a more private location > than to /usr/lib, perhaps /usr/lib/gnome-private or > /usr/lib/gnome-notification.
Yes, I agree. > > Yes, they can be ARC'ed in 2.18, but it will be easier to ARC > Consolidation Private interfaces like this if we do not ship the > files that allow end-users to build with them. Do you mean it's easier to ARC them separately? Regards, Jedy Wang > > Like I said before, we could include the full packages (with > header files and /usr/lib/pkgconfig files) in spec-files-extra > so that if end-users did want to play with them (e.g. uninstall > our packages and replace them with the full ones), they could. > > Does this make sense? What are your thoughts? > > Brian > > > > On Wed, 2006-12-20 at 18:45 -0600, Brian Cameron wrote: > >> Jedy: > >> > >>>> I would recommend not updating our spec-files with these new modules > >>>> until *after* these new modules are properly ARC'ed. Since some of > >>>> these modules come from non-standard locations (e.g. not ftp.gnome.org), > >>>> I'd like some idea of how stable these modules are, what interfaces > >>>> they expose, if end-users are likely to want to use any exposed > >>>> interfaces, etc. > >>> Because most of distributions have included there modules, I think they > >>> are stable enough to use. But I am not sure whether the interfaces are > >>> stable enough or not. > >> I'd be interested to know what new interfaces are added due to this > >> change. Especially if the interfaces are intended for end-users. Is > >> there an expectation that if somebody writes a new GNOME application > >> that they would want to integrate with these modules? > > > > libnotify: > > /usr/bin/notify-send > > /usr/include/libnotify/notification.h > > /usr/include/libnotfy/notify-enum-types.h > > /usr/include/libnotfy/notify.h > > /usr/lib/libnotify.so* > > /usr/lib/pkgconfig/libnotify.pc > > /usr/share/gtk-doc/html/libnotify > > > > libsexy: > > /usr/include/libsexy/sexy-enum-types.h > > /usr/include/libsexy/sexy.h > > /usr/include/libsexy/sexy-icon-entry.h > > /usr/include/libsexy/sexy-spell-entry.h > > /usr/include/libsexy/sexy-tooltip.h > > /usr/include/libsexy/sexy-tree-view.h > > /usr/include/libsexy/sexy-url-label.h > > /usr/lib/libsexy.so* > > /usr/lib/pkgconfig/libsexy.pc > > /usr/share/gtk-doc/html/libsexy > > > > notification-daemon: > > /etc/gconf/schemas/notification-daemon.schemas > > /usr/share/dbus-1/services/org.freedesktop.Notifications.service > > /usr/lib/notification-daemon-1.0/engines/libstandard.so > > /usr/lib/notification-daemon > > > > APIs they provide to programmer are attached. > > Introductions about the new widgets libsexy provides can be found > > here:http://www.chipx86.com/wiki/Libsexy > > > > Several applications are using libnotify(optionally), such as evolution, > > gnome-applets, gnome-power-manager, gaim(a plugin) and xchat-gnome. And > > many applications those would notify users something has happened can > > benefit from these modules, such as nautilus, rhythmbox and ekiga. > >> It would be good if you provided the interface table you plan to > >> include when you ARC these new components with the review information > >> so we can evaluate the impact before we add to spec-files. Do you > >> plan to FastTrack or will this be a full case? > > > > We hope the arc can be included in arc of gnome-2-18. > > > >> The interface table should explain (in the exported interface table) > >> what interfaces are actually used by other modules in the GNOME stack. > >> > >>>> If these modules aren't at ftp.gnome.org, can you explain why? Is > >>>> there anything we should be doing to help encourage these modules to > >>>> be more formally accepted by the GNOME community? > >>> I will send a mail to ask the maintainers. > >> Yes, it seems like these should be official GNOME desktop modules > >> if people are using them in GNOME desktop applications. Perhaps > >> we should do more to encourage their official recognition as GNOME > >> Desktop modules. If there are issues why these aren't yet a part > >> of the GNOME desktop, I'd like to know why. > > For the discussion about the proposal, please refer to: > > http://mail.gnome.org/archives/desktop-devel-list/2005-December/msg00070.html > > http://mail.gnome.org/archives/desktop-devel-list/2004-November/msg00178.html > > I think the reasons are: > > 1)Some people want gtk2 and notification-area provide such > > functionality. > > 2)They do not want a daemon process(notification-daemon). > >>>> Would these modules be more appropriate for spec-files-extra if we > >>>> want to make them available for end users to play with, but if they > >>>> aren't ready for real 2.18 integration yet? > >>> It does not work that put them in spec-files-extra, because most of the > >>> applications using them is in spec-files. > >> If we end up deciding that they aren't stable enough for including in > >> JDS yet, then we could add them to spec-files-extra so that people who > >> want to build them, and rebuild whatever modules use them can do so > >> if they want to use them, or help to make them more stable so they can > >> become a part of the official GNOME Platform. > >> > >> Brian > >> > >> ------------------------------------------------------------------------ > >> > >> libnotify: > >> > >> gboolean > >> notify_init(const char *app_name); > >> > >> gboolean > >> notify_init(const char *app_name); > >> > >> void > >> notify_uninit(void); > >> > >> gboolean > >> notify_is_initted(void); > >> > >> const gchar * > >> notify_get_app_name(void); > >> > >> GList * > >> notify_get_server_caps(void); > >> > >> gboolean > >> notify_get_server_info(char **ret_name, > >> char **ret_vendor, char **ret_version, > >> char **ret_spec_version); > >> > >> NotifyNotification * > >> notify_notification_new(const gchar *summary, const gchar *body, > >> const gchar *icon, GtkWidget *attach); > >> > >> gboolean > >> notify_notification_update(NotifyNotification *notification, > >> const gchar *summary, const gchar *body, const gchar *icon); > >> > >> void > >> notify_notification_attach_to_widget(NotifyNotification* notification, > >> GtkWidget *attach); > >> > >> void > >> notify_notification_set_geometry_hints(NotifyNotification *notification, > >> GdkScreen *screen, gint x, gint y); > >> > >> gboolean > >> notify_notification_show(NotifyNotification *notification, > >> GError **error); > >> > >> void > >> notify_notification_set_timeout(NotifyNotification *notification, > >> gint timeout); > >> > >> void > >> notify_notification_set_category(NotifyNotification *notification, > >> const char *category); > >> > >> void > >> notify_notification_set_urgency(NotifyNotification *notification, > >> NotifyUrgency urgency); > >> > >> void > >> notify_notification_set_icon_from_pixbuf(NotifyNotification *notification, > >> GdkPixbuf *icon); > >> > >> void > >> notify_notification_set_hint_int32(NotifyNotification *notification, > >> const gchar *key, gint value); > >> > >> void > >> notify_notification_set_hint_double(NotifyNotification *notification, > >> const gchar *key, gdouble value); > >> > >> void > >> notify_notification_set_hint_string(NotifyNotification *notification, > >> const gchar *key, const gchar *value); > >> > >> void > >> notify_notification_set_hint_byte(NotifyNotification *notification, > >> const gchar *key, guchar value); > >> > >> void > >> notify_notification_set_hint_byte_array(NotifyNotification *notification, > >> const gchar *key, const guchar *value, gsize > >> len); > >> > >> void > >> notify_notification_clear_hints(NotifyNotification *notification); > >> > >> void > >> notify_notification_add_action(NotifyNotification *notification, > >> const char *action, const char *label, > >> NotifyActionCallback callback, > >> gpointer user_data, GFreeFunc free_func); > >> > >> void > >> notify_notification_clear_actions(NotifyNotification *notification); > >> > >> gboolean > >> notify_notification_close(NotifyNotification *notification, GError > >> **error); > >> > >> interfaces for gtk2-2.9.2 and above: > >> NotifyNotification * > >> notify_notification_new_with_status_icon(const gchar *summary, const gchar > >> *body, > >> const gchar *icon, GtkStatusIcon *status_icon); > >> > >> NotifyNotification * > >> notify_notification_new_with_status_icon(const gchar *summary, const gchar > >> *body, > >> const gchar *icon, GtkStatusIcon > >> *status_icon); > >> > >> ------------------------------------------------------------------------ > >> > >> libsexy: > >> provides 5 more widgets > >> 1)sexy-icon-entry: > >> GtkWidget * > >> sexy_icon_entry_new(void); > >> void > >> sexy_icon_entry_set_icon(SexyIconEntry *entry, > >> SexyIconEntryPosition position, GtkImage *icon); > >> void > >> sexy_icon_entry_set_icon_highlight(SexyIconEntry *entry, > >> SexyIconEntryPosition position, gboolean highlight); > >> GtkImage * > >> sexy_icon_entry_get_icon(const SexyIconEntry *entry, > >> SexyIconEntryPosition position); > >> gboolean > >> sexy_icon_entry_get_icon_highlight(const SexyIconEntry *entry, > >> SexyIconEntryPosition position); > >> void > >> sexy_icon_entry_add_clear_button(SexyIconEntry *icon_entry); > >> > >> > >> 2)sexy-spell-entry > >> GtkWidget * > >> sexy_spell_entry_new(void); > >> GQuark > >> sexy_spell_error_quark(void); > >> GSList * > >> sexy_spell_entry_get_languages(const SexySpellEntry *entry); > >> gchar * > >> sexy_spell_entry_get_language_name(const SexySpellEntry *entry, > >> const gchar *lang); > >> gboolean > >> sexy_spell_entry_language_is_active(const SexySpellEntry *entry, > >> const gchar *lang); > >> gboolean > >> sexy_spell_entry_activate_language(SexySpellEntry *entry, > >> const gchar *lang, GError **error); > >> void > >> sexy_spell_entry_deactivate_language(SexySpellEntry *entry, > >> const gchar *lang); > >> gboolean > >> sexy_spell_entry_set_active_languages(SexySpellEntry *entry, > >> GSList *langs, GError **error); > >> GSList * > >> sexy_spell_entry_get_active_languages(SexySpellEntry *entry); > >> gboolean > >> sexy_spell_entry_is_checked(SexySpellEntry *entry); > >> void > >> sexy_spell_entry_set_checked(SexySpellEntry *entry, gboolean checked); > >> void > >> sexy_spell_entry_activate_default_languages(SexySpellEntry *entry); > >> > >> 3)sexy-tooltip > >> GtkWidget * > >> sexy_tooltip_new(void); > >> GtkWidget * > >> sexy_tooltip_new_with_label(const gchar *text); > >> void > >> sexy_tooltip_position_to_widget(SexyTooltip *tooltip, GtkWidget *widget); > >> void > >> sexy_tooltip_position_to_rect(SexyTooltip *tooltip, > >> GdkRectangle *rect, GdkScreen *screen); > >> > >> 4)sexy-tree-view > >> GtkWidget * > >> sexy_tree_view_new(void); > >> void > >> sexy_tree_view_set_tooltip_label_column(SexyTreeView *treeview, guint > >> column); > >> > >> 5)sexy-url-label > >> GtkWidget * > >> sexy_url_label_new(void); > >> void > >> sexy_url_label_set_markup(SexyUrlLabel *url_label, const gchar *markup); >
