[Libreoffice-commits] .: Branch 'feature/unitymenus' - framework/source vcl/inc vcl/source
Antonio Fernandez
afernandez at kemper.freedesktop.org
Thu Jul 19 09:45:03 PDT 2012
framework/source/uielement/menubarmanager.cxx | 5 +++
framework/source/uielement/menubarwrapper.cxx | 4 +++
vcl/inc/vcl/menu.hxx | 4 +++
vcl/source/window/menu.cxx | 33 ++++++++++++++++++++++++++
4 files changed, 45 insertions(+), 1 deletion(-)
New commits:
commit 432cb6e505251a6465db5b1d49f5831b0b4ec380
Author: Antonio Fernandez <antonio.fernandez at aentos.es>
Date: Thu Jul 19 17:40:17 2012 +0100
Added a "freeze" method to Menu. Menus are now displayed on console.
Change-Id: I71bfc2c0272154b9ff5c2dabe7508a98950e199c
diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx
index 5e85620..d19a8bb 100644
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@ -1004,6 +1004,9 @@ IMPL_LINK( MenuBarManager, Activate, AbstractMenu *, pMenu )
}
}
+// pMenu->Freeze();
+ m_pVCLMenu->Freeze();
+
return 1;
}
@@ -1708,7 +1711,7 @@ void MenuBarManager::FillMenu(
{
RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "framework", "Ocke.Janssen at sun.com", "MenuBarManager::FillMenu" );
// Fill menu bar with container contents
- for ( sal_Int32 n = 0; n < rItemContainer->getCount(); n++ )
+ for ( sal_Int32 n = 0; n < rItemContainer->getCount(); n++ )
{
Sequence< PropertyValue > aProp;
rtl::OUString aCommandURL;
diff --git a/framework/source/uielement/menubarwrapper.cxx b/framework/source/uielement/menubarwrapper.cxx
index 45d5bf8..888f9d8 100644
--- a/framework/source/uielement/menubarwrapper.cxx
+++ b/framework/source/uielement/menubarwrapper.cxx
@@ -181,6 +181,7 @@ void SAL_CALL MenuBarWrapper::initialize( const Sequence< Any >& aArguments ) th
// Fill menubar with container contents
sal_uInt16 nId = 1;
MenuBarManager::FillMenuWithConfiguration( nId, pVCLMenuBar, aModuleIdentifier, m_xConfigData, xTrans );
+// pVCLMenuBar->Freeze();
}
}
catch ( const NoSuchElementException& )
@@ -222,6 +223,9 @@ void SAL_CALL MenuBarWrapper::initialize( const Sequence< Any >& aArguments ) th
// Don't use this toolkit menu bar or one of its functions. It is only used as a data container!
pAwtMenuBar = new VCLXMenuBar( pVCLMenuBar );
m_xMenuBar = Reference< XMenuBar >( static_cast< OWeakObject *>( pAwtMenuBar ), UNO_QUERY );
+
+ // Freeze the menubar
+ pVCLMenuBar->Freeze();
}
}
}
diff --git a/vcl/inc/vcl/menu.hxx b/vcl/inc/vcl/menu.hxx
index 3c4c753..f98e87e 100644
--- a/vcl/inc/vcl/menu.hxx
+++ b/vcl/inc/vcl/menu.hxx
@@ -198,6 +198,8 @@ public:
// Returns the system's menu handle if native menus are supported
// pData must point to a SystemMenuData structure
virtual sal_Bool GetSystemMenuData( SystemMenuData* pData ) const = 0;
+
+ virtual void Freeze(void) = 0;
};
// --------
@@ -455,6 +457,8 @@ public:
void HighlightItem( sal_uInt16 nItemPos );
void DeHighlight() { HighlightItem( 0xFFFF ); } // MENUITEMPOS_INVALID
+
+ void Freeze();
};
// -----------
diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx
index 3b4ac0d..121ee14 100644
--- a/vcl/source/window/menu.cxx
+++ b/vcl/source/window/menu.cxx
@@ -6063,4 +6063,37 @@ ImplMenuDelData::~ImplMenuDelData()
const_cast< Menu* >( mpMenu )->ImplRemoveDel( *this );
}
+#include <iostream>
+using namespace std;
+
+void printMenu( AbstractMenu* pMenu ) {
+ if ( pMenu ) {
+ sal_uInt16 itemCount = pMenu->GetItemCount();
+ MenuItemList *items = ((Menu*)pMenu)->GetItemList();
+
+ for (int i=0; i < itemCount; i++) {
+ MenuItemData *itemData = items->GetDataFromPos(i);
+ sal_uInt16 itemId = pMenu->GetItemId(i);
+
+ if (itemData->eType == MENUITEM_SEPARATOR) {
+ cout << "---------------" << endl;
+ } else {
+ rtl::OUString itemText = itemData->aText;
+ rtl::OUString cmdString = itemData->aCommandStr;
+ cout << "Item ID: " << itemId << " Text: " << itemText << " CMD: " << cmdString << endl;
+
+ if (itemData->pSubMenu) {
+ cout << ">> SUBMENU <<" << endl;
+ printMenu( itemData->pSubMenu );
+ }
+ }
+ }
+ }
+}
+
+void Menu::Freeze() {
+ printMenu( this );
+ cout << "============================================================" << endl;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
More information about the Libreoffice-commits
mailing list