1 |
/* -*- c++ -*- |
/* -*- c++ -*- |
2 |
* Copyright (C) 2006, 2007 Andreas Persson |
* Copyright (C) 2006 - 2017 Andreas Persson |
3 |
* |
* |
4 |
* This program is free software; you can redistribute it and/or |
* This program is free software; you can redistribute it and/or |
5 |
* modify it under the terms of the GNU General Public License as |
* modify it under the terms of the GNU General Public License as |
20 |
#ifndef GIGEDIT_DIMENSIONMANAGER_H |
#ifndef GIGEDIT_DIMENSIONMANAGER_H |
21 |
#define GIGEDIT_DIMENSIONMANAGER_H |
#define GIGEDIT_DIMENSIONMANAGER_H |
22 |
|
|
23 |
|
#include "compat.h" |
24 |
#include <glibmm/property.h> |
#include <glibmm/property.h> |
25 |
#include <gtkmm/box.h> |
#include <gtkmm/box.h> |
26 |
#include <gtkmm/window.h> |
#include <gtkmm/window.h> |
32 |
#include <gtkmm/scrolledwindow.h> |
#include <gtkmm/scrolledwindow.h> |
33 |
#include <gtkmm/checkbutton.h> |
#include <gtkmm/checkbutton.h> |
34 |
|
|
35 |
#include <gig.h> |
#ifdef LIBGIG_HEADER_FILE |
36 |
|
# include LIBGIG_HEADER_FILE(gig.h) |
37 |
|
#else |
38 |
|
# include <gig.h> |
39 |
|
#endif |
40 |
|
|
41 |
#include <set> |
#include <set> |
42 |
|
#include "ManagedWindow.h" |
43 |
|
|
44 |
class DimTypeCellRenderer : public Gtk::CellRendererText { |
class DimTypeCellRenderer : public Gtk::CellRendererText { |
45 |
public: |
public: |
78 |
Glib::Property<std::set<int> > m_propertyValue; |
Glib::Property<std::set<int> > m_propertyValue; |
79 |
}; |
}; |
80 |
|
|
81 |
class DimensionManager : public Gtk::Window { |
class DimensionManager : public ManagedWindow { |
82 |
public: |
public: |
83 |
sigc::signal<void, gig::Region*> region_to_be_changed_signal; |
sigc::signal<void, gig::Region*> region_to_be_changed_signal; |
84 |
sigc::signal<void, gig::Region*> region_changed_signal; |
sigc::signal<void, gig::Region*> region_changed_signal; |
86 |
DimensionManager(); |
DimensionManager(); |
87 |
void show(gig::Region* region); |
void show(gig::Region* region); |
88 |
void set_region(gig::Region* region); |
void set_region(gig::Region* region); |
89 |
|
|
90 |
|
// implementation for abstract methods of interface class "ManagedWindow" |
91 |
|
virtual Settings::Property<int>* windowSettingX() { return &Settings::singleton()->dimensionManagerWindowX; } |
92 |
|
virtual Settings::Property<int>* windowSettingY() { return &Settings::singleton()->dimensionManagerWindowY; } |
93 |
|
virtual Settings::Property<int>* windowSettingWidth() { return &Settings::singleton()->dimensionManagerWindowW; } |
94 |
|
virtual Settings::Property<int>* windowSettingHeight() { return &Settings::singleton()->dimensionManagerWindowH; } |
95 |
|
|
96 |
protected: |
protected: |
97 |
gig::Region* region; |
gig::Region* region; |
98 |
Gtk::VBox vbox; |
VBox vbox; |
99 |
Gtk::HButtonBox buttonBox; |
HButtonBox buttonBox; |
100 |
Gtk::ScrolledWindow scrolledWindow; |
Gtk::ScrolledWindow scrolledWindow; |
101 |
Gtk::TreeView treeView; |
Gtk::TreeView treeView; |
102 |
Gtk::Button addButton; |
Gtk::Button addButton; |