Index: applets/clock/clock.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/applets/clock/clock.c,v
retrieving revision 1.143
diff -u -r1.143 clock.c
--- a/applets/clock/clock.c	2 Jun 2004 19:42:22 -0000	1.143
+++ b/applets/clock/clock.c	16 Jun 2004 12:09:39 -0000
@@ -270,46 +270,72 @@
  /* Show date in another line if panel is vertical, or
   * horizontal but large enough to hold two lines of text
   */
-#define USE_TWO_LINE_FORMAT(cd) ((cd)->orient == PANEL_APPLET_ORIENT_LEFT  || \
+#define USE_MUL_LINE_FORMAT(cd) ((cd)->orient == PANEL_APPLET_ORIENT_LEFT  || \
                                  (cd)->orient == PANEL_APPLET_ORIENT_RIGHT || \
                                  (cd)->size >= GNOME_Vertigo_PANEL_MEDIUM)
 
 	const char *time_format;
 	const char *date_format;
 	char       *clock_format;
+	PangoFontDescription *font_desc;
+        gint font_factor;
 
-	if (cd->format == CLOCK_FORMAT_12)
-		time_format = cd->showseconds ? _("%l:%M:%S %p") : _("%l:%M %p");
-	else
-		time_format = cd->showseconds ? _("%H:%M:%S") : _("%H:%M");
-
-	if (!cd->showdate)
-		clock_format = g_strdup (time_format);
-
-	else {
-		/* translators: replace %e with %d if, when the day of the
-		 *              month as a decimal number is a single digit, it
-		 *              should begin with a 0 in your locale (e.g. "May
-		 *              01" instead of "May  1").
+	if (USE_MUL_LINE_FORMAT (cd)){
+		/* translators: reverse the order of these arguments
+		 *              if the time should come before the
+		 *              date on a clock in your locale.
 		 */
-		date_format = _("%a %b %e");
-
-		if (USE_TWO_LINE_FORMAT (cd))
-			/* translators: reverse the order of these arguments
-			 *              if the time should come before the
-			 *              date on a clock in your locale.
-			 */
-			clock_format = g_strdup_printf (_("%1$s\n%2$s"),
-							date_format, time_format);
-		else
-			/* translators: reverse the order of these arguments
-			 *              if the time should come before the
-			 *              date on a clock in your locale.
-			 */
-			clock_format = g_strdup_printf (_("%1$s, %2$s"),
-							date_format, time_format);
+		if (cd->size >= 65){
+			font_factor = 7;
+                        if (cd->format == CLOCK_FORMAT_12)
+                                time_format = cd->showseconds ? _("%l:%M:%S %p") : _("%l:%M %p");
+                        else
+                                time_format = cd->showseconds ? _("%H:%M:%S") : _("%H:%M");
+                        date_format = _("%a %b %e");
+                }
+                else if (cd->size < 65 && cd->size >= 30){
+                        if (cd->size >= 40) font_factor = 7;
+                        else font_factor = 6;
+                        if (cd->format == CLOCK_FORMAT_12)
+                                time_format = cd->showseconds ? _("%l:%M\n%S %p") : _("%l:%M\n%p");
+                        else
+                                time_format = cd->showseconds ? _("%H:%M\n%S") : _("%H:%M");
+                        date_format = _("%a\n%b %e");
+                }
+                else {
+                        font_factor = 6;
+                        if (cd->format == CLOCK_FORMAT_12)
+                                time_format = cd->showseconds ? _("%l\n%M\n%S\n%p") : _("%l\n%M\n%p");
+                        else
+                                time_format = cd->showseconds ? _("%H\n%M\n%S") : _("%H\n%M");
+                        date_format = _("%a\n%b\n%e");
+                }
+                font_desc = pango_font_description_new ();
+                pango_font_description_set_size (font_desc, PANGO_SCALE * font_factor );
+                gtk_widget_modify_font (GTK_LABEL (cd->clockw), font_desc);
+                if (!cd->showdate)
+                        clock_format = g_strdup (time_format);
+                else
+                        clock_format = g_strdup_printf (_("%1$s\n%2$s"),
+                                                        date_format, time_format);
+	}
+	else{
+		if (cd->format == CLOCK_FORMAT_12)
+                        time_format = cd->showseconds ? _("%l:%M:%S %p") : _("%l:%M %p");
+                else
+                        time_format = cd->showseconds ? _("%H:%M:%S") : _("%H:%M");
+                if (!cd->showdate)
+                        clock_format = g_strdup (time_format);
+                else {
+                        /* translators: reverse the order of these arguments
+                         *              if the time should come before the
+                         *              date on a clock in your locale.
+                         */
+                        date_format = _("%a %b %e");
+                        clock_format = g_strdup_printf (_("%1$s, %2$s"),
+                                                        date_format, time_format);
+                 }
 	}
-
 	g_free (cd->timeformat);
 	cd->timeformat = g_locale_from_utf8 (clock_format, -1, NULL, NULL, NULL);
 	/* let's be paranoid */
@@ -318,7 +344,7 @@
 
 	g_free (clock_format);
 
-#undef USE_TWO_LINE_FORMAT
+#undef USE_MUL_LINE_FORMAT
 }
 
 /* sets accessible name and description for the widget */
