The edit headers menu items and toolbar can get out of sync.
You can even edit a header that's not inserted.
This quick patch makes the menu & the toolbar ghosting work the same.
I'm not convinced that headers & footers actually work at all :-), but it's
clear the ghosting of the menu & toolbar should be identical.
-Bryce
Index: wp/ap/xp/ap_Toolbar_ActionSet.cpp
===================================================================
RCS file: /cvsroot/abi/src/wp/ap/xp/ap_Toolbar_ActionSet.cpp,v
retrieving revision 1.38
diff -u -r1.38 ap_Toolbar_ActionSet.cpp
--- wp/ap/xp/ap_Toolbar_ActionSet.cpp 2001/12/14 22:01:47 1.38
+++ wp/ap/xp/ap_Toolbar_ActionSet.cpp 2001/12/28 23:44:28
@@ -88,8 +88,8 @@
_s(AP_TOOLBAR_ID_EDIT_COPY, EV_TBIT_PushButton,
"copy", AV_CHG_EMPTYSEL, ap_ToolbarGetState_Selection);
_s(AP_TOOLBAR_ID_EDIT_PASTE, EV_TBIT_PushButton, "paste",
AV_CHG_CLIPBOARD, ap_ToolbarGetState_Clipboard);
- _s(AP_TOOLBAR_ID_EDIT_HEADER, EV_TBIT_PushButton, "editHeader",
AV_CHG_NONE, NULL);
- _s(AP_TOOLBAR_ID_EDIT_FOOTER, EV_TBIT_PushButton, "editFooter",
AV_CHG_NONE, NULL);
+ _s(AP_TOOLBAR_ID_EDIT_HEADER, EV_TBIT_PushButton, "editHeader",
+ AV_CHG_FRAMEDATA, ap_ToolbarGetState_HdrFtr); // !!! Correct AV_CHG
+used?
+ _s(AP_TOOLBAR_ID_EDIT_FOOTER, EV_TBIT_PushButton, "editFooter",
+ AV_CHG_FRAMEDATA, ap_ToolbarGetState_HdrFtr); // !!! Correct AV_CHG
+used?
_s(AP_TOOLBAR_ID_EDIT_REMOVEHEADER, EV_TBIT_PushButton,
"removeHeader", AV_CHG_MOTION, ap_ToolbarGetState_HdrFtr);
_s(AP_TOOLBAR_ID_EDIT_REMOVEFOOTER, EV_TBIT_PushButton,
"removeFooter", AV_CHG_MOTION, ap_ToolbarGetState_HdrFtr);
Index: wp/ap/xp/ap_Toolbar_Functions.cpp
===================================================================
RCS file: /cvsroot/abi/src/wp/ap/xp/ap_Toolbar_Functions.cpp,v
retrieving revision 1.41
diff -u -r1.41 ap_Toolbar_Functions.cpp
--- wp/ap/xp/ap_Toolbar_Functions.cpp 2001/12/14 22:01:47 1.41
+++ wp/ap/xp/ap_Toolbar_Functions.cpp 2001/12/28 23:44:28
@@ -136,14 +136,29 @@
ABIWORD_VIEW;
UT_ASSERT(pView);
+ XAP_Frame * pFrame = static_cast<XAP_Frame *> (pAV_View->getParentData());
+ UT_ASSERT(pFrame);
+
+ AP_FrameData *pFrameData = static_cast<AP_FrameData *>
+(pFrame->getFrameData());
+ UT_ASSERT(pFrameData);
+
if (pszState)
*pszState = NULL;
EV_Toolbar_ItemState s = EV_TIS_ZERO;
-
switch (id)
{
+ case AP_TOOLBAR_ID_EDIT_HEADER:
+ if (pFrameData->m_pViewMode == VIEW_NORMAL)
+ s = EV_TIS_Gray;
+ break;
+
+ case AP_TOOLBAR_ID_EDIT_FOOTER:
+ if (pFrameData->m_pViewMode == VIEW_NORMAL)
+ s = EV_TIS_Gray;
+ break;
+
case AP_TOOLBAR_ID_EDIT_REMOVEHEADER:
if (!pView->isHeaderOnPage())
s = EV_TIS_Gray;