im.pidgin.pidgin: 9f930eefd5ab7d847af1d7a21c517514d0cf2a97
seanegan at pidgin.im
seanegan at pidgin.im
Mon Dec 17 02:50:51 EST 2007
-----------------------------------------------------------------
Revision: 9f930eefd5ab7d847af1d7a21c517514d0cf2a97
Ancestor: 4e0e8656a87fbe7de3b9ef31c59eb1f0b054938f
Author: seanegan at pidgin.im
Date: 2007-12-17T05:49:40
Branch: im.pidgin.pidgin
Modified files:
ChangeLog pidgin/gtkconv.c pidgin/gtkimhtml.c
pidgin/plugins/pidginrc.c
ChangeLog:
Another patch from DHowett. This one adds conversation nick colors to gtkrc
-------------- next part --------------
============================================================
--- ChangeLog 30d82a5c468f033c28e93b1b735e0333946873a2
+++ ChangeLog 869f5bccac8f9691b8e3ce460ba31908227bda89
@@ -8,6 +8,11 @@ version 2.3.2 (??/??/????):
Bonjour protocol. Avahi (or Apple's Bonjour runtime on win32) is
now required to use Bonjour.
+ Pidgin:
+ * Added the ability to theme conversation name colors (red and blue)
+ through your GTK+ theme, and exposed those theme settings to the
+ Pidgin GTK+ Theme Control plugin (Dustin Howett)
+
Finch:
* Color is used in the buddylist to indicate status, and the conversation
window to indicate various message attributes. Look at the sample gntrc
============================================================
--- pidgin/gtkconv.c d31a0039c986a98fef4a4517d0607b88c72950a3
+++ pidgin/gtkconv.c 53ea279811f406737f126611ecd77b4a8ce0ee9d
@@ -95,9 +95,10 @@ enum {
#define PIDGIN_CONV_ALL ((1 << 7) - 1)
-#define SEND_COLOR "#204a87"
-#define RECV_COLOR "#cc0000"
-#define HIGHLIGHT_COLOR "#AF7F00"
+#define DEFAULT_SEND_COLOR "#204a87"
+#define DEFAULT_RECV_COLOR "#cc0000"
+#define DEFAULT_HIGHLIGHT_COLOR "#AF7F00"
+#define DEFAULT_ACTION_COLOR "#062585"
/* Undef this to turn off "custom-smiley" debug messages */
#define DEBUG_CUSTOM_SMILEY
@@ -3790,7 +3791,7 @@ add_chat_buddy_common(PurpleConversation
if (is_me)
{
GdkColor send_color;
- gdk_color_parse(SEND_COLOR, &send_color);
+ gdk_color_parse(DEFAULT_SEND_COLOR, &send_color);
#if GTK_CHECK_VERSION(2,6,0)
gtk_list_store_insert_with_values(ls, &iter,
@@ -5602,6 +5603,7 @@ pidgin_conv_write_conv(PurpleConversatio
}
else {
if (purple_message_meify(new_message, -1)) {
+ GdkColor *col;
str = g_malloc(1024);
if (flags & PURPLE_MESSAGE_AUTO_RESP) {
@@ -5614,9 +5616,20 @@ pidgin_conv_write_conv(PurpleConversatio
}
if (flags & PURPLE_MESSAGE_NICK)
- strcpy(color, HIGHLIGHT_COLOR);
+ gtk_widget_style_get(GTK_WIDGET(gtkconv->imhtml), "highlight-name-color", &col, NULL);
else
- strcpy(color, "#062585");
+ gtk_widget_style_get(GTK_WIDGET(gtkconv->imhtml), "action-name-color", &col, NULL);
+
+ if(col) {
+ g_snprintf(color, sizeof(color), "#%02X%02X%02X",
+ col->red >> 8, col->green >> 8, col->blue >> 8);
+ }
+ else {
+ if (flags & PURPLE_MESSAGE_NICK)
+ strcpy(color, DEFAULT_HIGHLIGHT_COLOR);
+ else
+ strcpy(color, DEFAULT_ACTION_COLOR);
+ }
}
else {
str = g_malloc(1024);
@@ -5628,19 +5641,46 @@ pidgin_conv_write_conv(PurpleConversatio
g_snprintf(str, 1024, "%s:", alias_escaped);
tag_end_offset = 1;
}
- if (flags & PURPLE_MESSAGE_NICK)
- strcpy(color, HIGHLIGHT_COLOR);
+ if (flags & PURPLE_MESSAGE_NICK) {
+ GdkColor *col;
+ gtk_widget_style_get(GTK_WIDGET(gtkconv->imhtml), "highlight-name-color", &col, NULL);
+ if(col) {
+ g_snprintf(color, sizeof(color), "#%02X%02X%02X",
+ col->red >> 8, col->green >> 8, col->blue >> 8);
+ }
+ else {
+ strcpy(color, DEFAULT_HIGHLIGHT_COLOR);
+ }
+ }
else if (flags & PURPLE_MESSAGE_RECV) {
if (type == PURPLE_CONV_TYPE_CHAT) {
GdkColor *col = get_nick_color(gtkconv, name);
g_snprintf(color, sizeof(color), "#%02X%02X%02X",
col->red >> 8, col->green >> 8, col->blue >> 8);
- } else
- strcpy(color, RECV_COLOR);
+ } else {
+ GdkColor *col;
+ gtk_widget_style_get(GTK_WIDGET(gtkconv->imhtml), "receive-name-color", &col, NULL);
+ if(col) {
+ g_snprintf(color, sizeof(color), "#%02X%02X%02X",
+ col->red >> 8, col->green >> 8, col->blue >> 8);
+ }
+ else {
+ strcpy(color, DEFAULT_RECV_COLOR);
+ }
+ }
}
- else if (flags & PURPLE_MESSAGE_SEND)
- strcpy(color, SEND_COLOR);
+ else if (flags & PURPLE_MESSAGE_SEND) {
+ GdkColor *col;
+ gtk_widget_style_get(GTK_WIDGET(gtkconv->imhtml), "send-name-color", &col, NULL);
+ if(col) {
+ g_snprintf(color, sizeof(color), "#%02X%02X%02X",
+ col->red >> 8, col->green >> 8, col->blue >> 8);
+ }
+ else {
+ strcpy(color, DEFAULT_SEND_COLOR);
+ }
+ }
else {
purple_debug_error("gtkconv", "message missing flags\n");
strcpy(color, "#000000");
@@ -9923,8 +9963,8 @@ generate_nick_colors(guint *color_count,
GdkColor send_color;
time_t breakout_time;
- gdk_color_parse(HIGHLIGHT_COLOR, &nick_highlight);
- gdk_color_parse(SEND_COLOR, &send_color);
+ gdk_color_parse(DEFAULT_HIGHLIGHT_COLOR, &nick_highlight);
+ gdk_color_parse(DEFAULT_SEND_COLOR, &send_color);
srand(background.red + background.green + background.blue + 1);
============================================================
--- pidgin/gtkimhtml.c 7d8b0abaa2fc0483a8c474f3011772755449ca69
+++ pidgin/gtkimhtml.c 169b50512d2213a78c44d79ea1ab909c1d00decc
@@ -1397,6 +1397,22 @@ static void gtk_imhtml_class_init (GtkIM
_("Hyperlink prelight color"),
_("Color to draw hyperlinks when mouse is over them."),
GDK_TYPE_COLOR, G_PARAM_READABLE));
+ gtk_widget_class_install_style_property(widget_class, g_param_spec_boxed("send-name-color",
+ _("Sent Message Name Color"),
+ _("Color to draw the name of a message you sent."),
+ GDK_TYPE_COLOR, G_PARAM_READABLE));
+ gtk_widget_class_install_style_property(widget_class, g_param_spec_boxed("receive-name-color",
+ _("Received Message Name Color"),
+ _("Color to draw the name of a message you received."),
+ GDK_TYPE_COLOR, G_PARAM_READABLE));
+ gtk_widget_class_install_style_property(widget_class, g_param_spec_boxed("highlight-name-color",
+ _("\"Attention\" Name Color"),
+ _("Color to draw the name of a message you received containing your name."),
+ GDK_TYPE_COLOR, G_PARAM_READABLE));
+ gtk_widget_class_install_style_property(widget_class, g_param_spec_boxed("action-name-color",
+ _("Action Message Name Color"),
+ _("Color to draw the name of an action message."),
+ GDK_TYPE_COLOR, G_PARAM_READABLE));
binding_set = gtk_binding_set_by_class (parent_class);
gtk_binding_entry_add_signal (binding_set, GDK_b, GDK_CONTROL_MASK, "format_function_toggle", 1, G_TYPE_INT, GTK_IMHTML_BOLD);
============================================================
--- pidgin/plugins/pidginrc.c 48ae157fd08c4e356899bb202d8c897ec639699e
+++ pidgin/plugins/pidginrc.c f80804f77af21b064626d4aa16cecdfd5d4ec3a5
@@ -30,17 +30,29 @@ static const gchar *color_prefs[] = {
static const gchar *color_prefs[] = {
"/plugins/gtk/purplerc/color/GtkWidget::cursor-color",
"/plugins/gtk/purplerc/color/GtkWidget::secondary-cursor-color",
- "/plugins/gtk/purplerc/color/GtkIMHtml::hyperlink-color"
+ "/plugins/gtk/purplerc/color/GtkIMHtml::hyperlink-color",
+ "/plugins/gtk/purplerc/color/GtkIMHtml::send-name-color",
+ "/plugins/gtk/purplerc/color/GtkIMHtml::receive-name-color",
+ "/plugins/gtk/purplerc/color/GtkIMHtml::highlight-name-color",
+ "/plugins/gtk/purplerc/color/GtkIMHtml::action-name-color"
};
static const gchar *color_prefs_set[] = {
"/plugins/gtk/purplerc/set/color/GtkWidget::cursor-color",
"/plugins/gtk/purplerc/set/color/GtkWidget::secondary-cursor-color",
- "/plugins/gtk/purplerc/set/color/GtkIMHtml::hyperlink-color"
+ "/plugins/gtk/purplerc/set/color/GtkIMHtml::hyperlink-color",
+ "/plugins/gtk/purplerc/set/color/GtkIMHtml::send-name-color",
+ "/plugins/gtk/purplerc/set/color/GtkIMHtml::receive-name-color",
+ "/plugins/gtk/purplerc/set/color/GtkIMHtml::highlight-name-color",
+ "/plugins/gtk/purplerc/set/color/GtkIMHtml::action-name-color"
};
static const gchar *color_names[] = {
N_("Cursor Color"),
N_("Secondary Cursor Color"),
- N_("Hyperlink Color")
+ N_("Hyperlink Color"),
+ N_("Sent Message Name Color"),
+ N_("Received Message Name Color"),
+ N_("Highlighted Message Name Color"),
+ N_("Action Message Name Color")
};
static GtkWidget *color_widgets[G_N_ELEMENTS(color_prefs)];
More information about the Commits
mailing list