--- /dev/null
+#include <bbwxSlider.h>
+#include <bbwxLayoutLine.h>
+
+//=========================================================================
+// Illustrates how to insert a WxBlackBox into his own wxFrame
+//=========================================================================
+
+//==========================================================================
+// A custom wxFrame which own a bbwx::Slider widget
+class Frame : public wxFrame
+{
+public:
+ Frame();
+ // Slider callback
+ void OnSlider( bbtk::BlackBox::Pointer p, const std::string& o,
+ bbtk::IOStatus s);
+private:
+ bbwx::Slider::Pointer mSlider;
+ wxStaticText* mText;
+};
+//==========================================================================
+
+//==========================================================================
+Frame::Frame() :
+ wxFrame((wxFrame *)0, -1, _T("A frame which contains a bbwx::Slider"),
+ wxDefaultPosition, wxDefaultSize)
+{
+ wxBoxSizer *sizer = new wxBoxSizer(wxVERTICAL);
+
+ //========================================
+ // 1) Create the WxBlackBox
+ mSlider = bbwx::Slider::New("slider");
+ // 2) Create the widget giving it the parent
+ mSlider->bbUserCreateWidget(this);
+ // 3) Add an observer to process output modifications
+ mSlider->bbAddOutputObserver ( "Out",
+ BBTK_MAKE_OUTPUT_OBSERVER ( this,
+ &Frame::OnSlider ) );
+ // 4) Add the created widget in the sizer
+ sizer->Add(mSlider->bbGetOutputWidget(),1,wxGROW);
+ //=========================================
+
+ //=========================================
+ // Create the static text as usual
+ mText = new wxStaticText ( this, -1 , _T("") );
+ sizer->Add(mText,1,wxGROW);
+ //=========================================
+
+ SetSizer(sizer);
+ SetAutoLayout(true);
+ Layout();
+}
+//==========================================================================
+
+//==========================================================================
+void Frame::OnSlider( bbtk::BlackBox::Pointer p, const std::string& o,
+ bbtk::IOStatus s)
+{
+ std::cout << "New slider value = " << mSlider->bbGetOutputOut() << std::endl;
+ std::ostringstream val;
+ val << mSlider->bbGetOutputOut();
+ mText->SetLabel( bbtk::std2wx ( val.str() ) );
+}
+//==========================================================================
+
+//==========================================================================
+class App : public wxApp
+{
+public:
+ bool OnInit( );
+ int OnExit() { return true; }
+};
+//==========================================================================
+
+//==========================================================================
+// The `main program' equivalent, creating the windows and returning the
+// main frame
+bool App::OnInit( )
+{
+ wxApp::OnInit();
+#ifdef __WXGTK__
+ //See http://www.wxwindows.org/faqgtk.htm#locale
+ setlocale(LC_NUMERIC, "C");
+#endif
+ Frame* I = new Frame();
+ I->Show(true);
+ return true;
+}
+//=========================================================================
+
+//=========================================================================
+IMPLEMENT_APP(App);
+//=========================================================================
+