Scroll to navigation

swaplist(3tk) Move options between two lists swaplist(3tk)


swaplist - A dialog which allows a user to move options between two lists


package require Tcl 8.4

package require Tk 8.4

package require swaplist ?0.1?

::swaplist::swaplist pathName variable completeList selectedList ?options?


This package provides a dialog which consists of 2 listboxes, along with buttons to move items between them and reorder the right list.
::swaplist::swaplist pathName variable completeList selectedList ?options?
Creates a dialog which presents the user with a pair of listboxes. Items are selected by using the buttons to move them to the right list. The contents of the right list are put in the variable upon closure of the dialog. The command returns a boolean indicating if the user pressed OK or not. If -geometry is not specified, the dialog is centered in its parent toplevel unless its parent is . in which case the dialog is centered in the screen.


if this flag is supplied, the procedure will create a swaplist widget named pathName, with the variable set as the listvariable for the right side listbox. This flag will also cause the -title and -geometry flags to be ignored.
boolean specifying if buttons allowing the user to change the order of the right listbox should appear or not. defaults to true
sets the title of the dialog window. defaults to "Configuration"
sets the heading above the left list. defaults to "Available:"
sets the heading above the right list. defaults to "Selected:"
sets the text on the "move left" button. defaults to "<<"
sets the text on the "move right" button. defaults to ">>"
sets the text on the "move up" button. defaults to "Move Up"
sets the text on the "move down" button. defaults to "Move Down"
sets the geometry of the dialog window.


package require swaplist
namespace import swaplist::*
if {[swaplist .slist opts "1 2 3 4 5 6 7 8 9" "1 3 5"]} {
    puts "user chose numbers: $opts"


This document, and the package it describes, will undoubtedly contain bugs and other problems. Please report such in the category swaplist of the Tklib Trackers []. Please also report any ideas for enhancements you may have for either package and/or documentation.


dialog, disjointlistbox, listbox


0.1 swaplist