interface.h revision 3c7dca377ccc0f0c3c1ba98dbe6bd429cf0f3c61
1494N/A#ifndef SEEN_SP_INTERFACE_H
1607N/A#define SEEN_SP_INTERFACE_H
1494N/A
1494N/A/*
1494N/A * Main UI stuff
1494N/A *
1494N/A * Authors:
1494N/A * Lauris Kaplinski <lauris@kaplinski.com>
1494N/A * Frank Felfe <innerspace@iname.com>
1494N/A * Abhishek Sharma
1494N/A * Kris De Gussem <Kris.DeGussem@gmail.com>
1494N/A *
1494N/A * Copyright (C) 2012 Kris De Gussem
1494N/A * Copyright (C) 1999-2002 authors
1494N/A * Copyright (C) 2001-2002 Ximian, Inc.
1494N/A *
1494N/A * Released under GNU GPL, read the file 'COPYING' for more information
1494N/A */
1494N/A
1494N/A#include <gtkmm/menu.h>
1494N/A
1494N/Aclass SPItem;
1494N/Aclass SPObject;
1494N/Aclass SPDesktop;
1494N/Aclass SPViewWidget;
1494N/A
1494N/Anamespace Gtk {
1494N/Aclass SeparatorMenuItem;
1494N/A}
1494N/A
1494N/Anamespace Inkscape {
1494N/A
1494N/Aclass Verb;
1500N/A
1494N/Anamespace UI {
1494N/Anamespace View {
1494N/Aclass View;
1494N/A} // namespace View
1494N/A} // namespace UI
1494N/A} // namespace Inkscape
1494N/A
1494N/A/**
1494N/A * Create a new document window.
1611N/A */
1611N/Avoid sp_create_window (SPViewWidget *vw, gboolean editable);
1494N/A
1637N/A/**
1637N/A * \param widget unused
1637N/A */
1637N/Avoid sp_ui_close_view (GtkWidget *widget);
1637N/A
1637N/Avoid sp_ui_new_view (void);
1611N/A
1611N/A/**
1611N/A * @todo TODO: not yet working. To be re-enabled (by adding to menu) once it works.
1500N/A */
1494N/Avoid sp_ui_new_view_preview (void);
1607N/A
1494N/A/**
1494N/A * This function is called to exit the program, and iterates through all
1494N/A * open document view windows, attempting to close each in turn. If the
1494N/A * view has unsaved information, the user will be prompted to save,
1494N/A * discard, or cancel.
1494N/A *
1494N/A * Returns FALSE if the user cancels the close_all operation, TRUE
1494N/A * otherwise.
1494N/A */
1494N/Aunsigned int sp_ui_close_all (void);
1494N/A
1494N/A/**
1494N/A * Build the main tool bar.
1494N/A *
1494N/A * Currently the main tool bar is built as a dynamic XML menu using
1494N/A * \c sp_ui_build_dyn_menus. This function builds the bar, and then
1494N/A * pass it to get items attached to it.
1494N/A *
1494N/A * @param view View to build the bar for
1494N/A */
1494N/AGtkWidget *sp_ui_main_menubar (Inkscape::UI::View::View *view);
1494N/A
1494N/Avoid sp_menu_append_recent_documents (GtkWidget *menu);
1494N/Avoid sp_ui_dialog_title_string (Inkscape::Verb * verb, gchar* c);
1494N/A
1494N/AGlib::ustring getLayoutPrefPath( Inkscape::UI::View::View *view );
1494N/A
1494N/A/**
1494N/A *
1494N/A */
1494N/Avoid sp_ui_error_dialog (const gchar * message);
1494N/Abool sp_ui_overwrite_file (const gchar * filename);
1494N/A
1494N/A
1494N/A/**
1496N/A * Implements the Inkscape context menu.
1496N/A *
1494N/A * For the context menu implementation, the ContextMenu class stores the object
1494N/A * that was selected in a private data member. This should be farely safe to do
1494N/A * and a pointer to the SPItem as well as SPObject class are kept.
1494N/A * All callbacks of the context menu entries are implemented as private
1494N/A * functions.
1494N/A *
1494N/A * @todo add callbacks to destroy the context menu when it is closed (=key or mouse button pressed out of the scope of the context menu)
1494N/A */
1494N/Aclass ContextMenu : public Gtk::Menu
1494N/A{
1494N/A public:
1494N/A /**
1494N/A * The ContextMenu constructor contains all code to create and show the
1494N/A * menu entries (aka child widgets).
1494N/A *
* @param desktop pointer to the desktop the user is currently working on.
* @param item SPItem pointer to the object selected at the time the ContextMenu is created.
*/
ContextMenu(SPDesktop *desktop, SPItem *item);
~ContextMenu(void);
private:
SPItem *_item; // pointer to the object selected at the time the ContextMenu is created
SPObject *_object; // pointer to the object selected at the time the ContextMenu is created
SPDesktop *_desktop; //pointer to the desktop the user was currently working on at the time the ContextMenu is created
int positionOfLastDialog;
Gtk::MenuItem MIGroup; //menu entry to enter a group
Gtk::MenuItem MIParent; //menu entry to leave a group
/**
* auxiliary function that adds a separator line in the context menu
*/
Gtk::SeparatorMenuItem* AddSeparator(void);
/**
* c++ified version of sp_ui_menu_append_item.
*
* @see sp_ui_menu_append_item_from_verb and synchronize/drop that function when c++ifying other code in interface.cpp
*/
void AppendItemFromVerb(Inkscape::Verb *verb);
/**
* main function which is responsible for creating the context sensitive menu items,
* calls subfunctions below to create the menu entry widgets.
*/
void MakeObjectMenu (void);
/**
* creates menu entries for an SP_TYPE_ITEM object
*/
void MakeItemMenu (void);
/**
* creates menu entries for a grouped object
*/
void MakeGroupMenu (void);
/**
* creates menu entries for an anchor object
*/
void MakeAnchorMenu (void);
/**
* creates menu entries for a bitmap image object
*/
void MakeImageMenu (void);
/**
* creates menu entries for a shape object
*/
void MakeShapeMenu (void);
/**
* creates menu entries for a text object
*/
void MakeTextMenu (void);
void EnterGroup(Gtk::MenuItem* mi);
void LeaveGroup(void);
//////////////////////////////////////////
//callbacks for the context menu entries of an SP_TYPE_ITEM object
void ItemProperties(void);
void ItemSelectThis(void);
void ItemMoveTo(void);
void SelectSameFillStroke(void);
void SelectSameFillColor(void);
void SelectSameStrokeColor(void);
void SelectSameStrokeStyle(void);
void SelectSameObjectType(void);
void ItemCreateLink(void);
void SetMask(void);
void ReleaseMask(void);
void SetClip(void);
void ReleaseClip(void);
//////////////////////////////////////////
/**
* callback, is executed on clicking the anchor "Group" and "Ungroup" menu entry
*/
void ActivateUngroup(void);
void ActivateGroup(void);
void AnchorLinkProperties(void);
/**
* placeholder for callback to be executed on clicking the anchor "Follow link" context menu entry
* @todo add code to follow link externally
*/
void AnchorLinkFollow(void);
/**
* callback, is executed on clicking the anchor "Link remove" menu entry
*/
void AnchorLinkRemove(void);
/**
* callback, opens the image properties dialog and is executed on clicking the context menu entry with similar name
*/
void ImageProperties(void);
/**
* callback, is executed on clicking the image "Edit Externally" menu entry
*/
void ImageEdit(void);
/**
* auxiliary function that loads the external image editor name from the settings.
*/
Glib::ustring getImageEditorName();
/**
* callback, is executed on clicking the "Embed Image" menu entry
*/
void ImageEmbed(void);
/**
* callback, is executed on clicking the "Trace Bitmap" menu entry
*/
void ImageTraceBitmap(void);
/**
* callback, is executed on clicking the "Extract Image" menu entry
*/
void ImageExtract(void);
/**
* callback, is executed on clicking the "Fill and Stroke" menu entry
*/
void FillSettings(void);
/**
* callback, is executed on clicking the "Text and Font" menu entry
*/
void TextSettings(void);
/**
* callback, is executed on clicking the "Check spelling" menu entry
*/
void SpellcheckSettings(void);
};
#endif // SEEN_SP_INTERFACE_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 :