]> www.fi.muni.cz Git - evince.git/blobdiff - cut-n-paste/toolbar-editor/egg-toolbars-model.c
Small cleanup
[evince.git] / cut-n-paste / toolbar-editor / egg-toolbars-model.c
index f0a5b0fa0fb5ebe9ddf1ca00ef272d175ce0c345..27dbedf627e34a5a46065eec683f4d76e0d7c461 100644 (file)
@@ -14,7 +14,7 @@
  *
  *  You should have received a copy of the GNU General Public License
  *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  *
  *  $Id$
  */
 #include <unistd.h>
 #include <string.h>
 #include <libxml/tree.h>
-#include <gdk/gdkproperty.h>
+#include <gdk/gdk.h>
 
-static void egg_toolbars_model_class_init (EggToolbarsModelClass *klass);
-static void egg_toolbars_model_init       (EggToolbarsModel      *model);
 static void egg_toolbars_model_finalize   (GObject               *object);
 
 enum
@@ -57,8 +55,6 @@ typedef struct
 
 static guint signals[LAST_SIGNAL] = { 0 };
 
-static GObjectClass *parent_class = NULL;
-
 #define EGG_TOOLBARS_MODEL_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE ((object), EGG_TYPE_TOOLBARS_MODEL, EggToolbarsModelPrivate))
 
 struct EggToolbarsModelPrivate
@@ -68,36 +64,7 @@ struct EggToolbarsModelPrivate
   GHashTable *flags;
 };
 
-GType
-egg_toolbars_model_get_type (void)
-{
-  static GType type = 0;
-
-  if (G_UNLIKELY (type == 0))
-    {
-      static const GTypeInfo our_info = {
-       sizeof (EggToolbarsModelClass),
-       NULL,                   /* base_init */
-       NULL,                   /* base_finalize */
-       (GClassInitFunc) egg_toolbars_model_class_init,
-       NULL,
-       NULL,                   /* class_data */
-       sizeof (EggToolbarsModel),
-       0,                      /* n_preallocs */
-       (GInstanceInitFunc) egg_toolbars_model_init
-      };
-      volatile GType flags_type; /* work around gcc's optimiser */
-
-      /* make sure the flags type is known */
-      flags_type = EGG_TYPE_TB_MODEL_FLAGS;
-
-      type = g_type_register_static (G_TYPE_OBJECT,
-                                    "EggToolbarsModel",
-                                    &our_info, 0);
-    }
-
-  return type;
-}
+G_DEFINE_TYPE (EggToolbarsModel, egg_toolbars_model, G_TYPE_OBJECT)
 
 static xmlDocPtr
 egg_toolbars_model_to_xml (EggToolbarsModel *model)
@@ -136,7 +103,7 @@ egg_toolbars_model_to_xml (EggToolbarsModel *model)
               node = xmlNewChild (tnode, NULL, (const xmlChar*) "separator", NULL);
               continue;
             }
-          
+
           node = xmlNewChild (tnode, NULL, (const xmlChar*) "toolitem", NULL);
           xmlSetProp (node, (const xmlChar*) "name", (const xmlChar*) item->name);
 
@@ -149,13 +116,13 @@ egg_toolbars_model_to_xml (EggToolbarsModel *model)
                 {
                   xmlNodePtr dnode;
                   char *tmp;
-                  
+
                   tmp = type->get_data (type, item->name);
                   if (tmp != NULL)
                     {
                       dnode = xmlNewTextChild (node, NULL, (const xmlChar*) "data", (const xmlChar*) tmp);
                       g_free (tmp);
-                      
+
                       tmp = gdk_atom_name (type->type);
                       xmlSetProp (dnode, (const xmlChar*) "type", (const xmlChar*) tmp);
                       g_free (tmp);
@@ -247,8 +214,8 @@ is_unique (EggToolbarsModel *model,
 {
   EggToolbarsItem *idata2;
   GNode *toolbar, *item;
-  
-   
+
+
   for(toolbar = g_node_first_child (model->priv->toolbars);
       toolbar != NULL; toolbar = g_node_next_sibling (toolbar))
     {
@@ -256,14 +223,14 @@ is_unique (EggToolbarsModel *model,
          item != NULL; item = g_node_next_sibling (item))
         {
          idata2 = item->data;
-         
+
          if (idata != idata2 && strcmp (idata->name, idata2->name) == 0)
            {
              return FALSE;
            }
        }
     }
-  
+
   return TRUE;
 }
 
@@ -324,7 +291,7 @@ toolbar_node_free (GNode *toolbar_node, EggToolbarsModel *model)
 
   g_node_children_foreach (toolbar_node, G_TRAVERSE_ALL,
                           (GNodeForeachFunc) item_node_free, model);
-    
+
   g_free (toolbar->name);
   g_free (toolbar);
 
@@ -374,14 +341,14 @@ egg_toolbars_model_get_data (EggToolbarsModel *model,
   EggToolbarsItemType *t;
   char *data = NULL;
   GList *l;
-  
+
   if (type == GDK_NONE || type == gdk_atom_intern (EGG_TOOLBAR_ITEM_TYPE, FALSE))
     {
       g_return_val_if_fail (name != NULL, NULL);
       g_return_val_if_fail (*name != 0,   NULL);
       return strdup (name);
     }
-  
+
   for (l = model->priv->types; l != NULL; l = l->next)
     {
       t = l->data;
@@ -391,7 +358,7 @@ egg_toolbars_model_get_data (EggToolbarsModel *model,
          if (data != NULL) break;
         }
     }
-  
+
   return data;
 }
 
@@ -404,14 +371,14 @@ egg_toolbars_model_get_name (EggToolbarsModel *model,
   EggToolbarsItemType *t;
   char *name = NULL;
   GList *l;
-  
+
   if (type == GDK_NONE || type == gdk_atom_intern (EGG_TOOLBAR_ITEM_TYPE, FALSE))
     {
       g_return_val_if_fail (data, NULL);
       g_return_val_if_fail (*data, NULL);
       return strdup (data);
     }
-  
+
   if (create)
     {
       for (l = model->priv->types; name == NULL && l != NULL; l = l->next)
@@ -420,7 +387,7 @@ egg_toolbars_model_get_name (EggToolbarsModel *model,
           if (t->type == type && t->new_name != NULL)
             name = t->new_name (t, data);
         }
-      
+
       return name;
     }
   else
@@ -431,9 +398,9 @@ egg_toolbars_model_get_name (EggToolbarsModel *model,
           if (t->type == type && t->get_name != NULL)
             name = t->get_name (t, data);
         }
-      
+
       return name;
-    }  
+    }
 }
 
 static gboolean
@@ -504,20 +471,20 @@ parse_data_list (EggToolbarsModel *model,
         {
           xmlChar *type = xmlGetProp (child, (const xmlChar*) "type");
           xmlChar *data = xmlNodeGetContent (child);
-  
+
           if (type != NULL)
             {
               GdkAtom atom = gdk_atom_intern ((const char*) type, TRUE);
               name = egg_toolbars_model_get_name (model, atom, (const char*) data, create);
             }
-          
+
           xmlFree (type);
           xmlFree (data);
         }
-      
+
       child = child->next;
     }
-  
+
   return name;
 }
 
@@ -539,25 +506,25 @@ parse_item_list (EggToolbarsModel *model,
             {
               name = parse_data_list (model, child->children, TRUE);
             }
-          
+
           /* If that fails, try to use the name. */
           if (name == NULL)
             {
               xmlChar *type = xmlGetProp (child, (const xmlChar*) "type");
               xmlChar *data = xmlGetProp (child, (const xmlChar*) "name");
               GdkAtom  atom = type ? gdk_atom_intern ((const char*) type, TRUE) : GDK_NONE;
-              
+
               /* If an old format, try to use it. */
               name = egg_toolbars_model_get_name (model, atom, (const char*) data, FALSE);
               if (name == NULL)
                 {
                   name = egg_toolbars_model_get_name (model, atom, (const char*) data, TRUE);
                 }
-              
+
               xmlFree (type);
               xmlFree (data);
             }
-          
+
           if (name != NULL)
             {
               egg_toolbars_model_add_item (model, position, -1, name);
@@ -606,7 +573,7 @@ parse_toolbars (EggToolbarsModel *model,
          xmlFree (string);
 
           egg_toolbars_model_set_flags (model, position, flags);
-          
+
          parse_item_list (model, child->children, position);
        }
 
@@ -645,7 +612,7 @@ parse_available_list (EggToolbarsModel *model,
                      xmlNodePtr        child)
 {
   gint flags;
-  
+
   while (child)
     {
       if (xmlStrEqual (child->name, (const xmlChar*) "toolitem"))
@@ -708,8 +675,10 @@ static void
 egg_toolbars_model_class_init (EggToolbarsModelClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  volatile GType flags_type; /* work around gcc's optimiser */
 
-  parent_class = g_type_class_peek_parent (klass);
+  /* make sure the flags type is known */
+  flags_type = EGG_TYPE_TB_MODEL_FLAGS;
 
   object_class->finalize = egg_toolbars_model_finalize;
 
@@ -761,7 +730,7 @@ egg_toolbars_model_init (EggToolbarsModel *model)
 
   model->priv->toolbars = g_node_new (NULL);
   model->priv->flags = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, NULL);
-  egg_toolbars_model_set_name_flags (model, "_separator", 
+  egg_toolbars_model_set_name_flags (model, "_separator",
                                     EGG_TB_MODEL_NAME_KNOWN |
                                     EGG_TB_MODEL_NAME_INFINITE);
 }
@@ -776,7 +745,7 @@ egg_toolbars_model_finalize (GObject *object)
   g_node_destroy (model->priv->toolbars);
   g_hash_table_destroy (model->priv->flags);
 
-  G_OBJECT_CLASS (parent_class)->finalize (object);
+  G_OBJECT_CLASS (egg_toolbars_model_parent_class)->finalize (object);
 }
 
 EggToolbarsModel *
@@ -870,22 +839,22 @@ egg_toolbars_model_delete_item (EggToolbarsModel *model,
   int tpos, ipos;
 
   g_return_if_fail (EGG_IS_TOOLBARS_MODEL (model));
-  
+
   toolbar = g_node_first_child (model->priv->toolbars);
   tpos = 0;
-  
+
   while (toolbar != NULL)
     {
       item = g_node_first_child (toolbar);
       ipos = 0;
-      
+
       /* Don't delete toolbars that were already empty */
       if (item == NULL)
         {
          toolbar = g_node_next_sibling (toolbar);
          continue;
         }
-      
+
       while (item != NULL)
         {
          next = g_node_next_sibling (item);
@@ -901,10 +870,10 @@ egg_toolbars_model_delete_item (EggToolbarsModel *model,
            {
              ipos++;
            }
-         
+
          item = next;
         }
-      
+
       next = g_node_next_sibling (toolbar);
       tdata = toolbar->data;
       if (!(tdata->flags & EGG_TB_MODEL_NOT_REMOVABLE) &&
@@ -920,7 +889,7 @@ egg_toolbars_model_delete_item (EggToolbarsModel *model,
         {
          tpos++;
         }
-      
+
       toolbar = next;
     }
 }