~indicator-applet-developers/indicator-appmenu/trunk.13.04

« back to all changes in this revision

Viewing changes to src/huditem.c

* Upstream Merge
  * GMenuModel menu support

Show diffs side-by-side

added added

removed removed

Lines of Context:
53
53
  gchar *desktop_file;
54
54
 
55
55
  HudStringList *tokens;
 
56
  gchar *usage_tag;
56
57
  gboolean enabled;
57
58
  guint usage;
58
59
  guint64 id;
91
92
  g_type_class_add_private (class, sizeof (HudItemPrivate));
92
93
}
93
94
 
 
95
static void
 
96
hud_item_format_tokens (GString       *string,
 
97
                        HudStringList *tokens)
 
98
{
 
99
  HudStringList *tail;
 
100
 
 
101
  tail = hud_string_list_get_tail (tokens);
 
102
 
 
103
  if (tail)
 
104
    {
 
105
      hud_item_format_tokens (string, tail);
 
106
      g_string_append (string, "||");
 
107
    }
 
108
 
 
109
  g_string_append (string, hud_string_list_get_head (tokens));
 
110
}
 
111
 
 
112
static void
 
113
hud_item_setup_usage (HudItem *item)
 
114
{
 
115
  GString *tag;
 
116
 
 
117
  if (item->priv->tokens && item->priv->enabled)
 
118
    {
 
119
      tag = g_string_new (NULL);
 
120
      hud_item_format_tokens (tag, item->priv->tokens);
 
121
      item->priv->usage_tag = g_string_free (tag, FALSE);
 
122
      item->priv->usage = usage_tracker_get_usage (usage_tracker_get_instance (),
 
123
                                                   item->priv->desktop_file, item->priv->usage_tag);
 
124
    }
 
125
}
 
126
 
94
127
/**
95
128
 * hud_item_construct:
96
129
 * @g_type: a #GType
121
154
 
122
155
  g_hash_table_insert (hud_item_table, &item->priv->id, item);
123
156
 
124
 
  //item->usage = usage_tracker_get_usage (usage_tracker_get_instance (), desktop_file, identifier);
 
157
  if (desktop_file)
 
158
    hud_item_setup_usage (item);
125
159
 
126
160
  return item;
127
161
}
167
201
  HUD_ITEM_GET_CLASS (item)
168
202
    ->activate (item, platform_data);
169
203
 
170
 
  //usage_tracker_mark_usage (usage_tracker_get_instance (), item->desktop_file, item->identifier);
171
 
  //item->usage = usage_tracker_get_usage (usage_tracker_get_instance (), item->desktop_file, item->identifier);
 
204
  if (item->priv->usage_tag)
 
205
    {
 
206
      usage_tracker_mark_usage (usage_tracker_get_instance (), item->priv->desktop_file, item->priv->usage_tag);
 
207
      item->priv->usage = usage_tracker_get_usage (usage_tracker_get_instance (),
 
208
                                                   item->priv->desktop_file, item->priv->usage_tag);
 
209
    }
172
210
}
173
211
 
174
212
/**