Werner Almesberger
505ffe0c17
eeshow/gui/gui.c: forgot to #include icons.h, oops
2016-08-21 02:41:19 -03:00
Werner Almesberger
bb30214c5f
eeshow/TODO: add some more ideas
2016-08-21 02:03:00 -03:00
Werner Almesberger
c8dfe1c4f6
eeshow/Makefile, gui/sheet.c: grow icons from 16 to 20 pixels reduce padding
2016-08-21 02:01:36 -03:00
Werner Almesberger
72a84bb29a
eeshow/README: add new prerequisites transfig and transfig, imagemagick
2016-08-21 01:28:52 -03:00
Werner Almesberger
e5e53ec904
eeshow/gui/sheet.c (add_delta): use pretty icons instead of unicode
2016-08-21 01:26:44 -03:00
Werner Almesberger
e33f755179
eeshow/: add icon loader and icons for "delta" and "diff"
2016-08-21 01:26:31 -03:00
Werner Almesberger
5a7d37ce73
eeshow/gui/over.c, over.h: support icon overlays
2016-08-21 01:24:42 -03:00
Werner Almesberger
3affbc3c3c
eeshow/gui/over.c, over.h: make coordinates "int" (to avoid bad surprises)
2016-08-20 23:57:56 -03:00
Werner Almesberger
e88fd0ac6c
eeshow/gui/over.c (overlay_draw): break down into more manageable parts
2016-08-20 23:56:16 -03:00
Werner Almesberger
b7fc07b650
eeshow/gui/render.c (on_draw_event): also mark changed subsheets in delta mode
2016-08-20 23:27:02 -03:00
Werner Almesberger
383676f1ad
eeshow/kicad/delta.c: improve sectioning
2016-08-20 23:17:29 -03:00
Werner Almesberger
ab888e7bdc
eeshow/kicad/delta.c: merge adjacent wires going in the same direction
2016-08-20 23:14:07 -03:00
Werner Almesberger
54afbf5b68
eeshow/kicad/delta.c (comp_eq_objs): move object comparison to comp_eq_obj
...
We use "return" quite a lot, which isn't what one would want in that loop.
2016-08-20 22:34:07 -03:00
Werner Almesberger
c12f5f34a6
eeshow/kicad/delta.c (comp_eq_objs): rectangle comparison was very confused
2016-08-20 22:21:14 -03:00
Werner Almesberger
c42fe2f5a2
eeshow/kicad/dwg.c (dwg_line): use common direction, to avoid false pixel diffs
2016-08-20 22:13:59 -03:00
Werner Almesberger
d4b06ff3da
eeshow/kicad/delta.c (obj_eq): also reversed wires are equal
2016-08-20 22:09:01 -03:00
Werner Almesberger
27065ad42f
eeshow/kicad/delta.c (comp_eq_objs): we never properly compared lib_obj_poly
2016-08-20 20:57:54 -03:00
Werner Almesberger
0d2b024d9c
eeshow/gui/ (aoi_click): also protect from access after free
...
Unlike aoi_hover, aoi_click was not observed to actually run into this
problem. But better safe than sorry.
2016-08-20 20:42:34 -03:00
Werner Almesberger
eeda1c1700
eeshow/gui/ (aoi_hover): could cause an access after free
2016-08-20 20:39:08 -03:00
Werner Almesberger
dbcacbde0c
eeshow/gui/glabel.c (hover_glabel): more discussion of "hanging" pop-ups
2016-08-20 18:29:54 -03:00
Werner Almesberger
ff47d69d25
eeshow/gfx/diff.c (complement_box): determine limits outside the loops
2016-08-20 15:54:32 -03:00
Werner Almesberger
3b76b058fd
eeshow/gfx/: don't overthink coordinate transforms
...
The xe/ye element was completely unnecessary because we never have an
offset at the pixel level. Furthermore, it was used incorrectly, causing
a shift between old and new when xmin/ymin differed.
2016-08-20 15:05:34 -03:00
Werner Almesberger
1e13572283
eeshow/gui/sheet.c (add_delta): show inverted greek delta when in delta mode
2016-08-20 09:30:38 -03:00
Werner Almesberger
c06680e272
eeshow/gfx/cro.c (cr_text_width): use cd/dc, not cx/xc
...
We don't want to risk getting sheet offsets mixed into our text sizes.
2016-08-20 09:24:27 -03:00
Werner Almesberger
adfb52d12d
eeshow/gfx/cro.c (xc): mixed up offset calculation
...
Apparently, this had no major effect.
2016-08-20 09:19:35 -03:00
Werner Almesberger
b289869f2a
eeshow/TODO: update
2016-08-20 09:04:27 -03:00
Werner Almesberger
23a2340ca8
eeshow/gui/render.c: resurrect delta mode (A toggles between delta and diff)
2016-08-20 09:01:59 -03:00
Werner Almesberger
b5d2b05757
eeshow/gui/render.c (hack): experimental highlighting of changed sub-sheets
...
This doesn't quite work yet, due to delta's sheet_eq being overzealous.
But we get the foot in :)
2016-08-20 08:57:41 -03:00
Werner Almesberger
13fcf8ce3a
eeshow/gfx/diff.c: export area creation and freeing
2016-08-20 08:26:01 -03:00
Werner Almesberger
169e34d50f
eeshow/: Esc cancels current action
2016-08-20 07:50:15 -03:00
Werner Almesberger
12c9c6bb4c
eeshow/Makefile: rebuild version.o only when linking; don't use .PHONY on it
2016-08-20 07:40:56 -03:00
Werner Almesberger
654c97e89e
eeshow/: don't use ? for help
...
We may want to use it in the future for searching (/ forward, ? backward, etc.)
2016-08-20 07:01:42 -03:00
Werner Almesberger
67fab71ed7
eeshow/gui/gui.c (gui): show build commit in window title
2016-08-19 21:30:58 -03:00
Werner Almesberger
6b901399ce
eeshow/gfx/diff.c (diff_to_canvas): draw caller-supplied areas
...
These are for future highlighting. WIP.
2016-08-19 21:25:48 -03:00
Werner Almesberger
f244fa09c7
eeshow/gui/gui.c (add_hist): initialize hist->libs_open
...
This is normally done by parse_files, except when we can't find the
schematics file.
2016-08-19 20:46:48 -03:00
Werner Almesberger
a6640058ff
eeshow/: eeshow -V prints the commit from which eeshow was built
2016-08-19 19:53:32 -03:00
Werner Almesberger
84de6b9ce6
eeshow/kicad/sch-parse.c (parse_field): verify that we actually reached the %n
2016-08-19 19:39:35 -03:00
Werner Almesberger
6be9e7ac0c
eeshow/gfx/diff.c (merge_coord): typo caused offset troubles
2016-08-19 19:15:39 -03:00
Werner Almesberger
1805118940
eeshow/gui/: sel_split to select 2nd version; sel_only doesn't set old_hist
2016-08-19 17:58:03 -03:00
Werner Almesberger
c612cd331b
eeshow/: make WebKit optional; add Gtk-based fallback viewer
2016-08-19 17:35:41 -03:00
Werner Almesberger
490a9b9e49
eeshow/: use webkit2gtk-4.0, not webkit2gtk-3.0
2016-08-19 15:58:28 -03:00
Werner Almesberger
e5c6fc7351
eeshow/TODO: help screen is implemented
2016-08-19 15:44:34 -03:00
Werner Almesberger
3307eb5b05
eeshow/gui/history.c (click_history): jumped to wrong sheet on sel_new + swap
...
In this case, both (!) old and new changed:
old old -> new new
selected -> new old
This caused eeshow to lose sheet navigation.
Reported by Joerg Reisenweber.
2016-08-19 15:30:42 -03:00
Werner Almesberger
35bc584767
eeshow/gui/help.c: properly support the "destroy" event
2016-08-19 14:47:11 -03:00
Werner Almesberger
f8c00fb6a2
eeshow/gui/help.c (new_help_window): set default font size to 10 (was 16)
2016-08-19 14:37:35 -03:00
Werner Almesberger
ebbb986768
eeshow/: add online help with h or ? (WIP)
2016-08-19 14:34:25 -03:00
Werner Almesberger
e72d476e71
eeshow/TOOD: add help, location string (for collaborative viewing)
2016-08-19 13:26:24 -03:00
Werner Almesberger
c24c966fb0
eeshow/gfx/diff.c (show_areas): break out the actual coloring
...
... for future sharing.
2016-08-19 13:25:33 -03:00
Werner Almesberger
c6db84aa26
eeshow/gui/sheet.c (toggle_old_new): Tab toggles between diff_old and diff_new
2016-08-19 12:34:37 -03:00
Werner Almesberger
3c0adecf86
eeshow/TODO: coordinate offsets between diff_* disagree
2016-08-19 12:28:14 -03:00
Werner Almesberger
2b0640f15d
eeshow/gui/: in diff_old, use sheet from old_hist for AoIs
2016-08-19 12:24:05 -03:00
Werner Almesberger
133a9c8ae3
eeshow/gui/sheet.c: clicking on the revision overlays changes diff mode
2016-08-19 07:34:31 -03:00
Werner Almesberger
c012addf4a
eeshow/gui/sheet.c (revision_overlays_diff): support selection of diff mode
2016-08-19 07:24:25 -03:00
Werner Almesberger
4f9a9f1d0d
eeshow/gui/sheet.c (sheet_key): recognize GDK_KEY_KP_Home, GDK_KEY_KP_Delete
2016-08-19 07:09:57 -03:00
Werner Almesberger
006d83057b
eeshow/gui/: difference display can now be switched with New/Old/Diff
...
Still need a GUI way to do the same.
2016-08-19 07:08:22 -03:00
Werner Almesberger
6ff7d63312
eeshow/gui/: highlight glabels
2016-08-19 06:49:47 -03:00
Werner Almesberger
b4df01a28d
eeshow/TODO, gui/glabel.c (hover_glabel): update TODO; explain hanging pop-ups
2016-08-19 06:05:42 -03:00
Werner Almesberger
2b80fcad45
eeshow/gui/glabel.c: allow other glabels to replace pop-up
2016-08-19 05:51:05 -03:00
Werner Almesberger
96fa1a2f62
eeshow/gui/aoi.c: make searches only consider AoIs supporting desired function
2016-08-19 05:35:37 -03:00
Werner Almesberger
10c1d0ede0
eeshow/gui/aoi.c (aoi_hover): use in_aoi instead of open-coding the comparison
2016-08-19 05:30:58 -03:00
Werner Almesberger
7eff14b7cd
eeshow/gui/: use overlay_draw_all_d for glabels, due to offsets
...
The offsets can move the coordinates across zero, thus flipping the alignment.
overlay_draw_all_d is immune to this.
2016-08-19 05:22:42 -03:00
Werner Almesberger
85a47724d7
eeshow/gui/glabel.c (add_dest_overlay): show "(unnamed)", not "(null)"
...
... for unnamed sheet.
2016-08-19 05:09:00 -03:00
Werner Almesberger
040a5af28f
eeshow/file/git-util.c (git_init_once): use git_threads_init in old libgit2
...
Joerg has some ancient SuSE from 2014 where only libgit2 0.21 works ...
2016-08-19 04:59:10 -03:00
Werner Almesberger
fc5597e2a0
eeshow/gui/render.c: update section comments
2016-08-19 04:10:02 -03:00
Werner Almesberger
bd8f6ab353
eeshow/gui/aoi.c (need_devover): also check the loction of the related AoI
2016-08-19 03:42:01 -03:00
Werner Almesberger
bc0ae8ed67
eeshow/gui/glabel.c (add_dest_frame): make sheet destinations related to frame
2016-08-19 03:38:52 -03:00
Werner Almesberger
dbf09a8dba
eeshow/gui/over.c (overlay_set_related, _all): support related AoIs
2016-08-19 03:32:41 -03:00
Werner Almesberger
49fe8518a5
eeshow/gui/aoi.c (aoi_set_related): AoIs can now share clicks
...
If A is related to B, then A can receive clicks while B is hovering,
without getting B de-hovered.
Note that in aoi_set_related(A, B), more than one A can share one B,
but an A can't have more than one B.
2016-08-19 03:25:56 -03:00
Werner Almesberger
fe5bc4a55a
eeshow/gui/input.c (hover_update): handle a few more rare cases
2016-08-18 18:29:23 -03:00
Werner Almesberger
aced11f9f2
eeshow/gui/glabel.c (add_dest_header): don't change bg color for label name
...
It simply didn't look right.
2016-08-18 18:17:44 -03:00
Werner Almesberger
b224ba4288
eeshow/gui/glabel.c: hand off hover to pop-up; close pop-up when leaving
2016-08-18 18:14:57 -03:00
Werner Almesberger
cdcc1d3adc
eeshow/gui/over.c (overlay_remove_all): make re-entrant safe
2016-08-18 18:14:14 -03:00
Werner Almesberger
b114f4e00e
eeshow/gui/glabel.c: show glabel name in pop-up
2016-08-18 17:55:54 -03:00
Werner Almesberger
56a4479912
eeshow/gui/over.c (overlay_draw): shift border outside the content area
...
This also ensures that lines with an odd-numbered width are not blended.
2016-08-18 17:39:08 -03:00
Werner Almesberger
969356a0b8
eeshow/gui/glabel.c (add_dest_overlay): include current sheet in list
2016-08-18 17:27:20 -03:00
Werner Almesberger
3eff51bb89
eeshow/gui/history.c (RGBA, COLOR): move to style.h
2016-08-18 17:26:54 -03:00
Werner Almesberger
4b3f2a86a9
eeshow/gui/input.c (button_release_event): input_hovering_down -> input_idle
2016-08-18 17:19:37 -03:00
Werner Almesberger
0e9a308d6c
eeshow/gui/: use underlay to draw a nice box for glabels
2016-08-18 17:13:36 -03:00
Werner Almesberger
64ddbc3c61
eeshow/misc/util.h (sign1): return sign of argument, return 1 for 0
2016-08-18 17:12:42 -03:00
Werner Almesberger
76f7f80c88
eeshow/gui/: add "underlay" for pop-ups (WIP)
...
We'll use this to construct stacks for glabels.
2016-08-18 17:09:20 -03:00
Werner Almesberger
434d942377
eeshow/gui/over.c (overlay_size, _all): calculate height and width of overlay
2016-08-18 17:06:11 -03:00
Werner Almesberger
d364b60ebe
eeshow/gui/over.h, over.c: allow also setting of min/max height
2016-08-18 16:08:12 -03:00
Werner Almesberger
f4208ed2ad
eeshow/gui/glabel.c (hover_glabel): separate addition of destination overlay
2016-08-18 16:07:33 -03:00
Werner Almesberger
2f65506cdd
eeshow/gui/over.c; add section comments
2016-08-18 14:05:22 -03:00
Werner Almesberger
55647987b5
eeshow/TODO: expand glabel issues
2016-08-18 13:53:37 -03:00
Werner Almesberger
25f3d3c509
eeshow/gui/sheet.c (sheet_drag_end): re-hover glabels after dragging
2016-08-18 13:40:09 -03:00
Werner Almesberger
b4384a72f4
eeshow/gui/input.c (clicked_x, _y): avoid accumulation of conversion errors
...
Gtk uses floating-point coordinates. The double conversion during dragging
(event -> clicked -> difference with next event) caused dragging to "slow
down" in the X- and Y- direction.
2016-08-18 13:36:06 -03:00
Werner Almesberger
d633fbf91d
eeshow/gui/sheet.c (sheet_scroll): call input_update to maybe re-hover glabel
2016-08-18 13:13:06 -03:00
Werner Almesberger
baed3f8a69
eeshow/gui/input.c (input_update): update hovering after coordinate changes
...
E.g., when zooming in or out.
2016-08-18 13:12:09 -03:00
Werner Almesberger
f8742fa050
eeshow/gui/sheet.c (sheet_setup): wrong use of ctx, broke resizing
...
... with a segfault.
2016-08-18 12:52:37 -03:00
Werner Almesberger
cfa730459c
eeshow/gui/gui.c: move rendering to render.c
2016-08-18 12:41:12 -03:00
Werner Almesberger
bbdf819c85
eeshow/gui/sheet.c: remove glabel pop-up when scrolling
...
Scrolling changes the geometry and the pop-up ended up at weird places.
2016-08-18 12:25:44 -03:00
Werner Almesberger
cb2cdd59e6
eeshow/gui/gui.c: better sectioning; trim includes
2016-08-18 12:16:13 -03:00
Werner Almesberger
7c4ee702e0
eeshow/main.c: run under gdb if argv[1] is "gdb"
...
I.e., instead of
eeshow foo bar
invoke with
eeshow gdb foo bar
2016-08-18 12:06:33 -03:00
Werner Almesberger
4ffdeeb910
eeshow/gui/input.c: support hover -> drag; set state to idle after cleanup
2016-08-18 04:56:39 -03:00
Werner Almesberger
f2c8693a77
eeshow/gui/input.c (motion_notify_event): misinterpreted hover_update result
...
This almost worked, except that it sometimes left hovering on after leaving
an AoI, which then caused a subsequent drag to be handled as hover_click.
This caused the history list sometimes to be closed when trying to drag.
2016-08-18 04:36:14 -03:00
Werner Almesberger
fd18690498
eeshow/gui/input.c: add tracing (-v -v -v); rename input_normal to input_idle
2016-08-18 04:34:51 -03:00
Werner Almesberger
822a14fc55
eeshow/gui/sheet.c: improve sectioning of code
2016-08-18 04:22:27 -03:00
Werner Almesberger
aca913b333
eeshow/gui/history.c: void forward-declaration of history_input_ops
2016-08-18 04:12:14 -03:00
Werner Almesberger
8d3b642fb2
eeshow/gui/history.c: provide complete set of input functions
2016-08-18 04:10:35 -03:00