/*
* Copyright (C) 2010 Canonical Ltd
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see .
*
* Authored by: Jason Smith
*
*/
#include "bamf-legacy-window-test.h"
G_DEFINE_TYPE (BamfLegacyWindowTest, bamf_legacy_window_test, BAMF_TYPE_LEGACY_WINDOW);
gint
bamf_legacy_window_test_get_pid (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->pid;
}
guint32
bamf_legacy_window_test_get_xid (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->xid;
}
void
bamf_legacy_window_test_set_attention (BamfLegacyWindowTest *self, gboolean val)
{
if (self->needs_attention == val)
return;
self->needs_attention = val;
g_signal_emit_by_name (self, "state-changed");
}
gboolean
bamf_legacy_window_test_needs_attention (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->needs_attention;
}
void
bamf_legacy_window_test_set_active (BamfLegacyWindowTest *self, gboolean val)
{
if (self->is_active == val)
return;
self->is_active = val;
g_signal_emit_by_name (self, "state-changed");
}
gboolean
bamf_legacy_window_test_is_active (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->is_active;
}
void
bamf_legacy_window_test_set_desktop (BamfLegacyWindowTest *self, gboolean val)
{
if (self->is_desktop == val)
return;
self->is_desktop = val;
g_signal_emit_by_name (self, "state-changed");
}
gboolean
bamf_legacy_window_test_is_desktop (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->is_desktop;
}
void
bamf_legacy_window_test_set_skip (BamfLegacyWindowTest *self, gboolean val)
{
if (self->is_skip == val)
return;
self->is_skip = val;
g_signal_emit_by_name (self, "state-changed");
}
gboolean
bamf_legacy_window_test_is_skip_tasklist (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->is_skip;
}
void
bamf_legacy_window_test_set_name (BamfLegacyWindowTest *self, char *val)
{
if (g_strcmp0 (self->name, val) == 0)
return;
self->name = val;
g_signal_emit_by_name (self, "name-changed");
}
static const char *
bamf_legacy_window_test_get_name (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->name;
}
static const char *
bamf_legacy_window_test_get_class (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->klass;
}
char *
bamf_legacy_window_test_get_exec_string (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->exec;
}
char *
bamf_legacy_window_test_get_app_id (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (legacy_window), NULL);
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->application_id;
}
char *
bamf_legacy_window_test_get_unique_bus_name (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (legacy_window), NULL);
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->unique_bus_name;
}
char *
bamf_legacy_window_test_get_menu_object_path (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (legacy_window), NULL);
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->dbus_menu_object_path;
}
void
bamf_legacy_window_test_get_geometry (BamfLegacyWindow *legacy_window,
gint *x, gint *y,
gint *width, gint *height)
{
BamfLegacyWindowTest *self;
g_return_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (legacy_window));
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
*x = self->geometry.x;
*y = self->geometry.y;
*width = self->geometry.width;
*height = self->geometry.height;
}
BamfWindowMaximizationType
bamf_legacy_window_test_maximized (BamfLegacyWindow *legacy_window)
{
BamfLegacyWindowTest *self;
g_return_val_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (legacy_window), BAMF_WINDOW_FLOATING);
self = BAMF_LEGACY_WINDOW_TEST (legacy_window);
return self->maximized;
}
void
bamf_legacy_window_test_close (BamfLegacyWindowTest *self)
{
g_signal_emit_by_name (self, "closed");
}
void
bamf_legacy_window_test_set_geometry (BamfLegacyWindowTest *self, int x, int y,
int width, int height)
{
g_return_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (self));
self->geometry.x = x;
self->geometry.y = y;
self->geometry.width = width;
self->geometry.height = height;
g_signal_emit_by_name (self, BAMF_LEGACY_WINDOW_SIGNAL_GEOMETRY_CHANGED);
}
void
bamf_legacy_window_test_set_maximized (BamfLegacyWindowTest *self,
BamfWindowMaximizationType maximized)
{
g_return_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (self));
self->maximized = maximized;
g_signal_emit_by_name (self, BAMF_LEGACY_WINDOW_SIGNAL_GEOMETRY_CHANGED);
g_signal_emit_by_name (self, BAMF_LEGACY_WINDOW_SIGNAL_STATE_CHANGED);
}
void
bamf_legacy_window_test_set_application_id (BamfLegacyWindowTest *self, const char *id)
{
g_return_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (self));
self->application_id = g_strdup (id);
}
void
bamf_legacy_window_test_set_unique_bus_name (BamfLegacyWindowTest *self, const char *bus_name)
{
g_return_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (self));
self->unique_bus_name = g_strdup (bus_name);
}
void
bamf_legacy_window_test_set_dbus_menu_object_path (BamfLegacyWindowTest *self, const char *object_path)
{
g_return_if_fail (BAMF_IS_LEGACY_WINDOW_TEST (self));
self->dbus_menu_object_path = g_strdup (object_path);
}
void
bamf_legacy_window_test_dispose (GObject *object)
{
G_OBJECT_CLASS (bamf_legacy_window_test_parent_class)->dispose (object);
}
void
bamf_legacy_window_test_class_init (BamfLegacyWindowTestClass *klass)
{
BamfLegacyWindowClass *win_class = BAMF_LEGACY_WINDOW_CLASS (klass);
GObjectClass *obj_class = G_OBJECT_CLASS (klass);
obj_class->dispose = bamf_legacy_window_test_dispose;
win_class->get_name = bamf_legacy_window_test_get_name;
win_class->get_class_name = bamf_legacy_window_test_get_class;
win_class->get_exec_string = bamf_legacy_window_test_get_exec_string;
win_class->get_xid = bamf_legacy_window_test_get_xid;
win_class->get_pid = bamf_legacy_window_test_get_pid;
win_class->needs_attention = bamf_legacy_window_test_needs_attention;
win_class->is_skip_tasklist = bamf_legacy_window_test_is_skip_tasklist;
win_class->is_desktop = bamf_legacy_window_test_is_desktop;
win_class->is_active = bamf_legacy_window_test_is_active;
win_class->get_app_id = bamf_legacy_window_test_get_app_id;
win_class->get_unique_bus_name = bamf_legacy_window_test_get_unique_bus_name;
win_class->get_menu_object_path = bamf_legacy_window_test_get_menu_object_path;
win_class->get_geometry = bamf_legacy_window_test_get_geometry;
win_class->maximized = bamf_legacy_window_test_maximized;
}
void
bamf_legacy_window_test_init (BamfLegacyWindowTest *self)
{
self->pid = g_random_int_range (1, 100000);
self->maximized = BAMF_WINDOW_FLOATING;
}
BamfLegacyWindowTest *
bamf_legacy_window_test_new (guint32 xid, gchar *name, gchar *klass, gchar *exec)
{
BamfLegacyWindowTest *self;
self = g_object_new (BAMF_TYPE_LEGACY_WINDOW_TEST, NULL);
self->xid = xid;
self->name = g_strdup (name);
self->klass = g_strdup (klass);
self->exec = g_strdup (exec);
return self;
}