Deníček Jakuba "Chrastyho" Kottnauera

Developer & IT Enthusiasist 
Tagováno

titanium

 

Úpravy Windows Mobile 6.5 plug-inu, Titania

Včera po měsíci vyšla nová verze mojí nejoblíbenější ROM pro HTC Raphael, která se jmenuje Proven, tentokrát je ve verzi 4.1 (Proven ROMky používám téměř půl roku a nikdy žádný problém, neměnil bych). Oproti trojkové řadě je zde ale klíčová změna – tato ROM už není postavená na WM6.1, ale na WM6.5, konkrétně na nejnovějším buildu 21222. Možnosti úprav hlavního plug-inu, známého také jako Titania, mě doslova učarovaly svou jednoduchostí.

Pro začátek si ukažme, jak vypadá tento plug-in v téměř defaultním stavu (je jen změněna tapeta a dva panely – Facebook a oblíbené kontakty).

?ui=2&view=att&th=125893eae1459060&attid=0.1&disp=attd&realattid=ii_125893eae1459060&zw

Kouzlo je v tom, že všechny tyto panely jsou napsány XML syntaxí v souboru \Windows\Titanium_YYYxZZZ.cpr, kde YYYxZZZ je rozlišení, v případě Touch Pro jsou tedy soubory dva, a to Titanium_480x640.cpr a Titanium_640x480, pro portrait, respektive landscape režim. Na ukázku se podíváme například na definici panelu “phone”:

<!-- Phone templates --> 
<Layer ID="PhoneExpanded" Visible="False" Width="480" Height="164" Clip="False"> 
   <Layer ID="Page" Clip="False"> 
    <!-- Icon on upper right side --> 
    <Image ID="Icon" Left="376" Top="-26" Width="86" Height="114" /> 
     <Layer ID="TextPanel"> 
      <!-- Line 1 --> 
      <Text ID="Text 1" Left="20" Top="52" Width="348" Height="42" FontFamily="Tahoma" FontSize="10" FontStyle="Bold" Wrap="False" VerticalAlignment="Top" Trimming="EllipsisCharacter"> 
         <TextStage TextOffsetType="TextOffsetDropBottomRight" Color="#00000000" TextOffset="1" BlurFactor="3" Alpha="1.0" /> 
        <TextStage TextOffsetType="TextOffsetNone" Color="#FFFFFFFF" /> 
       </Text> 
      <!-- Line 2 --> 
      <Text ID="Text 2" Left="20" Top="86" Width="348" Height="30" FontFamily="Tahoma" FontSize="9" FontStyle="Regular" Wrap="False" VerticalAlignment="Top" Trimming="EllipsisCharacter"> 
         <TextStage TextOffsetType="TextOffsetDropBottomRight" Color="#00000000" TextOffset="1" BlurFactor="3" Alpha="1.0" /> 
        <TextStage TextOffsetType="TextOffsetNone" Color="#FFFFFFFF" /> 
       </Text> 
      <!-- Text 3 used for "single line" layout --> 
      <Text ID="Text 3" Left="20" Top="66" Width="348" Height="42" FontFamily="Tahoma" FontSize="10" FontStyle="Bold" Wrap="False" VerticalAlignment="Top" Trimming="EllipsisCharacter"> 
         <TextStage TextOffsetType="TextOffsetDropBottomRight" Color="#00000000" TextOffset="1" BlurFactor="3" Alpha="1.0" /> 
        <TextStage TextOffsetType="TextOffsetNone" Color="#FFFFFFFF" /> 
       </Text> 
    </Layer> 
  </Layer> 
</Layer> 
<Layer ID="PhoneCondensed" Visible="False" Width="480" Height="68"> 
  <Layer ID="Page"> 
     <!-- Plugin Label --> 
    <Text ID="PluginLabel" Left="20" Top="8" Width="440" Height="68" FontFamily="Tahoma" FontSize="18" FontStyle="Regular" Wrap="False" VerticalAlignment="Top" Trimming="EllipsisCharacter" InnerTextType="Resource" Text="cmhomeres.dll,1020"> 
       <TextStage TextOffsetType="TextOffsetDropBottomRight" Color="#00000000" TextOffset="1" BlurFactor="3" Alpha="1.0" /> 
      <TextStage TextOffsetType="TextOffsetNone" Color="#FFFFFFFF" /> 
     </Text> 
    <!-- Text 1 is not used --> 
    <Text ID="Text 1" Left="0" Top="8" Width="100" Height="26" FontFamily="Tahoma" FontSize="10.5" FontStyle="Regular" Wrap="False" VerticalAlignment="Middle" Trimming="EllipsisCharacter"> 
       <TextStage TextOffsetType="TextOffsetDropBottomRight" Color="#00000000" TextOffset="1" BlurFactor="3" Alpha="1.0" /> 
      <TextStage TextOffsetType="TextOffsetNone" Color="#FFFFFFFF" /> 
     </Text> 
    <!-- Notification Count --> 
    <Text ID="Text 2" Left="0" Top="8" Width="100" Height="40" FontFamily="Tahoma" FontSize="10.5" FontStyle="Regular" Wrap="False" VerticalAlignment="Top" Trimming="EllipsisCharacter"> 
       <TextStage TextOffsetType="TextOffsetDropBottomRight" Color="#00000000" TextOffset="1" BlurFactor="3" Alpha="1.0" /> 
      <TextStage TextOffsetType="TextOffsetNone" Color="#FFFFFFFF" /> 
     </Text> 
  </Layer> 
</Layer>

Když si kód pečlivě prohlédnete, zjistíte, že celý panel tvoří dvě XML větve – xxxExpanded a xxxCondensed. PhoneExpanded je logicky stav, kdy je panel označený, zatímco PhoneCondensed reprezentuje neoznačený panel (což je panel “phone” ve screenshotu výše). Pokud jste někdy viděli HTML kód, nemělo by pro vás být pochopení moc velký problém.

Před jakýmikoliv změnami si původní soubor zazálohujte!

Teď už si můžeme upravovat design jednotlivých panelů, můžete si například přeložit popisky, změnit velikost a typ písma, vše zarovnat vpravo, atd. Je to jen na vás, jen neměňte atributy ID, podle kterých DLL tohoto plug-inu nahrává informace:)

Jediné místo na které upozorním, je změna textu na panelu, vezměte si třeba tento úryvek:

<Text ID="PluginLabel" Left="20" Top="8" Width="440" Height="68" FontFamily="Tahoma" FontSize="18" FontStyle="Regular" Wrap="False" VerticalAlignment="Top" Trimming="EllipsisCharacter" InnerTextType="Resource" Text="cmhomeres.dll,1020">

Atribut Text, který se stará o zobrazení samotného popisku, se řídí podle atributu InnerTextType, ve kterém je defaultně hodnota Resource, Text tedy načítá data z nějaké resource. Pokud chceme zobrazit náš vlastní text, stačí atribut InnerTextType smazat:

<Text ID="PluginLabel" Left="20" Top="8" Width="440" Height="68" FontFamily="Tahoma" FontSize="18" FontStyle="Regular" Wrap="False" VerticalAlignment="Top" Trimming="EllipsisCharacter" Text="telefon">

A to je vše! Hrajte si, a až provedete úpravy, stačí soubor nahrát zpět do adresáře \Windows a restartovat plug-in.

Také jsem si vzhled mírně upravil, titulky jsem si přeložil, písmo zvětšil na 22 a Tahomu nahradil Cambrií:

Loading zmínek Retweet
Tagováno »   titanium   windows mobile  

Komentáře [0]