diff --git a/docs/reference/st/st-docs.sgml.in b/docs/reference/st/st-docs.sgml.in index 764c5ea3d..b1d07d017 100644 --- a/docs/reference/st/st-docs.sgml.in +++ b/docs/reference/st/st-docs.sgml.in @@ -35,7 +35,6 @@ Containers - diff --git a/js/ui/messageTray.js b/js/ui/messageTray.js index 8fc3291b4..d8dfde05a 100644 --- a/js/ui/messageTray.js +++ b/js/ui/messageTray.js @@ -1348,9 +1348,9 @@ const MessageTray = new Lang.Class({ this._onStatusChanged(status); })); - this.actor = new St.Group({ name: 'message-tray', - reactive: true, - track_hover: true }); + this.actor = new St.Widget({ name: 'message-tray', + reactive: true, + track_hover: true }); this.actor.connect('notify::hover', Lang.bind(this, this._onTrayHoverChanged)); this._notificationBin = new St.Bin(); diff --git a/js/ui/modalDialog.js b/js/ui/modalDialog.js index 271880c37..1b6e37471 100644 --- a/js/ui/modalDialog.js +++ b/js/ui/modalDialog.js @@ -40,9 +40,9 @@ const ModalDialog = new Lang.Class({ this._hasModal = false; this._shellReactive = params.shellReactive; - this._group = new St.Group({ visible: false, - x: 0, - y: 0 }); + this._group = new St.Widget({ visible: false, + x: 0, + y: 0 }); Main.uiGroup.add_actor(this._group); let constraint = new Clutter.BindConstraint({ source: global.stage, diff --git a/js/ui/overview.js b/js/ui/overview.js index b274a8c8b..2fb28e318 100644 --- a/js/ui/overview.js +++ b/js/ui/overview.js @@ -126,8 +126,8 @@ const Overview = new Lang.Class({ this._spacing = 0; - this._group = new St.Group({ name: 'overview', - reactive: true }); + this._group = new St.Widget({ name: 'overview', + reactive: true }); this._group._delegate = this; this._group.connect('style-changed', Lang.bind(this, function() { diff --git a/js/ui/workspaceSwitcherPopup.js b/js/ui/workspaceSwitcherPopup.js index 15383dbfa..51d2c2859 100644 --- a/js/ui/workspaceSwitcherPopup.js +++ b/js/ui/workspaceSwitcherPopup.js @@ -19,12 +19,12 @@ const WorkspaceSwitcherPopup = new Lang.Class({ Name: 'WorkspaceSwitcherPopup', _init : function() { - this.actor = new St.Group({ reactive: true, - x: 0, - y: 0, - width: global.screen_width, - height: global.screen_height, - style_class: 'workspace-switcher-group' }); + this.actor = new St.Widget({ reactive: true, + x: 0, + y: 0, + width: global.screen_width, + height: global.screen_height, + style_class: 'workspace-switcher-group' }); Main.uiGroup.add_actor(this.actor); this._container = new St.BoxLayout({ style_class: 'workspace-switcher-container' }); diff --git a/js/ui/workspaceThumbnail.js b/js/ui/workspaceThumbnail.js index 1d18e0291..ed1a28323 100644 --- a/js/ui/workspaceThumbnail.js +++ b/js/ui/workspaceThumbnail.js @@ -156,9 +156,9 @@ const WorkspaceThumbnail = new Lang.Class({ this._removed = false; - this.actor = new St.Group({ reactive: true, - clip_to_allocation: true, - style_class: 'workspace-thumbnail' }); + this.actor = new St.Widget({ reactive: true, + clip_to_allocation: true, + style_class: 'workspace-thumbnail' }); this.actor._delegate = this; this._contents = new Clutter.Group(); diff --git a/js/ui/workspacesView.js b/js/ui/workspacesView.js index 0e1bee8da..925f791b2 100644 --- a/js/ui/workspacesView.js +++ b/js/ui/workspacesView.js @@ -29,7 +29,7 @@ const WorkspacesView = new Lang.Class({ Name: 'WorkspacesView', _init: function(workspaces) { - this.actor = new St.Group({ style_class: 'workspaces-view' }); + this.actor = new St.Widget({ style_class: 'workspaces-view' }); // The actor itself isn't a drop target, so we don't want to pick on its area this.actor.set_size(0, 0); diff --git a/src/Makefile-st.am b/src/Makefile-st.am index 8561f6193..6b97766b9 100644 --- a/src/Makefile-st.am +++ b/src/Makefile-st.am @@ -54,7 +54,6 @@ st_source_h = \ st/st-drawing-area.h \ st/st-entry.h \ st/st-focus-manager.h \ - st/st-group.h \ st/st-icon.h \ st/st-icon-colors.h \ st/st-im-text.h \ @@ -109,7 +108,6 @@ st_source_c = \ st/st-drawing-area.c \ st/st-entry.c \ st/st-focus-manager.c \ - st/st-group.c \ st/st-icon.c \ st/st-icon-colors.c \ st/st-im-text.c \ diff --git a/src/st/st-group.c b/src/st/st-group.c deleted file mode 100644 index edf2671ed..000000000 --- a/src/st/st-group.c +++ /dev/null @@ -1,237 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ -/* - * st-group.c: A fixed layout container based on ClutterGroup - * - * Copyright 2010 Florian Müllner - * Copyright 2010 Intel Corporation - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU Lesser General Public License, - * version 2.1, as published by the Free Software Foundation. - * - * This program is distributed in the hope 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 program. If not, see . - */ - -/** - * SECTION:st-group - * @see_also:#ClutterGroup - * @short_description: A fixed layout container - * - * A #StGroup is an Actor which contains multiple child actors positioned - * relative to the #StGroup position. Other operations such as scaling, - * rotating and clipping of the group will apply to the child actors. - * - * A #StGroup's size is defined by the size and position of its children; - * it will be the smallest non-negative size that covers the right and bottom - * edges of all of its children. - * - * Setting the size on a Group using #ClutterActor methods like - * clutter_actor_set_size() will override the natural size of the Group, - * however this will not affect the size of the children and they may still - * be painted outside of the allocation of the group. One way to constrain - * the visible area of a #StGroup to a specified allocation is to - * explicitly set the size of the #StGroup and then use the - * #ClutterActor:clip-to-allocation property. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include - -#include "st-group.h" -#include "st-enum-types.h" -#include "st-private.h" - -G_DEFINE_TYPE (StGroup, st_group, ST_TYPE_CONTAINER); - -static void -st_group_get_preferred_width (ClutterActor *actor, - gfloat for_height, - gfloat *min_width_p, - gfloat *natural_width_p) -{ - StThemeNode *node = st_widget_get_theme_node (ST_WIDGET (actor)); - gdouble min_width, natural_width; - gint css_width, css_min_width, css_max_width; - ClutterActor *child; - - css_width = st_theme_node_get_width (node); - css_min_width = st_theme_node_get_min_width (node); - css_max_width = st_theme_node_get_max_width (node); - - /* We will always be at least 0 sized (ie, if all of the actors are - * to the left of the origin we won't return a negative size) - */ - min_width = 0; - natural_width = 0; - - for (child = clutter_actor_get_first_child (actor); - child != NULL; - child = clutter_actor_get_next_sibling (child)) - { - gfloat child_x, child_min, child_nat; - - child_x = clutter_actor_get_x (child); - - /* for_height is irrelevant to the fixed layout, so it's not used */ - _st_actor_get_preferred_width (child, -1, FALSE, - &child_min, &child_nat); - - /* Track the rightmost edge */ - if (child_x + child_min > min_width) - min_width = child_x + child_min; - - if (child_x + child_nat > natural_width) - natural_width = child_x + child_nat; - } - - /* The size is defined as the distance from the origin to the right-hand - * edge of the rightmost actor, unless overridden with min-width - */ - if (min_width_p) - { - if (css_min_width != -1) - *min_width_p = css_min_width; - else - *min_width_p = min_width; - } - - if (natural_width_p) - { - if (css_width != -1) - natural_width = css_width; - *natural_width_p = MIN (natural_width, css_max_width); - } -} - -static void -st_group_get_preferred_height (ClutterActor *actor, - gfloat for_width, - gfloat *min_height_p, - gfloat *natural_height_p) -{ - StThemeNode *node = st_widget_get_theme_node (ST_WIDGET (actor)); - gdouble min_height, natural_height; - gint css_height, css_min_height, css_max_height; - ClutterActor *child; - - css_height = st_theme_node_get_height (node); - css_min_height = st_theme_node_get_min_height (node); - css_max_height = st_theme_node_get_max_height (node); - - /* We will always be at least 0 sized (ie, if all of the actors are - * above of the origin we won't return a negative size) - */ - min_height = 0; - natural_height = 0; - - for (child = clutter_actor_get_first_child (actor); - child != NULL; - child = clutter_actor_get_next_sibling (child)) - { - gfloat child_y, child_min, child_nat; - - child_y = clutter_actor_get_y (child); - - /* for_width is irrelevant to the fixed layout, so it's not used */ - _st_actor_get_preferred_height (child, -1, FALSE, - &child_min, &child_nat); - - /* Track the bottommost edge */ - if (child_y + child_min > min_height) - min_height = child_y + child_min; - - if (child_y + child_nat > natural_height) - natural_height = child_y + child_nat; - } - - /* The size is defined as the distance from the origin to the right-hand - * edge of the rightmost actor, unless overridden with min-height - */ - if (min_height_p) - { - if (css_min_height != -1) - *min_height_p = css_min_height; - else - *min_height_p = min_height; - } - - if (natural_height_p) - { - if (css_height != -1) - natural_height = css_height; - *natural_height_p = MIN (natural_height, css_max_height); - } -} - -static void -st_group_allocate (ClutterActor *actor, - const ClutterActorBox *box, - ClutterAllocationFlags flags) -{ - ClutterActor *child; - - CLUTTER_ACTOR_CLASS (st_group_parent_class)->allocate (actor, box, flags); - - for (child = clutter_actor_get_first_child (actor); - child != NULL; - child = clutter_actor_get_next_sibling (child)) - clutter_actor_allocate_preferred_size (child, flags); -} - -static void -st_group_show_all (ClutterActor *actor) -{ - clutter_container_foreach (CLUTTER_CONTAINER (actor), - CLUTTER_CALLBACK (clutter_actor_show), - NULL); - clutter_actor_show (actor); -} - -static void -st_group_hide_all (ClutterActor *actor) -{ - clutter_actor_hide (actor); - clutter_container_foreach (CLUTTER_CONTAINER (actor), - CLUTTER_CALLBACK (clutter_actor_hide), - NULL); -} - - -static void -st_group_class_init (StGroupClass *klass) -{ - ClutterActorClass *actor_class = CLUTTER_ACTOR_CLASS (klass); - - actor_class->get_preferred_width = st_group_get_preferred_width; - actor_class->get_preferred_height = st_group_get_preferred_height; - actor_class->allocate = st_group_allocate; - actor_class->show_all = st_group_show_all; - actor_class->hide_all = st_group_hide_all; -} - -static void -st_group_init (StGroup *self) -{ -} - -/** - * st_group_new: - * - * Create a new #StGroup. - * - * Return value: the newly created #StGroup actor - */ -StWidget * -st_group_new (void) -{ - return g_object_new (ST_TYPE_GROUP, NULL); -} diff --git a/src/st/st-group.h b/src/st/st-group.h deleted file mode 100644 index af2428758..000000000 --- a/src/st/st-group.h +++ /dev/null @@ -1,70 +0,0 @@ -/* -*- mode: C; c-file-style: "gnu"; indent-tabs-mode: nil; -*- */ -/* - * st-group.h: A fixed layout container based on ClutterGroup - * - * Copyright 2010 Florian Müllner - * - * This program is free software; you can redistribute it and/or modify it - * under the terms and conditions of the GNU Lesser General Public License, - * version 2.1, as published by the Free Software Foundation. - * - * This program is distributed in the hope 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 program. If not, see . - */ - -#if !defined(ST_H_INSIDE) && !defined(ST_COMPILATION) -#error "Only can be included directly.h" -#endif - -#ifndef __ST_GROUP_H__ -#define __ST_GROUP_H__ - -#include -#include - -G_BEGIN_DECLS - -#define ST_TYPE_GROUP (st_group_get_type ()) -#define ST_GROUP(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), ST_TYPE_GROUP, StGroup)) -#define ST_IS_GROUP(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), ST_TYPE_GROUP)) -#define ST_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), ST_TYPE_GROUP, StGroupClass)) -#define ST_IS_GROUP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), ST_TYPE_GROUP)) -#define ST_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), ST_TYPE_GROUP, StGroupClass)) - -typedef struct _StGroup StGroup; -typedef struct _StGroupPrivate StGroupPrivate; -typedef struct _StGroupClass StGroupClass; - -/** - * StGroup: - * - * The #StGroup struct contains only private data - */ -struct _StGroup -{ - /*< private >*/ - StContainer parent_instance; -}; - -/** - * StGroupClass: - * - * The #StGroupClass struct contains only private data - */ -struct _StGroupClass -{ - /*< private >*/ - StContainerClass parent_class; -}; - -GType st_group_get_type (void) G_GNUC_CONST; -StWidget *st_group_new (void); - -G_END_DECLS - -#endif /* __ST_GROUP_H__ */