#------------------------------------
# Symbol groups
#------------------------------------

item_group,
    name    = 'fitted_geo',
    label   = 'Shapes (projected edges + vertices)',
    desc    = ''
item_group,
    name    = 'geo',
    label   = 'Shapes (projected vertices only)',
    desc    = ''
item_group,
    name    = 'marker',
    label   = 'Markers and text',
    desc    = ''
item_group,
    name    = 'surf',
    label   = 'Surface analysis',
    desc    = ''
item_group,
    name    = 'image',
    label   = 'Images',
    desc    = ''
# NOTE: do not change the name of this group! It must be "wmo" since it is
# used internally!
item_group,
    name    = 'wmo',
    label   = 'WMO symbols',
    desc    = ''

#------------------------------------
# Symbol items
#------------------------------------

# surface analysis

item,
    name    = 'cold_front',
    label   = 'Cold',
    icon    = 'cold_front.svg',
    gr_type    = 'cold_front',
    desc    = '<b>Cold front</b>',
    group   = 'surf',
    json    =  LineString,
    req     =  WS_COLDFRONT

item,
    name    = 'warm_front',
    label   = 'Warm front',
    icon    = 'warm_front.svg',
    gr_type    = 'warm_front',
    desc    = '<b>Warm front</b>',
    group   = 'surf',
    json    =  LineString,
    req     =  WS_WARMFRONT

item,
    name    = 'occluded',
    label   = 'Occluded',
    desc    = 'Occluded front',
    icon    = 'occluded_front.svg',
    gr_type    = 'occluded',
    desc    = '<b>Occluded front</b>',
    group   = 'surf',
    json    =  LineString,
    req     =  WS_OCCLUDED

item,
    name    = 'quasi_stat',
    label   = 'Quasi stationary front',
    label   = 'Quasi stationary front',
    icon    = 'quasi_stationary.svg',
    gr_type    = 'quasi_stat',
    desc    = '<b>Quasi stationary front</b>',
    group   = 'surf',
    json    =  LineString,
    req     =  WS_QUASISTATIONARY

item,
    name    = 'trough',
    label   = 'Trough',
    icon    = 'trough.svg',
    gr_type    = 'trough',
    desc    = '<b>Trough</b>',
    group   = 'surf',
    json    =  LineString,
    req     =  WS_TROUGH

item,
    name    = 'ridge',
    label   = 'Ridge',
    icon    = 'ridge.svg',
    gr_type    = 'ridge',
    desc    = '<b>Ridge</b>',
    group   = 'surf',
    json    =  LineString,
    req     =  WS_RIDGE

item,
    name    = 'convergence_line',
    label   = 'Convergence line',
    icon    = 'convergence_line.svg',
    gr_type    = 'convergence_line',
    desc    = '<b>Convergence line</b>',
    group   = 'surf',
    json    =  LineString,
    req     =  WS_CONVERGENCELINE

item,
    name    = 'instability_line',
    label   = 'Instability line',
    icon    = 'instability_line.svg',
    gr_type    = 'instability_line',
    desc    = '<b>Instability line</b>',
    group   = 'surf',
    json    =  LineString,
    req     =  WS_INSTABILITYLINE

item,
    name    = 'shear_line',
    label   = 'Shear line',
    icon    = 'shear_line.svg',
    gr_type    = 'shear_line',
    desc    = '<b>Shear line</b>',
    group   = 'surf',
    json    =  LineString,
    req     =  WS_SHEARLINE

item,
    name    = 'itcz',
    label   = 'ITCZ (Intertropical Convergence Zone)',
    icon    = 'itcz.svg',
    gr_type    = 'itcz',
    desc    = '<b>ITCZ</b><br>Intertropical Convergence Zone',
    group   = 'surf',
    json    =  LineString,
    req     =  WS_ITCZ

item,
    name    = 'intertropical_discontinuity',
    label   = 'Intertropical discontinuity',
    icon    = 'intertropical_discontinuity.svg',
    gr_type    = 'intertropical_discontinuity',
    desc    = '<b>Intertropical discontinuity</b>',
    group   = 'surf',
    json    =  LineString,
    req     = WS_ITTDISCONTINUITY

item,
    name    = 'tropical_wave',
    label   = 'Tropical wave',
    icon    = 'tropical_wave.svg',
    gr_type    = 'tropical_wave',
    desc    = '<b>Tropical wave</b>',
    group   = 'surf',
    json    =  LineString,
    req     =  WS_TROPICALWAVE

item,
    name    = 'high',
    label   = 'High pressure centre',
    icon    = 'high.svg',
    gr_type    = 'char_image',
    template_colour  = '#0044aa',
    template_char  = 'H',
    desc    = '<b>High pressure centre</b>',
    group   = 'surf',
    json    =  Point,
    req     =  WS_HIGH

item,
    name    = 'low',
    label   = 'Low pressure centre',
    icon    = 'low.svg',
    gr_type    = 'char_image',
    template_colour  = '#d60000',
    template_char  = 'L',
    desc    = '<b>Low pressure centre</b>',
    group   = 'surf',
    json    =  Point,
    req     =  WS_LOW

item,
    name    = 'user_image',
    label   = 'User image',
    icon    = 'image.svg',
    gr_type    = 'image',
    desc    = '<b>User image</b>',
    group   = 'image',
    json    =  Point,
    req     =  WS_IMAGE

item,
    name    = 'hurricane_nh',
    label   = 'Hurricane_nh',
    icon    = 'hurricane_nh.svg',
    gr_type    = 'image',
    template_colour  = '#f00000',
    desc    = '<b>Hurricane NH</b>',
    group   = 'surf',
    json    =  Point,
    req     =  WS_STORM

item,
    name    = 'hurricane_sh',
    label   = 'Hurricane_sh',
    icon    = 'hurricane_sh.svg',
    gr_type    = 'image',
    template_colour  = '#f00000',
    desc    = '<b>Hurricane SH</b>',
    group   = 'surf',
    json    =  Point,
    req     =  WS_STORM

item,
    name    = 'tropical_storm_nh',
    label   = 'Tropical strom nh',
    icon    = 'tropical_storm_nh.svg',
    gr_type    = 'image',
    template_colour  = '#f00000',
    desc    = '<b>Tropical strom NH</b>',
    group   = 'surf',
    json    =  Point,
    req     =  WS_STORM

item,
    name    = 'tropical_storm_sh',
    label   = 'Tropical strom sh',
    icon    = 'tropical_storm_sh.svg',
    gr_type    = 'image',
    template_colour  = '#f00000',
    desc    = '<b>Tropical strom SH</b>',
    group   = 'surf',
    json    =  Point,
    req     =  WS_STORM

item,
    name    = 'wmo_symbol',
    label   = 'WMO symbol',
    icon    = 'wmo_symbol.svg',
    gr_type    = 'wmo',
    desc    = '<b>WMO symbol</b>',
    group   = 'wmo',
    json    =  Point,
    req     =  WS_WMOSYMBOL

# shapes with lat-lon vertices

item,
    name    = 'line',
    label   = 'Line',
    icon    = 'line.svg',
    gr_type    = 'line',
    desc    = '<b>Line</b><br>A straight line in all the projections.',
    group   = 'geo',
    json    =  LineString,
    req     = WS_SHAPE

item,
    name    = 'polyline',
    label   = 'Polyline',
    icon    = 'polyline.svg',
    gr_type    = 'polyline',
    desc    = '<b>Polyline</b><br>Points connected with straight lines in all the projections.',
    group   = 'geo',
    json    =  LineString,
    req     = WS_SHAPE

item,
    name    = 'curve',
    label   = 'Curve',
    icon    = 'curve.svg',
    gr_type    = 'curve',
    desc    = '<b>Curve</b><br>Points connected with a B-Spline curve.',
    group   = 'geo',
    json    =  LineString,
    req     = WS_SHAPE

item,
    name    = 'polygon',
    label   = 'Polygon',
    icon    = 'polyline_area.svg',
    gr_type    = 'polygon',
    desc    = '<b>Polygon</b><br>Points forming a closed shape, connected with straight lines in all the projections.',
    group   = 'geo',
    json    =  Polygon,
    req     =  WS_SHAPE

item,
    name    = 'closed_curve',
    label   = 'Closed curve',
    icon    = 'curve_area.svg',
    gr_type    = 'closed_curve',
    desc    = '<b>Closed curve</b><br>Points forming a closed shape, connected with a B-Spline curve.',
    group   = 'geo',
    json    =  Polygon,
    req     =  WS_SHAPE

item,
    name    = 'rectangle',
    label   = 'Rectangle',
    icon    = 'rectangle_geo.svg',
    gr_type    = 'georect',
    desc    = '<b>Rect</b><br>A rectangle with straight edges. The corner points will be adjusted when the projection changes to preserve the rectangular shape.',
    group   = 'geo',
    json    =  Polygon,
    req     = WS_SHAPE


# shapes with edges sampled in lat-lon

item,
    name    = 'proj_line',
    label   = 'Projected Line',
    icon    = 'line_geo.svg',
    gr_type    = 'geo_line',
    desc    = '<b>Projected line</b><br>A line sampled in lat-lon. The shape changes according to the projection.',
    group   = 'fitted_geo',
    json    =  LineString,
    req     = WS_SHAPE

item,
    name    = 'proj_polyline',
    label   = 'Projected polyline',
    icon    = 'polyline_geo.svg',
    gr_type    = 'geo_polyline',
    desc    = '<b>Projected polyline</b><br>Points connected with edges sampled in lat-lon. The edge shape changes according to the projection.',
    group   = 'fitted_geo',
    json    =  LineString,
    req     = WS_SHAPE

item,
    name    = 'proj_polygon',
    label   = 'Projected polygon',
    icon    = 'polyline_area_geo.svg',
    gr_type    = 'geo_polygon',
    desc    = '<b>Projected polygon</b><br>Points forming a closed shape, with edges sampled in lat-lon. The edge shape changes according to the projection.',
    group   = 'fitted_geo',
    json    =  Polygon,
    req     = WS_SHAPE

item,
    name    = 'proj_quad',
    label   = 'Projected quad',
    icon    = 'quad.svg',
    gr_type    = 'geo_quad',
    desc    = '<b>Projected quad</b><br>A lat-lon rectangle with edges sampled in lat-lon. The shape changes into various <b>quadrilaterals</b> according to the current projection.',
    group   = 'fitted_geo',
    json    =  Polygon,
    req     = WS_SHAPE

# text

item,
    name    = 'text',
    label   = 'Text box',
    icon    = 'text.svg',
    gr_type    = 'text',
    desc    = '<b>Text box</b>',
    group   = 'marker',
    json    =  Point,
    req     = WS_TEXT

# markers - center is in lat/lon, extent is pin pixels

item,
    name    = 'rectangle',
    label   = 'Rectangle',
    icon    = 'rectangle.svg',
    gr_type    = 'rect',
    desc    = '<b>Rectangle</b>',
    group   = 'marker',
    json    =  Point,
    req     = WS_MARKER

item,
    name    = 'ellipse',
    label   = 'Ellipse',
    icon    = 'circle.svg',
    gr_type    = 'ellipse',
    desc    = '<b>Ellipse</b>',
    group   = 'marker',
    json    =  Point,
    req     = WS_MARKER

item,
    name    = 'triangle',
    label   = 'Triangle',
    icon    = 'triangle.svg',
    gr_type    = 'triangle',
    desc    = '<b>Triangle</b>',
    group   = 'marker',
    json    =  Point,
    req     = WS_MARKER

item,
    name    = 'diamond',
    label   = 'Diamond',
    icon    = 'diamond.svg',
    gr_type    = 'diamond',
    desc    = '<b>Diamond</b>',
    group   = 'marker',
    json    =  Point,
    req     = WS_MARKER

item,
    name    = 'star',
    label   = 'Star',
    icon    = 'star.svg',
    gr_type    = 'star',
    desc    = '<b>Star</b>',
    group   = 'marker',
    json    =  Point,
    req     = WS_MARKER

item,
    name    = 'placemark',
    label   = 'Placemark',
    icon    = 'placemarker.svg',
    gr_type    = 'placemark',
    desc    = '<b>Placemark</b>',
    group   = 'marker',
    json    =  Point,
    req     = WS_PLACEMARK

# item request class details

item_menu,
    name    = 'edit',
    shortcut = 'Ctrl+E',
    not_visible_for = 'selector'

item_menu,
    name    = 'flip',
    label   = 'Flip front',
    visible_for   = 'cold_front'/'warm_front'/'occluded'/'quasi_stat'/'ridge'/'convergence_line'

item_menu,
    type    = 'separator'

item_menu,
    name    = 'copy',
    shortcut = 'Ctrl+C'

item_menu,
    name    = 'paste',
    type    = '-',
    shortcut = 'Ctrl+V'

item_menu,
    name    = 'cut',
    shortcut = 'Ctrl+X'

item_menu,
    type    = 'separator'

item_menu,
    name    = 'duplicate',
    shortcut = 'Ctrl+D'

item_menu,
    name    = 'delete',
    shortcut = 'Backspace'

item_menu,
    type    = 'separator'

item_menu,
    name    = 'to_front',
    label   = 'Bring to front',
    type    = 'sub',
    not_visible_for = 'selector'

item_menu,
    name    = 'to_front',
    label   = 'Bring to front',
    parent  = 'to_front',
    not_visible_for = 'selector'

item_menu,
    name    = 'to_forward',
    label   = 'Bring forward',
    parent  = 'to_front',
    not_visible_for = 'selector'

item_menu,
    name    = 'to_back',
    label   = 'Send to back',
    type    = 'sub',
    not_visible_for = 'selector'

item_menu,
    name    = 'to_back',
    label    = 'Send to back',
    parent  = 'to_back',
    not_visible_for = 'selector'

item_menu,
    name    = 'to_backward',
    label    = 'Send backward',
    parent  = 'to_back',
    not_visible_for = 'selector'

item_menu,
    name        = 'front_type',
    label       = 'Front type',
    type        = 'sub',
    visible_for = 'cold_front'/'warm_front'/'occluded'/'quasi_stat'

item_menu,
    name        = 'surface',
    name        = 'Surface',
    parent      = 'front_type',
    visible_for = 'cold_front'/'warm_front'/'occluded'/'quasi_stat'

item_menu,
    name        = 'upper',
    name        = 'Upper',
    parent      = 'front_type',
    visible_for = 'cold_front'/'warm_front'/'occluded'/'quasi_stat'

item_menu,
    name        = 'frontogenesis',
    name        = 'Frontogenesis',
    parent      = 'front_type',
    visible_for = 'cold_front'/'warm_front'/'occluded'/'quasi_stat'

item_menu,
    name        = 'frontolysis',
    name        = 'Frontolysis',
    parent      = 'front_type',
    visible_for = 'cold_front'/'warm_front'/'occluded'/'quasi_stat'

item_menu,
    type    = 'separator'

item_menu,
    name    = 'save_user',
    label   = 'Save to user library ...',
    not_visible_for = 'selector'

item_menu,
    name    = 'save_disc',
    label   = 'Save to disk ...',
    not_visible_for = 'selector'

item_menu,
    name    = 'save_scene',
    label   = 'Save scene to disk ...',
    type    = '-'

node_menu,
    name    = 'add_before',
    label   = 'Add point before'

node_menu,
    name    = 'add_after',
    label   = 'Add point after'

node_menu,
    name    = 'delete',
    label   = 'Delete point'
