]> www.fi.muni.cz Git - evince.git/blobdiff - libdocument/ev-selection.h
[windows] Fix localization on Windows
[evince.git] / libdocument / ev-selection.h
index 5ba9776d734d1f4f249bd347ead007085f713f8b..19b61bb5e1ed31c8ca0ec75692a21b23137373c7 100644 (file)
  *
  *  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 <evince-document.h> can be included directly."
+#endif
+
 #ifndef EV_SELECTION_H
 #define EV_SELECTION_H
 
 #include <glib-object.h>
 #include <glib.h>
-#include <gdk/gdkpixbuf.h>
 #include <gdk/gdk.h>
 #include "ev-document.h"
 
@@ -31,15 +34,21 @@ 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;
 
@@ -48,12 +57,18 @@ struct _EvSelectionIface
                                              cairo_surface_t **surface,
                                              EvRectangle      *points,
                                              EvRectangle      *old_points,
-                                             GdkColor        *text,
-                                             GdkColor        *base);
+                                             EvSelectionStyle  style,
+                                             GdkColor         *text,
+                                             GdkColor         *base);
+       gchar     * (* get_selected_text)    (EvSelection      *selection,
+                                             EvPage           *page,
+                                             EvSelectionStyle  style,
+                                             EvRectangle      *points);
        GdkRegion * (* get_selection_map)    (EvSelection      *selection,
-                                             EvRenderContext  *rc);
+                                             EvPage           *page);
        GdkRegion * (* get_selection_region) (EvSelection      *selection,
                                              EvRenderContext  *rc,
+                                             EvSelectionStyle  style,
                                              EvRectangle      *points);
 };
 
@@ -63,12 +78,18 @@ void       ev_selection_render_selection     (EvSelection      *selection,
                                              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);
 GdkRegion *ev_selection_get_selection_map    (EvSelection      *selection,
-                                             EvRenderContext  *rc);
+                                             EvPage           *page);
 GdkRegion *ev_selection_get_selection_region (EvSelection      *selection,
                                              EvRenderContext  *rc,
+                                             EvSelectionStyle  style,
                                              EvRectangle      *points);
                                  
 G_END_DECLS