[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21546] branches/blender2.5/blender/source /blender: made text editor margin work with different font sizes.

Campbell Barton ideasman42 at gmail.com
Sun Jul 12 09:37:26 CEST 2009


Revision: 21546
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21546
Author:   campbellbarton
Date:     2009-07-12 09:37:25 +0200 (Sun, 12 Jul 2009)

Log Message:
-----------
made text editor margin work with different font sizes.
also made it draw the width needed, was fixed at 4.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/space_text/text_draw.c
    branches/blender2.5/blender/source/blender/editors/space_text/text_intern.h
    branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h

Modified: branches/blender2.5/blender/source/blender/editors/space_text/text_draw.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_text/text_draw.c	2009-07-12 07:28:25 UTC (rev 21545)
+++ branches/blender2.5/blender/source/blender/editors/space_text/text_draw.c	2009-07-12 07:37:25 UTC (rev 21546)
@@ -1300,25 +1300,30 @@
 		linecount++;
 	}
 
+	text_font_begin(st);
+	st->cwidth= BLF_fixed_width();
+	st->cwidth= MAX2(st->cwidth, 1);
+
 	/* draw line numbers background */
 	if(st->showlinenrs) {
+		st->linenrs_tot = (int)floor(log10((float)(linecount + st->viewlines))) + 1;
+		x= TXT_OFFSET + TEXTXLOC;
+
 		UI_ThemeColor(TH_GRID);
-		glRecti(23, 0, (st->lheight==15)? 63: 59, ar->winy - 2);
+		glRecti((TXT_OFFSET-12), 0, (TXT_OFFSET-5) + TEXTXLOC, ar->winy - 2);
 	}
+	else {
+		st->linenrs_tot= 0; /* not used */
+		x= TXT_OFFSET;
+	}
+	y= ar->winy-st->lheight;
 
-	text_font_begin(st);
-	st->cwidth= BLF_fixed_width();
-	st->cwidth= MAX2(st->cwidth, 1);
-
 	/* draw cursor */
 	draw_cursor(st, ar);
 
 	/* draw the text */
 	UI_ThemeColor(TH_TEXT);
 
-	y= ar->winy-st->lheight;
-	x= (st->showlinenrs)? TXT_OFFSET + TEXTXLOC: TXT_OFFSET;
-
 	for(i=0; y>0 && i<st->viewlines && tmp; i++, tmp= tmp->next) {
 		if(st->showsyntax && !tmp->format)
 			txt_format_line(st, tmp, 0);
@@ -1330,14 +1335,8 @@
 			else
 				UI_ThemeColor(TH_TEXT);
 
-			if(((float)(i + linecount + 1)/10000.0) < 1.0) {
-				sprintf(linenr, "%4d", i + linecount + 1);
-				text_font_draw(st, TXT_OFFSET - 7, y, linenr);
-			}
-			else {
-				sprintf(linenr, "%5d", i + linecount + 1);
-				text_font_draw(st, TXT_OFFSET - 11, y, linenr);
-			}
+			sprintf(linenr, "%d", i + linecount + 1);
+			text_font_draw(st, TXT_OFFSET - 7, y, linenr);
 
 			UI_ThemeColor(TH_TEXT);
 		}

Modified: branches/blender2.5/blender/source/blender/editors/space_text/text_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_text/text_intern.h	2009-07-12 07:28:25 UTC (rev 21545)
+++ branches/blender2.5/blender/source/blender/editors/space_text/text_intern.h	2009-07-12 07:37:25 UTC (rev 21546)
@@ -58,7 +58,7 @@
 void text_update_character_width(struct SpaceText *st);
 void text_update_cursor_moved(struct SpaceText *st, struct ARegion *ar);
 
-#define TEXTXLOC		38
+#define TEXTXLOC		(st->cwidth * st->linenrs_tot)
 
 #define SUGG_LIST_SIZE	7
 #define SUGG_LIST_WIDTH	20

Modified: branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h	2009-07-12 07:28:25 UTC (rev 21545)
+++ branches/blender2.5/blender/source/blender/makesdna/DNA_space_types.h	2009-07-12 07:37:25 UTC (rev 21546)
@@ -294,7 +294,7 @@
 	short flags, menunr;	
 
 	short lheight;		/* user preference */
-	short cwidth;		/* runtime computed */
+	char cwidth, linenrs_tot;		/* runtime computed, character width and the number of chars to use when showing line numbers */
 	int left;
 	int showlinenrs;
 	int tabnumber;





More information about the Bf-blender-cvs mailing list