@@ -498,227 +498,146 @@ void GlobePlugin::setupControls()
498
498
{
499
499
500
500
std::string imgDir = QDir::cleanPath ( QgsApplication::pkgDataPath () + " /globe/gui" ).toStdString ();
501
-
502
- // MOVE CONTROLS
503
- // Horizontal container
504
- HBox* moveHControls = new HBox ();
505
- moveHControls->setFrame ( new RoundedFrame () );
506
- moveHControls->getFrame ()->setBackColor ( 1 , 1 , 1 , 0.5 );
507
- moveHControls->setMargin ( 0 );
508
- #if HAVE_OSGEARTH_CHILD_SPACING
509
- moveHControls->setChildSpacing ( 47 );
510
- #else
511
- moveHControls->setSpacing ( 47 );
512
- #endif
513
- moveHControls->setVertAlign ( Control::ALIGN_CENTER );
514
- moveHControls->setHorizAlign ( Control::ALIGN_CENTER );
515
- moveHControls->setPosition ( 5 , 30 );
516
- moveHControls->setPadding ( 6 );
517
-
518
501
osgEarth::Util::EarthManipulator* manip = dynamic_cast <osgEarth::Util::EarthManipulator*>( mOsgViewer ->getCameraManipulator () );
519
- // Move Left
520
- osg::Image* moveLeftImg = osgDB::readImageFile ( imgDir + " /move-left.png" );
521
- ImageControl* moveLeft = new NavigationControl ( moveLeftImg );
522
- moveLeft->addEventHandler ( new PanControlHandler ( manip, -MOVE_OFFSET, 0 ) );
523
-
524
- // Move Right
525
- osg::Image* moveRightImg = osgDB::readImageFile ( imgDir + " /move-right.png" );
526
- ImageControl* moveRight = new NavigationControl ( moveRightImg );
527
- moveRight->addEventHandler ( new PanControlHandler ( manip, MOVE_OFFSET, 0 ) );
528
-
529
- // Vertical container
530
- VBox* moveVControls = new VBox ();
531
- moveVControls->setFrame ( new RoundedFrame () );
532
- moveVControls->getFrame ()->setBackColor ( 1 , 1 , 1 , 0.5 );
533
- moveVControls->setMargin ( 0 );
534
- #if HAVE_OSGEARTH_CHILD_SPACING
535
- moveVControls->setChildSpacing ( 36 );
536
- #else
537
- moveVControls->setSpacing ( 36 );
538
- #endif
539
- moveVControls->setVertAlign ( Control::ALIGN_CENTER );
540
- moveVControls->setHorizAlign ( Control::ALIGN_CENTER );
541
- moveVControls->setPosition ( 35 , 5 );
542
- moveVControls->setPadding ( 6 );
543
-
544
- // Move Up
545
- osg::Image* moveUpImg = osgDB::readImageFile ( imgDir + " /move-up.png" );
546
- ImageControl* moveUp = new NavigationControl ( moveUpImg );
547
- moveUp->addEventHandler ( new PanControlHandler ( manip, 0 , MOVE_OFFSET ) );
548
502
549
- // Move Down
550
- osg::Image* moveDownImg = osgDB::readImageFile ( imgDir + " /move-down.png" );
551
- ImageControl* moveDown = new NavigationControl ( moveDownImg );
552
- moveDown->addEventHandler ( new PanControlHandler ( manip, 0 , -MOVE_OFFSET ) );
553
-
554
- // add controls to moveControls group
555
- moveHControls->addControl ( moveLeft );
556
- moveHControls->addControl ( moveRight );
557
- moveVControls->addControl ( moveUp );
558
- moveVControls->addControl ( moveDown );
559
-
560
- // END MOVE CONTROLS
561
-
562
- // ROTATE CONTROLS
563
- // Horizontal container
564
- HBox* rotateControls = new HBox ();
565
- rotateControls->setFrame ( new RoundedFrame () );
566
- rotateControls->getFrame ()->setBackColor ( 1 , 1 , 1 , 0.5 );
567
- rotateControls->setMargin ( 0 );
568
- #if HAVE_OSGEARTH_CHILD_SPACING
569
- rotateControls->setChildSpacing ( 10 );
570
- #else
571
- rotateControls->setSpacing ( 10 );
572
- #endif
573
- rotateControls->setVertAlign ( Control::ALIGN_CENTER );
574
- rotateControls->setHorizAlign ( Control::ALIGN_CENTER );
575
- rotateControls->setPosition ( 5 , 113 );
576
- rotateControls->setPadding ( 6 );
577
-
578
- // Rotate CCW
579
- osg::Image* rotateCCWImg = osgDB::readImageFile ( imgDir + " /rotate-ccw.png" );
580
- ImageControl* rotateCCW = new NavigationControl ( rotateCCWImg );
503
+ osg::Image* yawPitchWheelImg = osgDB::readImageFile ( imgDir + " /YawPitchWheel.png" );
504
+ ImageControl* yawPitchWheel = new ImageControl ( yawPitchWheelImg );
505
+ int imgLeft = 16 ;
506
+ int imgTop = 20 ;
507
+ yawPitchWheel->setPosition ( imgLeft, imgTop );
508
+ mControlCanvas ->addControl ( yawPitchWheel );
509
+
510
+ // ROTATE CONTROLS
511
+ Control* rotateCCW = new NavigationControl ();
512
+ rotateCCW->setHeight ( 22 );
513
+ rotateCCW->setWidth ( 20 );
514
+ rotateCCW->setPosition ( imgLeft+0 , imgTop+18 );
581
515
rotateCCW->addEventHandler ( new RotateControlHandler ( manip, MOVE_OFFSET, 0 ) );
516
+ mControlCanvas ->addControl ( rotateCCW );
582
517
583
- // Rotate CW
584
- osg::Image* rotateCWImg = osgDB::readImageFile ( imgDir + " /rotate-cw.png" );
585
- ImageControl* rotateCW = new NavigationControl ( rotateCWImg );
518
+ Control* rotateCW = new NavigationControl ();
519
+ rotateCW->setHeight ( 22 );
520
+ rotateCW->setWidth ( 20 );
521
+ rotateCW->setPosition ( imgLeft+36 , imgTop+18 );
586
522
rotateCW->addEventHandler ( new RotateControlHandler ( manip, -MOVE_OFFSET , 0 ) );
523
+ mControlCanvas ->addControl ( rotateCW );
587
524
588
525
// Rotate Reset
589
- osg::Image* rotateResetImg = osgDB::readImageFile ( imgDir + " /rotate-reset.png" );
590
- ImageControl* rotateReset = new NavigationControl ( rotateResetImg );
526
+ Control* rotateReset = new NavigationControl ();
527
+ rotateReset->setHeight ( 22 );
528
+ rotateReset->setWidth ( 16 );
529
+ rotateReset->setPosition ( imgLeft+20 , imgTop+18 );
591
530
rotateReset->addEventHandler ( new RotateControlHandler ( manip, 0 , 0 ) );
531
+ mControlCanvas ->addControl ( rotateReset );
592
532
593
- // add controls to rotateControls group
594
- rotateControls->addControl ( rotateCCW );
595
- rotateControls->addControl ( rotateReset );
596
- rotateControls->addControl ( rotateCW );
597
-
598
- // END ROTATE CONTROLS
599
-
600
- // TILT CONTROLS
601
- // Vertical container
602
- VBox* tiltControls = new VBox ();
603
- tiltControls->setFrame ( new RoundedFrame () );
604
- tiltControls->getFrame ()->setBackColor ( 1 , 1 , 1 , 0.5 );
605
- tiltControls->setMargin ( 0 );
606
- #if HAVE_OSGEARTH_CHILD_SPACING
607
- tiltControls->setChildSpacing ( 30 );
608
- #else
609
- tiltControls->setSpacing ( 30 );
610
- #endif
611
- tiltControls->setVertAlign ( Control::ALIGN_CENTER );
612
- tiltControls->setHorizAlign ( Control::ALIGN_CENTER );
613
- tiltControls->setPosition ( 35 , 90 );
614
- tiltControls->setPadding ( 6 );
615
-
616
- // tilt Up
617
- osg::Image* tiltUpImg = osgDB::readImageFile ( imgDir + " /tilt-up.png" );
618
- ImageControl* tiltUp = new NavigationControl ( tiltUpImg );
533
+ // TILT CONTROLS
534
+ Control* tiltUp = new NavigationControl ();
535
+ tiltUp->setHeight ( 19 );
536
+ tiltUp->setWidth ( 24 );
537
+ tiltUp->setPosition ( imgLeft+20 , imgTop+0 );
619
538
tiltUp->addEventHandler ( new RotateControlHandler ( manip, 0 , MOVE_OFFSET ) );
539
+ mControlCanvas ->addControl ( tiltUp );
620
540
621
- // tilt Down
622
- osg::Image* tiltDownImg = osgDB::readImageFile ( imgDir + " /tilt-down.png" );
623
- ImageControl* tiltDown = new NavigationControl ( tiltDownImg );
541
+ Control* tiltDown = new NavigationControl ();
542
+ tiltDown->setHeight ( 19 );
543
+ tiltDown->setWidth ( 24 );
544
+ tiltDown->setPosition ( imgLeft+16 , imgTop+36 );
624
545
tiltDown->addEventHandler ( new RotateControlHandler ( manip, 0 , -MOVE_OFFSET ) );
546
+ mControlCanvas ->addControl ( tiltDown );
625
547
626
- // add controls to tiltControls group
627
- tiltControls->addControl ( tiltUp );
628
- tiltControls->addControl ( tiltDown );
548
+ // -------
629
549
630
- // END TILT CONTROLS
550
+ osg::Image* moveWheelImg = osgDB::readImageFile ( imgDir + " /MoveWheel.png" );
551
+ ImageControl* moveWheel = new ImageControl ( moveWheelImg );
552
+ imgTop = 80 ;
553
+ moveWheel->setPosition ( imgLeft, imgTop );
554
+ mControlCanvas ->addControl ( moveWheel );
631
555
632
- // ZOOM CONTROLS
633
- // Vertical container
634
- VBox* zoomControls = new VBox ();
635
- zoomControls->setFrame ( new RoundedFrame () );
636
- zoomControls->getFrame ()->setBackColor ( 1 , 1 , 1 , 0.5 );
637
- zoomControls->setMargin ( 0 );
638
- #if HAVE_OSGEARTH_CHILD_SPACING
639
- zoomControls->setChildSpacing ( 5 );
640
- #else
641
- zoomControls->setSpacing ( 5 );
642
- #endif
643
- zoomControls->setVertAlign ( Control::ALIGN_CENTER );
644
- zoomControls->setHorizAlign ( Control::ALIGN_CENTER );
645
- zoomControls->setPosition ( 35 , 170 );
646
- zoomControls->setPadding ( 6 );
647
-
648
- // Zoom In
649
- osg::Image* zoomInImg = osgDB::readImageFile ( imgDir + " /zoom-in.png" );
650
- ImageControl* zoomIn = new NavigationControl ( zoomInImg );
651
- zoomIn->addEventHandler ( new ZoomControlHandler ( manip, 0 , -MOVE_OFFSET ) );
556
+ // MOVE CONTROLS
557
+ Control* moveLeft = new NavigationControl ();
558
+ moveLeft->setHeight ( 22 );
559
+ moveLeft->setWidth ( 20 );
560
+ moveLeft->setPosition ( imgLeft+0 , imgTop+18 );
561
+ moveLeft->addEventHandler ( new PanControlHandler ( manip, -MOVE_OFFSET, 0 ) );
562
+ mControlCanvas ->addControl ( moveLeft );
652
563
653
- // Zoom Out
654
- osg::Image* zoomOutImg = osgDB::readImageFile ( imgDir + " /zoom-out.png" );
655
- ImageControl* zoomOut = new NavigationControl ( zoomOutImg );
656
- zoomOut->addEventHandler ( new ZoomControlHandler ( manip, 0 , MOVE_OFFSET ) );
564
+ Control* moveRight = new NavigationControl ();
565
+ moveRight->setHeight ( 22 );
566
+ moveRight->setWidth ( 20 );
567
+ moveRight->setPosition ( imgLeft+36 , imgTop+18 );
568
+ moveRight->addEventHandler ( new PanControlHandler ( manip, MOVE_OFFSET, 0 ) );
569
+ mControlCanvas ->addControl ( moveRight );
657
570
658
- // add controls to zoomControls group
659
- zoomControls->addControl ( zoomIn );
660
- zoomControls->addControl ( zoomOut );
571
+ Control* moveUp = new NavigationControl ();
572
+ moveUp->setHeight ( 19 );
573
+ moveUp->setWidth ( 24 );
574
+ moveUp->setPosition ( imgLeft+20 , imgTop+0 );
575
+ moveUp->addEventHandler ( new PanControlHandler ( manip, 0 , MOVE_OFFSET ) );
576
+ mControlCanvas ->addControl ( moveUp );
661
577
662
- // END ZOOM CONTROLS
578
+ Control* moveDown = new NavigationControl ();
579
+ moveDown->setHeight ( 19 );
580
+ moveDown->setWidth ( 24 );
581
+ moveDown->setPosition ( imgLeft+16 , imgTop+36 );
582
+ moveDown->addEventHandler (new PanControlHandler ( manip, 0 , -MOVE_OFFSET ) );
583
+ mControlCanvas ->addControl ( moveDown );
663
584
664
- // EXTRA CONTROLS
665
- // #define ENABLE_SYNC_BUTTON 1
666
- #if ENABLE_SYNC_BUTTON
667
- // Horizontal container
668
- HBox* extraControls = new HBox ();
669
- #else
670
- VBox* extraControls = new VBox ();
671
- #endif
672
- extraControls->setFrame ( new RoundedFrame () );
673
- extraControls->getFrame ()->setBackColor ( 1 , 1 , 1 , 0.5 );
674
- extraControls->setMargin ( 0 );
675
- #if HAVE_OSGEARTH_CHILD_SPACING
676
- extraControls->setChildSpacing ( 10 );
677
- #else
678
- extraControls->setSpacing ( 10 );
679
- #endif
680
- extraControls->setVertAlign ( Control::ALIGN_CENTER );
681
- extraControls->setHorizAlign ( Control::ALIGN_CENTER );
682
- #if ENABLE_SYNC_BUTTON
683
- extraControls->setPosition ( 5 , 231 );
684
- #else
685
- extraControls->setPosition ( 35 , 231 );
686
- #endif
687
- extraControls->setPadding ( 6 );
585
+ // Zoom Reset
586
+ Control* zoomHome = new NavigationControl ();
587
+ zoomHome->setHeight ( 22 );
588
+ zoomHome->setWidth ( 16 );
589
+ zoomHome->setPosition ( imgLeft+20 , imgTop+18 );
590
+ zoomHome->addEventHandler ( new HomeControlHandler ( manip ) );
591
+ mControlCanvas ->addControl ( zoomHome );
592
+
593
+ // -------
594
+
595
+ osg::Image* backgroundImg = osgDB::readImageFile ( imgDir + " /button-background.png" );
596
+ ImageControl* backgroundGrp1 = new ImageControl ( backgroundImg );
597
+ imgTop = imgTop+62 ;
598
+ backgroundGrp1->setPosition ( imgLeft+12 , imgTop );
599
+ mControlCanvas ->addControl ( backgroundGrp1 );
600
+
601
+ osg::Image* plusImg = osgDB::readImageFile ( imgDir + " /zoom-in.png" );
602
+ ImageControl* zoomIn = new NavigationControl ( plusImg );
603
+ zoomIn->setPosition ( imgLeft+12 +3 , imgTop+3 );
604
+ zoomIn->addEventHandler ( new ZoomControlHandler ( manip, 0 , -MOVE_OFFSET ) );
605
+ mControlCanvas ->addControl ( zoomIn );
688
606
689
- // Sync Extent
690
- #if ENABLE_SYNC_BUTTON
691
- osg::Image* extraSyncImg = osgDB::readImageFile ( imgDir + " /sync-extent.png" );
692
- ImageControl* extraSync = new NavigationControl ( extraSyncImg );
693
- extraSync->addEventHandler ( new SyncExtentControlHandler ( this ) );
694
- #endif
607
+ osg::Image* minusImg = osgDB::readImageFile ( imgDir + " /zoom-out.png" );
608
+ ImageControl* zoomOut = new NavigationControl ( minusImg );
609
+ zoomOut->setPosition ( imgLeft+12 +3 , imgTop+3 +23 +2 );
610
+ zoomOut->addEventHandler ( new ZoomControlHandler ( manip, 0 , MOVE_OFFSET ) );
611
+ mControlCanvas ->addControl ( zoomOut );
612
+
613
+ // -------
614
+
615
+ ImageControl* backgroundGrp2 = new ImageControl ( backgroundImg );
616
+ imgTop = imgTop+60 ;
617
+ backgroundGrp2->setPosition ( imgLeft+12 , imgTop );
618
+ mControlCanvas ->addControl ( backgroundGrp2 );
695
619
696
620
// Zoom Reset
697
- osg::Image* extraHomeImg = osgDB::readImageFile ( imgDir + " /zoom-home.png" );
698
- ImageControl* extraHome = new NavigationControl ( extraHomeImg );
699
- extraHome->addEventHandler ( new HomeControlHandler ( manip ) );
621
+ osg::Image* homeImg = osgDB::readImageFile ( imgDir + " /zoom-home.png" );
622
+ ImageControl* home = new NavigationControl ( homeImg );
623
+ home->setPosition ( imgLeft+12 +3 , imgTop+2 );
624
+ home->addEventHandler ( new HomeControlHandler ( manip ) );
625
+ mControlCanvas ->addControl ( home );
700
626
701
627
// refresh layers
702
- osg::Image* extraRefreshImg = osgDB::readImageFile ( imgDir + " /refresh-view.png" );
703
- ImageControl* extraRefresh = new NavigationControl ( extraRefreshImg );
704
- extraRefresh->addEventHandler ( new RefreshControlHandler ( this ) );
628
+ osg::Image* refreshImg = osgDB::readImageFile ( imgDir + " /refresh-view.png" );
629
+ ImageControl* refresh = new NavigationControl ( refreshImg );
630
+ refresh->setPosition ( imgLeft+12 +3 , imgTop+2 +23 +2 );
631
+ refresh->addEventHandler ( new RefreshControlHandler ( this ) );
632
+ mControlCanvas ->addControl ( refresh );
705
633
706
- // add controls to extraControls group
634
+ // Sync Extent
707
635
#if ENABLE_SYNC_BUTTON
708
- extraControls->addControl ( extraSync );
636
+ osg::Image* syncImg = osgDB::readImageFile ( imgDir + " /sync-extent.png" );
637
+ ImageControl* sync = new NavigationControl ( syncImg );
638
+ sync ->addEventHandler ( new SyncExtentControlHandler ( this ) );
639
+ mControlCanvas ->addControl ( sync );
709
640
#endif
710
- extraControls->addControl ( extraHome );
711
- extraControls->addControl ( extraRefresh );
712
-
713
- // END EXTRA CONTROLS
714
-
715
- // add controls groups to canavas
716
- mControlCanvas ->addControl ( moveHControls );
717
- mControlCanvas ->addControl ( moveVControls );
718
- mControlCanvas ->addControl ( tiltControls );
719
- mControlCanvas ->addControl ( rotateControls );
720
- mControlCanvas ->addControl ( zoomControls );
721
- mControlCanvas ->addControl ( extraControls );
722
641
}
723
642
724
643
void GlobePlugin::setupProxy ()
0 commit comments