text-edit.h revision 1b3a8414f17dc95fc921d999ea715c99d10dd4aa
/** @file
* @brief Text-edit
*/
/* Authors:
* Lauris Kaplinski <lauris@ximian.com>
* bulia byak <buliabyak@users.sf.net>
* Johan Engelen <goejendaagh@zonnet.nl>
* John Smith
* Kris De Gussem <Kris.DeGussem@gmail.com>
*
* Copyright (C) 1999-2012 Authors
* Copyright (C) 2000-2001 Ximian, Inc.
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#ifndef INKSCAPE_UI_DIALOG_TEXT_EDIT_H
#define INKSCAPE_UI_DIALOG_TEXT_EDIT_H
#include <gtkmm/notebook.h>
#include <gtkmm/radiobutton.h>
#include <gtkmm/scrolledwindow.h>
#include <gtkmm/separator.h>
#include "ui/dialog/desktop-tracker.h"
#define VB_MARGIN 4
/**
* The TextEdit class defines the Text and font dialog.
*
* The Text and font dialog allows you to set the font family, style and size
* and shows a preview of the result. The dialogs layout settings include
* horizontal and vertical alignment and inter line distance.
*/
TextEdit();
/**
* Helper function which returns a new instance of the dialog.
* getInstance is needed by the dialog manager (Inkscape::UI::Dialog::DialogManager).
*/
/**
* Callback for pressing the default button.
*/
void onSetDefault ();
/**
* Callback for pressing the apply button.
*/
void onApply ();
void onSelectionChange ();
/**
* Called whenever something 'changes' on canvas.
*
* onReadSelection gets the currently selected item from the canvas and sets all the controls in this dialog to the correct state.
*
* @param dostyle Indicates whether the modification of the user includes a style change.
* @param content Indicates whether the modification of the user includes a style change. Actually refers to the question if we do want to show the content? (Parameter currently not used)
*/
void onToggle ();
/**
* Callback invoked when the user modifies the text of the selected text object.
*
* onTextChange is responsible for initiating the commands after the user
* modified the text in the selected object. The UI of the dialog is
* updated. The subfunction setPreviewText updates the preview label.
*
* @param text_buffer pointer to GtkTextBuffer with the text of the selected text object
* @param self pointer to the current instance of the dialog.
*/
/**
* Callback invoked when the user modifies the font through the dialog or the tools control bar.
*
* onFontChange updates the dialog UI. The subfunction setPreviewText updates the preview label.
*
* @param fontsel pointer to SPFontSelector (currently not used).
* @param font pointer to the font instance for the text to be previewed
* @param self pointer to the current instance of the dialog.
*/
/**
* Get the selected text off the main canvas.
*
* @return SPItem pointer to the selected text object
*/
SPItem *getSelectedTextItem (void);
/**
* Count the number of text objects in the selection on the canvas.
*/
unsigned getSelectedTextCount (void);
/**
* Helper function to create markup from a font definition and display in the preview label.
*
* @param font pointer to the font instance for the text to be previewed
* @param phrase text to be shown
*/
SPCSSAttr *getTextStyle ();
/**
* Helper function to style radio buttons with icons, tooltips.
*
* styleButton is used when creating the dialog.
*
* @param button pointer to the button which is created
* @param tooltip pointer to its tooltip string
* @param iconname string identifying the icon to be shown
* @param group_button group to which the radio button belongs to
*/
void styleButton(Gtk::RadioButton *button, gchar const *tooltip, gchar const *iconname, Gtk::RadioButton *group_button );
/**
* Can be invoked for setting the desktop. Currently not used.
*/
/**
* Is invoked by the desktop tracker when the desktop changes.
*
* @see DesktopTracker
*/
/*
* All the dialogs widgets
*/
GtkWidget *text_view; // TODO - Convert this to a Gtk::TextView, but GtkSpell doesn't seem to work with it
bool blocked;
};
} //namespace Dialog
} //namespace UI
} //namespace Inkscape
#endif // INKSCAPE_UI_DIALOG_TEXT_EDIT_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 :