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_QUERYSIZETABWINUNDOACT_HXX 24cdf0e10cSrcweir #define DBAUI_QUERYSIZETABWINUNDOACT_HXX 25cdf0e10cSrcweir 26cdf0e10cSrcweir #ifndef DBAUI_QUERYDESIGNUNDOACTION_HXX 27cdf0e10cSrcweir #include "QueryDesignUndoAction.hxx" 28cdf0e10cSrcweir #endif 29cdf0e10cSrcweir #ifndef _DBU_QRY_HRC_ 30cdf0e10cSrcweir #include "dbu_qry.hrc" 31cdf0e10cSrcweir #endif 32cdf0e10cSrcweir 33cdf0e10cSrcweir namespace dbaui 34cdf0e10cSrcweir { 35cdf0e10cSrcweir 36cdf0e10cSrcweir // ================================================================================================ 37cdf0e10cSrcweir // OQuerySizeTabWinUndoAct - Undo-Klasse fuer Groessenveraenderung eines TabWins 38cdf0e10cSrcweir class OTableWindow; 39cdf0e10cSrcweir class OJoinSizeTabWinUndoAct : public OQueryDesignUndoAction 40cdf0e10cSrcweir { 41cdf0e10cSrcweir Point m_ptNextPosition; 42cdf0e10cSrcweir Size m_szNextSize; 43cdf0e10cSrcweir OTableWindow* m_pTabWin; 44cdf0e10cSrcweir 45cdf0e10cSrcweir protected: 46cdf0e10cSrcweir inline void ToggleSizePosition(); 47cdf0e10cSrcweir 48cdf0e10cSrcweir public: 49cdf0e10cSrcweir OJoinSizeTabWinUndoAct(OJoinTableView* pOwner, const Point& ptOriginalPos, const Size& szOriginalSize, OTableWindow* pTabWin); 50cdf0e10cSrcweir // Nebenbedingung : es darf nicht gescrollt worden sein, waehrend die neue Groesse/Position ermittelt wurde, das heisst, die Position 51cdf0e10cSrcweir // hier sind physische, nicht logische Koordinaten 52cdf0e10cSrcweir // (im Gegensatz zur QueryMoveTabWinUndoAct) 53cdf0e10cSrcweir Undo()54cdf0e10cSrcweir virtual void Undo() { ToggleSizePosition(); } Redo()55cdf0e10cSrcweir virtual void Redo() { ToggleSizePosition(); } 56cdf0e10cSrcweir }; 57cdf0e10cSrcweir 58cdf0e10cSrcweir //------------------------------------------------------------------------------ OJoinSizeTabWinUndoAct(OJoinTableView * pOwner,const Point & ptOriginalPos,const Size & szOriginalSize,OTableWindow * pTabWin)59cdf0e10cSrcweir inline OJoinSizeTabWinUndoAct::OJoinSizeTabWinUndoAct(OJoinTableView* pOwner, const Point& ptOriginalPos, const Size& szOriginalSize, OTableWindow* pTabWin) 60cdf0e10cSrcweir :OQueryDesignUndoAction(pOwner, STR_QUERY_UNDO_SIZETABWIN) 61cdf0e10cSrcweir ,m_ptNextPosition(ptOriginalPos) 62cdf0e10cSrcweir ,m_szNextSize(szOriginalSize) 63cdf0e10cSrcweir ,m_pTabWin(pTabWin) 64cdf0e10cSrcweir { 65cdf0e10cSrcweir } 66cdf0e10cSrcweir 67cdf0e10cSrcweir //------------------------------------------------------------------------------ ToggleSizePosition()68cdf0e10cSrcweir inline void OJoinSizeTabWinUndoAct::ToggleSizePosition() 69cdf0e10cSrcweir { 70cdf0e10cSrcweir Point ptNext = m_pTabWin->GetPosPixel(); 71cdf0e10cSrcweir Size szNext = m_pTabWin->GetSizePixel(); 72cdf0e10cSrcweir 73cdf0e10cSrcweir m_pOwner->Invalidate(INVALIDATE_NOCHILDREN); 74cdf0e10cSrcweir m_pTabWin->SetPosSizePixel(m_ptNextPosition, m_szNextSize); 75cdf0e10cSrcweir m_pOwner->Invalidate(INVALIDATE_NOCHILDREN); 76cdf0e10cSrcweir 77cdf0e10cSrcweir m_ptNextPosition = ptNext; 78cdf0e10cSrcweir m_szNextSize = szNext; 79cdf0e10cSrcweir } 80cdf0e10cSrcweir } 81cdf0e10cSrcweir 82cdf0e10cSrcweir #endif //DBAUI_QUERYSIZETABWINUNDOACT_HXX 83cdf0e10cSrcweir 84cdf0e10cSrcweir 85