blob: 3d2344b573c6458348040e1c8fcb0aaed1a2d947 [file] [log] [blame]
/**************************************************************
*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*
*************************************************************/
#ifndef _APPWIN_HXX
#define _APPWIN_HXX
//#include <sb.hxx>
#include <vcl/dockwin.hxx>
#include <tools/fsys.hxx>
#include "app.hxx"
#include "dataedit.hxx"
typedef sal_uInt16 QueryBits;
#define QUERY_NONE ( QueryBits ( 0x00 ) )
#define QUERY_DIRTY ( QueryBits ( 0x01 ) )
#define QUERY_DISK_CHANGED ( QueryBits ( 0x02 ) )
#define QUERY_ALL ( QUERY_DIRTY | QUERY_DISK_CHANGED )
#define SAVE_NOT_DIRTY ( QueryBits ( 0x04 ) )
#define SAVE_RES_SAVED sal_True
#define SAVE_RES_NOT_SAVED sal_False
#define SAVE_RES_ERROR 3
#define SAVE_RES_CANCEL 4
#define SINCE_LAST_LOAD 1
#define SINCE_LAST_ASK_RELOAD 2
#define HAS_BEEN_LOADED 1 // includes ASKED_RELOAD
#define ASKED_RELOAD 2
#define TT_WIN_STATE_MAX 0x01
#define TT_WIN_STATE_FLOAT 0x02
#define TT_WIN_STATE_HIDE 0x04
class BasicFrame;
class AppWin : public DockingWindow, public SfxListener // Document window
{
friend class MsgEdit;
protected:
static short nNumber; // serial number
static short nCount; // number of edit windows
static String *pNoName; // "Untitled"
FileStat aLastAccess; // Last access time of loaded file
sal_uInt16 nSkipReload; // Sometimes there must not be a reload
sal_Bool bHasFile; // Otherwise reload does not make sense
sal_Bool bReloadAborted; // Is set if reload was cancelled so that we can ask again wehn closing
short nId; // ID-Nummer( "Unnamed n" )
BasicFrame* pFrame; // Parent-Window
// Icon* pIcon; // Document icon
String aFind; // Search string
String aReplace; // Replace string
sal_Bool bFind; // sal_True if search not replace
void RequestHelp( const HelpEvent& ); // Help handler
void GetFocus(); // activate
virtual sal_uInt16 ImplSave(); // Save file
sal_uInt16 nWinState; // Maximized, Iconized or Normal
Point nNormalPos; // Position if normal
Size nNormalSize; // Size if Normal
virtual long PreNotify( NotifyEvent& rNEvt );
sal_uInt16 nWinId;
public:
TYPEINFO();
AppWin( BasicFrame* );
~AppWin();
DataEdit* pDataEdit; // Data area
virtual sal_uInt16 GetLineNr()=0; // Current line number
virtual long InitMenu( Menu* ); // Init of the menu
virtual long DeInitMenu( Menu* ); // reset to enable all shortcuts
virtual void Command( const CommandEvent& rCEvt ); // Command handler
virtual void Resize();
virtual void Help();
virtual sal_Bool Load( const String& ); // Load file
virtual void PostLoad(){} // Set source at module
virtual sal_uInt16 SaveAs(); // Save file as
virtual void PostSaveAs(){}
virtual void Find(); // find text
virtual void Replace(); // replace text
virtual void Repeat(); // repeat find/replace
virtual sal_Bool Close(); // close window
virtual void Activate(); // window was activated
virtual FileType GetFileType()=0; // returns the filetype
virtual sal_Bool ReloadAllowed(){ return sal_True; }
virtual void Reload(); // Reload after change on disk
virtual void LoadIniFile(){;} // (re)load ini file after change
void CheckReload(); // Checks and asks if reload should performed
sal_Bool DiskFileChanged( sal_uInt16 nWhat ); // Checks file for changes
void UpdateFileInfo( sal_uInt16 nWhat ); // Remembers last file state
sal_Bool IsSkipReload(); // Should we test reload?
void SkipReload( sal_Bool bSkip = sal_True );
sal_uInt16 GetWinState(){ return nWinState; }
void Maximize();
void Restore();
void Minimize( sal_Bool bMinimize );
void Cascade( sal_uInt16 nNr );
sal_uInt16 QuerySave( QueryBits nBits = QUERY_ALL );
sal_Bool IsModified() { return pDataEdit->IsModified(); }
BasicFrame* GetBasicFrame() { return pFrame; }
virtual void TitleButtonClick( sal_uInt16 nButton );
virtual void SetText( const XubString& rStr );
sal_uInt16 GetWinId() { return nWinId; }
void SetWinId( sal_uInt16 nWId ) { nWinId = nWId; }
};
DECLARE_LIST( EditList, AppWin* )
#endif