summaryrefslogtreecommitdiffstats
path: root/Tests/UseSWIG/runme.tcl
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@sap.com>2018-03-27 08:17:35 (GMT)
committerMarc Chevrier <marc.chevrier@sap.com>2018-04-02 14:24:13 (GMT)
commit438429d6fe04164b7ed70bda872e291d0df1a9e3 (patch)
tree048a336020ece4a135fa0afea6686efeb1e6b6bd /Tests/UseSWIG/runme.tcl
parente42fcb117fa1a8d063023bb39db96da93159ee40 (diff)
downloadCMake-438429d6fe04164b7ed70bda872e291d0df1a9e3.zip
CMake-438429d6fe04164b7ed70bda872e291d0df1a9e3.tar.gz
CMake-438429d6fe04164b7ed70bda872e291d0df1a9e3.tar.bz2
UseSWIG: Rework tests
Diffstat (limited to 'Tests/UseSWIG/runme.tcl')
-rw-r--r--Tests/UseSWIG/runme.tcl49
1 files changed, 49 insertions, 0 deletions
diff --git a/Tests/UseSWIG/runme.tcl b/Tests/UseSWIG/runme.tcl
new file mode 100644
index 0000000..6055cf6
--- /dev/null
+++ b/Tests/UseSWIG/runme.tcl
@@ -0,0 +1,49 @@
+# file: runme.tcl
+
+# This file illustrates the high level C++ interface.
+# In this case C++ classes work kind of like Tk widgets
+
+catch { load ./example[info sharedlibextension] example}
+
+# ----- Object creation -----
+
+puts "Creating some objects:"
+Circle c 10
+puts " Created circle [c cget -this]"
+Square s 10
+puts " Created square [s cget -this]"
+
+# ----- Access a static member -----
+
+puts "\nA total of $Shape_nshapes shapes were created"
+
+# ----- Member data access -----
+
+# Set the location of the object
+
+c configure -x 20 -y 30
+s configure -x -10 -y 5
+
+puts "\nHere is their current position:"
+puts " Circle = ([c cget -x], [c cget -y])"
+puts " Square = ([s cget -x], [s cget -y])"
+
+# ----- Call some methods -----
+
+puts "\nHere are some properties of the shapes:"
+foreach o "c s" {
+ puts " [$o cget -this]"
+ puts " area = [$o area]"
+ puts " perimeter = [$o perimeter]"
+}
+
+# ----- Delete everything -----
+
+puts "\nGuess I'll clean up now"
+
+# Note: this invokes the virtual destructor
+rename c ""
+rename s ""
+
+puts "$Shape_nshapes shapes remain"
+puts "Goodbye"