[mcclim-devel] Is list-pane not fully implemented?

P C psilocidal at gmail.com
Wed Aug 8 22:52:44 UTC 2012


I tinkered with my code, and it was a (spacing (:thickness 0) ... )
argument in the layout for the list.

I appreciate your help. I posted what I thought was applicable in this case.

Here it is for reference.

(define-application-frame stocks-app ()
  ()
  (:geometry :width 1024 :height 768 :left 64 :top 32)
  (:panes
   (history-table (make-button-field-table :titles '("Name" "Symbol"
"Sector" "Industry" "Date" "Open" "Close" "Volume" "High" "Low")
                       :items '(("DEF" "1" "" "" "2" "X" "5" "6" "7" "8")
                            ("ABC" "3" "" "" "4" "Y" "5" "6" "7" "8")
                            ("GHI" "6" "" "" "5" "Z" "5" "6" "7" "8"))
                       :scroll-bars t))
   (index (make-list-pane
        :id 'index-list
        :value 'nil
        :items *index-list*
        :mode :nonexclusive
        ;:visible-items 10 doesn't work
        :prefer-single-selection t
        :callback 'nil
        :test #'string=))
   (symbols (make-pane 'list-pane))
;   (symbols (make-list-pane ;; supports 1543 items in list , need 3188 to
display
;         :id 'symbols-list
;         :value 'nil
;         :items 'nil
;         :mode :nonexclusive
;         ;:visible-items 10 doesn't work
;         :prefer-single-selection t
;         :callback 'nil
;         ;:scroll-bars t doesn't work
;         :test #'string=))
   (update-history-button (make-button-pane :id 'update-history :label
"Update History"))
   (download-history-button (make-button-pane :id 'download-history :label
"Download History"))
   (select-stocks-history-button (make-button-pane :id
'select-stocks-history :label "Select Stocks"))
   (import-history-button (make-button-pane :id 'import-history :label
"Import")))
  (:layouts
   (default
       (with-tab-layout ('tab-page :name 'stocks-layout :height 768)
     ; Tabs are "History" "Real-Time"
     ("History"
      (spacing
       (:thickness 8)
       (horizontally
        (:width 1024)
        +fill+
        (vertically
         (:height 768)
         (labelling (:label "History" :height 512 :width 1024)
            (spacing (:thickness 16)
                 history-table))
         (horizontally
          (:x-spacing 4 :y-spacing 4)
          (labelling (:label "Indices" :height 128 :width 192)
             (scrolling (:scroll-bar :vertical)
                    (spacing (:thickness 0)
                         index)))
          (labelling (:label "Stocks" :height 128)
             (scrolling (:scroll-bar :vertical)
                    ;; was (scrolling (:thickness 0)
                         symbols))) ;)
         (horizontally
          ()
          +fill+
          download-history-button
          update-history-button
          select-stocks-history-button
          import-history-button
          +fill+))
        +fill+))))))
  (:menu-bar t))

(define-stocks-app-command (com-quit :menu t) ()
    (frame-exit *application-frame*)
    nil)

(define-stocks-app-command (com-add-items :menu t :name t)
    ()
  (let ((list-pane (find-pane-named *application-frame* 'symbols))
    (index-pane (find-pane-named *application-frame* 'index)))
    (if (eql (values-list (gadget-value index-pane)) "NYSE")
    (setf (list-pane-items list-pane)
          (loop for i from 0 to 3000 collect i)))))

(defvar *stocks-app-frame* nil)

(defun stocks-window ()
  (flet ((run ()
       (let ((frame (make-application-frame 'stocks-app)))
         (setf *stocks-app-frame* frame)
         (run-frame-top-level frame))))
    (make-thread #'run :name "Stocks Window")))
(stocks-window)

On Wed, Aug 8, 2012 at 9:19 PM, Stas Boukarev <stassats at gmail.com> wrote:

> P C <psilocidal at gmail.com> writes:
>
> > Hello Stas,
> >
> > Thank you for your suggestion.
> >
> > I tried the code you showed me and it worked on its own, but when I tried
> > to use :
> >
> > (setf (clim-extensions:list-pane-items list-pane)
> >        (loop for i from 0 to (- (list-length new-list) 1) collect (nth i
> > new-list)))
> >
> > it still only displays half of the list. I collected just i and out of
> list
> > of 3189, it only displays 1543 ( 0 - 1542 ).
> >
> > My list is of a bunch of strings.
> >
> > I am going to look through my code tomorrow and see what I did wrong.
> > Would setting the key arguments when making the list pane affect
> adjusting
> > the items? Items and value is set at nil, but mode is nonexclusive and
> test
> > is #'string=.
> If you still haven't resolved your issues, it'd be wise to send your
> actual code (it's always wise to show the code).
>
> --
> With best regards, Stas.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/mcclim-devel/attachments/20120808/fac2b037/attachment.html>


More information about the mcclim-devel mailing list