commit 0615c276f98fa240892fcdd1e731eb9a25596840
parent 9ced0cc2a5110e3d4e1fcc2072cd04dbd561a89d
Author: garbeam <garbeam@mmv.wmii.de>
Date: Fri, 9 Dec 2005 18:03:44 +0200
removed old crappy layouts
Diffstat:
4 files changed, 0 insertions(+), 830 deletions(-)
diff --git a/cmd/wm/old/layout_grid.c b/cmd/wm/old/layout_grid.c
@@ -1,316 +0,0 @@
-/*
- * (C)opyright MMIV-MMV Anselm R. Garbe <garbeam at gmail dot com>
- * See LICENSE file for license details.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-
-#include "wm.h"
-#include "layout.h"
-
-#include <cext.h>
-
-/* grid layout definition */
-static void arrange_grid(Page * p);
-static void init_grid(Page * p);
-static void deinit_grid(Page * p);
-static void manage_grid(Frame * f);
-static void unmanage_grid(Frame * f);
-static void resize_grid(Frame * f, XRectangle * new, XPoint * pt);
-static Frame *select_grid(Frame * f, char *what);
-
-static Layout grid =
-{"grid", init_grid, deinit_grid, arrange_grid, manage_grid,
- unmanage_grid, resize_grid, select_grid
-};
-
-void
-init_layout_grid()
-{
- layouts =
- (Layout **) attach_item_end((void **) layouts, &grid,
- sizeof(Layout *));
-}
-
-static void
-arrange_grid(Page * p)
-{
- unsigned int i, ic, ir, tw, th, rows, cols;
-
- if (!p->managed)
- return;
-
- blitz_getbasegeometry((void **) p->managed, &ic, &cols, &rows);
- th = p->managed_rect.height / rows;
- tw = p->managed_rect.width / cols;
-
- i = 0;
- for (ir = 0; ir < rows; ir++) {
- for (ic = 0; ic < cols; ic++) {
- if (p->managed[i]) {
- XRectangle *r = (XRectangle *) p->managed[i]->aux;
- r->x = p->managed_rect.x + ic * tw;
- r->y = p->managed_rect.y + ir * th;
- r->width = tw;
- r->height = th;
- p->managed[i]->managed_rect = *r;
- resize_frame(p->managed[i], &p->managed[i]->managed_rect,
- 0, 1);
- } else
- break;
- i++;
- }
- }
-}
-
-static void
-init_grid(Page * p)
-{
- int i;
- for (i = 0; p->managed && p->managed[i]; i++)
- p->managed[i]->aux = emalloc(sizeof(XRectangle));
-}
-
-static void
-deinit_grid(Page * p)
-{
- int i;
- for (i = 0; p->managed && p->managed[i]; i++) {
- if (p->managed[i]->aux) {
- free(p->managed[i]->aux);
- p->managed[i]->aux = 0;
- }
- }
-}
-
-static void
-manage_grid(Frame * f)
-{
- f->aux = emalloc(sizeof(XRectangle));
- if (f->page)
- arrange_grid(f->page);
-}
-
-static void
-unmanage_grid(Frame * f)
-{
- if (f->aux) {
- free(f->aux);
- f->aux = 0;
- }
- if (f->page)
- arrange_grid(f->page);
-}
-
-#define THRESHOLD 30
-
-static void
-drop_resize(Frame * f, XRectangle * new)
-{
- int diff;
- unsigned int i, rows, cols, cr, cc, num, idx;
- Page *p = f->page;
- XRectangle *r;
-
- if (!p || !p->managed)
- return;
- blitz_getbasegeometry((void **) p->managed, &i, &cols, &rows);
-
- num = index_item((void **) p->managed, f);
-
- cr = num / cols;
- cc = num - cr * cols;
-
- /* horizontal resize */
- if (f->managed_rect.x == new->x && f->managed_rect.width != new->width) {
- /* east direction resize */
- if (cc == cols - 1)
- return;
- if (p->managed[cc + 1]
- && (new->x + new->width > p->managed[cc + 1]->managed_rect.x
- + p->managed[cc + 1]->managed_rect.width - THRESHOLD))
- return;
- diff = new->width - ((XRectangle *) f->aux)->width;
- for (i = 0; i < rows; i++) {
- idx = (i * cols) + cc;
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->width = new->width;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx],
- &p->managed[idx]->managed_rect, 0, 1);
- }
- idx = (i * cols) + (cc + 1);
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->x += diff;
- r->width -= diff;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx],
- &p->managed[idx]->managed_rect, 0, 1);
- }
- }
- }
- if (f->managed_rect.x != new->x) {
- /* west direction resize */
- if (!cc)
- return;
- if (new->x < p->managed[cc - 1]->managed_rect.x + THRESHOLD)
- return;
- diff = new->width - ((XRectangle *) f->aux)->width;
- for (i = 0; i < rows; i++) {
- idx = (i * cols) + cc;
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->x -= diff;
- r->width += diff;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx],
- &p->managed[idx]->managed_rect, 0, 1);
- }
- idx = (i * cols) + (cc - 1);
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->width -= diff;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx],
- &p->managed[idx]->managed_rect, 0, 1);
- }
- }
- }
- /* vertical resize */
- if (f->managed_rect.y == new->y
- && f->managed_rect.height != new->height) {
- /* south direction resize */
- if (cr == rows - 1)
- return;
- if (p->managed[cr + 1]
- && (new->y + new->height >
- p->managed[(cr + 1) * rows]->managed_rect.y +
- p->managed[(cr + 1) * rows]->managed_rect.height -
- THRESHOLD))
- return;
- diff = new->height - ((XRectangle *) f->aux)->height;
- for (i = 0; i < cols; i++) {
- idx = (cr * rows) + i;
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->height = new->height;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx],
- &p->managed[idx]->managed_rect, 0, 1);
- }
- idx = (cr + 1) * rows + i;
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->y += diff;
- r->height -= diff;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx],
- &p->managed[idx]->managed_rect, 0, 1);
- }
- }
- } else if (f->managed_rect.y != new->y) {
- /* north direction resize */
- if (!cr)
- return;
- if (new->y <
- p->managed[(cr - 1) * rows]->managed_rect.y + THRESHOLD)
- return;
- diff = new->height - ((XRectangle *) f->aux)->height;
- for (i = 0; i < cols; i++) {
- idx = (cr * rows) + i;
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->y -= diff;
- r->height += diff;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx],
- &p->managed[idx]->managed_rect, 0, 1);
- }
- idx = (cr - 1) * rows + i;
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->height -= diff;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx],
- &p->managed[idx]->managed_rect, 0, 1);
- }
- }
- }
-}
-
-static void
-resize_grid(Frame * f, XRectangle * new, XPoint * pt)
-{
- if ((f->managed_rect.width == new->width)
- && (f->managed_rect.height == new->height))
- drop_move(f, new, pt);
- else
- drop_resize(f, new);
-}
-
-static unsigned int
-get_current_frame_position(Frame * f)
-{
- Page *p = f->page;
- unsigned int i;
-
- for (i = 0; i < count_items((void **) p->managed); ++i)
- if (p->managed[i] == f)
- return i;
- return -1;
-}
-
-static Frame *
-select_grid(Frame * f, char *what)
-{
- Page *p = f->page;
- unsigned int ic, cols, rows, pos;
- int idx;
-
- blitz_getbasegeometry((void **) p->managed, &ic, &cols, &rows);
- pos = get_current_frame_position(f);
-
- if (!strncmp(what, "prev", 5)) {
- idx = index_prev_item((void **) p->managed, f);
- if (idx >= 0)
- return p->managed[idx];
- } else if (!strncmp(what, "next", 5)) {
- idx = index_next_item((void **) p->managed, f);
- if (idx >= 0)
- return p->managed[idx];
- } else if (!strncmp(what, "south", 6)) {
- if ((pos + cols) <= ic)
- pos += cols;
- else
- pos %= cols;
- return p->managed[pos];
- } else if (!strncmp(what, "north", 6)) {
- if (pos < cols)
- pos = (rows - 1) * cols + pos;
- else
- pos -= cols;
- return p->managed[pos];
- } else if (!strncmp(what, "west", 5)) {
- if (pos % cols == 0) {
- pos += (cols - 1);
- if (pos >= ic)
- pos = ic - 1;
- } else
- pos--;
- return p->managed[pos];
- } else if (!strncmp(what, "east", 5)) {
- if (pos % cols == (cols - 1))
- pos -= (cols - 1);
- else {
- pos++;
- if (pos >= ic)
- pos = ic - 1;
- }
- return p->managed[pos];
- }
- return 0;
-}
diff --git a/cmd/wm/old/layout_max.c b/cmd/wm/old/layout_max.c
@@ -1,115 +0,0 @@
-/*
- * (C)opyright MMIV-MMV Anselm R. Garbe <garbeam at gmail dot com>
- * See LICENSE file for license details.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-
-#include "wm.h"
-#include "layout.h"
-
-static void arrange_max(Page * p);
-static void init_max(Page * p);
-static void deinit_max(Page * p);
-static void manage_max(Frame * f);
-static void unmanage_max(Frame * f);
-static void resize_max(Frame * f, XRectangle * new, XPoint * pt);
-static Frame *select_max(Frame * f, char *what);
-
-static Layout max = {"max", init_max, deinit_max, arrange_max, manage_max,
- unmanage_max, resize_max, select_max
-};
-
-void
-init_layout_max()
-{
- layouts =
- (Layout **) attach_item_end((void **) layouts, &max,
- sizeof(Layout *));
-}
-
-
-static void
-arrange_max(Page * p)
-{
- int i = 0;
- if (!p->managed)
- return;
-
- for (i = 0; p->managed[i]; i++) {
- p->managed[i]->managed_rect = p->managed_rect;
- resize_frame(p->managed[i], &p->managed[i]->managed_rect, 0, 1);
- }
- if (p->managed_stack)
- XRaiseWindow(dpy, p->managed_stack[0]->win);
-
- /* raise floatings */
- for (i = 0; p->floating && p->floating[i]; i++)
- XRaiseWindow(dpy, p->floating[i]->win);
-}
-
-static void
-init_max(Page * p)
-{
- /* max has nothing to init */
- arrange_max(p);
-}
-
-static void
-deinit_max(Page * p)
-{
- /* max has nothing to free */
-}
-
-static void
-manage_max(Frame * f)
-{
- Page *p = f->page;
- int idx;
- if (!p)
- return;
- idx = index_next_item((void **) p->managed, f);
- if (idx > 0)
- swap((void **) &p->managed[0], (void **) &p->managed[idx]);
- arrange_max(f->page);
-}
-
-static void
-unmanage_max(Frame * f)
-{
- /* nothing todo */
-}
-
-static void
-resize_max(Frame * f, XRectangle * new, XPoint * pt)
-{
- if (f->page)
- f->managed_rect = f->page->managed_rect;
-}
-
-static Frame *
-select_max(Frame * f, char *what)
-{
- Page *p = f->page;
- Frame *res = 0;
- int i, idx;
-
- if (!strncmp(what, "prev", 5)) {
- idx = index_prev_item((void **) p->managed, f);
- if (idx >= 0)
- res = p->managed[idx];
- } else if (!strncmp(what, "next", 5)) {
- idx = index_next_item((void **) p->managed, f);
- if (idx >= 0)
- res = p->managed[idx];
- }
- if (res)
- XRaiseWindow(dpy, res->win);
-
- /* raise floatings */
- for (i = 0; p->floating && p->floating[i]; i++)
- XRaiseWindow(dpy, p->floating[i]->win);
- return res;
-}
diff --git a/cmd/wm/old/layout_tiled.c b/cmd/wm/old/layout_tiled.c
@@ -1,176 +0,0 @@
-/*
- * (C)opyright MMIV-MMV Anselm R. Garbe <garbeam at gmail dot com>
- * See LICENSE file for license details.
- */
-
-#include <stdlib.h>
-#include <string.h>
-
-#include "wm.h"
-#include "layout.h"
-
-#include <cext.h>
-
-/* tiled layout definition */
-static void arrange_tiled(Page * p);
-static void init_tiled(Page * p);
-static void deinit_tiled(Page * p);
-static void manage_tiled(Frame * f);
-static void unmanage_tiled(Frame * f);
-static void resize_tiled(Frame * f, XRectangle * new, XPoint * pt);
-static Frame *select_tiled(Frame * f, char *what);
-
-static Layout tiled =
-{"tiled", init_tiled, deinit_tiled, arrange_tiled, manage_tiled,
- unmanage_tiled, resize_tiled, select_tiled
-};
-
-void
-init_layout_tiled()
-{
- layouts =
- (Layout **) attach_item_end((void **) layouts, &tiled,
- sizeof(Layout *));
-}
-
-static void
-arrange_tiled(Page * p)
-{
- int tw, th, i, size = 0;
-
- if (!p->managed)
- return;
-
- /* determing num of frame and size of page */
- size = count_items((void **) p->managed);
-
- if (size > 1) {
- tw = (p->managed_rect.width * *((int *) p->aux)) / 100;
- th = p->managed_rect.height / (size - 1);
- } else {
- tw = p->managed_rect.width;
- th = p->managed_rect.height;
- }
-
- /* master tile */
- p->managed[0]->managed_rect.x = p->managed_rect.x;
- p->managed[0]->managed_rect.y = p->managed_rect.y;
- p->managed[0]->managed_rect.width = tw;
- p->managed[0]->managed_rect.height = p->managed_rect.height;
- resize_frame(p->managed[0], &p->managed[0]->managed_rect, 0, 1);
-
- if (size == 1)
- return;
- for (i = 1; i < size; i++) {
- p->managed[i]->managed_rect.x = p->managed_rect.x + tw;
- p->managed[i]->managed_rect.y = p->managed_rect.y + (i - 1) * th;
- p->managed[i]->managed_rect.width = p->managed_rect.width - tw;
- p->managed[i]->managed_rect.height = th;
- resize_frame(p->managed[i], &p->managed[i]->managed_rect, 0, 1);
- }
-}
-
-static void
-init_tiled(Page * p)
-{
- p->aux = emalloc(sizeof(int));
- *((int *) p->aux) =
- _strtonum(core_files[CORE_PAGE_TILE_WIDTH]->content, 5, 95);
-}
-
-static void
-deinit_tiled(Page * p)
-{
- p->aux = 0;
-}
-
-static void
-manage_tiled(Frame * f)
-{
- Page *p = f->page;
- if (!p)
- return;
- arrange_tiled(p);
-}
-
-static void
-unmanage_tiled(Frame * f)
-{
- manage_tiled(f);
-}
-
-static void
-drop_resize(Frame * f, XRectangle * new)
-{
- Page *p = f->page;
- int num = 0;
- int rearrange = 0;
-
- if (!p)
- return;
- /* determing num of frame and size of page */
- num = index_item((void **) p->managed, f);
-
- if (!num) { /* master tile */
- if ((f->managed_rect.x == new->x)
- && (f->managed_rect.width != new->width)) {
- f->managed_rect = *new;
- rearrange = 1;
- }
- } else if (f->managed_rect.x != new->x) {
- int diff = f->managed_rect.width - new->width;
- p->managed[0]->managed_rect.width += diff;
- rearrange = 1;
- }
- if (rearrange) {
- int tw =
- (p->managed[0]->managed_rect.width * 100) /
- p->managed_rect.width;
- if (tw > 95)
- tw = 95;
- else if (tw < 5)
- tw = 5;
- *((int *) p->aux) = tw;
- arrange_tiled(p);
- }
-}
-
-static void
-resize_tiled(Frame * f, XRectangle * new, XPoint * pt)
-{
- if ((f->managed_rect.width == new->width)
- && (f->managed_rect.height == new->height))
- drop_move(f, new, pt);
- else
- drop_resize(f, new);
-}
-
-static Frame *
-select_tiled(Frame * f, char *what)
-{
- Page *p = f->page;
- int idx;
- if (!strncmp(what, "prev", 5)) {
- idx = index_prev_item((void **) p->managed, f);
- if (idx >= 0)
- return p->managed[idx];
- } else if (!strncmp(what, "next", 5)) {
- idx = index_next_item((void **) p->managed, f);
- if (idx >= 0)
- return p->managed[idx];
- } else if (!strncmp(what, "zoomed", 7)) {
- idx = index_item((void **) p->managed, f);
- if (idx == 0 && p->managed[1])
- idx = 1;
- if (idx > 0)
- swap((void **) &p->managed[0], (void **) &p->managed[idx]);
- p->managed_stack = (Frame **)
- attach_item_begin(detach_item
- ((void **) p->managed_stack, p->managed[0],
- sizeof(Frame *)), p->managed[0],
- sizeof(Frame *));
- arrange_tiled(p);
- return p->managed_stack[0];
- }
- return 0;
-}
diff --git a/cmd/wm/old/layout_vsplit.c b/cmd/wm/old/layout_vsplit.c
@@ -1,223 +0,0 @@
-/*
- * (C)opyright 2005 Jonas WUSTRACK <doez at supinfo dot com>
- * (C)opyright MMIV-MMV Anselm R. Garbe <garbeam at gmail dot com>
- * See LICENSE file for license details.
- */
-
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-
-#include "wm.h"
-#include "layout.h"
-
-#include <cext.h>
-
-static void arrange_vsplit(Page * p);
-static void init_vsplit(Page * p);
-static void deinit_vsplit(Page * p);
-static void manage_vsplit(Frame * f);
-static void unmanage_vsplit(Frame * f);
-static void resize_vsplit(Frame * f, XRectangle * new, XPoint * pt);
-static Frame *select_vsplit(Frame * f, char *what);
-
-static Layout vsplit =
-{"vsplit", init_vsplit, deinit_vsplit, arrange_vsplit, manage_vsplit,
- unmanage_vsplit, resize_vsplit, select_vsplit
-};
-
-void
-init_layout_vsplit()
-{
- layouts =
- (Layout **) attach_item_end((void **) layouts, &vsplit,
- sizeof(Layout *));
-}
-
-static void
-get_base_geometry_vsplit(void **items, unsigned int *size,
- unsigned int *cols, unsigned int *rows)
-{
- /* float sq, dummy; */
-
- *size = count_items((void **) items);
- *cols = 1;
- *rows = *size;
-}
-
-
-static void
-arrange_vsplit(Page * p)
-{
- unsigned int i, ic, tw, th, rows, cols;
-
- if (!p->managed)
- return;
-
- get_base_geometry_vsplit((void **) p->managed, &ic, &cols, &rows);
- th = p->managed_rect.height / rows;
- tw = p->managed_rect.width;
-
- for (i = 0; i < rows; i++) {
- if (p->managed[i]) {
- XRectangle *r = (XRectangle *) p->managed[i]->aux;
- r->x = p->managed_rect.x;
- r->y = p->managed_rect.y + i * th;
- r->width = tw;
- r->height = th;
- p->managed[i]->managed_rect = *r;
- resize_frame(p->managed[i], &p->managed[i]->managed_rect, 0,
- 1);
- }
- }
-}
-
-static void
-init_vsplit(Page * p)
-{
- int i;
- for (i = 0; p->managed && p->managed[i]; i++)
- p->managed[i]->aux = emalloc(sizeof(XRectangle));
-}
-
-static void
-deinit_vsplit(Page * p)
-{
- int i;
- for (i = 0; p->managed && p->managed[i]; i++) {
- if (p->managed[i]->aux) {
- free(p->managed[i]->aux);
- p->managed[i]->aux = 0;
- }
- }
-}
-
-static void
-manage_vsplit(Frame * f)
-{
- f->aux = emalloc(sizeof(XRectangle));
- if (f->page)
- arrange_vsplit(f->page);
-}
-
-static void
-unmanage_vsplit(Frame * f)
-{
- if (f->aux) {
- free(f->aux);
- f->aux = 0;
- }
- if (f->page)
- arrange_vsplit(f->page);
-}
-
-#define THRESHOLD 30
-
-static void
-drop_resize(Frame * f, XRectangle * new)
-{
- int diff;
- unsigned int i, rows, cols, num, idx;
- Page *p = f->page;
- XRectangle *r;
-
- if (!p || !p->managed)
- return;
- get_base_geometry_vsplit((void **) p->managed, &i, &cols, &rows);
-
- num = index_item((void **) p->managed, f);
-
- /* vertical resize */
- if (f->managed_rect.y == new->y
- && f->managed_rect.height != new->height) {
- /* south direction resize */
- if (num == rows - 1)
- return;
- if (p->managed[num + 1]
- && (new->y + new->height > p->managed[num + 1]->managed_rect.y
- + p->managed[num + 1]->managed_rect.height - THRESHOLD))
- return;
- diff = new->height - ((XRectangle *) f->aux)->height;
- idx = num;
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->height = new->height;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx], &p->managed[idx]->managed_rect,
- 0, 1);
- }
- idx = num + 1;
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->y += diff;
- r->height -= diff;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx], &p->managed[idx]->managed_rect,
- 0, 1);
- }
- } else if (f->managed_rect.y != new->y) {
- /* north direction resize */
- if (!num)
- return;
- if (new->y < p->managed[num - 1]->managed_rect.y + THRESHOLD)
- return;
- diff = new->height - ((XRectangle *) f->aux)->height;
- idx = num;
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->y -= diff;
- r->height += diff;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx], &p->managed[idx]->managed_rect,
- 0, 1);
- }
- idx = num - 1;
- if (p->managed[idx]) {
- r = (XRectangle *) p->managed[idx]->aux;
- r->height -= diff;
- p->managed[idx]->managed_rect = *r;
- resize_frame(p->managed[idx], &p->managed[idx]->managed_rect,
- 0, 1);
- }
- }
-}
-
-static void
-resize_vsplit(Frame * f, XRectangle * new, XPoint * pt)
-{
- if ((f->managed_rect.width == new->width)
- && (f->managed_rect.height == new->height))
- drop_move(f, new, pt);
- else
- drop_resize(f, new);
-}
-
-static Frame *
-select_vsplit(Frame * f, char *what)
-{
- Page *p = f->page;
- int idx;
- if (!strncmp(what, "prev", 5)) {
- idx = index_prev_item((void **) p->managed, f);
- if (idx >= 0)
- return p->managed[idx];
- } else if (!strncmp(what, "next", 5)) {
- idx = index_next_item((void **) p->managed, f);
- if (idx >= 0)
- return p->managed[idx];
- } else if (!strncmp(what, "zoomed", 7)) {
- idx = index_item((void **) p->managed, f);
- if (idx == 0 && p->managed[1])
- idx = 1;
- if (idx > 0)
- swap((void **) &p->managed[0], (void **) &p->managed[idx]);
- p->managed_stack = (Frame **)
- attach_item_begin(detach_item
- ((void **) p->managed_stack, p->managed[0],
- sizeof(Frame *)), p->managed[0],
- sizeof(Frame *));
- arrange_vsplit(p);
- return p->managed_stack[0];
- }
- return 0;
-}