panel.h revision bfe93998b013f06355195d9088c587340a322e60
/*
* Authors:
* Bryce Harrington <bryce@bryceharrington.org>
* Jon A. Cruz <jon@joncruz.org>
*
* Copyright (C) 2004 Bryce Harrington
* Copyright (C) 2005 Jon A. Cruz
* Copyright (C) 2012 Kris De Gussem
*
* Released under GNU GPL. Read the file 'COPYING' for more information.
*/
#ifndef SEEN_INKSCAPE_UI_WIDGET_PANEL_H
#define SEEN_INKSCAPE_UI_WIDGET_PANEL_H
#include <gtkmm/eventbox.h>
#include "enums.h"
#include <vector>
#include <map>
}
struct Application;
/**
* A generic dockable container.
*
* Inkscape::UI::Widget::Panel is a base class from which dockable dialogs
* are created. A new dockable dialog is created by deriving a class from panel.
* Child widgets are private data members of Panel (no need to use pointers and
* new).
*
* @see UI::Dialog::DesktopTracker to handle desktop change, selection change and selected object modifications.
* @see UI::Dialog::DialogManager manages the dialogs within inkscape.
*/
static void prep();
/**
* Construct a Panel.
*
* @param label label for the panel of a dialog, shown at the top.
* @param verb_num the dialog verb.
*/
bool menu_desired = false);
gchar const *getPrefsPath() const;
/**
* Sets a label for the panel and displays it in the panel at the top (is not the title bar of a floating dialog).
*/
int const &getVerb() const;
void restorePanelPrefs();
/* Signal accessors */
/* Methods providing a Gtk::Dialog like interface for adding buttons that emit Gtk::RESPONSE
* signals on click. */
Gtk::Button* addResponseButton (const Glib::ustring &button_text, int response_id, bool pack_start=false);
Gtk::Button* addResponseButton (const Gtk::StockID &stock_id, int response_id, bool pack_start=false);
void setDefaultResponse(int response_id);
/**
* Returns a pointer to a Gtk::Box containing the child widgets.
*/
/* Helper methods */
/**
*/
bool _menu_desired;
/* Signals */
void _init();
void _bounceCall(int i, int j);
int _verb_num;
/* A map to store which widget that emits a certain response signal */
};
} // namespace Widget
} // namespace UI
} // namespace Inkscape
#endif // SEEN_INKSCAPE_UI_WIDGET_PANEL_H
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :