diff --git a/mozilla/cmd/xfe/src/RDFMenuToolbarBase.cpp b/mozilla/cmd/xfe/src/RDFMenuToolbarBase.cpp index 1fa1af519fe..8578502f487 100644 --- a/mozilla/cmd/xfe/src/RDFMenuToolbarBase.cpp +++ b/mozilla/cmd/xfe/src/RDFMenuToolbarBase.cpp @@ -589,14 +589,7 @@ XFE_RDFMenuToolbarBase::createCascadeButton(Widget menu, XFE_RDFUtils::setItemLabelString(_frame->getContext(),cascade,entry); // Configure the new cascade button - if (_fancyItems) - { - configureXfeBmCascade(cascade,entry); - } - else - { - configureCascade(cascade,entry); - } + XFE_RDFUtils::configureMenuCascadeButton(cascade,entry); // Create a new bookmark data structure for the callbacks data = XP_NEW_ZAP(ItemCallbackStruct); @@ -640,14 +633,12 @@ XFE_RDFMenuToolbarBase::createMoreButton(Widget menu) &cascade, &pulldown); - if (_fancyItems) - { - configureXfeBmCascade(cascade,NULL); - } - else - { - configureCascade(cascade,NULL); - } +#if 0 + // Cant use a NULL entry...hmmm... + + // Configure the more button + XFE_RDFUtils::configureMenuCascadeButton(cascade,NULL); +#endif return cascade; } @@ -672,16 +663,15 @@ XFE_RDFMenuToolbarBase::createPushButton(Widget menu, HT_Resource entry) if (_fancyItems) { button = XfeCreateBmButton(non_full_menu,xfeCmdOpenTargetUrl,NULL,0); - - configureXfeBmButton(button,entry); } else { button = XmCreatePushButton(non_full_menu,xfeCmdOpenTargetUrl,NULL,0); - - configureButton(button,entry); } + // Configure the new push button + XFE_RDFUtils::configureMenuPushButton(button,entry); + // Set the item's label XFE_RDFUtils::setItemLabelString(_frame->getContext(),button,entry); @@ -774,110 +764,13 @@ XFE_RDFMenuToolbarBase::createSeparator(Widget menu) separator = XmCreateSeparator(parent,name,NULL,0); - configureSeparator(separator,NULL); +// configureSeparator(separator,NULL); XtManageChild(separator); return separator; } ////////////////////////////////////////////////////////////////////////// -/* virtual */ void -XFE_RDFMenuToolbarBase::configureXfeBmButton(Widget item,HT_Resource entry) -{ - int32 toolbar_style; - PREF_GetIntPref("browser.chrome.toolbar_style", &toolbar_style); - - if (toolbar_style == BROWSER_TOOLBAR_TEXT_ONLY) - { - XtVaSetValues(item, - XmNlabelPixmap, XmUNSPECIFIED_PIXMAP, - XmNlabelPixmapMask, XmUNSPECIFIED_PIXMAP, - NULL); - - } - else - { - Pixmap pixmap; - Pixmap mask; - - XFE_RDFUtils::getPixmapsForEntry(item, - entry, - &pixmap, - &mask, - NULL, - NULL); - - XtVaSetValues(item, - XmNlabelPixmap, pixmap, - XmNlabelPixmapMask, mask, - NULL); - } -} -////////////////////////////////////////////////////////////////////////// -/* virtual */ void -XFE_RDFMenuToolbarBase::configureXfeBmCascade(Widget item,HT_Resource entry) -{ - int32 toolbar_style; - PREF_GetIntPref("browser.chrome.toolbar_style", &toolbar_style); - - if (toolbar_style == BROWSER_TOOLBAR_TEXT_ONLY) - { - XtVaSetValues(item, - XmNlabelPixmap, XmUNSPECIFIED_PIXMAP, - XmNlabelPixmapMask, XmUNSPECIFIED_PIXMAP, - XmNarmPixmap, XmUNSPECIFIED_PIXMAP, - XmNarmPixmapMask, XmUNSPECIFIED_PIXMAP, - NULL); - } - else - { - Pixmap pixmap; - Pixmap mask; - Pixmap armedPixmap; - Pixmap armedMask; - - XFE_RDFUtils::getPixmapsForEntry(item, - entry, - &pixmap, - &mask, - &armedPixmap, - &armedMask); - - Arg av[4]; - Cardinal ac = 0; - - XtSetArg(av[ac],XmNlabelPixmap, pixmap); ac++; - XtSetArg(av[ac],XmNlabelPixmapMask, mask); ac++; - - // Only show the aremd pixmap/mask if this entry has children - if (XfeIsAlive(XfeCascadeGetSubMenu(item))) - { - XtSetArg(av[ac],XmNarmPixmap, armedPixmap); ac++; - XtSetArg(av[ac],XmNarmPixmapMask, armedMask); ac++; - } - - XtSetValues(item,av,ac); - } -} -////////////////////////////////////////////////////////////////////////// -/* virtual */ void -XFE_RDFMenuToolbarBase::configureButton(Widget /*item*/, - HT_Resource /*entry*/) -{ -} -////////////////////////////////////////////////////////////////////////// -/* virtual */ void -XFE_RDFMenuToolbarBase::configureCascade(Widget /*item*/, - HT_Resource /*entry*/) -{ -} -////////////////////////////////////////////////////////////////////////// -/* virtual */ void -XFE_RDFMenuToolbarBase::configureSeparator(Widget /*item*/, - HT_Resource /*entry*/) -{ -} -////////////////////////////////////////////////////////////////////////// HT_Resource XFE_RDFMenuToolbarBase::getAddFolder() { diff --git a/mozilla/cmd/xfe/src/RDFMenuToolbarBase.h b/mozilla/cmd/xfe/src/RDFMenuToolbarBase.h index d3eccd34bb9..ab35410c914 100644 --- a/mozilla/cmd/xfe/src/RDFMenuToolbarBase.h +++ b/mozilla/cmd/xfe/src/RDFMenuToolbarBase.h @@ -120,13 +120,6 @@ protected: // Gets called when the personal toolbar folder's name changes virtual void updateToolbarFolderName (); - // Configure the items - virtual void configureXfeBmButton (Widget, HT_Resource); - virtual void configureXfeBmCascade (Widget, HT_Resource); - virtual void configureButton (Widget, HT_Resource); - virtual void configureCascade (Widget, HT_Resource); - virtual void configureSeparator (Widget, HT_Resource); - // Menu component creation methods Widget createCascadeButton (Widget menu, HT_Resource entry, XP_Bool ignore_children); diff --git a/mozilla/cmd/xfe/src/RDFToolbar.cpp b/mozilla/cmd/xfe/src/RDFToolbar.cpp index 243b0363ac9..e83d8255496 100644 --- a/mozilla/cmd/xfe/src/RDFToolbar.cpp +++ b/mozilla/cmd/xfe/src/RDFToolbar.cpp @@ -376,50 +376,6 @@ XFE_RDFToolbar::updateRoot() } ////////////////////////////////////////////////////////////////////////// /* virtual */ void -XFE_RDFToolbar::configureXfeButton(Widget item,HT_Resource entry) -{ - int32 style = XFE_RDFUtils::getStyleForEntry(entry); - unsigned char layout = XFE_RDFUtils::getButtonLayoutForEntry(entry, - style); - - if (style == BROWSER_TOOLBAR_TEXT_ONLY) - { - XtVaSetValues(item, - XmNpixmap, XmUNSPECIFIED_PIXMAP, - XmNpixmapMask, XmUNSPECIFIED_PIXMAP, - NULL); - - XtVaSetValues(item, XmNbuttonLayout, layout, NULL); - } - else - { - Pixmap pixmap; - Pixmap pixmapMask; - - XFE_RDFUtils::getPixmapsForEntry(item, - entry, - &pixmap, - &pixmapMask, - NULL, - NULL); - - XtVaSetValues(item, - XmNpixmap, pixmap, - XmNpixmapMask, pixmapMask, - XmNbuttonLayout, layout, - NULL); - } - -#ifdef NOT_YET - // Add popup callback to item - XtAddCallback(item, - XmNbutton3DownCallback, - &XFE_RDFToolbar::popupCB, - (XtPointer) this); -#endif -} -////////////////////////////////////////////////////////////////////////// -/* virtual */ void XFE_RDFToolbar::configureXfeCascade(Widget item,HT_Resource entry) { int32 style = XFE_RDFUtils::getStyleForEntry(entry); @@ -468,14 +424,6 @@ XFE_RDFToolbar::configureXfeCascade(Widget item,HT_Resource entry) XtVaSetValues(item,XmNbuttonLayout,layout,NULL); } - -#ifdef NOT_YET - // Add popup callback to item - XtAddCallback(item, - XmNbutton3DownCallback, - &XFE_RDFToolbar::popupCB, - (XtPointer) this); -#endif } ////////////////////////////////////////////////////////////////////////// void diff --git a/mozilla/cmd/xfe/src/RDFToolbar.h b/mozilla/cmd/xfe/src/RDFToolbar.h index e87aea192f8..abeccb809b2 100644 --- a/mozilla/cmd/xfe/src/RDFToolbar.h +++ b/mozilla/cmd/xfe/src/RDFToolbar.h @@ -78,7 +78,6 @@ protected: void addItem (HT_Resource); // Override RDFMenuToolbarBase methods - virtual void configureXfeButton (Widget, HT_Resource); virtual void configureXfeCascade (Widget, HT_Resource); // Toolbar component creation methods diff --git a/mozilla/cmd/xfe/src/RDFUtils.cpp b/mozilla/cmd/xfe/src/RDFUtils.cpp index e1a760d0030..931d5887f44 100644 --- a/mozilla/cmd/xfe/src/RDFUtils.cpp +++ b/mozilla/cmd/xfe/src/RDFUtils.cpp @@ -45,6 +45,9 @@ #include // For XmBUTTON_ defines +#include // For XfeIsBmButton() +#include // For XfeIsBmCascade() + ////////////////////////////////////////////////////////////////////////// // // XFE Command utilities @@ -657,3 +660,102 @@ XFE_RDFUtils::getButtonLayoutForEntry(HT_Resource entry,int32 style) return layout; } ////////////////////////////////////////////////////////////////////////// + +////////////////////////////////////////////////////////////////////////// +// +// Menu items +// +////////////////////////////////////////////////////////////////////////// +/* static */ void +XFE_RDFUtils::configureMenuPushButton(Widget item,HT_Resource entry) +{ + XP_ASSERT( XfeIsAlive(item) ); + XP_ASSERT( entry != NULL ); + + // Pixmaps can only be set for XfeBmButton widgets + if (XfeIsBmButton(item)) + { + int32 style; + PREF_GetIntPref("browser.chrome.style", &style); + + if (style == BROWSER_TOOLBAR_TEXT_ONLY) + { + XtVaSetValues(item, + XmNlabelPixmap, XmUNSPECIFIED_PIXMAP, + XmNlabelPixmapMask, XmUNSPECIFIED_PIXMAP, + NULL); + + } + else + { + Pixmap pixmap; + Pixmap mask; + + XFE_RDFUtils::getPixmapsForEntry(item, + entry, + &pixmap, + &mask, + NULL, + NULL); + + XtVaSetValues(item, + XmNlabelPixmap, pixmap, + XmNlabelPixmapMask, mask, + NULL); + } + } +} +////////////////////////////////////////////////////////////////////////// +/* static */ void +XFE_RDFUtils::configureMenuCascadeButton(Widget item,HT_Resource entry) +{ + XP_ASSERT( XfeIsAlive(item) ); + XP_ASSERT( entry != NULL ); + + // Pixmaps can only be set for XfeBmCascade widgets + if (XfeIsBmCascade(item)) + { + int32 style; + PREF_GetIntPref("browser.chrome.style", &style); + + if (style == BROWSER_TOOLBAR_TEXT_ONLY) + { + XtVaSetValues(item, + XmNlabelPixmap, XmUNSPECIFIED_PIXMAP, + XmNlabelPixmapMask, XmUNSPECIFIED_PIXMAP, + XmNarmPixmap, XmUNSPECIFIED_PIXMAP, + XmNarmPixmapMask, XmUNSPECIFIED_PIXMAP, + NULL); + } + else + { + Pixmap pixmap; + Pixmap mask; + Pixmap armedPixmap; + Pixmap armedMask; + + XFE_RDFUtils::getPixmapsForEntry(item, + entry, + &pixmap, + &mask, + &armedPixmap, + &armedMask); + + Arg av[4]; + Cardinal ac = 0; + + XtSetArg(av[ac],XmNlabelPixmap, pixmap); ac++; + XtSetArg(av[ac],XmNlabelPixmapMask, mask); ac++; + + // Only show the armed pixmap/mask if this entry has children + if (XfeIsAlive(XfeCascadeGetSubMenu(item))) + { + XtSetArg(av[ac],XmNarmPixmap, armedPixmap); ac++; + XtSetArg(av[ac],XmNarmPixmapMask, armedMask); ac++; + } + + XtSetValues(item,av,ac); + } + } +} +////////////////////////////////////////////////////////////////////////// diff --git a/mozilla/cmd/xfe/src/RDFUtils.h b/mozilla/cmd/xfe/src/RDFUtils.h index e4613e0a851..1ee48a08166 100644 --- a/mozilla/cmd/xfe/src/RDFUtils.h +++ b/mozilla/cmd/xfe/src/RDFUtils.h @@ -130,6 +130,18 @@ public: static unsigned char getButtonLayoutForEntry (HT_Resource entry, int32 style); + + ////////////////////////////////////////////////////////////////////// + // // + // Menu items // + // // + ////////////////////////////////////////////////////////////////////// + static void configureMenuPushButton (Widget item, + HT_Resource entry); + + static void configureMenuCascadeButton (Widget item, + HT_Resource entry); + }; #endif // _xfe_rdf_utils_h_