- (stock-id string)
- (tooltip-text string)
- (tooltip-private-text string)
- (nil null)
- (nil null)
- (position int))
-
-(defun toolbar-insert (toolbar position element
- &key tooltip-text tooltip-private-text
- type icon group callback object)
- (let* ((numpos (case position
- (:first -1)
- (:last 0)
- (t position)))
- (widget
- (cond
- ((or
- (eq type :space)
- (and (not type) (eq element :space)))
- (%toolbar-insert-element
- toolbar :space nil nil
- tooltip-text tooltip-private-text nil numpos))
- ((or
- (eq type :widget)
- (and (not type) (typep element 'widget)))
- (%toolbar-insert-element
- toolbar :widget element nil
- tooltip-text tooltip-private-text nil numpos))
- ((or
- (eq type :stock)
- (and
- (not type)
- (typep element 'string)
- (stock-lookup element)))
- (%toolbar-insert-stock
- toolbar element tooltip-text tooltip-private-text numpos))
- ((typep element 'string)
- (%toolbar-insert-element
- toolbar (or type :button) (when (eq type :radio-button) group)
- element tooltip-text tooltip-private-text
- (etypecase icon
- (null nil)
- (widget icon)
- (string (make-instance 'image :stock icon))
- (pathname (make-instance 'image :file icon))
- ((or list vector)
- (make-instance 'image
- :pixmap icon ; :icon-size (toolbar-icon-size toolbar)
- )))
- numpos))
- ((error "Invalid element type: ~A" element)))))
- (when callback
- (signal-connect widget 'clicked callback :object object))
- widget))
-
-(defun toolbar-append (toolbar element &key tooltip-text tooltip-private-text
- type icon group callback object)
- (toolbar-insert
- toolbar :first element :type type :icon icon :group group
- :tooltip-text tooltip-text :tooltip-private-text tooltip-private-text
- :callback callback :object object))