• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

abiwidget.h

Go to the documentation of this file.
00001 /* The AbiWord Widget
00002  *
00003  * Copyright (C) 2001 AbiSource, Inc.
00004  * Copyright (C) 2001,2002 Dom Lachowicz <cinamod@hotmail.com>
00005  * Copyright (C) 2002 Martin Sevior <msevior@physics.unimelb.edu.au>
00006  * Copyright (C) 2007 One Laptop Per Child
00007  *
00008  * This program is free software; you can redistribute it and/or
00009  * modify it under the terms of the GNU General Public License
00010  * as published by the Free Software Foundation; either version 2
00011  * of the License, or (at your option) any later version.
00012  *
00013  * This program is distributed in the hope that it will be useful,
00014  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  * GNU General Public License for more details.
00017  *
00018  * You should have received a copy of the GNU General Public License
00019  * along with this program; if not, write to the Free Software
00020  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
00021  * 02110-1301 USA.
00022  */
00023 #ifndef ABI_WIDGET_H
00024 #define ABI_WIDGET_H
00025 
00026 #include "ut_compiler.h"
00027 ABI_W_NO_CONST_QUAL
00028 #include <gtk/gtk.h>
00029 ABI_W_POP
00030 #include <gsf/gsf-input.h>
00031 #include <gsf/gsf-output.h>
00032 
00033 G_BEGIN_DECLS
00034 
00035 /**************************************************************************/
00036 /**************************************************************************/
00037 
00038 // needed for our custom gclosure marchallers
00039 #include        <glib-object.h>
00040 
00041 #ifdef G_ENABLE_DEBUG
00042 #define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
00043 #define g_marshal_value_peek_char(v)     g_value_get_char (v)
00044 #define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
00045 #define g_marshal_value_peek_int(v)      g_value_get_int (v)
00046 #define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
00047 #define g_marshal_value_peek_long(v)     g_value_get_long (v)
00048 #define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
00049 #define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
00050 #define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
00051 #define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
00052 #define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
00053 #define g_marshal_value_peek_float(v)    g_value_get_float (v)
00054 #define g_marshal_value_peek_double(v)   g_value_get_double (v)
00055 #define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
00056 #define g_marshal_value_peek_param(v)    g_value_get_param (v)
00057 #define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
00058 #define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
00059 #define g_marshal_value_peek_object(v)   g_value_get_object (v)
00060 #else /* !G_ENABLE_DEBUG */
00061 /* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
00062  *          Do not access GValues directly in your code. Instead, use the
00063  *          g_value_get_*() functions
00064  */
00065 #define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
00066 #define g_marshal_value_peek_char(v)     (v)->data[0].v_int
00067 #define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
00068 #define g_marshal_value_peek_int(v)      (v)->data[0].v_int
00069 #define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
00070 #define g_marshal_value_peek_long(v)     (v)->data[0].v_long
00071 #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
00072 #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
00073 #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
00074 #define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
00075 #define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
00076 #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
00077 #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
00078 #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
00079 #define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
00080 #define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
00081 #define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
00082 #define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
00083 #endif /* !G_ENABLE_DEBUG */
00084 
00085 /**************************************************************************/
00086 /**************************************************************************/
00087 
00088 #define ABI_TYPE_WIDGET        (abi_widget_get_type ())
00089 #define ABI_WIDGET(obj)        (G_TYPE_CHECK_INSTANCE_CAST((obj), ABI_TYPE_WIDGET, AbiWidget))
00090 #define IS_ABI_WIDGET(obj)     (G_TYPE_CHECK_INSTANCE_TYPE((obj), ABI_TYPE_WIDGET))
00091 #define IS_ABI_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), ABI_TYPE_WIDGET))
00092 #define ABI_WIDGET_CLASS(k)    (G_TYPE_CHECK_CLASS_CAST ((k), ABI_TYPE_WIDGET, AbiWidgetClass))
00093 
00094   /* forward declarations */
00095   typedef struct _AbiWidget      AbiWidget;
00096   typedef struct _AbiWidgetClass AbiWidgetClass;
00097   typedef struct _AbiPrivData    AbiPrivData;
00098 
00099   /*
00100    * These functions basically just marshall back their arguments into
00101    * the AbiWord application and return a boolean
00102    */
00103   typedef gboolean (*Abi_EditMethod) (AbiWidget *, const char *, gint32, gint32);
00104   typedef gboolean (*Abi_Void__Bool_EditMethod) (AbiWidget *);
00105   typedef gboolean (*Abi_Int_Int__Bool_EditMethod) (AbiWidget *, gint32, gint32);
00106   typedef gboolean (*Abi_CharPtr__Bool_EditMethod) (AbiWidget *, const char *);
00107 
00108   /*
00109    * Only here for completeness in that that we might want to
00110    * add signals (such as "saved") later
00111    */
00112   typedef gboolean (*AbiSignal) (AbiWidget *, gpointer closure);
00113 
00114   struct _AbiWidget
00115   {
00116     GtkBin bin;
00117     GtkWidget * child;
00118     /* private instance data */
00119     AbiPrivData * priv;
00120   };
00121 
00122   struct  _AbiWidgetClass {
00123     GtkBinClass parent_class;
00124 
00125     /* invoke any edit method based on its name */
00126     gboolean (*invoke) (AbiWidget *, const char * mthdName);
00127     gboolean (*invoke_ex) (AbiWidget *, const char * mthdName,
00128                const char * data, gint32 x, gint32 y);
00129 
00130     /* a list of some of our more useful edit methods */
00131     Abi_Void__Bool_EditMethod align_center;
00132     Abi_Void__Bool_EditMethod align_justify;
00133     Abi_Void__Bool_EditMethod align_left;
00134     Abi_Void__Bool_EditMethod align_right;
00135 
00136     Abi_Void__Bool_EditMethod copy;
00137     Abi_Void__Bool_EditMethod cut;
00138     Abi_Void__Bool_EditMethod paste;
00139     Abi_Void__Bool_EditMethod paste_special;
00140     Abi_Void__Bool_EditMethod select_all;
00141     Abi_Void__Bool_EditMethod select_block;
00142     Abi_Void__Bool_EditMethod select_line;
00143     Abi_Void__Bool_EditMethod select_word;
00144 
00145     Abi_Void__Bool_EditMethod undo;
00146     Abi_Void__Bool_EditMethod redo;
00147 
00148     Abi_CharPtr__Bool_EditMethod insert_data;
00149     Abi_Void__Bool_EditMethod    insert_space;
00150 
00151     Abi_Void__Bool_EditMethod delete_bob;
00152     Abi_Void__Bool_EditMethod delete_bod;
00153     Abi_Void__Bool_EditMethod delete_bol;
00154     Abi_Void__Bool_EditMethod delete_bow;
00155     Abi_Void__Bool_EditMethod delete_eob;
00156     Abi_Void__Bool_EditMethod delete_eod;
00157     Abi_Void__Bool_EditMethod delete_eol;
00158     Abi_Void__Bool_EditMethod delete_eow;
00159     Abi_Void__Bool_EditMethod delete_left;
00160     Abi_Void__Bool_EditMethod delete_right;
00161 
00162     Abi_Void__Bool_EditMethod edit_header;
00163     Abi_Void__Bool_EditMethod edit_footer;
00164 
00165     Abi_Void__Bool_EditMethod file_open;
00166     Abi_Void__Bool_EditMethod file_save;
00167 
00168     Abi_Void__Bool_EditMethod remove_header;
00169     Abi_Void__Bool_EditMethod remove_footer;
00170 
00171     Abi_Void__Bool_EditMethod save_immediate;
00172 
00173     Abi_Void__Bool_EditMethod select_bob;
00174     Abi_Void__Bool_EditMethod select_bod;
00175     Abi_Void__Bool_EditMethod select_bol;
00176     Abi_Void__Bool_EditMethod select_bow;
00177     Abi_Void__Bool_EditMethod select_eob;
00178     Abi_Void__Bool_EditMethod select_eod;
00179     Abi_Void__Bool_EditMethod select_eol;
00180     Abi_Void__Bool_EditMethod select_eow;
00181     Abi_Void__Bool_EditMethod select_left;
00182     Abi_Void__Bool_EditMethod select_next_line;
00183     Abi_Void__Bool_EditMethod select_page_down;
00184     Abi_Void__Bool_EditMethod select_page_up;
00185     Abi_Void__Bool_EditMethod select_prev_line;
00186     Abi_Void__Bool_EditMethod select_right;
00187     Abi_Void__Bool_EditMethod select_screen_down;
00188     Abi_Void__Bool_EditMethod select_screen_up;
00189     Abi_Int_Int__Bool_EditMethod select_to_xy;
00190 
00191     Abi_Void__Bool_EditMethod toggle_bold;
00192     Abi_Void__Bool_EditMethod toggle_underline;
00193     Abi_Void__Bool_EditMethod toggle_bottomline;
00194     Abi_Void__Bool_EditMethod toggle_insert_mode;
00195     Abi_Void__Bool_EditMethod toggle_italic;
00196     Abi_Void__Bool_EditMethod toggle_overline;
00197     Abi_Void__Bool_EditMethod toggle_plain;
00198     Abi_Void__Bool_EditMethod toggle_strike;
00199     Abi_Void__Bool_EditMethod toggle_sub;
00200     Abi_Void__Bool_EditMethod toggle_super;
00201     Abi_Void__Bool_EditMethod toggle_topline;
00202     Abi_Void__Bool_EditMethod toggle_unindent;
00203     Abi_Void__Bool_EditMethod toggle_bullets;
00204     Abi_Void__Bool_EditMethod toggle_numbering;
00205 
00206     Abi_Void__Bool_EditMethod view_formatting_marks;
00207     Abi_Void__Bool_EditMethod view_print_layout;
00208     Abi_Void__Bool_EditMethod view_normal_layout;
00209     Abi_Void__Bool_EditMethod view_online_layout;
00210 
00211     Abi_Void__Bool_EditMethod moveto_bob;
00212     Abi_Void__Bool_EditMethod moveto_bod;
00213     Abi_Void__Bool_EditMethod moveto_bol;
00214     Abi_Void__Bool_EditMethod moveto_bop;
00215     Abi_Void__Bool_EditMethod moveto_bow;
00216     Abi_Void__Bool_EditMethod moveto_eob;
00217     Abi_Void__Bool_EditMethod moveto_eod;
00218     Abi_Void__Bool_EditMethod moveto_eol;
00219     Abi_Void__Bool_EditMethod moveto_eop;
00220     Abi_Void__Bool_EditMethod moveto_eow;
00221     Abi_Void__Bool_EditMethod moveto_left;
00222     Abi_Void__Bool_EditMethod moveto_next_line;
00223     Abi_Void__Bool_EditMethod moveto_next_page;
00224     Abi_Void__Bool_EditMethod moveto_next_screen;
00225     Abi_Void__Bool_EditMethod moveto_prev_line;
00226     Abi_Void__Bool_EditMethod moveto_prev_page;
00227     Abi_Void__Bool_EditMethod moveto_prev_screen;
00228     Abi_Void__Bool_EditMethod moveto_right;
00229     Abi_Int_Int__Bool_EditMethod moveto_to_xy;
00230 
00231     Abi_Void__Bool_EditMethod zoom_whole;
00232     Abi_Void__Bool_EditMethod zoom_width;
00233 
00234     Abi_EditMethod em_pad[20];
00235 
00236     /* signals */
00237     void (* signal_bold) (AbiWidget * widget, gboolean value);
00238     void (* signal_italic) (AbiWidget * widget, gboolean value);
00239     void (* signal_underline) (AbiWidget * widget, gboolean value);
00240     void (* signal_overline) (AbiWidget * widget, gboolean value);
00241     void (* signal_line_through) (AbiWidget * widget, gboolean value);
00242     void (* signal_topline) (AbiWidget * widget, gboolean value);
00243     void (* signal_bottomline) (AbiWidget * widget, gboolean value);
00244     void (* signal_superscript) (AbiWidget * widget, gboolean value);
00245     void (* signal_subscript) (AbiWidget * widget, gboolean value);
00246     void (* signal_color) (AbiWidget * widget, int r, int g, int b);
00247     void (* signal_font_size) (AbiWidget * widget, double value);
00248     void (* signal_font_family) (AbiWidget * widget, const char * value);
00249     void (* signal_changed) (AbiWidget * widget, gboolean value);
00250     void (* signal_can_undo) (AbiWidget * widget, gboolean value);
00251     void (* signal_can_redo) (AbiWidget * widget, gboolean value);
00252     void (* signal_is_dirty) (AbiWidget * widget, gboolean value);
00253     void (* signal_left_align) (AbiWidget * widget, gboolean value);
00254     void (* signal_right_align) (AbiWidget * widget, gboolean value);
00255     void (* signal_center_align) (AbiWidget * widget, gboolean value);
00256     void (* signal_justify_align) (AbiWidget * widget, gboolean value);
00257     void (* signal_style_name) (AbiWidget * widget, const char * value);
00258     void (* signal_text_selected) (AbiWidget * widget, gboolean value);
00259     void (* signal_image_selected) (AbiWidget * widget, gboolean value);
00260     void (* signal_selection_cleared) (AbiWidget * widget, gboolean value);
00261     void (* signal_enter_selection) (AbiWidget * widget, gboolean value);
00262     void (* signal_leave_selection) (AbiWidget * widget, gboolean value);
00263     void (* signal_table_state) (AbiWidget * widget, gboolean value);
00264     void (* signal_page_count) (AbiWidget * widget, guint32 value);
00265     void (* signal_current_page) (AbiWidget * widget, guint32 value);
00266     void (* signal_zoom_percentage) (AbiWidget * widget, gint32 value);
00267 
00268     AbiSignal sig_pad[20];
00269   };
00270 
00271   /* the public API */
00272 
00273   /* widget creation functions */
00274   GtkWidget * abi_widget_new (void);
00275   GtkWidget * abi_widget_new_with_file (const gchar * file);
00276   GType     abi_widget_get_type (void);
00277   void        abi_widget_turn_on_cursor(AbiWidget * widget);
00278   void        abi_widget_draw(AbiWidget * w);
00279 
00280   void abi_widget_set_property(GObject  *object,
00281                    guint    arg_id,
00282                    const GValue *arg,
00283                    GParamSpec *pspec);
00284   void abi_widget_get_property(GObject  *object,
00285                    guint arg_id,
00286                    GValue     *arg,
00287                    GParamSpec *pspec);
00288 
00289   /* bindings to our more useful edit methods */
00290 
00291   /* file handing functions */
00292   gboolean abi_widget_file_open (AbiWidget * w);
00293   gboolean abi_widget_file_save (AbiWidget * w);
00294   gboolean abi_widget_load_file(AbiWidget * w, const gchar * pszFile, const gchar * mimetype);
00295   gboolean abi_widget_load_file_from_gsf(AbiWidget * w, GsfInput * input);
00296   gboolean abi_widget_load_file_from_memory(AbiWidget * w, const gchar * extension_or_mimetype, const gchar * buf, gint length);
00297   gboolean abi_widget_save ( AbiWidget * w, const gchar * fname, const gchar * extension_or_mimetype,  const gchar * exp_props );
00298   gboolean abi_widget_save_immediate (AbiWidget * w);
00299   gboolean abi_widget_save_to_gsf ( AbiWidget * w, GsfOutput * output, const gchar * extension_or_mimetype, const gchar *exp_props);
00300 
00301   /* paragraph modification functions */
00302   gboolean abi_widget_align_center (AbiWidget * w);
00303   gboolean abi_widget_align_justify (AbiWidget * w);
00304   gboolean abi_widget_align_left (AbiWidget * w);
00305   gboolean abi_widget_align_right (AbiWidget * w);
00306 
00307   /* copy & paste functions */
00308   gboolean abi_widget_copy (AbiWidget * w);
00309   gboolean abi_widget_cut (AbiWidget * w);
00310   gboolean abi_widget_paste (AbiWidget * w);
00311   gboolean abi_widget_paste_special (AbiWidget * w);
00312   gboolean abi_widget_select_all (AbiWidget * w);
00313   gboolean abi_widget_select_block (AbiWidget * w);
00314   gboolean abi_widget_select_line (AbiWidget * w);
00315   gboolean abi_widget_select_word (AbiWidget * w);
00316 
00317   /* undo/redo */
00318   gboolean abi_widget_undo (AbiWidget * w);
00319   gboolean abi_widget_redo (AbiWidget * w);
00320 
00321   /* text insertion and removal */
00322   gboolean abi_widget_insert_data (AbiWidget * w, const char * str);
00323   gboolean abi_widget_insert_space (AbiWidget * w);
00324 
00325   gboolean abi_widget_delete_bob (AbiWidget * w);
00326   gboolean abi_widget_delete_bod (AbiWidget * w);
00327   gboolean abi_widget_delete_bol (AbiWidget * w);
00328   gboolean abi_widget_delete_bow (AbiWidget * w);
00329   gboolean abi_widget_delete_eob (AbiWidget * w);
00330   gboolean abi_widget_delete_eod (AbiWidget * w);
00331   gboolean abi_widget_delete_eol (AbiWidget * w);
00332   gboolean abi_widget_delete_eow (AbiWidget * w);
00333   gboolean abi_widget_delete_left (AbiWidget * w);
00334   gboolean abi_widget_delete_right (AbiWidget * w);
00335 
00336   gchar * abi_widget_get_content (AbiWidget * w, const gchar * extension_or_mimetype, const gchar * exp_props, gint* iLength);
00337   gchar * abi_widget_get_selection (AbiWidget * w, const gchar * extension_or_mimetype, gint* iLength);
00338 
00339   /* selection functions */
00340   gboolean abi_widget_select_bob (AbiWidget * w);
00341   gboolean abi_widget_select_bod (AbiWidget * w);
00342   gboolean abi_widget_select_bol (AbiWidget * w);
00343   gboolean abi_widget_select_bow (AbiWidget * w);
00344   gboolean abi_widget_select_eob (AbiWidget * w);
00345   gboolean abi_widget_select_eod (AbiWidget * w);
00346   gboolean abi_widget_select_eol (AbiWidget * w);
00347   gboolean abi_widget_select_eow (AbiWidget * w);
00348   gboolean abi_widget_select_left (AbiWidget * w);
00349   gboolean abi_widget_select_next_line (AbiWidget * w);
00350   gboolean abi_widget_select_page_down (AbiWidget * w);
00351   gboolean abi_widget_select_page_up (AbiWidget * w);
00352   gboolean abi_widget_select_prev_line (AbiWidget * w);
00353   gboolean abi_widget_select_right (AbiWidget * w);
00354   gboolean abi_widget_select_screen_down (AbiWidget * w);
00355   gboolean abi_widget_select_screen_up (AbiWidget * w);
00356   gboolean abi_widget_select_to_xy (AbiWidget * w, gint32 x, gint32 y);
00357 
00358   /* text modification functions */
00359   gboolean abi_widget_toggle_bold (AbiWidget * w);
00360   gboolean abi_widget_toggle_underline (AbiWidget * w);
00361   gboolean abi_widget_toggle_bottomline (AbiWidget * w);
00362   gboolean abi_widget_toggle_insert_mode (AbiWidget * w);
00363   gboolean abi_widget_toggle_italic (AbiWidget * w);
00364   gboolean abi_widget_toggle_overline (AbiWidget * w);
00365   gboolean abi_widget_toggle_plain (AbiWidget * w);
00366   gboolean abi_widget_toggle_strike (AbiWidget * w);
00367   gboolean abi_widget_toggle_sub (AbiWidget * w);
00368   gboolean abi_widget_toggle_super (AbiWidget * w);
00369   gboolean abi_widget_toggle_topline (AbiWidget * w);
00370   gboolean abi_widget_toggle_unindent (AbiWidget * w);
00371   gboolean abi_widget_set_text_color(AbiWidget * w, guint8 red, guint8 green, guint8 blue);
00372   gboolean abi_widget_toggle_bullets (AbiWidget * w);
00373   gboolean abi_widget_toggle_numbering (AbiWidget * w);
00374 
00375   /* cursor functions */
00376   gboolean abi_widget_moveto_bob (AbiWidget * w);
00377   gboolean abi_widget_moveto_bod (AbiWidget * w);
00378   gboolean abi_widget_moveto_bol (AbiWidget * w);
00379   gboolean abi_widget_moveto_bop (AbiWidget * w);
00380   gboolean abi_widget_moveto_bow (AbiWidget * w);
00381   gboolean abi_widget_moveto_eob (AbiWidget * w);
00382   gboolean abi_widget_moveto_eod (AbiWidget * w);
00383   gboolean abi_widget_moveto_eol (AbiWidget * w);
00384   gboolean abi_widget_moveto_eop (AbiWidget * w);
00385   gboolean abi_widget_moveto_eow (AbiWidget * w);
00386   gboolean abi_widget_moveto_left (AbiWidget * w);
00387   gboolean abi_widget_moveto_next_line (AbiWidget * w);
00388   gboolean abi_widget_moveto_next_page (AbiWidget * w);
00389   gboolean abi_widget_moveto_next_screen (AbiWidget * w);
00390   gboolean abi_widget_moveto_prev_line (AbiWidget * w);
00391   gboolean abi_widget_moveto_prev_page (AbiWidget * w);
00392   gboolean abi_widget_moveto_prev_screen (AbiWidget * w);
00393   gboolean abi_widget_moveto_right (AbiWidget * w);
00394   gboolean abi_widget_moveto_to_xy (AbiWidget * w, gint32 x, gint32 y);
00395 
00396   /* search functions */
00397   void abi_widget_set_find_string (AbiWidget * w, gchar * search_str);
00398   gboolean abi_widget_find_next (AbiWidget * w, gboolean sel_start);
00399   gboolean abi_widget_find_prev (AbiWidget * w);
00400 
00401   /* document/page functions */
00402   guint32 abi_widget_get_page_count(AbiWidget * w);
00403   guint32 abi_widget_get_current_page_num(AbiWidget * w);
00404   void abi_widget_set_current_page(AbiWidget * w, guint32 curpage);
00405 
00406   /* view functions */
00407   gboolean abi_widget_view_formatting_marks (AbiWidget * w);
00408   gboolean abi_widget_view_print_layout (AbiWidget * w);
00409   gboolean abi_widget_view_normal_layout (AbiWidget * w);
00410   gboolean abi_widget_view_online_layout (AbiWidget * w);
00411 
00412   gboolean abi_widget_zoom_whole (AbiWidget * w);
00413   gboolean abi_widget_zoom_width (AbiWidget * w);
00414   gboolean abi_widget_set_zoom_percentage (AbiWidget * w, guint32 zoom);
00415   guint32 abi_widget_get_zoom_percentage (AbiWidget * w);
00416 
00417   gboolean abi_widget_set_word_selections (AbiWidget * w, gboolean b);
00418   gboolean abi_widget_get_word_selections (AbiWidget * w);
00419 
00420   gboolean abi_widget_set_show_margin (AbiWidget * w, gboolean bShowMargin);
00421   gboolean abi_widget_get_show_margin (AbiWidget * w);
00422 
00423   gboolean abi_widget_set_show_authors (AbiWidget * w, gboolean bShowAuthors);
00424   gboolean abi_widget_get_show_authors (AbiWidget * w);
00425 
00426   GdkPixbuf * abi_widget_render_page_to_image(AbiWidget *w, int page_number);
00427 
00428   /* header/footer functions */
00429   gboolean abi_widget_remove_header (AbiWidget * w);
00430   gboolean abi_widget_remove_footer (AbiWidget * w);
00431   gboolean abi_widget_edit_header (AbiWidget * w);
00432   gboolean abi_widget_edit_footer (AbiWidget * w);
00433 
00434   /* rulers methods */
00435   void abi_widget_toggle_rulers(AbiWidget * abi, gboolean visible);
00436 
00437   /* table functions */
00438   gboolean abi_widget_insert_table(AbiWidget * w, gint32 rows, gint32 cols);
00439   gboolean abi_widget_get_mouse_pos(AbiWidget * w, gint32 * x, gint32 * y);
00440 
00441   /* font/text functions */
00442   gboolean abi_widget_set_font_name(AbiWidget * w, gchar * szFontName);
00443   gboolean abi_widget_set_font_size(AbiWidget * w, gchar * szFontsize);
00444   const gchar** abi_widget_get_font_names (AbiWidget * w);
00445 
00446   /* style functions */
00447   gboolean abi_widget_set_style(AbiWidget * w, char* szName);
00448 
00449   /* image functions */
00450   gboolean abi_widget_insert_image(AbiWidget * w, char* szFile, gboolean positioned);
00451 
00452   /* generic editmethod invocation hooks */
00453   gboolean    abi_widget_invoke(AbiWidget * w, const char * mthdName);
00454   gboolean    abi_widget_invoke_ex (AbiWidget * w, const char *mthdName, const char * data, gint32 x, gint32 y);
00455 
00456 #ifdef ABIWORD_INTERNAL
00457   /* these functions are used by abiword internally and really aren't exported to the rest of the world */
00458   XAP_Frame * abi_widget_get_frame ( AbiWidget * w ) ;
00459 #endif
00460 
00461 G_END_DECLS
00462 
00463 #endif /* ABI_WIDGET_H */

Generated on Sun Feb 14 2021 for AbiWord by  doxygen 1.7.1