Implements ability to turn on/off connection points in current drawing and
in global prefs.

dc


Index: commands.c
===================================================================
RCS file: /cvs/gnome/dia/app/commands.c,v
retrieving revision 1.27
diff -c -r1.27 commands.c
*** commands.c  1999/05/08 19:36:57     1.27
--- commands.c  1999/05/18 18:47:55
***************
*** 705,710 ****
--- 705,735 ----
  
  #ifdef GNOME
  void
+ view_show_cx_pts_callback(GtkWidget *widget,
+                         gpointer callback_data)
+ #else /* GNOME */
+ void
+ view_show_cx_pts_callback(gpointer callback_data,
+                           guint callback_action,
+                           GtkWidget *widget)
+ #endif /* GNOME */
+ {
+   DDisplay *ddisp;
+   int old_val;
+ 
+   ddisp = ddisplay_active();
+ 
+   old_val = ddisp->show_cx_pts;
+   ddisp->show_cx_pts = GTK_CHECK_MENU_ITEM (widget)->active;
+   
+   if (old_val != ddisp->show_cx_pts) {
+     ddisplay_add_update_all(ddisp);
+     ddisplay_flush(ddisp);
+   }
+ }
+ 
+ #ifdef GNOME
+ void
  view_visible_grid_callback(GtkWidget *widget,
                           gpointer callback_data)
  #else /* GNOME */
Index: commands.h
===================================================================
RCS file: /cvs/gnome/dia/app/commands.h,v
retrieving revision 1.10
diff -c -r1.10 commands.h
*** commands.h  1999/04/08 18:56:32     1.10
--- commands.h  1999/05/18 18:47:59
***************
*** 42,53 ****
  extern void view_zoom_set_callback(GtkWidget *widget, gpointer data);
  
  #ifdef GNOME
! extern void view_visible_grid_callback(GtkWidget *widget,
                                       gpointer  callback_data);
! extern void view_snap_to_grid_callback(GtkWidget *widget,
                                       gpointer  callback_data);
  extern void view_toggle_rulers_callback(GtkWidget *widget,
                                        gpointer  callback_data);
  #else  /* GNOME */
  extern void view_visible_grid_callback(gpointer  callback_data,
                                       guint callback_action,
--- 42,55 ----
  extern void view_zoom_set_callback(GtkWidget *widget, gpointer data);
  
  #ifdef GNOME
! extern void view_visible_grid_callback (GtkWidget *widget,
                                       gpointer  callback_data);
! extern void view_snap_to_grid_callback (GtkWidget *widget,
                                       gpointer  callback_data);
  extern void view_toggle_rulers_callback(GtkWidget *widget,
                                        gpointer  callback_data);
+ extern void view_show_cx_pts_callback  (GtkWidget *widget,
+                                         gpointer  callback_data);
  #else  /* GNOME */
  extern void view_visible_grid_callback(gpointer  callback_data,
                                       guint callback_action,
***************
*** 58,63 ****
--- 60,68 ----
  extern void view_toggle_rulers_callback(gpointer  callback_data,
                                       guint callback_action,
                                       GtkWidget *widget);
+ extern void view_show_cx_pts_callback  (gpointer callback_data,
+                                       guint callback_action,
+                                       GtkWidget *widget);
  #endif /* GNOME */
  extern void view_new_view_callback(GtkWidget *widget, gpointer data);
  extern void view_show_all_callback(GtkWidget *widget, gpointer data);
Index: display.c
===================================================================
RCS file: /cvs/gnome/dia/app/display.c,v
retrieving revision 1.20
diff -c -r1.20 display.c
*** display.c   1999/03/28 13:25:23     1.20
--- display.c   1999/05/18 18:48:03
***************
*** 106,111 ****
--- 106,113 ----
    ddisp->grid.entry_x = NULL;
    ddisp->grid.entry_y = NULL;
  
+   ddisp->show_cx_pts = prefs.show_cx_pts;
+ 
    ddisp->autoscroll = TRUE;
  
    ddisp->renderer = NULL;
***************
*** 341,347 ****
    int i;
  
    obj->ops->draw(obj, renderer);
!   if (active_layer) {
      for (i=0;i<obj->num_connections;i++) {
        connectionpoint_draw(obj->connections[i], ddisp);
      }
--- 343,349 ----
    int i;
  
    obj->ops->draw(obj, renderer);
!   if (active_layer && ddisp->show_cx_pts) {
      for (i=0;i<obj->num_connections;i++) {
        connectionpoint_draw(obj->connections[i], ddisp);
      }
***************
*** 755,765 ****
    static GtkWidget *rulers;
    static GtkWidget *visible_grid;
    static GtkWidget *snap_to_grid;
  
    if (initialized==0) {
!     rulers = menus_get_item_from_path(_("<Display>/View/Toggle Rulers"));
      visible_grid = menus_get_item_from_path(_("<Display>/View/Visible Grid"));
      snap_to_grid = menus_get_item_from_path(_("<Display>/View/Snap To Grid"));
      
      initialized = 1;
    }
--- 757,769 ----
    static GtkWidget *rulers;
    static GtkWidget *visible_grid;
    static GtkWidget *snap_to_grid;
+   static GtkWidget *show_cx_pts;
  
    if (initialized==0) {
!     rulers       = menus_get_item_from_path(_("<Display>/View/Show Rulers"));
      visible_grid = menus_get_item_from_path(_("<Display>/View/Visible Grid"));
      snap_to_grid = menus_get_item_from_path(_("<Display>/View/Snap To Grid"));
+     show_cx_pts  = menus_get_item_from_path(_("<Display>/View/Show Connection 
+Points"));
      
      initialized = 1;
    }
***************
*** 769,779 ****
    diagram_update_menu_sensitivity(dia);
  
    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(rulers),
!                                GTK_WIDGET_VISIBLE (ddisp->hrule) ? 1 : 0);
    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(visible_grid),
                                 ddisp->grid.visible);
    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(snap_to_grid),
                                 ddisp->grid.snap);
  }
  
  /* This is called when ddisp->shell is destroyed... */
--- 773,785 ----
    diagram_update_menu_sensitivity(dia);
  
    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(rulers),
!                                GTK_WIDGET_VISIBLE (ddisp->hrule) ? 1 : 0); 
    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(visible_grid),
                                 ddisp->grid.visible);
    gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(snap_to_grid),
                                 ddisp->grid.snap);
+   gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(show_cx_pts),
+                                ddisp->show_cx_pts); 
  }
  
  /* This is called when ddisp->shell is destroyed... */
Index: display.h
===================================================================
RCS file: /cvs/gnome/dia/app/display.h,v
retrieving revision 1.7
diff -c -r1.7 display.h
*** display.h   1999/03/19 17:47:57     1.7
--- display.h   1999/05/18 18:48:03
***************
*** 55,60 ****
--- 55,61 ----
  
    Grid grid;                      /* the grid in this display          */
  
+   gboolean show_cx_pts;                 /* Connection points toggle boolean  */
    gboolean autoscroll;
  
    RendererGdk *renderer;
Index: menus.c
===================================================================
RCS file: /cvs/gnome/dia/app/menus.c,v
retrieving revision 1.23
diff -c -r1.23 menus.c
*** menus.c     1999/04/04 09:13:22     1.23
--- menus.c     1999/05/18 18:48:04
***************
*** 91,98 ****
                         view_visible_grid_callback, NULL),
    GNOMEUIINFO_TOGGLEITEM(N_("_Snap To Grid"), NULL,
                         view_snap_to_grid_callback, NULL),
!   GNOMEUIINFO_TOGGLEITEM(N_("Toggle _Rulers"), NULL,
                         view_toggle_rulers_callback, NULL),
    GNOMEUIINFO_SEPARATOR,
    GNOMEUIINFO_ITEM_NONE(N_("New _View"), NULL, view_new_view_callback),
    GNOMEUIINFO_ITEM_NONE(N_("Show _All"), NULL, view_show_all_callback),
--- 91,100 ----
                         view_visible_grid_callback, NULL),
    GNOMEUIINFO_TOGGLEITEM(N_("_Snap To Grid"), NULL,
                         view_snap_to_grid_callback, NULL),
!   GNOMEUIINFO_TOGGLEITEM(N_("Show _Rulers"), NULL,
                         view_toggle_rulers_callback, NULL),
+   GNOMEUIINFO_TOGGLEITEM(N_("Show _Connection Points"), NULL,
+                          view_show_cx_pts_callback, NULL),
    GNOMEUIINFO_SEPARATOR,
    GNOMEUIINFO_ITEM_NONE(N_("New _View"), NULL, view_new_view_callback),
    GNOMEUIINFO_ITEM_NONE(N_("Show _All"), NULL, view_show_all_callback),
***************
*** 202,208 ****
    {N_("/View/Edit Grid..."),      NULL,         view_edit_grid_callback,     0},
    {N_("/View/_Visible Grid"),     NULL,         view_visible_grid_callback,  0, 
"<CheckItem>"},
    {N_("/View/_Snap To Grid"),     NULL,         view_snap_to_grid_callback,  0, 
"<CheckItem>"},
!   {N_("/View/Toggle _Rulers"),    NULL,         view_toggle_rulers_callback, 0, 
"<CheckItem>"},
    {N_("/View/sep1"),              NULL,         NULL,                        0, 
"<Separator>"},
    {N_("/View/New _View"),         "<control>I", view_new_view_callback,      0},
    {N_("/View/Show _All"),         "<control>A", view_show_all_callback,      0},
--- 204,211 ----
    {N_("/View/Edit Grid..."),      NULL,         view_edit_grid_callback,     0},
    {N_("/View/_Visible Grid"),     NULL,         view_visible_grid_callback,  0, 
"<CheckItem>"},
    {N_("/View/_Snap To Grid"),     NULL,         view_snap_to_grid_callback,  0, 
"<CheckItem>"},
!   {N_("/View/Show _Rulers"),    NULL,         view_toggle_rulers_callback, 0, 
"<CheckItem>"},
!   {N_("/View/Show _Connection Points"),         NULL,         
view_show_cx_pts_callback,   0, "<CheckItem>"},
    {N_("/View/sep1"),              NULL,         NULL,                        0, 
"<Separator>"},
    {N_("/View/New _View"),         "<control>I", view_new_view_callback,      0},
    {N_("/View/Show _All"),         "<control>A", view_show_all_callback,      0},
Index: preferences.c
===================================================================
RCS file: /cvs/gnome/dia/app/preferences.c,v
retrieving revision 1.5
diff -c -r1.5 preferences.c
*** preferences.c       1999/04/14 17:29:21     1.5
--- preferences.c       1999/05/18 18:48:06
***************
*** 86,91 ****
--- 86,94 ----
    { "new_view_height", PREF_UINT, PREF_OFFSET(new_view.height), &default_int_h, 1, 
N_("Height:") },
    { "new_view_zoom", PREF_UREAL, PREF_OFFSET(new_view.zoom), &default_real_zoom, 1, 
N_("Magnify:") },
  
+   { NULL, PREF_NONE, 0, NULL, 1, N_("Connection Points:") },
+   { "show_cx_pts", PREF_BOOLEAN, PREF_OFFSET(show_cx_pts), &default_true, 1, 
+N_("Visible:") },
+ 
  };
  
  #define NUM_PREFS_DATA (sizeof(prefs_data)/sizeof(struct DiaPrefsData))
Index: preferences.h
===================================================================
RCS file: /cvs/gnome/dia/app/preferences.h,v
retrieving revision 1.2
diff -c -r1.2 preferences.h
*** preferences.h       1999/04/14 17:29:22     1.2
--- preferences.h       1999/05/18 18:48:07
***************
*** 40,45 ****
--- 40,46 ----
      real zoom;
    } new_view;
    
+   int show_cx_pts;
    int reset_tools_after_create;
    int compress_save;
  };

Reply via email to