 HTML󥰤ˤĤ

 ⡹٤ΥƥȤήߤ1ö᤯ΤϤ

GtkTextTagHTMLǤΥ˸ΩƤƽŤͤŬѤƤΤϡä
®ŪˤʤΰƶͿƤͽۤǤ롣
̯ե󥰤30%®ʤä衩


 HTMLΥˤѹȤʤäCSSݡȤϵȡ

GtkTextBuffer(OchushaHypertextBuffer)ήޤƤΥƥҤ
ФŬѤGtkTextTagҤȤĤ˸ǤϤʤΤǡǽ®
Ʊ˼¸Ǥǽ⤢롣


 





 Τäġ
- HTMLaΥ̵뤵Τ򲿤Ȥ
  󥯤ξޤȤappendƤΤ
    ochusha_hypertext_buffer_push_link_tag()ߤΤƳɬפ
    롣
    ѡ
    ǤϲǤʤ꤬롣GtkTextTagλͤǡ
    ̤ͥŪ˷ޤäƤ롣
    <font color="forestgreen"><b><a href="mailto:sage">̾</a></b></font>
    ʴΤĤǥ󥯤ФˤʤΤ<font color="">ʥ
    ̤ͥ<a>㤯ꤵƤ뤬JBBSοեȥåפξ硢
    <font color="forestgreen"><b><a href="mailto:sage">̾</b><font
    color="red">ȥå</font><b></a></b></font>Τ褦ˤʤϤ
    ξ硢̤ͥΤ<font color="red">GtkTextTag
    foregroundץѥƥ<a href="mailto:sage">GtkTextTag
    Ƥforegroundץѥƥ餱뤫顢̵뤵롣
  бȤߤHTMLϢϤ⤦٤⤷ʤ

- ΤʤHTMLǤμ갷򲿤Ȥ
  HTMLǤʬϥñ̵뤹пˤϤʤʤΤǡ
  ΤޤޤǤ⤵ۤɲľФʻˤϤʤʤƥ֥åǤȥ
  饤ǤǼ갷Ѥ뤯餤ϤƤɤ

- 륷Ȥ򤢤٥ݡȤ
  HTMLѡƥĥ꡼äƤ櫓ǤϤʤ顢ʥݡȤ
  ̵ʤ꾮֥åȤʤ饵ݡȤǤʵ롣


 GtkTextTagˤĤ
  GtkTextBuffer/GtkTextViewȤΤ뤳ȤϤʤΤǡ쥤
ȤGtkTextTagȤˤѤʤȤʤΤGtkTextTag
priorityμ갷HTMLκǾ롼ȥޥåʤȤ
н褹뤿ˤϡpriorityHTML˸줿Ǥζ夬̷⤷
̷褹뿷GtkTextTagäƻȤȤߤƳ뤷ʤ
  λȤߤƳɬפȤʤΤΰʲεǽ

- HTMLΥƥȤǻȤ褦ȤƤHTMLǤб
  GtkTextTagΥƥȤǤθ̤ĤɤȽꤹ롣
- ɬפʸ̤ɽGtkTextTag򿷤priorityǺ롣

  륳ƥȤGtkTextTagθ̤ĤɤȽˤϡ
ΥƥȤŪŬѤƤGtkTextTagΤɬפ롣
ߤfontϢGtkTextTagad-hoc˥åǴƤ뤬
HTMLǤб̤GtkTextTagƤ˳ĥ٤

  륳ƥȤGtkTextTag *tagƤθ̤ȯ뤫ɤ
ϡå˾äƤơtagpriority⤤priorityƤ
GtkTextTagθ̷̤⤬ʤȽꤹɬפ롣ȽΤ
GtkTextTagpropertyg_object_get()ɤΤϤˤ⤯դʤ
ǤꤿʤHTMLRendererTagManagerɤǡGtkTextTagproperty
ꤹˡꤷpropertyӥåȥ٥ǵϿƤС
黻ȽǤ

̤ѤʤΤޤGtkTextTagproperty⡢HTMLŪstyleɽ
ȤʤΤ¤٤ȰʲΤ褦ˤʤ롣

 ȤǽΤ

 ֥å
indent (CSS:text-indent)
justification (CSS:text-align)
paragraph-background-gdk (CSS:background-color)
backgroundξƱ͡GTK+-2.8ʹ)
left-margin (CSS:margin)
right-margin (CSS:margin)

 饤
rise (subsup)
background-gdk (CSS:background-color)
backgroundwriteѤʤΤɤ߽ФΤϤä

 
foreground-gdk (CSS:color)
backgroundƱ
background-stipple (CSS:background-image)
GdkPixmapŽ뤫
strikethrough (CSS:text-decorationɤؤ)
underline (CSS:text-decorationɤؤ)
family (CSS:font-familyɤؤ)
font
scale (CSS:font-sizeɤؤ)
size-points (CSS:font-sizeɤؤsizeץѥƥƱ)
stretch (CSS:font-stretchɤؤ)
style (CSS:font-styleɤؤ)
variant (CSS:font-variantɤؤ)
weight (CSS:font-weightɤؤ)
pixels-above-lines (CSS:line-height׻)
pixels-below-lines (CSS:line-height׻)


 α
direction (&rlm;&lrm;ʤɤηɸबХݡȤ뤫)
pixels-inside-wrap


 ̵뤹
background-full-height (TRUEɤΤǤ褦)
editable (FALSE)
foreground-stipple (ʸʬGdkPixmapǽ񤱤롩 Ȥˤʤ)
invisible (formȤϥݡȤʤΤ)
language (ܸȤѸ줷ݡȤǤʤΤ)
tabs (¿ʬȤƻ̵)
wrap-mode (Ǥϻꤵʤ)



 бǤHTML
 
br
img
link (륷ȤΤ)
# hrGtkHSeparatorappend_widgetƤߤ褦


 ü
style
title


 inline
a
abbr
acronym
address
b
big
cite
code
em
font
i
object (imgβΤб)
q
s
small
span
strike
strong
sub
sup
tt
u
var


 block
blockquote
body
center
dd
div
dl
dt
h[1-6]
head
html
li
ol
p
pre (OchushaHypertextBufferǤζɬפ)
ul


 쥤Ȥˡ

ߤHTMLSAXParsercharactersΥХå༡Ū
ochusha_hypertext_buffer_append_text()Ƥ뤬HTMLŪǤڤ
ޤǥƥ(#PCDATA)ίƤޤȤɲä褦ˤ٤

CSSΥƥȤβߤʤɤϼ¸ǤʤΤ̵롣


 饤ǤΥ
HTMLνλ<br>ʳHTMLγϥ줿ǤޤίäƤ
ƥȤHTMLŪʥƥȥåΥȥåפΥ֥Ȥ
бGtkTextTagѰդȤäOchushaHypertextBufferɲä
롣ίäƤƥȤ϶ˤʤ롣brǤξñ˥ƥȥХåե
"\n"ɲästart_of_lineե饰trueˤ롣"\n"ɲä˥ƥ
ȥХåեĴ١

饤ѤHTMLŪʥƥȥå(ƻҴطɽꥹȡ
å)˸줿HTMLǤγϥɽ֥ȤѤࡣ

HTMLǤνλξϥƥȥå餽

HTMLSAXParsercharactersϥɥǤϡstart_of_lineե饰trueξ
ʸƬwhitespaceƺʸ˸줿Ϣ³
Ĥζ֤ĤĥƥȥХåեɲä롣start_of_line
饰trueξ֤ǥƥȥХåեʸɲä줿ϡ
start_of_lineե饰falseѤ롣


 ֥åǤΥ
ߤHTMLΥ֥åǤνλ⤷̤Υ֥åǤγϥ
줿顢ίäƤƥȤOchushaHypertextBufferɲä롣λ
start_of_lineե饰falseξˤϤ餫Хåե"\n"ɲ
ƤλХåեξˤϤ

start_of_lineե饰trueѤ롣

饤ѤΥƥȥåˤ(饤Ǥ
˥֥åǤ뤳ȤϤʤ)

ϥ줿ˤϡ֥åѤΥƥȥåˤ
HTMLǤγϥɽ֥ȤѤࡣλ줿
ϡƥȥåб륿֥ȤΤ



 ֥(HTMLTag)
class HTMLTag
{
private:
};

̾бĤõɬ


 륳ƥȤˤHTMLǤбGtkTextTagõ
