text: # ##### BEGIN GPL LICENSE BLOCK #####
  #
  #  This program is free software; you can redistribute it and/or
  #  modify it under the terms of the GNU General Public License
  #  as published by the Free Software Foundation; either version 2
  #  of the License, or (at your option) any later version.
  #
  #  This program is distributed in the hope that it will be useful,
  #  but WITHOUT ANY WARRANTY; without even the implied warranty of
  #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  #  GNU General Public License for more details.
  #
  #  You should have received a copy of the GNU General Public License
  #  along with this program; if not, write to the Free Software Foundation,
  #  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  #
  # ##### END GPL LICENSE BLOCK #####
  
  # <pep8 compliant>
  from bpy.types import Panel
  
  
  class ShaderFxButtonsPanel:
      bl_space_type = 'PROPERTIES'
      bl_region_type = 'WINDOW'
      bl_context = "shaderfx"
  
  
  class DATA_PT_shader_fx(ShaderFxButtonsPanel, Panel):
      bl_label = "Effects"
      bl_options = {'HIDE_HEADER'}
  
      # Unused: always show for now.
  
      # @classmethod
      # def poll(cls, context):
      #     ob = context.object
      #     return ob and ob.type == 'GPENCIL'
  
      def draw(self, _context):
          layout = self.layout
          layout.operator_menu_enum("object.shaderfx_add", "type")
          layout.template_shaderfx()
  
  
  classes = (
      DATA_PT_shader_fx,
  )
  
  if __name__ == "__main__":  # only for live edit.
      from bpy.utils import register_class
      for cls in classes:
          register_class(cls)
  