diff src/gtkutil.h @ 109748:e2f8226efb99

Fix -Wwrite_strings in general and for Gtk+ specific code. * callproc.c (synch_process_death): Make const. (Fcall_process): Make signame const. * emacs.c (main): Pass char[] to putenv instead of literal. * floatfns.c (matherr): Use a const char* variable for x->name. * font.c (font_open_by_name): Make name const. * font.h (font_open_by_name): Make name const. * gtkutil.c (get_utf8_string): Always return an allocated string. Parameter is const. (create_dialog, xg_create_one_menuitem, create_menus) (xg_item_label_same_p, xg_update_menu_item): Free result from get_utf8_string. (xg_separator_p, xg_item_label_same_p): label is const. * gtkutil.h: Replace widget_value with struct _widget_value. (enum button_type, struct _widget_value): Remove and use the one from keyboard.h. * keyboard.h (_widget_value): Add defined USE_GTK. Replace Boolean with unsigned char and XtPointer with void *. * menu.c (Fx_popup_menu): error_name is const. * menu.h (w32_menu_show, ns_menu_show, xmenu_show): error parameter is const char **. * w32menu.c (w32_menu_show): * nsmenu.m (ns_menu_show): error parameter is const char **. * process.h (synch_process_death): Is const char*. * xmenu.c (Fx_popup_dialog): error_name is const char*. (xmenu_show): error parameter is const char **. pane_string is const char *. (button_names): Is const char *. (xdialog_show): error_name and pane_string is const. * xrdb.c (get_system_app): Make path const and use char *p for non-const char. * xselect.c (Fx_get_atom_name): Use char empty[] instead of literal "". * xsmfns.c (NOSPLASH_OPT): Change to char[]. (smc_save_yourself_CB): Do xstrdup on all ->type and ->name for props. Free them at the end. * xterm.c (emacs_class): New char[] for EMACS_CLASS. (xim_open_dpy, xim_initialize, xim_close_dpy): Use emacs_class. (x_term_init): Use char[] display_opt and name_opt instead of string literal. file is const char*.
author Jan D <jan.h.d@swipnet.se>
date Wed, 11 Aug 2010 14:34:46 +0200
parents 64732fa6188a
children be18c3b67d66
line wrap: on
line diff
--- a/src/gtkutil.h	Wed Aug 11 11:16:35 2010 +0200
+++ b/src/gtkutil.h	Wed Aug 11 14:34:46 2010 +0200
@@ -38,14 +38,6 @@
 /* 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_
 {
@@ -82,48 +74,13 @@
 } 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);
 
@@ -138,14 +95,14 @@
 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,