1
0
mirror of git://projects.qi-hardware.com/fped.git synced 2024-11-28 18:10:16 +02:00

Commit Graph

  • bd10b18626 - postscript.c: added outline information for PDF - postscript.c: ignore pdfmark if not supported by interpreter werner 2009-08-30 19:38:33 +0000
  • 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 +0000
  • 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 +0000
  • 94223a8c54 Cause in TODO, effect: werner 2009-08-27 14:24:54 +0000
  • 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 +0000
  • c37648e2a5 Made interactive selection of measurement points a little less inefficient. werner 2009-08-27 09:01:24 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 5a2eb77629 Made life in mil-land a little less painful. werner 2009-08-22 15:58:58 +0000
  • 18be341c2d Bug-fixing ... werner 2009-08-22 14:29:48 +0000
  • 60147b98e2 - inst.c: we can drag points at a frame base again werner 2009-08-22 13:18:15 +0000
  • a44530f621 Selection now tries to help us not to get lost. werner 2009-08-22 12:27:47 +0000
  • 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 +0000
  • 9f814ab010 Improving Postscript output (on-going) werner 2009-08-21 23:28:38 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • f368014b3c - stupid typo made us crash when setting the package name werner 2009-08-18 20:57:09 +0000
  • 37b52f23fe Finally found a nice way to draw arcs in the GUI. werner 2009-08-18 20:52:09 +0000
  • de044ca61f We can now generate part families. werner 2009-08-17 20:42:51 +0000
  • 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 +0000
  • 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 +0000
  • 5a86125002 Added Postscript outout for measurements, plus assorted changes. werner 2009-08-16 11:21:48 +0000
  • 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 +0000
  • 64f80e84a2 Columns and loops can now be entered in one step as var = val, val, ... werner 2009-08-16 04:12:37 +0000
  • 233fc4b683 - added KiCad export of arcs - added pad names to Postscript export werner 2009-08-16 01:51:21 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • d39ae30f6e - added rounded pads - initialize item_widget to NULL if not showing items or bad things happen werner 2009-08-14 10:18:40 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 9c3cf7e51c - fbga.fpd: do this nicely and use a variable for the pitch werner 2009-08-11 23:30:58 +0000
  • 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 +0000
  • 3064b2abbb - measurements entered through the GUI were connected to the active frame, not the root frame werner 2009-08-11 21:54:18 +0000
  • fe5f824b9e Make delete feel "safer". werner 2009-08-11 20:52:33 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 4a0fd61016 More work on measurements. Getting there ... werner 2009-08-09 00:06:54 +0000
  • 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 +0000
  • e677ee1691 - for consistency, renamed gui_tools to gui_tool werner 2009-08-08 19:44:17 +0000
  • 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 +0000
  • 3dd46bb1c4 - zoom and center changed the coordinate system and did a redraw while hovering, upsetting the overlays werner 2009-08-08 19:01:45 +0000
  • 751e845250 New-style measurements are coming to the GUI soon ! werner 2009-08-08 18:50:17 +0000
  • 5c3921db16 This introduction was missing in the previous commit: werner 2009-08-08 14:17:23 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • d046f9306c - fpd.y: fixed check for empty part name - added new-style measurements (experimental) werner 2009-08-07 13:37:51 +0000
  • 63b4cb912e Experimental SC-89 footprint. werner 2009-08-07 02:23:04 +0000
  • 605bd52dc9 Finished deletion. Assorted bug fixes. werner 2009-08-07 00:48:06 +0000
  • 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 +0000
  • 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 +0000
  • dc09f3435d Various bugfixes. werner 2009-08-06 12:07:24 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 5d989a3e28 - GUI: added creation and moving of vectors, measurements, and frame references werner 2009-08-05 14:44:36 +0000
  • 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 +0000
  • 3db91b5c1b Added delete/undelete. werner 2009-08-05 00:32:38 +0000
  • 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 +0000
  • 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 +0000
  • 5add8b5229 GUI can create silk screen objects. werner 2009-08-04 12:06:04 +0000
  • 0015f96f14 - renamed gui_icons to gui_tools werner 2009-08-04 07:24:13 +0000
  • 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 +0000
  • 7674be9b10 - fixed stupid realloc(..., len) error - rearranged input area and added vector component edit capability werner 2009-08-04 00:23:10 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • 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 +0000
  • e455b37abb Moved fped over to /trunk/eda werner 2009-08-03 16:12:47 +0000