summaryrefslogtreecommitdiff
path: root/gui/gui.c
diff options
context:
space:
mode:
Diffstat (limited to 'gui/gui.c')
-rw-r--r--gui/gui.c133
1 files changed, 2 insertions, 131 deletions
diff --git a/gui/gui.c b/gui/gui.c
index bf2d30f..b2aa26f 100644
--- a/gui/gui.c
+++ b/gui/gui.c
@@ -217,8 +217,7 @@ static void canvas_coord(const struct gui_ctx *ctx,
}
-static void eeschema_coord(const struct gui_ctx *ctx,
- int x, int y, int *rx, int *ry)
+void eeschema_coord(const struct gui_ctx *ctx, int x, int y, int *rx, int *ry)
{
GtkAllocation alloc;
@@ -301,13 +300,6 @@ static void zoom_to_extents(struct gui_ctx *ctx)
}
-/* ----- Need this for jumping around -------------------------------------- */
-
-
-static void go_to_sheet(struct gui_ctx *ctx, struct gui_sheet *sheet);
-static bool go_up_sheet(struct gui_ctx *ctx);
-
-
/* ----- Revision history -------------------------------------------------- */
@@ -643,7 +635,7 @@ static void do_sheet_overlays(struct gui_ctx *ctx)
}
-static void go_to_sheet(struct gui_ctx *ctx, struct gui_sheet *sheet)
+void go_to_sheet(struct gui_ctx *ctx, struct gui_sheet *sheet)
{
aoi_dehover();
overlay_remove_all(&ctx->pop_overlays);
@@ -740,9 +732,6 @@ static void sheet_hover_end(void *user)
}
-static void dehover_glabel(struct gui_ctx *ctx);
-
-
static bool sheet_drag_begin(void *user, int x, int y)
{
dehover_glabel(user);
@@ -902,102 +891,6 @@ static void select_subsheet(void *user)
}
-struct glabel_aoi_ctx {
- const struct gui_sheet *sheet;
- const struct sch_obj *obj;
- struct dwg_bbox bbox;
- struct overlay *over;
-};
-
-
-/* small offset to hide rounding errors */
-#define CHEAT 1
-
-
-static void glabel_dest_click(void *user)
-{
- struct gui_sheet *sheet = user;
-
- go_to_sheet(sheet->ctx, sheet);
-}
-
-
-static void dehover_glabel(struct gui_ctx *ctx)
-{
- overlay_remove_all(&ctx->pop_overlays);
- redraw(ctx);
-}
-
-
-static bool hover_glabel(void *user, bool on)
-{
- struct glabel_aoi_ctx *aoi_ctx = user;
- struct gui_ctx *ctx = aoi_ctx->sheet->ctx;
- const struct gui_sheet *curr_sheet = ctx->curr_sheet;
- const struct dwg_bbox *bbox = &aoi_ctx->bbox;
-
- if (!on) {
- dehover_glabel(ctx);
- return 1;
- }
-
- GtkAllocation alloc;
- struct overlay_style style = {
- .font = BOLD_FONT,
- .wmin = 100,
- .wmax = 100,
- .radius = 0,
- .pad = 4,
- .skip = -4,
- .fg = { 0.0, 0.0, 0.0, 1.0 },
- .bg = { 1.0, 0.8, 0.4, 0.8 },
- .frame = { 1.0, 1.0, 1.0, 1.0 }, /* debugging */
- .width = 0,
- };
- int sx, sy, ex, ey, mx, my;
- unsigned n = 0;
- struct gui_sheet *sheet;
- const struct sch_obj *obj;
- struct overlay *over;
-
- aoi_dehover();
- overlay_remove_all(&ctx->pop_overlays);
- for (sheet = ctx->new_hist->sheets; sheet; sheet = sheet->next) {
- n++;
- if (sheet == curr_sheet)
- continue;
- for (obj = sheet->sch->objs; obj; obj = obj->next) {
- if (obj->type != sch_obj_glabel)
- continue;
- if (strcmp(obj->u.text.s, aoi_ctx->obj->u.text.s))
- continue;
- over = overlay_add(&ctx->pop_overlays,
- &ctx->aois, NULL, glabel_dest_click, sheet);
- overlay_text(over, "%d %s", n, sheet->sch->title);
- overlay_style(over, &style);
- break;
- }
- }
-
- eeschema_coord(ctx,
- bbox->x - curr_sheet->xmin, bbox->y - curr_sheet->ymin,
- &sx, &sy);
- eeschema_coord(ctx, bbox->x + bbox->w - curr_sheet->xmin,
- bbox->y + bbox->h - curr_sheet->ymin, &ex, &ey);
-
- gtk_widget_get_allocation(ctx->da, &alloc);
- mx = (sx + ex) / 2;
- my = (sy + ey) / 2;
- ctx->pop_x = mx < alloc.width / 2 ?
- sx - CHEAT : -(alloc.width - ex) + CHEAT;
- ctx->pop_y = my < alloc.height / 2 ?
- sy - CHEAT : -(alloc.height - ey) + CHEAT;
-
- redraw(ctx);
- return 0;
-}
-
-
/* ----- Initialization ---------------------------------------------------- */
@@ -1022,28 +915,6 @@ static void add_sheet_aoi(struct gui_ctx *ctx, struct gui_sheet *parent,
}
-static void add_glabel_aoi(struct gui_sheet *sheet, const struct sch_obj *obj)
-{
- const struct dwg_bbox *bbox = &obj->u.text.bbox;
- struct glabel_aoi_ctx *aoi_ctx = alloc_type(struct glabel_aoi_ctx);
-
- struct aoi cfg = {
- .x = bbox->x,
- .y = bbox->y,
- .w = bbox->w,
- .h = bbox->h,
- .hover = hover_glabel,
- .user = aoi_ctx,
- };
-
- aoi_ctx->sheet = sheet;
- aoi_ctx->obj = obj;
- aoi_ctx->bbox = *bbox;
-
- aoi_add(&sheet->aois, &cfg);
-}
-
-
static void mark_aois(struct gui_ctx *ctx, struct gui_sheet *sheet)
{
const struct sch_obj *obj;