首页 > 代码库 > Sliders

Sliders

  1 //Sliders.cpp  2   3 /*  4 Copyright 2000-2004 The VCF Project.  5 Please see License.txt in the top level directory  6 where you installed the VCF.  7 */  8   9  10 #include "vcf/ApplicationKit/ApplicationKit.h" 11 #include "vcf/ApplicationKit/ControlsKit.h" 12  13 using namespace VCF; 14  15 /** 16 This example show how to add slider controls 17 */ 18 class SlidersWindow : public Window { 19 public: 20     SlidersWindow() { 21         setCaption( "Sliders" ); 22         setWidth( 500 ); 23         setHeight( 500 ); 24  25         Rect r = getClientBounds(); 26  27         double y = 20; 28  29         Label* label = new Label(); 30  31         label->setBounds( 20, y, r.getWidth()-40, label->getPreferredHeight() ); 32         label->setAnchor( AnchorLeft|AnchorRight); 33         label->setCaption( "Slider 1 position: " ); 34         label->setName( "Label1" ); 35         add( label ); 36  37  38         y = label->getBottom() + 20; 39  40  41  42         SliderControl* slider = new SliderControl(); 43         slider->setBounds( 20, y, r.getWidth()-40, slider->getPreferredHeight() ); 44  45         slider->setAnchor( AnchorLeft|AnchorRight); 46  47         slider->setTickMarkStyle( SliderControl::tmsTopLeft ); 48  49         add( slider ); 50         slider->setPosition( slider->getMaxValue() ); 51  52         slider->PositionChanged += 53             new ClassProcedure1<Event*,SlidersWindow>( this, &SlidersWindow::onSliderPositionChanged, "SlidersWindow::onSliderPositionChanged" ); 54  55  56  57         y = slider->getBottom() + 20; 58  59  60         slider = new SliderControl(); 61         slider->setBounds( 20, y, r.getWidth()-40, slider->getPreferredHeight() ); 62  63         slider->setAnchor( AnchorLeft|AnchorRight); 64  65         slider->setTickMarkStyle( SliderControl::tmsBottomRight ); 66  67         add( slider ); 68  69  70         y = slider->getBottom() + 20; 71  72  73         slider = new SliderControl(); 74         slider->setBounds( 20, y, r.getWidth()-40, slider->getPreferredHeight() ); 75  76         slider->setAnchor( AnchorLeft|AnchorRight); 77  78         slider->setTickFrequency( 5 ); 79  80         slider->setMaxValue( 60 ); 81         slider->setMinValue( 10 ); 82  83         slider->setTickMarkStyle( SliderControl::tmsBottomRight | SliderControl::tmsTopLeft ); 84  85         add( slider ); 86  87  88         y = slider->getBottom() + 20; 89         double x = 20; 90  91  92         slider = new SliderControl(); 93         slider->setDisplayOrientation( SliderControl::doVertical ); 94         slider->setBounds( x, y, slider->getPreferredWidth(), 200 ); 95  96         slider->setAnchor( AnchorTop|AnchorBottom); 97         slider->setTickMarkStyle( SliderControl::tmsBottomRight ); 98  99         add( slider );100 101         x = slider->getRight() + 20;102 103 104         slider = new SliderControl();105         slider->setDisplayOrientation( SliderControl::doVertical );106         slider->setBounds( x, y, slider->getPreferredWidth(), 200 );107 108         slider->setAnchor( AnchorTop|AnchorBottom);109         slider->setTickMarkStyle( SliderControl::tmsTopLeft );110 111         add( slider );112 113         x = slider->getRight() + 20;114 115 116 117         slider = new SliderControl();118         slider->setDisplayOrientation( SliderControl::doVertical );119         slider->setBounds( x, y, slider->getPreferredWidth(), 200 );120 121         slider->setAnchor( AnchorTop|AnchorBottom);122         slider->setTickMarkStyle( SliderControl::tmsBottomRight | SliderControl::tmsTopLeft );123 124         slider->setTickFrequency( 25 );125 126         add( slider );127 128         x = slider->getRight() + 20;129 130 131         //slider->setEnabled( false );132     }133 134     virtual ~SlidersWindow(){};135 136     void onSliderPositionChanged( Event* e ) {137         Label* label = (Label*)findComponent( "Label1" );138         SliderControl* slider = (SliderControl*)e->getSource();139         label->setCaption( Format( "Slider1 position: %0.3f" ) % slider->getPosition() );140     }141 };142 143 144 145 146 class SlidersApplication : public Application {147 public:148 149     SlidersApplication( int argc, char** argv ) : Application(argc, argv) {150 151     }152 153     virtual bool initRunningApplication(){154         bool result = Application::initRunningApplication();155 156         Window* mainWindow = new SlidersWindow();157         setMainWindow(mainWindow);158         mainWindow->show();159 160 161         return result;162     }163 164 };165 166 167 int main(int argc, char *argv[])168 {169     Application* app = new SlidersApplication( argc, argv );170 171 172     Application::main();173 174     return 0;175 }176 177 178 /**179 $Id: Sliders.cpp 3184 2007-09-17 02:26:00Z ddiego $180 */

 

Sliders