#include <dali/dali.h>
#include <dali-toolkit/dali-toolkit.h>
#include <dali/devel-api/images/atlas.h>
+#include <dali/devel-api/rendering/cull-face.h>
using namespace Dali;
using namespace Dali::Toolkit;
const char* BACKGROUND_IMAGE( "" );
const char* TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" );
const char* EDIT_IMAGE( DALI_IMAGE_DIR "icon-edit.png" );
+const char* EDIT_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-edit-selected.png" );
const char* SPIRAL_LAYOUT_IMAGE( DALI_IMAGE_DIR "icon-item-view-layout-spiral.png" );
+const char* SPIRAL_LAYOUT_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-item-view-layout-spiral-selected.png" );
const char* GRID_LAYOUT_IMAGE( DALI_IMAGE_DIR "icon-item-view-layout-grid.png" );
+const char* GRID_LAYOUT_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-item-view-layout-grid-selected.png" );
const char* DEPTH_LAYOUT_IMAGE( DALI_IMAGE_DIR "icon-item-view-layout-depth.png" );
+const char* DEPTH_LAYOUT_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-item-view-layout-depth-selected.png" );
const char* DELETE_IMAGE( DALI_IMAGE_DIR "icon-delete.png" );
+const char* DELETE_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-delete-selected.png" );
const char* REPLACE_IMAGE( DALI_IMAGE_DIR "icon-replace.png" );
+const char* REPLACE_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-replace-selected.png" );
const char* INSERT_IMAGE( DALI_IMAGE_DIR "icon-insert.png" );
+const char* INSERT_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-insert-selected.png" );
const char* SELECTED_IMAGE( DALI_IMAGE_DIR "item-select-check.png" );
const char* APPLICATION_TITLE( "ItemView" );
*/
void OnInit(Application& app)
{
- DemoHelper::RequestThemeChange();
-
Stage stage = Dali::Stage::GetCurrent();
stage.KeyEventSignal().Connect(this, &ItemViewExample::OnKeyEvent);
+ stage.GetRootLayer().SetBehavior(Layer::LAYER_3D);
Vector2 stageSize = Stage::GetCurrent().GetSize();
TOOLBAR_IMAGE,
"" );
- app.GetWindow().GetOrientation().ChangedSignal().Connect( this, &ItemViewExample::OnOrientationChanged );
+ //app.GetWindow().GetOrientation().ChangedSignal().Connect( this, &ItemViewExample::OnOrientationChanged );
// Create an edit mode button. (left of toolbar)
Toolkit::PushButton editButton = Toolkit::PushButton::New();
- editButton.SetBackgroundImage( ResourceImage::New( EDIT_IMAGE ) );
+ editButton.SetUnselectedImage( EDIT_IMAGE );
+ editButton.SetSelectedImage( EDIT_IMAGE_SELECTED );
editButton.ClickedSignal().Connect( this, &ItemViewExample::OnModeButtonClicked);
editButton.SetLeaveRequired( true );
mToolBar.AddControl( editButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalLeft, DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
// Create a layout toggle button. (right of toolbar)
mLayoutButton = Toolkit::PushButton::New();
- mLayoutButton.SetBackgroundImage( ResourceImage::New( SPIRAL_LAYOUT_IMAGE ) );
+ mLayoutButton.SetUnselectedImage( SPIRAL_LAYOUT_IMAGE );
+ mLayoutButton.SetSelectedImage(SPIRAL_LAYOUT_IMAGE_SELECTED );
mLayoutButton.ClickedSignal().Connect( this, &ItemViewExample::OnLayoutButtonClicked);
mLayoutButton.SetLeaveRequired( true );
mToolBar.AddControl( mLayoutButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, Toolkit::Alignment::HorizontalRight, DemoHelper::DEFAULT_MODE_SWITCH_PADDING );
mDeleteButton.SetParentOrigin(ParentOrigin::BOTTOM_RIGHT);
mDeleteButton.SetAnchorPoint(AnchorPoint::BOTTOM_RIGHT);
mDeleteButton.SetPosition( BUTTON_BORDER, BUTTON_BORDER );
- mDeleteButton.SetDrawMode( DrawMode::OVERLAY );
- mDeleteButton.SetButtonImage( ResourceImage::New( DELETE_IMAGE ) );
- mDeleteButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) );
+ mDeleteButton.SetDrawMode( DrawMode::OVERLAY_2D );
+ mDeleteButton.SetUnselectedImage( DELETE_IMAGE );
+ mDeleteButton.SetSelectedImage( DELETE_IMAGE_SELECTED );
+ mDeleteButton.SetBackgroundImage( TOOLBAR_IMAGE );
mDeleteButton.SetSize( Vector2( stageSize.width * 0.15f, stageSize.width * 0.15f ) );
mDeleteButton.ClickedSignal().Connect( this, &ItemViewExample::OnDeleteButtonClicked);
mDeleteButton.SetLeaveRequired( true );
mInsertButton.SetParentOrigin(ParentOrigin::BOTTOM_RIGHT);
mInsertButton.SetAnchorPoint(AnchorPoint::BOTTOM_RIGHT);
mInsertButton.SetPosition( BUTTON_BORDER, BUTTON_BORDER );
- mInsertButton.SetDrawMode( DrawMode::OVERLAY );
- mInsertButton.SetButtonImage( ResourceImage::New( INSERT_IMAGE ) );
- mInsertButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) );
+ mInsertButton.SetDrawMode( DrawMode::OVERLAY_2D );
+ mInsertButton.SetUnselectedImage( INSERT_IMAGE );
+ mInsertButton.SetSelectedImage( INSERT_IMAGE_SELECTED );
+ mInsertButton.SetBackgroundImage( TOOLBAR_IMAGE );
mInsertButton.SetSize( stageSize.width * 0.15f, stageSize.width * 0.15f );
mInsertButton.ClickedSignal().Connect( this, &ItemViewExample::OnInsertButtonClicked);
mInsertButton.SetLeaveRequired( true );
mReplaceButton.SetParentOrigin(ParentOrigin::BOTTOM_RIGHT);
mReplaceButton.SetAnchorPoint(AnchorPoint::BOTTOM_RIGHT);
mReplaceButton.SetPosition( BUTTON_BORDER, BUTTON_BORDER );
- mReplaceButton.SetDrawMode( DrawMode::OVERLAY );
- mReplaceButton.SetButtonImage( ResourceImage::New( REPLACE_IMAGE ) );
- mReplaceButton.SetBackgroundImage( ResourceImage::New( TOOLBAR_IMAGE ) );
+ mReplaceButton.SetDrawMode( DrawMode::OVERLAY_2D );
+ mReplaceButton.SetUnselectedImage( REPLACE_IMAGE );
+ mReplaceButton.SetSelectedImage( REPLACE_IMAGE_SELECTED );
+ mReplaceButton.SetBackgroundImage( TOOLBAR_IMAGE );
mReplaceButton.SetSize( stageSize.width * 0.15f, stageSize.width * 0.15f );
mReplaceButton.ClickedSignal().Connect( this, &ItemViewExample::OnReplaceButtonClicked);
mReplaceButton.SetLeaveRequired( true );
mReplaceButton.SetVisible( false );
stage.Add( mReplaceButton );
+ // Store one 1x1 white image for multiple items to share for backgrounds:
+ mWhiteImage = BufferImage::WHITE();
+
// Create the item view actor
mImageAtlas = CreateImageAtlas();
mItemView = ItemView::New(*this);
// Display item view on the stage
stage.Add( mItemView );
+ stage.GetRootLayer().SetBehavior( Layer::LAYER_3D );
// Create the layouts
mSpiralLayout = DefaultItemLayout::New( DefaultItemLayout::SPIRAL );
// Set the title and icon to the current layout
SetLayoutTitle();
SetLayoutImage();
-
- // Store one 1x1 white image for multiple items to share for backgrounds:
- mWhiteImage = BufferImage::WHITE();
}
- Actor OnKeyboardPreFocusChange( Actor current, Actor proposed, Control::KeyboardFocusNavigationDirection direction )
+ Actor OnKeyboardPreFocusChange( Actor current, Actor proposed, Control::KeyboardFocus::Direction direction )
{
if ( !current && !proposed )
{
{
case SPIRAL_LAYOUT:
{
- mLayoutButton.SetBackgroundImage( ResourceImage::New( SPIRAL_LAYOUT_IMAGE ) );
+ mLayoutButton.SetUnselectedImage( SPIRAL_LAYOUT_IMAGE );
+ mLayoutButton.SetSelectedImage( SPIRAL_LAYOUT_IMAGE_SELECTED );
break;
}
case GRID_LAYOUT:
{
- mLayoutButton.SetBackgroundImage( ResourceImage::New( GRID_LAYOUT_IMAGE ) );
+ mLayoutButton.SetUnselectedImage( GRID_LAYOUT_IMAGE );
+ mLayoutButton.SetSelectedImage( GRID_LAYOUT_IMAGE_SELECTED );
break;
}
case DEPTH_LAYOUT:
{
- mLayoutButton.SetBackgroundImage( ResourceImage::New( DEPTH_LAYOUT_IMAGE ) );
+ mLayoutButton.SetUnselectedImage( DEPTH_LAYOUT_IMAGE );
+ mLayoutButton.SetSelectedImage( DEPTH_LAYOUT_IMAGE_SELECTED );
break;
}
checkbox.SetSize( spiralItemSize.width * 0.2f, spiralItemSize.width * 0.2f );
checkbox.SetPosition( -SELECTION_BORDER_WIDTH, SELECTION_BORDER_WIDTH );
checkbox.SetZ( 1.0f );
+ SetCullFace(checkbox, Dali::CullBack);
+ checkbox.SetSortModifier( 150.0f );
if( MODE_REMOVE_MANY != mMode &&
MODE_INSERT_MANY != mMode &&
MODE_REPLACE_MANY != mMode )
tick.SetAnchorPoint( AnchorPoint::TOP_RIGHT );
tick.SetSize( spiralItemSize.width * 0.2f, spiralItemSize.width * 0.2f );
tick.SetZ( 1.0f );
+ tick.SetSortModifier( 150.0f );
tick.SetVisible( false );
+ SetCullFace(tick, Dali::CullBack);
checkbox.Add( tick );
// Connect new items for various editing modes
int main(int argc, char **argv)
{
- Application app = Application::New(&argc, &argv);
+ Application app = Application::New(&argc, &argv, DALI_DEMO_THEME_PATH);
RunTest(app);