14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara/*
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara * anchor-selector.h
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara *
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara * Created on: Mar 22, 2012
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara * Author: denis
85df1a870a50656eeaff3f7460d73d34d570f50dDenis Declara *
85df1a870a50656eeaff3f7460d73d34d570f50dDenis Declara * Released under GNU GPL. Read the file 'COPYING' for more information.
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara */
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara#ifndef ANCHOR_SELECTOR_H_
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara#define ANCHOR_SELECTOR_H_
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis#if HAVE_CONFIG_H
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis #include "config.h"
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis#endif
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis#include <gtkmm/alignment.h>
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis#include <gtkmm/togglebutton.h>
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis#if WITH_GTKMM_3_0
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis #include <gtkmm/grid.h>
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis#else
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis #include <gtkmm/table.h>
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis#endif
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declaranamespace Inkscape {
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declaranamespace UI {
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declaranamespace Widget {
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declaraclass AnchorSelector : public Gtk::Alignment
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara{
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declaraprivate:
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara Gtk::ToggleButton _buttons[9];
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara int _selection;
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis#if WITH_GTKMM_3_0
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis Gtk::Grid _container;
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis#else
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara Gtk::Table _container;
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis#endif
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara
85df1a870a50656eeaff3f7460d73d34d570f50dDenis Declara sigc::signal<void> _selectionChanged;
85df1a870a50656eeaff3f7460d73d34d570f50dDenis Declara
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara void setupButton(const Glib::ustring &icon, Gtk::ToggleButton &button);
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara void btn_activated(int index);
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declarapublic:
85df1a870a50656eeaff3f7460d73d34d570f50dDenis Declara
85df1a870a50656eeaff3f7460d73d34d570f50dDenis Declara int getHorizontalAlignment() { return _selection % 3; }
85df1a870a50656eeaff3f7460d73d34d570f50dDenis Declara int getVerticalAlignment() { return _selection / 3; }
85df1a870a50656eeaff3f7460d73d34d570f50dDenis Declara
85df1a870a50656eeaff3f7460d73d34d570f50dDenis Declara sigc::signal<void> &on_selectionChanged() { return _selectionChanged; }
85df1a870a50656eeaff3f7460d73d34d570f50dDenis Declara
0d5932965166e3b1811463c4ce41a9a0e4991ed9Denis Declara void setAlignment(int horizontal, int vertical);
0d5932965166e3b1811463c4ce41a9a0e4991ed9Denis Declara
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara AnchorSelector();
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara virtual ~AnchorSelector();
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara};
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara} // namespace Widget
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara} // namespace UI
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara} // namespace Inkscape
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara
14bf2cce24b9f1d3cc717afbdf36e91beccb68bbDenis Declara#endif /* ANCHOR_SELECTOR_H_ */
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara/*
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara Local Variables:
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara mode:c++
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara c-file-style:"stroustrup"
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara c-file-offsets:((innamespace . 0)(inline-open . 0))
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara indent-tabs-mode:nil
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara fill-column:99
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara End:
848cff6f9f842c42b73745e89bc4295427dc6508Denis Declara*/
6f179df1c12bda8e841487b2b407ecd95249a409Alex Valavanis// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :