static void draw_background (BixiMarker *marker, gint radius) { BixiMarkerPrivate *priv = marker->priv; ClutterActor *bg = NULL; ClutterColor color; ClutterColor darker_color; gboolean highlighted = FALSE; guint line_width = 1; cairo_t *cr; bg = clutter_cairo_texture_new (radius * 2, radius * 2); cr = clutter_cairo_texture_create (CLUTTER_CAIRO_TEXTURE (bg)); color = *champlain_marker_get_color (CHAMPLAIN_MARKER (marker)); if (priv->value == 0) color.alpha = 128; g_object_get (marker, "highlighted", &highlighted, NULL); if (highlighted) { #if CHAMPLAIN_CHECK_VERSION(0, 4, 1) color = *champlain_marker_get_highlight_color (); #else line_width *= 3; #endif } clutter_color_darken (&color, &darker_color); draw_box (cr, radius); cairo_set_source_rgba (cr, color.red / 255.0, color.green / 255.0, color.blue / 255.0, color.alpha / 255.0); cairo_fill_preserve (cr); cairo_set_line_width (cr, line_width); cairo_set_source_rgba (cr, darker_color.red / 255.0, darker_color.green / 255.0, darker_color.blue / 255.0, darker_color.alpha / 255.0); cairo_stroke (cr); cairo_destroy (cr); clutter_container_add_actor (CLUTTER_CONTAINER (marker), bg); if (priv->background != NULL) { clutter_container_remove_actor (CLUTTER_CONTAINER (marker), priv->background); g_object_unref (priv->background); } priv->background = g_object_ref (bg); }
static ClutterActor * create_entry (const ClutterColor *color, const gchar *text, PangoAttrList *attrs, gunichar password_char, gint max_length) { ClutterActor *retval = clutter_text_new_full (NULL, text, color); ClutterColor selection = { 0, }; ClutterColor selected_text = { 0x00, 0x00, 0xff, 0xff }; clutter_actor_set_reactive (retval, TRUE); clutter_color_darken (color, &selection); clutter_text_set_editable (CLUTTER_TEXT (retval), TRUE); clutter_text_set_selectable (CLUTTER_TEXT (retval), TRUE); clutter_text_set_activatable (CLUTTER_TEXT (retval), TRUE); clutter_text_set_single_line_mode (CLUTTER_TEXT (retval), TRUE); clutter_text_set_password_char (CLUTTER_TEXT (retval), password_char); clutter_text_set_cursor_color (CLUTTER_TEXT (retval), &selection); clutter_text_set_max_length (CLUTTER_TEXT (retval), max_length); clutter_text_set_selected_text_color (CLUTTER_TEXT (retval), &selected_text); clutter_actor_set_background_color (retval, CLUTTER_COLOR_LightGray); if (attrs) clutter_text_set_attributes (CLUTTER_TEXT (retval), attrs); g_signal_connect (retval, "activate", G_CALLBACK (on_entry_activate), NULL); g_signal_connect (retval, "captured-event", G_CALLBACK (on_captured_event), NULL); return retval; }
//doc ClutterColor darken IO_METHOD(IoClutterColor, darken) { ClutterColor result; clutter_color_darken(&IOCCOLOR(self), &result); return IoClutterColor_newWithColor(IOSTATE, result); }