X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5968a0dcd951f04211dae241a836b58a915bcac5..c65650d7b5472d00da0a0516ff1a2ccf53746319:/include/wx/x11/app.h diff --git a/include/wx/x11/app.h b/include/wx/x11/app.h index 77927b4f49..332a8ee06b 100644 --- a/include/wx/x11/app.h +++ b/include/wx/x11/app.h @@ -12,7 +12,7 @@ #ifndef _WX_APP_H_ #define _WX_APP_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "app.h" #endif @@ -32,7 +32,7 @@ class WXDLLEXPORT wxWindow; class WXDLLEXPORT wxApp; class WXDLLEXPORT wxKeyEvent; class WXDLLEXPORT wxLog; -class WXDLLEXPORT wxEventLoop; +class WXDLLEXPORT wxXVisualInfo; // ---------------------------------------------------------------------------- // the wxApp class for wxX11 - see wxAppBase for more details @@ -41,108 +41,87 @@ class WXDLLEXPORT wxEventLoop; class WXDLLEXPORT wxApp : public wxAppBase { DECLARE_DYNAMIC_CLASS(wxApp) - + public: wxApp(); ~wxApp(); - + // override base class (pure) virtuals // ----------------------------------- - - virtual int MainLoop(); - virtual void ExitMainLoop(); - virtual bool Initialized(); - virtual bool Pending(); - virtual void Dispatch(); + + virtual void Exit(); + virtual bool Yield(bool onlyIfNeeded = FALSE); - + virtual void WakeUpIdle(); + virtual bool OnInitGui(); - + // implementation from now on // -------------------------- - - void OnIdle(wxIdleEvent& event); - - // Send idle event to all top-level windows. - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(); - - // Send idle event to window and all subwindows - // Returns TRUE if more idle time is requested. - bool SendIdleEvents(wxWindow* win); - + // Processes an X event. virtual bool ProcessXEvent(WXEvent* event); - + #ifdef __WXDEBUG__ virtual void OnAssert(const wxChar *file, int line, const wxChar* cond, const wxChar *msg); #endif // __WXDEBUG__ - + protected: bool m_showOnInit; - + public: // Implementation - static bool Initialize(); - static void CleanUp(); - - void DeletePendingObjects(); - bool ProcessIdle(); - + virtual bool Initialize(int& argc, wxChar **argv); + virtual void CleanUp(); + WXWindow GetTopLevelWidget() const { return m_topLevelWidget; } WXColormap GetMainColormap(WXDisplay* display); long GetMaxRequestSize() const { return m_maxRequestSize; } - + // This handler is called when a property change event occurs virtual bool HandlePropertyChange(WXEvent *event); - + // Values that can be passed on the command line. // Returns -1, -1 if none specified. const wxSize& GetInitialSize() const { return m_initialSize; } bool GetShowIconic() const { return m_showIconic; } - + +#if wxUSE_UNICODE + // Global context for Pango layout. Either use X11 + // or use Xft rendering according to GDK_USE_XFT + // environment variable + PangoContext* GetPangoContext(); +#endif + + wxXVisualInfo* GetVisualInfo(WXDisplay* display) + { + // this should be implemented correctly for wxBitmap to work + // with multiple display + return m_visualInfo; + } + // We need this before creating the app static WXDisplay* GetDisplay() { return ms_display; } static WXDisplay* ms_display; public: static long sm_lastMessageTime; - bool m_showIconic; + bool m_showIconic; wxSize m_initialSize; -#if !wxUSE_NANOX - // Someone find a better place for these - int m_visualType; // TrueColor, DirectColor etc. - int m_visualDepth; - int m_visualColormapSize; - void *m_visualColormap; - int m_visualScreen; - unsigned long m_visualRedMask; - unsigned long m_visualGreenMask; - unsigned long m_visualBlueMask; - int m_visualRedShift; - int m_visualGreenShift; - int m_visualBlueShift; - int m_visualRedPrec; - int m_visualGreenPrec; - int m_visualBluePrec; - - unsigned char *m_colorCube; +#if !wxUSE_NANOX + wxXVisualInfo* m_visualInfo; #endif - + protected: bool m_keepGoing; - + WXWindow m_topLevelWidget; WXColormap m_mainColormap; long m_maxRequestSize; - wxEventLoop* m_mainLoop; - + DECLARE_EVENT_TABLE() }; -int WXDLLEXPORT wxEntry( int argc, char *argv[] ); - -#endif -// _WX_APP_H_ +#endif // _WX_APP_H_