gnome-shell r6 - in trunk: js/ui src
- From: otaylor svn gnome org
- To: svn-commits-list gnome org
- Subject: gnome-shell r6 - in trunk: js/ui src
- Date: Fri, 31 Oct 2008 15:20:54 +0000 (UTC)
Author: otaylor
Date: Fri Oct 31 15:20:54 2008
New Revision: 6
URL: http://svn.gnome.org/viewvc/gnome-shell?rev=6&view=rev
Log:
Extend ShellGlobal object with more properties
* Add screen-width, screen-height, overlay-group properties
* Add set_stage_input_area() function
* Fix main.js to rotate DRAFT properly
Modified:
trunk/js/ui/main.js
trunk/src/gnome-shell-plugin.c
trunk/src/metacity-symbols.c
trunk/src/shell-global.c
trunk/src/shell-global.h
Modified: trunk/js/ui/main.js
==============================================================================
--- trunk/js/ui/main.js (original)
+++ trunk/js/ui/main.js Fri Oct 31 15:20:54 2008
@@ -6,8 +6,8 @@
let message = new Clutter.Label({font_name: "Sans Bold 64px", text: "DRAFT"});
message.set_opacity(75);
- // Not working for unclear reasons
- // message.set_rotation(Clutter.RotateAxis.Z_AXIS, - 45, 0, 0, 0);
- message.set_position(100, 100);
- global.get_overlay_group().add_actor(message);
+ message.set_anchor_point_from_gravity (Clutter.Gravity.CENTER);
+ message.set_rotation(Clutter.RotateAxis.Z_AXIS, - 45, 0, 0, 0);
+ message.set_position(global.screen_width / 2, global.screen_height / 2);
+ global.overlay_group.add_actor(message);
}
Modified: trunk/src/gnome-shell-plugin.c
==============================================================================
--- trunk/src/gnome-shell-plugin.c (original)
+++ trunk/src/gnome-shell-plugin.c Fri Oct 31 15:20:54 2008
@@ -83,7 +83,6 @@
do_init (const char *params)
{
MutterPlugin *plugin = mutter_get_plugin();
- ClutterActor *overlay_group;
GError *error = NULL;
int status;
const char *shell_js;
@@ -101,9 +100,6 @@
}
}
- overlay_group = mutter_plugin_get_overlay_group (plugin);
- shell_global_set_overlay_group (shell_global_get(), overlay_group);
-
shell_js = g_getenv("GNOME_SHELL_JS");
if (!shell_js)
shell_js = JSDIR;
@@ -112,6 +108,8 @@
plugin_state->gjs_context = gjs_context_new_with_search_path(search_path);
g_strfreev(search_path);
+ _shell_global_set_plugin (shell_global_get(), plugin);
+
if (!gjs_context_eval (plugin_state->gjs_context,
"const Main = imports.ui.main; Main.start();",
-1,
Modified: trunk/src/metacity-symbols.c
==============================================================================
--- trunk/src/metacity-symbols.c (original)
+++ trunk/src/metacity-symbols.c Fri Oct 31 15:20:54 2008
@@ -2,13 +2,6 @@
#include <mutter-plugin.h>
-void
-mutter_plugin_query_screen_size (MutterPlugin *plugin,
- int *width,
- int *height)
-{
-}
-
ClutterActor *
mutter_plugin_get_overlay_group (MutterPlugin *plugin)
{
@@ -20,3 +13,16 @@
{
return NULL;
}
+
+void
+mutter_plugin_query_screen_size (MutterPlugin *plugin,
+ int *width,
+ int *height)
+{
+}
+
+void
+mutter_plugin_set_stage_input_area (MutterPlugin *plugin,
+ gint x, gint y, gint width, gint height)
+{
+}
Modified: trunk/src/shell-global.c
==============================================================================
--- trunk/src/shell-global.c (original)
+++ trunk/src/shell-global.c Fri Oct 31 15:20:54 2008
@@ -1,25 +1,111 @@
+/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */
+
#include "shell-global.h"
struct _ShellGlobal {
GObject parent;
- ClutterActor *overlay_group;
+ MutterPlugin *plugin;
};
struct _ShellGlobalClass {
GObjectClass parent_class;
};
+enum {
+ PROP_0,
+
+ PROP_OVERLAY_GROUP,
+ PROP_SCREEN_WIDTH,
+ PROP_SCREEN_HEIGHT
+};
+
G_DEFINE_TYPE(ShellGlobal, shell_global, G_TYPE_OBJECT);
static void
+shell_global_set_property(GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ switch (prop_id)
+ {
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
+shell_global_get_property(GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ ShellGlobal *global = SHELL_GLOBAL (object);
+
+ switch (prop_id)
+ {
+ case PROP_OVERLAY_GROUP:
+ g_value_set_object (value, mutter_plugin_get_overlay_group (global->plugin));
+ break;
+ case PROP_SCREEN_WIDTH:
+ {
+ int width, height;
+
+ mutter_plugin_query_screen_size (global->plugin, &width, &height);
+ g_value_set_int (value, width);
+ }
+ break;
+ case PROP_SCREEN_HEIGHT:
+ {
+ int width, height;
+
+ mutter_plugin_query_screen_size (global->plugin, &width, &height);
+ g_value_set_int (value, height);
+ }
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
+}
+
+static void
shell_global_init(ShellGlobal *global)
{
}
static void
-shell_global_class_init(ShellGlobalClass *klass)
+shell_global_class_init (ShellGlobalClass *klass)
{
+ GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
+
+ gobject_class->get_property = shell_global_get_property;
+ gobject_class->set_property = shell_global_set_property;
+
+ g_object_class_install_property (gobject_class,
+ PROP_OVERLAY_GROUP,
+ g_param_spec_object ("overlay-group",
+ "Overlay Group",
+ "Actor holding objects that appear above the desktop contents",
+ CLUTTER_TYPE_ACTOR,
+ G_PARAM_READABLE));
+ g_object_class_install_property (gobject_class,
+ PROP_SCREEN_WIDTH,
+ g_param_spec_int ("screen-width",
+ "Screen Width",
+ "Screen width, in pixels",
+ 0, G_MAXINT, 1,
+ G_PARAM_READABLE));
+
+ g_object_class_install_property (gobject_class,
+ PROP_SCREEN_HEIGHT,
+ g_param_spec_int ("screen-height",
+ "Screen Height",
+ "Screen height, in pixels",
+ 0, G_MAXINT, 1,
+ G_PARAM_READABLE));
}
ShellGlobal *
@@ -34,25 +120,22 @@
}
void
-shell_global_set_overlay_group (ShellGlobal *global,
- ClutterActor *overlay_group)
+shell_global_set_stage_input_area (ShellGlobal *global,
+ int x,
+ int y,
+ int width,
+ int height)
{
- g_object_ref (overlay_group);
-
- if (global->overlay_group)
- g_object_unref(global->overlay_group);
+ g_return_if_fail (SHELL_IS_GLOBAL (global));
- global->overlay_group = overlay_group;
-}
-
-ClutterActor *
-shell_global_get_overlay_group (ShellGlobal *global)
-{
- return global->overlay_group;
+ mutter_plugin_set_stage_input_area (global->plugin, x, y, width, height);
}
void
-shell_global_print_hello (ShellGlobal *global)
+_shell_global_set_plugin (ShellGlobal *global,
+ MutterPlugin *plugin)
{
- g_print("Hello World!\n");
+ g_return_if_fail (SHELL_IS_GLOBAL (global));
+
+ global->plugin = plugin;
}
Modified: trunk/src/shell-global.h
==============================================================================
--- trunk/src/shell-global.h (original)
+++ trunk/src/shell-global.h Fri Oct 31 15:20:54 2008
@@ -1,6 +1,7 @@
#ifndef __SHELL_GLOBAL_H__
#define __SHELL_GLOBAL_H__
+#include "mutter-plugin.h"
#include <clutter/clutter.h>
#include <glib-object.h>
@@ -20,12 +21,8 @@
ShellGlobal *shell_global_get (void);
-void shell_global_set_overlay_group (ShellGlobal *global,
- ClutterActor *overlay_group);
-
-ClutterActor *shell_global_get_overlay_group (ShellGlobal *global);
-
-void shell_global_print_hello (ShellGlobal *global);
+void _shell_global_set_plugin (ShellGlobal *global,
+ MutterPlugin *plugin);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]