X-Git-Url: https://git.donarmstrong.com/?p=xournal.git;a=blobdiff_plain;f=src%2Fxo-misc.h;h=617bbda92da29dcae0cffdf02b9f8f15b281c68d;hp=636f5e6b73cba5eefa8f3266b570a316b89a1c5a;hb=bc1db27c7eef7de6d5097a5e708d2de540d35b88;hpb=59df9eb838b273295a6b86ce9f522dc4ad71dc4d diff --git a/src/xo-misc.h b/src/xo-misc.h index 636f5e6..617bbda 100644 --- a/src/xo-misc.h +++ b/src/xo-misc.h @@ -1,8 +1,25 @@ +/* + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This software is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + // data manipulation misc functions struct Page *new_page(struct Page *template); struct Page *new_page_with_bg(struct Background *bg, double width, double height); +void set_current_page(gdouble *pt); void realloc_cur_path(int n); +void realloc_cur_widths(int n); void clear_redo_stack(void); void clear_undo_stack(void); void prepare_new_undo(void); @@ -18,11 +35,15 @@ void refstring_unref(struct Refstring *rs); // helper functions +int finite_sized(double x); void get_pointer_coords(GdkEvent *event, double *ret); +void get_current_pointer_coords(double *ret); +double get_pressure_multiplier(GdkEvent *event); void fix_xinput_coords(GdkEvent *event); void update_item_bbox(struct Item *item); void make_page_clipbox(struct Page *pg); void make_canvas_items(void); +void make_canvas_item_one(GnomeCanvasGroup *group, struct Item *item); void update_canvas_bg(struct Page *pg); gboolean is_visible(struct Page *pg); void rescale_bg_pixmaps(void); @@ -30,6 +51,9 @@ void rescale_bg_pixmaps(void); gboolean have_intersect(struct BBox *a, struct BBox *b); void lower_canvas_item_to(GnomeCanvasGroup *g, GnomeCanvasItem *item, GnomeCanvasItem *after); +void rgb_to_gdkcolor(guint rgba, GdkColor *color); +guint32 gdkcolor_to_rgba(GdkColor gdkcolor, guint16 alpha); + // interface misc functions void update_thickness_buttons(void); @@ -48,29 +72,68 @@ void update_toolbar_and_menu(void); void update_file_name(char *filename); void update_undo_redo_enabled(void); void update_copy_paste_enabled(void); +void update_vbox_order(int *order); + +gchar *make_cur_font_name(void); +void update_font_button(void); void update_mapping_linkings(int toolno); void do_switch_page(int pg, gboolean rescroll, gboolean refresh_all); -void set_cur_color(int color); -void process_color_activate(GtkMenuItem *menuitem, int color); +void set_cur_color(int color_no, guint color_rgba); +void recolor_temp_text(int color_no, guint color_rgba); +void process_color_activate(GtkMenuItem *menuitem, int color_no, guint color_rgba); void process_thickness_activate(GtkMenuItem *menuitem, int tool, int val); -void process_papercolor_activate(GtkMenuItem *menuitem, int color); +void process_papercolor_activate(GtkMenuItem *menuitem, int color, guint rgba); void process_paperstyle_activate(GtkMenuItem *menuitem, int style); gboolean ok_to_close(void); -gboolean page_ops_forbidden(void); + +void reset_focus(void); // selection / clipboard stuff void reset_selection(void); void move_journal_items_by(GList *itemlist, double dx, double dy, struct Layer *l1, struct Layer *l2, GList *depths); +void resize_journal_items_by(GList *itemlist, double scaling_x, double scaling_y, + double offset_x, double offset_y); + // switch between mappings void switch_mapping(int m); void process_mapping_activate(GtkMenuItem *menuitem, int m, int tool); +// always allow accels +void allow_all_accels(void); +gboolean can_accel(GtkWidget *widget, guint id, gpointer data); +void add_scroll_bindings(void); + +gboolean is_event_within_textview(GdkEventButton *event); + +void hide_unimplemented(void); + +void do_fullscreen(gboolean active); + +// fix GTK+ 2.16/2.17 issues with XInput events +gboolean filter_extended_events(GtkWidget *widget, GdkEvent *event, gpointer user_data); +// gboolean fix_extended_events(GtkWidget *widget, GdkEvent *event, gpointer user_data); + +// help with focus +gboolean handle_activate_signal(GtkWidget *widget, gpointer user_data); +void unset_flags(GtkWidget *w, gpointer flag); +gboolean intercept_activate_events(GtkWidget *w, GdkEvent *ev, gpointer data); +void install_focus_hooks(GtkWidget *w, gpointer data); + +// wrapper for a function no longer provided by poppler 0.17+ +void +wrapper_poppler_page_render_to_pixbuf (PopplerPage *page, + int src_x, int src_y, + int src_width, int src_height, + double scale, + int rotation, + GdkPixbuf *pixbuf); + // defines for paper rulings #define RULING_MARGIN_COLOR 0xff0080ff