/* Key for data that menu items hold. */
#define XG_ITEM_DATA "emacs_menuitem"
-/* Button types in menus. */
-enum button_type
-{
- BUTTON_TYPE_NONE,
- BUTTON_TYPE_TOGGLE,
- BUTTON_TYPE_RADIO
-};
-
/* This is a list node in a generic list implementation. */
typedef struct xg_list_node_
{
} xg_menu_item_cb_data;
-/* Used to specify menus and dialogs.
- This is an adaption from lwlib for Gtk so we can use more of the same
- code as lwlib in xmenu.c. */
-typedef struct _widget_value
-{
- /* name of widget */
- Lisp_Object lname;
- char *name;
- /* value (meaning depend on widget type) */
- char *value;
- /* keyboard equivalent. no implications for XtTranslations */
- Lisp_Object lkey;
- char *key;
- /* Help string or nil if none.
- GC finds this string through the frame's menu_bar_vector
- or through menu_items. */
- Lisp_Object help;
- /* true if enabled */
- gint enabled;
- /* true if selected */
- gint selected;
- /* The type of a button. */
- enum button_type button_type;
- /* Contents of the sub-widgets, also selected slot for checkbox */
- struct _widget_value *contents;
- /* data passed to callback */
- gpointer call_data;
- /* next one in the list */
- struct _widget_value *next;
-
- /* we resource the widget_value structures; this points to the next
- one on the free list if this one has been deallocated.
- */
- struct _widget_value *free_list;
-} widget_value;
-
#ifdef HAVE_GTK_FILE_SELECTION_NEW
extern int use_old_gtk_file_dialog;
#endif
+struct _widget_value;
-extern widget_value *malloc_widget_value (void);
-extern void free_widget_value (widget_value *);
+extern struct _widget_value *malloc_widget_value (void);
+extern void free_widget_value (struct _widget_value *);
extern int xg_uses_old_file_dialog (void);
int mustmatch_p,
int only_dir_p);
-extern char *xg_get_font_name (FRAME_PTR f, char *);
+extern char *xg_get_font_name (FRAME_PTR f, const char *);
-extern GtkWidget *xg_create_widget (char *type,
- char *name,
+extern GtkWidget *xg_create_widget (const char *type,
+ const char *name,
FRAME_PTR f,
- widget_value *val,
+ struct _widget_value *val,
GCallback select_cb,
GCallback deactivate_cb,
GCallback hightlight_cb);
extern void xg_modify_menubar_widgets (GtkWidget *menubar,
FRAME_PTR f,
- widget_value *val,
+ struct _widget_value *val,
int deep_p,
GCallback select_cb,
GCallback deactivate_cb,
struct scroll_bar *bar,
GCallback scroll_callback,
GCallback end_callback,
- char *scroll_bar_name);
+ const char *scroll_bar_name);
extern void xg_remove_scroll_bar (FRAME_PTR f, int scrollbar_id);
extern void xg_update_scrollbar_pos (FRAME_PTR f,
extern void update_frame_tool_bar (FRAME_PTR f);
extern void free_frame_tool_bar (FRAME_PTR f);
+extern int xg_change_toolbar_position (FRAME_PTR f, Lisp_Object pos);
extern void xg_frame_resized (FRAME_PTR f,
int pixelwidth,
extern GdkCursor * xg_create_default_cursor (Display *dpy);
extern int xg_create_frame_widgets (FRAME_PTR f);
+extern void xg_free_frame_widgets (FRAME_PTR f);
extern void x_wm_set_size_hint (FRAME_PTR f,
long flags,
int user_position);
extern void xg_set_background_color (FRAME_PTR f, unsigned long bg);
+extern int xg_check_special_colors (struct frame *f,
+ const char *color_name,
+ XColor *color);
extern void xg_set_frame_icon (FRAME_PTR f,
Pixmap icon_pixmap,
Pixmap icon_mask);
+extern int xg_prepare_tooltip (FRAME_PTR f,
+ Lisp_Object string,
+ int *width,
+ int *height);
+extern void xg_show_tooltip (FRAME_PTR f, int root_x, int root_y);
+extern int xg_hide_tooltip (FRAME_PTR f);
+
+
/* Mark all callback data that are Lisp_object:s during GC. */
extern void xg_mark_data (void);