GUIDEMO_Font.c
上传用户:zbk8730
上传日期:2017-08-10
资源大小:12168k
文件大小:26k
源码类别:

uCOS

开发平台:

C/C++

  1. /*
  2. *********************************************************************************************************
  3. *                                                uC/GUI
  4. *                        Universal graphic software for embedded applications
  5. *
  6. *                       (c) Copyright 2002, Micrium Inc., Weston, FL
  7. *                       (c) Copyright 2002, SEGGER Microcontroller Systeme GmbH
  8. *
  9. *              礐/GUI is protected by international copyright laws. Knowledge of the
  10. *              source code may not be used to write a similar product. This file may
  11. *              only be used in accordance with a license and should not be redistributed
  12. *              in any way. We appreciate your understanding and fairness.
  13. *
  14. ----------------------------------------------------------------------
  15. File        : GUIDEMO_Font.c
  16. Purpose     : GUIDEMO font routines
  17. ----------------------------------------------------------------------
  18. */
  19. #include <stddef.h>
  20. #include "GUI.H"
  21. #include "GUIDEMO.H"
  22. /*********************************************************************
  23. *
  24. *       Japanese SJIS font
  25. *
  26. **********************************************************************
  27. */
  28. /* SPACE */
  29. static const unsigned char _acFontSJIS16_0020[ 16] = { /* code 0020 */
  30.   ________,
  31.   ________,
  32.   ________,
  33.   ________,
  34.   ________,
  35.   ________,
  36.   ________,
  37.   ________,
  38.   ________,
  39.   ________,
  40.   ________,
  41.   ________,
  42.   ________,
  43.   ________,
  44.   ________,
  45.   ________};
  46. /* HYPHEN-MINUS */
  47. static const unsigned char _acFontSJIS16_002D[ 16] = { /* code 002D */
  48.   ________,
  49.   ________,
  50.   ________,
  51.   ________,
  52.   ________,
  53.   ________,
  54.   ________,
  55.   _XXXXXX_,
  56.   ________,
  57.   ________,
  58.   ________,
  59.   ________,
  60.   ________,
  61.   ________,
  62.   ________,
  63.   ________};
  64. /* QUESTION MARK */
  65. static const unsigned char _acFontSJIS16_003F[ 16] = { /* code 003F */
  66.   ________,
  67.   ___XX___,
  68.   __X__X__,
  69.   _XX___X_,
  70.   _XX___X_,
  71.   ______X_,
  72.   _____X__,
  73.   ____X___,
  74.   ___X____,
  75.   ___X____,
  76.   ________,
  77.   ________,
  78.   ___X____,
  79.   __XXX___,
  80.   ___X____,
  81.   ________};
  82. /* LATIN CAPITAL LETTER H */
  83. static const unsigned char _acFontSJIS16_0048[ 16] = { /* code 0048 */
  84.   ________,
  85.   XXX_XXX_,
  86.   _X___X__,
  87.   _X___X__,
  88.   _X___X__,
  89.   _X___X__,
  90.   _X___X__,
  91.   _XXXXX__,
  92.   _X___X__,
  93.   _X___X__,
  94.   _X___X__,
  95.   _X___X__,
  96.   _X___X__,
  97.   XXX_XXX_,
  98.   ________,
  99.   ________};
  100. /* LATIN CAPITAL LETTER L */
  101. static const unsigned char _acFontSJIS16_004C[ 16] = { /* code 004C */
  102.   ________,
  103.   XXX_____,
  104.   _X______,
  105.   _X______,
  106.   _X______,
  107.   _X______,
  108.   _X______,
  109.   _X______,
  110.   _X______,
  111.   _X______,
  112.   _X______,
  113.   _X____X_,
  114.   _X____X_,
  115.   XXXXXXX_,
  116.   ________,
  117.   ________};
  118. /* LATIN SMALL LETTER A */
  119. static const unsigned char _acFontSJIS16_0061[ 16] = { /* code 0061 */
  120.   ________,
  121.   ________,
  122.   ________,
  123.   ________,
  124.   ________,
  125.   ________,
  126.   _XXXX___,
  127.   X____X__,
  128.   X____X__,
  129.   __XXXX__,
  130.   _X___X__,
  131.   X____X__,
  132.   X___XX__,
  133.   _XXX_XX_,
  134.   ________,
  135.   ________};
  136. /* LATIN SMALL LETTER E */
  137. static const unsigned char _acFontSJIS16_0065[ 16] = { /* code 0065 */
  138.   ________,
  139.   ________,
  140.   ________,
  141.   ________,
  142.   ________,
  143.   ________,
  144.   ___XX___,
  145.   __X__X__,
  146.   _X____X_,
  147.   _XXXXXX_,
  148.   _X______,
  149.   _X______,
  150.   __X___X_,
  151.   ___XXX__,
  152.   ________,
  153.   ________};
  154. /* LATIN SMALL LETTER L */
  155. static const unsigned char _acFontSJIS16_006C[ 16] = { /* code 006C */
  156.   ________,
  157.   __XX____,
  158.   ___X____,
  159.   ___X____,
  160.   ___X____,
  161.   ___X____,
  162.   ___X____,
  163.   ___X____,
  164.   ___X____,
  165.   ___X____,
  166.   ___X____,
  167.   ___X____,
  168.   ___X____,
  169.   __XXX___,
  170.   ________,
  171.   ________};
  172. /* LATIN SMALL LETTER N */
  173. static const unsigned char _acFontSJIS16_006E[ 16] = { /* code 006E */
  174.   ________,
  175.   ________,
  176.   ________,
  177.   ________,
  178.   ________,
  179.   ________,
  180.   XX_XX___,
  181.   _XX__X__,
  182.   _X___X__,
  183.   _X___X__,
  184.   _X___X__,
  185.   _X___X__,
  186.   _X___X__,
  187.   XXX_XXX_,
  188.   ________,
  189.   ________};
  190. /* LATIN SMALL LETTER O */
  191. static const unsigned char _acFontSJIS16_006F[ 16] = { /* code 006F */
  192.   ________,
  193.   ________,
  194.   ________,
  195.   ________,
  196.   ________,
  197.   ________,
  198.   ___XX___,
  199.   __X__X__,
  200.   _X____X_,
  201.   _X____X_,
  202.   _X____X_,
  203.   _X____X_,
  204.   __X__X__,
  205.   ___XX___,
  206.   ________,
  207.   ________};
  208. /* LATIN SMALL LETTER R */
  209. static const unsigned char _acFontSJIS16_0072[ 16] = { /* code 0072 */
  210.   ________,
  211.   ________,
  212.   ________,
  213.   ________,
  214.   ________,
  215.   ________,
  216.   _XX_XX__,
  217.   __XX__X_,
  218.   __X___X_,
  219.   __X_____,
  220.   __X_____,
  221.   __X_____,
  222.   __X_____,
  223.   _XXX____,
  224.   ________,
  225.   ________};
  226. /* LATIN SMALL LETTER S */
  227. static const unsigned char _acFontSJIS16_0073[ 16] = { /* code 0073 */
  228.   ________,
  229.   ________,
  230.   ________,
  231.   ________,
  232.   ________,
  233.   ________,
  234.   _XXXX_X_,
  235.   X____XX_,
  236.   X_____X_,
  237.   _XX_____,
  238.   ___XXX__,
  239.   X_____X_,
  240.   XX____X_,
  241.   X_XXXX__,
  242.   ________,
  243.   ________};
  244. /* LATIN SMALL LETTER U */
  245. static const unsigned char _acFontSJIS16_0075[ 16] = { /* code 0075 */
  246.   ________,
  247.   ________,
  248.   ________,
  249.   ________,
  250.   ________,
  251.   ________,
  252.   XX__XX__,
  253.   _X___X__,
  254.   _X___X__,
  255.   _X___X__,
  256.   _X___X__,
  257.   _X___X__,
  258.   _X__XX__,
  259.   __XX_XX_,
  260.   ________,
  261.   ________};
  262. /* LATIN SMALL LETTER W */
  263. static const unsigned char _acFontSJIS16_0077[ 16] = { /* code 0077 */
  264.   ________,
  265.   ________,
  266.   ________,
  267.   ________,
  268.   ________,
  269.   ________,
  270.   XX_X_XX_,
  271.   X__X__X_,
  272.   X__X__X_,
  273.   X_X_X_X_,
  274.   X_X_X_X_,
  275.   _X___X__,
  276.   _X___X__,
  277.   _X___X__,
  278.   ________,
  279.   ________};
  280. /* LATIN SMALL LETTER X */
  281. static const unsigned char _acFontSJIS16_0078[ 16] = { /* code 0078 */
  282.   ________,
  283.   ________,
  284.   ________,
  285.   ________,
  286.   ________,
  287.   ________,
  288.   XX___XX_,
  289.   _X___X__,
  290.   __X_X___,
  291.   ___X____,
  292.   ___X____,
  293.   __X_X___,
  294.   _X___X__,
  295.   XX___XX_,
  296.   ________,
  297.   ________};
  298. /* LATIN SMALL LETTER Y */
  299. static const unsigned char _acFontSJIS16_0079[ 16] = { /* code 0079 */
  300.   ________,
  301.   ________,
  302.   ________,
  303.   ________,
  304.   ________,
  305.   ________,
  306.   XXX_XXX_,
  307.   _X___X__,
  308.   _X___X__,
  309.   __X_X___,
  310.   __X_X___,
  311.   __XX____,
  312.   ___X____,
  313.   X_X_____,
  314.   XX______,
  315.   ________};
  316. /* IDEOGRAPHIC SPACE */
  317. static const unsigned char _acFontSJIS16_8140[ 32] = { /* code 8140 */
  318.   ________,________,
  319.   ________,________,
  320.   ________,________,
  321.   ________,________,
  322.   ________,________,
  323.   ________,________,
  324.   ________,________,
  325.   ________,________,
  326.   ________,________,
  327.   ________,________,
  328.   ________,________,
  329.   ________,________,
  330.   ________,________,
  331.   ________,________,
  332.   ________,________,
  333.   ________,________};
  334. /* FULLWIDTH QUESTION MARK */
  335. static const unsigned char _acFontSJIS16_8148[ 32] = { /* code 8148 */
  336.   ________,________,
  337.   ______XX,X_______,
  338.   _____X__,_X______,
  339.   ____X___,__X_____,
  340.   ____XX__,__X_____,
  341.   ________,_X______,
  342.   ________,X_______,
  343.   _______X,________,
  344.   _______X,________,
  345.   _______X,________,
  346.   ________,________,
  347.   ________,________,
  348.   _______X,________,
  349.   _______X,________,
  350.   ________,________,
  351.   ________,________};
  352. /* HIRAGANA LETTER O */
  353. static const unsigned char _acFontSJIS16_82A8[ 32] = { /* code 82A8 */
  354.   ____XX__,________,
  355.   _____XX_,________,
  356.   _____X__,X__XX___,
  357.   _X___XXX,_____X__,
  358.   __XXXX__,______X_,
  359.   _____X__,______X_,
  360.   _____X_X,XXXX____,
  361.   _____XX_,____X___,
  362.   ____XX__,_____X__,
  363.   ___X_X__,_____X__,
  364.   _XX__X__,_____X__,
  365.   ___X_X__,X___X___,
  366.   ____XX__,_XXX____,
  367.   _____X__,________,
  368.   ________,________,
  369.   ________,________};
  370. /* HIRAGANA LETTER KA */
  371. static const unsigned char _acFontSJIS16_82A9[ 32] = { /* code 82A9 */
  372.   ________,________,
  373.   ____XX__,________,
  374.   _____XX_,________,
  375.   _____X__,________,
  376.   _X___XXX,X__XX___,
  377.   _XXXXX__,_X___X__,
  378.   ____X___,_X____X_,
  379.   ____X___,_X____X_,
  380.   ____X___,_X__XXX_,
  381.   ___X____,_X____X_,
  382.   ___X_X__,_X______,
  383.   __X___X_,X_______,
  384.   _XX____X,X_______,
  385.   _X_____X,________,
  386.   ________,________,
  387.   ________,________};
  388. /* HIRAGANA LETTER KO */
  389. static const unsigned char _acFontSJIS16_82B1[ 32] = { /* code 82B1 */
  390.   ________,________,
  391.   ________,________,
  392.   ____X___,________,
  393.   _____XXX,XXXX____,
  394.   ________,XX______,
  395.   _______X,________,
  396.   ________,________,
  397.   ________,________,
  398.   ________,________,
  399.   ________,________,
  400.   __X_____,________,
  401.   ___X____,________,
  402.   ___XX___,________,
  403.   _____XXX,XXXXX___,
  404.   ________,________,
  405.   ________,________};
  406. /* HIRAGANA LETTER SA */
  407. static const unsigned char _acFontSJIS16_82B3[ 32] = { /* code 82B3 */
  408.   _______X,X_______,
  409.   ________,X_______,
  410.   ________,X_______,
  411.   __X_____,_X_XX___,
  412.   ___XXXXX,XXX_____,
  413.   ________,_X______,
  414.   ________,__X_____,
  415.   ____XXXX,X_X_____,
  416.   ___X____,_XXX____,
  417.   __X_____,___X____,
  418.   __X_____,________,
  419.   __X_____,________,
  420.   ___XX___,________,
  421.   _____XXX,XX______,
  422.   ________,________,
  423.   ________,________};
  424. /* HIRAGANA LETTER SU */
  425. static const unsigned char _acFontSJIS16_82B7[ 32] = { /* code 82B7 */
  426.   _______X,X_______,
  427.   ________,XX______,
  428.   ________,X___X___,
  429.   XX__XXXX,XXXXXX__,
  430.   _XXX____,X_______,
  431.   _____XX_,X_______,
  432.   ____X__X,X_______,
  433.   ____X___,X_______,
  434.   ____X___,X_______,
  435.   ____X__X,X_______,
  436.   _____XX_,X_______,
  437.   _______X,________,
  438.   _______X,________,
  439.   ______X_,________,
  440.   _____X__,________,
  441.   ________,________};
  442. /* HIRAGANA LETTER TI */
  443. static const unsigned char _acFontSJIS16_82BF[ 32] = { /* code 82BF */
  444.   ________,________,
  445.   ____XX__,________,
  446.   _____X__,_XX_____,
  447.   _X___XXX,X_______,
  448.   __XXXX__,________,
  449.   ____X___,________,
  450.   ____X___,________,
  451.   ____X__X,XXX_____,
  452.   ___XXXX_,___X____,
  453.   ___XX___,____X___,
  454.   ___X____,____X___,
  455.   ________,____X___,
  456.   ________,___X____,
  457.   ________,__XX____,
  458.   _____XXX,XX______,
  459.   ________,________};
  460. /* HIRAGANA LETTER DE */
  461. static const unsigned char _acFontSJIS16_82C5[ 32] = { /* code 82C5 */
  462.   ________,________,
  463.   ________,________,
  464.   _X____XX,XXXXXX__,
  465.   __XXXX__,_XX_____,
  466.   ________,X____X__,
  467.   _______X,___X__X_,
  468.   ______X_,____X___,
  469.   ______X_,________,
  470.   _____X__,________,
  471.   _____X__,________,
  472.   _____X__,________,
  473.   ______X_,________,
  474.   ______XX,__X_____,
  475.   ________,XXXX____,
  476.   ________,________,
  477.   ________,________};
  478. /* HIRAGANA LETTER NI */
  479. static const unsigned char _acFontSJIS16_82C9[ 32] = { /* code 82C9 */
  480.   ________,________,
  481.   _XX_____,________,
  482.   __XX____,________,
  483.   __X_____,_XXXX___,
  484.   __X____X,X_______,
  485.   _X______,________,
  486.   _X______,________,
  487.   _X______,________,
  488.   _X__X___,________,
  489.   _X__X_X_,________,
  490.   _X_X__X_,________,
  491.   _X_X___X,X_______,
  492.   __XX____,_XXXXX__,
  493.   ___XX___,________,
  494.   ________,________,
  495.   ________,________};
  496. /* HIRAGANA LETTER HA */
  497. static const unsigned char _acFontSJIS16_82CD[ 32] = { /* code 82CD */
  498.   ________,________,
  499.   _XX_____,__XX____,
  500.   __XX____,___X____,
  501.   __X___X_,___XXX__,
  502.   __X____X,XXXX____,
  503.   _X______,___X____,
  504.   _X______,___X____,
  505.   _X______,___X____,
  506.   _X__X___,___X____,
  507.   _X_X____,___X____,
  508.   _X_X___X,XXXX____,
  509.   _XXX__X_,___XX___,
  510.   __X___X_,___X_X__,
  511.   __X____X,XXX_____,
  512.   ________,________,
  513.   ________,________};
  514. /* HIRAGANA LETTER N */
  515. static const unsigned char _acFontSJIS16_82F1[ 32] = { /* code 82F1 */
  516.   ________,________,
  517.   _____XX_,________,
  518.   ______XX,________,
  519.   ______X_,________,
  520.   _____X__,________,
  521.   _____X__,________,
  522.   ____X___,________,
  523.   ____XXX_,________,
  524.   ___XX__X,________,
  525.   ___X___X,_____X__,
  526.   __XX____,X____X__,
  527.   __X_____,X____X__,
  528.   _XX_____,X___X___,
  529.   _X______,_XXX____,
  530.   ________,________,
  531.   ________,________};
  532. /* KATAKANA LETTER KU */
  533. static const unsigned char _acFontSJIS16_834E[ 32] = { /* code 834E */
  534.   ________,________,
  535.   _____XX_,________,
  536.   ______XX,________,
  537.   ______X_,___X____,
  538.   _____XXX,XXXXX___,
  539.   _____X__,___X____,
  540.   ____X___,___X____,
  541.   ___X____,__X_____,
  542.   __X_____,__X_____,
  543.   ________,_X______,
  544.   ________,X_______,
  545.   _______X,________,
  546.   _____XX_,________,
  547.   ___XX___,________,
  548.   ________,________,
  549.   ________,________};
  550. /* KATAKANA LETTER SU */
  551. static const unsigned char _acFontSJIS16_8358[ 32] = { /* code 8358 */
  552.   ________,________,
  553.   ________,________,
  554.   ________,________,
  555.   ________,__X_____,
  556.   __XXXXXX,XXXX____,
  557.   ___X____,__X_____,
  558.   ________,_X______,
  559.   ________,X_______,
  560.   ________,X_______,
  561.   _______X,_X______,
  562.   ______X_,__X_____,
  563.   _____X__,___X____,
  564.   ___XX___,___XX___,
  565.   _XX_____,____X___,
  566.   ________,________,
  567.   ________,________};
  568. /* KATAKANA LETTER SMALL TU */
  569. static const unsigned char _acFontSJIS16_8362[ 32] = { /* code 8362 */
  570.   ________,________,
  571.   ________,________,
  572.   ________,________,
  573.   ________,________,
  574.   ________,________,
  575.   ______X_,__XX____,
  576.   ___X___X,___XX___,
  577.   ____X__X,___X____,
  578.   ____X___,__X_____,
  579.   ________,__X_____,
  580.   ________,_X______,
  581.   ________,X_______,
  582.   ______XX,________,
  583.   ____XX__,________,
  584.   ________,________,
  585.   ________,________};
  586. /* KATAKANA LETTER RA */
  587. static const unsigned char _acFontSJIS16_8389[ 32] = { /* code 8389 */
  588.   ________,________,
  589.   ________,__X_____,
  590.   ___XXXXX,XXXX____,
  591.   ____X___,________,
  592.   ________,____X___,
  593.   __XXXXXX,XXXXXX__,
  594.   ___X____,____X___,
  595.   ________,____X___,
  596.   ________,___X____,
  597.   ________,___X____,
  598.   ________,__X_____,
  599.   ________,_X______,
  600.   _______X,X_______,
  601.   ____XXX_,________,
  602.   ________,________,
  603.   ________,________};
  604. /* <CJK> */
  605. static const unsigned char _acFontSJIS16_8B43[ 32] = { /* code 8B43 */
  606.   ___XX___,________,
  607.   ___X____,___X____,
  608.   __XXXXXX,XXXXX___,
  609.   _X______,________,
  610.   X__XXXXX,XXX_____,
  611.   ________,________,
  612.   _XXXXXXX,XXXX____,
  613.   ________,___X____,
  614.   _______X,X__X____,
  615.   __XX___X,___X____,
  616.   ____XXX_,___X____,
  617.   ______X_,___X__X_,
  618.   _____X_X,____X_X_,
  619.   ___XX___,X___XX__,
  620.   _XX_____,_____XX_,
  621.   ________,________};
  622. /* <CJK> */
  623. static const unsigned char _acFontSJIS16_8CB3[ 32] = { /* code 8CB3 */
  624.   ________,__X_____,
  625.   __XXXXXX,XXXX____,
  626.   ________,________,
  627.   ________,________,
  628.   ________,________,
  629.   ________,____X___,
  630.   XXXXXXXX,XXXXXX__,
  631.   ____X___,X_______,
  632.   ____X___,X_______,
  633.   ____X___,X_______,
  634.   ____X___,X_______,
  635.   ___X____,X____X__,
  636.   ___X____,X____X__,
  637.   __X_____,X____XX_,
  638.   XX______,_XXXXX__,
  639.   ________,________};
  640. static const GUI_CHARINFO _FontSJIS16_CharInfo[34] = {
  641.    {   8,   8,  1, (void *)&_acFontSJIS16_0020 } /* code 0020 */
  642.   ,{   8,   8,  1, (void *)&_acFontSJIS16_002D } /* code 002D */
  643.   ,{   8,   8,  1, (void *)&_acFontSJIS16_003F } /* code 003F */
  644.   ,{   8,   8,  1, (void *)&_acFontSJIS16_0048 } /* code 0048 */
  645.   ,{   8,   8,  1, (void *)&_acFontSJIS16_004C } /* code 004C */
  646.   ,{   8,   8,  1, (void *)&_acFontSJIS16_0061 } /* code 0061 */
  647.   ,{   8,   8,  1, (void *)&_acFontSJIS16_0065 } /* code 0065 */
  648.   ,{   8,   8,  1, (void *)&_acFontSJIS16_006C } /* code 006C */
  649.   ,{   8,   8,  1, (void *)&_acFontSJIS16_006E } /* code 006E */
  650.   ,{   8,   8,  1, (void *)&_acFontSJIS16_006F } /* code 006F */
  651.   ,{   8,   8,  1, (void *)&_acFontSJIS16_0072 } /* code 0072 */
  652.   ,{   8,   8,  1, (void *)&_acFontSJIS16_0073 } /* code 0073 */
  653.   ,{   8,   8,  1, (void *)&_acFontSJIS16_0075 } /* code 0075 */
  654.   ,{   8,   8,  1, (void *)&_acFontSJIS16_0077 } /* code 0077 */
  655.   ,{   8,   8,  1, (void *)&_acFontSJIS16_0078 } /* code 0078 */
  656.   ,{   8,   8,  1, (void *)&_acFontSJIS16_0079 } /* code 0079 */
  657.   ,{  16,  16,  2, (void *)&_acFontSJIS16_8140 } /* code 8140 */
  658.   ,{  16,  16,  2, (void *)&_acFontSJIS16_8148 } /* code 8148 */
  659.   ,{  16,  16,  2, (void *)&_acFontSJIS16_82A8 } /* code 82A8 */
  660.   ,{  16,  16,  2, (void *)&_acFontSJIS16_82A9 } /* code 82A9 */
  661.   ,{  16,  16,  2, (void *)&_acFontSJIS16_82B1 } /* code 82B1 */
  662.   ,{  16,  16,  2, (void *)&_acFontSJIS16_82B3 } /* code 82B3 */
  663.   ,{  16,  16,  2, (void *)&_acFontSJIS16_82B7 } /* code 82B7 */
  664.   ,{  16,  16,  2, (void *)&_acFontSJIS16_82BF } /* code 82BF */
  665.   ,{  16,  16,  2, (void *)&_acFontSJIS16_82C5 } /* code 82C5 */
  666.   ,{  16,  16,  2, (void *)&_acFontSJIS16_82C9 } /* code 82C9 */
  667.   ,{  16,  16,  2, (void *)&_acFontSJIS16_82CD } /* code 82CD */
  668.   ,{  16,  16,  2, (void *)&_acFontSJIS16_82F1 } /* code 82F1 */
  669.   ,{  16,  16,  2, (void *)&_acFontSJIS16_834E } /* code 834E */
  670.   ,{  16,  16,  2, (void *)&_acFontSJIS16_8358 } /* code 8358 */
  671.   ,{  16,  16,  2, (void *)&_acFontSJIS16_8362 } /* code 8362 */
  672.   ,{  16,  16,  2, (void *)&_acFontSJIS16_8389 } /* code 8389 */
  673.   ,{  16,  16,  2, (void *)&_acFontSJIS16_8B43 } /* code 8B43 */
  674.   ,{  16,  16,  2, (void *)&_acFontSJIS16_8CB3 } /* code 8CB3 */
  675. };
  676. static const GUI_FONT_PROP _FontSJIS16_Prop29 = {
  677.    0x8CB3 /* first character */
  678.   ,0x8CB3 /* last character  */
  679.   ,&_FontSJIS16_CharInfo[ 33] /* address of first character */
  680.   ,(void*)0 /* pointer to next GUI_FONT_PROP */
  681. };
  682. static const GUI_FONT_PROP _FontSJIS16_Prop28 = {
  683.    0x8B43 /* first character */
  684.   ,0x8B43 /* last character  */
  685.   ,&_FontSJIS16_CharInfo[ 32] /* address of first character */
  686.   ,(void *)&_FontSJIS16_Prop29 /* pointer to next GUI_FONT_PROP */
  687. };
  688. static const GUI_FONT_PROP _FontSJIS16_Prop27 = {
  689.    0x8389 /* first character */
  690.   ,0x8389 /* last character  */
  691.   ,&_FontSJIS16_CharInfo[ 31] /* address of first character */
  692.   ,(void *)&_FontSJIS16_Prop28 /* pointer to next GUI_FONT_PROP */
  693. };
  694. static const GUI_FONT_PROP _FontSJIS16_Prop26 = {
  695.    0x8362 /* first character */
  696.   ,0x8362 /* last character  */
  697.   ,&_FontSJIS16_CharInfo[ 30] /* address of first character */
  698.   ,(void *)&_FontSJIS16_Prop27 /* pointer to next GUI_FONT_PROP */
  699. };
  700. static const GUI_FONT_PROP _FontSJIS16_Prop25 = {
  701.    0x8358 /* first character */
  702.   ,0x8358 /* last character  */
  703.   ,&_FontSJIS16_CharInfo[ 29] /* address of first character */
  704.   ,(void *)&_FontSJIS16_Prop26 /* pointer to next GUI_FONT_PROP */
  705. };
  706. static const GUI_FONT_PROP _FontSJIS16_Prop24 = {
  707.    0x834E /* first character */
  708.   ,0x834E /* last character  */
  709.   ,&_FontSJIS16_CharInfo[ 28] /* address of first character */
  710.   ,(void *)&_FontSJIS16_Prop25 /* pointer to next GUI_FONT_PROP */
  711. };
  712. static const GUI_FONT_PROP _FontSJIS16_Prop23 = {
  713.    0x82F1 /* first character */
  714.   ,0x82F1 /* last character  */
  715.   ,&_FontSJIS16_CharInfo[ 27] /* address of first character */
  716.   ,(void *)&_FontSJIS16_Prop24 /* pointer to next GUI_FONT_PROP */
  717. };
  718. static const GUI_FONT_PROP _FontSJIS16_Prop22 = {
  719.    0x82CD /* first character */
  720.   ,0x82CD /* last character  */
  721.   ,&_FontSJIS16_CharInfo[ 26] /* address of first character */
  722.   ,(void *)&_FontSJIS16_Prop23 /* pointer to next GUI_FONT_PROP */
  723. };
  724. static const GUI_FONT_PROP _FontSJIS16_Prop21 = {
  725.    0x82C9 /* first character */
  726.   ,0x82C9 /* last character  */
  727.   ,&_FontSJIS16_CharInfo[ 25] /* address of first character */
  728.   ,(void *)&_FontSJIS16_Prop22 /* pointer to next GUI_FONT_PROP */
  729. };
  730. static const GUI_FONT_PROP _FontSJIS16_Prop20 = {
  731.    0x82C5 /* first character */
  732.   ,0x82C5 /* last character  */
  733.   ,&_FontSJIS16_CharInfo[ 24] /* address of first character */
  734.   ,(void *)&_FontSJIS16_Prop21 /* pointer to next GUI_FONT_PROP */
  735. };
  736. static const GUI_FONT_PROP _FontSJIS16_Prop19 = {
  737.    0x82BF /* first character */
  738.   ,0x82BF /* last character  */
  739.   ,&_FontSJIS16_CharInfo[ 23] /* address of first character */
  740.   ,(void *)&_FontSJIS16_Prop20 /* pointer to next GUI_FONT_PROP */
  741. };
  742. static const GUI_FONT_PROP _FontSJIS16_Prop18 = {
  743.    0x82B7 /* first character */
  744.   ,0x82B7 /* last character  */
  745.   ,&_FontSJIS16_CharInfo[ 22] /* address of first character */
  746.   ,(void *)&_FontSJIS16_Prop19 /* pointer to next GUI_FONT_PROP */
  747. };
  748. static const GUI_FONT_PROP _FontSJIS16_Prop17 = {
  749.    0x82B3 /* first character */
  750.   ,0x82B3 /* last character  */
  751.   ,&_FontSJIS16_CharInfo[ 21] /* address of first character */
  752.   ,(void *)&_FontSJIS16_Prop18 /* pointer to next GUI_FONT_PROP */
  753. };
  754. static const GUI_FONT_PROP _FontSJIS16_Prop16 = {
  755.    0x82B1 /* first character */
  756.   ,0x82B1 /* last character  */
  757.   ,&_FontSJIS16_CharInfo[ 20] /* address of first character */
  758.   ,(void *)&_FontSJIS16_Prop17 /* pointer to next GUI_FONT_PROP */
  759. };
  760. static const GUI_FONT_PROP _FontSJIS16_Prop15 = {
  761.    0x82A8 /* first character */
  762.   ,0x82A9 /* last character  */
  763.   ,&_FontSJIS16_CharInfo[ 18] /* address of first character */
  764.   ,(void *)&_FontSJIS16_Prop16 /* pointer to next GUI_FONT_PROP */
  765. };
  766. static const GUI_FONT_PROP _FontSJIS16_Prop14 = {
  767.    0x8148 /* first character */
  768.   ,0x8148 /* last character  */
  769.   ,&_FontSJIS16_CharInfo[ 17] /* address of first character */
  770.   ,(void *)&_FontSJIS16_Prop15 /* pointer to next GUI_FONT_PROP */
  771. };
  772. static const GUI_FONT_PROP _FontSJIS16_Prop13 = {
  773.    0x8140 /* first character */
  774.   ,0x8140 /* last character  */
  775.   ,&_FontSJIS16_CharInfo[ 16] /* address of first character */
  776.   ,(void *)&_FontSJIS16_Prop14 /* pointer to next GUI_FONT_PROP */
  777. };
  778. static const GUI_FONT_PROP _FontSJIS16_Prop12 = {
  779.    0x0077 /* first character */
  780.   ,0x0079 /* last character  */
  781.   ,&_FontSJIS16_CharInfo[ 13] /* address of first character */
  782.   ,(void *)&_FontSJIS16_Prop13 /* pointer to next GUI_FONT_PROP */
  783. };
  784. static const GUI_FONT_PROP _FontSJIS16_Prop11 = {
  785.    0x0075 /* first character */
  786.   ,0x0075 /* last character  */
  787.   ,&_FontSJIS16_CharInfo[ 12] /* address of first character */
  788.   ,(void *)&_FontSJIS16_Prop12 /* pointer to next GUI_FONT_PROP */
  789. };
  790. static const GUI_FONT_PROP _FontSJIS16_Prop10 = {
  791.    0x0072 /* first character */
  792.   ,0x0073 /* last character  */
  793.   ,&_FontSJIS16_CharInfo[ 10] /* address of first character */
  794.   ,(void *)&_FontSJIS16_Prop11 /* pointer to next GUI_FONT_PROP */
  795. };
  796. static const GUI_FONT_PROP _FontSJIS16_Prop9 = {
  797.    0x006E /* first character */
  798.   ,0x006F /* last character  */
  799.   ,&_FontSJIS16_CharInfo[  8] /* address of first character */
  800.   ,(void *)&_FontSJIS16_Prop10 /* pointer to next GUI_FONT_PROP */
  801. };
  802. static const GUI_FONT_PROP _FontSJIS16_Prop8 = {
  803.    0x006C /* first character */
  804.   ,0x006C /* last character  */
  805.   ,&_FontSJIS16_CharInfo[  7] /* address of first character */
  806.   ,(void *)&_FontSJIS16_Prop9 /* pointer to next GUI_FONT_PROP */
  807. };
  808. static const GUI_FONT_PROP _FontSJIS16_Prop7 = {
  809.    0x0065 /* first character */
  810.   ,0x0065 /* last character  */
  811.   ,&_FontSJIS16_CharInfo[  6] /* address of first character */
  812.   ,(void *)&_FontSJIS16_Prop8 /* pointer to next GUI_FONT_PROP */
  813. };
  814. static const GUI_FONT_PROP _FontSJIS16_Prop6 = {
  815.    0x0061 /* first character */
  816.   ,0x0061 /* last character  */
  817.   ,&_FontSJIS16_CharInfo[  5] /* address of first character */
  818.   ,(void *)&_FontSJIS16_Prop7 /* pointer to next GUI_FONT_PROP */
  819. };
  820. static const GUI_FONT_PROP _FontSJIS16_Prop5 = {
  821.    0x004C /* first character */
  822.   ,0x004C /* last character  */
  823.   ,&_FontSJIS16_CharInfo[  4] /* address of first character */
  824.   ,(void *)&_FontSJIS16_Prop6 /* pointer to next GUI_FONT_PROP */
  825. };
  826. static const GUI_FONT_PROP _FontSJIS16_Prop4 = {
  827.    0x0048 /* first character */
  828.   ,0x0048 /* last character  */
  829.   ,&_FontSJIS16_CharInfo[  3] /* address of first character */
  830.   ,(void *)&_FontSJIS16_Prop5 /* pointer to next GUI_FONT_PROP */
  831. };
  832. static const GUI_FONT_PROP _FontSJIS16_Prop3 = {
  833.    0x003F /* first character */
  834.   ,0x003F /* last character  */
  835.   ,&_FontSJIS16_CharInfo[  2] /* address of first character */
  836.   ,(void *)&_FontSJIS16_Prop4 /* pointer to next GUI_FONT_PROP */
  837. };
  838. static const GUI_FONT_PROP _FontSJIS16_Prop2 = {
  839.    0x002D /* first character */
  840.   ,0x002D /* last character  */
  841.   ,&_FontSJIS16_CharInfo[  1] /* address of first character */
  842.   ,(void *)&_FontSJIS16_Prop3 /* pointer to next GUI_FONT_PROP */
  843. };
  844. static const GUI_FONT_PROP _FontSJIS16_Prop1 = {
  845.    0x0020 /* first character */
  846.   ,0x0020 /* last character  */
  847.   ,&_FontSJIS16_CharInfo[  0] /* address of first character */
  848.   ,(void *)&_FontSJIS16_Prop2 /* pointer to next GUI_FONT_PROP */
  849. };
  850. static const GUI_FONT _FontSJIS16 = {
  851.    GUI_FONTTYPE_PROP_SJIS /* type of font    */
  852.   ,16 /* height of font  */
  853.   ,16 /* space of font y */
  854.   ,1 /* magnification x */
  855.   ,1 /* magnification y */
  856.   ,(void *)&_FontSJIS16_Prop1
  857. };
  858. /*********************************************************************
  859. *
  860. *       Static variables
  861. *
  862. **********************************************************************
  863. */
  864. static const GUI_FONT * _apPropFonts[] = {
  865.   &GUI_Font10S_1,
  866.   &GUI_Font8_1,
  867.   &GUI_Font13_1,
  868.   &GUI_Font13H_1,
  869.   &GUI_Font16_1,
  870.   &GUI_Font13HB_1,
  871.   0
  872. };
  873. static const GUI_FONT * _apMonoFonts[] = {
  874.   &GUI_Font4x6,
  875.   &GUI_Font6x8,
  876.   &GUI_Font8x13_1,
  877.   &GUI_Font8x8,
  878.   &GUI_Font8x15B_1,
  879.   &GUI_Font8x16,
  880.   0
  881. };
  882. static const GUI_FONT * _apDigitFonts[] = {
  883.   &GUI_FontD32,
  884.   0
  885. };
  886. static const char * _apSJIS[] = {
  887.   {"x82xa8x8cxb3x8bx43x82xc5x82xb7x82xa9x81x48nHow are you?x0"},
  888. };
  889. /*********************************************************************
  890. *
  891. *       Static functions
  892. *
  893. **********************************************************************
  894. */
  895. static void _Label(const char * sText) {
  896.   GUI_Clear();
  897.   GUI_SetFont(&GUI_FontComic18B_1);
  898.   #if GUIDEMO_LARGE
  899.     GUI_DispStringAt(sText, 0, 20);
  900.   #else
  901.     GUI_USE_PARA(sText);
  902.   #endif
  903. }
  904. static int _GetYPos(void) {
  905.   #if GUIDEMO_LARGE
  906.     return 80;
  907.   #else
  908.     return 0;
  909.   #endif
  910. }
  911. static void _ShowCharacters(const char*s, const GUI_FONT* pFont, int IncX) {
  912.   int i;
  913.   int ix=0, y;
  914.   int FontSizeY;
  915.   GUI_SetFont(pFont);
  916.   FontSizeY = GUI_GetFontSizeY();
  917.   _Label(s);
  918.   GUI_SetFont(pFont);
  919.   y = _GetYPos();
  920.   for (i = 0; i < 20000; i++) {
  921.     if (GUI_IsInFont(NULL, (U16)i)) {
  922.       GUI_GotoXY(ix * IncX, y);
  923.       if (ix++ > 20) {
  924.         ix = 0;
  925.         y += FontSizeY;
  926.       }
  927.      GUI_DispChar((U16)i);
  928.     }
  929.   }
  930.   GUIDEMO_Delay(2000);
  931.   GUIDEMO_NotifyStartNext();
  932. }
  933. static void _ShowFonts(const char *s, const char *pMessage, const GUI_FONT **pPropFonts) {
  934.   int i;
  935.   _Label(s);
  936.   GUI_GotoXY(0, _GetYPos());
  937.   for (i=0;pPropFonts[i];i++) {
  938.     GUI_SetFont(pPropFonts[i]);
  939.     GUI_DispString(pMessage);
  940.     GUI_DispNextLine();
  941.   }
  942.   GUIDEMO_Wait();
  943.   GUIDEMO_NotifyStartNext();
  944. }
  945. static void _ShowJapaneseSample(void) {
  946.   int i;
  947.   _Label("Japanese textnmixed withnASCIItext");
  948.   GUI_SetFont(&_FontSJIS16);
  949.   for (i=0;i<sizeof(_apSJIS)/sizeof(_apSJIS[0]);i++) {
  950.     GUI_DispStringHCenterAt(_apSJIS[i], LCD_GetXSize() / 2, _GetYPos() + 20);
  951.     GUI_DispNextLine();
  952.   }
  953.   GUIDEMO_Wait();
  954.   GUIDEMO_NotifyStartNext();
  955. }
  956. /*********************************************************************
  957. *
  958. *       GUIDEMO_ShowInternationalFonts
  959. *
  960. **********************************************************************
  961. */
  962. void GUIDEMO_ShowInternationalFonts(void) {
  963.   GUIDEMO_ShowIntro("International fonts",
  964.                     "uC/GUI supports UNICODE"
  965.                     "n(all characters)and"
  966.                     "nShift JIS (Japan)"
  967.                     );
  968. /* Show japanese text */
  969.   _ShowJapaneseSample();
  970. /* Show some character sets */
  971.   _ShowCharacters("ASCII charactersn& Europeannextensions", &GUI_Font13_1, 13);
  972.   _ShowCharacters("Hiragana &nKatakana", &GUI_Font16_HK, 16);
  973. /* Show fonts */
  974.   _ShowFonts("ProportionalnFonts", 
  975.              "FontConverter available to create your own fonts...", 
  976.              _apPropFonts);
  977.   _ShowFonts("MonospacednFonts", 
  978.              "Fonts with fixed character width...", 
  979.              _apMonoFonts);
  980.   _ShowFonts("Digits", 
  981.              "n+- 0.1234", 
  982.              _apDigitFonts);
  983. /* Show alignments */
  984.   GUIDEMO_NotifyStartNext();
  985. }