summaryrefslogtreecommitdiff
path: root/framework/collector
diff options
context:
space:
mode:
authorOliver Bolte <obo@openoffice.org>2004-07-06 15:48:31 +0000
committerOliver Bolte <obo@openoffice.org>2004-07-06 15:48:31 +0000
commit2f3f23b4ea6cdd6e221df5193ccfabb7d32602ca (patch)
treeea98b62304945b589230883ba3c77b6a243028c6 /framework/collector
parentd32c0d1f7f83096e513683fdef73ece4efa31ecd (diff)
INTEGRATION: CWS docking1 (1.6.4); FILE MERGED
2004/05/14 16:35:06 cd 1.6.4.7: #i25239# Save info about storing process, save additional prop within Commands.xcu files to support rotate/mirror of command images 2004/05/12 08:27:20 cd 1.6.4.6: #i25117# Support toggle visibility of toolbar buttons 2004/05/10 13:54:00 cd 1.6.4.5: #i26252# Fixed problem with moved ofa-resource 2004/05/06 15:20:49 cd 1.6.4.4: #i25239# Fixed a problem when reading SfxSlotInfo resources 2004/05/05 11:36:36 cd 1.6.4.3: #i25239# Additional toolbars from draw team 2004/04/30 06:28:17 cd 1.6.4.2: #i25239# Added several sub toolbars available from svx library 2004/04/21 07:25:13 cd 1.6.4.1: #i24937# Added all known toolbar to convert them to XML
Diffstat (limited to 'framework/collector')
-rw-r--r--framework/collector/cmduicollector.cxx738
1 files changed, 707 insertions, 31 deletions
diff --git a/framework/collector/cmduicollector.cxx b/framework/collector/cmduicollector.cxx
index 8acef0bd12e9..0946687e612a 100644
--- a/framework/collector/cmduicollector.cxx
+++ b/framework/collector/cmduicollector.cxx
@@ -2,9 +2,9 @@
*
* $RCSfile: cmduicollector.cxx,v $
*
- * $Revision: 1.7 $
+ * $Revision: 1.8 $
*
- * last change: $Author: hjs $ $Date: 2004-06-25 15:35:15 $
+ * last change: $Author: obo $ $Date: 2004-07-06 16:48:31 $
*
* The Contents of this file are made available subject to the terms of
* either of the following licenses
@@ -77,7 +77,10 @@
#include <tools/isolang.hxx>
//#include <vcl/rc.hxx>
#include <vcl/menu.hxx>
+#include <vcl/toolbox.hxx>
#include <vcl/svapp.hxx>
+#include <vcl/wrkwin.hxx>
+#include <vcl/floatwin.hxx>
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
#ifndef _COM_SUN_STAR_LANG_LOCALE_HPP_
@@ -107,6 +110,128 @@ const unsigned short MENUBAR_DBACCESS_TABLE = 19210;
const unsigned short MENUBAR_DBACCESS_QUERY = 19211;
const unsigned short MENUBAR_DBACCESS_RELATION = 19212;
+// Toolbars
+const unsigned short TOOLBAR_functionbar = 560;
+const unsigned short TOOLBAR_fullscreenbar = 558;
+const unsigned short TOOLBAR_macrobar = 14850;
+const unsigned short TOOLBAR_formsnavigationbar = 18003;
+const unsigned short TOOLBAR_formsfilterbar = 18004;
+const unsigned short TOOLBAR_mathtoolbar = 20050;
+//const unsigned short TOOLBAR_chartobjectbar = 30001;
+const unsigned short TOOLBAR_charttoolbar = 30513;
+const unsigned short TOOLBAR_calctextobjectbar = 25005;
+const unsigned short TOOLBAR_calcformsobjectbar = 25047;
+const unsigned short TOOLBAR_calcdrawobjectbar = 25053;
+const unsigned short TOOLBAR_calcgrapicobjectbar = 25054;
+const unsigned short TOOLBAR_calcformatobjectbar = 25001;
+const unsigned short TOOLBAR_calcpreviewbar = 25006;
+const unsigned short TOOLBAR_calctoolbar = 25035;
+const unsigned short TOOLBAR_drawbezierobjectbar = 23015;
+const unsigned short TOOLBAR_drawgluepointsobjectbar = 23019;
+const unsigned short TOOLBAR_impressgraphicobjectbar = 23030;
+const unsigned short TOOLBAR_drawdrawingobjectbar = 23013;
+const unsigned short TOOLBAR_impresstextobjectbar = 23016;
+const unsigned short TOOLBAR_drawtextobjectbar = 23028;
+const unsigned short TOOLBAR_impresstoolbar = 23011;
+const unsigned short TOOLBAR_impressoptionsbar = 23020;
+const unsigned short TOOLBAR_impresscommontaskbar = 23021;
+const unsigned short TOOLBAR_drawtoolbar = 23025;
+const unsigned short TOOLBAR_drawoptionsbar = 23026;
+const unsigned short TOOLBAR_drawgraphicobjectbar = 23027;
+const unsigned short TOOLBAR_impressoutlinetoolbar = 23017;
+const unsigned short TOOLBAR_impressslideviewtoolbar = 23012;
+const unsigned short TOOLBAR_impressslideviewobjectbar = 23014;
+const unsigned short TOOLBAR_writerbezierobjectbar = 23283;
+const unsigned short TOOLBAR_writerdrawingobjectbar = 23269;
+const unsigned short TOOLBAR_writerformsobjectbar = 23299;
+const unsigned short TOOLBAR_writerdrawtextobjectbar = 23270;
+const unsigned short TOOLBAR_writerframeobjectbar = 23267;
+const unsigned short TOOLBAR_writergraphicobjectbar = 23268;
+const unsigned short TOOLBAR_writernumobjectbar = 23271;
+const unsigned short TOOLBAR_writeroleobjectbar = 23272;
+const unsigned short TOOLBAR_writertableobjectbar = 23266;
+const unsigned short TOOLBAR_writertextobjectbar = 23265;
+const unsigned short TOOLBAR_writerpreviewobjectbar = 20631;
+//const unsigned short TOOLBAR_websourceviewobjectbar = 23282;
+//const unsigned short TOOLBAR_websourceviewtoolbar = 20412;
+const unsigned short TOOLBAR_webtextobjectbar = 20403;
+const unsigned short TOOLBAR_writertoolbar = 23273;
+const unsigned short TOOLBAR_webframeobjectbar = 20408;
+const unsigned short TOOLBAR_webgraphicobjectbar = 20410;
+const unsigned short TOOLBAR_weboleobjectbar = 20411;
+const unsigned short TOOLBAR_webtoolbar = 20402;
+//const unsigned short TOOLBAR_BRW_TAB_TOOLBOX = 19200;
+const unsigned short TOOLBAR_BRW_QRY_TOOLBOX = 19201;
+//const unsigned short TOOLBAR_QRY_TOOLBOX_SQL = 19202;
+const unsigned short TOOLBAR_BRW_QUERYDESIGN_TOOLBOX = 19203;
+const unsigned short TOOLBAR_BRW_REALTIONDESIGN_TOOLBOX = 19204;
+const unsigned short TOOLBAR_fontworkobjectbar = 10987;
+const unsigned short TOOLBAR_extrusionobjectbar = 10986;
+
+// Sub-Toolbars
+const unsigned short RID_LIB_START = 10000;
+const unsigned short RID_APP_START = 20000;
+
+// Draw/Impress
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_ALIGNMENT = RID_APP_START+1;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_ALIGNMENT_TBX = RID_APP_START+5;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_ZOOM = RID_APP_START+2;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_ZOOM_TBX = RID_APP_START+6;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_CHOOSE_MODE = RID_APP_START+7;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_CHOOSE_MODE_TBX = RID_APP_START+8;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_TEXT = RID_APP_START+10;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_TEXT_TBX = RID_APP_START+11;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_RECTANGLES = RID_APP_START+12;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_RECTANGLES_TBX = RID_APP_START+13;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_ELLIPSES = RID_APP_START+14;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_ELLIPSES_TBX = RID_APP_START+15;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_LINES = RID_APP_START+16;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_LINES_TBX = RID_APP_START+17;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_3D_OBJECTS = RID_APP_START+18;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_3D_OBJECTS_TBX = RID_APP_START+19;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_INSERT = RID_APP_START+20;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_INSERT_TBX = RID_APP_START+21;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_POSITION = RID_APP_START+22;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_POSITION_TBX = RID_APP_START+23;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_CONNECTORS = RID_APP_START+24;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_CONNECTORS_TBX = RID_APP_START+25;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_ARROWS = RID_APP_START+26;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_ARROWS_TBX = RID_APP_START+27;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_GRAFFILTERS = RID_APP_START+29;
+const unsigned short SUBTOOLBAR_DRAWIMPRESS_RID_GRAFFILTERS_TBX = RID_APP_START+30;
+
+//Writer
+const unsigned short RID_SW_START = 20000;
+const unsigned short RC_BASE = RID_SW_START;
+const unsigned short RC_RIBBAR = (RC_BASE + 720);
+const unsigned short RC_RIBBAR_BEGIN = RC_RIBBAR;
+const unsigned short SUBTOOLBAR_WRITER_RID_INSERT_CTRL = (RC_RIBBAR_BEGIN + 24);
+const unsigned short SUBTOOLBAR_WRITER_TBX_INSERT = 1;
+const unsigned short SUBTOOLBAR_WRITER_RID_INSERT_OBJ_CTRL = (RC_RIBBAR_BEGIN + 25);
+const unsigned short SUBTOOLBAR_WRITER_TBX_OBJ_INSERT = 2;
+const unsigned short SUBTOOLBAR_WRITER_RID_TBL_OPT_CTRL = (RC_RIBBAR_BEGIN + 27);
+const unsigned short SUBTOOLBAR_WRITER_TBX_OPTIMIZE_TABLE = 1;
+
+//Calc
+const unsigned short SC_RESOURCE_START = (RID_APP_START+5000);
+const unsigned short SUBTOOLBAR_CALC_RID_TBXCTL_INSERT = (SC_RESOURCE_START+38);
+const unsigned short SUBTOOLBAR_CALC_RID_TOOLBOX_INSERT = 1;
+const unsigned short SUBTOOLBAR_CALC_RID_TBXCTL_INSCELLS = (SC_RESOURCE_START+39);
+const unsigned short SUBTOOLBAR_CALC_RID_TOOLBOX_INSCELLS = 2;
+const unsigned short SUBTOOLBAR_CALC_RID_TBXCTL_INSOBJ = (SC_RESOURCE_START+40);
+const unsigned short SUBTOOLBAR_CALC_RID_TOOLBOX_INSOBJ = 3;
+
+//Basic
+const unsigned short RID_BASICIDE_START = (RID_LIB_START+4850);
+const unsigned short SUBTOOLBAR_BASIC_RID_TBXCONTROLS = ( RID_BASICIDE_START + 65 );
+const unsigned short SUBTOOLBAR_BASIC_RID_TOOLBOX = ( RID_BASICIDE_START + 66 );
+
+//Global
+const unsigned short RID_SVX_START = (RID_LIB_START);
+const unsigned short SUBTOOLBAR_GLOBAL_RID_SVXTBX_DRAW = (RID_SVX_START + 189);
+const unsigned short SUBTOOLBAR_GLOBAL_TBX_DRAW = 1;
+const unsigned short SUBTOOLBAR_GLOBAL_RID_SVXTBX_ALIGNMENT = (RID_SVX_START + 190);
+const unsigned short SUBTOOLBAR_GLOBAL_TBX_ALIGNMENT = 10131; // SID_OBJECT_ALIGN_LEFT
struct ISO_code
{
@@ -114,8 +239,8 @@ struct ISO_code
const char* pCountry;
};
-const int NUM_LANGUAGES = 27;
-//const int NUM_LANGUAGES = 2;
+//const int NUM_LANGUAGES = 27;
+const int NUM_LANGUAGES = 1;
ISO_code Language_codes[] =
{
@@ -164,6 +289,30 @@ enum MODULES
MODULE_COUNT
};
+enum SUBMODULES
+{
+ SUBMODULE_GLOBAL = 1,
+ SUBMODULE_WRITER = 2,
+ SUBMODULE_WRITERWEB = 4,
+ SUBMODULE_WRITERGLOBAL = 8,
+ SUBMODULE_CALC = 16,
+ SUBMODULE_DRAW = 32,
+ SUBMODULE_IMPRESSS = 64,
+ SUBMODULE_CHART = 128,
+ SUBMODULE_MATH = 256,
+ SUBMODULE_BASIC = 512,
+ SUBMODULE_BIBLIO = 1024,
+ SUBMODULE_BACKINGCOMP = 2048,
+ SUBMODULE_DB_TABLE = 4096,
+ SUBMODULE_DB_QUERY = 8192,
+ SUBMODULE_DB_RELATION = 16384
+};
+
+enum PARENT_RESTYPES
+{
+ PARENT_RESTYPE_FLOATINGWINDOW
+};
+
struct Projects
{
const char* pProjectFolder;
@@ -177,7 +326,7 @@ Projects ProjectModule_Mapping[] =
{
{ "sfx2" , "sfx", "sfx2", true, MODULE_GLOBAL },
{ "svx" , "svx", "svx", true, MODULE_GLOBAL },
- { "offmgr" , "ofa", "ofa", true, MODULE_GLOBAL },
+ { "svx" , "ofa", "ofa", true, MODULE_GLOBAL },
{ "sw" , "sw", "sw", true, MODULE_WRITER },
{ "sd" , "sd", "sd", true, MODULE_DRAWIMPRESS },
{ "sc" , "sc", "sc", true, MODULE_CALC },
@@ -207,14 +356,25 @@ const char* ModuleToXML_Mapping[] =
0
};
-struct MenuResourceToModule
+struct ResourceToModule
{
unsigned short nResId;
const char* pXMLPrefix;
MODULES eBelongsTo;
+ bool bWritten;
+};
+
+struct SubResourceToModule
+{
+ unsigned short nParentResId;
+ PARENT_RESTYPES eParentResType;
+ unsigned short nResId;
+ const char* pXMLPrefix;
+ MODULES eBelongsTo;
+ bool bWritten;
};
-MenuResourceToModule ResourceModule_Mapping[] =
+ResourceToModule ResourceModule_Mapping[] =
{
{ MENUBAR_GLOBAL, "default", MODULE_GLOBAL }, // important: To prevent duplicate popup menu entries make sure this is the first entry!!
{ MENUBAR_BASIC, "basic", MODULE_BASIC },
@@ -234,6 +394,94 @@ MenuResourceToModule ResourceModule_Mapping[] =
{ 0, "", MODULE_DBACCESS }
};
+ResourceToModule TBResourceModule_Mapping[] =
+{
+ { TOOLBAR_functionbar ,"standardbar", MODULE_GLOBAL , false },
+ { TOOLBAR_fullscreenbar ,"fullscreenbar", MODULE_GLOBAL , false },
+ { TOOLBAR_macrobar ,"macrobar", MODULE_BASIC , false },
+ { TOOLBAR_formsnavigationbar ,"formsnavigationbar", MODULE_GLOBAL , false },
+ { TOOLBAR_formsfilterbar ,"formsfilterbar", MODULE_GLOBAL , false },
+ { TOOLBAR_fontworkobjectbar ,"fontworkobjectbar", MODULE_GLOBAL , false },
+ { TOOLBAR_extrusionobjectbar ,"extrusionobjectbar", MODULE_GLOBAL , false },
+ { TOOLBAR_mathtoolbar ,"mathtoolbar", MODULE_MATH , false },
+// { TOOLBAR_chartobjectbar ,"chartobjectbar", MODULE_CHART , false },
+ { TOOLBAR_charttoolbar ,"charttoolbar", MODULE_CHART , false },
+ { TOOLBAR_calctextobjectbar ,"calctextobjectbar", MODULE_CALC , false },
+ { TOOLBAR_calcformsobjectbar ,"calcformsobjectbar", MODULE_CALC , false },
+ { TOOLBAR_calcdrawobjectbar ,"calcdrawobjectbar", MODULE_CALC , false },
+ { TOOLBAR_calcgrapicobjectbar ,"calcgrapicobjectbar", MODULE_CALC , false },
+ { TOOLBAR_calcformatobjectbar ,"calcformatobjectbar", MODULE_CALC , false },
+ { TOOLBAR_calcpreviewbar ,"calcpreviewbar", MODULE_CALC , false },
+ { TOOLBAR_calctoolbar ,"calctoolbar", MODULE_CALC , false },
+ { TOOLBAR_drawbezierobjectbar ,"drawbezierobjectbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_drawgluepointsobjectbar ,"drawgluepointsobjectbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_impressgraphicobjectbar ,"impressgraphicobjectbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_drawdrawingobjectbar ,"drawdrawingobjectbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_impresstextobjectbar ,"impresstextobjectbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_drawtextobjectbar ,"drawtextobjectbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_impresstoolbar ,"impresstoolbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_impressoptionsbar ,"impressoptionsbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_impresscommontaskbar ,"impresscommontaskbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_drawtoolbar ,"drawtoolbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_drawoptionsbar ,"drawoptionsbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_drawgraphicobjectbar ,"drawgraphicobjectbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_impressoutlinetoolbar ,"impressoutlinetoolbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_impressslideviewtoolbar ,"impressslideviewtoolbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_impressslideviewobjectbar ,"impressslideviewobjectbar", MODULE_DRAWIMPRESS , false },
+ { TOOLBAR_writerbezierobjectbar ,"writerbezierobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_writerdrawingobjectbar ,"writerdrawingobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_writerformsobjectbar ,"writerformsobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_writerdrawtextobjectbar ,"writerdrawtextobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_writerframeobjectbar ,"writerframeobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_writergraphicobjectbar ,"writergraphicobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_writernumobjectbar ,"writernumobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_writeroleobjectbar ,"writeroleobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_writertableobjectbar ,"writertableobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_writertextobjectbar ,"writertextobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_writerpreviewobjectbar ,"writerpreviewobjectbar", MODULE_WRITER , false },
+// { TOOLBAR_websourceviewobjectbar ,"websourceviewobjectbar", MODULE_WRITER , false },
+// { TOOLBAR_websourceviewtoolbar ,"websourceviewtoolbar", MODULE_WRITER , false },
+ { TOOLBAR_webtextobjectbar ,"webtextobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_writertoolbar ,"writertoolbar", MODULE_WRITER , false },
+ { TOOLBAR_webframeobjectbar ,"webframeobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_webgraphicobjectbar ,"webgraphicobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_weboleobjectbar ,"weboleobjectbar", MODULE_WRITER , false },
+ { TOOLBAR_webtoolbar ,"webtoolbar", MODULE_WRITER , false },
+// { TOOLBAR_BRW_TAB_TOOLBOX ,"dbtablebrowsebar", MODULE_DBACCESS , false },
+ { TOOLBAR_BRW_QRY_TOOLBOX ,"dbquerybrowsebar", MODULE_DBACCESS , false },
+// { TOOLBAR_QRY_TOOLBOX_SQL ,"dbquerysqlbar", MODULE_DBACCESS , false },
+ { TOOLBAR_BRW_QUERYDESIGN_TOOLBOX ,"dbquerydesignbar", MODULE_DBACCESS , false },
+ { TOOLBAR_BRW_REALTIONDESIGN_TOOLBOX ,"dbrelationbrowsebar", MODULE_DBACCESS , false },
+ { 0 ,"", MODULE_GLOBAL , false }
+};
+
+struct SubResourceToModule TBSubResourceModule_Mapping[] =
+{
+ { SUBTOOLBAR_DRAWIMPRESS_RID_ALIGNMENT, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_ALIGNMENT_TBX , "drawimpressalignmentbar" , MODULE_DRAWIMPRESS , false },
+ { SUBTOOLBAR_DRAWIMPRESS_RID_ZOOM, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_ZOOM_TBX , "drawimpresszoombar" , MODULE_DRAWIMPRESS , false },
+ { SUBTOOLBAR_DRAWIMPRESS_CHOOSE_MODE, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_CHOOSE_MODE_TBX , "drawimpresschoosemodebar" , MODULE_DRAWIMPRESS , false },
+ { SUBTOOLBAR_DRAWIMPRESS_RID_TEXT, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_TEXT_TBX , "drawimpresstextbar" , MODULE_DRAWIMPRESS , false },
+ { SUBTOOLBAR_DRAWIMPRESS_RID_RECTANGLES, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_RECTANGLES_TBX , "drawimpressrectanglebar" , MODULE_DRAWIMPRESS , false },
+ { SUBTOOLBAR_DRAWIMPRESS_RID_ELLIPSES, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_ELLIPSES_TBX , "drawimpressellipsesbar" , MODULE_DRAWIMPRESS , false },
+ { SUBTOOLBAR_DRAWIMPRESS_RID_LINES, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_LINES_TBX , "drawimpresslinesbar" , MODULE_DRAWIMPRESS , false },
+ { SUBTOOLBAR_DRAWIMPRESS_RID_3D_OBJECTS, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_3D_OBJECTS_TBX , "drawimpress3dobjectsbar" , MODULE_DRAWIMPRESS , false },
+ { SUBTOOLBAR_DRAWIMPRESS_RID_INSERT, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_INSERT_TBX , "drawimpressinsertbar" , MODULE_DRAWIMPRESS , false },
+ { SUBTOOLBAR_DRAWIMPRESS_RID_POSITION, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_POSITION_TBX , "drawimpresspositionbar" , MODULE_DRAWIMPRESS , false },
+ { SUBTOOLBAR_DRAWIMPRESS_RID_CONNECTORS, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_CONNECTORS_TBX , "drawimpressconnectorsbar" , MODULE_DRAWIMPRESS , false },
+ { SUBTOOLBAR_DRAWIMPRESS_RID_ARROWS, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_ARROWS_TBX , "drawimpressarrowsbar" , MODULE_DRAWIMPRESS , false },
+// { SUBTOOLBAR_DRAWIMPRESS_RID_GRAFFILTERS, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_DRAWIMPRESS_RID_GRAFFILTERS_TBX , "drawimpressgraffiltersbar" , MODULE_DRAWIMPRESS, false },
+ { SUBTOOLBAR_WRITER_RID_INSERT_CTRL , PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_WRITER_TBX_INSERT , "writerinsertbar" , MODULE_WRITER , false },
+ { SUBTOOLBAR_WRITER_RID_INSERT_OBJ_CTRL , PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_WRITER_TBX_OBJ_INSERT , "writerinsertobjectbar" , MODULE_WRITER , false },
+ { SUBTOOLBAR_WRITER_RID_TBL_OPT_CTRL , PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_WRITER_TBX_OPTIMIZE_TABLE , "writeroptimizetablebar" , MODULE_WRITER , false },
+ { SUBTOOLBAR_GLOBAL_RID_SVXTBX_DRAW , PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_GLOBAL_TBX_DRAW , "genericdrawbar" , MODULE_GLOBAL , false },
+ { SUBTOOLBAR_GLOBAL_RID_SVXTBX_ALIGNMENT, PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_GLOBAL_TBX_ALIGNMENT , "genericalignmentbar" , MODULE_GLOBAL , false },
+ { SUBTOOLBAR_CALC_RID_TBXCTL_INSERT , PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_CALC_RID_TOOLBOX_INSERT , "calcinsertbar" , MODULE_CALC , false },
+ { SUBTOOLBAR_CALC_RID_TBXCTL_INSCELLS , PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_CALC_RID_TOOLBOX_INSCELLS , "calcinsertcellsbar" , MODULE_CALC , false },
+ { SUBTOOLBAR_CALC_RID_TBXCTL_INSOBJ , PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_CALC_RID_TOOLBOX_INSOBJ , "calcinsertobjectbar" , MODULE_CALC , false },
+ { SUBTOOLBAR_BASIC_RID_TBXCONTROLS , PARENT_RESTYPE_FLOATINGWINDOW, SUBTOOLBAR_BASIC_RID_TOOLBOX , "basicinsertcontrolsbar" , MODULE_BASIC , false },
+ { 0, PARENT_RESTYPE_FLOATINGWINDOW, 0 , "" , MODULE_GLOBAL , false }
+};
+
struct CommandLabels
{
unsigned short nID;
@@ -242,12 +490,29 @@ struct CommandLabels
rtl::OUString aCommand;
unsigned long nModules;
rtl::OUString aLabels[NUM_LANGUAGES];
+ unsigned long nProperties;
CommandLabels() :
nID( 0 ),
bWritten( false ),
bPopupMenu( false ),
- nModules( 0 ) {}
+ nModules( 0 ),
+ nProperties( 0 )
+
+ {}
+};
+
+struct ToolBarInfo
+{
+ unsigned short nID;
+ bool bWritten;
+ unsigned long nModules; // Which sub modules need this toolbar
+ rtl::OUString aUIName[NUM_LANGUAGES];
+
+ ToolBarInfo() :
+ nID( 0 ),
+ bWritten( false ),
+ nModules( 0 ) {}
};
struct OUStringHashCode
@@ -260,9 +525,10 @@ struct OUStringHashCode
typedef std::hash_map< int, CommandLabels > CommandIDToLabelsMap;
typedef std::hash_map< OUString, CommandLabels, OUStringHashCode, ::std::equal_to< OUString > > CommandToLabelsMap;
+typedef std::hash_map< int, ToolBarInfo > ResIdToToolBarInfoMap;
-static CommandIDToLabelsMap moduleMapFiles[MODULE_COUNT];
-static CommandToLabelsMap modulePopupMenusCmd[MODULE_COUNT];
+static CommandIDToLabelsMap moduleMapFiles[MODULE_COUNT];
+static CommandToLabelsMap modulePopupMenusCmd[MODULE_COUNT];
bool ExtractVersionNumber( const OUString& rVersion, OUString& rVersionNumber )
{
@@ -308,15 +574,19 @@ bool ReadCSVFile( const OUString& aCVSFileURL, MODULES eModule, const OUString&
OString aToolbarState;
OString aCmdName;
OString aSlotName;
+ OString aImageRotationState;
+ OString aImageReflectionState;
sal_Int32 nIndex = 0;
- aID = aLine.getToken( 2, ',', nIndex );
- aAccelState = aLine.getToken( 2, ',', nIndex );
- aMenuState = aLine.getToken( 0, ',', nIndex );
- aStatusState = aLine.getToken( 0, ',', nIndex );
- aToolbarState = aLine.getToken( 0, ',', nIndex );
- aCmdName = aLine.getToken( 18, ',', nIndex );
- aSlotName = aLine.getToken( 1, ',', nIndex );
+ aID = aLine.getToken( 2, ',', nIndex );
+ aAccelState = aLine.getToken( 2, ',', nIndex );
+ aMenuState = aLine.getToken( 0, ',', nIndex );
+ aStatusState = aLine.getToken( 0, ',', nIndex );
+ aToolbarState = aLine.getToken( 0, ',', nIndex );
+ aImageRotationState = aLine.getToken( 8, ',', nIndex );
+ aImageReflectionState = aLine.getToken( 0, ',', nIndex );
+ aCmdName = aLine.getToken( 10, ',', nIndex );
+ aSlotName = aLine.getToken( 1, ',', nIndex );
if ( aCmdName.getLength() == 0 )
aCmdName = aSlotName;
@@ -334,6 +604,11 @@ bool ReadCSVFile( const OUString& aCVSFileURL, MODULES eModule, const OUString&
aCmdLabel.aCommand = aUnoCmd;
aCmdLabel.aCommand += OStringToOUString( aCmdName, RTL_TEXTENCODING_ASCII_US );
aCmdLabel.nModules |= ( 1 << (unsigned long)( eModule ));
+
+ // Set bitfield
+ aCmdLabel.nProperties = (( aImageRotationState.equalsIgnoreAsciiCase( "TRUE" ) ? 1 : 0 ) << 1 );
+ aCmdLabel.nProperties |= (( aImageReflectionState.equalsIgnoreAsciiCase( "TRUE" ) ? 1 : 0 ) << 2 );
+
moduleMapFiles[int(eModule)].insert( CommandIDToLabelsMap::value_type( nID, aCmdLabel ));
modulePopupMenusCmd[int(eModule)].insert( CommandToLabelsMap::value_type( aCmdLabel.aCommand, aCmdLabel ));
}
@@ -389,15 +664,6 @@ bool ReadMenuLabels( int nLangIndex, Menu* pMenu, MODULES eModule, bool bHasSlot
{
OUString aCmd( RTL_CONSTASCII_USTRINGPARAM( ".uno:" ));
- CommandIDToLabelsMap::const_iterator pIter = moduleMapFiles[MODULE_GLOBAL].find( 5510 );
- if ( pIter != moduleMapFiles[MODULE_GLOBAL].end() )
- {
- if (( pIter->second.aLabels[2].getLength() == 0 ) || ( pIter->second.aLabels[2].equalsAscii( "~File" )))
- {
- int a = 1;
- }
- }
-
for ( unsigned short n = 0; n < pMenu->GetItemCount(); n++ )
{
unsigned short nId = pMenu->GetItemId( n );
@@ -524,12 +790,11 @@ SfxSlotInfo::SfxSlotInfo( const ResId &rResId ) :
bool ReadSlotInfos( int nLangIndex, ResMgr* pResMgr, MODULES eModule, const OUString& aProjectName )
{
- CommandIDToLabelsMap::const_iterator pTestIter = moduleMapFiles[MODULE_GLOBAL].find( 5510 );
CommandIDToLabelsMap::iterator pIter = moduleMapFiles[MODULE_GLOBAL].begin();;
if ( eModule != MODULE_GLOBAL )
{
- while ( pIter != moduleMapFiles[eModule].end() )
+ while ( pIter != moduleMapFiles[MODULE_GLOBAL].end() )
{
int nId = pIter->first;
CommandLabels& rCmdLabels = pIter->second;
@@ -792,8 +1057,11 @@ bool WriteXMLFiles( const OUString& aOutputDirURL)
static const char NodeStart[] = "\t\t\t<node oor:name=\"";
static const char ReplaceOp[] = "\" oor:op=\"replace\">\n";
static const char NodeEnd[] = "\t\t\t</node>\n";
- static const char PropNodeStart[] = "\t\t\t\t<prop oor:name=\"Label\" oor:type=\"xs:string\">\n";
+ static const char PropLabelNodeStart[] = "\t\t\t\t<prop oor:name=\"Label\" oor:type=\"xs:string\">\n";
static const char PropNodeEnd[] = "\t\t\t\t</prop>\n";
+ static const char PropPropNodeStart[] = "\t\t\t\t<prop oor:name=\"Properties\" oor:type=\"xs:int\">\n";
+ static const char PropHelpIdStart[] = "\t\t\t\t<prop oor:name=\"HelpId\" oor:type=\"xs:int\">\n";
+ static const char ValueSimpleNodeStart[] = "\t\t\t\t\t<value>";
static const char ValueNodeStart[] = "\t\t\t\t\t<value xml:lang=\"";
static const char ValueNodeMid[] = "\">";
static const char ValueNodeEnd[] = "</value>\n";
@@ -884,7 +1152,7 @@ bool WriteXMLFiles( const OUString& aOutputDirURL)
aXMLFile.write( NodeStart, strlen( NodeStart ), nWritten );
aXMLFile.write( aCmd.getStr(), aCmd.getLength(), nWritten );
aXMLFile.write( ReplaceOp, strlen( ReplaceOp ), nWritten );
- aXMLFile.write( PropNodeStart, strlen( PropNodeStart ), nWritten );
+ aXMLFile.write( PropLabelNodeStart, strlen( PropLabelNodeStart ), nWritten );
sal_Bool bLabels( sal_False );
for ( int j = 0; j < NUM_LANGUAGES; j++ )
@@ -930,8 +1198,30 @@ bool WriteXMLFiles( const OUString& aOutputDirURL)
if ( !bLabels )
aXMLFile.write( ValueNodeEmpty, strlen( ValueNodeEmpty ), nWritten );
+ aXMLFile.write( PropNodeEnd, strlen( PropNodeEnd ), nWritten );
+
+ char aBuf[16] = {0};
+
+ // write properties node which stores additional information about a command
+ if ( rCmdLabels.nProperties != 0 )
+ {
+ sprintf( aBuf, "%d", rCmdLabels.nProperties );
+ aXMLFile.write( PropPropNodeStart, strlen( PropPropNodeStart ), nWritten );
+ aXMLFile.write( ValueSimpleNodeStart, strlen( ValueSimpleNodeStart ), nWritten );
+ aXMLFile.write( aBuf, strlen( aBuf ), nWritten );
+ aXMLFile.write( ValueNodeEnd, strlen( ValueNodeEnd ), nWritten );
+ aXMLFile.write( PropNodeEnd, strlen( PropNodeEnd ), nWritten );
+ }
+/*
+ // write help ID property node
+ sprintf( aBuf, "%d", rCmdLabels.nID );
+ aXMLFile.write( PropHelpIdStart, strlen( PropHelpIdStart ), nWritten );
+ aXMLFile.write( ValueSimpleNodeStart, strlen( ValueSimpleNodeStart ), nWritten );
+ aXMLFile.write( aBuf, strlen( aBuf ), nWritten );
+ aXMLFile.write( ValueNodeEnd, strlen( ValueNodeEnd ), nWritten );
aXMLFile.write( PropNodeEnd, strlen( PropNodeEnd ), nWritten );
+*/
aXMLFile.write( NodeEnd, strlen( NodeEnd ), nWritten );
++pIter;
}
@@ -957,7 +1247,7 @@ bool WriteXMLFiles( const OUString& aOutputDirURL)
aXMLFile.write( NodeStart, strlen( NodeStart ), nWritten );
aXMLFile.write( aCmd.getStr(), aCmd.getLength(), nWritten );
aXMLFile.write( ReplaceOp, strlen( ReplaceOp ), nWritten );
- aXMLFile.write( PropNodeStart, strlen( PropNodeStart ), nWritten );
+ aXMLFile.write( PropLabelNodeStart, strlen( PropLabelNodeStart ), nWritten );
sal_Bool bLabels( sal_False );
for ( int k = 0; k < NUM_LANGUAGES; k++ )
@@ -1276,6 +1566,374 @@ bool ReadResourceWriteMenuBarXML( const OUString& aOutDirURL,
return true;
}
+bool WriteToolBarSeparator( osl::File& rFile )
+{
+ static const char ToolBarSeparator[] = " <toolbar:toolbarseparator/>\n";
+
+ sal_uInt64 nWritten;
+ rFile.write( ToolBarSeparator, strlen( ToolBarSeparator ), nWritten );
+
+ return true;
+}
+
+bool WriteToolBarSpace( osl::File& rFile )
+{
+ static const char ToolBarSpace[] = " <toolbar:toolbarspace/>\n";
+
+ sal_uInt64 nWritten;
+ rFile.write( ToolBarSpace, strlen( ToolBarSpace ), nWritten );
+
+ return true;
+}
+
+bool WriteToolBarBreak( osl::File& rFile )
+{
+ static const char ToolBarBlank[] = " <toolbar:toolbarbreak/>\n";
+
+ sal_uInt64 nWritten;
+ rFile.write( ToolBarBlank, strlen( ToolBarBlank ), nWritten );
+
+ return true;
+}
+
+bool WriteToolBarItem( osl::File& rFile, const OUString& aCmd, const OUString& aHelpID, ToolBoxItemBits nStyle, bool bVisible )
+{
+ static const char ToolBarItemStart[] = " <toolbar:toolbaritem xlink:href=\"";
+ static const char ToolBarItemLabel[] = "toolbar:text=\"";
+ static const char ToolBarItemHelp[] = "toolbar:helpid=\"helpid:";
+ static const char ToolBarItemStyle[] = "toolbar:style=\"";
+ static const char ToolBarItemVisible[] = "toolbar:visible=\"false";
+ static const char ToolBarItemAttrEnd[] = "\" ";
+ static const char ToolBarItemEnd[] = "/>\n";
+ static const char ATTRIBUTE_ITEMSTYLE_RADIO[] = "radio";
+ static const char ATTRIBUTE_ITEMSTYLE_AUTO[] = "auto";
+ static const char ATTRIBUTE_ITEMSTYLE_LEFT[] = "left";
+ static const char ATTRIBUTE_ITEMSTYLE_AUTOSIZE[] = "autosize";
+ static const char ATTRIBUTE_ITEMSTYLE_DROPDOWN[] = "dropdown";
+ static const char ATTRIBUTE_ITEMSTYLE_REPEAT[] = "repeat";
+
+ OString aCmdStr = OUStringToOString( aCmd, RTL_TEXTENCODING_UTF8 );
+ OString aHelpId = OUStringToOString( aHelpID, RTL_TEXTENCODING_UTF8 );
+
+ sal_uInt64 nWritten;
+ rFile.write( ToolBarItemStart, strlen( ToolBarItemStart ), nWritten );
+ rFile.write( aCmdStr.getStr(), aCmdStr.getLength(), nWritten );
+ rFile.write( ToolBarItemAttrEnd, strlen( ToolBarItemAttrEnd ), nWritten );
+ rFile.write( ToolBarItemHelp, strlen( ToolBarItemHelp ), nWritten );
+ rFile.write( aHelpId.getStr(), aHelpId.getLength(), nWritten );
+ rFile.write( ToolBarItemAttrEnd, strlen( ToolBarItemAttrEnd ), nWritten );
+ rFile.write( ToolBarItemLabel, strlen( ToolBarItemLabel ), nWritten );
+ rFile.write( ToolBarItemAttrEnd, strlen( ToolBarItemAttrEnd ), nWritten );
+ if ( nStyle != 0 )
+ {
+ rFile.write( ToolBarItemStyle, strlen( ToolBarItemStyle ), nWritten );
+ sal_Bool bBitSet( sal_False );
+ if ( nStyle & TIB_RADIOCHECK )
+ {
+ rFile.write( ATTRIBUTE_ITEMSTYLE_RADIO, strlen( ATTRIBUTE_ITEMSTYLE_RADIO ), nWritten );
+ bBitSet = sal_True;
+ }
+ if ( nStyle & TIB_AUTOCHECK )
+ {
+ if ( bBitSet )
+ rFile.write( " ", 1, nWritten );
+ rFile.write( ATTRIBUTE_ITEMSTYLE_AUTO, strlen( ATTRIBUTE_ITEMSTYLE_AUTO ), nWritten );
+ bBitSet = sal_True;
+ }
+ if ( nStyle & TIB_LEFT )
+ {
+ if ( bBitSet )
+ rFile.write( " ", 1, nWritten );
+ rFile.write( ATTRIBUTE_ITEMSTYLE_LEFT, strlen( ATTRIBUTE_ITEMSTYLE_LEFT ), nWritten );
+ bBitSet = sal_True;
+ }
+ if ( nStyle & TIB_AUTOSIZE )
+ {
+ if ( bBitSet )
+ rFile.write( " ", 1, nWritten );
+ rFile.write( ATTRIBUTE_ITEMSTYLE_AUTOSIZE, strlen( ATTRIBUTE_ITEMSTYLE_AUTOSIZE ), nWritten );
+ bBitSet = sal_True;
+ }
+ if ( nStyle & TIB_DROPDOWN )
+ {
+ if ( bBitSet )
+ rFile.write( " ", 1, nWritten );
+ rFile.write( ATTRIBUTE_ITEMSTYLE_DROPDOWN, strlen( ATTRIBUTE_ITEMSTYLE_DROPDOWN ), nWritten );
+ bBitSet = sal_True;
+ }
+ if ( nStyle & TIB_REPEAT )
+ {
+ if ( bBitSet )
+ rFile.write( " ", 1, nWritten );
+ rFile.write( ATTRIBUTE_ITEMSTYLE_REPEAT, strlen( ATTRIBUTE_ITEMSTYLE_REPEAT ), nWritten );
+ }
+ rFile.write( ToolBarItemAttrEnd, strlen( ToolBarItemAttrEnd ), nWritten );
+ }
+ if ( !bVisible )
+ {
+ rFile.write( ToolBarItemVisible, strlen( ToolBarItemVisible ), nWritten );
+ rFile.write( ToolBarItemAttrEnd, strlen( ToolBarItemAttrEnd ), nWritten );
+ }
+
+ rFile.write( ToolBarItemEnd, strlen( ToolBarItemEnd ), nWritten );
+
+ return true;
+}
+
+bool WriteToolBarXML( osl::File& rFile, ToolBox* pToolBar, MODULES eModule )
+{
+ OUString aCmd( RTL_CONSTASCII_USTRINGPARAM( ".uno:" ));
+
+ for ( unsigned short n = 0; n < pToolBar->GetItemCount(); n++ )
+ {
+ unsigned short nId = pToolBar->GetItemId( n );
+ ToolBoxItemType eType = pToolBar->GetItemType( n );
+
+ if ( eType == TOOLBOXITEM_BUTTON )
+ {
+ OUString aLabel( pToolBar->GetItemText( nId ));
+ OUString aCommand( pToolBar->GetItemCommand( nId ));
+ bool bHasUnoCommand( aCommand.getLength() > 0 && ( aCommand.indexOf( aCmd ) == 0 ));
+ bool bVisible( pToolBar->IsItemVisible( nId ));
+ ToolBoxItemBits nItemBits( pToolBar->GetItemBits( nId ));
+
+ CommandLabels* pCmdLabels = RetrieveCommandLabelsFromID( nId, eModule );
+ if ( !pCmdLabels )
+ pCmdLabels = RetrieveCommandLabelsFromCommand( aCommand, eModule );
+
+ if ( pCmdLabels )
+ aCommand = pCmdLabels->aCommand;
+ else
+ aCommand = OUString( RTL_CONSTASCII_USTRINGPARAM( "???" ));
+
+ sal_uInt32 nHelpId = pToolBar->GetHelpId( nId );
+ if ( nHelpId == 0 )
+ nHelpId = nId;
+
+ OUString aHelpId = OUString::valueOf( sal_Int32( nHelpId ));
+ WriteToolBarItem( rFile, aCommand, aHelpId, nItemBits, bVisible );
+ }
+ else if ( eType == TOOLBOXITEM_SEPARATOR )
+ {
+ WriteToolBarSeparator( rFile );
+ }
+ else if ( eType == TOOLBOXITEM_SPACE )
+ {
+ WriteToolBarSpace( rFile );
+ }
+ else if ( eType == TOOLBOXITEM_BREAK )
+ {
+ WriteToolBarBreak( rFile );
+ }
+ }
+
+ return true;
+}
+
+bool ReadResourceWriteToolBarXML( const OUString& aOutDirURL,
+ const OUString& aResourceDirURL,
+ const OUString& aResourceFilePrefix,
+ MODULES eModule,
+ const OUString& aProjectName )
+{
+ static const char ToolBarDocType[] = "<!DOCTYPE toolbar:toolbar PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"toolbar.dtd\">\n";
+ static const char ToolBarStart[] = "<toolbar:toolbar xmlns:toolbar=\"http://openoffice.org/2001/toolbar\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" toolbar:id=\"toolbar\">\n";
+ static const char ToolBarEnd[] = "</toolbar:toolbar>";
+
+ OUString aSysDirPath;
+ OString aResFilePrefix = OUStringToOString( aResourceFilePrefix, RTL_TEXTENCODING_ASCII_US );
+
+ osl::FileBase::getSystemPathFromFileURL( aResourceDirURL, aSysDirPath );
+
+ String aSysDirPathStr( aSysDirPath );
+
+ String aLangString( String::CreateFromAscii( Language_Mapping[0].pISO ));
+ LanguageType aLangtype = ConvertIsoStringToLanguage( aLangString );
+ ResMgr* pResMgr = ResMgr::CreateResMgr( aResFilePrefix.getStr(),
+ aLangtype,
+ NULL,
+ &aSysDirPathStr );
+
+ WorkWindow* pWindow = new WorkWindow( NULL, WB_APP | WB_STDWORK | WB_HIDE );
+ if ( pResMgr )
+ {
+ int i = 0;
+ while ( TBResourceModule_Mapping[i].nResId > 0 )
+ {
+ if ( TBResourceModule_Mapping[i].eBelongsTo == eModule )
+ {
+ ResId aResId( TBResourceModule_Mapping[i].nResId, pResMgr );
+ aResId.SetRT( RSC_TOOLBOX );
+
+ if ( pResMgr->IsAvailable( aResId ))
+ {
+ OUString aOutputDirectoryURL( aOutDirURL );
+ if ( aOutputDirectoryURL.getLength() > 0 && aOutputDirectoryURL[aOutputDirectoryURL.getLength()-1] != '/' )
+ aOutputDirectoryURL += OUString::createFromAscii( "/" );
+
+ OUString aOutputFileURL( aOutputDirectoryURL );
+ aOutputFileURL += OUString::createFromAscii( TBResourceModule_Mapping[i].pXMLPrefix );
+ aOutputFileURL += OUString::createFromAscii( ".xml" );
+
+ osl::File aXMLFile( aOutputFileURL );
+ osl::File::RC nRet = aXMLFile.open( OpenFlag_Create|OpenFlag_Write );
+ if ( nRet == osl::File::E_EXIST )
+ {
+ nRet = aXMLFile.open( OpenFlag_Write );
+ if ( nRet == osl::File::E_None )
+ nRet = aXMLFile.setSize( 0 );
+ }
+
+ if ( nRet == osl::FileBase::E_None )
+ {
+ sal_uInt64 nWritten;
+
+ aXMLFile.write( XMLStart, strlen( XMLStart ), nWritten );
+ aXMLFile.write( ToolBarDocType, strlen( ToolBarDocType ), nWritten );
+ aXMLFile.write( ToolBarStart, strlen( ToolBarStart ), nWritten );
+
+ ToolBox* pToolBox = new ToolBox( pWindow, aResId );
+ WriteToolBarXML( aXMLFile, (ToolBox *)pToolBox, eModule );
+ delete pToolBox;
+
+ aXMLFile.write( ToolBarEnd, strlen( ToolBarEnd ), nWritten );
+ aXMLFile.close();
+
+ TBResourceModule_Mapping[i].bWritten = true;
+ }
+ }
+ }
+ ++i;
+ }
+
+ delete pResMgr;
+ }
+
+ delete pWindow;
+
+ return true;
+}
+
+class MyFloatingWindow : public FloatingWindow
+{
+ public:
+ MyFloatingWindow( Window* pParent, const ResId& rResId, const ResId& rSubTbxResId );
+ ~MyFloatingWindow()
+ {
+ delete pMyToolBox;
+ }
+
+ ToolBox* GetSubToolBox() { return pMyToolBox; }
+
+ private:
+ ToolBox* pMyToolBox;
+};
+
+MyFloatingWindow::MyFloatingWindow( Window* pParent, const ResId& rResId, const ResId& rSubTbxResId ) :
+ FloatingWindow( pParent, rResId )
+{
+ pMyToolBox = new ToolBox( this, rSubTbxResId );
+
+ FreeResource();
+}
+
+
+bool ReadResourceWriteSubToolBarXML( const OUString& aOutDirURL,
+ const OUString& aResourceDirURL,
+ const OUString& aResourceFilePrefix,
+ MODULES eModule,
+ const OUString& aProjectName )
+{
+ static const char ToolBarDocType[] = "<!DOCTYPE toolbar:toolbar PUBLIC \"-//OpenOffice.org//DTD OfficeDocument 1.0//EN\" \"toolbar.dtd\">\n";
+ static const char ToolBarStart[] = "<toolbar:toolbar xmlns:toolbar=\"http://openoffice.org/2001/toolbar\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" toolbar:id=\"toolbar\">\n";
+ static const char ToolBarEnd[] = "</toolbar:toolbar>";
+
+ OUString aSysDirPath;
+ OString aResFilePrefix = OUStringToOString( aResourceFilePrefix, RTL_TEXTENCODING_ASCII_US );
+
+ osl::FileBase::getSystemPathFromFileURL( aResourceDirURL, aSysDirPath );
+
+ String aSysDirPathStr( aSysDirPath );
+
+ String aLangString( String::CreateFromAscii( Language_Mapping[0].pISO ));
+ LanguageType aLangtype = ConvertIsoStringToLanguage( aLangString );
+ ResMgr* pResMgr = ResMgr::CreateResMgr( aResFilePrefix.getStr(),
+ aLangtype,
+ NULL,
+ &aSysDirPathStr );
+
+ WorkWindow* pWindow = new WorkWindow( NULL, WB_APP | WB_STDWORK | WB_HIDE );
+ if ( pResMgr )
+ {
+ int i = 0;
+ while ( TBSubResourceModule_Mapping[i].nParentResId > 0 )
+ {
+ if ( TBSubResourceModule_Mapping[i].eBelongsTo == eModule )
+ {
+ ResId aParentResId( TBSubResourceModule_Mapping[i].nParentResId, pResMgr );
+ ResId aResId( TBSubResourceModule_Mapping[i].nResId, pResMgr );
+ MyFloatingWindow* pFloatWin( 0 );
+
+ aResId.SetRT( RSC_TOOLBOX );
+ aParentResId.SetRT( RSC_FLOATINGWINDOW );
+
+ if ( pResMgr->IsAvailable( aParentResId ))
+ {
+ pFloatWin = new MyFloatingWindow( pWindow, aParentResId, aResId );
+
+ OUString aOutputDirectoryURL( aOutDirURL );
+ if ( aOutputDirectoryURL.getLength() > 0 && aOutputDirectoryURL[aOutputDirectoryURL.getLength()-1] != '/' )
+ aOutputDirectoryURL += OUString::createFromAscii( "/" );
+
+ OUString aOutputFileURL( aOutputDirectoryURL );
+ aOutputFileURL += OUString::createFromAscii( TBSubResourceModule_Mapping[i].pXMLPrefix );
+ aOutputFileURL += OUString::createFromAscii( ".xml" );
+
+ osl::File aXMLFile( aOutputFileURL );
+ osl::File::RC nRet = aXMLFile.open( OpenFlag_Create|OpenFlag_Write );
+ if ( nRet == osl::File::E_EXIST )
+ {
+ nRet = aXMLFile.open( OpenFlag_Write );
+ if ( nRet == osl::File::E_None )
+ nRet = aXMLFile.setSize( 0 );
+ }
+
+ if ( nRet == osl::FileBase::E_None )
+ {
+ sal_uInt64 nWritten;
+
+ aXMLFile.write( XMLStart, strlen( XMLStart ), nWritten );
+ aXMLFile.write( ToolBarDocType, strlen( ToolBarDocType ), nWritten );
+ aXMLFile.write( ToolBarStart, strlen( ToolBarStart ), nWritten );
+
+ ToolBox* pToolBox = pFloatWin->GetSubToolBox();
+ if ( pToolBox )
+ WriteToolBarXML( aXMLFile, (ToolBox *)pToolBox, eModule );
+
+ aXMLFile.write( ToolBarEnd, strlen( ToolBarEnd ), nWritten );
+ aXMLFile.close();
+
+ TBSubResourceModule_Mapping[i].bWritten = true;
+ }
+
+ if ( pFloatWin )
+ {
+ delete pFloatWin;
+ pFloatWin = 0;
+ }
+ }
+ }
+ ++i;
+ }
+
+ delete pResMgr;
+ }
+
+ delete pWindow;
+
+ return true;
+}
+
bool Convert( sal_Bool bUseProduct,
const OUString& aUseRes,
const OUString& rVersion,
@@ -1404,6 +2062,8 @@ bool Convert( sal_Bool bUseProduct,
osl::FileBase::getAbsoluteFileURL( aWorkDir, aOutDirURL, aOutDirURL );
ReadResourceWriteMenuBarXML( aOutDirURL, aResDirURL, aLangResPrefix, ProjectModule_Mapping[j].eBelongsTo, OUString::createFromAscii( ProjectModule_Mapping[j].pProjectFolder ));
+ ReadResourceWriteToolBarXML( aOutDirURL, aResDirURL, aLangResPrefix, ProjectModule_Mapping[j].eBelongsTo, OUString::createFromAscii( ProjectModule_Mapping[j].pProjectFolder ));
+ ReadResourceWriteSubToolBarXML( aOutDirURL, aResDirURL, aLangResPrefix, ProjectModule_Mapping[j].eBelongsTo, OUString::createFromAscii( ProjectModule_Mapping[j].pProjectFolder ));
}
j++;
}
@@ -1420,6 +2080,22 @@ bool Convert( sal_Bool bUseProduct,
WriteXMLFiles( aOutDirURL );
+ sal_Int32 n = 0;
+ while ( TBResourceModule_Mapping[n].nResId > 0 )
+ {
+ if ( !TBResourceModule_Mapping[n].bWritten )
+ fprintf( stderr, "Warning: Couldn't convert toolbar %s\n", TBResourceModule_Mapping[n].pXMLPrefix );
+ n++;
+ }
+
+ n = 0;
+ while ( TBSubResourceModule_Mapping[n].nResId > 0 )
+ {
+ if ( !TBSubResourceModule_Mapping[n].bWritten )
+ fprintf( stderr, "Warning: Couldn't convert sub toolbar %s\n", TBSubResourceModule_Mapping[n].pXMLPrefix );
+ n++;
+ }
+
return true;
}