- glkcolor_to_gdkcolor(fg, &fore);
- glkcolor_to_gdkcolor(bg, &back);
+ GdkColor *fore_pointer = NULL;
+ GdkColor *back_pointer = NULL;
+ gchar *fore_name;
+ gchar *back_name;
+
+ switch(fg) {
+ case zcolor_Transparent:
+ case zcolor_Cursor:
+ WARNING(_("zcolor_Transparent, zcolor_Cursor not implemented"));
+ // Fallthrough to default
+ case zcolor_Default:
+ fore_name = "default";
+ break;
+ case zcolor_Current:
+ {
+ if(window->zcolor) {
+ // Get the current foreground color
+ GdkColor *current_color;
+ g_object_get(window->zcolor, "foreground-gdk", ¤t_color, NULL);
+ fore_name = g_strdup_printf("%02X%02X%02X", current_color->red, current_color->green, current_color->blue);
+
+ // Copy the color and use it
+ fore.red = current_color->red;
+ fore.green = current_color->green;
+ fore.blue = current_color->blue;
+ fore_pointer = &fore;
+ } else {
+ fore_name = "default";
+ }
+ break;
+ }
+ default:
+ glkcolor_to_gdkcolor(fg, &fore);
+ fore_pointer = &fore;
+ fore_name = g_strdup_printf("%02X%02X%02X",
+ ((fg & 0xff0000) >> 16),
+ ((fg & 0x00ff00) >> 8),
+ (fg & 0x0000ff)
+ );
+ }