Enlightenment CVS committal

Author  : dj2
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_text.c 


Log Message:
- if we try to get a formatting value from the text and there is either no
  formatting node, or no context on that node (happens when no text has been
  entered so there is no formatting nodes) we get the data from the default
  context

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_text.c,v
retrieving revision 1.151
retrieving revision 1.152
diff -u -3 -r1.151 -r1.152
--- ewl_text.c  6 Jan 2007 12:00:17 -0000       1.151
+++ ewl_text.c  6 Jan 2007 12:16:54 -0000       1.152
@@ -1180,8 +1180,19 @@
        DCHECK_TYPE_RET("t", t, EWL_TEXT_TYPE, NULL);
 
        fmt = ewl_text_fmt_get(t, char_idx);
-       if (fmt && fmt->tx && fmt->tx->font)
-               font = strdup(fmt->tx->font);
+       if (fmt && fmt->tx)
+       {
+               if (fmt->tx->font)
+                       font = strdup(fmt->tx->font);
+       }
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               if (tx->font) font = strdup(tx->font);
+               ewl_text_context_release(tx);
+       }
 
        DRETURN_PTR(font, DLEVEL_STABLE);
 }
@@ -1273,8 +1284,19 @@
        DCHECK_TYPE_RET("t", t, EWL_TEXT_TYPE, NULL);
 
        fmt = ewl_text_fmt_get(t, char_idx);
-       if (fmt && fmt->tx && fmt->tx->font_source)
-               source = strdup(fmt->tx->font_source);
+       if (fmt && fmt->tx)
+       {
+               if (fmt->tx->font_source)
+                       source = strdup(fmt->tx->font_source);
+       }
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               if (tx->font_source) source = strdup(tx->font_source);
+               ewl_text_context_release(tx);
+       }
 
        DRETURN_PTR(source, DLEVEL_STABLE);
 }
@@ -1345,14 +1367,26 @@
 ewl_text_font_size_get(Ewl_Text *t, unsigned int char_idx)
 {
        Ewl_Text_Fmt *fmt;
+       int size = 0;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR_RET("t", t, 0);
        DCHECK_TYPE_RET("t", t, EWL_TEXT_TYPE, 0);
 
        fmt = ewl_text_fmt_get(t, char_idx);
+       if (fmt && fmt->tx)
+               size = fmt->tx->size;
+
+       else
+       {
+               Ewl_Text_Context *tx;
 
-       DRETURN_INT(((fmt && fmt->tx) ? fmt->tx->size : 0), DLEVEL_STABLE);
+               tx = ewl_text_context_default_create(t);
+               size = tx->size;
+               ewl_text_context_release(tx);
+       }
+
+       DRETURN_INT(size, DLEVEL_STABLE);
 }
 
 /**
@@ -1456,6 +1490,17 @@
                if (b) *b = fmt->tx->color.b;
                if (a) *a = fmt->tx->color.a;
        }
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               if (r) *r = tx->color.r;
+               if (g) *g = tx->color.g;
+               if (b) *b = tx->color.b;
+               if (a) *a = tx->color.a;
+               ewl_text_context_release(tx);
+       }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -1526,14 +1571,26 @@
 ewl_text_align_get(Ewl_Text *t, unsigned int char_idx)
 {
        Ewl_Text_Fmt *fmt;
+       int align = 0;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR_RET("t", t, 0);
        DCHECK_TYPE_RET("t", t, EWL_TEXT_TYPE, 0);
 
        fmt = ewl_text_fmt_get(t, char_idx);
+       if (fmt && fmt->tx)
+               align = fmt->tx->align;
 
-       DRETURN_INT(((fmt && fmt->tx) ? fmt->tx->align : 0), DLEVEL_STABLE);
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               align = tx->align;
+               ewl_text_context_release(tx);
+       }
+
+       DRETURN_INT(align, DLEVEL_STABLE);
 }
 
 /**
@@ -1712,14 +1769,26 @@
 ewl_text_styles_get(Ewl_Text *t, unsigned int char_idx)
 {
        Ewl_Text_Fmt *fmt;
+       int styles = 0;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR_RET("t", t, 0);
        DCHECK_TYPE_RET("t", t, EWL_TEXT_TYPE, 0);
 
        fmt = ewl_text_fmt_get(t, char_idx);
+       if (fmt && fmt->tx)
+               styles = fmt->tx->styles;
+
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               styles = tx->styles;
+               ewl_text_context_release(tx);
+       }
 
-       DRETURN_INT(((fmt && fmt->tx) ? fmt->tx->styles : 0), DLEVEL_STABLE);
+       DRETURN_INT(styles, DLEVEL_STABLE);
 }
 
 /**
@@ -1796,14 +1865,26 @@
 ewl_text_wrap_get(Ewl_Text *t, unsigned int char_idx)
 {
        Ewl_Text_Fmt *fmt;
+       int wrap = 0;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR_RET("t", t, 0);
        DCHECK_TYPE_RET("t", t, EWL_TEXT_TYPE, 0);
 
        fmt = ewl_text_fmt_get(t, char_idx);
+       if (fmt && fmt->tx)
+               wrap = fmt->tx->wrap;
+
+       else
+       {
+               Ewl_Text_Context *tx;
 
-       DRETURN_INT(((fmt && fmt->tx) ? fmt->tx->wrap : 0), DLEVEL_STABLE);
+               tx = ewl_text_context_default_create(t);
+               wrap = tx->wrap;
+               ewl_text_context_release(tx);
+       }
+
+       DRETURN_INT(wrap, DLEVEL_STABLE);
 }
 
 /**
@@ -1907,6 +1988,17 @@
                if (b) *b = fmt->tx->style_colors.bg.b;
                if (a) *a = fmt->tx->style_colors.bg.a;
        }
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               if (r) *r = tx->style_colors.bg.r;
+               if (g) *g = tx->style_colors.bg.g;
+               if (b) *b = tx->style_colors.bg.b;
+               if (a) *a = tx->style_colors.bg.a;
+               ewl_text_context_release(tx);
+       }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -2012,6 +2104,17 @@
                if (b) *b = fmt->tx->style_colors.glow.b;
                if (a) *a = fmt->tx->style_colors.glow.a;
        }
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               if (r) *r = tx->style_colors.glow.r;
+               if (g) *g = tx->style_colors.glow.g;
+               if (b) *b = tx->style_colors.glow.b;
+               if (a) *a = tx->style_colors.glow.a;
+               ewl_text_context_release(tx);
+       }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -2117,6 +2220,17 @@
                if (b) *b = fmt->tx->style_colors.outline.b;
                if (a) *a = fmt->tx->style_colors.outline.a;
        }
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               if (r) *r = tx->style_colors.outline.r;
+               if (g) *g = tx->style_colors.outline.g;
+               if (b) *b = tx->style_colors.outline.b;
+               if (a) *a = tx->style_colors.outline.a;
+               ewl_text_context_release(tx);
+       }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -2222,6 +2336,17 @@
                if (b) *b = fmt->tx->style_colors.shadow.b;
                if (a) *a = fmt->tx->style_colors.shadow.a;
        }
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               if (r) *r = tx->style_colors.shadow.r;
+               if (g) *g = tx->style_colors.shadow.g;
+               if (b) *b = tx->style_colors.shadow.b;
+               if (a) *a = tx->style_colors.shadow.a;
+               ewl_text_context_release(tx);
+       }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -2327,6 +2452,17 @@
                if (b) *b = fmt->tx->style_colors.strikethrough.b;
                if (a) *a = fmt->tx->style_colors.strikethrough.a;
        }
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               if (r) *r = tx->style_colors.strikethrough.r;
+               if (g) *g = tx->style_colors.strikethrough.g;
+               if (b) *b = tx->style_colors.strikethrough.b;
+               if (a) *a = tx->style_colors.strikethrough.a;
+               ewl_text_context_release(tx);
+       }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -2432,6 +2568,17 @@
                if (b) *b = fmt->tx->style_colors.outline.b;
                if (a) *a = fmt->tx->style_colors.outline.a;
        }
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               if (r) *r = tx->style_colors.outline.r;
+               if (g) *g = tx->style_colors.outline.g;
+               if (b) *b = tx->style_colors.outline.b;
+               if (a) *a = tx->style_colors.outline.a;
+               ewl_text_context_release(tx);
+       }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -2536,6 +2683,17 @@
                if (g) *g = fmt->tx->style_colors.double_underline.g;
                if (b) *b = fmt->tx->style_colors.double_underline.b;
                if (a) *a = fmt->tx->style_colors.double_underline.a;
+       }
+       else
+       {
+               Ewl_Text_Context *tx;
+
+               tx = ewl_text_context_default_create(t);
+               if (r) *r = tx->style_colors.double_underline.r;
+               if (g) *g = tx->style_colors.double_underline.g;
+               if (b) *b = tx->style_colors.double_underline.b;
+               if (a) *a = tx->style_colors.double_underline.a;
+               ewl_text_context_release(tx);
        }
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);



-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to