summaryrefslogtreecommitdiff
path: root/atk/atkwindow.c
diff options
context:
space:
mode:
Diffstat (limited to 'atk/atkwindow.c')
-rw-r--r--atk/atkwindow.c168
1 files changed, 168 insertions, 0 deletions
diff --git a/atk/atkwindow.c b/atk/atkwindow.c
new file mode 100644
index 0000000000..8e7ad8ac57
--- /dev/null
+++ b/atk/atkwindow.c
@@ -0,0 +1,168 @@
+/* ATK - Accessibility Toolkit
+ * Copyright (c) 2011 SUSE LINUX Products GmbH, Nuernberg, Germany.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * 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.
+ */
+
+#include "config.h"
+
+#include "atkwindow.h"
+#include "atkmarshal.h"
+
+/**
+ * SECTION:atkwindow
+ * @Short_description: The ATK Interface provided by UI components that represent a top-level window.
+ * @Title: AtkWindow
+ * @See_also: #AtkObject
+ *
+ * #AtkWindow should be implemented by the UI elements that represent
+ * a top-level window, such as the main window of an application or
+ * dialog.
+ *
+ */
+
+enum {
+ ACTIVATE,
+ CREATE,
+ DEACTIVATE,
+ DESTROY,
+ MAXIMIZE,
+ MINIMIZE,
+ MOVE,
+ RESIZE,
+ RESTORE,
+ LAST_SIGNAL
+};
+
+static guint atk_window_signals[LAST_SIGNAL] = { 0 };
+
+static guint
+atk_window_add_signal (const gchar *name)
+{
+ return g_signal_new (name,
+ ATK_TYPE_WINDOW,
+ G_SIGNAL_RUN_LAST,
+ 0,
+ (GSignalAccumulator) NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+}
+
+typedef AtkWindowIface AtkWindowInterface;
+G_DEFINE_INTERFACE (AtkWindow, atk_window, ATK_TYPE_OBJECT)
+
+static void
+atk_window_default_init (AtkWindowIface *iface)
+{
+ static gboolean initialized = FALSE;
+
+ if (!initialized)
+ {
+ /**
+ * AtkWindow::activate:
+ * @object: the object which received the signal
+ *
+ * The signal #AtkWindow::activate is emitted when a window
+ * becomes the active window of the application or session.
+ *
+ * Since: 2.2
+ */
+ atk_window_signals[ACTIVATE] = atk_window_add_signal ("activate");
+ /**
+ * AtkWindow::create:
+ * @object: the object which received the signal
+ *
+ * The signal #AtkWindow::create is emitted when a new window
+ * is created.
+ *
+ * Since: 2.2
+ */
+ atk_window_signals[CREATE] = atk_window_add_signal ("create");
+ /**
+ * AtkWindow::deactivate:
+ * @object: the object which received the signal
+ *
+ * The signal #AtkWindow::deactivate is emitted when a window is
+ * no longer the active window of the application or session.
+ *
+ * Since: 2.2
+ */
+ atk_window_signals[DEACTIVATE] = atk_window_add_signal ("deactivate");
+ /**
+ * AtkWindow::destroy:
+ * @object: the object which received the signal
+ *
+ * The signal #AtkWindow::destroy is emitted when a window is
+ * destroyed.
+ *
+ * Since: 2.2
+ */
+ atk_window_signals[DESTROY] = atk_window_add_signal ("destroy");
+ /**
+ * AtkWindow::maximize:
+ * @object: the object which received the signal
+ *
+ * The signal #AtkWindow::maximize is emitted when a window
+ * is maximized.
+ *
+ * Since: 2.2
+ */
+ atk_window_signals[MAXIMIZE] = atk_window_add_signal ("maximize");
+ /**
+ * AtkWindow::minimize:
+ * @object: the object which received the signal
+ *
+ * The signal #AtkWindow::minimize is emitted when a window
+ * is minimized.
+ *
+ * Since: 2.2
+ */
+ atk_window_signals[MINIMIZE] = atk_window_add_signal ("minimize");
+ /**
+ * AtkWindow::move:
+ * @object: the object which received the signal
+ *
+ * The signal #AtkWindow::move is emitted when a window
+ * is moved.
+ *
+ * Since: 2.2
+ */
+ atk_window_signals[MOVE] = atk_window_add_signal ("move");
+ /**
+ * AtkWindow::resize:
+ * @object: the object which received the signal
+ *
+ * The signal #AtkWindow::resize is emitted when a window
+ * is resized.
+ *
+ * Since: 2.2
+ */
+ atk_window_signals[RESIZE] = atk_window_add_signal ("resize");
+ /**
+ * AtkWindow::restore:
+ * @object: the object which received the signal
+ *
+ * The signal #AtkWindow::restore is emitted when a window
+ * is restored.
+ *
+ * Since: 2.2
+ */
+ atk_window_signals[RESTORE] = atk_window_add_signal ("restore");
+
+ initialized = TRUE;
+ }
+}