diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.ja | 5 | ||||
-rw-r--r-- | src/compose.c | 9 | ||||
-rw-r--r-- | src/gtkshruler.c | 36 | ||||
-rw-r--r-- | src/gtkshruler.h | 8 |
5 files changed, 52 insertions, 11 deletions
@@ -1,3 +1,8 @@ +2007-04-05 + + * src/compose.c: added margin to the text view. + * src/gtkshruler.[ch]: added new APIs for tick start position. + 2007-04-04 * libsylph/procmime.c: procmime_scan_multipart_message(): use heap diff --git a/ChangeLog.ja b/ChangeLog.ja index 15d5f803..5ac4ed92 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,3 +1,8 @@ +2007-04-05 + + * src/compose.c: テキストビューにマージンを追加。 + * src/gtkshruler.[ch]: 目盛りの開始位置のための新しい API を追加。 + 2007-04-04 * libsylph/procmime.c: procmime_scan_multipart_message(): 読み込み diff --git a/src/compose.c b/src/compose.c index d1979af1..fd468ad0 100644 --- a/src/compose.c +++ b/src/compose.c @@ -165,6 +165,8 @@ typedef enum #define MAX_REFERENCES_LEN 999 +#define TEXTVIEW_MARGIN 6 + static GdkColor quote_color = {0, 0, 0, 0xbfff}; static GList *compose_list = NULL; @@ -4510,8 +4512,9 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode) ruler = gtk_shruler_new(); gtk_ruler_set_range(GTK_RULER(ruler), 0.0, 100.0, 1.0, 100.0); - gtk_box_pack_start(GTK_BOX(ruler_hbox), ruler, TRUE, TRUE, - BORDER_WIDTH); + gtk_shruler_set_start_pos(GTK_SHRULER(ruler), + BORDER_WIDTH + TEXTVIEW_MARGIN); + gtk_box_pack_start(GTK_BOX(ruler_hbox), ruler, TRUE, TRUE, 0); /* text widget */ scrolledwin = gtk_scrolled_window_new(NULL, NULL); @@ -4528,6 +4531,8 @@ static Compose *compose_create(PrefsAccount *account, ComposeMode mode) buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text)); gtk_text_view_set_editable(GTK_TEXT_VIEW(text), TRUE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD); + gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text), TEXTVIEW_MARGIN); + gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text), TEXTVIEW_MARGIN); clipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY); gtk_text_buffer_add_selection_clipboard(buffer, clipboard); sig_tag = gtk_text_buffer_create_tag(buffer, "signature", NULL); diff --git a/src/gtkshruler.c b/src/gtkshruler.c index 05a78764..d4a72d57 100644 --- a/src/gtkshruler.c +++ b/src/gtkshruler.c @@ -1,6 +1,7 @@ /* GtkSHRuler * - * Copyright (C) 2000-2005 Alfons Hoogervorst & The Sylpheed Claws Team + * Copyright (C) 2000-2005 Alfons Hoogervorst & The Sylpheed Claws Team + * Copyright (C) 2007 Hiroyuki Yamamoto * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -105,6 +106,7 @@ gtk_shruler_init (GtkSHRuler * shruler) widget = GTK_WIDGET (shruler); widget->requisition.width = widget->style->xthickness * 2 + 1; widget->requisition.height = widget->style->ythickness * 2 + RULER_HEIGHT; + shruler->start_pos = 0; } @@ -114,6 +116,22 @@ gtk_shruler_new(void) return GTK_WIDGET( g_object_new( gtk_shruler_get_type(), NULL ) ); } +void +gtk_shruler_set_start_pos(GtkSHRuler *ruler, gint pos) +{ + g_return_if_fail (GTK_IS_SHRULER (ruler)); + + ruler->start_pos = pos; +} + +gint +gtk_shruler_get_start_pos(GtkSHRuler *ruler) +{ + g_return_if_fail (GTK_IS_SHRULER (ruler)); + + return ruler->start_pos; +} + static void gtk_shruler_draw_ticks(GtkRuler *ruler) { @@ -159,27 +177,27 @@ gtk_shruler_draw_ticks(GtkRuler *ruler) /* assume ruler->max_size has the char width */ /* i is increment of char_width, pos is label number * y position is based on height of widget itself */ - for ( i = 0, pos = 0; i < widget->allocation.width - xthickness; i += ruler->max_size, pos++ ) { + for ( pos = GTK_SHRULER(ruler)->start_pos, i = 0; pos < widget->allocation.width - xthickness; pos += ruler->max_size, i++ ) { gint length = height / 8; - if ( pos % 10 == 0 ) length = ( 2 * height / 3 ); - else if ( pos % 5 == 0 ) length = ( height / 3 ); + if ( i % 10 == 0 ) length = ( 2 * height / 3 ); + else if ( i % 5 == 0 ) length = ( height / 3 ); gdk_draw_line(ruler->backing_store, gc, - i, height + ythickness, - i, height - length); + pos, height + ythickness, + pos, height - length); - if ( pos % 10 == 0 ) { + if ( i % 10 == 0 ) { gchar buf[8]; PangoLayout *layout; /* draw label */ - g_snprintf(buf, sizeof buf, "%d", pos); + g_snprintf(buf, sizeof buf, "%d", i); layout = gtk_widget_create_pango_layout (GTK_WIDGET(ruler), buf); - gdk_draw_layout(ruler->backing_store, gc, i + 2, + gdk_draw_layout(ruler->backing_store, gc, pos + 2, 0, layout); g_object_unref(layout); diff --git a/src/gtkshruler.h b/src/gtkshruler.h index bf7e0cde..abe56bf7 100644 --- a/src/gtkshruler.h +++ b/src/gtkshruler.h @@ -1,5 +1,6 @@ /* GTKSHRuler * Copyright (C) 2000-2004 Alfons Hoogervorst & The Sylpheed Claws Team + * Copyright (C) 2007 Hiroyuki Yamamoto * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -41,6 +42,8 @@ typedef struct _GtkSHRulerClass GtkSHRulerClass; struct _GtkSHRuler { GtkHRuler ruler; + + gint start_pos; }; struct _GtkSHRulerClass @@ -51,6 +54,11 @@ struct _GtkSHRulerClass GType gtk_shruler_get_type (void); GtkWidget* gtk_shruler_new (void); + +void gtk_shruler_set_start_pos (GtkSHRuler *ruler, + gint pos); +gint gtk_shruler_get_start_pos (GtkSHRuler *ruler); + void gtk_shruler_set_pos (GtkSHRuler *ruler, gfloat pos); |