Alexander Nicolaysen Sørnes : wordpad: Allow toggling of toolbar.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Jun 12 06:30:48 CDT 2007


Module: wine
Branch: master
Commit: 10b348399ac2b90810b48850ff554142b0a41d18
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=10b348399ac2b90810b48850ff554142b0a41d18

Author: Alexander Nicolaysen Sørnes <alex at thehandofagony.com>
Date:   Wed Jun  6 11:10:47 2007 +0200

wordpad: Allow toggling of toolbar.

---

 programs/wordpad/De.rc      |    4 +++
 programs/wordpad/En.rc      |    4 +++
 programs/wordpad/Fr.rc      |    4 +++
 programs/wordpad/Hu.rc      |    4 +++
 programs/wordpad/Ko.rc      |    4 +++
 programs/wordpad/Nl.rc      |    4 +++
 programs/wordpad/No.rc      |    4 +++
 programs/wordpad/Pl.rc      |    4 +++
 programs/wordpad/Ru.rc      |    4 +++
 programs/wordpad/Tr.rc      |    4 +++
 programs/wordpad/resource.h |    4 +++
 programs/wordpad/wordpad.c  |   62 ++++++++++++++++++++++++++++++++++++++++---
 12 files changed, 102 insertions(+), 4 deletions(-)

diff --git a/programs/wordpad/De.rc b/programs/wordpad/De.rc
index 64893cb..b09e743 100644
--- a/programs/wordpad/De.rc
+++ b/programs/wordpad/De.rc
@@ -52,6 +52,10 @@ BEGIN
             MENUITEM "&Get text",                   ID_EDIT_GETTEXT
         END
     END
+    POPUP "&View"
+    BEGIN
+        MENUITEM "&Toolbar",        ID_TOGGLE_TOOLBAR
+    END
     POPUP "F&ormat"
     BEGIN
         POPUP "&Hintergrund"
diff --git a/programs/wordpad/En.rc b/programs/wordpad/En.rc
index 2f08653..a83eec6 100644
--- a/programs/wordpad/En.rc
+++ b/programs/wordpad/En.rc
@@ -52,6 +52,10 @@ BEGIN
             MENUITEM "&Get text",                   ID_EDIT_GETTEXT
         END
     END
+    POPUP "&View"
+    BEGIN
+        MENUITEM "&Toolbar",        ID_TOGGLE_TOOLBAR
+    END
     POPUP "F&ormat"
     BEGIN
         POPUP "&Background"
diff --git a/programs/wordpad/Fr.rc b/programs/wordpad/Fr.rc
index c52dac2..0205954 100644
--- a/programs/wordpad/Fr.rc
+++ b/programs/wordpad/Fr.rc
@@ -52,6 +52,10 @@ BEGIN
             MENUITEM "&Recevoir texte",             ID_EDIT_GETTEXT
         END
     END
+    POPUP "&View"
+    BEGIN
+        MENUITEM "&Toolbar",        ID_TOGGLE_TOOLBAR
+    END
     POPUP "Forma&t"
     BEGIN
         POPUP "&Fond"
diff --git a/programs/wordpad/Hu.rc b/programs/wordpad/Hu.rc
index 93c0220..5ebcdee 100644
--- a/programs/wordpad/Hu.rc
+++ b/programs/wordpad/Hu.rc
@@ -52,6 +52,10 @@ BEGIN
             MENUITEM "Sz&övegszerzés",              ID_EDIT_GETTEXT
         END
     END
+    POPUP "&View"
+    BEGIN
+        MENUITEM "&Toolbar",        ID_TOGGLE_TOOLBAR
+    END
     POPUP "F&ormátum"
     BEGIN
         POPUP "&Háttér"
diff --git a/programs/wordpad/Ko.rc b/programs/wordpad/Ko.rc
index d963f62..b01f68f 100644
--- a/programs/wordpad/Ko.rc
+++ b/programs/wordpad/Ko.rc
@@ -53,6 +53,10 @@ BEGIN
             MENUITEM "ÅؽºÆ® ¾ò±â(&G)",                   ID_EDIT_GETTEXT
         END
     END
+    POPUP "&View"
+    BEGIN
+        MENUITEM "&Toolbar",        ID_TOGGLE_TOOLBAR
+    END
     POPUP "Çü½Ä(&O)"
     BEGIN
         POPUP "¹è°æ(&B)"
diff --git a/programs/wordpad/Nl.rc b/programs/wordpad/Nl.rc
index 67f378b..ed05fcc 100644
--- a/programs/wordpad/Nl.rc
+++ b/programs/wordpad/Nl.rc
@@ -52,6 +52,10 @@ BEGIN
             MENUITEM "&Haal tekst",                  ID_EDIT_GETTEXT
         END
     END
+    POPUP "&View"
+    BEGIN
+        MENUITEM "&Toolbar",        ID_TOGGLE_TOOLBAR
+    END
     POPUP "&Opmaak"
     BEGIN
         POPUP "&Achtergrond"
diff --git a/programs/wordpad/No.rc b/programs/wordpad/No.rc
index 87be440..4955ebd 100644
--- a/programs/wordpad/No.rc
+++ b/programs/wordpad/No.rc
@@ -52,6 +52,10 @@ BEGIN
             MENUITEM "&Hent tekst",                   ID_EDIT_GETTEXT
         END
     END
+    POPUP "&Vis"
+    BEGIN
+        MENUITEM "Verk&tøylinje",        ID_TOGGLE_TOOLBAR
+    END
     POPUP "F&ormat"
     BEGIN
         POPUP "&Bakgrunn"
diff --git a/programs/wordpad/Pl.rc b/programs/wordpad/Pl.rc
index c556264..161a402 100644
--- a/programs/wordpad/Pl.rc
+++ b/programs/wordpad/Pl.rc
@@ -53,6 +53,10 @@ BEGIN
             MENUITEM "&Pobie¿ tekst",                   ID_EDIT_GETTEXT
         END
     END
+    POPUP "&View"
+    BEGIN
+        MENUITEM "&Toolbar",        ID_TOGGLE_TOOLBAR
+    END
     POPUP "F&ormat"
     BEGIN
         POPUP "&T³o"
diff --git a/programs/wordpad/Ru.rc b/programs/wordpad/Ru.rc
index ef18f08..37bb291 100644
--- a/programs/wordpad/Ru.rc
+++ b/programs/wordpad/Ru.rc
@@ -50,6 +50,10 @@ BEGIN
             MENUITEM "Ï&îëó÷èòü òåêñò",                 ID_EDIT_GETTEXT
         END
     END
+    POPUP "&View"
+    BEGIN
+        MENUITEM "&Toolbar",        ID_TOGGLE_TOOLBAR
+    END
     POPUP "Ôîð&ìàò"
     BEGIN
         POPUP "&Ôîí"
diff --git a/programs/wordpad/Tr.rc b/programs/wordpad/Tr.rc
index 7a124ab..35b9aef 100644
--- a/programs/wordpad/Tr.rc
+++ b/programs/wordpad/Tr.rc
@@ -54,6 +54,10 @@ BEGIN
             MENUITEM "&Metni al",                   ID_EDIT_GETTEXT
         END
     END
+    POPUP "&View"
+    BEGIN
+        MENUITEM "&Toolbar",        ID_TOGGLE_TOOLBAR
+    END
     POPUP "&Biçim"
     BEGIN
         POPUP "&Arkaplan"
diff --git a/programs/wordpad/resource.h b/programs/wordpad/resource.h
index bc7647d..da122db 100644
--- a/programs/wordpad/resource.h
+++ b/programs/wordpad/resource.h
@@ -53,6 +53,10 @@
 #define ID_FORMAT_ITALIC 1401
 #define ID_FORMAT_UNDERLINE 1402
 
+#define ID_TOGGLE_TOOLBAR 1500
+
+#define BANDID_TOOLBAR 0
+
 #define IDC_STATUSBAR 2000
 #define IDC_EDITOR 2001
 #define IDC_TOOLBAR 2002
diff --git a/programs/wordpad/wordpad.c b/programs/wordpad/wordpad.c
index 6efc15d..7a16b15 100644
--- a/programs/wordpad/wordpad.c
+++ b/programs/wordpad/wordpad.c
@@ -48,6 +48,8 @@ static HWND hEditorWnd;
 
 static WCHAR wszFilter[MAX_STRING_LEN];
 
+static LRESULT OnSize( HWND hWnd, WPARAM wParam, LPARAM lParam );
+
 /* Load string resources */
 static void DoLoadStrings(void)
 {
@@ -324,6 +326,43 @@ static void DoDefaultFont(void)
     SendMessage(hEditorWnd, EM_SETCHARFORMAT,  SCF_DEFAULT, (LPARAM)&fmt);
 }
 
+static void toggle_toolbar(int bandId)
+{
+    HWND hwndReBar = GetDlgItem(hMainWnd, IDC_REBAR);
+    REBARBANDINFOW rbbinfo;
+    RECT rect;
+
+    if(!hwndReBar)
+        return;
+
+    rbbinfo.cbSize = sizeof(rbbinfo);
+    rbbinfo.fMask = RBBIM_STYLE;
+
+    SendMessageW(hwndReBar, RB_GETBANDINFO, bandId, (LPARAM)&rbbinfo);
+
+    SendMessageW(hwndReBar, RB_SHOWBAND, bandId, (rbbinfo.fStyle & RBBS_HIDDEN));
+
+    GetWindowRect(hMainWnd, &rect);
+
+    (void) OnSize(hMainWnd, SIZE_RESTORED, MAKELONG(rect.bottom, rect.right));
+}
+
+static int rebar_height(void)
+{
+    HWND hwndReBar = GetDlgItem(hMainWnd, IDC_REBAR);
+
+    REBARBANDINFOW rbbinfo;
+
+    if(!hwndReBar)
+        return 0;
+
+    rbbinfo.cbSize = sizeof(rbbinfo);
+    rbbinfo.fMask = RBBIM_STYLE;
+    SendMessageW(hwndReBar, RB_GETBANDINFO, BANDID_TOOLBAR, (LPARAM)&rbbinfo);
+
+    return (rbbinfo.fStyle & RBBS_HIDDEN) ? 0 : SendMessage(hwndReBar, RB_GETBARHEIGHT, 0, 0);
+}
+
 static LRESULT OnCreate( HWND hWnd, WPARAM wParam, LPARAM lParam)
 {
     HWND hToolBarWnd, hReBarWnd;
@@ -389,7 +428,7 @@ static LRESULT OnCreate( HWND hWnd, WPARAM wParam, LPARAM lParam)
     rbb.cxMinChild = 0;
     rbb.cyChild = rbb.cyMinChild = HIWORD(SendMessage(hToolBarWnd, TB_GETBUTTONSIZE, 0, 0));
 
-    SendMessage(hReBarWnd, RB_INSERTBAND, -1, (LPARAM)&rbb);
+    SendMessageW(hReBarWnd, RB_INSERTBAND, BANDID_TOOLBAR, (LPARAM)&rbb);
 
     hDLL = LoadLibrary("RICHED20.DLL");
     assert(hDLL);
@@ -674,6 +713,10 @@ static LRESULT OnCommand( HWND hWnd, WPARAM wParam, LPARAM lParam)
         SendMessage(hwndEditor, EM_SETBKGNDCOLOR, 0, RGB(255,255,192));
         break;
 
+    case ID_TOGGLE_TOOLBAR:
+        toggle_toolbar(BANDID_TOOLBAR);
+        break;
+
     default:
         SendMessage(hwndEditor, WM_COMMAND, wParam, lParam);
         break;
@@ -685,8 +728,10 @@ static LRESULT OnInitPopupMenu( HWND hWnd, WPARAM wParam, LPARAM lParam )
 {
     HMENU hMenu = (HMENU)wParam;
     HWND hwndEditor = GetDlgItem(hWnd, IDC_EDITOR);
+    HWND hwndReBar = GetDlgItem(hWnd, IDC_REBAR);
     PARAFORMAT pf;
     int nAlignment = -1;
+    REBARBANDINFOW rbbinfo;
 
     pf.cbSize = sizeof(PARAFORMAT);
     SendMessage(hwndEditor, EM_GETPARAFORMAT, 0, (LPARAM)&pf);
@@ -701,17 +746,26 @@ static LRESULT OnInitPopupMenu( HWND hWnd, WPARAM wParam, LPARAM lParam )
     CheckMenuItem(hMenu, ID_ALIGN_RIGHT, MF_BYCOMMAND|(nAlignment == PFA_RIGHT) ? MF_CHECKED : MF_UNCHECKED);
     EnableMenuItem(hMenu, ID_EDIT_UNDO, MF_BYCOMMAND|(SendMessage(hwndEditor, EM_CANUNDO, 0, 0)) ? MF_ENABLED : MF_GRAYED);
     EnableMenuItem(hMenu, ID_EDIT_REDO, MF_BYCOMMAND|(SendMessage(hwndEditor, EM_CANREDO, 0, 0)) ? MF_ENABLED : MF_GRAYED);
+
+    rbbinfo.cbSize = sizeof(rbbinfo);
+    rbbinfo.fMask = RBBIM_STYLE;
+    SendMessageW(hwndReBar, RB_GETBANDINFO, 0, (LPARAM)&rbbinfo);
+
+    CheckMenuItem(hMenu, ID_TOGGLE_TOOLBAR, MF_BYCOMMAND|(rbbinfo.fStyle & RBBS_HIDDEN) ?
+            MF_UNCHECKED : MF_CHECKED);
+
     return 0;
 }
 
 static LRESULT OnSize( HWND hWnd, WPARAM wParam, LPARAM lParam )
 {
-    int nStatusSize = 0, nTBSize = 0;
+    int nStatusSize = 0;
     RECT rc;
     HWND hwndEditor = GetDlgItem(hWnd, IDC_EDITOR);
     HWND hwndStatusBar = GetDlgItem(hWnd, IDC_STATUSBAR);
     HWND hwndReBar = GetDlgItem(hWnd, IDC_REBAR);
     HWND hwndToolBar = GetDlgItem(hwndReBar, IDC_TOOLBAR);
+    int rebarHeight;
 
     if (hwndStatusBar)
     {
@@ -726,14 +780,14 @@ static LRESULT OnSize( HWND hWnd, WPARAM wParam, LPARAM lParam )
         rc.bottom = HIWORD(lParam);
         SendMessage(hwndToolBar, TB_AUTOSIZE, 0, 0);
         SendMessage(hwndReBar, RB_SIZETORECT, 0, (LPARAM)&rc);
-        nTBSize = SendMessage(hwndReBar, RB_GETBARHEIGHT, 0, 0);
         GetClientRect(hwndReBar, &rc);
         MoveWindow(hwndReBar, 0, 0, LOWORD(lParam), rc.right, FALSE);
     }
     if (hwndEditor)
     {
+        rebarHeight = rebar_height();
         GetClientRect(hWnd, &rc);
-        MoveWindow(hwndEditor, 0, nTBSize, rc.right, rc.bottom-nStatusSize-nTBSize, TRUE);
+        MoveWindow(hwndEditor, 0, rebarHeight, rc.right, rc.bottom-nStatusSize-rebarHeight, TRUE);
     }
 
     return DefWindowProcW(hWnd, WM_SIZE, wParam, lParam);




More information about the wine-cvs mailing list