[gnome-builder] libide/gui: use libpanel position getters



commit 315c8dc0a382ff51d985e3bbf007d85d738b5510
Author: Christian Hergert <chergert redhat com>
Date:   Thu Sep 15 20:39:11 2022 -0700

    libide/gui: use libpanel position getters
    
    Now that we have this in libpanel, we should stop using ours. But just
    wrap them for now so we don't have to do a bunch of replacements.

 src/libide/gui/ide-frame.c | 39 +------------------------------
 src/libide/gui/ide-page.c  | 27 +--------------------
 src/libide/gui/ide-pane.c  | 58 +---------------------------------------------
 3 files changed, 3 insertions(+), 121 deletions(-)
---
diff --git a/src/libide/gui/ide-frame.c b/src/libide/gui/ide-frame.c
index eb5462e68..048040a2f 100644
--- a/src/libide/gui/ide-frame.c
+++ b/src/libide/gui/ide-frame.c
@@ -350,44 +350,7 @@ ide_frame_addin_find_by_module_name (IdeFrame    *frame,
 PanelPosition *
 ide_frame_get_position (IdeFrame *self)
 {
-  PanelPosition *ret;
-  PanelGrid *grid;
-  guint n_columns;
-
-  g_return_val_if_fail (IDE_IS_FRAME (self), NULL);
-
-  /* Frames are always in the center grid */
-  ret = panel_position_new ();
-  panel_position_set_area (ret, PANEL_AREA_CENTER);
-
-  /* Implausible but handle it anyway */
-  grid = PANEL_GRID (gtk_widget_get_ancestor (GTK_WIDGET (self), PANEL_TYPE_GRID));
-  if (grid == NULL)
-    return ret;
-
-  n_columns = panel_grid_get_n_columns (grid);
-
-  for (guint c = 0; c < n_columns; c++)
-    {
-      PanelGridColumn *grid_column = panel_grid_get_column (grid, c);
-      guint n_rows = panel_grid_column_get_n_rows (grid_column);
-
-      for (guint r = 0; r < n_rows; r++)
-        {
-          PanelFrame *frame = panel_grid_column_get_row (grid_column, r);
-
-          if (frame == PANEL_FRAME (self))
-            {
-              panel_position_set_column (ret, c);
-              panel_position_set_row (ret, r);
-              return ret;
-            }
-        }
-    }
-
-  g_critical ("Failed to locate frame within grid");
-
-  return ret;
+  return panel_frame_get_position (PANEL_FRAME (self));
 }
 
 gboolean
diff --git a/src/libide/gui/ide-page.c b/src/libide/gui/ide-page.c
index 18387aa26..5a5cdabc1 100644
--- a/src/libide/gui/ide-page.c
+++ b/src/libide/gui/ide-page.c
@@ -631,32 +631,7 @@ ide_page_set_progress (IdePage         *self,
 PanelPosition *
 ide_page_get_position (IdePage *self)
 {
-  PanelPosition *position;
-  GtkWidget *frame;
-  guint n_pages;
-
-  g_return_val_if_fail (IDE_IS_PAGE (self), NULL);
-
-  if (!(frame = gtk_widget_get_ancestor (GTK_WIDGET (self), IDE_TYPE_FRAME)))
-    return NULL;
-
-  if (!(position = ide_frame_get_position (IDE_FRAME (frame))))
-    return NULL;
-
-  n_pages = panel_frame_get_n_pages (PANEL_FRAME (frame));
-
-  for (guint i = 0; i < n_pages; i++)
-    {
-      if (panel_frame_get_page (PANEL_FRAME (frame), i) == PANEL_WIDGET (self))
-        {
-          panel_position_set_depth (position, i);
-          return position;
-        }
-    }
-
-  g_critical ("Failed to find page within frame");
-
-  return position;
+  return panel_widget_get_position (PANEL_WIDGET (self));
 }
 
 void
diff --git a/src/libide/gui/ide-pane.c b/src/libide/gui/ide-pane.c
index 0b00045cc..f030292d4 100644
--- a/src/libide/gui/ide-pane.c
+++ b/src/libide/gui/ide-pane.c
@@ -248,61 +248,5 @@ ide_clear_pane (IdePane **location)
 PanelPosition *
 ide_pane_get_position (IdePane *self)
 {
-  static GType dock_child_type = G_TYPE_INVALID;
-  PanelArea area;
-  PanelPosition *ret;
-  GtkWidget *frame;
-  GtkWidget *paned;
-  GtkWidget *child;
-  guint n_pages;
-  int depth = 0;
-  int row_or_column = 0;
-
-  g_return_val_if_fail (IDE_IS_PANE (self), NULL);
-
-  if (dock_child_type == G_TYPE_INVALID)
-    {
-      if (!(dock_child_type = g_type_from_name ("PanelDockChild")))
-        g_return_val_if_reached (NULL);
-    }
-
-  if (!(frame = gtk_widget_get_ancestor (GTK_WIDGET (self), PANEL_TYPE_FRAME)))
-    g_return_val_if_reached (NULL);
-
-  n_pages = panel_frame_get_n_pages (PANEL_FRAME (frame));
-
-  for (guint i = 0; i < n_pages; i++)
-    {
-      if (panel_frame_get_page (PANEL_FRAME (frame), i) == PANEL_WIDGET (self))
-        {
-          depth = i;
-          break;
-        }
-    }
-
-  if (!(paned = gtk_widget_get_ancestor (frame, PANEL_TYPE_PANED)))
-    g_return_val_if_reached (NULL);
-
-  for (GtkWidget *iter = gtk_widget_get_first_child (paned);
-       iter != NULL && !gtk_widget_is_ancestor (frame, iter);
-       iter = gtk_widget_get_next_sibling (iter))
-    row_or_column++;
-
-  if (!(child = gtk_widget_get_ancestor (paned, dock_child_type)))
-    g_return_val_if_reached (NULL);
-
-  g_object_get (child,
-                "area", &area,
-                NULL);
-
-  ret = panel_position_new ();
-  panel_position_set_area (ret, area);
-  panel_position_set_depth (ret, depth);
-
-  if (area == PANEL_AREA_START || area == PANEL_AREA_END)
-    panel_position_set_row (ret, row_or_column);
-  else
-    panel_position_set_column (ret, row_or_column);
-
-  return ret;
+  return panel_widget_get_position (PANEL_WIDGET (self));
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]