<?xml version="1.0" encoding="utf-8"?>

<!--
   Copyright 2018 Google LLC

   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">
    <group android:id="@+id/menu_painting"
        android:checkableBehavior="single">
        <item
            android:id="@+id/smooth_paint"
            android:checkable="true"
            android:checked="true"
            android:title="@string/menu_painting_smooth" />
    </group>

    <group android:id="@+id/menu_drawables">
        <item
            android:id="@+id/draw_circle"
            android:checked="true"
            android:checkable="true"
            android:title="@string/menu_drawable_circle" >
        </item>
        <item
            android:id="@+id/draw_rect"
            android:title="@string/menu_drawable_rect" >
        </item>
        <item
            android:id="@+id/draw_text"
            android:title="@string/menu_drawable_text" >
        </item>
        <item
            android:id="@+id/draw_animation"
            android:title="@string/menu_drawable_animation" >
        </item>
    </group>
</menu>