documentation.
- Makefile, icons/frame_locked.fig, icons/frame_ready.fig: removed the icons of
locked and ready frames
- gui_tool.c: removed the frame tool and all the image handling associated with
it, leaving only the bits in place that are used by frame to canvas dragging
- gui_tool.h, gui_tool.c (tool_frame_update, tool_frame_deleted), gui_canvas.c
(key_press_event), gui_frame.c (popup_del_frame, select_frame): removed
the notifications of frame changes
- gui.html: removed the old clumsy frame reference procedure and described the
new way
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5937 99fdad57-331a-0410-800a-d7fa5415bdb3
avoid accidently dragging away bits the selected item (and confusing the
internal logic of the hover and drag system in the process), we have to make
sure nothing is selected when we enter the canvas.
- gui_canvas.c (canvas_frame_begin): make sure no instance is selected
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5936 99fdad57-331a-0410-800a-d7fa5415bdb3
tool, with all the old code still around, so the code paths are a bit obscure.
- gui_frame_drag.c: use GTK_DEST_DEFAULT_MOTION instead of
GTK_DEST_DEFAULT_HIGHLIGHT
- gui_frame_drag.c: put meat on the frame and canvas drag and drop skeleton
- gui_frame_drag.c (setup_frame_drag, setup_canvas_drag): use GDK_ACTION_COPY
instead of GDK_ACTION_PRIVATE
- gui_frame_drag.h, gui_frame_drag.c (is_dragging_anything): new helper
function to check if we're dragging anything, without specifying what
- gui_canvas.h, gui_canvas.c: added thin interface layer between gui_frame.c
and gui_tool.c
- gui_canvas.c (enter_notify_event, leave_notify_event): return FALSE so that
other widgets can get the events, too
- gui_tool.h, gui_tool.c (tool_hover): return whether we found anything to
hover on
- gui_tool.h, gui_tool.c: added interface for dropping a frame on the canvas
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5932 99fdad57-331a-0410-800a-d7fa5415bdb3
tables such that items are selected on release and we can thus drag without
selecting. (From a user point of view, selecting would be fine. But selecting
may sometimes cause a change_world or similar, destroying the widget, which
upsets drag and drop.)
- gui_frame_drag.c (setup_var_drag, setup_value_drag): moved targets to file
scope
- gui_frame_drag.c (has_target, drag_var_motion, drag_value_motion): Gtk
doesn't check target compatibility for us, so we have to do this explicitly
- gui_frame_drag.c (drag_begin): don't leak the pixbuf
- gui_frame_drag.c (is_dragging, drag_end), gui_frame_drag.h: for drag vs.
activations on button release, we now can test what is being dragged. For
this, we have to explicitly clear the variable "dragging" when done.
- gui_frame_drag.c (setup_var_drag, setup_value_drag): moved common setup to
setup_drag_common
- gui_frame_drag.c (setup_frame_drag, drag_frame_motion), gui_frame_drag.h,
gui_frame.c (frame_select_event, build_frame_label): added infrastructure for
dragging frames
- gui_frame_drag.c (setup_canvas_drag, drag_canvas_motion), gui_frame_drag.h,
gui_canvas.c (motion_notify_event, make_canvas): added infrastructure for
dragging to the canvas
- gui_frame.c (table_var_select_event, table_value_select_event, build_table):
split logic into press and release action, so that we can drag without
implicitly selecting
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5930 99fdad57-331a-0410-800a-d7fa5415bdb3
- gui_status.h: use macro to generate status_set_* delarations, just as we use
a macro for their definitions
- added tooltips for all non-editable fields in the status area
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5773 99fdad57-331a-0410-800a-d7fa5415bdb3
click on an anchor point of the selected object would be treated as a drag,
even if the click was very short. This created a very confusing user
experience.
- gui_canvas.c (button_release_event): if we didn't "escape" the drag radius,
don't treat the click as a drag but run the click-to-select process instead
(note: the drag visualization still flickers briefly)
- gui_canvas.c (button_release_event): to find out if we've escaped the drag
radius, just call drag_left instead of duplicating some of its code
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5772 99fdad57-331a-0410-800a-d7fa5415bdb3
be active, while in truth it had been reset internally.
- gui_canvas.c (button_press_event): if a click is used for selection (and not
dragging), reset the tool first
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5771 99fdad57-331a-0410-800a-d7fa5415bdb3
region to only cover the newly exposed area. This prevented the general
redrawing from clearing areas that still contained hovering and dragging
items. However,the paint region has no effect on reading from the drawable.
Thus when rebuilding the hover and drag stack, the still tainted image was
stored.
This issue could be solved by either introducing a separate mode where the
stack is redrawn instead of rebuilt, or by turning off double-buffering.
The former would complicate the already fickle logic of overlays, and not
having double-buffering doesn't seem to cause any ill effects.
- gui_canvas.c (make_canvas): disable double-buffering of canvas so that the
paint region is not restricted in expose events
- gui_tool.c (tool_tip): enabled canvas tooltips
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5770 99fdad57-331a-0410-800a-d7fa5415bdb3
- Makefile: use PID in temporary file name in PPM to XPM conversion, so that we
don't get mysterious failures in parallel builds
- gui_util.c (debug_save_pixbuf, debug_save_widget): helper functions to debug
pixbuf and widget content
- Makefile: added target "montage" to show the images recorded with
debug_save_pixbuf and debug_save_widget
- gui_over.c: when debugging, record the saves pixbuf in files
- gui_tool.c (tool_hover): removed unnecessary initialization
- added infrastructure for tooltips on the canvas (doesn't work properly yet)
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5769 99fdad57-331a-0410-800a-d7fa5415bdb3
pointer position relative to the user origin in the radius/angle fields.
This helps to make quick manual measurements, e.g., of clearances.
This also fixes the following bug:
- gui_canvas.c (refresh_pos): showed canvas coordinates instead of model
coordinates
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5755 99fdad57-331a-0410-800a-d7fa5415bdb3
- postscript.c: started adding generation of object-level frames (on-going)
- gui_canvas.c: moved call to inst_deselect into inst_select, so that
inst_select can keep track of the previous selection (if any)
- inst_select: if clicking on the location of the previous selection, try to
select the next matching item
- inst_select: if we can't find an active item, try to see if we can get
something by changing active references or - if all else fails - by
activating a different frame
- end_new_frame: reset the tool after placing the frame
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5522 99fdad57-331a-0410-800a-d7fa5415bdb3
- 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
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5462 99fdad57-331a-0410-800a-d7fa5415bdb3
- postscript.c: added patterns backhatchpath and crosspath (for pad overlaid
with solder paste)
- postscript.c: added measurements
- postscript.c: prefixed style parameters with PS_ to avoid future conflicts
with gui_style.h
- when changing the default unit, we now cancel the selection, and refresh
canvas and current position
- on-screen measurements now suppress the unit if set to anything but "auto"
- use __attribute__((format(printf, ...))) for printf-like functions
- the unit selector now has a white background to make it clearer that it can
be clicked
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5461 99fdad57-331a-0410-800a-d7fa5415bdb3
- 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
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5454 99fdad57-331a-0410-800a-d7fa5415bdb3
- 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.
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5432 99fdad57-331a-0410-800a-d7fa5415bdb3
- 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.)
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5425 99fdad57-331a-0410-800a-d7fa5415bdb3
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
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5414 99fdad57-331a-0410-800a-d7fa5415bdb3
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
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5413 99fdad57-331a-0410-800a-d7fa5415bdb3
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
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5405 99fdad57-331a-0410-800a-d7fa5415bdb3
- 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)
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5404 99fdad57-331a-0410-800a-d7fa5415bdb3
- 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
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5403 99fdad57-331a-0410-800a-d7fa5415bdb3
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
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5401 99fdad57-331a-0410-800a-d7fa5415bdb3
- also dump the part name
- if given a zero-length vector, draw_arrow now draws a vertical arrow instead
of overflowing
- fixed angle calculation when drawing and selecting arcs
- redraw the screen after deselecting when we begin dragging
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5395 99fdad57-331a-0410-800a-d7fa5415bdb3
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)
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5390 99fdad57-331a-0410-800a-d7fa5415bdb3
- when moving a point, we no longer restrict the area around the original
position once the drag radius has been left
- objects can now be deleted by selecting them and pressing Delete
- deleted objects can be restored by pressing "u"
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5387 99fdad57-331a-0410-800a-d7fa5415bdb3
- made xpm name manipulation compatible with older versions of ImageMagick
(reported by Alvaro Lopes)
- corrected all lines beginning with five or more spaces
- Makefile
- README: fixed loop example (reported by Joerg Reisenweber)
- moved draw_arc and draw_circle from gui_inst.c to gui_util.c
- added dragging and hovering
- added creation of lines, rectangles, and arcs via GUI
- removed arc tool (use circle instead)
- fixed reference counting in vectors
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5384 99fdad57-331a-0410-800a-d7fa5415bdb3
- bounding boxes of silk objects now include the width
- # zooms and centers to currently active frame instance
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5378 99fdad57-331a-0410-800a-d7fa5415bdb3
* 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
git-svn-id: http://svn.openmoko.org/trunk/eda/fped@5375 99fdad57-331a-0410-800a-d7fa5415bdb3