/* styleschemechooser.h
 *
 * Copyright (C) 2015 Christoph Brill
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Library General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library 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
 * Library General Public License for more details.
 *
 * You should have received a copy of the GNU Library General Public
 * License along with this library; if not, write to the Free
 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */

#include <gtksourceviewmm/stylescheme.h>

_DEFS(gtksourceviewmm,gtksourceview)
_PINCLUDE(glibmm/private/object_p.h)

namespace Gsv
{

/** GtkSourceStyleSchemeChooser is an interface that is implemented by widgets for choosing style schemes.
 *
 * In GtkSourceView, the main widgets that implement this interface are GtkSourceStyleSchemeChooserWidget and
 * GtkSourceStyleSchemeChooserButton.
 *
 * @newin{3,16}
 */
class StyleSchemeChooser : public Glib::Object
{
  _CLASS_GOBJECT(StyleSchemeChooser, GtkSourceStyleSchemeChooser, GTK_SOURCE_STYLE_SCHEME_CHOOSER, Glib::Object, GObject)

public:

  /** Gets the currently-selected scheme.
   *
   * @return the currently-selected scheme.
   *
   * @newin{3,16}
   */
  _WRAP_METHOD(Glib::RefPtr<StyleScheme> get_style_scheme(), gtk_source_style_scheme_chooser_get_style_scheme, refreturn)
  _WRAP_METHOD(Glib::RefPtr<const StyleScheme> get_style_scheme() const, gtk_source_style_scheme_chooser_get_style_scheme, refreturn, constversion)

  /** Sets the scheme.
   *
   * @param scheme a GtkSourceStyleScheme
   *
   * @newin{3,16}
   */
  _WRAP_METHOD(void set_style_scheme(const Glib::RefPtr<StyleScheme>& scheme), gtk_source_style_scheme_chooser_set_style_scheme)

  _WRAP_PROPERTY("style-scheme", Glib::RefPtr<StyleScheme>)

};

} /* namespace Gsv */
