From: <dat...@us...> - 2006-12-20 05:43:52
|
Revision: 18026 http://svn.sourceforge.net/gaim/?rev=18026&view=rev Author: datallah Date: 2006-12-19 21:43:51 -0800 (Tue, 19 Dec 2006) Log Message: ----------- Sean came up with the idea to give the windows folks an easy way to browse to the logs directory. I implemented it. Hopefully this will avoid a FAQ or two. I also noticed and plugged a small and rarely encountered leak. Modified Paths: -------------- trunk/gtk/gtklog.c trunk/gtk/win32/gtkwin32dep.c trunk/gtk/win32/gtkwin32dep.h Modified: trunk/gtk/gtklog.c =================================================================== --- trunk/gtk/gtklog.c 2006-12-19 18:52:18 UTC (rev 18025) +++ trunk/gtk/gtklog.c 2006-12-20 05:43:51 UTC (rev 18026) @@ -163,9 +163,18 @@ gaim_gtk_clear_cursor(lv->window); } -static gboolean destroy_cb(GtkWidget *w, gint resp, struct log_viewer_hash_t *ht) { +static void destroy_cb(GtkWidget *w, gint resp, struct log_viewer_hash_t *ht) { GaimGtkLogViewer *lv = syslog_viewer; +#ifdef _WIN32 + if (resp == GTK_RESPONSE_HELP) { + char *logdir = g_build_filename(gaim_user_dir(), "logs", NULL); + gtkwgaim_shell_execute(logdir, "explore", NULL); + g_free(logdir); + return; + } +#endif + if (ht != NULL) { lv = g_hash_table_lookup(log_viewers, ht); g_hash_table_remove(log_viewers, ht); @@ -182,8 +191,6 @@ g_free(lv); gtk_widget_destroy(w); - - return TRUE; } static void log_row_activated_cb(GtkTreeView *tv, GtkTreePath *path, GtkTreeViewColumn *col, GaimGtkLogViewer *viewer) { @@ -345,6 +352,10 @@ /* Window ***********/ lv->window = gtk_dialog_new_with_buttons(title, NULL, 0, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); +#ifdef _WIN32 + /* Steal the "HELP" response and use it to trigger browsing to the logs folder */ + gtk_dialog_add_button(GTK_DIALOG(lv->window), _("_Browse logs folder"), GTK_RESPONSE_HELP); +#endif gtk_container_set_border_width (GTK_CONTAINER(lv->window), GAIM_HIG_BOX_SPACE); gtk_dialog_set_has_separator(GTK_DIALOG(lv->window), FALSE); gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(lv->window)->vbox), 0); @@ -450,7 +461,7 @@ } void gaim_gtk_log_show(GaimLogType type, const char *screenname, GaimAccount *account) { - struct log_viewer_hash_t *ht = g_new0(struct log_viewer_hash_t, 1); + struct log_viewer_hash_t *ht; GaimGtkLogViewer *lv = NULL; const char *name = screenname; char *title; @@ -458,6 +469,8 @@ g_return_if_fail(account != NULL); g_return_if_fail(screenname != NULL); + ht = g_new0(struct log_viewer_hash_t, 1); + ht->type = type; ht->screenname = g_strdup(screenname); ht->account = account; @@ -466,6 +479,7 @@ log_viewers = g_hash_table_new(log_viewer_hash, log_viewer_equal); } else if ((lv = g_hash_table_lookup(log_viewers, ht))) { gtk_window_present(GTK_WINDOW(lv->window)); + g_free(ht->screenname); g_free(ht); return; } Modified: trunk/gtk/win32/gtkwin32dep.c =================================================================== --- trunk/gtk/win32/gtkwin32dep.c 2006-12-19 18:52:18 UTC (rev 18025) +++ trunk/gtk/win32/gtkwin32dep.c 2006-12-20 05:43:51 UTC (rev 18026) @@ -119,7 +119,7 @@ if(untar(tmpfile, destdir, UNTAR_FORCE | UNTAR_QUIET)) ret = 1; else { - gaim_debug_error("gtkwgaim_gz_untar", "Failure untaring %s\n", tmpfile); + gaim_debug_error("gtkwgaim_gz_untar", "Failure untarring %s\n", tmpfile); ret = 0; } g_unlink(tmpfile); @@ -131,53 +131,68 @@ } } -void gtkwgaim_notify_uri(const char *uri) { +void gtkwgaim_shell_execute(const char *target, const char *verb, const char *clazz) { - /* We'll allow whatever URI schemes are supported by the - * default http browser. - */ + g_return_if_fail(target != NULL); + g_return_if_fail(verb != NULL); if (G_WIN32_HAVE_WIDECHAR_API()) { SHELLEXECUTEINFOW wsinfo; - wchar_t *w_uri; + wchar_t *w_uri, *w_verb, *w_clazz = NULL; - w_uri = g_utf8_to_utf16(uri, -1, NULL, NULL, NULL); + w_uri = g_utf8_to_utf16(target, -1, NULL, NULL, NULL); + w_verb = g_utf8_to_utf16(verb, -1, NULL, NULL, NULL); memset(&wsinfo, 0, sizeof(wsinfo)); wsinfo.cbSize = sizeof(wsinfo); - wsinfo.fMask = SEE_MASK_CLASSNAME; - wsinfo.lpVerb = L"open"; + wsinfo.lpVerb = w_verb; wsinfo.lpFile = w_uri; wsinfo.nShow = SW_SHOWNORMAL; - wsinfo.lpClass = L"http"; + if (clazz != NULL) { + w_clazz = g_utf8_to_utf16(clazz, -1, NULL, NULL, NULL); + wsinfo.fMask |= SEE_MASK_CLASSNAME; + wsinfo.lpClass = w_clazz; + } if(!ShellExecuteExW(&wsinfo)) gaim_debug_error("gtkwgaim", "Error opening URI: %s error: %d\n", - uri, (int) wsinfo.hInstApp); + target, (int) wsinfo.hInstApp); g_free(w_uri); + g_free(w_verb); + g_free(w_clazz); } else { SHELLEXECUTEINFOA sinfo; gchar *locale_uri; - locale_uri = g_locale_from_utf8(uri, -1, NULL, NULL, NULL); + locale_uri = g_locale_from_utf8(target, -1, NULL, NULL, NULL); memset(&sinfo, 0, sizeof(sinfo)); sinfo.cbSize = sizeof(sinfo); - sinfo.fMask = SEE_MASK_CLASSNAME; - sinfo.lpVerb = "open"; + sinfo.lpVerb = verb; sinfo.lpFile = locale_uri; sinfo.nShow = SW_SHOWNORMAL; - sinfo.lpClass = "http"; + if (clazz != NULL) { + sinfo.fMask |= SEE_MASK_CLASSNAME; + sinfo.lpClass = clazz; + } if(!ShellExecuteExA(&sinfo)) gaim_debug_error("gtkwgaim", "Error opening URI: %s error: %d\n", - uri, (int) sinfo.hInstApp); + target, (int) sinfo.hInstApp); g_free(locale_uri); } + } +void gtkwgaim_notify_uri(const char *uri) { + /* We'll allow whatever URI schemes are supported by the + * default http browser. + */ + gtkwgaim_shell_execute(uri, "open", "http"); +} + #define WM_FOCUS_REQUEST (WM_APP + 13) static LRESULT CALLBACK message_window_handler(HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) { Modified: trunk/gtk/win32/gtkwin32dep.h =================================================================== --- trunk/gtk/win32/gtkwin32dep.h 2006-12-19 18:52:18 UTC (rev 18025) +++ trunk/gtk/win32/gtkwin32dep.h 2006-12-20 05:43:51 UTC (rev 18026) @@ -34,6 +34,7 @@ /* Misc */ void gtkwgaim_notify_uri(const char *uri); +void gtkwgaim_shell_execute(const char *target, const char *verb, const char *clazz); void gtkwgaim_ensure_onscreen(GtkWidget *win); void gtkwgaim_conv_blink(GaimConversation *conv, GaimMessageFlags flags); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sa...@us...> - 2006-12-20 09:28:42
|
Revision: 18028 http://svn.sourceforge.net/gaim/?rev=18028&view=rev Author: sadrul Date: 2006-12-20 01:28:29 -0800 (Wed, 20 Dec 2006) Log Message: ----------- Draw a small "close-button" in the buddylist-headline when the cursor is moved over it. I was drawing the close button all the time first, but showing it only on hover seemed like a better idea. Clicking the close-button will close the headline box without triggering the callback. Modified Paths: -------------- trunk/gtk/gtkblist.c trunk/gtk/gtkblist.h Modified: trunk/gtk/gtkblist.c =================================================================== --- trunk/gtk/gtkblist.c 2006-12-20 05:50:49 UTC (rev 18027) +++ trunk/gtk/gtkblist.c 2006-12-20 09:28:29 UTC (rev 18028) @@ -61,6 +61,8 @@ #include <gtk/gtk.h> #include <gdk/gdk.h> +#define HEADLINE_CLOSE_SIZE 12 + typedef struct { GaimAccount *account; @@ -268,6 +270,8 @@ gaim_prefs_set_int("/gaim/gtk/blist/width", event->width); gaim_prefs_set_int("/gaim/gtk/blist/height", event->height); + gtk_widget_set_size_request(gtkblist->headline_label, + gaim_prefs_get_int("/gaim/gtk/blist/width")-25,-1); /* continue to handle event normally */ return FALSE; } @@ -3673,16 +3677,63 @@ } static gboolean +headline_hover_close(int x, int y) +{ + GtkWidget *w = gtkblist->headline_hbox; + if (x <= w->allocation.width && x >= w->allocation.width - HEADLINE_CLOSE_SIZE && + y >= 0 && y <= HEADLINE_CLOSE_SIZE) + return TRUE; + return FALSE; +} + +static gboolean headline_box_enter_cb(GtkWidget *widget, GdkEventCrossing *event, GaimGtkBuddyList *gtkblist) { gdk_window_set_cursor(widget->window, gtkblist->hand_cursor); + + if (gtkblist->headline_close) { +#if GTK_CHECK_VERSION(2,2,0) + gdk_draw_pixbuf(widget->window, NULL, gtkblist->headline_close, +#else + gdk_pixbuf_render_to_drawable(gtkblist->headline_close, + GDK_DRAWABLE(widget->window), NULL, +#endif + 0, 0, + widget->allocation.width - 2 - HEADLINE_CLOSE_SIZE, 2, + HEADLINE_CLOSE_SIZE, HEADLINE_CLOSE_SIZE, + GDK_RGB_DITHER_NONE, 0, 0); + gtk_paint_focus(widget->style, widget->window, GTK_STATE_PRELIGHT, + NULL, widget, NULL, + widget->allocation.width - HEADLINE_CLOSE_SIZE - 3, 1, + HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2); + } + return FALSE; } +#if 0 static gboolean +headline_box_motion_cb(GtkWidget *widget, GdkEventMotion *event, GaimGtkBuddyList *gtkblist) +{ + gaim_debug_fatal("motion", "%d %d\n", (int)event->x, (int)event->y); + if (headline_hover_close((int)event->x, (int)event->y)) + gtk_paint_focus(widget->style, widget->window, GTK_STATE_PRELIGHT, + NULL, widget, NULL, + widget->allocation.width - HEADLINE_CLOSE_SIZE - 3, 1, + HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2); + return FALSE; +} +#endif + +static gboolean headline_box_leave_cb(GtkWidget *widget, GdkEventCrossing *event, GaimGtkBuddyList *gtkblist) { gdk_window_set_cursor(widget->window, gtkblist->arrow_cursor); + if (gtkblist->headline_close) { + GdkRectangle rect = {widget->allocation.width - 3 - HEADLINE_CLOSE_SIZE, 1, + HEADLINE_CLOSE_SIZE + 2, HEADLINE_CLOSE_SIZE + 2}; + gdk_window_invalidate_rect(widget->window, &rect, TRUE); + } return FALSE; } @@ -3697,7 +3748,7 @@ headline_box_press_cb(GtkWidget *widget, GdkEventButton *event, GaimGtkBuddyList *gtkblist) { gtk_widget_hide(gtkblist->headline_hbox); - if (gtkblist->headline_callback) + if (gtkblist->headline_callback && !headline_hover_close((int)event->x, (int)event->y)) g_idle_add((GSourceFunc)headline_click_callback, gtkblist->headline_data); return TRUE; } @@ -3824,9 +3875,9 @@ static gboolean paint_headline_hbox (GtkWidget *widget, GdkEventExpose *event, - gpointer user_data) + gpointer user_data) { - gtk_paint_flat_box (widget->style, + gtk_paint_flat_box (widget->style, widget->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT, @@ -3837,8 +3888,7 @@ widget->allocation.y + 1, widget->allocation.width - 2, widget->allocation.height - 2); - - return FALSE; + return FALSE; } static void @@ -4044,11 +4094,27 @@ NULL); gtk_widget_set_name(gtkblist->headline_hbox, "gtk-tooltips"); + gtkblist->headline_close = gtk_widget_render_icon(ebox, GTK_STOCK_CLOSE, -1, NULL); + if (gtkblist->headline_close) { + GdkPixbuf *scale = gdk_pixbuf_scale_simple(gtkblist->headline_close, + HEADLINE_CLOSE_SIZE, HEADLINE_CLOSE_SIZE, GDK_INTERP_BILINEAR); + gdk_pixbuf_unref(gtkblist->headline_close); + gtkblist->headline_close = scale; + } + gtkblist->hand_cursor = gdk_cursor_new (GDK_HAND2); gtkblist->arrow_cursor = gdk_cursor_new (GDK_LEFT_PTR); + g_signal_connect(G_OBJECT(ebox), "enter-notify-event", G_CALLBACK(headline_box_enter_cb), gtkblist); g_signal_connect(G_OBJECT(ebox), "leave-notify-event", G_CALLBACK(headline_box_leave_cb), gtkblist); g_signal_connect(G_OBJECT(ebox), "button-press-event", G_CALLBACK(headline_box_press_cb), gtkblist); +#if 0 + /* I couldn't get this to work. The idea was to draw the focus-border only + * when hovering over the close image. So for now, the focus-border is + * always there. -- sad */ + gtk_widget_set_events(ebox, gtk_widget_get_events(ebox) | GDK_POINTER_MOTION_HINT_MASK); + g_signal_connect(G_OBJECT(ebox), "motion-notify-event", G_CALLBACK(headline_box_motion_cb), gtkblist); +#endif /****************************** GtkTreeView **********************************/ sw = gtk_scrolled_window_new(NULL,NULL); @@ -4833,6 +4899,9 @@ gaim_signals_disconnect_by_handle(gtkblist); + if (gtkblist->headline_close) + gdk_pixbuf_unref(gtkblist->headline_close); + gtk_widget_destroy(gtkblist->window); gaim_gtk_blist_tooltip_destroy(); Modified: trunk/gtk/gtkblist.h =================================================================== --- trunk/gtk/gtkblist.h 2006-12-20 05:50:49 UTC (rev 18027) +++ trunk/gtk/gtkblist.h 2006-12-20 09:28:29 UTC (rev 18028) @@ -103,6 +103,7 @@ GtkWidget *headline_hbox; /**< Hbox for headline notification */ GtkWidget *headline_label; /**< Label for headline notifications */ GtkWidget *headline_image; /**< Image for headline notifications */ + GdkPixbuf *headline_close; /**< Close image for closing the headline without triggering the callback */ GCallback headline_callback; /**< Callback for headline notifications */ gpointer headline_data; /**< User data for headline notifications */ gboolean changing_style; /**< True when changing GTK+ theme style */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <nos...@us...> - 2006-12-22 19:15:53
|
Revision: 18048 http://svn.sourceforge.net/gaim/?rev=18048&view=rev Author: nosnilmot Date: 2006-12-22 11:15:38 -0800 (Fri, 22 Dec 2006) Log Message: ----------- Fixes for compiling and running with Gtk 2.0 ! Modified Paths: -------------- trunk/gtk/gtkscrollbook.c trunk/gtk/gtkscrollbook.h trunk/gtk/gtkstatusbox.c trunk/gtk/gtkutils.c trunk/gtk/gtkutils.h Modified: trunk/gtk/gtkscrollbook.c =================================================================== --- trunk/gtk/gtkscrollbook.c 2006-12-22 08:41:29 UTC (rev 18047) +++ trunk/gtk/gtkscrollbook.c 2006-12-22 19:15:38 UTC (rev 18048) @@ -133,8 +133,9 @@ static void switch_page_cb(GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, GtkGaimScrollBook *scroll_book) { + int count; #if GTK_CHECK_VERSION(2,2,0) - int count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(scroll_book->notebook)); + count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(scroll_book->notebook)); #else count = g_list_length(GTK_NOTEBOOK(scroll_book->notebook)->children); #endif Modified: trunk/gtk/gtkscrollbook.h =================================================================== --- trunk/gtk/gtkscrollbook.h 2006-12-22 08:41:29 UTC (rev 18047) +++ trunk/gtk/gtkscrollbook.h 2006-12-22 19:15:38 UTC (rev 18048) @@ -28,6 +28,9 @@ #include <gtk/gtk.h> +#if !GTK_CHECK_VERSION(2,4,0) +#include "gaimcombobox.h" +#endif G_BEGIN_DECLS Modified: trunk/gtk/gtkstatusbox.c =================================================================== --- trunk/gtk/gtkstatusbox.c 2006-12-22 08:41:29 UTC (rev 18047) +++ trunk/gtk/gtkstatusbox.c 2006-12-22 19:15:38 UTC (rev 18048) @@ -1190,9 +1190,11 @@ static void gtk_gaim_status_box_list_position (GtkGaimStatusBox *status_box, int *x, int *y, int *width, int *height) { +#if GTK_CHECK_VERSION(2,2,0) GdkScreen *screen; gint monitor_num; GdkRectangle monitor; +#endif GtkRequisition popup_req; GtkPolicyType hpolicy, vpolicy; @@ -1218,6 +1220,7 @@ *height = popup_req.height; +#if GTK_CHECK_VERSION(2,2,0) screen = gtk_widget_get_screen (GTK_WIDGET (status_box)); monitor_num = gdk_screen_get_monitor_at_window (screen, GTK_WIDGET (status_box)->window); @@ -1250,6 +1253,7 @@ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (status_box->scrolled_window), hpolicy, vpolicy); } +#endif } static gboolean @@ -1268,8 +1272,13 @@ return TRUE; else { +#if GTK_CHECK_VERSION(2,2,0) gdk_display_pointer_ungrab (gdk_drawable_get_display (window), activate_time); +#else + gdk_pointer_ungrab(activate_time); + gdk_keyboard_ungrab(activate_time); +#endif return FALSE; } } @@ -1526,8 +1535,10 @@ } gtk_window_set_resizable (GTK_WINDOW (status_box->popup_window), FALSE); +#if GTK_CHECK_VERSION(2,2,0) gtk_window_set_screen (GTK_WINDOW (status_box->popup_window), gtk_widget_get_screen (GTK_WIDGET (status_box))); +#endif status_box->popup_frame = gtk_frame_new (NULL); gtk_frame_set_shadow_type (GTK_FRAME (status_box->popup_frame), GTK_SHADOW_ETCHED_IN); @@ -1554,8 +1565,10 @@ gtk_tree_selection_set_mode (sel, GTK_SELECTION_BROWSE); gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (status_box->tree_view), FALSE); +#if GTK_CHECK_VERSION(2,6,0) gtk_tree_view_set_hover_selection (GTK_TREE_VIEW (status_box->tree_view), TRUE); +#endif gtk_tree_view_set_model (GTK_TREE_VIEW (status_box->tree_view), GTK_TREE_MODEL(status_box->dropdown_store)); status_box->column = gtk_tree_view_column_new (); Modified: trunk/gtk/gtkutils.c =================================================================== --- trunk/gtk/gtkutils.c 2006-12-22 08:41:29 UTC (rev 18047) +++ trunk/gtk/gtkutils.c 2006-12-22 19:15:38 UTC (rev 18048) @@ -2466,6 +2466,7 @@ char **prpl_formats; int width, height; char **pixbuf_formats = NULL; + struct stat st; GdkPixbufFormat *format; GdkPixbuf *pixbuf; #if !GTK_CHECK_VERSION(2,4,0) @@ -2477,7 +2478,6 @@ const char *dirname; char *random; char *filename; - struct stat st; prpl_info = GAIM_PLUGIN_PROTOCOL_INFO(plugin); @@ -2815,7 +2815,7 @@ return pixbuf; } -#endif +#endif /* ! Gtk 2.6.0 */ void gaim_gtk_set_custom_buddy_icon(GaimAccount *account, const char *who, const char *filename) { @@ -3092,3 +3092,28 @@ return result; } + +#if !GTK_CHECK_VERSION(2,2,0) +GtkTreePath * +gtk_tree_path_new_from_indices (gint first_index, ...) +{ + int arg; + va_list args; + GtkTreePath *path; + + path = gtk_tree_path_new (); + + va_start (args, first_index); + arg = first_index; + + while (arg != -1) + { + gtk_tree_path_append_index (path, arg); + arg = va_arg (args, gint); + } + + va_end (args); + + return path; +} +#endif Modified: trunk/gtk/gtkutils.h =================================================================== --- trunk/gtk/gtkutils.h 2006-12-22 08:41:29 UTC (rev 18047) +++ trunk/gtk/gtkutils.h 2006-12-22 19:15:38 UTC (rev 18048) @@ -533,5 +533,20 @@ gboolean gaim_gtk_tree_view_search_equal_func(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer data); +#if !GTK_CHECK_VERSION(2,2,0) +/** + * This is copied from Gtk to support Gtk 2.0 + * + * Creates a new path with @first_index and @varargs as indices. + * + * @param first_index first integer + * @param varargs list of integers terminated by -1 + * + * @return A newly created GtkTreePath. + * + */ +GtkTreePath *gtk_tree_path_new_from_indices (gint first_index, ...); +#endif + #endif /* _GAIM_GTKUTILS_H_ */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sea...@us...> - 2007-01-19 01:57:58
|
Revision: 18159 http://svn.sourceforge.net/gaim/?rev=18159&view=rev Author: seanegan Date: 2007-01-18 17:57:56 -0800 (Thu, 18 Jan 2007) Log Message: ----------- How's this, Mark? Modified Paths: -------------- trunk/gtk/gaimcombobox.c trunk/gtk/gaimcombobox.h Modified: trunk/gtk/gaimcombobox.c =================================================================== --- trunk/gtk/gaimcombobox.c 2007-01-18 20:19:41 UTC (rev 18158) +++ trunk/gtk/gaimcombobox.c 2007-01-19 01:57:56 UTC (rev 18159) @@ -3557,7 +3557,21 @@ gtk_list_store_remove (store, &iter); } +static gchar * +gtk_combo_box_get_active_text (GtkComboBox *combo_box) +{ + GtkTreeIter iter; + gchar *text = NULL; + g_return_val_if_fail (GTK_IS_LIST_STORE (combo_box->priv->model), NULL); + + if (gtk_combo_box_get_active_iter (combo_box, &iter)) + gtk_tree_model_get (combo_box->priv->model, &iter, + 0, &text, -1); + return text; +} + + static gboolean gtk_combo_box_mnemonic_activate (GtkWidget *widget, gboolean group_cycling) Modified: trunk/gtk/gaimcombobox.h =================================================================== --- trunk/gtk/gaimcombobox.h 2007-01-18 20:19:41 UTC (rev 18158) +++ trunk/gtk/gaimcombobox.h 2007-01-19 01:57:56 UTC (rev 18159) @@ -98,6 +98,7 @@ const gchar *text); void gtk_combo_box_remove_text (GtkComboBox *combo_box, gint position); +gchar *gtk_combo_box_get_active_text (GtkComboBox *combo_box); /* programmatic control */ void gtk_combo_box_popup (GtkComboBox *combo_box); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <the...@us...> - 2007-01-25 08:27:34
|
Revision: 18174 http://svn.sourceforge.net/gaim/?rev=18174&view=rev Author: thekingant Date: 2007-01-25 00:27:28 -0800 (Thu, 25 Jan 2007) Log Message: ----------- sf patch #1644019, from good ol' Ka-Hing Cheung "fix compiling on gtk 2.4. xmppconsole.c is the culprit. gtk_combo_box_get_active_text is defined in gtk 2.6 but not 2.4." Modified Paths: -------------- trunk/gtk/gaimcombobox.c trunk/gtk/gaimcombobox.h trunk/gtk/gtkgaim.h Modified: trunk/gtk/gaimcombobox.c =================================================================== --- trunk/gtk/gaimcombobox.c 2007-01-25 08:17:08 UTC (rev 18173) +++ trunk/gtk/gaimcombobox.c 2007-01-25 08:27:28 UTC (rev 18174) @@ -21,9 +21,10 @@ #include <config.h> */ #include <gtk/gtkversion.h> -#if !GTK_CHECK_VERSION(2,4,0) +#if !GTK_CHECK_VERSION(2,6,0) #include "gaimcombobox.h" +#if !GTK_CHECK_VERSION(2,4,0) #include <gtk/gtkarrow.h> #include <gtk/gtkbindings.h> #include "gtkcelllayout.h" @@ -3557,21 +3558,6 @@ gtk_list_store_remove (store, &iter); } -static gchar * -gtk_combo_box_get_active_text (GtkComboBox *combo_box) -{ - GtkTreeIter iter; - gchar *text = NULL; - - g_return_val_if_fail (GTK_IS_LIST_STORE (combo_box->priv->model), NULL); - - if (gtk_combo_box_get_active_iter (combo_box, &iter)) - gtk_tree_model_get (combo_box->priv->model, &iter, - 0, &text, -1); - return text; -} - - static gboolean gtk_combo_box_mnemonic_activate (GtkWidget *widget, gboolean group_cycling) @@ -3745,3 +3731,19 @@ } } #endif /* Gtk 2.4 */ + +gchar * +gtk_combo_box_get_active_text (GtkComboBox *combo_box) +{ + GtkTreeIter iter; + gchar *text = NULL; + + /* g_return_val_if_fail (GTK_IS_LIST_STORE (combo_box->priv->model), NULL); */ + + if (gtk_combo_box_get_active_iter (combo_box, &iter)) + gtk_tree_model_get (gtk_combo_box_get_model(combo_box), &iter, + 0, &text, -1); + return text; +} + +#endif Modified: trunk/gtk/gaimcombobox.h =================================================================== --- trunk/gtk/gaimcombobox.h 2007-01-25 08:17:08 UTC (rev 18173) +++ trunk/gtk/gaimcombobox.h 2007-01-25 08:27:28 UTC (rev 18174) @@ -17,6 +17,9 @@ * Boston, MA 02111-1307, USA. */ +#ifndef __GAIM_COMBO_BOX_H__ +#define __GAIM_COMBO_BOX_H__ + #ifndef __GTK_COMBO_BOX_H__ #define __GTK_COMBO_BOX_H__ @@ -98,8 +101,6 @@ const gchar *text); void gtk_combo_box_remove_text (GtkComboBox *combo_box, gint position); -gchar *gtk_combo_box_get_active_text (GtkComboBox *combo_box); - /* programmatic control */ void gtk_combo_box_popup (GtkComboBox *combo_box); void gtk_combo_box_popdown (GtkComboBox *combo_box); @@ -107,3 +108,7 @@ G_END_DECLS #endif /* __GTK_COMBO_BOX_H__ */ + +gchar *gtk_combo_box_get_active_text (GtkComboBox *combo_box); + +#endif /* __GAIM_COMBOX_BOX_H__ */ Modified: trunk/gtk/gtkgaim.h =================================================================== --- trunk/gtk/gtkgaim.h 2007-01-25 08:17:08 UTC (rev 18173) +++ trunk/gtk/gtkgaim.h 2007-01-25 08:27:28 UTC (rev 18174) @@ -55,24 +55,24 @@ */ /** @cond */ #if (!GTK_CHECK_VERSION(2,4,0)) -#define GTK_WRAP_WORD_CHAR GTK_WRAP_WORD -#include "gtkexpander.h" +# define GTK_WRAP_WORD_CHAR GTK_WRAP_WORD +# include "gtkexpander.h" #endif /** @endcond */ /* * We include the sources for GtkComboBox and GtkCellView because - * they don't exist in older version of Gtk+, and we use them + * they don't exist in older versions of GTK+, and we use them * in a few places. */ #if !GTK_CHECK_VERSION(2,6,0) # include "gtkcellview.h" # include "gtkcellviewmenuitem.h" +# include "gaimcombobox.h" # if !GTK_CHECK_VERSION(2,4,0) # include "gtkcelllayout.h" -# include "gaimcombobox.h" -# endif /* Gtk 2.4 */ -#endif /* Gtk 2.6 */ +# endif /* Less than GTK+ 2.4 */ +#endif /* Less than GTK+ 2.6 */ /* * Spacings between components, as defined by the This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |