summaryrefslogtreecommitdiff
path: root/sw/source/ui/chrdlg/break.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/ui/chrdlg/break.cxx')
-rw-r--r--sw/source/ui/chrdlg/break.cxx408
1 files changed, 408 insertions, 0 deletions
diff --git a/sw/source/ui/chrdlg/break.cxx b/sw/source/ui/chrdlg/break.cxx
new file mode 100644
index 000000000000..f3d7e0761fd6
--- /dev/null
+++ b/sw/source/ui/chrdlg/break.cxx
@@ -0,0 +1,408 @@
+/*************************************************************************
+ *
+ * $RCSfile: break.cxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 17:14:32 $
+ *
+ * The Contents of this file are made available subject to the terms of
+ * either of the following licenses
+ *
+ * - GNU Lesser General Public License Version 2.1
+ * - Sun Industry Standards Source License Version 1.1
+ *
+ * Sun Microsystems Inc., October, 2000
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2000 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ *
+ * Sun Industry Standards Source License Version 1.1
+ * =================================================
+ * The contents of this file are subject to the Sun Industry Standards
+ * Source License Version 1.1 (the "License"); You may not use this file
+ * except in compliance with the License. You may obtain a copy of the
+ * License at http://www.openoffice.org/license.html.
+ *
+ * Software provided under this License is provided on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING,
+ * WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS,
+ * MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING.
+ * See the License for the specific provisions governing your rights and
+ * obligations concerning the Software.
+ *
+ * The Initial Developer of the Original Code is: Sun Microsystems, Inc.
+ *
+ * Copyright: 2000 by Sun Microsystems, Inc.
+ *
+ * All Rights Reserved.
+ *
+ * Contributor(s): _______________________________________
+ *
+ *
+ ************************************************************************/
+
+#ifdef PRECOMPILED
+#include "ui_pch.hxx"
+#endif
+
+#pragma hdrstop
+
+#ifndef _SFXREQUEST_HXX //autogen
+#include <sfx2/request.hxx>
+#endif
+#ifndef _SFXSTRITEM_HXX //autogen
+#include <svtools/stritem.hxx>
+#endif
+#ifndef _MSGBOX_HXX //autogen
+#include <vcl/msgbox.hxx>
+#endif
+
+
+#ifndef _SV_SVAPP_HXX
+#include <vcl/svapp.hxx>
+#endif
+#ifndef _CMDID_H
+#include <cmdid.h>
+#endif
+#ifndef _UITOOL_HXX
+#include <uitool.hxx>
+#endif
+#ifndef _SWTYPES_HXX
+#include <swtypes.hxx>
+#endif
+#ifndef _WRTSH_HXX
+#include <wrtsh.hxx>
+#endif
+#ifndef _BASESH_HXX
+#include <basesh.hxx>
+#endif
+#ifndef _VIEW_HXX
+#include <view.hxx>
+#endif
+#ifndef _VIEWOPT_HXX
+#include <viewopt.hxx>
+#endif
+#ifndef _BREAK_HXX
+#include <break.hxx>
+#endif
+#ifndef _PAGEDESC_HXX
+#include <pagedesc.hxx>
+#endif
+#ifndef _POOLFMT_HXX
+#include <poolfmt.hxx>
+#endif
+
+#ifndef _BREAK_HRC
+#include <break.hrc>
+#endif
+#ifndef _CHRDLG_HRC
+#include <chrdlg.hrc>
+#endif
+
+
+void SwBreakDlg::Apply()
+{
+ String aTemplate( aEmptyStr );
+ BOOL bTemplate = FALSE;
+ if(aLineBtn.IsChecked())
+ {
+ rSh.InsertLineBreak();
+ }
+ else if(aColumnBtn.IsChecked())
+ {
+ rSh.InsertColumnBreak();
+ }
+ else if(aPageBtn.IsChecked())
+ {
+ rSh.StartAllAction();
+ const USHORT nPos = aPageCollBox.GetSelectEntryPos();
+
+ // auf Position 0 steht 'Ohne' Seitenvorlage.
+ if(0 != nPos && LISTBOX_ENTRY_NOTFOUND != nPos)
+ {
+ aTemplate = aPageCollBox.GetSelectEntry();
+ USHORT nPgNum = aPageNumBox.IsChecked() ? (USHORT)aPageNumEdit.GetValue()
+ : 0;
+ rSh.InsertPageBreak(&aTemplate, nPgNum);
+ bTemplate = TRUE;
+ }
+ else
+ rSh.InsertPageBreak();
+ rSh.EndAllAction();
+ }
+}
+
+
+IMPL_LINK_INLINE_START( SwBreakDlg, ClickHdl, void *, EMPTYARG )
+{
+ CheckEnable();
+ return 0;
+}
+IMPL_LINK_INLINE_END( SwBreakDlg, ClickHdl, void *, EMPTYARG )
+
+/*------------------------------------------------------------------------
+ Beschreibung: Handler fuer Aendern Seitenummer
+------------------------------------------------------------------------*/
+
+IMPL_LINK_INLINE_START( SwBreakDlg, PageNumHdl, CheckBox *, pBox )
+{
+ if(pBox->IsChecked()) aPageNumEdit.SetValue(1);
+ else aPageNumEdit.SetText(aEmptyStr);
+ return 0;
+}
+IMPL_LINK_INLINE_END( SwBreakDlg, PageNumHdl, CheckBox *, pBox )
+
+/*------------------------------------------------------------------------
+ Beschreibung: Durch Aendern der Seitennummer wird die Checkbox gecheckt.
+------------------------------------------------------------------------*/
+
+IMPL_LINK_INLINE_START( SwBreakDlg, PageNumModifyHdl, Edit *, EMPTYARG )
+{
+ aPageNumBox.Check();
+ return 0;
+}
+IMPL_LINK_INLINE_END( SwBreakDlg, PageNumModifyHdl, Edit *, EMPTYARG )
+
+/*------------------------------------------------------------------------
+ Beschreibung: Ok-Handler;
+ prueft, ob die Seitenummer nPage eine legale Seitennummer
+ ist (linke Seiten mit geraden Nummern etc. bei einer Seitenvorlage
+ mit wechselnden Seiten)
+------------------------------------------------------------------------*/
+
+IMPL_LINK( SwBreakDlg, OkHdl, Button *, EMPTYARG )
+{
+ if(aPageNumBox.IsChecked()) {
+ // wenn unterschiedliche Seitenvorlagen, testen auf Gueltigkeit
+ const USHORT nPos = aPageCollBox.GetSelectEntryPos();
+ // auf Position 0 steht 'Ohne'.
+ const SwPageDesc *pPageDesc;
+ if ( 0 != nPos && LISTBOX_ENTRY_NOTFOUND != nPos )
+ pPageDesc = rSh.FindPageDescByName( aPageCollBox.GetSelectEntry(),
+ TRUE );
+ else
+ pPageDesc = &rSh.GetPageDesc(rSh.GetCurPageDesc());
+
+ ASSERT(pPageDesc, Seitenvorlage nicht gefunden.);
+ const USHORT nUserPage = USHORT(aPageNumEdit.GetValue());
+ BOOL bOk = TRUE;
+ switch(pPageDesc->GetUseOn()) {
+ case PD_MIRROR:
+ case PD_ALL: break;
+ case PD_LEFT: bOk = 0 == nUserPage % 2; break;
+ case PD_RIGHT: bOk = nUserPage % 2; break;
+ }
+ if(!bOk) {
+ InfoBox(this, SW_RES(MSG_ILLEGAL_PAGENUM)).Execute();
+ aPageNumEdit.GrabFocus();
+ return 0;
+ }
+ }
+ EndDialog(RET_OK);
+ return 0;
+}
+
+SwBreakDlg::SwBreakDlg( Window *pParent, SwWrtShell &rS ) :
+
+ SvxStandardDialog( pParent,SW_RES(DLG_BREAK) ),
+
+ rSh(rS),
+ aLineBtn(this,SW_RES(RB_LINE)),
+ aColumnBtn(this,SW_RES(RB_COL)),
+ aPageBtn(this,SW_RES(RB_PAGE)),
+ aPageCollText(this, SW_RES(FT_COLL)),
+ aPageCollBox(this, SW_RES(LB_COLL)),
+ aPageNumBox(this, SW_RES(CB_PAGENUM)),
+ aPageNumEdit(this, SW_RES(ED_PAGENUM)),
+ aBreakFrm(this,SW_RES(GB_BREAK)),
+ aOkBtn(this,SW_RES(BT_OK)),
+ aCancelBtn(this,SW_RES(BT_CANCEL)),
+ aHelpBtn(this,SW_RES(BT_HELP)),
+ bHtmlMode(0 != ::GetHtmlMode(rS.GetView().GetDocShell()))
+{
+ Link aLk = LINK(this,SwBreakDlg,ClickHdl);
+ aPageBtn.SetClickHdl( aLk );
+ aLineBtn.SetClickHdl( aLk );
+ aColumnBtn.SetClickHdl( aLk );
+ aPageCollBox.SetSelectHdl( aLk );
+
+ aOkBtn.SetClickHdl(LINK(this,SwBreakDlg,OkHdl));
+ aPageNumBox.SetClickHdl(LINK(this,SwBreakDlg,PageNumHdl));
+ aPageNumEdit.SetModifyHdl(LINK(this,SwBreakDlg,PageNumModifyHdl));
+
+
+ // Einfuegen der vorhandenen Seitenvorlagen in die Listbox
+ const International& rInt = Application::GetAppInternational();
+ const USHORT nCount = rSh.GetPageDescCnt();
+ for(USHORT i = 0; i < nCount; ++i)
+ {
+ const SwPageDesc &rPageDesc = rSh.GetPageDesc(i);
+ ::InsertStringSorted(rPageDesc.GetName(), aPageCollBox, TRUE, rInt);
+ }
+
+ String aFmtName;
+ for(i = RES_POOLPAGE_BEGIN; i <= RES_POOLPAGE_REGISTER; ++i)
+ if(LISTBOX_ENTRY_NOTFOUND == aPageCollBox.GetEntryPos(
+ GetDocPoolNm( i, aFmtName )))
+ ::InsertStringSorted(aFmtName, aPageCollBox, TRUE, rInt);
+
+ CheckEnable();
+ aPageNumEdit.SetText( aEmptyStr );
+ FreeResource();
+}
+
+
+void SwBreakDlg::CheckEnable()
+{
+ BOOL bEnable = TRUE;
+ if ( bHtmlMode )
+ {
+ aColumnBtn .Enable(FALSE);
+ aPageCollBox.Enable(FALSE);
+ bEnable = FALSE;
+ }
+ else if(rSh.GetFrmType(0,TRUE)
+ & (FRMTYPE_FLY_ANY | FRMTYPE_HEADER | FRMTYPE_FOOTER | FRMTYPE_FOOTNOTE))
+ {
+ aPageBtn.Enable(FALSE);
+ if(aPageBtn.IsChecked())
+ aLineBtn.Check(TRUE);
+ bEnable = FALSE;
+ }
+ const BOOL bPage = aPageBtn.IsChecked();
+ aPageCollText.Enable( bPage );
+ aPageCollBox.Enable ( bPage );
+
+ bEnable &= bPage;
+ if ( bEnable )
+ {
+ // auf Position 0 steht 'Ohne' Seitenvorlage.
+ const USHORT nPos = aPageCollBox.GetSelectEntryPos();
+ if ( 0 == nPos || LISTBOX_ENTRY_NOTFOUND == nPos )
+ bEnable = FALSE;
+ }
+ aPageNumBox .Enable(bEnable);
+ aPageNumEdit.Enable(bEnable);
+}
+
+
+SwBreakDlg::~SwBreakDlg() {}
+
+/*------------------------------------------------------------------------
+
+ $Log: not supported by cvs2svn $
+ Revision 1.62 2000/09/18 16:05:13 willem.vandorp
+ OpenOffice header added.
+
+ Revision 1.61 2000/08/25 10:12:26 os
+ #77214# style listbox sorted
+
+ Revision 1.60 2000/07/26 16:32:15 jp
+ use the new function GetDocPoolNm to get the collectionames
+
+ Revision 1.59 2000/05/26 07:21:28 os
+ old SW Basic API Slots removed
+
+ Revision 1.58 2000/05/10 11:55:37 os
+ Basic API removed
+
+ Revision 1.57 2000/02/11 14:43:29 hr
+ #70473# changes for unicode ( patched by automated patchtool )
+
+ Revision 1.56 1999/06/18 13:45:28 OS
+ #66704# wrong fix fixed
+
+
+ Rev 1.55 18 Jun 1999 15:45:28 OS
+ #66704# wrong fix fixed
+
+ Rev 1.54 09 Jun 1999 08:47:48 OS
+ #66704# no page breaks in header/footer/frame
+
+ Rev 1.53 05 Feb 1999 17:44:20 JP
+ Task #61467#/#61014#: neu FindPageDescByName
+
+ Rev 1.52 21 Nov 1997 12:24:34 MA
+ includes
+
+ Rev 1.51 03 Nov 1997 13:10:20 MA
+ precomp entfernt
+
+ Rev 1.50 30 Jul 1997 18:15:32 HJS
+ includes
+
+ Rev 1.49 23 Jul 1997 20:22:14 HJS
+ includes
+
+ Rev 1.48 27 Jan 1997 16:14:42 OS
+ HtmlMode wird ueber GetHtmlMode ermittelt
+
+ Rev 1.47 18 Dec 1996 19:07:30 MA
+ fix: richtiges enablen
+
+ Rev 1.46 06 Dec 1996 13:53:20 MA
+ Umbrueche fuer Tabellen
+
+ Rev 1.45 11 Nov 1996 09:16:38 MA
+ ResMgr
+
+ Rev 1.44 10 Oct 1996 13:18:52 OS
+ HtmlMode beruecksichtigen
+
+ Rev 1.43 02 Oct 1996 08:36:16 MA
+ Umstellung Enable/Disable
+
+ Rev 1.42 28 Aug 1996 08:59:06 OS
+ includes
+
+ Rev 1.41 06 Feb 1996 15:18:38 JP
+ Link Umstellung 305
+
+ Rev 1.40 24 Nov 1995 16:57:32 OM
+ PCH->PRECOMPILED
+
+ Rev 1.39 08 Nov 1995 12:47:36 OM
+ Change->Set
+
+ Rev 1.38 23 Oct 1995 17:25:10 OS
+ Umbrueche einfuegen recordable
+
+ Rev 1.37 11 Sep 1995 18:47:40 OM
+ Helpbutton eingefuegt
+
+ Rev 1.36 30 Aug 1995 14:08:52 MA
+ fix: sexport'iert
+
+ Rev 1.35 21 Aug 1995 09:22:06 MA
+ chg: swstddlg -> svxstandarddialog, Optimierungen
+
+ Rev 1.34 05 Apr 1995 09:15:28 JP
+ Benutzung vom Link-Makro eingeschraenkt
+
+ Rev 1.33 25 Oct 1994 15:50:04 ER
+ add: PCH
+
+ Rev 1.32 05 Oct 1994 17:45:56 VB
+ Umbruch freigeschaltet
+
+------------------------------------------------------------------------*/
+
+