CopperSpice Overview
KitchenSink Demo

KitchenSink is a standalone program which combines multiple demos in one executable. The purpose of KitchenSink is to demonstrate the capabilities and functionality of the CopperSpice libraries. These demos are basic examples and the code is intentionally simplistic and not optimized.

KitchenSink is built using the CMake build system. You must build CopperSpice with the same build tool used for KitchenSink. This applies to your applications as well.

Project Layout

The source distribution includes all source files, header files, and files for building with CMake.

  • Audio/Web
    • Camera
    • Music Player
    • Video Widget
    • HTML Viewer
  • Samples
    • Color Selector
    • Font Selector
    • Basic Drawing
    • International Translations
    • Standard Dialogs
    • Standard Paths
    • Style Sheets
    • XML
    • XML Patterns
  • Networking
    • Chat Messaging
    • SSL Client
  • Views
    • Table View
    • Tree View
    • List View
    • Table Widget
  • Widgets
    • Calendar
    • Line Edit
    • Sliders
    • Tabs, Radio Buttons, Checkboxes
  • Graphics
    • Analog Clock
    • Animated Tiles
    • Fridge Magnets
    • Lighting
    • Mandelbrot
    • Screen Shot

Click the following link to download the binary files or source code. KitchenSink

Building KitchenSink From Source

Before you build KitchenSink or any other CopperSpice project, you must have a copy of the CopperSpice files accessible on your computer. On option is to download our pre-built CopperSpice binary files. The other option is to build and install from source. Make sure to run the "ninja install" step so the appropriate folders for your platform are copied to the install directory. The install folder will typically contain the following folders: bin, cmake, include, and lib.

The build script shown below is used to build KitchenSink from the command line. The value for the [path_to_copperspice] parameter must be the path to the CopperSpice CMake files which are located in the CS install directory. The following values are based on an install path of /cs_lib.

Platform Value for [path_to_copperspice]
Unix Systems ~/cs_lib/lib/cmake/CopperSpice
Windows (MinGW) /c/cs_lib/cmake/CopperSpice
Windows (MSVC) c:\\cs_lib\\cmake\\CopperSpice

The ninja install step creates the deploy folder and copies the necessary files for running the application. You run KitchenSink from the deploy folder. If you omit the install step the platform files will be missing and the program will not start correctly.

# build script for KitchenSink
# configure
mkdir -p build
cd build
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH=[path_to_copperspice] \
-DCMAKE_INSTALL_PREFIX=../deploy ..
# build and install
cd build
ninja install

KitchenSink Platform Specifics

  • Mac OS X
    • International Demo
      Selecting a new language changes the App name from KitchenSink to File. This is a known issue however users would normally not switch at run time to a different language.

    • MenuBar
      Occasionally the menu bar may lose the App Name and the File Menu can be blank. Other menu options may not work after this happens. The program can be closed from the title bar close button. This appears to occur after opening a sample which contains a menu on the child window. User applications which will be distributed for Mac OS X, child windows and menu bars may not be the preferred GUI style.