[Date Prev][Date Next][Thread Prev][Thread Next][Thread Index]

[XaraXtreme-commits] Commit Complete



Commit by  : alex
Repository : xara
Revision   : 877
Date       : Mon Apr 24 18:15:09 BST 2006

Changed paths:
   M /Trunk/XaraLX/Kernel/Makefile.am
   M /Trunk/XaraLX/Kernel/ngcore.cpp
   M /Trunk/XaraLX/Kernel/ngdialog.cpp
   M /Trunk/XaraLX/Kernel/ngdialog.h
   M /Trunk/XaraLX/Kernel/ngitem.cpp
   M /Trunk/XaraLX/Kernel/ngsetop.cpp
   M /Trunk/XaraLX/Kernel/ops.h
   M /Trunk/XaraLX/Kernel/sginit.cpp
   M /Trunk/XaraLX/Scripts/barconverter
   M /Trunk/XaraLX/wxOil/xrc/EN/xaralx-bars.xrc

Some initial work on the name gallery


Diff:
Index: Trunk/XaraLX/Kernel/ngdialog.cpp
===================================================================
--- Trunk/XaraLX/Kernel/ngdialog.cpp	(revision 876)
+++ Trunk/XaraLX/Kernel/ngdialog.cpp	(revision 877)
@@ -209,7 +209,7 @@
 
 		case DIM_TEXT_CHANGED:
 			// Disable the OK/Apply button if there's no document or entered text.
-			EnableGadget(IDOK, !GetStringGadgetValue(_R(IDC_NAMEDLG_NAME), 0).IsEmpty()
+			EnableGadget(_R(IDOK), !GetStringGadgetValue(_R(IDC_NAMEDLG_NAME), 0).IsEmpty()
 							&& Document::GetSelected() != 0);
 			break;
 			
@@ -239,6 +239,9 @@
 			Close();
 			End();
 			break;
+
+		default:
+			break;
 		}
 	}
 	
@@ -250,13 +253,13 @@
 	{
 		// Update the description.
 		String_256 strEnter;
-		SetStringGadgetValue(_R(IDC_NAMEDLG_DESC), GetDescription(&strEnter));
+		SetStringGadgetValue(_R(IDC_NAMEDLG_DESC), *GetDescription(&strEnter));
 
 		// And if not changed or empty, also the suggestion.
 		strEnter = GetStringGadgetValue(_R(IDC_NAMEDLG_NAME), 0);
 		if (strEnter.IsEmpty() || strEnter == m_strSuggest)
 		{
-			SetStringGadgetValue(_R(IDC_NAMEDLG_NAME), GetSuggestion(&m_strSuggest));
+			SetStringGadgetValue(_R(IDC_NAMEDLG_NAME), *GetSuggestion(&m_strSuggest));
 			HighlightText(_R(IDC_NAMEDLG_NAME));
 		}
 	}
@@ -266,7 +269,7 @@
 	{
 		DocChangingMsg* pMsg = (DocChangingMsg*) pMessage;
 		if (pMsg->State == DocChangingMsg::SELCHANGED)
-			EnableGadget(IDOK, pMsg->pNewDoc != 0);
+			EnableGadget(_R(IDOK), pMsg->pNewDoc != 0);
 	}
 
 	// Pass everything on to the base class . . .
@@ -287,8 +290,8 @@
 void BaseNameObjectsDlg::InitGadgetText()
 {
 	String_256 str;
-	SetStringGadgetValue(_R(IDC_NAMEDLG_DESC), GetDescription(&str));
-	SetStringGadgetValue(_R(IDC_NAMEDLG_NAME), GetSuggestion(&m_strSuggest));
+	SetStringGadgetValue(_R(IDC_NAMEDLG_DESC), *GetDescription(&str));
+	SetStringGadgetValue(_R(IDC_NAMEDLG_NAME), *GetSuggestion(&m_strSuggest));
 	HighlightText(_R(IDC_NAMEDLG_NAME));
 	SetKeyboardFocus(_R(IDC_NAMEDLG_NAME));
 }
@@ -350,9 +353,15 @@
 		pstrDesc->Load(_R(IDS_NAMEDLG_DESCRIBE_NOSELECT));
 	else
 		if (pSel->Count() == 1)
-			pstrDesc->MakeMsg(_R(IDS_NAMEDLG_DESCRIBE_SELECT), &pSel->Describe(MENU));
+		{
+			String_256 desc=pSel->Describe(MENU);
+			pstrDesc->MakeMsg(_R(IDS_NAMEDLG_DESCRIBE_SELECT), &desc);
+		}
 		else
-			pstrDesc->MakeMsg(_R(IDS_NAMEDLG_DESCRIBE_SELECT_PL), &pSel->Describe(STATUS_BAR));
+		{
+			String_256 desc=pSel->Describe(STATUS_BAR);
+			pstrDesc->MakeMsg(_R(IDS_NAMEDLG_DESCRIBE_SELECT_PL), &desc);
+		}
 
 	return pstrDesc;
 }
@@ -449,7 +458,8 @@
 	// Apply and (do or do not) close the dialog.
 	OpDescriptor* pDesc = OpDescriptor::FindOpDescriptor((TCHAR*) pszTok);
 	ERROR3IF(pDesc == 0, "NameObjectsDlg::DoCommit: can't find descriptor");
-	pDesc->Invoke(&OpParam((INT32) &strName, 0));
+	OpParam param((void *) &strName, 0);
+	pDesc->Invoke(&param);
 	return m_fModeless;
 }
 
@@ -641,7 +651,8 @@
 	// Rename all the highlighted items to the new name and close.
 	OpDescriptor* pDesc = OpDescriptor::FindOpDescriptor(OPTOKEN_RENAME_ALL);
 	ERROR3IF(pDesc == 0, "RenameObjectsDlg::DoCommit: can't find OPTOKEN_RENAME_ALL");
-	pDesc->Invoke(&OpParam((INT32) &strName, 0));
+	OpParam param((void *) &strName, 0);
+	pDesc->Invoke(&param);
 	return FALSE;
 }
 
@@ -714,11 +725,11 @@
 	// Fill up the gadget's list with the names of properties.  These must be in
 	// ascending order of property indices.
 	pCreateMsg->pDlgOp->SetStringGadgetValue(
-							pCreateMsg->SetGadgetID, &String(_R(IDS_NAMEGAL_EXPORT_PROP)));
+							pCreateMsg->SetGadgetID, String(_R(IDS_NAMEGAL_EXPORT_PROP)));
 	pCreateMsg->pDlgOp->SetStringGadgetValue(
-							pCreateMsg->SetGadgetID, &String(_R(IDS_NAMEGAL_SLICE_PROP)));
+							pCreateMsg->SetGadgetID, String(_R(IDS_NAMEGAL_SLICE_PROP)));
 	pCreateMsg->pDlgOp->SetStringGadgetValue(
-							pCreateMsg->SetGadgetID, &String(_R(IDS_NAMEGAL_STRETCH_PROP)));
+							pCreateMsg->SetGadgetID, String(_R(IDS_NAMEGAL_STRETCH_PROP)));
 
 	// Resize the list to fit and update associated gadgets.
 	pCreateMsg->pDlgOp->SetComboListLength(pCreateMsg->SetGadgetID);
@@ -774,7 +785,7 @@
 			 pgli = (GadgetListItem*) theGadgets.GetNext(pgli))
 		{
 			// Set each control to display the text.
-			pgli->pDialogBarOp->SetSelectedValueIndex(pgli->gidGadgetID, nVal);
+			pgli->pDialogOp->SetSelectedValueIndex(pgli->gidGadgetID, nVal);
 		}
 
 		// Tidy up.
@@ -785,7 +796,7 @@
 
 
 /**********************************************************************************************
->	static DialogBarOp* OpDisplayNameGallery::FindGallery()
+>	static SuperGallery* OpDisplayNameGallery::FindGallery()
 
 	Author:		Justin_Flude (Xara Group Ltd) <camelotdev@xxxxxxxx>
 	Created:	9/5/99
@@ -798,10 +809,10 @@
 				Also check that bars.ini indicates the bar is of the NameGallery class
 **********************************************************************************************/
 
-DialogBarOp* OpDisplayNameGallery::FindGallery()
+SuperGallery* OpDisplayNameGallery::FindGallery()
 {
-	String id(_R(IDS_SGNAME_GALLERY_NAME));						// "Name gallery"
-	DialogBarOp* pOp = DialogBarOp::FindDialogBarOp(id);
+	SuperGallery* pOp = SuperGallery::FindSuperGallery(_R(IDD_NAMESGALLERY));
+	if (!pOp) pOp=new NameGallery();
 	ERROR3IF(pOp == 0 || pOp->GetRuntimeClass() != CC_RUNTIME_CLASS(NameGallery), 
 		"OpDisplayNameGallery::FindGallery: Can't find the gallery in bars.ini!
");
 	return pOp;
@@ -821,8 +832,8 @@
 {
 	// If the gallery is currently open, then the menu item should be ticked
 	OpState OpSt;  
-	DialogBarOp* pDialogBarOp = FindGallery();
-	if (pDialogBarOp != 0) OpSt.Ticked = pDialogBarOp->IsVisible();
+	SuperGallery* pSuperGallery = FindGallery();
+	if (pSuperGallery != 0) OpSt.Ticked = pSuperGallery->IsVisible();
 
 	// If there are no open documents, you can't toggle the gallery
 	OpSt.Greyed = (Document::GetSelected() == 0);
@@ -843,12 +854,12 @@
 
 void OpDisplayNameGallery::Do(OpDescriptor*)
 {
-	DialogBarOp* pOp = FindGallery();
+	SuperGallery* pOp = FindGallery();
 	if (pOp != 0)
 	{
 		// Toggle the visible state of the gallery window
 		pOp->SetVisibility(!pOp->IsVisible());
-		SGInit::UpdateGalleryButton(OPTOKEN_DISPLAY_NAME_GALLERY, pOp->IsVisible());
+		SGInit::UpdateGalleryButton(_R(OPTOKEN_DISPLAY_NAME_GALLERY), pOp->IsVisible());
 	}
 
 	End();
@@ -875,5 +886,16 @@
 					OPTOKEN_DISPLAY_NAME_GALLERY,
 					OpDisplayNameGallery::GetState,
 					0,
-					_R(IDBBL_DISPLAY_NAME_GALLERY));
+					_R(IDBBL_DISPLAY_NAME_GALLERY),
+					_R(IDC_BTN_SGNAME), // UINT32 resourceID = 0,	// resource ID
+					_R(IDC_BTN_SGNAME), // UINT32 controlID = 0,	// control ID
+					SYSTEMBAR_ILLEGAL,	  // SystemBarType GroupBarID = SYSTEMBAR_ILLEGAL,	// group bar ID
+					TRUE,	  // BOOL ReceiveMessages = TRUE,	// BODGE
+					FALSE,	  // BOOL Smart = FALSE,
+					TRUE,	  // BOOL Clean = TRUE,   
+					NULL,	  // OpDescriptor *pVertOpDesc = NULL,
+					0,	  // UINT32 OneOpenInstID = 0,		
+					0,	  // UINT32 AutoStateFlags = 0,
+					TRUE	  // BOOL fCheckable = FALSE
+					);
 }
Index: Trunk/XaraLX/Kernel/ngsetop.cpp
===================================================================
--- Trunk/XaraLX/Kernel/ngsetop.cpp	(revision 876)
+++ Trunk/XaraLX/Kernel/ngsetop.cpp	(revision 877)
@@ -123,6 +123,8 @@
 #include "impexpop.h"
 #include "bitfilt.h"
 
+#include "ophist.h"
+
 //#include "mario.h"
 //#include "justin3.h"
 
@@ -166,7 +168,7 @@
 
 void OpSelectSet::DoWithParam(OpDescriptor*, OpParam* pParam)
 {
-	SelectScan((SGNameItem*) pParam->Param1, (SelectScan::Change) pParam->Param2).Scan();
+	SelectScan((SGNameItem*)(void *) pParam->Param1, (SelectScan::Change) (INT32) pParam->Param2).Scan();
 	End();
 }
 
@@ -306,7 +308,7 @@
 void OpApplyNamesToSel::DoWithParam(OpDescriptor*, OpParam* pParam)
 {
 	ERROR3IF(pParam->Param1 == 0, "OpApplyNamesToSel::DoWithParam: null argument");
-	const StringBase& strName = *((const StringBase*) pParam->Param1);
+	const StringBase& strName = *((const StringBase*)(void *) pParam->Param1);
 
 	AllowOpScan aosSel(this, &theSelectedObjects),
 				aosSentinel(this, &theSetSentinel);
@@ -360,7 +362,7 @@
 void OpApplyNamesToOne::DoWithParam(OpDescriptor*, OpParam* pParam)
 {
 	ERROR3IF(pParam->Param1 == 0, "OpApplyNamesToOne::DoWithParam: null argument");
-	Node* pNode = (Node*) pParam->Param1;
+	Node* pNode = (Node*)(void *) pParam->Param1;
 	
 	SingleNodeSource theObject(pNode);
 	AllowOpScan aosObj(this, &theObject),
@@ -396,7 +398,7 @@
 void OpApplyNameToNone::DoWithParam(OpDescriptor*, OpParam* pParam)
 {
 	ERROR3IF(pParam->Param1 == 0, "OpApplyNameToNone::DoWithParam: null argument");
-	const StringBase& strName = *((const StringBase*) pParam->Param1);
+	const StringBase& strName = *((const StringBase*)(void *) pParam->Param1);
 
 	AllowOpScan aosSentinel(this, &theSetSentinel);
 
@@ -543,7 +545,7 @@
 void OpRenameAll::DoWithParam(OpDescriptor*, OpParam* pParam)
 {
 	ERROR3IF(pParam->Param1 == 0, "OpRenameAll::DoWithParam: null argument");
-	const StringBase& strNewName = *((const StringBase*) pParam->Param1);
+	const StringBase& strNewName = *((const StringBase*) (void *) pParam->Param1);
 	Spread * pSpread = Document::GetSelectedSpread();
 	if (pSpread == NULL)
 	{
@@ -556,7 +558,7 @@
 	// if we are renaming lots to be the same name then make default properties.
 	NodeSetProperty* pCopyPropNode = 0;
 	NamedExportProp* pNewExport = 0;
-	Node * pNodeSetSentinel = GetWorkingDoc()->GetSetSentinel(); // the sentinel 
+//	Node * pNodeSetSentinel = GetWorkingDoc()->GetSetSentinel(); // the sentinel 
 
 	INT32 nNames;
 	NameGallery::Instance()->GetHighlightCount(0, &nNames);
@@ -598,7 +600,7 @@
 	}
 
 	SGNameItem* pNameGalleryItem = (SGNameItem*) NameGallery::Instance()->GetUsedNames()->GetChild();
-	SGNameItem* pRenameMe = NULL;
+//	SGNameItem* pRenameMe = NULL;
 	while (pNameGalleryItem)
 	{
 		if (pNameGalleryItem->IsSelected())
@@ -607,7 +609,7 @@
 			pNameGalleryItem->GetNameText(&str);
 			// remove any references to str (the old set name)
 			// and replace them (undoably of corse) with strNewName (sjk)
-			RenameSetInstance(str, *((const String_256 *) pParam->Param1), this, pSpread);
+			RenameSetInstance(str, *((const String_256 *) (void *) pParam->Param1), this, pSpread);
 		}
 
 		pNameGalleryItem = (SGNameItem *) pNameGalleryItem->GetNext();
@@ -891,9 +893,9 @@
 {
 	// Extract the parameters.
 	ERROR3IF(pParam == 0 || pParam->Param1 == 0, "OpChangeSetProperty::DoWithParam: no input");
-	const StringBase& strName = *(((StringBase**) pParam->Param1)[0]);
-	StringBase* pstrNewName = ((StringBase**) pParam->Param1)[1];
-	SGNameProp* pProp = (SGNameProp*) pParam->Param2;
+	const StringBase& strName = *(((StringBase**) (void *) pParam->Param1)[0]);
+	StringBase* pstrNewName = ((StringBase**) (void *) pParam->Param1)[1];
+	SGNameProp* pProp = (SGNameProp*) (void *) pParam->Param2;
 
 	// Find the equivalent old property, if any, and hide it.
 	NodeSetSentinel* pSentry = GetWorkingDoc()->GetSetSentinel();
@@ -919,8 +921,9 @@
 	}
 
 	// Try to copy the old properties into it.
-	BOOL fOk;
-	ALLOC_WITH_FAIL(fOk, pNewSetNode->CopyProperties(pOldSetNode), this);
+	NodeSetProperty* fOk=NULL; // we use this as a boolean because ALLOC_WITH_FAIL expects an allocation routine and thus pointers
+	// so we return a dummy pointer (pNewSetNode) if we succeed as a flag
+	ALLOC_WITH_FAIL(fOk, ((pNewSetNode->CopyProperties(pOldSetNode))?pNewSetNode:NULL), this);
 	if (!fOk)
 	{
 		FailAndExecute();
@@ -1037,7 +1040,7 @@
 	}
 
 	// Write the new data into the duplicate.
-	if (Index >= pCopy->HowMany())
+	if (Index >= (INT32)pCopy->HowMany())
 		pCopy->Add(*pBarData);
 	else
 	{
Index: Trunk/XaraLX/Kernel/ops.h
===================================================================
--- Trunk/XaraLX/Kernel/ops.h	(revision 876)
+++ Trunk/XaraLX/Kernel/ops.h	(revision 877)
@@ -669,7 +669,7 @@
 				if  ((OpHist.ReduceSize((OpHist.GetSize()-1), TRUE)) == FALSE)            \
 					NoMoreUndoOpsToDelete = TRUE;                                 	      \
 															  	                  		  \
-			} while ( (((Ptr) = (AllocExpr))  == NULL)      							  \
+			} while ( (((Ptr) = (AllocExpr))  == NULL)									  \
 					&& (!NoMoreUndoOpsToDelete) ); 									      \
 		                                              									  \
 			if (NoMoreUndoOpsToDelete)           								          \
Index: Trunk/XaraLX/Kernel/Makefile.am
===================================================================
--- Trunk/XaraLX/Kernel/Makefile.am	(revision 876)
+++ Trunk/XaraLX/Kernel/Makefile.am	(revision 877)
@@ -62,6 +62,7 @@
 	bmpprefs.cpp expbmp.cpp expcol.cpp prvwflt.cpp bmpexdoc.cpp webop.cpp \
 	zdeflate.cpp jpgdest.cpp webparam.cpp bmpalint.cpp zdftrees.cpp animparams.cpp \
 	sglayer.cpp layermgr.cpp layergal.cpp backgrnd.cpp viewmenu.cpp renddlg.cpp \
-	sgcolour.cpp sgbitmap.cpp bmpsdlg.cpp
+	sgcolour.cpp sgbitmap.cpp bmpsdlg.cpp ngcore.cpp ngitem.cpp ngscan.cpp \
+	ngsentry.cpp ngsetop.cpp ngdialog.cpp
 
 AM_CXXFLAGS = $(XARAFLAGS)
Index: Trunk/XaraLX/Kernel/ngdialog.h
===================================================================
--- Trunk/XaraLX/Kernel/ngdialog.h	(revision 876)
+++ Trunk/XaraLX/Kernel/ngdialog.h	(revision 877)
@@ -240,7 +240,7 @@
 
 protected:
     virtual void Do(OpDescriptor*);
-	static DialogBarOp* FindGallery();
+	static SuperGallery* FindGallery();
 };  
 
 #endif	/* !NGDIALOG_H */
Index: Trunk/XaraLX/Kernel/ngcore.cpp
===================================================================
--- Trunk/XaraLX/Kernel/ngcore.cpp	(revision 876)
+++ Trunk/XaraLX/Kernel/ngcore.cpp	(revision 877)
@@ -176,6 +176,7 @@
 	m_fMenusCreated(FALSE),
 	m_fChildChanges(FALSE)
 {
+	DlgResID = _R(IDD_NAMESGALLERY);
 	ERROR3IF(m_pInstance != 0, "NameGallery::NameGallery: instance already exists");
 	m_pInstance = this;
 	m_BarToIgnoreTargetsOf = "";
@@ -540,11 +541,11 @@
 		switch (pMsg->DlgMsg)
 		{
 		case DIM_CREATE:
-			SGInit::UpdateGalleryButton( OPTOKEN_DISPLAY_NAME_GALLERY, TRUE);
+			SGInit::UpdateGalleryButton( _R(OPTOKEN_DISPLAY_NAME_GALLERY), TRUE);
 			break;
 
 		case DIM_CANCEL:
-			SGInit::UpdateGalleryButton( OPTOKEN_DISPLAY_NAME_GALLERY, FALSE);
+			SGInit::UpdateGalleryButton( _R(OPTOKEN_DISPLAY_NAME_GALLERY), FALSE);
 			break;
 
 		case DIM_LFT_BN_CLICKED:
@@ -564,14 +565,14 @@
 				// By-pass default base class handling for these buttons so the default
 				// bar implementation can automatically invoke the operations defined
 				// for them in bars.ini.
-				return DialogBarOp::Message(pMessage);
+				return DialogOp::Message(pMessage);
 			}
 			if( _R(IDC_GALLERY_APPLY)	== pMsg->GadgetID ||
 				_R(IDC_GALLERY_REDEFINE) == pMsg->GadgetID )
 			{
 				// Do as above, but afterwards check to ensure that (if any of the sets
 				// affected is involved in a stretch) no NodeRegularShapes are involved
-				MsgResult tempMsg = DialogBarOp::Message(pMessage);
+				MsgResult tempMsg = DialogOp::Message(pMessage);
 
 
 				// For every SGNameItem currently selected, check if it is involved in a stretch...
@@ -991,7 +992,7 @@
 	// all gallery buttons is determined by the operations they are attached to, allowing
 	// them to be stand-alone in the original Camelot style.  The base class model is only
 	// used for the display tree redraw and click handling.
-	SetSystemStateChanged(TRUE);
+	DialogBarOp::SetSystemStateChanged(TRUE);
 }
 
 
@@ -1224,8 +1225,12 @@
 	// list the ops that would allow us to pull a button apart
 	BOOL IsPossiblePullApartOp =  m_LastOpUsed->IS_KIND_OF(TransOperation) && !IS_A(m_LastOpUsed, OpScaleTrans) && !IS_A(m_LastOpUsed, OpSquashTrans);
 	BOOL IsAChangePropertyOp = IS_A(m_LastOpUsed, OpChangeBarProperty);
-	BOOL IsAButtonNoChangingOp =	IS_A(m_LastOpUsed, OpDuplicateBar) || 
+	BOOL IsAButtonNoChangingOp =
+PORTNOTE("other", "Remove OpDuplicateBar and OpShortenBar")
+#ifndef EXCLUDE_FROM_XARALX
+									IS_A(m_LastOpUsed, OpDuplicateBar) || 
 									IS_A(m_LastOpUsed, OpShortenBar) || 
+#endif
 									IS_A(m_LastOpUsed, OpRenameAll);
 
 	// force recursion for these two ops
@@ -1251,7 +1256,7 @@
 		// zero the array of bar sizes and other cached bar data
 		memset (m_BarSize,0, sizeof(m_BarSize));
 
-	INT32 TriggeredBar = -1;
+		INT32 TriggeredBar = -1;
 		if (m_TouchedBar >= 0)
 		{
 			if (!SetBSTData(m_TouchedBar, 0, 0, 1, 0))
@@ -1264,6 +1269,8 @@
 			// adding a bar member is added over button1
 			// so first we have to shuffle the button into the correct place
 			// otherwise the back bar wont be able to expand around it
+PORTNOTE("other", "Removed OpDuplicateBar");
+#ifndef EXCLUDE_FROM_XARALX
 			if (IS_A(m_LastOpUsed, OpDuplicateBar) && pNodeBarProperty->Bar(TriggeredBar).IsLive)
 			{
 			INT32 barDirection = pNodeBarProperty->Bar(TriggeredBar).IsHorizontal ? 1 : 2;
@@ -1279,6 +1286,7 @@
 
 				FastUpdateNamedSetSizes(); // record the new positions
 			}
+#endif
 		}
 
 	//INT32 TriggersFound = 0; // not needed in the calculation any more but left as it can be useful for debugging
@@ -1621,10 +1629,13 @@
 		// bar creation should make the bar shuffle as we know no extending is likely to go on
 		if (TriggeredBar == -1)
 		{
+PORTNOTE("other", "Removed OpBarCreation");
+#ifndef EXCLUDE_FROM_XARALX
 			if (IS_A(m_LastOpUsed, OpBarCreation))
 			{
 				TriggeredBar = ((OpBarCreation *)m_LastOpUsed)->GetBarNumber();
 			}
+#endif
 		}
 		
 		// no target found to extend, so give up now!
@@ -1939,7 +1950,12 @@
 
 	// tidy up after a delete or a shorten bar op has occured to remove some of the properties
 	// from bars that still exist
-	if (m_LastOpUsed->OpStatus == DO && (IS_A(m_LastOpUsed, OpShortenBar) || IS_A(m_LastOpUsed, OpDelete)))
+	if (m_LastOpUsed->OpStatus == DO && (
+PORTNOTE("other", "Removed OpShortenBar")
+#ifndef EXCLUDE_FROM_XARALX											
+											IS_A(m_LastOpUsed, OpShortenBar) ||
+#endif
+											IS_A(m_LastOpUsed, OpDelete)))
 	{
 		pNameGalleryItem = (SGNameItem*) pNames->GetChild();
 		while (pNameGalleryItem)
Index: Trunk/XaraLX/Kernel/sginit.cpp
===================================================================
--- Trunk/XaraLX/Kernel/sginit.cpp	(revision 876)
+++ Trunk/XaraLX/Kernel/sginit.cpp	(revision 877)
@@ -110,7 +110,7 @@
 //#include "sglcart.h"	// For OpDisplayLibClipartGallery et al
 //#include "sglfills.h"	// For OpDisplayLibFillsGallery
 //#include "sgline.h"		// For OpDisplayLineGallery
-//#include "ngdialog.h"	// For OpDisplayNameGallery & OpNGPropertyIndexDesc
+#include "ngdialog.h"	// For OpDisplayNameGallery & OpNGPropertyIndexDesc
 #include "sgscan.h"		// For Library::InitLibPrefs()
 #include "layerprp.h"	// For LayerPropertiesDlg::Init()
 //#include "aprps.h"
@@ -178,8 +178,10 @@
 				LayerPropertyTabsDlg::Init()		&&				
 
 				OpDisplayLineGallery::Init()		&&
+#endif // EXCLUDE_FROM_XARALX
+#ifdef _DEBUG // For now name gallery only on debug builds
 				OpDisplayNameGallery::Init()		&&
-#endif // EXCLUDE_FROM_XARALX
+#endif
 #endif // WEBSTER				
 // Taken out by vector stroking code Neville 2/10/97
 #ifndef EXCLUDE_FROM_XARALX
Index: Trunk/XaraLX/Kernel/ngitem.cpp
===================================================================
--- Trunk/XaraLX/Kernel/ngitem.cpp	(revision 876)
+++ Trunk/XaraLX/Kernel/ngitem.cpp	(revision 877)
@@ -875,6 +875,8 @@
 				// start dragging it.  If the click isn't really a drag then
 				// DragWasReallyAClick will be called when the drag is cancelled.
 				DefaultPreDragHandler(pMouseInfo, pMiscInfo);
+PORTNOTE("other", "Removed bitmap drag handling BitmapDragInformation");
+#ifndef EXCLUDE_FROM_XARALX
 				if (GetParent() == NameGallery::Instance()->GetUsedNames())
 				{           
 					// It's a name (ie. a child of the 'Used Names' group), so create and run
@@ -884,6 +886,7 @@
 					DragManagerOp::StartDrag(pDragInfo);
 				}
 				else
+#endif
 					// Not a name so just do the default, but don't close on
 					// adjust-double-click.
 					DefaultClickHandler(pMouseInfo, pMiscInfo, FALSE);
Index: Trunk/XaraLX/Scripts/barconverter
===================================================================
--- Trunk/XaraLX/Scripts/barconverter	(revision 876)
+++ Trunk/XaraLX/Scripts/barconverter	(revision 877)
@@ -536,7 +536,7 @@
     my $name = shift @_;
     my $optoken = shift @_;
 #    print ">>> $name $optoken <<<
";
-    if ($name =~ /^(IDCB_ZOOM_COMBO_BOX|IDCB_LINEWIDTH_COMBO_BOX|IDC_EDIT_REGSHAPETOOL_POS|IDC_EDIT_REGSHAPETOOL_SIDES|IDC_GEOMETRY|IDC_MAPPING|IDC_EFFECT|IDC_BITMAPEFFECT|IDC_TRANSPTYPE|IDC_MAPPING|IDC_BITMAPEFFECT|IDC_BRUSHTYPE|IDC_STROKETYPE|IDC_EFFECT|IDC_BEVEL_TYPE_COMBO|IDC_BEVEL_SLIDER_COMBO|IDC_FONT_COMBO|IDC_POINT_COMBO)$/)
+    if ($name =~ /^(IDCB_ZOOM_COMBO_BOX|IDCB_LINEWIDTH_COMBO_BOX|IDC_EDIT_REGSHAPETOOL_POS|IDC_EDIT_REGSHAPETOOL_SIDES|IDC_GEOMETRY|IDC_MAPPING|IDC_EFFECT|IDC_BITMAPEFFECT|IDC_TRANSPTYPE|IDC_MAPPING|IDC_BITMAPEFFECT|IDC_BRUSHTYPE|IDC_STROKETYPE|IDC_EFFECT|IDC_BEVEL_TYPE_COMBO|IDC_BEVEL_SLIDER_COMBO|IDC_FONT_COMBO|IDC_POINT_COMBO|IDC_NAMEGAL_PROP_IDX)$/)
     {
 	WriteCombo($name,$optoken);
     }
Index: Trunk/XaraLX/wxOil/xrc/EN/xaralx-bars.xrc
===================================================================
--- Trunk/XaraLX/wxOil/xrc/EN/xaralx-bars.xrc	(revision 876)
+++ Trunk/XaraLX/wxOil/xrc/EN/xaralx-bars.xrc	(revision 877)
@@ -2497,9 +2497,13 @@
             </object>
             <object class="sizeritem">
                 <flag>wxALIGN_CENTER_VERTICAL|wxALL</flag>
-                <border>1</border>
-                <object class="wxCamArtControl" name="IDC_NAMEGAL_PROP_IDX">
-                    <camartstyle>wxCACS_PUSHBUTTON|wxCACS_ALLOWHOVER</camartstyle>
+                <border>0</border>
+                <object class="wxComboBox" name="IDC_NAMEGAL_PROP_IDX">
+                    <size>80,-1</size>
+                    <font>
+                        <size>8</size>
+                    </font>
+                    <style>wxCB_DROPDOWN</style>
                     <optoken>NameGalleryPropertyIndex</optoken>
                 </object>
             </object>


Xara