<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 Google Inc.

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:id="@+id/action_camera"
            android:icon="@drawable/camera"
            android:title="@string/switch_to_camera"
            android:showAsAction="ifRoom" />
    <item android:id="@+id/action_slideshow"
            android:icon="@drawable/slideshow"
            android:title="@string/slideshow"
            android:showAsAction="never" />
    <item android:id="@+id/action_select"
            android:title="@string/select_item"
            android:showAsAction="never" />
<!--     <item android:id="@+id/action_group_by" -->
<!--             android:title="@string/group_by" -->
<!--             android:showAsAction="never"/> -->
     <item android:id="@+id/action_view_type"
           android:showAsAction="never"
          />
     <item android:id="@+id/action_sync_picasa_albums"
            android:title="@string/sync_picasa_albums"
            android:showAsAction="never"
            android:visible="false" />
</menu>
