bd10b18626
- postscript.c: added outline information for PDF - postscript.c: ignore pdfmark if not supported by interpreter
werner
2009-08-30 19:38:33 +00:00
276ada710f
- postscript.c: added some code for frame display, but I'm not happy with it - postscript.c: moved tedious "... maxfont maxfont ..." into new function "boxfont" - postscript.c: "hcenter" was way off for diagonal text - postscript.c: "realsize" didn't take into account the effect of rotation and returned only the x component in the original coordinate system - fped.c: feed a dummy argv to gui_init, so that we can parse the arguments before deciding whether to bring up the GUI - fped.c: don't bring up Gtk+ if we're not going to use it
werner
2009-08-30 06:04:00 +00:00
5b9918ced0
Measurement text size looked (almost) right on the screen but the size was all wrong when printing.
werner
2009-08-27 23:44:40 +00:00
94223a8c54
Cause in TODO, effect:
werner
2009-08-27 14:24:54 +00:00
8d94993c45
- added pad type (for non-solder and solder-paste-only pads) to FPD language (GUI is still missing)
werner
2009-08-27 09:45:57 +00:00
c37648e2a5
Made interactive selection of measurement points a little less inefficient.
werner
2009-08-27 09:01:24 +00:00
3497aabf5c
- destroy_obj: when deleting width expressions, check that they're actually non-NULL - gui.html: added more details on selecting
werner
2009-08-26 14:06:26 +00:00
2c9a359c0c
- renamed directory screens/ to manual/ - convert icons in the manual from XPM to PNG so that Firefox can display them too
werner
2009-08-24 16:53:47 +00:00
d9b7ad94ec
- when displaying loop iterations, we now use the active count, not just the last count - loop iterations now show the actual value, not the zero-based iteration number - gui.html: added a GUI manual (in progress)
werner
2009-08-22 22:55:39 +00:00
63e60182bb
- new visualization option: show all frames or show only current frame - new visualization option: highlight pads and silk ("final" view)
werner
2009-08-22 19:00:55 +00:00
5a2eb77629
Made life in mil-land a little less painful.
werner
2009-08-22 15:58:58 +00:00
18be341c2d
Bug-fixing ...
werner
2009-08-22 14:29:48 +00:00
60147b98e2
- inst.c: we can drag points at a frame base again
werner
2009-08-22 13:18:15 +00:00
a44530f621
Selection now tries to help us not to get lost.
werner
2009-08-22 12:27:47 +00:00
9e48901814
- postscript.c: added DSC comments - postscript.c: generate a page for each package - gui_style.h: changed monospaced font to Liberation Mono, to alleviate "l" vs. "1" problem
werner
2009-08-22 08:58:26 +00:00
9f814ab010
Improving Postscript output (on-going)
werner
2009-08-21 23:28:38 +00:00
347ef8aad5
When deleting frame "foo" in root->foo->bar and then linking bar from root, bar didn't automatically become active, which was rather confusing. We now also try harder to keep a frame active.
werner
2009-08-21 19:50:45 +00:00
a6f73ae297
- calculation of a rounded pad's diagonal is now more sensible. We use the length of the part of the diagonal that's on the pad. In the case of a circle (BGA), this is just the diameter. - changed label for diagonals from "r" to "d"
werner
2009-08-21 19:19:33 +00:00
94f4534494
- measurement offsets can now use variables. We evaluate the offset during instantiation and create a partially formed instance. During measurement instantiation, we complete that instance. - leak.supp: finally figured out how to write a valgrind suppression file - fped.c: we don't need the FPED_NO_GUI kludge anymore - fped.c: moved gui_cleanup_style to gui_main - dereference icons (seems that this doesn't deallocate everything, though)
werner
2009-08-21 18:20:37 +00:00
9e7e804d1a
- delete.c: added more destructor functions - deallocate all our data structures on exit (to help find memory leaks, bad pointers, and general logic errors) - fixed memory leak when allocating pad names in instantiation - added "magic" environment variable FPED_NO_GUI to run fped without initializing Gtk+ - added valgrind wrapper "leakcheck" - delete.c: destroy() now requires a deletion to exist - vacate_op: free string expressions - destroy_obj: free measurement labels - delete_references: use do_delete_obj so the we don't bump the group number - delete_frame: delete references after deleting the frame itself, so they end up on the stack above the frame and get destroyed first - do_delete_vec: like above, even though it doesn't matter here
werner
2009-08-21 08:34:17 +00:00
2737f8a3fa
- postscript.c: always run flattenpath before pathbbox - postscript.c: fixed algorithm in "center" - dump.c: reorder frames if we would end up with forward-references - sc89.fpd, fbga.fpd: changed "part" to new "package"
werner
2009-08-19 22:13:47 +00:00
4db1ade3bd
- Makefile: now requires /bin/bash (for PIPESTATUS) - Makefile: use PIPESTATUS to catch errors in the icon conversion pipe - Makefile: whitespace and comment cleanup - gui_style.c: removed no longer needed definition of INVALID
werner
2009-08-19 14:38:59 +00:00
0e0e4ea32d
- fixed precedence of unary minus, so that -(a+b) isn't printed as -a+b - removed in_path logic (never missed not having it) and made selected vectors a little brighter
werner
2009-08-18 23:49:54 +00:00
4920bb96fa
- replaced awkward FOR_GLOBAL_INSTS / FOR_PKG_INSTS sequence with single FOR_ALL_INSTS - several functions only walked the active package instances, so we couldn't access the origin of the root frame
werner
2009-08-18 22:03:51 +00:00
f368014b3c
- stupid typo made us crash when setting the package name
werner
2009-08-18 20:57:09 +00:00
37b52f23fe
Finally found a nice way to draw arcs in the GUI.
werner
2009-08-18 20:52:09 +00:00
de044ca61f
We can now generate part families.
werner
2009-08-17 20:42:51 +00:00
9e1631df30
- ctime(3) already provides a newline, so don't add an extra one to the .mod file, possibly confusing KiCad
werner
2009-08-16 12:24:03 +00:00
be86e276b8
- adjust measurement bbox for projection (still not perfect, but better) - we can now scroll-wheel through table rows - added menu branch "View" with zoom and var/code display controls - commented out is_min_of_next until its fate is decided, so that we don't get a warning
werner
2009-08-16 12:04:01 +00:00
5a86125002
Added Postscript outout for measurements, plus assorted changes.
werner
2009-08-16 11:21:48 +00:00
e3794589a8
- when editing a value list, we need to return the values and free them in case of successful validation - free previous expression in set_col_values - added rapid entry also for table values (fill the row)
werner
2009-08-16 05:05:12 +00:00
64f80e84a2
Columns and loops can now be entered in one step as var = val, val, ...
werner
2009-08-16 04:12:37 +00:00
233fc4b683
- added KiCad export of arcs - added pad names to Postscript export
werner
2009-08-16 01:51:21 +00:00
230de72552
- Makefile: fixed odd indentation of "clean" target - Makfile: added "install" and "uninstall" targets - when deleting the currently active frame reference, reset active_ref of the frame, so that it can be set to a new value later - during instantiation, circles were classified as arcs - end point of KiCad circle didn't mirror the Y axis
werner
2009-08-15 23:25:05 +00:00
b79c252d17
- dump.c didn't complete vector names used in measurements, causing them to be lost and producing an invalid fpd file
werner
2009-08-15 22:06:51 +00:00
ef58598695
- added -std=gnu99 so that we can use "round" and M_PI - added unit status and selection (in lower right corner) - added automatic unit selection - pointer coordinates are now shown with their unit - updated display of X, Y, width, offset, and radius for unit selection
werner
2009-08-15 20:52:08 +00:00
6f00ab6ac2
- KiCad is very liberal when it comes to valid part names, and so are we now (i.e., we now accept anything but control and non-ASCII characters)
werner
2009-08-14 22:12:16 +00:00
7af014b516
- when selecting an item in the canvas, we now check that the underlying object is still connected. This prevents surprises when making extensive changes during instantiation failure.
werner
2009-08-14 15:53:21 +00:00
d39ae30f6e
- added rounded pads - initialize item_widget to NULL if not showing items or bad things happen
werner
2009-08-14 10:18:40 +00:00
dbcfae8261
- objects selected via the item view can now be edited directly, even if no instance is found. This allows recovery from mistakes where a failing item never gets instantiated.
werner
2009-08-13 10:57:39 +00:00
8e54c1f7c3
- added the usual COLOR_ prefix also to TOOL_SELECTED/TOOL_UNSELECTED - instantiate_meas if a mesurements has no samples, do the next one, don't stop completely - when instantiation fails, the corresponding vector, object, or loop is now marked red in the variables/items list.
werner
2009-08-13 09:30:16 +00:00
2d8b36d65c
- named vectors in sc89.fpd - README: described use of "loop" as "if" and change fbga.fpd to use this
werner
2009-08-12 17:56:55 +00:00
9f2ea8cdc2
- reduced padding around item lines - item ordering heuristics failed to properly use "." - updated description of "need" in dump.c - saved fbga.fpd and sc89.fpd with new ordering
werner
2009-08-12 17:01:40 +00:00
2bae5614d9
- when selecting an object via the item list, make its frame active - having variables and items on the screen at the same time was too much. We can now toggle with "/" while the canvas has the focus. (This needs better controls.)
werner
2009-08-12 14:44:17 +00:00
a648cb888f
- changed item list font to Courier, which looks a lot tidier - active items can now be selected from the item list (selecting inactive items will be a little harder)
werner
2009-08-12 11:26:59 +00:00
e65d90947c
- put hbox around frame table so that it doesn't grow when we give it more space than it needs - dump.c: separated ordering function from actual printing - added list of vectors and object (on the right side of the variables)
werner
2009-08-12 10:45:52 +00:00
9c3cf7e51c
- fbga.fpd: do this nicely and use a variable for the pitch
werner
2009-08-11 23:30:58 +00:00
386a9fd50b
- added support for string constants to unparse() - implemented eval_str - expand() now tries to obtain a string - added example fbga.fpd to demonstrate use of strings - when invoked with an inexisting file, fped now starts with an empty model, instead of getting confused - we now religiously call edit_nothing before adding fields to edit, so that we won't create a loop through edit-next
werner
2009-08-11 23:26:38 +00:00
3064b2abbb
- measurements entered through the GUI were connected to the active frame, not the root frame
werner
2009-08-11 21:54:18 +00:00
fe5f824b9e
Make delete feel "safer".
werner
2009-08-11 20:52:33 +00:00
57e76aeb9e
- vector labels are already in a per-frame namespace, so we don't need to add the frame name when auto-generating them - moved file I/O from gui.c to file.c - ps_line used the wrong endpoint coordinate - option -k makes fped write KiCad non-interactively - option -p makes fped write Postscript non-interactively
werner
2009-08-11 20:17:39 +00:00
1dfb8da99a
- change file save logic to write to a temporary file first, so that we don't leave an empty/corrupt main file if we crash during saving - started adding Postscript output - renamed "Save as KiCad" to "Write KiCad" - switched from "manual" menu bar creation to GtkItemFactory
werner
2009-08-11 01:20:15 +00:00
6f307d6ae7
- added KiCad output - when saving a file, we now make a backup of any existing file with the same name
werner
2009-08-10 21:02:26 +00:00
a0f8375c97
- trying to place a frame reference upset the overlay state and caused an abort - dump any undumped non-measurements before the measurements - finished sc89.fpd, with the full set of measurements
werner
2009-08-10 15:13:07 +00:00
9c68c0de34
- File>Save now saves to a file if a second name is given on the command line, to stdout if not - there's no reason anymore to disallow editing the offset in new-style measurements - struct inst_ops is no longer opaque, so we can avoid adding even more silly little access functions and open-code straightforward callbacks - (re)stuctured hover/click/drag logic in gui_tool.c - added optional debugging output to gui_canvas.c - don't let a vector's base be dragged onto the vector's own end or onto one of its children - measurements can now be properly changed by dragging
werner
2009-08-10 13:51:51 +00:00
75d9780131
- band-aid: make canvas grab focus on click and scroll, so that it's easy to get it back when we lose it - improved heuristics for measx/measy: instead of looking for "next" or "max" on secondary coordinate, pick the one that's closest. I.e., if there's a chance to just connect with x' = 0 or y' = 0, do it. - mouse wheel on loop value now selects next/previous value - corrected proximity calculation for measurements - vec/frame/meas toggle now deselects, so that we don't accidently leave a supposedly hidden item selected
werner
2009-08-09 01:51:20 +00:00
4a0fd61016
More work on measurements. Getting there ...
werner
2009-08-09 00:06:54 +00:00
851c82af6f
- simplified tool_button and moved it from gui_tool.c to into gui_util.c - moved make_image from gui_tool.c to into gui_util.c as well - generalized set_frame_image and moved it to gui_util.c as set_image - tool_button_press_event didn't check which button was pressed - added buttons to switch visibility of frames, vectors, and measurements - when creating a measurement through the GUI, don't invert if both points are minima (otherwise, one could never get the text point the other way)
werner
2009-08-08 21:59:33 +00:00
e677ee1691
- for consistency, renamed gui_tools to gui_tool
werner
2009-08-08 19:44:17 +00:00
a1de1ee2d9
- moved handling of frame area from gui.c to gui_frame.c and cleaned up their includes
werner
2009-08-08 19:35:16 +00:00
3dd46bb1c4
- zoom and center changed the coordinate system and did a redraw while hovering, upsetting the overlays
werner
2009-08-08 19:01:45 +00:00
751e845250
New-style measurements are coming to the GUI soon !
werner
2009-08-08 18:50:17 +00:00
5c3921db16
This introduction was missing in the previous commit:
werner
2009-08-08 14:17:23 +00:00
39690c9cb2
- to simplify communication between the various modules, renamed "ctx" to draw_ctx, moved it to gui_util.c, and made it a global variable - moved drawing logic for hovering and dragging into dedicated state machine in gui_over.c - hovering now uses a pixmap to restore the background instead of redrawing - moved hover drawing functions from gui_inst.c to gui_tools.c - made hover circle thicker
werner
2009-08-08 14:11:26 +00:00
1a18292883
- added icons for new-style measurements (on-going) - increased default window size for make room for new icons - switch the canvas to dark blue when instantiation fails - modularized point lookup logic of instantiate_meas - added highlight mode (on-going)
werner
2009-08-07 21:47:51 +00:00
bb7355d84b
- gui_tools.c:new_vec didn't initialize vec->samples, causing fped to crash - we didn't dehover before deleting, which could cause a crash - added delete tool to canvas. Thus ... - we no longer need the Delete key on the canvas, so we can ... - always focus the (first) entry field, and ... - removed "focus" parameter to edit functions
werner
2009-08-07 19:42:57 +00:00
3ef1bb4afa
- moved more common editing code from field-type specific functions into wrappers - editable fields can now be traversed with Tab - Enter commits all editable fields - Esc resets all editable fields to their initial content
werner
2009-08-07 18:53:01 +00:00
55916cc75b
- zoom out now doesn't stop before there is a significant border around the drawing - zoom to frame was broken because it didn't track the recent change in location of active flag - we can now pan and zoom while dragging - gui_canvas.c:button_release_event didn't consider the button, making centering also end dragging
werner
2009-08-07 16:19:23 +00:00
d046f9306c
- fpd.y: fixed check for empty part name - added new-style measurements (experimental)
werner
2009-08-07 13:37:51 +00:00
63b4cb912e
Experimental SC-89 footprint.
werner
2009-08-07 02:23:04 +00:00
605bd52dc9
Finished deletion. Assorted bug fixes.
werner
2009-08-07 00:48:06 +00:00
766efce919
- tables no longer try to fill the available space in the variables area - added string-valued expressions (on-going) - loops, tables, and rows can now be deleted/undeleted (still need columns)
werner
2009-08-06 21:57:18 +00:00
30664583a1
- when dragging the endpoint of an arc, show a helper line to visually connect the point being dragged - added pop-up menus for all frame and variable items (on-going) - clickable items in the frame/var area now only respond to the left button, unless they have a pop-up - removed the frame delete icon - use pop-up instead
werner
2009-08-06 20:19:00 +00:00
dc09f3435d
Various bugfixes.
werner
2009-08-06 12:07:24 +00:00
995aa4ca04
- added menu item "Save" to dump the footprint to stdout - added temporary solution for having a part name - added part name to FPD example files - reduced area in which the frame delete button responds
werner
2009-08-06 06:54:41 +00:00
b5dd18c564
- dumping now labels all vectors, even those we only reference as . - dump objects only after all the vectors they reference have been dumped - instead of relying on clever algorithms to dump each object only once, just mark them - left "dump" enabled in "main", oops
werner
2009-08-06 04:56:47 +00:00
68b4fec921
- undelete after recursive delete now brings back everything deleted in that operation, not just one object at a time - vector reference counting is not needed now that we have recursive delete. Removed it. - completed recursive delete of vectors - gridify: give new vectors a minimum length, so that we don't get a weird display when starting a new footprint.
werner
2009-08-06 04:33:49 +00:00
08b788b929
- revamped delete logic: delete now always works. If there are references, we remove them as well. (In progress.) - added frame deletion - gui_status.c:add_label added vertical padding to keep the input area from bouncing (by Alvaro Lopes)
werner
2009-08-05 18:43:00 +00:00
5d989a3e28
- GUI: added creation and moving of vectors, measurements, and frame references
werner
2009-08-05 14:44:36 +00:00
cdcd2f36b3
- started functions to dump .fpd files (automatic labeling doesn't quite work yet) - don't pass argc, argv to gui_main. They've been harvested before.
werner
2009-08-05 10:35:48 +00:00
3db91b5c1b
Added delete/undelete.
werner
2009-08-05 00:32:38 +00:00
5d7ab083a3
- README: described use of semicolons - README: added that loops can also execute zero times - accept labels only at the beginning of a line - rectangles and lines no longer use the bounding box for drawing (caused offset problems since we now correct for the line width) - dist_rect and inside_rect no longer require their input pre-sorted - pad instances now have their own structure and no longer abuse the bounding box to know the pad coordinates - Makefile: use $(GEN) for fig2dev, to reduce chattiness - when dragging a point, the symbol is now adjusted accordingly - added moving of rects, pads, circles, and arcs - added creation of pads - moved rotate_r from gui_inst.c to coord.c - new function "theta" that combines most of the angle calculations - save_pix_buf: y < 0 clipping changed width, not height
werner
2009-08-04 21:45:33 +00:00
8377ab0e0d
- previous Makefile change was: tentative fix for compatibility with older ImageMagick versions (reported by Alvaro Lopes) - we can now also select the frame's origin as a reference - added general frame selection logic - make sure we always use %s when passing names to status_set_name - we can now drag endpoints (in progress)
werner
2009-08-04 18:03:06 +00:00
5add8b5229
GUI can create silk screen objects.
werner
2009-08-04 12:06:04 +00:00
0015f96f14
- renamed gui_icons to gui_tools
werner
2009-08-04 07:24:13 +00:00
3d2748a623
Valgrind and gcc -O: - stralloc_vprintf: used snprintf instead of vsnprintf. Oops ! - build_frames: didn't initialize "n" - added a few initializations to stop gcc from complaining
werner
2009-08-04 07:04:36 +00:00
7674be9b10
- fixed stupid realloc(..., len) error - rearranged input area and added vector component edit capability
werner
2009-08-04 00:23:10 +00:00
0ff7a6a3ab
- before changing the world, always deselect (reported by Dave Ball) - gui_draw_pad: add 10% of slack so that pad names are upright unless we really need to rotate
werner
2009-08-03 23:23:00 +00:00
96d41a37ab
- moved building of an activator into new function add_activator - added loop value selection (quick and dirty)
werner
2009-08-03 22:58:15 +00:00
3c026696d4
- don't crash when editing a NULL expression (e.g., default width) - bounding boxes of silk objects now include the width - # zooms and centers to currently active frame instance
werner
2009-08-03 21:52:21 +00:00
6c2734f6ac
- combined frame and variable view into a single table - make_var now sets up all back pointers, so we don't crash when deselecting a variable (this bug was uncovered by cleanup in the previous commit) - report_parse_error didn't print a newline at the end of the message - introduced frame reference selection and the data structures needed for it - bounding box calculation of arcs used x for y - added frame reference selection example quad.fpd
werner
2009-08-03 21:10:49 +00:00
e1e758b54f
- keyboard functions for the canvas: - zoom out, + or = zoom in, . center, * zoom and center to extents - variables in tables weren't properly initialized, causing stray recursive evaluation errors - replaced table->active index with table->active_row pointer - added row selection - for fun, added tab.fpd row selection example
werner
2009-08-03 17:58:32 +00:00
e455b37abb
Moved fped over to /trunk/eda
werner
2009-08-03 16:12:47 +00:00