]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkmodifierstyle.c
gtkenums: correct various documentation typos
[~andy/gtk] / gtk / gtkmodifierstyle.c
index 6b2b9a7eb7e903a0c69177a3cb15800fc569935a..4d3cc35194a7afa6b0e0a49ddd6e6e94d7408704 100644 (file)
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include "config.h"
 #include "gtkmodifierstyle.h"
+#include "gtkstyleproviderprivate.h"
 #include "gtkintl.h"
 
-typedef struct GtkModifierStylePrivate GtkModifierStylePrivate;
 typedef struct StylePropertyValue StylePropertyValue;
 
-struct GtkModifierStylePrivate
+struct _GtkModifierStylePrivate
 {
   GtkStyleProperties *style;
   GHashTable *color_properties;
@@ -37,15 +35,18 @@ enum {
 
 static guint signals [LAST_SIGNAL] = { 0 };
 
-static void gtk_modifier_style_provider_init (GtkStyleProviderIface *iface);
-static void gtk_modifier_style_finalize      (GObject      *object);
+static void gtk_modifier_style_provider_init         (GtkStyleProviderIface            *iface);
+static void gtk_modifier_style_provider_private_init (GtkStyleProviderPrivateInterface *iface);
+static void gtk_modifier_style_finalize              (GObject                          *object);
 
-G_DEFINE_TYPE_EXTENDED (GtkModifierStyle, gtk_modifier_style, G_TYPE_OBJECT, 0,
+G_DEFINE_TYPE_EXTENDED (GtkModifierStyle, _gtk_modifier_style, G_TYPE_OBJECT, 0,
                         G_IMPLEMENT_INTERFACE (GTK_TYPE_STYLE_PROVIDER,
-                                               gtk_modifier_style_provider_init));
+                                               gtk_modifier_style_provider_init)
+                        G_IMPLEMENT_INTERFACE (GTK_TYPE_STYLE_PROVIDER_PRIVATE,
+                                               gtk_modifier_style_provider_private_init));
 
 static void
-gtk_modifier_style_class_init (GtkModifierStyleClass *klass)
+_gtk_modifier_style_class_init (GtkModifierStyleClass *klass)
 {
   GObjectClass *object_class;
 
@@ -65,7 +66,7 @@ gtk_modifier_style_class_init (GtkModifierStyleClass *klass)
 }
 
 static void
-gtk_modifier_style_init (GtkModifierStyle *modifier_style)
+_gtk_modifier_style_init (GtkModifierStyle *modifier_style)
 {
   GtkModifierStylePrivate *priv;
 
@@ -80,16 +81,6 @@ gtk_modifier_style_init (GtkModifierStyle *modifier_style)
   priv->style = gtk_style_properties_new ();
 }
 
-static GtkStyleProperties *
-gtk_modifier_style_get_style (GtkStyleProvider *provider,
-                              GtkWidgetPath    *path)
-{
-  GtkModifierStylePrivate *priv;
-
-  priv = GTK_MODIFIER_STYLE (provider)->priv;
-  return g_object_ref (priv->style);
-}
-
 static gboolean
 gtk_modifier_style_get_style_property (GtkStyleProvider *provider,
                                        GtkWidgetPath    *path,
@@ -128,10 +119,48 @@ gtk_modifier_style_get_style_property (GtkStyleProvider *provider,
 static void
 gtk_modifier_style_provider_init (GtkStyleProviderIface *iface)
 {
-  iface->get_style = gtk_modifier_style_get_style;
   iface->get_style_property = gtk_modifier_style_get_style_property;
 }
 
+static GtkCssValue *
+gtk_modifier_style_provider_get_color (GtkStyleProviderPrivate *provider,
+                                       const char              *name)
+{
+  GtkModifierStyle *style = GTK_MODIFIER_STYLE (provider);
+
+  return _gtk_style_provider_private_get_color (GTK_STYLE_PROVIDER_PRIVATE (style->priv->style), name);
+}
+
+static void
+gtk_modifier_style_provider_lookup (GtkStyleProviderPrivate *provider,
+                                    const GtkCssMatcher     *matcher,
+                                    GtkCssLookup            *lookup)
+{
+  GtkModifierStyle *style = GTK_MODIFIER_STYLE (provider);
+
+  _gtk_style_provider_private_lookup (GTK_STYLE_PROVIDER_PRIVATE (style->priv->style),
+                                      matcher,
+                                      lookup);
+}
+
+static GtkCssChange
+gtk_modifier_style_provider_get_change (GtkStyleProviderPrivate *provider,
+                                        const GtkCssMatcher     *matcher)
+{
+  GtkModifierStyle *style = GTK_MODIFIER_STYLE (provider);
+
+  return _gtk_style_provider_private_get_change (GTK_STYLE_PROVIDER_PRIVATE (style->priv->style),
+                                                 matcher);
+}
+
+static void
+gtk_modifier_style_provider_private_init (GtkStyleProviderPrivateInterface *iface)
+{
+  iface->get_color = gtk_modifier_style_provider_get_color;
+  iface->lookup = gtk_modifier_style_provider_lookup;
+  iface->get_change = gtk_modifier_style_provider_get_change;
+}
+
 static void
 gtk_modifier_style_finalize (GObject *object)
 {
@@ -141,11 +170,11 @@ gtk_modifier_style_finalize (GObject *object)
   g_hash_table_destroy (priv->color_properties);
   g_object_unref (priv->style);
 
-  G_OBJECT_CLASS (gtk_modifier_style_parent_class)->finalize (object);
+  G_OBJECT_CLASS (_gtk_modifier_style_parent_class)->finalize (object);
 }
 
 GtkModifierStyle *
-gtk_modifier_style_new (void)
+_gtk_modifier_style_new (void)
 {
   return g_object_new (GTK_TYPE_MODIFIER_STYLE, NULL);
 }
@@ -157,21 +186,10 @@ modifier_style_set_color (GtkModifierStyle *style,
                           const GdkRGBA    *color)
 {
   GtkModifierStylePrivate *priv;
-  GdkRGBA *old_color;
 
   g_return_if_fail (GTK_IS_MODIFIER_STYLE (style));
 
   priv = style->priv;
-  gtk_style_properties_get (priv->style, state,
-                            prop, &old_color,
-                            NULL);
-
-  if ((!color && !old_color) ||
-      (color && old_color && gdk_rgba_equal (color, old_color)))
-    {
-      gdk_rgba_free (old_color);
-      return;
-    }
 
   if (color)
     gtk_style_properties_set (priv->style, state,
@@ -181,13 +199,13 @@ modifier_style_set_color (GtkModifierStyle *style,
     gtk_style_properties_unset_property (priv->style, prop, state);
 
   g_signal_emit (style, signals[CHANGED], 0);
-  gdk_rgba_free (old_color);
+  _gtk_style_provider_private_changed (GTK_STYLE_PROVIDER_PRIVATE (style));
 }
 
 void
-gtk_modifier_style_set_background_color (GtkModifierStyle *style,
-                                         GtkStateFlags     state,
-                                         const GdkRGBA    *color)
+_gtk_modifier_style_set_background_color (GtkModifierStyle *style,
+                                          GtkStateFlags     state,
+                                          const GdkRGBA    *color)
 {
   g_return_if_fail (GTK_IS_MODIFIER_STYLE (style));
 
@@ -195,9 +213,9 @@ gtk_modifier_style_set_background_color (GtkModifierStyle *style,
 }
 
 void
-gtk_modifier_style_set_color (GtkModifierStyle *style,
-                              GtkStateFlags     state,
-                              const GdkRGBA    *color)
+_gtk_modifier_style_set_color (GtkModifierStyle *style,
+                               GtkStateFlags     state,
+                               const GdkRGBA    *color)
 {
   g_return_if_fail (GTK_IS_MODIFIER_STYLE (style));
 
@@ -205,28 +223,14 @@ gtk_modifier_style_set_color (GtkModifierStyle *style,
 }
 
 void
-gtk_modifier_style_set_font (GtkModifierStyle           *style,
-                             const PangoFontDescription *font_desc)
+_gtk_modifier_style_set_font (GtkModifierStyle           *style,
+                              const PangoFontDescription *font_desc)
 {
   GtkModifierStylePrivate *priv;
-  PangoFontDescription *old_font;
 
   g_return_if_fail (GTK_IS_MODIFIER_STYLE (style));
 
   priv = style->priv;
-  gtk_style_properties_get (priv->style, 0,
-                            "font", &old_font,
-                            NULL);
-
-  if ((!old_font && !font_desc) ||
-      (old_font && font_desc &&
-       pango_font_description_equal (old_font, font_desc)))
-    {
-      if (old_font)
-       pango_font_description_free (old_font);
-
-      return;
-    }
 
   if (font_desc)
     gtk_style_properties_set (priv->style, 0,
@@ -235,16 +239,14 @@ gtk_modifier_style_set_font (GtkModifierStyle           *style,
   else
     gtk_style_properties_unset_property (priv->style, "font", 0);
 
-  if (old_font)
-    pango_font_description_free (old_font);
-
   g_signal_emit (style, signals[CHANGED], 0);
+  _gtk_style_provider_private_changed (GTK_STYLE_PROVIDER_PRIVATE (style));
 }
 
 void
-gtk_modifier_style_map_color (GtkModifierStyle *style,
-                              const gchar      *name,
-                              const GdkRGBA    *color)
+_gtk_modifier_style_map_color (GtkModifierStyle *style,
+                               const gchar      *name,
+                               const GdkRGBA    *color)
 {
   GtkModifierStylePrivate *priv;
   GtkSymbolicColor *symbolic_color = NULL;
@@ -254,20 +256,25 @@ gtk_modifier_style_map_color (GtkModifierStyle *style,
 
   priv = style->priv;
 
+  G_GNUC_BEGIN_IGNORE_DEPRECATIONS;
+
   if (color)
     symbolic_color = gtk_symbolic_color_new_literal (color);
 
   gtk_style_properties_map_color (priv->style,
                                   name, symbolic_color);
 
+  G_GNUC_END_IGNORE_DEPRECATIONS;
+
   g_signal_emit (style, signals[CHANGED], 0);
+  _gtk_style_provider_private_changed (GTK_STYLE_PROVIDER_PRIVATE (style));
 }
 
 void
-gtk_modifier_style_set_color_property (GtkModifierStyle *style,
-                                       GType             widget_type,
-                                       const gchar      *prop_name,
-                                       const GdkRGBA    *color)
+_gtk_modifier_style_set_color_property (GtkModifierStyle *style,
+                                        GType             widget_type,
+                                        const gchar      *prop_name,
+                                        const GdkRGBA    *color)
 {
   GtkModifierStylePrivate *priv;
   const GdkRGBA *old_color;
@@ -301,4 +308,5 @@ gtk_modifier_style_set_color_property (GtkModifierStyle *style,
     }
 
   g_signal_emit (style, signals[CHANGED], 0);
+  _gtk_style_provider_private_changed (GTK_STYLE_PROVIDER_PRIVATE (style));
 }