diff options
Diffstat (limited to 'sw/source/ui/envelp/labfmt.cxx')
-rw-r--r-- | sw/source/ui/envelp/labfmt.cxx | 655 |
1 files changed, 0 insertions, 655 deletions
diff --git a/sw/source/ui/envelp/labfmt.cxx b/sw/source/ui/envelp/labfmt.cxx deleted file mode 100644 index 5d5bceee57..0000000000 --- a/sw/source/ui/envelp/labfmt.cxx +++ /dev/null @@ -1,655 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/************************************************************************* - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * Copyright 2000, 2010 Oracle and/or its affiliates. - * - * OpenOffice.org - a multi-platform office productivity suite - * - * This file is part of OpenOffice.org. - * - * OpenOffice.org is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License version 3 - * only, as published by the Free Software Foundation. - * - * OpenOffice.org is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License version 3 for more details - * (a copy is included in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU Lesser General Public License - * version 3 along with OpenOffice.org. If not, see - * <http://www.openoffice.org/license.html> - * for a copy of the LGPLv3 License. - * - ************************************************************************/ - -// MARKER(update_precomp.py): autogen include statement, do not remove -#include "precompiled_sw.hxx" -#ifdef SW_DLLIMPLEMENTATION -#undef SW_DLLIMPLEMENTATION -#endif - - -#include <tools/poly.hxx> -#include <viewopt.hxx> - -#include "swtypes.hxx" -#include "cmdid.h" -#include "label.hxx" -#include "labimp.hxx" -#include "labimg.hxx" -#include "labfmt.hxx" -#include "uitool.hxx" - -#include "label.hrc" -#include "labfmt.hrc" -#include <unomid.h> - -using namespace utl; -using namespace ::com::sun::star::uno; -using namespace ::com::sun::star::beans; - -using ::rtl::OUString; - -#define ROUND(x) ((sal_uInt16) ((x) + .5)) - -SwLabPreview::SwLabPreview( const SwLabFmtPage* pParent, const ResId& rResID ) : - - Window((Window*) pParent, rResID), - - aGrayColor(COL_LIGHTGRAY), - - aHDistStr (SW_RES(STR_HDIST )), - aVDistStr (SW_RES(STR_VDIST )), - aWidthStr (SW_RES(STR_WIDTH )), - aHeightStr(SW_RES(STR_HEIGHT)), - aLeftStr (SW_RES(STR_LEFT )), - aUpperStr (SW_RES(STR_UPPER )), - aColsStr (SW_RES(STR_COLS )), - aRowsStr (SW_RES(STR_ROWS )) -{ - SetMapMode(MAP_PIXEL); - - const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); - const Color& rWinColor = rStyleSettings.GetWindowColor(); - SetBackground(Wallpaper(rWinColor)); - - Font aFont = GetFont(); - aFont.SetTransparent(sal_True); - aFont.SetWeight (WEIGHT_NORMAL); - SetFont(aFont); - - const Size aSz(GetOutputSizePixel()); - - lOutWPix = aSz.Width (); - lOutHPix = aSz.Height(); - - - lHDistWidth = GetTextWidth(aHDistStr ); - lVDistWidth = GetTextWidth(aVDistStr ); - lHeightWidth = GetTextWidth(aHeightStr); - lLeftWidth = GetTextWidth(aLeftStr ); - lUpperWidth = GetTextWidth(aUpperStr ); - lColsWidth = GetTextWidth(aColsStr ); - - lXHeight = GetTextHeight(); - lXWidth = GetTextWidth('X'); - - // Scale factor - float fx = (float)(lOutWPix - (2 * (lLeftWidth + 15))) / (float)lOutWPix; - - lOutWPix23 = (long)((float)lOutWPix * fx); - lOutHPix23 = (long)((float)lOutHPix * fx); -} - -SwLabPreview::~SwLabPreview() -{ -} - -void SwLabPreview::Paint(const Rectangle &) -{ - const StyleSettings& rStyleSettings = GetSettings().GetStyleSettings(); - const Color& rWinColor = rStyleSettings.GetWindowColor(); - const Color& rFieldTextColor = SwViewOption::GetFontColor(); - - Font aFont = GetFont(); - aFont.SetFillColor( rWinColor ); - aFont.SetColor(rFieldTextColor); - SetFont(aFont); - - SetBackground(Wallpaper(rWinColor)); - - SetLineColor(rWinColor); - SetFillColor(aGrayColor); - Font aPaintFont(GetFont()); - aPaintFont.SetTransparent(sal_False); - SetFont(aPaintFont); - - // size of region to be displayed - long lDispW = ROUND(aItem.lLeft + aItem.lHDist); - long lDispH = ROUND(aItem.lUpper + aItem.lVDist); - if (aItem.nCols == 1) - lDispW += ROUND(aItem.lLeft ); - else - lDispW += ROUND(aItem.lHDist / 10); - if (aItem.nRows == 1) - lDispH += ROUND(aItem.lUpper); - else - lDispH += ROUND(aItem.lVDist / 10); - - // Scale factor - float fx = (float) lOutWPix23 / Max(1L, lDispW), - fy = (float) lOutHPix23 / Max(1L, lDispH), - f = fx < fy ? fx : fy; - - // zero point - long lOutlineW = ROUND(f * lDispW); - long lOutlineH = ROUND(f * lDispH); - - long lX0 = (lOutWPix - lOutlineW) / 2; - long lY0 = (lOutHPix - lOutlineH) / 2; - long lX1 = ROUND(lX0 + f * aItem.lLeft ); - long lY1 = ROUND(lY0 + f * aItem.lUpper); - long lX2 = ROUND(lX0 + f * (aItem.lLeft + aItem.lWidth )); - long lY2 = ROUND(lY0 + f * (aItem.lUpper + aItem.lHeight)); - long lX3 = ROUND(lX0 + f * (aItem.lLeft + aItem.lHDist )); - long lY3 = ROUND(lY0 + f * (aItem.lUpper + aItem.lVDist )); - - // draw outline (area) - DrawRect(Rectangle(Point(lX0, lY0), Size(lOutlineW, lOutlineH))); - - // draw outline (border) - SetLineColor(rFieldTextColor); - DrawLine(Point(lX0, lY0), Point(lX0 + lOutlineW - 1, lY0)); // Up - DrawLine(Point(lX0, lY0), Point(lX0, lY0 + lOutlineH - 1)); // Left - if (aItem.nCols == 1) - DrawLine(Point(lX0 + lOutlineW - 1, lY0), Point(lX0 + lOutlineW - 1, lY0 + lOutlineH - 1)); // Right - if (aItem.nRows == 1) - DrawLine(Point(lX0, lY0 + lOutlineH - 1), Point(lX0 + lOutlineW - 1, lY0 + lOutlineH - 1)); // Down - - // Labels - SetClipRegion (Rectangle(Point(lX0, lY0), Size(lOutlineW, lOutlineH))); - SetFillColor(rWinColor); - for (sal_uInt16 nRow = 0; nRow < Min((sal_uInt16) 2, (sal_uInt16) aItem.nRows); nRow++) - for (sal_uInt16 nCol = 0; nCol < Min((sal_uInt16) 2, (sal_uInt16) aItem.nCols); nCol++) - DrawRect(Rectangle( - Point(ROUND(lX0 + f * (aItem.lLeft + nCol * aItem.lHDist)), - ROUND(lY0 + f * (aItem.lUpper + nRow * aItem.lVDist))), - Size (ROUND(f * aItem.lWidth ), - ROUND(f * aItem.lHeight)))); - SetClipRegion(); - - // annotation: left border - if (aItem.lLeft) - { - long lX = (lX0 + lX1) / 2; - DrawArrow(Point(lX0, lY0 - 5), Point(lX1, lY0 - 5), sal_False); - DrawArrow(Point(lX, lY0 - 10), Point(lX, lY0 - 5), sal_True); - DrawText(Point(lX1 - lLeftWidth, lY0 - 10 - lXHeight), aLeftStr); - } - - // annotation: upper border - if (aItem.lUpper) - { - DrawArrow(Point(lX0 - 5, lY0), Point(lX0 - 5, lY1), sal_False); - DrawText(Point(lX0 - 10 - lUpperWidth, ROUND(lY0 + f * aItem.lUpper / 2 - lXHeight / 2)), aUpperStr); - } - - // annotation: width and height - { - long lX = lX2 - lXWidth / 2 - lHeightWidth / 2; - long lY = lY1 + lXHeight; - - DrawLine(Point(lX1, lY), Point(lX2 - 1, lY)); - DrawLine(Point(lX, lY1), Point(lX, lY2 - 1)); - - DrawText(Point(lX1 + lXWidth / 2, lY - lXHeight / 2), aWidthStr); - DrawText(Point(lX - lHeightWidth / 2, lY2 - lXHeight - lXHeight / 2), aHeightStr); - } - - // annotation: horizontal gap - if (aItem.nCols > 1) - { - long lX = (lX1 + lX3) / 2; - DrawArrow(Point(lX1, lY0 - 5), Point(lX3, lY0 - 5), sal_False); - DrawArrow(Point(lX, lY0 - 10), Point(lX, lY0 - 5), sal_True); - DrawText(Point(lX - lHDistWidth / 2, lY0 - 10 - lXHeight), aHDistStr); - } - - // annotation: vertical gap - if (aItem.nRows > 1) - { - DrawArrow(Point(lX0 - 5, lY1), Point(lX0 - 5, lY3), sal_False); - DrawText(Point(lX0 - 10 - lVDistWidth, ROUND(lY1 + f * aItem.lVDist / 2 - lXHeight / 2)), aVDistStr); - } - - // annotation: columns - { - long lY = lY0 + lOutlineH + 4; - DrawArrow(Point(lX0, lY), Point(lX0 + lOutlineW - 1, lY), sal_True); - DrawText(Point((lX0 + lX0 + lOutlineW - 1) / 2 - lColsWidth / 2, lY + 5), aColsStr); - } - - // annotation: lines - { - long lX = lX0 + lOutlineW + 4; - DrawArrow(Point(lX, lY0), Point(lX, lY0 + lOutlineH - 1), sal_True); - DrawText(Point(lX + 5, (lY0 + lY0 + lOutlineH - 1 - lXHeight / 2) / 2), aRowsStr); - } -} - -// Arror or interval character -------------------------------------------- - -void SwLabPreview::DrawArrow(const Point &rP1, const Point &rP2, sal_Bool bArrow) -{ - DrawLine(rP1, rP2); - - if (bArrow) - { - Point aArr[3]; - - // Arrow character - if (rP1.Y() == rP2.Y()) - { - // Horizontal - aArr[0].X() = rP2.X() - 5; - aArr[0].Y() = rP2.Y() - 2; - aArr[1].X() = rP2.X(); - aArr[1].Y() = rP2.Y(); - aArr[2].X() = rP2.X() - 5; - aArr[2].Y() = rP2.Y() + 2; - } - else - { - // Vertical - aArr[0].X() = rP2.X() - 2; - aArr[0].Y() = rP2.Y() - 5; - aArr[1].X() = rP2.X() + 2; - aArr[1].Y() = rP2.Y() - 5; - aArr[2].X() = rP2.X(); - aArr[2].Y() = rP2.Y(); - } - - const Color& rFieldTextColor = SwViewOption::GetFontColor(); - SetFillColor(rFieldTextColor); - DrawPolygon(Polygon(3, aArr)); - } - else - { - // Interval symbol - if (rP1.Y() == rP2.Y()) - { - // Horizontal - DrawLine(Point(rP1.X(), rP1.Y() - 2), Point(rP1.X(), rP1.Y() + 2)); - DrawLine(Point(rP2.X(), rP2.Y() - 2), Point(rP2.X(), rP2.Y() + 2)); - } - else - { - // Vertical - DrawLine(Point(rP1.X() - 2, rP1.Y()), Point(rP1.X() + 2, rP1.Y())); - DrawLine(Point(rP2.X() - 2, rP2.Y()), Point(rP2.X() + 2, rP2.Y())); - } - } -} - -void SwLabPreview::Update(const SwLabItem& rItem) -{ - aItem = rItem; - Invalidate(); -} - -SwLabFmtPage::SwLabFmtPage(Window* pParent, const SfxItemSet& rSet) : - - SfxTabPage(pParent, SW_RES(TP_LAB_FMT), rSet), - aMakeFI (this, SW_RES(FI_MAKE)), - aTypeFI (this, SW_RES(FI_TYPE)), - aPreview (this, SW_RES(WIN_PREVIEW)), - aHDistText (this, SW_RES(TXT_HDIST )), - aHDistField (this, SW_RES(FLD_HDIST )), - aVDistText (this, SW_RES(TXT_VDIST )), - aVDistField (this, SW_RES(FLD_VDIST )), - aWidthText (this, SW_RES(TXT_WIDTH )), - aWidthField (this, SW_RES(FLD_WIDTH )), - aHeightText (this, SW_RES(TXT_HEIGHT )), - aHeightField (this, SW_RES(FLD_HEIGHT )), - aLeftText (this, SW_RES(TXT_LEFT )), - aLeftField (this, SW_RES(FLD_LEFT )), - aUpperText (this, SW_RES(TXT_UPPER )), - aUpperField (this, SW_RES(FLD_UPPER )), - aColsText (this, SW_RES(TXT_COLUMNS)), - aColsField (this, SW_RES(FLD_COLUMNS)), - aRowsText (this, SW_RES(TXT_ROWS )), - aRowsField (this, SW_RES(FLD_ROWS )), - aSavePB (this, SW_RES(PB_SAVE )), - bModified(sal_False), - aItem ((const SwLabItem&) rSet.Get(FN_LABEL)) -{ - FreeResource(); - SetExchangeSupport(); - - // Metrics - FieldUnit aMetric = ::GetDfltMetric(sal_False); - SetMetric(aHDistField , aMetric); - SetMetric(aVDistField , aMetric); - SetMetric(aWidthField , aMetric); - SetMetric(aHeightField, aMetric); - SetMetric(aLeftField , aMetric); - SetMetric(aUpperField , aMetric); - - // Install handlers - Link aLk = LINK(this, SwLabFmtPage, ModifyHdl); - aHDistField .SetModifyHdl( aLk ); - aVDistField .SetModifyHdl( aLk ); - aWidthField .SetModifyHdl( aLk ); - aHeightField.SetModifyHdl( aLk ); - aLeftField .SetModifyHdl( aLk ); - aUpperField .SetModifyHdl( aLk ); - aColsField .SetModifyHdl( aLk ); - aRowsField .SetModifyHdl( aLk ); - - aLk = LINK(this, SwLabFmtPage, LoseFocusHdl); - aHDistField .SetLoseFocusHdl( aLk ); - aVDistField .SetLoseFocusHdl( aLk ); - aWidthField .SetLoseFocusHdl( aLk ); - aHeightField.SetLoseFocusHdl( aLk ); - aLeftField .SetLoseFocusHdl( aLk ); - aUpperField .SetLoseFocusHdl( aLk ); - aColsField .SetLoseFocusHdl( aLk ); - aRowsField .SetLoseFocusHdl( aLk ); - - aSavePB.SetClickHdl( LINK (this, SwLabFmtPage, SaveHdl)); - // Set timer - aPreviewTimer.SetTimeout(1000); - aPreviewTimer.SetTimeoutHdl(LINK(this, SwLabFmtPage, PreviewHdl)); -} - -SwLabFmtPage::~SwLabFmtPage() -{ -} - -// Modify-handler of MetricFields. start preview timer -IMPL_LINK_INLINE_START( SwLabFmtPage, ModifyHdl, Edit *, EMPTYARG ) -{ - bModified = sal_True; - aPreviewTimer.Start(); - return 0; -} -IMPL_LINK_INLINE_END( SwLabFmtPage, ModifyHdl, Edit *, EMPTYARG ) - -// Invalidate preview -IMPL_LINK_INLINE_START( SwLabFmtPage, PreviewHdl, Timer *, EMPTYARG ) -{ - aPreviewTimer.Stop(); - ChangeMinMax(); - FillItem( aItem ); - aPreview.Update( aItem ); - - return 0; -} -IMPL_LINK_INLINE_END( SwLabFmtPage, PreviewHdl, Timer *, EMPTYARG ) - -// LoseFocus-Handler: Update on change -------------------------- -IMPL_LINK_INLINE_START( SwLabFmtPage, LoseFocusHdl, Control *, pControl ) -{ - if (((Edit*) pControl)->IsModified()) - PreviewHdl(0); - return 0; -} -IMPL_LINK_INLINE_END( SwLabFmtPage, LoseFocusHdl, Control *, pControl ) - -void SwLabFmtPage::ChangeMinMax() -{ - long lMax = 31748; // 56 cm - - // Min and Max - - long lLeft = static_cast< long >(GETFLDVAL(aLeftField )), - lUpper = static_cast< long >(GETFLDVAL(aUpperField)), - lHDist = static_cast< long >(GETFLDVAL(aHDistField)), - lVDist = static_cast< long >(GETFLDVAL(aVDistField)); - - long nMinSize = 10; // 0,1cm - - aHDistField .SetMin(nMinSize, FUNIT_CM); - aVDistField .SetMin(nMinSize, FUNIT_CM); - - aHDistField .SetMax((long) 100 * ((lMax - lLeft ) / Max(1L, (long) aColsField.GetValue())), FUNIT_TWIP); - aVDistField .SetMax((long) 100 * ((lMax - lUpper) / Max(1L, (long) aRowsField.GetValue())), FUNIT_TWIP); - - aWidthField .SetMin(nMinSize, FUNIT_CM); - aHeightField.SetMin(nMinSize, FUNIT_CM); - - aWidthField .SetMax((long) 100 * (lHDist), FUNIT_TWIP); - aHeightField.SetMax((long) 100 * (lVDist), FUNIT_TWIP); - - aLeftField .SetMax((long) 100 * (lMax - (long) aColsField.GetValue() * GETFLDVAL(aHDistField)), FUNIT_TWIP); - aUpperField .SetMax((long) 100 * (lMax - (long) aRowsField.GetValue() * GETFLDVAL(aVDistField)), FUNIT_TWIP); - - aColsField .SetMax((lMax - lLeft ) / Max(1L, lHDist)); - aRowsField .SetMax((lMax - lUpper) / Max(1L, lVDist)); - - // First and Last - - aHDistField .SetFirst(aHDistField .GetMin()); - aVDistField .SetFirst(aVDistField .GetMin()); - - aHDistField .SetLast (aHDistField .GetMax()); - aVDistField .SetLast (aVDistField .GetMax()); - - aWidthField .SetFirst(aWidthField .GetMin()); - aHeightField.SetFirst(aHeightField.GetMin()); - - aWidthField .SetLast (aWidthField .GetMax()); - aHeightField.SetLast (aHeightField.GetMax()); - - aLeftField .SetLast (aLeftField .GetMax()); - aUpperField .SetLast (aUpperField .GetMax()); - - aColsField .SetLast (aColsField .GetMax()); - aRowsField .SetLast (aRowsField .GetMax()); - - aHDistField .Reformat(); - aVDistField .Reformat(); - aWidthField .Reformat(); - aHeightField.Reformat(); - aLeftField .Reformat(); - aUpperField .Reformat(); - aColsField .Reformat(); - aRowsField .Reformat(); -} - -SfxTabPage* SwLabFmtPage::Create(Window* pParent, const SfxItemSet& rSet) -{ - return new SwLabFmtPage(pParent, rSet); -} - -void SwLabFmtPage::ActivatePage(const SfxItemSet& rSet) -{ - SfxItemSet aSet(rSet); - Reset(aSet); -} - -int SwLabFmtPage::DeactivatePage(SfxItemSet* _pSet) -{ - if (_pSet) - FillItemSet(*_pSet); - - return sal_True; -} - -void SwLabFmtPage::FillItem(SwLabItem& rItem) -{ - if (bModified) - { - rItem.aMake = rItem.aType = SW_RESSTR(STR_CUSTOM); - - SwLabRec& rRec = *GetParent()->Recs()[0]; - rItem.lHDist = rRec.lHDist = static_cast< long >(GETFLDVAL(aHDistField )); - rItem.lVDist = rRec.lVDist = static_cast< long >(GETFLDVAL(aVDistField )); - rItem.lWidth = rRec.lWidth = static_cast< long >(GETFLDVAL(aWidthField )); - rItem.lHeight = rRec.lHeight = static_cast< long >(GETFLDVAL(aHeightField)); - rItem.lLeft = rRec.lLeft = static_cast< long >(GETFLDVAL(aLeftField )); - rItem.lUpper = rRec.lUpper = static_cast< long >(GETFLDVAL(aUpperField )); - rItem.nCols = rRec.nCols = (sal_uInt16) aColsField.GetValue(); - rItem.nRows = rRec.nRows = (sal_uInt16) aRowsField.GetValue(); - } -} - -sal_Bool SwLabFmtPage::FillItemSet(SfxItemSet& rSet) -{ - FillItem(aItem); - rSet.Put(aItem); - - return sal_True; -} - -void SwLabFmtPage::Reset(const SfxItemSet& ) -{ - // Initialise fields - GetParent()->GetLabItem(aItem); - - aHDistField .SetMax(100 * aItem.lHDist , FUNIT_TWIP); - aVDistField .SetMax(100 * aItem.lVDist , FUNIT_TWIP); - aWidthField .SetMax(100 * aItem.lWidth , FUNIT_TWIP); - aHeightField.SetMax(100 * aItem.lHeight, FUNIT_TWIP); - aLeftField .SetMax(100 * aItem.lLeft , FUNIT_TWIP); - aUpperField .SetMax(100 * aItem.lUpper , FUNIT_TWIP); - - SETFLDVAL(aHDistField , aItem.lHDist ); - SETFLDVAL(aVDistField , aItem.lVDist ); - SETFLDVAL(aWidthField , aItem.lWidth ); - SETFLDVAL(aHeightField, aItem.lHeight); - SETFLDVAL(aLeftField , aItem.lLeft ); - SETFLDVAL(aUpperField , aItem.lUpper ); - - aColsField.SetMax(aItem.nCols); - aRowsField.SetMax(aItem.nRows); - - aColsField .SetValue(aItem.nCols); - aRowsField .SetValue(aItem.nRows); - aMakeFI.SetText(aItem.aMake); - aTypeFI.SetText(aItem.aType); - PreviewHdl(0); -} - -IMPL_LINK( SwLabFmtPage, SaveHdl, PushButton *, EMPTYARG ) -{ - SwLabRec aRec; - aRec.lHDist = static_cast< long >(GETFLDVAL(aHDistField )); - aRec.lVDist = static_cast< long >(GETFLDVAL(aVDistField )); - aRec.lWidth = static_cast< long >(GETFLDVAL(aWidthField )); - aRec.lHeight = static_cast< long >(GETFLDVAL(aHeightField)); - aRec.lLeft = static_cast< long >(GETFLDVAL(aLeftField )); - aRec.lUpper = static_cast< long >(GETFLDVAL(aUpperField )); - aRec.nCols = (sal_uInt16) aColsField.GetValue(); - aRec.nRows = (sal_uInt16) aRowsField.GetValue(); - aRec.bCont = aItem.bCont; - SwSaveLabelDlg* pSaveDlg = new SwSaveLabelDlg(this, aRec); - pSaveDlg->SetLabel(aItem.aLstMake, aItem.aLstType); - pSaveDlg->Execute(); - if(pSaveDlg->GetLabel(aItem)) - { - bModified = sal_False; - const Sequence<OUString>& rMan = GetParent()->GetLabelsConfig().GetManufacturers(); - SvStringsDtor& rMakes = GetParent()->Makes(); - if(rMakes.Count() < (sal_uInt16)rMan.getLength()) - { - rMakes.DeleteAndDestroy(0, rMakes.Count()); - const OUString* pMan = rMan.getConstArray(); - for(sal_Int32 nMan = 0; nMan < rMan.getLength(); nMan++) - { - rMakes.Insert( new String(pMan[nMan]), rMakes.Count() ); - } - } - aMakeFI.SetText(aItem.aMake); - aTypeFI.SetText(aItem.aType); - } - delete pSaveDlg; - return 0; -} - -SwSaveLabelDlg::SwSaveLabelDlg(SwLabFmtPage* pParent, SwLabRec& rRec) : - ModalDialog(pParent, SW_RES(DLG_SAVE_LABEL)), - aOptionsFL(this,SW_RES(FL_OPTIONS )), - aMakeFT(this, SW_RES(FT_MAKE )), - aMakeCB(this, SW_RES(CB_MAKE )), - aTypeFT(this, SW_RES(FT_TYPE )), - aTypeED(this, SW_RES(ED_TYPE )), - - aOKPB(this, SW_RES(PB_OK )), - aCancelPB(this, SW_RES(PB_CANCEL )), - aHelpPB(this, SW_RES(PB_HELP )), - - aQueryMB(this, SW_RES(MB_QUERY )), - - bSuccess(sal_False), - pLabPage(pParent), - rLabRec(rRec) -{ - FreeResource(); - - aOKPB.SetClickHdl(LINK(this, SwSaveLabelDlg, OkHdl)); - Link aLk(LINK(this, SwSaveLabelDlg, ModifyHdl)); - aMakeCB.SetModifyHdl(aLk); - aTypeED.SetModifyHdl(aLk); - - SwLabelConfig& rCfg = pLabPage->GetParent()->GetLabelsConfig(); - const Sequence<OUString>& rMan = rCfg.GetManufacturers(); - const OUString* pMan = rMan.getConstArray(); - for(sal_Int32 i = 0; i < rMan.getLength(); i++) - aMakeCB.InsertEntry(pMan[i]); -} - -IMPL_LINK(SwSaveLabelDlg, OkHdl, OKButton*, EMPTYARG) -{ - SwLabelConfig& rCfg = pLabPage->GetParent()->GetLabelsConfig(); - String sMake(aMakeCB.GetText()); - String sType(aTypeED.GetText()); - if(rCfg.HasLabel(sMake, sType)) - { - String sTmp(aQueryMB.GetMessText()); - String sQuery(sTmp); - sQuery.SearchAndReplace(C2S("%1"), sMake); - sQuery.SearchAndReplace(C2S("%2"), sType); - aQueryMB.SetMessText(sQuery); - - short eRet = aQueryMB.Execute(); - aQueryMB.SetMessText(sTmp); - if(RET_YES != eRet) - return 0; - } - rLabRec.aType = sType; - rCfg.SaveLabel(sMake, sType, rLabRec); - bSuccess = sal_True; - EndDialog(RET_OK); - return 0; -} - -IMPL_LINK(SwSaveLabelDlg, ModifyHdl, Edit*, EMPTYARG) -{ - aOKPB.Enable(aMakeCB.GetText().Len() && aTypeED.GetText().Len()); - return 0; -} - -sal_Bool SwSaveLabelDlg::GetLabel(SwLabItem& rItem) -{ - if(bSuccess) - { - rItem.aMake = aMakeCB.GetText(); - rItem.aType = aTypeED.GetText(); - rItem.lHDist = rLabRec.lHDist; - rItem.lVDist = rLabRec.lVDist; - rItem.lWidth = rLabRec.lWidth; - rItem.lHeight = rLabRec.lHeight; - rItem.lLeft = rLabRec.lLeft; - rItem.lUpper = rLabRec.lUpper; - rItem.nCols = rLabRec.nCols; - rItem.nRows = rLabRec.nRows; - } - return bSuccess; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |