~timo-jyrinki/bamf/revert-474-0.2

« back to all changes in this revision

Viewing changes to src/bamf-legacy-window-test.c

  • Committer: Timo Jyrinki
  • Author(s): Marco Trevisan (Treviño)
  • Date: 2012-10-12 10:58:04 UTC
  • mfrom: (480.1.1 bamf-0.2)
  • Revision ID: timo.jyrinki@canonical.com-20121012105804-8nr6v1bu81vyu740
BamfMatcher: add support for libreoffice Base, and libreoffice matching tests

Show diffs side-by-side

added added

removed removed

Lines of Context:
127
127
}
128
128
 
129
129
void
130
 
bamf_legacy_window_test_set_name (BamfLegacyWindowTest *self, char *val)
 
130
bamf_legacy_window_test_set_name (BamfLegacyWindowTest *self, const char *val)
131
131
{
132
132
  if (g_strcmp0 (self->name, val) == 0)
133
133
    return;
134
134
 
135
 
  self->name = val;
 
135
  self->name = g_strdup (val);
136
136
 
137
137
  g_signal_emit_by_name (self, "name-changed");
138
138
}
139
139
 
 
140
void
 
141
bamf_legacy_window_test_set_wmclass (BamfLegacyWindowTest *self, const char *class_name, const char *instance_name)
 
142
{
 
143
  if (g_strcmp0 (self->wm_class_name, class_name) != 0)
 
144
    {
 
145
      g_free (self->wm_class_name);
 
146
      self->wm_class_name = g_strdup (class_name);
 
147
    }
 
148
 
 
149
  if (g_strcmp0 (self->wm_class_instance, instance_name) != 0)
 
150
    {
 
151
      g_free (self->wm_class_instance);
 
152
      self->wm_class_instance = g_strdup (instance_name);
 
153
    }
 
154
}
 
155
 
140
156
static const char *
141
157
bamf_legacy_window_test_get_name (BamfLegacyWindow *legacy_window)
142
158
{
154
170
 
155
171
  self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
156
172
 
157
 
  return  self->wm_class_name;
 
173
  return self->wm_class_name;
158
174
}
159
175
 
160
176
static const char *
164
180
 
165
181
  self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
166
182
 
167
 
  return  self->wm_class_instance;
 
183
  return self->wm_class_instance;
168
184
}
169
185
 
170
186
char *
174
190
 
175
191
  self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
176
192
 
177
 
  return self->exec;
 
193
  return g_strdup (self->exec);
178
194
}
179
195
 
180
196
char *
185
201
 
186
202
  self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
187
203
 
188
 
  return self->application_id;
 
204
  return g_strdup (self->application_id);
189
205
}
190
206
 
191
207
char *
196
212
 
197
213
  self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
198
214
 
199
 
  return self->unique_bus_name;
 
215
  return g_strdup (self->unique_bus_name);
200
216
}
201
217
 
202
218
char *
207
223
 
208
224
  self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
209
225
 
210
 
  return self->dbus_menu_object_path;
 
226
  return g_strdup (self->dbus_menu_object_path);
211
227
}
212
228
 
213
229
void
328
344
  return self->window_type;
329
345
}
330
346
 
 
347
char *
 
348
bamf_legacy_window_test_get_hint (BamfLegacyWindow *window, const char *name)
 
349
{
 
350
  g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (window), NULL);
 
351
  BamfLegacyWindowTest *self = BAMF_LEGACY_WINDOW_TEST (window);
 
352
 
 
353
  return g_strdup (g_hash_table_lookup (self->hints, name));
 
354
}
 
355
 
331
356
void
332
 
bamf_legacy_window_test_dispose (GObject *object)
333
 
{
334
 
  G_OBJECT_CLASS (bamf_legacy_window_test_parent_class)->dispose (object);
 
357
bamf_legacy_window_test_set_hint (BamfLegacyWindow *window, const char *name, const char *value)
 
358
{
 
359
  g_return_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (window));
 
360
  BamfLegacyWindowTest *self = BAMF_LEGACY_WINDOW_TEST (window);
 
361
 
 
362
  return g_hash_table_insert (self->hints, g_strdup (name), g_strdup (value));
 
363
}
 
364
 
 
365
static void
 
366
bamf_legacy_window_test_finalize (GObject *object)
 
367
{
 
368
  BamfLegacyWindowTest *self = BAMF_LEGACY_WINDOW_TEST (object);
 
369
 
 
370
  g_free (self->name);
 
371
  g_free (self->wm_class_name);
 
372
  g_free (self->wm_class_instance);
 
373
  g_free (self->exec);
 
374
  g_free (self->application_id);
 
375
  g_free (self->unique_bus_name);
 
376
  g_free (self->dbus_menu_object_path);
 
377
  g_hash_table_unref (self->hints);
 
378
 
 
379
  G_OBJECT_CLASS (bamf_legacy_window_test_parent_class)->finalize (object);
335
380
}
336
381
 
337
382
void
340
385
  BamfLegacyWindowClass *win_class = BAMF_LEGACY_WINDOW_CLASS (klass);
341
386
  GObjectClass *obj_class = G_OBJECT_CLASS (klass);
342
387
 
343
 
  obj_class->dispose          = bamf_legacy_window_test_dispose;
 
388
  obj_class->finalize         = bamf_legacy_window_test_finalize;
344
389
  win_class->get_name         = bamf_legacy_window_test_get_name;
345
390
  win_class->get_class_name   = bamf_legacy_window_test_get_class_name;
346
391
  win_class->get_class_instance_name = bamf_legacy_window_test_get_class_instance_name;
358
403
  win_class->get_window_type  = bamf_legacy_window_test_get_window_type;
359
404
  win_class->maximized        = bamf_legacy_window_test_maximized;
360
405
  win_class->is_closed        = bamf_legacy_window_test_is_closed;
 
406
  win_class->get_hint         = bamf_legacy_window_test_get_hint;
 
407
  win_class->set_hint         = bamf_legacy_window_test_set_hint;
361
408
  win_class->reopen           = bamf_legacy_window_test_reopen;
362
409
}
363
410
 
368
415
  self->pid = g_random_int_range (1, 100000);
369
416
  self->maximized = BAMF_WINDOW_FLOATING;
370
417
  self->is_closed = FALSE;
 
418
  self->hints = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
371
419
}
372
420
 
373
421
 
394
442
  copy->geometry = self->geometry;
395
443
  copy->maximized = self->maximized;
396
444
  copy->window_type = self->window_type;
 
445
  copy->hints = g_hash_table_ref (self->hints);
397
446
 
398
447
  return copy;
399
448
}
400
449
 
401
450
BamfLegacyWindowTest *
402
 
bamf_legacy_window_test_new (guint32 xid, gchar *name, gchar *wmclass_name, gchar *exec)
 
451
bamf_legacy_window_test_new (guint32 xid, const gchar *name, const gchar *wmclass_name, const gchar *exec)
403
452
{
404
453
  BamfLegacyWindowTest *self;
405
454