#ifndef INCLUDED_console_h_
#define INCLUDED_console_h_
+#include "character.h"
+
/* Devices and consoles are similar entities. The idea is that
a console represents a physical keyboard/mouse/other-input-source
while a device represents a display where frames appear on.
void (*delete_device_method) (struct device *);
void (*mark_device_method) (struct device *);
void (*asynch_device_change_method) (void);
- Lisp_Object (*device_system_metrics_method) (struct device *, enum device_metrics);
+ Lisp_Object (*device_system_metrics_method) (struct device *,
+ enum device_metrics);
unsigned int (*device_implementation_flags_method) (void);
- Lisp_Object (*own_selection_method)(Lisp_Object selection_name, Lisp_Object selection_value);
- void (*disown_selection_method)(Lisp_Object selection_name, Lisp_Object timeval);
- Lisp_Object (*get_foreign_selection_method) (Lisp_Object selection_symbol,
- Lisp_Object target_type);
- Lisp_Object (*selection_exists_p_method)(Lisp_Object selection_name);
+ Lisp_Object (*own_selection_method)(Lisp_Object selection_name,
+ Lisp_Object selection_value,
+ Lisp_Object how_to_add,
+ Lisp_Object selection_type,
+ int owned_p);
+ void (*disown_selection_method)(Lisp_Object selection_name,
+ Lisp_Object timeval);
+ Lisp_Object (*get_foreign_selection_method) (Lisp_Object selection_symbol,
+ Lisp_Object target_type);
+ Lisp_Object (*selection_exists_p_method)(Lisp_Object selection_name,
+ Lisp_Object selection_type);
+ Lisp_Object (*available_selection_types_method)(Lisp_Object selection_name);
+ Lisp_Object (*register_selection_data_type_method)(Lisp_Object type_name);
+ Lisp_Object (*selection_data_type_name_method)(Lisp_Object type);
/* frame methods */
Lisp_Object *device_specific_frame_props;
void (*focus_on_frame_method) (struct frame *);
void (*raise_frame_method) (struct frame *);
void (*lower_frame_method) (struct frame *);
+ void (*enable_frame_method) (struct frame *);
+ void (*disable_frame_method) (struct frame *);
int (*get_mouse_position_method) (struct device *d, Lisp_Object *frame,
int *x, int *y);
void (*set_mouse_position_method) (struct window *w, int x, int y);
int (*left_margin_width_method) (struct window *);
int (*right_margin_width_method) (struct window *);
int (*text_width_method) (struct frame *f, struct face_cachel *cachel,
- const Emchar *str, Charcount len);
+ const Charc *str, Charcount len);
void (*output_display_block_method) (struct window *, struct display_line *,
int, int, int, int, int, int, int);
int (*divider_height_method) (void);
int, int, int, int,
Lisp_Object, Lisp_Object, Lisp_Object);
void (*clear_frame_method) (struct frame *);
- void (*output_begin_method) (struct device *);
- void (*output_end_method) (struct device *);
+ void (*window_output_begin_method) (struct window *);
+ void (*frame_output_begin_method) (struct frame *);
+ void (*window_output_end_method) (struct window *);
+ void (*frame_output_end_method) (struct frame *);
int (*flash_method) (struct device *);
void (*ring_bell_method) (struct device *, int volume, int pitch,
int duration);
face_index findex, int cursor_start, int cursor_width,
int cursor_height, int offset_bitmap);
void (*output_string_method) (struct window *w, struct display_line *dl,
- Emchar_dynarr *buf, int xpos, int xoffset,
+ Charc_dynarr *buf, int xpos, int xoffset,
int start_pixpos, int width, face_index findex,
int cursor, int cursor_start, int cursor_width,
int cursor_height);
void (*map_subwindow_method) (Lisp_Image_Instance *, int x, int y,
struct display_glyph_area* dga);
void (*resize_subwindow_method) (Lisp_Image_Instance *, int w, int h);
- void (*update_subwindow_method) (Lisp_Image_Instance *);
- void (*update_widget_method) (Lisp_Image_Instance *);
+ void (*redisplay_subwindow_method) (Lisp_Image_Instance *);
+ void (*redisplay_widget_method) (Lisp_Image_Instance *);
int (*image_instance_equal_method) (Lisp_Image_Instance *,
Lisp_Image_Instance *,
int depth);
#ifdef HAVE_DIALOGS
/* dialog methods */
- void (*popup_dialog_box_method) (struct frame *, Lisp_Object dbox_desc);
+ Lisp_Object (*make_dialog_box_internal_method) (struct frame *,
+ Lisp_Object type,
+ Lisp_Object keys);
#endif
};
add_entry_to_console_type_list (Q##type, type##_console_methods); \
type##_console_methods->image_conversion_list = Qnil; \
staticpro_nodump (&type##_console_methods->image_conversion_list); \
- dumpstruct (&type##_console_methods, &console_methods_description); \
+ dump_add_root_struct_ptr (&type##_console_methods, &console_methods_description); \
} while (0)
#define REINITIALIZE_CONSOLE_TYPE(type) do { \
#define CONSOLE_TYPE_P(con, type) EQ (CONSOLE_TYPE (con), Q##type)
#ifdef ERROR_CHECK_TYPECHECK
-INLINE struct console *
+INLINE_HEADER struct console *
error_check_console_type (struct console *con, Lisp_Object sym);
-INLINE struct console *
+INLINE_HEADER struct console *
error_check_console_type (struct console *con, Lisp_Object sym)
{
assert (EQ (CONSOLE_TYPE (con), sym));