Home | History | Annotate | Download | only in patches
      1  9638  erwannc --- control-center-2.16.1/capplets/font/main.c	Thu Nov  2 16:28:24 2006
      2  9638  erwannc +++ ../SUNWgnome-desktop-prefs-2.16.1/control-center-2.16.1/capplets/font/main.c	Thu Nov  2 16:55:48 2006
      3  9638  erwannc @@ -337,6 +337,102 @@
      4  9638  erwannc  
      5  9638  erwannc  static GSList *font_pairs = NULL;
      6  9638  erwannc  
      7  9638  erwannc +#ifdef FT_CONFIG_ADD_FULL_HINTING
      8  9638  erwannc +static gboolean 
      9  9638  erwannc +display_full_hinting_dialog (GtkWidget *parent, 
     10  9638  erwannc +			     FontPair *pair, 
     11  9638  erwannc +			     const char *key, 
     12  9638  erwannc +			     const char *value)
     13  9638  erwannc +{
     14  9638  erwannc +  gboolean display_dialog = FALSE;
     15  9638  erwannc +  gboolean antialiasing_changed = FALSE;
     16  9638  erwannc +
     17  9638  erwannc +  if (pair && (pair->antialiasing != ANTIALIAS_NONE) && (pair->hinting == HINT_FULL))
     18  9638  erwannc +    {
     19  9638  erwannc +      display_dialog = TRUE;
     20  9638  erwannc +      antialiasing_changed = TRUE;
     21  9638  erwannc +    }
     22  9638  erwannc +
     23  9638  erwannc +  if (key && value)
     24  9638  erwannc +    {
     25  9638  erwannc +      Hinting hinting;
     26  9638  erwannc +      Antialiasing antialiasing;
     27  9638  erwannc +
     28  9638  erwannc +      if ((strcmp (key, FONT_HINTING_KEY) == 0) && (strcmp (value, "full") == 0))
     29  9638  erwannc +	{
     30  9638  erwannc +	  font_render_get_gconf (&antialiasing, &hinting);
     31  9638  erwannc +	  if (antialiasing != ANTIALIAS_NONE)
     32  9638  erwannc +	      display_dialog = TRUE;
     33  9638  erwannc +	}
     34  9638  erwannc +      if ((strcmp (key, FONT_ANTIALIASING_KEY) == 0) && (strcmp (value, "none") != 0))
     35  9638  erwannc +	{  /* check if hinting is set to full  (monochrome case for example)*/
     36  9638  erwannc +	  font_render_get_gconf (&antialiasing, &hinting);
     37  9638  erwannc +	  if (hinting == HINT_FULL && antialiasing == ANTIALIAS_NONE)
     38  9638  erwannc +	    {
     39  9638  erwannc +	      display_dialog = TRUE;
     40  9638  erwannc +	      antialiasing_changed = TRUE;
     41  9638  erwannc +	    }
     42  9638  erwannc +	}
     43  9638  erwannc +    }
     44  9638  erwannc +
     45  9638  erwannc +  if (display_dialog) 
     46  9638  erwannc +    {
     47  9638  erwannc +      gint result;
     48  9638  erwannc +      Hinting hinting;
     49  9638  erwannc +      Antialiasing antialiasing;
     50  9638  erwannc +      GtkWidget *dialog;
     51  9638  erwannc +      static gboolean displayed_and_rejected = FALSE;
     52  9638  erwannc +  
     53  9638  erwannc + 
     54  9638  erwannc +      font_render_get_gconf (&antialiasing, &hinting);
     55  9638  erwannc +
     56  9638  erwannc +      /*if the hinting is already set to FULL don't ask again */
     57  9638  erwannc +      if (hinting == HINT_FULL && 
     58  9638  erwannc +	  ((antialiasing == ANTIALIAS_GRAYSCALE) || (antialiasing == ANTIALIAS_RGBA))) 
     59  9638  erwannc +	  return TRUE;
     60  9638  erwannc +      
     61  9638  erwannc +      if (hinting == HINT_FULL && antialiasing == ANTIALIAS_NONE && !antialiasing_changed)
     62  9638  erwannc +	  return TRUE;
     63  9638  erwannc +
     64  9638  erwannc +      dialog = gtk_message_dialog_new (GTK_WINDOW(gtk_widget_get_toplevel (parent)),
     65  9638  erwannc +				       GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT,
     66  9638  erwannc +				       GTK_MESSAGE_QUESTION,
     67  9638  erwannc +				       GTK_BUTTONS_OK_CANCEL,
     68  9638  erwannc +				       NULL);
     69  9638  erwannc +
     70  9638  erwannc +      gtk_window_set_title (GTK_WINDOW (dialog), "License Agreement");
     71  9638  erwannc +
     72  9638  erwannc +      gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (dialog),
     73  9638  erwannc +				     "Enabling full hinting may require "
     74  9638  erwannc +				     "a license from Apple Computer. "
     75  9638  erwannc +				     "If you have obtained such a license or "
     76  9638  erwannc +				     "have determined that you do not need "
     77  9638  erwannc +				     "one, click Ok to activate full hinting."
     78  9638  erwannc +				     "\n\nFurther information available at :\n"
     79  9668  erwannc +				     "http://freetype.sourceforge.net/"
     80  9638  erwannc +				     "patents.html");
     81  9638  erwannc +
     82  9638  erwannc +
     83  9638  erwannc +      result = gtk_dialog_run (GTK_DIALOG (dialog));
     84  9638  erwannc +
     85  9638  erwannc +      gtk_widget_destroy (dialog);
     86  9638  erwannc +
     87  9638  erwannc +      switch (result)
     88  9638  erwannc +	{
     89  9638  erwannc +	case GTK_RESPONSE_CANCEL:
     90  9638  erwannc +	  displayed_and_rejected = TRUE;
     91  9638  erwannc +	  return FALSE;
     92  9638  erwannc +	  break;
     93  9638  erwannc +	default:
     94  9638  erwannc +	  break;
     95  9638  erwannc +	}
     96  9638  erwannc +    }
     97  9638  erwannc +
     98  9638  erwannc +  return TRUE;
     99  9638  erwannc +}
    100  9638  erwannc +#endif
    101  9638  erwannc +
    102  9638  erwannc +
    103  9638  erwannc  static void
    104  9638  erwannc  font_render_load (void)
    105  9638  erwannc  {
    106  9638  erwannc @@ -380,7 +476,12 @@
    107  9638  erwannc  font_radio_toggled (GtkToggleButton *toggle_button,
    108  9638  erwannc  		    FontPair        *pair)
    109  9638  erwannc  {
    110  9638  erwannc -	if (!in_change) {
    111  9638  erwannc +#ifdef FT_CONFIG_ADD_FULL_HINTING  
    112  9638  erwannc +	if (!in_change && 
    113  9638  erwannc +	    display_full_hinting_dialog (GTK_WIDGET (toggle_button), pair, NULL, NULL)) {
    114  9638  erwannc +#else
    115  9638  erwannc +	  if (!in_change) {
    116  9638  erwannc +#endif	    
    117  9638  erwannc  		GConfClient *client = gconf_client_get_default ();
    118  9638  erwannc  
    119  9638  erwannc  		gconf_client_set_string (client, FONT_ANTIALIASING_KEY,
    120  9638  erwannc @@ -389,7 +490,6 @@
    121  9638  erwannc  		gconf_client_set_string (client, FONT_HINTING_KEY,
    122  9638  erwannc  					 gconf_enum_to_string (hint_enums, pair->hinting),
    123  9638  erwannc  					 NULL);
    124  9638  erwannc -
    125  9638  erwannc  		g_object_unref (client);
    126  9638  erwannc  	}
    127  9638  erwannc  
    128  9638  erwannc @@ -699,7 +799,14 @@
    129  9638  erwannc  {
    130  9638  erwannc  	EnumGroup *group = item->group;
    131  9638  erwannc  
    132  9638  erwannc -	if (!in_change) {
    133  9638  erwannc +#ifdef FT_CONFIG_ADD_FULL_HINTING	
    134  9638  erwannc +	if (!in_change && 
    135  9638  erwannc +	    display_full_hinting_dialog (GTK_WIDGET(toggle_button), NULL,
    136  9638  erwannc +					 group->gconf_key,
    137  9638  erwannc +					 gconf_enum_to_string (group->enums, item->value))) {
    138  9638  erwannc +#else
    139  9638  erwannc +	if (!in_change) {  
    140  9638  erwannc +#endif	  
    141  9638  erwannc  		gconf_client_set_string (group->client, group->gconf_key,
    142  9638  erwannc  					 gconf_enum_to_string (group->enums, item->value),
    143  9638  erwannc  					 NULL);
    144