X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=libdocument%2Fev-selection.h;h=dff12e0a40235472384a79cfeb43f0859d5f128f;hb=2dd348d6fe62d96589c81379bbd01314d6442dc0;hp=5ba9776d734d1f4f249bd347ead007085f713f8b;hpb=217797d63b2d3b1c9a7a0511af1bbf3d99f0d482;p=evince.git diff --git a/libdocument/ev-selection.h b/libdocument/ev-selection.h index 5ba9776d..dff12e0a 100644 --- a/libdocument/ev-selection.h +++ b/libdocument/ev-selection.h @@ -14,16 +14,19 @@ * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ +#if !defined (__EV_EVINCE_DOCUMENT_H_INSIDE__) && !defined (EVINCE_COMPILATION) +#error "Only can be included directly." +#endif + #ifndef EV_SELECTION_H #define EV_SELECTION_H #include #include -#include #include #include "ev-document.h" @@ -31,46 +34,60 @@ G_BEGIN_DECLS #define EV_TYPE_SELECTION (ev_selection_get_type ()) #define EV_SELECTION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), EV_TYPE_SELECTION, EvSelection)) -#define EV_SELECTION_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_SELECTION, EvSelectionIface)) +#define EV_SELECTION_IFACE(k) (G_TYPE_CHECK_CLASS_CAST((k), EV_TYPE_SELECTION, EvSelectionInterface)) #define EV_IS_SELECTION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), EV_TYPE_SELECTION)) #define EV_IS_SELECTION_IFACE(k) (G_TYPE_CHECK_CLASS_TYPE ((k), EV_TYPE_SELECTION)) -#define EV_SELECTION_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_SELECTION, EvSelectionIface)) +#define EV_SELECTION_GET_IFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), EV_TYPE_SELECTION, EvSelectionInterface)) -typedef struct _EvSelection EvSelection; -typedef struct _EvSelectionIface EvSelectionIface; +typedef enum { + EV_SELECTION_STYLE_GLYPH, + EV_SELECTION_STYLE_WORD, + EV_SELECTION_STYLE_LINE +} EvSelectionStyle; -struct _EvSelectionIface +typedef struct _EvSelection EvSelection; +typedef struct _EvSelectionInterface EvSelectionInterface; + +struct _EvSelectionInterface { GTypeInterface base_iface; - void (* render_selection) (EvSelection *selection, - EvRenderContext *rc, - cairo_surface_t **surface, - EvRectangle *points, - EvRectangle *old_points, - GdkColor *text, - GdkColor *base); - GdkRegion * (* get_selection_map) (EvSelection *selection, - EvRenderContext *rc); - GdkRegion * (* get_selection_region) (EvSelection *selection, - EvRenderContext *rc, - EvRectangle *points); + void (* render_selection) (EvSelection *selection, + EvRenderContext *rc, + cairo_surface_t **surface, + EvRectangle *points, + EvRectangle *old_points, + EvSelectionStyle style, + GdkColor *text, + GdkColor *base); + gchar * (* get_selected_text) (EvSelection *selection, + EvPage *page, + EvSelectionStyle style, + EvRectangle *points); + cairo_region_t * (* get_selection_region) (EvSelection *selection, + EvRenderContext *rc, + EvSelectionStyle style, + EvRectangle *points); }; -GType ev_selection_get_type (void); -void ev_selection_render_selection (EvSelection *selection, - EvRenderContext *rc, - cairo_surface_t **surface, - EvRectangle *points, - EvRectangle *old_points, - GdkColor *text, - GdkColor *base); -GdkRegion *ev_selection_get_selection_map (EvSelection *selection, - EvRenderContext *rc); -GdkRegion *ev_selection_get_selection_region (EvSelection *selection, - EvRenderContext *rc, - EvRectangle *points); - +GType ev_selection_get_type (void) G_GNUC_CONST; +void ev_selection_render_selection (EvSelection *selection, + EvRenderContext *rc, + cairo_surface_t **surface, + EvRectangle *points, + EvRectangle *old_points, + EvSelectionStyle style, + GdkColor *text, + GdkColor *base); +gchar *ev_selection_get_selected_text (EvSelection *selection, + EvPage *page, + EvSelectionStyle style, + EvRectangle *points); +cairo_region_t *ev_selection_get_selection_region (EvSelection *selection, + EvRenderContext *rc, + EvSelectionStyle style, + EvRectangle *points); + G_END_DECLS #endif