[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Why do *sequence-dialog-item*'s blink when changing them?



Rich:

Thanks for the tip regarding modification of a sequence dialog,
but I already tried changing the variable ccl::table-sequence-iv
directly and then calling draw-cell-contents on the new cells,
but no luck. The added items are not displayed.

So I tried using redraw-cell.  This works, but only ONCE.  Any
time the window is covered and then reexposed the sequence is
not displayed, and your can't select aything in the sequence.

Things get even more interesting.  When you add an item
into the sequence, the variable ccl::table-dimensions-iv is
updated.  So I tried updating this directly....  No luck.

Any other suggestions?  Here is a code snipet...

;;  METHOD: view-add-goal *soda-goal-plan-list-view* ------------------------------
;;
;;  DESCRIPTION : adds the new active-goal to the list of goals displayed
;;  NOTES       : 
;;  PARAMETERS  : None
;;  RETURNS     : 
;;  CALLS       :
;;
;;  REVISION HISTORY
;;  02/28/91  lhh  - Initial Version for SODA
;;  03/05/91  lhh  - changes to try and remove blinking table
;;
(defobfun (view-add-goal *soda-goal-plan-list-view*) ()
  (declare (object-variable parent-plan ccl::table-sequence-iv 
                            ccl::table-dimensions-iv))
  (let* ((the-new-goal (get-active-goal))
         (the-parent-plan (ask the-new-goal (get-parent-plan))))
    (cond
     ((not (eq the-parent-plan (get-parent-plan)))
      (soda-error "view-add-goal called with an invalid parent plan"))
     (t
      ; code works but makes the dialog blink.
      ;(let* ((the-old-sequence (ask-named-item 'goal-plan-list (table-sequence)))
      ;       (the-new-sequence (append the-old-sequence (list the-new-goal))))
      ;  (ask-named-item 'goal-plan-list
      ;    (set-table-sequence the-new-sequence)))))))
      
      ;this code displays the seqeuence but 
      (let* ((the-old-sequence (ask-named-item 'goal-plan-list (table-sequence)))
             (the-new-sequence (append the-old-sequence (list the-new-goal)))
             (the-sequence-length (length the-new-sequence)))
        (ask-named-item 'goal-plan-list
          (setf ccl::table-sequence-iv the-new-sequence)
          (setf ccl::table-dimensions-iv (make-point 1 the-sequence-length))
          (dotimes (the-cell the-sequence-length)
            (redraw-cell (make-point 0 the-cell))
            (draw-cell-contents (make-point 0 the-cell)))))))))