139 lines
5.5 KiB
C++
139 lines
5.5 KiB
C++
/*************************************************************************
|
|
*
|
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
*
|
|
* Copyright 2000, 2010 Oracle and/or its affiliates.
|
|
*
|
|
* OpenOffice.org - a multi-platform office productivity suite
|
|
*
|
|
* This file is part of OpenOffice.org.
|
|
*
|
|
* OpenOffice.org is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License version 3
|
|
* only, as published by the Free Software Foundation.
|
|
*
|
|
* OpenOffice.org 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 version 3 for more details
|
|
* (a copy is included in the LICENSE file that accompanied this code).
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* version 3 along with OpenOffice.org. If not, see
|
|
* <http://www.openoffice.org/license.html>
|
|
* for a copy of the LGPLv3 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 USHORT 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 TRUE
|
|
#define SAVE_RES_NOT_SAVED 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
|
|
USHORT nSkipReload; // Sometimes there must not be a reload
|
|
BOOL bHasFile; // Otherwise reload does not make sense
|
|
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
|
|
BOOL bFind; // TRUE if search not replace
|
|
void RequestHelp( const HelpEvent& ); // Help handler
|
|
void GetFocus(); // activate
|
|
virtual USHORT ImplSave(); // Save file
|
|
USHORT nWinState; // Maximized, Iconized or Normal
|
|
Point nNormalPos; // Position if normal
|
|
Size nNormalSize; // Size if Normal
|
|
virtual long PreNotify( NotifyEvent& rNEvt );
|
|
USHORT nWinId;
|
|
|
|
public:
|
|
TYPEINFO();
|
|
AppWin( BasicFrame* );
|
|
~AppWin();
|
|
DataEdit* pDataEdit; // Data area
|
|
virtual USHORT 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 BOOL Load( const String& ); // Load file
|
|
virtual void PostLoad(){} // Set source at module
|
|
virtual USHORT SaveAs(); // Save file as
|
|
virtual void PostSaveAs(){}
|
|
virtual void Find(); // find text
|
|
virtual void Replace(); // replace text
|
|
virtual void Repeat(); // repeat find/replace
|
|
virtual BOOL Close(); // close window
|
|
virtual void Activate(); // window was activated
|
|
virtual FileType GetFileType()=0; // returns the filetype
|
|
virtual BOOL ReloadAllowed(){ return 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
|
|
BOOL DiskFileChanged( USHORT nWhat ); // Checks file for changes
|
|
void UpdateFileInfo( USHORT nWhat ); // Remembers last file state
|
|
BOOL IsSkipReload(); // Should we test reload?
|
|
void SkipReload( BOOL bSkip = TRUE );
|
|
USHORT GetWinState(){ return nWinState; }
|
|
void Maximize();
|
|
void Restore();
|
|
void Minimize( BOOL bMinimize );
|
|
void Cascade( USHORT nNr );
|
|
|
|
USHORT QuerySave( QueryBits nBits = QUERY_ALL );
|
|
BOOL IsModified() { return pDataEdit->IsModified(); }
|
|
BasicFrame* GetBasicFrame() { return pFrame; }
|
|
virtual void TitleButtonClick( USHORT nButton );
|
|
virtual void SetText( const XubString& rStr );
|
|
|
|
USHORT GetWinId() { return nWinId; }
|
|
void SetWinId( USHORT nWId ) { nWinId = nWId; }
|
|
};
|
|
|
|
DECLARE_LIST( EditList, AppWin* )
|
|
|
|
#endif
|