OSDN Git Service

Add UTF-8 to UTF-16 API bridge.
[ffftp/ffftp.git] / toolmenu.c
index 2cc48a7..b216a40 100644 (file)
@@ -90,6 +90,9 @@ static int TmpTransMode;
 static int TmpHostKanjiCode;\r
 static int TmpHostKanaCnv;\r
 \r
+// TODO: \83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\82ðShift_JIS\88È\8aO\82É\82à\91Î\89\9e\r
+static int TmpLocalKanjiCode;\r
+\r
 static int TmpLocalFileSort;\r
 static int TmpLocalDirSort;\r
 static int TmpRemoteFileSort;\r
@@ -133,8 +136,15 @@ static TBBUTTON TbarDataMain[] = {
        { 8,  MENU_BINARY, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 17, MENU_AUTO, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 27, MENU_L_KNJ_SJIS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 20, MENU_L_KNJ_EUC, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 21, MENU_L_KNJ_JIS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 28, MENU_L_KNJ_UTF8N, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
+       { 27, MENU_KNJ_SJIS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 20, MENU_KNJ_EUC, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 21, MENU_KNJ_JIS, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
+       { 28, MENU_KNJ_UTF8N, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 22, MENU_KNJ_NONE, TBSTATE_ENABLED, TBSTYLE_CHECKGROUP, 0, 0 },\r
        { 0,  0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0 },\r
        { 23, MENU_KANACNV, TBSTATE_ENABLED, TBSTYLE_CHECK, 0, 0 },\r
@@ -185,7 +195,8 @@ static const int HideMenus[] = {
        MENU_HELP,                      MENU_HELP_TROUBLE,      MENU_ABOUT,\r
        MENU_REGINIT,\r
        MENU_TEXT,                      MENU_BINARY,            MENU_AUTO,\r
-       MENU_KNJ_EUC,           MENU_KNJ_JIS,           MENU_KNJ_NONE,\r
+       MENU_KNJ_SJIS,          MENU_KNJ_EUC,           MENU_KNJ_JIS,           MENU_KNJ_UTF8N,         MENU_KNJ_NONE,\r
+       MENU_L_KNJ_SJIS,        MENU_L_KNJ_EUC,         MENU_L_KNJ_JIS,         MENU_L_KNJ_UTF8N,\r
        MENU_KANACNV,\r
        MENU_LOCAL_UPDIR,       MENU_LOCAL_CHDIR,\r
        MENU_REMOTE_UPDIR,      MENU_REMOTE_CHDIR,\r
@@ -821,6 +832,7 @@ void SetTransferTypeImm(int Mode)
 {\r
        TmpTransMode = Mode;\r
        HideHostKanjiButton();\r
+       HideLocalKanjiButton();\r
        return;\r
 }\r
 \r
@@ -851,6 +863,7 @@ void SetTransferType(int Type)
                        break;\r
        }\r
        HideHostKanjiButton();\r
+       HideLocalKanjiButton();\r
        return;\r
 }\r
 \r
@@ -992,6 +1005,11 @@ void SetHostKanjiCode(int Type)
 {\r
        switch(Type)\r
        {\r
+               // UTF-8\91Î\89\9e\r
+               case MENU_KNJ_SJIS :\r
+                       TmpHostKanjiCode = KANJI_SJIS;\r
+                       break;\r
+\r
                case MENU_KNJ_EUC :\r
                        TmpHostKanjiCode = KANJI_EUC;\r
                        break;\r
@@ -1000,6 +1018,10 @@ void SetHostKanjiCode(int Type)
                        TmpHostKanjiCode = KANJI_JIS;\r
                        break;\r
 \r
+               case MENU_KNJ_UTF8N :\r
+                       TmpHostKanjiCode = KANJI_UTF8N;\r
+                       break;\r
+\r
                default :\r
                        TmpHostKanjiCode = KANJI_NOCNV;\r
                        break;\r
@@ -1023,6 +1045,11 @@ void DispHostKanjiCode(void)
 {\r
        switch(TmpHostKanjiCode)\r
        {\r
+               // UTF-8\91Î\89\9e\r
+               case KANJI_SJIS :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_SJIS, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
                case KANJI_EUC :\r
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_EUC, MAKELONG(TRUE, 0));\r
                        break;\r
@@ -1031,6 +1058,10 @@ void DispHostKanjiCode(void)
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_JIS, MAKELONG(TRUE, 0));\r
                        break;\r
 \r
+               case KANJI_UTF8N :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
                default :\r
                        SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_KNJ_NONE, MAKELONG(TRUE, 0));\r
                        break;\r
@@ -1067,16 +1098,21 @@ void HideHostKanjiButton(void)
 {\r
        switch(TmpTransMode)\r
        {\r
+               // UTF-8\91Î\89\9e\r
                case TYPE_I : \r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_SJIS, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_EUC, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_JIS, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_UTF8N, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_NONE, MAKELONG(FALSE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(FALSE, 0));\r
                        break;\r
 \r
                default :\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_SJIS, MAKELONG(TRUE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_EUC, MAKELONG(TRUE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_JIS, MAKELONG(TRUE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
                        SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KNJ_NONE, MAKELONG(TRUE, 0));\r
                        if(TmpHostKanjiCode != KANJI_NOCNV)\r
                                SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_KANACNV, MAKELONG(TRUE, 0));\r
@@ -1088,6 +1124,99 @@ void HideHostKanjiButton(void)
 }\r
 \r
 \r
+// \83\8d\81[\83J\83\8b\82Ì\8a¿\8e\9a\83R\81[\83h\r
+// \83e\83L\83X\83g\83\82\81[\83h\93]\91\97\8e\9e\82É\8eg\97p\r
+// \83z\83X\83g\91¤\82ª\96³\95Ï\8a·\82Ì\8e\9e\82Í\83\8d\81[\83J\83\8b\82à\96³\95Ï\8a·\r
+\r
+void SetLocalKanjiCodeImm(int Mode)\r
+{\r
+       TmpLocalKanjiCode = Mode;\r
+       DispLocalKanjiCode();\r
+       HideLocalKanjiButton();\r
+       return;\r
+}\r
+\r
+void SetLocalKanjiCode(int Type)\r
+{\r
+       switch(Type)\r
+       {\r
+               // UTF-8\91Î\89\9e\r
+               case MENU_L_KNJ_SJIS :\r
+                       TmpLocalKanjiCode = KANJI_SJIS;\r
+                       break;\r
+\r
+               case MENU_L_KNJ_EUC :\r
+//                     TmpLocalKanjiCode = KANJI_EUC;\r
+                       break;\r
+\r
+               case MENU_L_KNJ_JIS :\r
+//                     TmpLocalKanjiCode = KANJI_JIS;\r
+                       break;\r
+\r
+               case MENU_L_KNJ_UTF8N :\r
+                       TmpLocalKanjiCode = KANJI_UTF8N;\r
+                       break;\r
+       }\r
+       DispLocalKanjiCode();\r
+       HideLocalKanjiButton();\r
+       return;\r
+}\r
+\r
+void DispLocalKanjiCode(void)\r
+{\r
+       switch(TmpLocalKanjiCode)\r
+       {\r
+               // UTF-8\91Î\89\9e\r
+               case KANJI_SJIS :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_SJIS, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
+               case KANJI_EUC :\r
+//                     SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_EUC, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
+               case KANJI_JIS :\r
+//                     SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_JIS, MAKELONG(TRUE, 0));\r
+                       break;\r
+\r
+               case KANJI_UTF8N :\r
+                       SendMessage(hWndTbarMain, TB_CHECKBUTTON, MENU_L_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
+                       break;\r
+       }\r
+       return;\r
+}\r
+\r
+int AskLocalKanjiCode(void)\r
+{\r
+       return(TmpLocalKanjiCode);\r
+}\r
+\r
+void HideLocalKanjiButton(void)\r
+{\r
+       switch(TmpTransMode)\r
+       {\r
+               // UTF-8\91Î\89\9e\r
+               case TYPE_I : \r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_SJIS, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_EUC, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_JIS, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_UTF8N, MAKELONG(FALSE, 0));\r
+                       break;\r
+\r
+               default :\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_SJIS, MAKELONG(TRUE, 0));\r
+//                     SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_EUC, MAKELONG(TRUE, 0));\r
+//                     SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_JIS, MAKELONG(TRUE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_UTF8N, MAKELONG(TRUE, 0));\r
+                       // TODO: \8c»\8dÝEUC\82ÆJIS\82Í\94ñ\91Î\89\9e\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_EUC, MAKELONG(FALSE, 0));\r
+                       SendMessage(hWndTbarMain, TB_ENABLEBUTTON, MENU_L_KNJ_JIS, MAKELONG(FALSE, 0));\r
+                       break;\r
+       }\r
+       return;\r
+}\r
+\r
+\r
 /*===================================================\r
 *                      \94¼\8ap\95Ï\8a·\83\82\81[\83h\r
 *===================================================*/\r