1*2e2212a7SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*2e2212a7SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*2e2212a7SAndrew Rist * or more contributor license agreements. See the NOTICE file 5*2e2212a7SAndrew Rist * distributed with this work for additional information 6*2e2212a7SAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*2e2212a7SAndrew Rist * to you under the Apache License, Version 2.0 (the 8*2e2212a7SAndrew Rist * "License"); you may not use this file except in compliance 9*2e2212a7SAndrew Rist * with the License. You may obtain a copy of the License at 10*2e2212a7SAndrew Rist * 11*2e2212a7SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*2e2212a7SAndrew Rist * 13*2e2212a7SAndrew Rist * Unless required by applicable law or agreed to in writing, 14*2e2212a7SAndrew Rist * software distributed under the License is distributed on an 15*2e2212a7SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*2e2212a7SAndrew Rist * KIND, either express or implied. See the License for the 17*2e2212a7SAndrew Rist * specific language governing permissions and limitations 18*2e2212a7SAndrew Rist * under the License. 19*2e2212a7SAndrew Rist * 20*2e2212a7SAndrew Rist *************************************************************/ 21*2e2212a7SAndrew Rist 22*2e2212a7SAndrew Rist 23cdf0e10cSrcweir #ifndef DBAUI_SQLEDIT_HXX 24cdf0e10cSrcweir #define DBAUI_SQLEDIT_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #include <svtools/editsyntaxhighlighter.hxx> 27cdf0e10cSrcweir #include <svl/lstner.hxx> 28cdf0e10cSrcweir #include <svtools/colorcfg.hxx> 29cdf0e10cSrcweir #include <unotools/sourceviewconfig.hxx> 30cdf0e10cSrcweir 31cdf0e10cSrcweir namespace dbaui 32cdf0e10cSrcweir { 33cdf0e10cSrcweir class OQueryTextView; 34cdf0e10cSrcweir class OSqlEdit : public MultiLineEditSyntaxHighlight, utl::ConfigurationListener 35cdf0e10cSrcweir { 36cdf0e10cSrcweir private: 37cdf0e10cSrcweir Timer m_timerInvalidate; 38cdf0e10cSrcweir Timer m_timerUndoActionCreation; 39cdf0e10cSrcweir Link m_lnkTextModifyHdl; 40cdf0e10cSrcweir String m_strOrigText; // wird beim Undo wiederhergestellt 41cdf0e10cSrcweir OQueryTextView* m_pView; 42cdf0e10cSrcweir sal_Bool m_bAccelAction; // Wird bei Cut, Copy, Paste gesetzt 43cdf0e10cSrcweir sal_Bool m_bStopTimer; 44cdf0e10cSrcweir utl::SourceViewConfig m_SourceViewConfig; 45cdf0e10cSrcweir svtools::ColorConfig m_ColorConfig; 46cdf0e10cSrcweir 47cdf0e10cSrcweir DECL_LINK(OnUndoActionTimer, void*); 48cdf0e10cSrcweir DECL_LINK(OnInvalidateTimer, void*); 49cdf0e10cSrcweir 50cdf0e10cSrcweir private: 51cdf0e10cSrcweir void ImplSetFont(); 52cdf0e10cSrcweir 53cdf0e10cSrcweir protected: 54cdf0e10cSrcweir virtual void KeyInput( const KeyEvent& rKEvt ); 55cdf0e10cSrcweir virtual void GetFocus(); 56cdf0e10cSrcweir 57cdf0e10cSrcweir DECL_LINK(ModifyHdl, void*); 58cdf0e10cSrcweir 59cdf0e10cSrcweir public: 60cdf0e10cSrcweir OSqlEdit( OQueryTextView* pParent, WinBits nWinStyle = WB_LEFT | WB_VSCROLL |WB_BORDER); 61cdf0e10cSrcweir virtual ~OSqlEdit(); 62cdf0e10cSrcweir 63cdf0e10cSrcweir // Edit overridables 64cdf0e10cSrcweir virtual void SetText(const String& rNewText); 65cdf0e10cSrcweir using MultiLineEditSyntaxHighlight::SetText; 66cdf0e10cSrcweir 67cdf0e10cSrcweir // own functionality 68cdf0e10cSrcweir sal_Bool IsInAccelAct(); 69cdf0e10cSrcweir SetTextModifyHdl(const Link & lnk)70cdf0e10cSrcweir void SetTextModifyHdl(const Link& lnk) { m_lnkTextModifyHdl = lnk; } 71cdf0e10cSrcweir // bitte nicht SetModifyHdl benutzen, den brauche ich selber, der hier wird von dem damit gesetzten Handler 72cdf0e10cSrcweir // gerufen 73cdf0e10cSrcweir // der Link bekommt einen Pointer-to-string, der nach dem Link nicht mehr gueltig ist 74cdf0e10cSrcweir 75cdf0e10cSrcweir void stopTimer(); 76cdf0e10cSrcweir void startTimer(); 77cdf0e10cSrcweir 78cdf0e10cSrcweir virtual void ConfigurationChanged( utl::ConfigurationBroadcaster*, sal_uInt32 ); 79cdf0e10cSrcweir using MultiLineEditSyntaxHighlight::Notify; 80cdf0e10cSrcweir }; 81cdf0e10cSrcweir } 82cdf0e10cSrcweir 83cdf0e10cSrcweir #endif // DBAUI_SQLEDIT_HXX 84cdf0e10cSrcweir 85cdf0e10cSrcweir 86