OSDN Git Service

PATCH: [ 1155319 ] Select font for dir compare view
authorKimmo Varis <kimmov@gmail.com>
Thu, 3 Mar 2005 17:15:45 +0000 (17:15 +0000)
committerKimmo Varis <kimmov@gmail.com>
Thu, 3 Mar 2005 17:15:45 +0000 (17:15 +0000)
27 files changed:
Src/DirView.cpp
Src/DirView.h
Src/Languages/Brazilian/MergeBrazilian.rc
Src/Languages/Bulgarian/MergeBulgarian.rc
Src/Languages/Catalan/MergeCatalan.rc
Src/Languages/ChineseSimplified/MergeChineseSimplified.rc
Src/Languages/ChineseTraditional/MergeChineseTraditional.rc
Src/Languages/Czech/MergeCzech.rc
Src/Languages/Danish/MergeDanish.rc
Src/Languages/Dutch/MergeDutch.rc
Src/Languages/French/MergeFrench.rc
Src/Languages/German/MergeGerman.rc
Src/Languages/Hungarian/MergeHungarian.rc
Src/Languages/Italian/MergeItalian.rc
Src/Languages/Japanese/MergeJapanese.rc
Src/Languages/Korean/MergeKorean.rc
Src/Languages/Norwegian/MergeNorwegian.rc
Src/Languages/Polish/MergePolish.rc
Src/Languages/Russian/MergeRussian.rc
Src/Languages/Slovak/MergeSlovak.rc
Src/Languages/Spanish/MergeSpanish.rc
Src/Languages/Swedish/MergeSwedish.rc
Src/MainFrm.cpp
Src/MainFrm.h
Src/Merge.rc
Src/OptionsDef.h
Src/readme.txt

index 1d3fdaf..90611cc 100644 (file)
@@ -74,6 +74,7 @@ CDirView::CDirView()
 , m_dispcols(-1)
 , m_bSortAscending(true)
 , m_pHeaderPopup(NULL)
+, m_pFont(NULL)
 {
        m_pList = NULL;
        m_bEscCloses = mf->m_options.GetBool(OPT_CLOSE_WITH_ESC);
@@ -82,9 +83,9 @@ CDirView::CDirView()
 CDirView::~CDirView()
 {
        m_imageList.DeleteImageList();
+       delete m_pFont;
 }
 
-
 BEGIN_MESSAGE_MAP(CDirView, CListViewEx)
        ON_WM_CONTEXTMENU()
        //{{AFX_MSG_MAP(CDirView)
@@ -214,6 +215,20 @@ void CDirView::OnInitialUpdate()
        m_pList = &GetListCtrl();
        GetDocument()->SetDirView(this);
 
+       // Load user-selected font
+       CMainFrame *pMf = dynamic_cast<CMainFrame*>(AfxGetMainWnd());
+       if (pMf->m_options.GetBool(OPT_FONT_DIRCMP_USECUSTOM))
+       {
+               if (m_pFont == NULL)
+                       m_pFont = new CFont;
+               
+               if (m_pFont != NULL)
+               {
+                       m_pFont->CreateFontIndirect(&pMf->m_lfDir);
+                               SetFont(m_pFont, TRUE);
+               }
+       }
+
        // Replace standard header with sort header
        if (HWND hWnd = ListView_GetHeader(m_pList->m_hWnd))
                m_ctlSortHeader.SubclassWindow(hWnd);
index ec51ed6..23b0759 100644 (file)
@@ -221,6 +221,7 @@ protected:
        CPoint m_ptLastMousePos;
        CMenu * m_pHeaderPopup;
        BOOL m_bEscCloses; /**< Cached value for option for ESC closing window */
+       CFont *m_pFont; /**< User-selected font */
        
        // Generated message map functions
        afx_msg void OnColumnClick(NMHDR* pNMHDR, LRESULT* pResult);
index 3b546fc..c371ddc 100644 (file)
@@ -2200,8 +2200,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Seleciona a fonte usada nos Arquivos Diferentes\nSeleciona Fonte"
-    ID_VIEW_USEDEFAULTFONT  "Volta a usar a fonte padrão nos Arquivos Diferentes\nFonte padrão"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Exibir caracteres de espaço em branco"
     ID_VIEW_DETAIL_BAR      "Toggle Diff Pane"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index d386acd..e281a2f 100644 (file)
@@ -2084,8 +2084,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Èçáèðàíå íà ôîíò çà ðàçëèêèòå\nÔîíò çà ðàçëèêèòå"
-    ID_VIEW_USEDEFAULTFONT  "Âðúùàíå êúì ïúðâîíà÷àëíèÿ ôîíò ïîêàçâàù ðàçëèêèòå\nÏúðâîíà÷àëåí ôîíò"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Shows whitespace characters"
     ID_VIEW_DETAIL_BAR      "Toggle Diff Pane"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index 1483929..ce9839d 100644 (file)
@@ -2100,8 +2100,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Selecciona el tipus de lletra per a les visualitzacions de diferències\nSelecciona tipus de lletra per a diferències"
-    ID_VIEW_USEDEFAULTFONT  "Recupera el tipus de lletra del sistema per a la visualització de diferències\nTipus de lletra del sistema"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Mostra els caràcters d'espais"
     ID_VIEW_DETAIL_BAR      "Mostra la subfinestra de diferències"
     ID_VIEW_LOCATION_BAR    "Mostra la subfinestra d'ubicació amb una image general dels fitxers"
index 267f5ef..054c5be 100644 (file)
@@ -2070,8 +2070,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Ñ¡Ôñ²»Í¬ÊÓͼµÄ×ÖÐÍ\nÑ¡Ôñ²»Í¬ÊÓͼ×ÖÐÍ"
-    ID_VIEW_USEDEFAULTFONT  "ʹÓÃÔ¤ÉèµÄϵͳ×ÖÐÍÓÚ²»Í¬ÊÓͼ\nÔ¤Éè×ÖÐÍ"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "ÏÔʾ¿Õ°×ºÍÖƱí·û×Ö·û"
     ID_VIEW_DETAIL_BAR      "Toggle Diff Pane"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index d368691..67ae6a6 100644 (file)
@@ -2183,8 +2183,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "¿ï¨ú¤£¦PÀ˵øªº¦r«¬\n¿ï¨ú¤£¦PÀ˵ø¦r«¬"
-    ID_VIEW_USEDEFAULTFONT  "¨Ï¥Î¹w³]ªº¨t²Î¦r«¬©ó¤£¦PÀ˵ø\n¹w³]¦r«¬"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Åã¥ÜªÅ¥Õ©M¸õ®æ¦r¤¸"
     ID_VIEW_DETAIL_BAR      "Toggle Diff Pane"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index b3ec62f..4f00342 100644 (file)
@@ -2197,8 +2197,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Nastavení písma pro zobrazení porovnávaných dokumentu\nSelect Diff Font"
-    ID_VIEW_USEDEFAULTFONT  "Pou\9eít systémové písmo pro zobrazení porovnávaných dokumentu\nDefault Font"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Shows whitespace characters"
     ID_VIEW_DETAIL_BAR      "Toggle Diff Pane"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index 2d1e96d..4ceefc0 100644 (file)
@@ -2082,8 +2082,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Vælg skrifttype til vinduerne\nVælg skrifttype"
-    ID_VIEW_USEDEFAULTFONT  "Brug standard skrifttype til vinduerne\nStandard skrifttype"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Viser et tegn for mellemrum"
     ID_VIEW_DETAIL_BAR      "Vis eller gem horisontalt panel"
     ID_VIEW_LOCATION_BAR    "Vis eller gem vertikalt panel"
index 816be51..7d1b2d2 100644 (file)
@@ -2199,8 +2199,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Selecteer het font voor de verschil vensters\nSelecteer verschil font"
-    ID_VIEW_USEDEFAULTFONT  "Terug naar gebruik standaard systeemfont voor verschil vensters \nStandaard font"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Shows whitespace characters"
     ID_VIEW_DETAIL_BAR      "Toggle Diff Pane"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index 088a77b..4c13557 100644 (file)
@@ -2085,8 +2085,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Sélectionner la police utilisée pour l'affichage des différences\nSélection de la Police Diff"
-    ID_VIEW_USEDEFAULTFONT  "Revenir à la police par défaut pour l'affichage des différences\nPolice par Défaut"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Afficher les espaces"
     ID_VIEW_DETAIL_BAR      "Montrer/cacher le détail de la différence courante"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index 50a2746..279d231 100644 (file)
@@ -2202,8 +2202,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Wählt die Schrift für die Differenz-Anzeigen."
-    ID_VIEW_USEDEFAULTFONT  "Stellt die Schrift für die Differenz-Anzeigen zurück auf die Standard-Systemschrift."
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Zeigt Leerzeichen an."
     ID_VIEW_DETAIL_BAR      "Blendet die Unterschiedsleiste ein oder aus."
     ID_VIEW_LOCATION_BAR    "Die Positionsleiste zeigt gesamte Abbildungen von den Dateien."
index 02166d5..4988fde 100644 (file)
@@ -2083,8 +2083,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Válaszd ki az eltéréseknél használt betûtípust\nEltérési mód betûtípus"
-    ID_VIEW_USEDEFAULTFONT  "Visszatérés az rendszer által használt betûtípus használatához\nAlapértelmezett Betûtípus"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Szóköz karakterek mutatása"
     ID_VIEW_DETAIL_BAR      "Eltérés panel mutatása/rejtése"
     ID_VIEW_LOCATION_BAR    "A Pozíció panel vizuális képet ad az összehasonlított fájlokról"
index fa7e6a2..2af4686 100644 (file)
@@ -2198,8 +2198,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Seleziona il carattere per la finestra di visualizzazione delle differenze\nSeleziona carattere"
-    ID_VIEW_USEDEFAULTFONT  "Utilizza il carattere predefinito per la finestra di visualizzazione delle differenze\nCarattere predefinito"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Mostra gli spazi bianchi"
     ID_VIEW_DETAIL_BAR      "Mostra il pannello delle differenze"
     ID_VIEW_LOCATION_BAR    "Il pannello della locazione mostra un'immagine complessiva dei file"
index 981a5fe..91b936c 100644 (file)
@@ -2087,8 +2087,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Diff\83r\83\85\81[\82Ì\83t\83H\83\93\83g\82ð\91I\91ð\82µ\82Ü\82·\nDiff\83t\83H\83\93\83g\82Ì\91I\91ð"
-    ID_VIEW_USEDEFAULTFONT  "Diff\83r\83\85\81[\82Ì\83t\83H\83\93\83g\82ð\83f\83t\83H\83\8b\83g\83t\83H\83\93\83g\82É\96ß\82µ\82Ü\82·\n\83f\83t\83H\83\8b\83g\83t\83H\83\93\83g"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "\8bó\94\92\95\8e\9a\82ð\95\\8e¦\82µ\82Ü\82·"
     ID_VIEW_DETAIL_BAR      "Diff\83y\83C\83\93\82Ì\95\\8e¦/\94ñ\95\\8e¦\82ð\90Ø\82è\91Ö\82¦\82Ü\82·"
     ID_VIEW_LOCATION_BAR    "\83\8d\83P\81[\83V\83\87\83\93\83y\83C\83\93\82Í\83t\83@\83C\83\8b\82Ì\93à\97e\91S\91Ì\82ð\83s\83N\83`\83\83\82Æ\82µ\82Ä\95\\8e¦\82µ\82Ü\82·"
index 01f6d08..2de38b5 100644 (file)
@@ -2081,8 +2081,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "ÆÄÀÏ ºñ±³½Ã¿¡ º¼ ÆùÆ®¸¦ ¼±ÅÃÇÕ´Ï´Ù.\nÆùÆ® ¼±ÅÃ"
-    ID_VIEW_USEDEFAULTFONT  "±âº» ÆùÆ®·Î ¼³Á¤À» µÇµ¹¸³´Ï´Ù.\n±âº» ÆùÆ®"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "°ø¹é¹®ÀÚ¸¦ Ç¥½ÃÇÕ´Ï´Ù."
     ID_VIEW_DETAIL_BAR      "¼±Åàºñ±³Ã¢À» º¸°Å³ª ¼û±é´Ï´Ù."
     ID_VIEW_LOCATION_BAR    "À§Ä¡ Ç¥½ÃâÀº Àüü ºñ±³ »óȲÀ» À̹ÌÁö·Î º¸¿©ÁÝ´Ï´Ù."
index c554e98..9f623a2 100644 (file)
@@ -2196,8 +2196,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Velg skrifttype til vinduene\nVelg skrifttype"
-    ID_VIEW_USEDEFAULTFONT  "Bruk standard skrifttype for vinduene\nStandard skrifttype"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Viser et tegn for mellomrom"
     ID_VIEW_DETAIL_BAR      "Veksle forskjellsvindu"
     ID_VIEW_LOCATION_BAR    "Plasseringsvindu viser oversiktbilde av filene"
index b5f8669..0fe0cf5 100644 (file)
@@ -2197,8 +2197,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Wybierz czcionke podgladu róznic\nWybierz czcionke dla róznic"
-    ID_VIEW_USEDEFAULTFONT  "Przywróc domyslna czcionke systemowa dla podgladu róznic\nCzcionka domyslna"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Pokazuje biale znaki"
     ID_VIEW_DETAIL_BAR      "Toggle Diff Pane"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index 984d3aa..ac52581 100644 (file)
@@ -2094,8 +2094,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Âûáðàòü øðèôò äëÿ îòîáðàæåíèÿ îòëè÷èé\nSelect Diff Font"
-    ID_VIEW_USEDEFAULTFONT  "Èñïîëüçîâàòü ñèñòåìíûé øðèôò ïî óìîë÷àíèþ äëÿ îòîáðàæåíèÿ îòëè÷èé \nDefault Font"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Ïîêàçûâàòü íåâèäèìûå çíàêè ðàçìåòêè"
     ID_VIEW_DETAIL_BAR      "Ïåðåêëþ÷èòü ïàíåëü îòëè÷èé"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index 6d0143b..10c752b 100644 (file)
@@ -2197,8 +2197,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Nastavenie písma pre zobrazenie porovnávaných dokumentov\nNastav font pre rozdiely"
-    ID_VIEW_USEDEFAULTFONT  "Pou\9ei\9d systémové písmo pre zobrazenie porovnávaných dokumentov\nNastav font pre normálny text"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Zobrazuje prázdne znaky"
     ID_VIEW_DETAIL_BAR      "Toggle Diff Pane"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index fbd895b..77b44da 100644 (file)
@@ -2197,8 +2197,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Selecione el fuente\nSelect Diff Font"
-    ID_VIEW_USEDEFAULTFONT  "Use el fuente del sistema\nDefault Font"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Shows whitespace characters"
     ID_VIEW_DETAIL_BAR      "Toggle Diff Pane"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index 9a937e9..cabac7b 100644 (file)
@@ -2196,8 +2196,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Väljer teckensnitt för fönstren\nVälj teckensnitt"
-    ID_VIEW_USEDEFAULTFONT  "Väljer standardteckensnitt för fönstren\nVälj standardteckensnitt"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Visar ett tecken för mellanslag"
     ID_VIEW_DETAIL_BAR      "Visar eller gömmer skillnadsfältet\nVäxla skillnadsfältet"
     ID_VIEW_LOCATION_BAR    "Skillnadsbilden visar en övergripande bild av filerna"
index 5b352dd..a4153a5 100644 (file)
@@ -113,6 +113,7 @@ BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
        ON_COMMAND(ID_HELP_GNULICENSE, OnHelpGnulicense)
        ON_COMMAND(ID_OPTIONS, OnOptions)
        ON_COMMAND(ID_VIEW_SELECTFONT, OnViewSelectfont)
+       ON_UPDATE_COMMAND_UI(ID_VIEW_SELECTFONT, OnUpdateViewSelectfont)
        ON_COMMAND(ID_VIEW_USEDEFAULTFONT, OnViewUsedefaultfont)
        ON_UPDATE_COMMAND_UI(ID_VIEW_USEDEFAULTFONT, OnUpdateViewUsedefaultfont)
        ON_COMMAND(ID_HELP_CONTENTS, OnHelpContents)
@@ -243,6 +244,7 @@ CMainFrame::CMainFrame()
        m_options.InitOption(OPT_CP_DETECT, false);
 
        m_options.InitOption(OPT_FONT_FILECMP_USECUSTOM, false);
+       m_options.InitOption(OPT_FONT_DIRCMP_USECUSTOM, false);
 
        updateDefaultCodepage(&m_options);
 
@@ -1581,44 +1583,75 @@ int CMainFrame::SyncFileToVCS(LPCTSTR pszSrc, LPCTSTR pszDest,
 }
 
 /**
- * @brief Select font for Merge view
+ * @brief Select font for Merge/Dir view
  * 
  * Shows font selection dialog to user, sets current font and saves
  * selected font properties to registry.
  */
 void CMainFrame::OnViewSelectfont() 
 {
+       const TCHAR fileFontPath[] = _T("Font");
+       const TCHAR dirFontPath[] = _T("FontDirCompare");
+       CString sFontPath = fileFontPath; // Default to change file compare font
+
+       CFrameWnd * pFrame = GetActiveFrame();
+       BOOL bMergeFrame = pFrame->IsKindOf(RUNTIME_CLASS(CChildFrame));
+       BOOL bDirFrame = pFrame->IsKindOf(RUNTIME_CLASS(CDirFrame));
+
+       if (bDirFrame)
+               sFontPath = dirFontPath;
+
        CHOOSEFONT cf;
-       memset(&cf, 0, sizeof(CHOOSEFONT));
+       LOGFONT *lf = NULL;
+       ZeroMemory(&cf, sizeof(CHOOSEFONT));
        cf.lStructSize = sizeof(CHOOSEFONT);
-       cf.Flags = CF_INITTOLOGFONTSTRUCT|CF_FORCEFONTEXIST|CF_SCREENFONTS|CF_FIXEDPITCHONLY;
+       cf.Flags = CF_INITTOLOGFONTSTRUCT|CF_FORCEFONTEXIST|CF_SCREENFONTS;
+       if (!bDirFrame)
+               cf.Flags |= CF_FIXEDPITCHONLY; // Only fixed-width fonts for merge view
+
        // CF_FIXEDPITCHONLY = 0x00004000L
        // in case you are a developer and want to disable it to test with, eg, a Chinese capable font
-       cf.lpLogFont = &m_lfDiff;
+       if (bDirFrame)
+               lf = &m_lfDir;
+       else
+               lf = &m_lfDiff;
+
+       cf.lpLogFont = lf;
+
        if (ChooseFont(&cf))
        {
-               m_options.SaveOption(OPT_FONT_FILECMP_USECUSTOM, true);
-               theApp.WriteProfileInt(_T("Font"), _T("Height"), m_lfDiff.lfHeight);
-               theApp.WriteProfileInt(_T("Font"), _T("Width"), m_lfDiff.lfWidth);
-               theApp.WriteProfileInt(_T("Font"), _T("Escapement"), m_lfDiff.lfEscapement);
-               theApp.WriteProfileInt(_T("Font"), _T("Orientation"), m_lfDiff.lfOrientation);
-               theApp.WriteProfileInt(_T("Font"), _T("Weight"), m_lfDiff.lfWeight);
-               theApp.WriteProfileInt(_T("Font"), _T("Italic"), m_lfDiff.lfItalic);
-               theApp.WriteProfileInt(_T("Font"), _T("Underline"), m_lfDiff.lfUnderline);
-               theApp.WriteProfileInt(_T("Font"), _T("StrikeOut"), m_lfDiff.lfStrikeOut);
-               theApp.WriteProfileInt(_T("Font"), _T("CharSet"), m_lfDiff.lfCharSet);
-               theApp.WriteProfileInt(_T("Font"), _T("OutPrecision"), m_lfDiff.lfOutPrecision);
-               theApp.WriteProfileInt(_T("Font"), _T("ClipPrecision"), m_lfDiff.lfClipPrecision);
-               theApp.WriteProfileInt(_T("Font"), _T("Quality"), m_lfDiff.lfQuality);
-               theApp.WriteProfileInt(_T("Font"), _T("PitchAndFamily"), m_lfDiff.lfPitchAndFamily);
-               theApp.WriteProfileString(_T("Font"), _T("FaceName"), m_lfDiff.lfFaceName);
-
+               if (bDirFrame)
+                       m_options.SaveOption(OPT_FONT_DIRCMP_USECUSTOM, true);
+               else
+                       m_options.SaveOption(OPT_FONT_FILECMP_USECUSTOM, true);
+
+               theApp.WriteProfileInt(sFontPath, _T("Height"), lf->lfHeight);
+               theApp.WriteProfileInt(sFontPath, _T("Width"), lf->lfWidth);
+               theApp.WriteProfileInt(sFontPath, _T("Escapement"), lf->lfEscapement);
+               theApp.WriteProfileInt(sFontPath, _T("Orientation"), lf->lfOrientation);
+               theApp.WriteProfileInt(sFontPath, _T("Weight"), lf->lfWeight);
+               theApp.WriteProfileInt(sFontPath, _T("Italic"), lf->lfItalic);
+               theApp.WriteProfileInt(sFontPath, _T("Underline"), lf->lfUnderline);
+               theApp.WriteProfileInt(sFontPath, _T("StrikeOut"), lf->lfStrikeOut);
+               theApp.WriteProfileInt(sFontPath, _T("CharSet"), lf->lfCharSet);
+               theApp.WriteProfileInt(sFontPath, _T("OutPrecision"), lf->lfOutPrecision);
+               theApp.WriteProfileInt(sFontPath, _T("ClipPrecision"), lf->lfClipPrecision);
+               theApp.WriteProfileInt(sFontPath, _T("Quality"), lf->lfQuality);
+               theApp.WriteProfileInt(sFontPath, _T("PitchAndFamily"), lf->lfPitchAndFamily);
+               theApp.WriteProfileString(sFontPath, _T("FaceName"), lf->lfFaceName);
+
+               DirViewList dirViews;
                MergeEditViewList editViews;
-               GetAllViews(&editViews, NULL, NULL);
+               GetAllViews(&editViews, NULL, &dirViews);
 
-               if (editViews.GetCount() > 0)
+               if (editViews.GetCount() > 0 || dirViews.GetCount() > 0)
                        AfxMessageBox(IDS_FONT_CHANGE, MB_ICONINFORMATION | MB_DONT_DISPLAY_AGAIN, IDS_FONT_CHANGE);
 
+               if (bDirFrame)
+                       m_lfDir = *lf;
+               else
+                       m_lfDiff = *lf;
+
                // TODO: Update document fonts
                /*
                for (POSITION pos = editViews.GetHeadPosition(); pos; editViews.GetNext(pos))
@@ -1631,15 +1664,27 @@ void CMainFrame::OnViewSelectfont()
 }
 
 /**
+ * @brief Enable 'Select font' if view is active
+ */
+void CMainFrame::OnUpdateViewSelectfont(CCmdUI* pCmdUI) 
+{
+       CFrameWnd * pFrame = GetActiveFrame();
+       BOOL bMergeFrame = pFrame->IsKindOf(RUNTIME_CLASS(CChildFrame));
+       BOOL bDirFrame = pFrame->IsKindOf(RUNTIME_CLASS(CDirFrame));
+       pCmdUI->Enable(bMergeFrame || bDirFrame);
+}
+
+/**
  * @brief Selects font for Merge view.
  *
  * Cheks if default font or user-selected font should be used in
- * Merge view and sets correct font properties. Loads user-selected
+ * Merge or dir -view and sets correct font properties. Loads user-selected
  * font properties from registry if needed.
  */
 void CMainFrame::GetFontProperties()
 {
        LOGFONT lfDefault;
+       ZeroMemory(&lfDefault, sizeof(LOGFONT));
 
        // Use "Terminal" font instead of "Courier" as default font when
        // system locale font charset is not ANSI_CHARSET
@@ -1662,39 +1707,83 @@ void CMainFrame::GetFontProperties()
                _tcscpy(lfDefault.lfFaceName, _T("Courier"));
        }
 
-       bool bUseCustom = m_options.GetBool(OPT_FONT_FILECMP_USECUSTOM);
-
-       if (bUseCustom)
-       {
-               m_lfDiff.lfHeight = theApp.GetProfileInt(_T("Font"), _T("Height"), lfDefault.lfHeight);
-               m_lfDiff.lfWidth = theApp.GetProfileInt(_T("Font"), _T("Width"), lfDefault.lfWidth);
-               m_lfDiff.lfEscapement = theApp.GetProfileInt(_T("Font"), _T("Escapement"), lfDefault.lfEscapement);
-               m_lfDiff.lfOrientation = theApp.GetProfileInt(_T("Font"), _T("Orientation"), lfDefault.lfOrientation);
-               m_lfDiff.lfWeight = theApp.GetProfileInt(_T("Font"), _T("Weight"), lfDefault.lfWeight);
-               m_lfDiff.lfItalic = (BYTE)theApp.GetProfileInt(_T("Font"), _T("Italic"), lfDefault.lfItalic);
-               m_lfDiff.lfUnderline = (BYTE)theApp.GetProfileInt(_T("Font"), _T("Underline"), lfDefault.lfUnderline);
-               m_lfDiff.lfStrikeOut = (BYTE)theApp.GetProfileInt(_T("Font"), _T("StrikeOut"), lfDefault.lfStrikeOut);
-               m_lfDiff.lfCharSet = (BYTE)theApp.GetProfileInt(_T("Font"), _T("CharSet"), lfDefault.lfCharSet);
-               m_lfDiff.lfOutPrecision = (BYTE)theApp.GetProfileInt(_T("Font"), _T("OutPrecision"), lfDefault.lfOutPrecision);
-               m_lfDiff.lfClipPrecision = (BYTE)theApp.GetProfileInt(_T("Font"), _T("ClipPrecision"), lfDefault.lfClipPrecision);
-               m_lfDiff.lfQuality = (BYTE)theApp.GetProfileInt(_T("Font"), _T("Quality"), lfDefault.lfQuality);
-               m_lfDiff.lfPitchAndFamily = (BYTE)theApp.GetProfileInt(_T("Font"), _T("PitchAndFamily"), lfDefault.lfPitchAndFamily);
-               _tcscpy(m_lfDiff.lfFaceName, theApp.GetProfileString(_T("Font"), _T("FaceName"), lfDefault.lfFaceName));
+       LOGFONT lfnew;
+       ZeroMemory(&lfnew, sizeof(LOGFONT));
+
+       // Get MergeView font
+       if (m_options.GetBool(OPT_FONT_FILECMP_USECUSTOM))
+       {
+               lfnew.lfHeight = theApp.GetProfileInt(_T("Font"), _T("Height"), lfDefault.lfHeight);
+               lfnew.lfWidth = theApp.GetProfileInt(_T("Font"), _T("Width"), lfDefault.lfWidth);
+               lfnew.lfEscapement = theApp.GetProfileInt(_T("Font"), _T("Escapement"), lfDefault.lfEscapement);
+               lfnew.lfOrientation = theApp.GetProfileInt(_T("Font"), _T("Orientation"), lfDefault.lfOrientation);
+               lfnew.lfWeight = theApp.GetProfileInt(_T("Font"), _T("Weight"), lfDefault.lfWeight);
+               lfnew.lfItalic = (BYTE)theApp.GetProfileInt(_T("Font"), _T("Italic"), lfDefault.lfItalic);
+               lfnew.lfUnderline = (BYTE)theApp.GetProfileInt(_T("Font"), _T("Underline"), lfDefault.lfUnderline);
+               lfnew.lfStrikeOut = (BYTE)theApp.GetProfileInt(_T("Font"), _T("StrikeOut"), lfDefault.lfStrikeOut);
+               lfnew.lfCharSet = (BYTE)theApp.GetProfileInt(_T("Font"), _T("CharSet"), lfDefault.lfCharSet);
+               lfnew.lfOutPrecision = (BYTE)theApp.GetProfileInt(_T("Font"), _T("OutPrecision"), lfDefault.lfOutPrecision);
+               lfnew.lfClipPrecision = (BYTE)theApp.GetProfileInt(_T("Font"), _T("ClipPrecision"), lfDefault.lfClipPrecision);
+               lfnew.lfQuality = (BYTE)theApp.GetProfileInt(_T("Font"), _T("Quality"), lfDefault.lfQuality);
+               lfnew.lfPitchAndFamily = (BYTE)theApp.GetProfileInt(_T("Font"), _T("PitchAndFamily"), lfDefault.lfPitchAndFamily);
+               _tcscpy(lfnew.lfFaceName, theApp.GetProfileString(_T("Font"), _T("FaceName"), lfDefault.lfFaceName));
+               m_lfDiff = lfnew;
        }
        else
                m_lfDiff = lfDefault;
+
+       // Get DirView font
+       ZeroMemory(&lfnew, sizeof(LOGFONT));
+       if (m_options.GetBool(OPT_FONT_DIRCMP_USECUSTOM))
+       {
+               lfnew.lfHeight = theApp.GetProfileInt(_T("FontDirCompare"), _T("Height"), lfDefault.lfHeight);
+               lfnew.lfWidth = theApp.GetProfileInt(_T("FontDirCompare"), _T("Width"), lfDefault.lfWidth);
+               lfnew.lfEscapement = theApp.GetProfileInt(_T("FontDirCompare"), _T("Escapement"), lfDefault.lfEscapement);
+               lfnew.lfOrientation = theApp.GetProfileInt(_T("FontDirCompare"), _T("Orientation"), lfDefault.lfOrientation);
+               lfnew.lfWeight = theApp.GetProfileInt(_T("FontDirCompare"), _T("Weight"), lfDefault.lfWeight);
+               lfnew.lfItalic = (BYTE)theApp.GetProfileInt(_T("FontDirCompare"), _T("Italic"), lfDefault.lfItalic);
+               lfnew.lfUnderline = (BYTE)theApp.GetProfileInt(_T("FontDirCompare"), _T("Underline"), lfDefault.lfUnderline);
+               lfnew.lfStrikeOut = (BYTE)theApp.GetProfileInt(_T("FontDirCompare"), _T("StrikeOut"), lfDefault.lfStrikeOut);
+               lfnew.lfCharSet = (BYTE)theApp.GetProfileInt(_T("FontDirCompare"), _T("CharSet"), lfDefault.lfCharSet);
+               lfnew.lfOutPrecision = (BYTE)theApp.GetProfileInt(_T("FontDirCompare"), _T("OutPrecision"), lfDefault.lfOutPrecision);
+               lfnew.lfClipPrecision = (BYTE)theApp.GetProfileInt(_T("FontDirCompare"), _T("ClipPrecision"), lfDefault.lfClipPrecision);
+               lfnew.lfQuality = (BYTE)theApp.GetProfileInt(_T("FontDirCompare"), _T("Quality"), lfDefault.lfQuality);
+               lfnew.lfPitchAndFamily = (BYTE)theApp.GetProfileInt(_T("FontDirCompare"), _T("PitchAndFamily"), lfDefault.lfPitchAndFamily);
+               _tcscpy(lfnew.lfFaceName, theApp.GetProfileString(_T("FontDirCompare"), _T("FaceName"), lfDefault.lfFaceName));
+               m_lfDir = lfnew;
+       }
+       else
+               m_lfDir = lfDefault;
 }
 
+/**
+ * @brief Use default font for active view type
+ */
 void CMainFrame::OnViewUsedefaultfont() 
 {
-       m_options.SaveOption(OPT_FONT_FILECMP_USECUSTOM, false);
+       CFrameWnd * pFrame = GetActiveFrame();
+       BOOL bDirFrame = pFrame->IsKindOf(RUNTIME_CLASS(CDirFrame));
+
+       if (bDirFrame)
+               m_options.SaveOption(OPT_FONT_DIRCMP_USECUSTOM, false);
+       else
+               m_options.SaveOption(OPT_FONT_FILECMP_USECUSTOM, false);
+
        GetFontProperties();
 }
 
+/**
+ * @brief Enable 'Use Default font' if view is open and has user font selected
+ */
 void CMainFrame::OnUpdateViewUsedefaultfont(CCmdUI* pCmdUI) 
 {
-       bool bEnable = m_options.GetBool(OPT_FONT_FILECMP_USECUSTOM);
-       pCmdUI->Enable(bEnable);
+       CFrameWnd * pFrame = GetActiveFrame();
+       BOOL bMergeFrame = pFrame->IsKindOf(RUNTIME_CLASS(CChildFrame));
+       BOOL bDirFrame = pFrame->IsKindOf(RUNTIME_CLASS(CDirFrame));
+       bool bEnableMerge = m_options.GetBool(OPT_FONT_FILECMP_USECUSTOM);
+       bool bEnableDir = m_options.GetBool(OPT_FONT_DIRCMP_USECUSTOM);
+       pCmdUI->Enable((bEnableMerge && bMergeFrame) || 
+               (bEnableDir && bDirFrame));
 }
 
 /**
index 4f23ced..502a760 100644 (file)
@@ -88,7 +88,8 @@ public:
 // Attributes
 public:        
        BOOL m_bShowErrors;
-       LOGFONT m_lfDiff;
+       LOGFONT m_lfDiff; /**< MergeView user-selected font */
+       LOGFONT m_lfDir; /**< DirView user-selected font */
        BOOL m_bReuseDirDoc; // policy to reuse existing dir doc
 
 // Operations
@@ -203,6 +204,7 @@ protected:
        afx_msg void OnHelpGnulicense();
        afx_msg void OnOptions();
        afx_msg void OnViewSelectfont();
+       afx_msg void OnUpdateViewSelectfont(CCmdUI* pCmdUI);
        afx_msg void OnViewUsedefaultfont();
        afx_msg void OnUpdateViewUsedefaultfont(CCmdUI* pCmdUI);
        afx_msg void OnHelpContents();
index 591a606..fabb0d0 100644 (file)
@@ -2092,8 +2092,8 @@ END
 // VIEW MENU
 STRINGTABLE
 BEGIN
-    ID_VIEW_SELECTFONT      "Select the font for the diff views\nSelect Diff Font"
-    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for diff views\nDefault Font"
+    ID_VIEW_SELECTFONT      "Select the font for the view\nSelect View Font"
+    ID_VIEW_USEDEFAULTFONT  "Revert to using the default system font for view\nDefault Font"
     ID_VIEW_WHITESPACE      "Shows whitespace characters"
     ID_VIEW_DETAIL_BAR      "Toggle Diff Pane"
     ID_VIEW_LOCATION_BAR    "Location pane shows overall picture from files"
index 80d5646..1fa7989 100644 (file)
@@ -98,5 +98,6 @@ const TCHAR OPT_FILEFILTER_CURRENT[] = _T("Settings/FileFilterCurrent");
 
 // Fonts
 const TCHAR OPT_FONT_FILECMP_USECUSTOM[] = _T("Font/Specified");
+const TCHAR OPT_FONT_DIRCMP_USECUSTOM[] = _T("FontDirCompare/Specified");
 
 #endif // _OPTIONS_DEF_H_
index 0d9c46f..bef570e 100644 (file)
@@ -1,3 +1,8 @@
+2005-03-03 Kimmo
+ PATCH: [ 1155319 ] Select font for dir compare view
+  Src: DirView.cpp DirView.h MainFrm.cpp MainFrm.h Merge.rc OptionsDef.h
+  Languages: *.rc
+
 2005-03-02 Perry
  PATCH: [ 1154259 ] Non blurred 'error.bmp'
   New clearer error bitmap from Tim Gerundt