Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef AP_COCOAAPP_H
00031 #define AP_COCOAAPP_H
00032
00033 #include "ut_types.h"
00034 #include "ap_App.h"
00035 #include "ut_bytebuf.h"
00036 #include "xap_CocoaApp.h"
00037 #include "pt_Types.h"
00038
00039
00040 class AP_Args;
00041 class XAP_StringSet;
00042 class AV_View;
00043 class GR_Image;
00044 class AP_CocoaClipboard;
00045
00046 class AP_CocoaApp : public AP_App
00047 {
00048 public:
00049 AP_CocoaApp(const char * szAppName);
00050
00051 virtual ~AP_CocoaApp();
00052
00053 virtual bool initialize(void);
00054 virtual void rebuildMenus(void);
00055 virtual XAP_Frame * newFrame(void);
00056 virtual bool forgetFrame(XAP_Frame * pFrame);
00057 virtual bool shutdown(void);
00058 virtual bool getPrefsValueDirectory(bool bAppSpecific, const gchar * szKey, const gchar ** pszValue) const;
00059 virtual const XAP_StringSet * getStringSet(void) const;
00060 virtual const char * getAbiSuiteAppDir(void) const;
00061 virtual void copyToClipboard(PD_DocumentRange * pDocRange, bool bUseClipboard = true);
00062 virtual void pasteFromClipboard(PD_DocumentRange * pDocRange, bool bUseClipboard, bool bHonorFormatting = true);
00063 virtual bool canPasteFromClipboard(void);
00064
00065 virtual void setSelectionStatus(AV_View * pView);
00066
00071 inline virtual void setViewSelection( AV_View * pView)
00072 { m_pViewSelection = pView; }
00073
00078 inline virtual AV_View * getViewSelection(void)
00079 { return m_pViewSelection; }
00080 virtual void clearSelection(void);
00081 virtual bool getCurrentSelection(const char** formatList,
00082 void ** ppData, UT_uint32 * pLen,
00083 const char **pszFormatFound);
00084 virtual void cacheCurrentSelection(AV_View *);
00085
00086 static int main (const char * szAppName, int argc, char ** argv);
00087
00088 void catchSignals(int sig_num) ABI_NORETURN;
00089
00090 void loadAllPlugins ();
00091
00092 virtual void errorMsgBadArg(const char*);
00093 virtual void errorMsgBadFile(XAP_Frame * pFrame, const char * file,
00094 UT_Error error);
00095 virtual bool doWindowlessArgs (const AP_Args *, bool & bSuccess);
00096 virtual GR_Graphics * newDefaultScreenGraphics() const
00097 { UT_ASSERT(UT_NOT_IMPLEMENTED); return NULL; };
00098
00099 private:
00100 XAP_StringSet * m_pStringSet;
00101 AP_CocoaClipboard * m_pClipboard;
00102
00103 bool m_bHasSelection;
00104 bool m_bSelectionInFlux;
00105 bool m_cacheDeferClear;
00106 AV_View * m_pViewSelection;
00107 AV_View * m_cacheSelectionView;
00108 XAP_Frame * m_pFrameSelection;
00109 UT_ByteBuf m_selectionByteBuf;
00110 PD_DocumentRange m_cacheDocumentRangeOfSelection;
00111 };
00112
00113
00114
00115
00116
00117 void signalWrapper(int) ABI_NORETURN;
00118
00119 #endif