summaryrefslogtreecommitdiff
path: root/sw/source/ui/inc/srcedtw.hxx
diff options
context:
space:
mode:
authorJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 16:15:01 +0000
committerJens-Heiner Rechtien <hr@openoffice.org>2000-09-18 16:15:01 +0000
commit7b0b5cdfeed656b279bc32cd929630d5fc25878b (patch)
tree5b89fb8497d7329d26c43f109bb014c54ffb0e8c /sw/source/ui/inc/srcedtw.hxx
parentd791366863cf9659a01b171ce0e727bfe2f28cdf (diff)
initial import
Diffstat (limited to 'sw/source/ui/inc/srcedtw.hxx')
-rw-r--r--sw/source/ui/inc/srcedtw.hxx198
1 files changed, 198 insertions, 0 deletions
diff --git a/sw/source/ui/inc/srcedtw.hxx b/sw/source/ui/inc/srcedtw.hxx
new file mode 100644
index 000000000000..0e76a8bc8068
--- /dev/null
+++ b/sw/source/ui/inc/srcedtw.hxx
@@ -0,0 +1,198 @@
+/*************************************************************************
+ *
+ * $RCSfile: srcedtw.hxx,v $
+ *
+ * $Revision: 1.1.1.1 $
+ *
+ * last change: $Author: hr $ $Date: 2000-09-18 17:14:42 $
+ *
+ * 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): _______________________________________
+ *
+ *
+ ************************************************************************/
+#ifndef _SRCEDTW_HXX
+#define _SRCEDTW_HXX
+
+#ifndef _WINDOW_HXX //autogen
+#include <vcl/window.hxx>
+#endif
+
+#ifndef _SFXLSTNER_HXX //autogen
+#include <svtools/lstner.hxx>
+#endif
+
+#ifndef _TIMER_HXX //autogen
+#include <vcl/timer.hxx>
+#endif
+
+#ifndef _TABLE_HXX //autogen
+#include <tools/table.hxx>
+#endif
+
+#ifndef _XTEXTEDT_HXX //autogen
+#include <svtools/xtextedt.hxx>
+#endif
+
+class ScrollBar;
+class SwSrcView;
+class SwSrcEditWindow;
+class SwSrcViewConfig;
+class TextEngine;
+class ExtTextView;
+class DataChangedEvent;
+
+class TextViewOutWin : public Window
+{
+ ExtTextView* pTextView;
+
+protected:
+ virtual void Paint( const Rectangle& );
+ virtual void KeyInput( const KeyEvent& rKeyEvt );
+ virtual void MouseMove( const MouseEvent& rMEvt );
+ virtual void MouseButtonDown( const MouseEvent& rMEvt );
+ virtual void MouseButtonUp( const MouseEvent& rMEvt );
+ virtual void Command( const CommandEvent& rCEvt );
+ virtual BOOL Drop( const DropEvent& rEvt );
+ virtual BOOL QueryDrop( DropEvent& rEvt );
+ virtual void DataChanged( const DataChangedEvent& );
+
+public:
+ TextViewOutWin(Window* pParent, WinBits nBits) :
+ Window(pParent, nBits), pTextView(0){}
+
+ void SetTextView( ExtTextView* pView ) {pTextView = pView;}
+
+};
+
+//------------------------------------------------------------
+
+class SwSrcEditWindow : public Window, public SfxListener
+{
+private:
+ ExtTextView* pTextView;
+ ExtTextEngine* pTextEngine;
+
+ TextViewOutWin* pOutWin;
+ ScrollBar *pHScrollbar,
+ *pVScrollbar;
+
+ SwSrcView* pSrcView;
+
+ const SwSrcViewConfig* pSrcVwConfig;
+
+ long nCurTextWidth;
+ USHORT nStartLine;
+ BOOL bReadonly;
+ BOOL bDoSyntaxHighlight;
+ BOOL bHighlighting;
+
+ Timer aSyntaxIdleTimer;
+ Table aSyntaxLineTable;
+
+ void ImpDoHighlight( const String& rSource, USHORT nLineOff );
+
+ DECL_LINK( SyntaxTimerHdl, Timer * );
+ DECL_LINK( TimeoutHdl, Timer * );
+
+protected:
+
+ virtual void Resize();
+ virtual void DataChanged( const DataChangedEvent& );
+ virtual void GetFocus();
+// virtual void LoseFocus();
+
+ void CreateTextEngine();
+ void DoSyntaxHighlight( USHORT nPara );
+
+ virtual void Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
+
+ DECL_LINK(ScrollHdl, ScrollBar*);
+
+public:
+ SwSrcEditWindow( Window* pParent, SwSrcView* pParentView );
+ ~SwSrcEditWindow();
+
+ void SetScrollBarRanges();
+ void InitScrollBars();
+ ULONG Read( SvStream& rInput)
+ {return pTextEngine->Read(rInput);}
+ ULONG Write( SvStream& rOutput)
+ {return pTextEngine->Write(rOutput);}
+
+ ExtTextView* GetTextView()
+ {return pTextView;}
+ TextEngine* GetTextEngine()
+ {return pTextEngine;}
+ SwSrcView* GetSrcView() {return pSrcView;}
+
+ TextViewOutWin* GetOutWin() {return pOutWin;}
+ void Invalidate();
+
+ void ClearModifyFlag()
+ { pTextEngine->SetModified(FALSE); }
+ BOOL IsModified() const
+ { return pTextEngine->IsModified();}
+ void CreateScrollbars();
+
+ void SetReadonly(BOOL bSet){bReadonly = bSet;}
+ BOOL IsReadonly(){return bReadonly;}
+
+ void DoDelayedSyntaxHighlight( USHORT nPara );
+
+ void SyntaxColorsChanged();
+
+ void SetStartLine(USHORT nLine){nStartLine = nLine;}
+
+ virtual void Command( const CommandEvent& rCEvt );
+ void HandleWheelCommand( const CommandEvent& rCEvt );
+};
+
+#endif