1. wxAppBase class appers, wxApp in wxGTK and wxMSW modified accordingly
(wxMotif not yet, but this change shouldn't break it) 2. GetStdIcon() small fixes 3. #pragma warning removed from dynlib.cpp git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2957 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
296
include/wx/app.h
296
include/wx/app.h
@@ -1,6 +1,7 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Name: app.h
|
// Name: app.h
|
||||||
// Purpose: wxApp inclusion
|
// Purpose: wxAppBase class and macros used for declaration of wxApp
|
||||||
|
// derived class in the user code
|
||||||
// Author: Julian Smart
|
// Author: Julian Smart
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 01/02/97
|
// Created: 01/02/97
|
||||||
@@ -12,87 +13,286 @@
|
|||||||
#ifndef _WX_APP_H_BASE_
|
#ifndef _WX_APP_H_BASE_
|
||||||
#define _WX_APP_H_BASE_
|
#define _WX_APP_H_BASE_
|
||||||
|
|
||||||
|
#ifdef __GNUG__
|
||||||
|
#pragma interface "appbase.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// typedefs
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#ifdef __WXMSW__
|
#ifdef __WXMSW__
|
||||||
class WXDLLEXPORT wxApp;
|
class WXDLLEXPORT wxApp;
|
||||||
typedef wxApp* (*wxAppInitializerFunction) (void);
|
typedef wxApp* (*wxAppInitializerFunction)();
|
||||||
|
#else
|
||||||
|
// returning wxApp* won't work with gcc
|
||||||
|
#include "wx/object.h"
|
||||||
|
|
||||||
|
typedef wxObject* (*wxAppInitializerFunction)();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "wx/object.h"
|
// ----------------------------------------------------------------------------
|
||||||
|
// constants
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#ifndef __WXMSW__
|
static const int wxPRINT_WINDOWS = 1;
|
||||||
typedef wxObject* (*wxAppInitializerFunction) (void); // returning wxApp* won't work with gcc
|
static const int wxPRINT_POSTSCRIPT = 2;
|
||||||
#endif
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// the common part of wxApp implementations for all platforms
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
class WXDLLEXPORT wxAppBase : public wxEvtHandler
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
// the virtual functions which may/must be overridden in the derived class
|
||||||
|
// -----------------------------------------------------------------------
|
||||||
|
|
||||||
|
// called during the program initialization, returning FALSE from here
|
||||||
|
// prevents the program from continuing - it's a good place to create
|
||||||
|
// the top level program window and return TRUE.
|
||||||
|
//
|
||||||
|
// Override: always.
|
||||||
|
virtual bool OnInit() { return FALSE; };
|
||||||
|
|
||||||
|
// a platform-dependent version of OnInit(): the code here is likely to
|
||||||
|
// depend on the toolkit. default version does nothing.
|
||||||
|
//
|
||||||
|
// Override: rarely.
|
||||||
|
virtual bool OnInitGui() { return TRUE; }
|
||||||
|
|
||||||
|
// called to start program execution - the default version just enters
|
||||||
|
// the main GUI loop in which events are received and processed until
|
||||||
|
// the last window is not deleted (if GetExitOnFrameDelete) or
|
||||||
|
// ExitMainLoop() is called.
|
||||||
|
//
|
||||||
|
// Override: rarely.
|
||||||
|
virtual int OnRun() { return MainLoop(); };
|
||||||
|
|
||||||
|
// called after the main loop termination. This is a good place for
|
||||||
|
// cleaning up (it may be too late in dtor) and is also useful if you
|
||||||
|
// want to return some non-default exit code - this is just the return
|
||||||
|
// value of this method.
|
||||||
|
//
|
||||||
|
// Override: often.
|
||||||
|
virtual int OnExit() { return 0; }
|
||||||
|
|
||||||
|
// called when a fatal exception occurs, this function should take care
|
||||||
|
// not to do anything which might provoke a nested exception! It may be
|
||||||
|
// overridden if you wish to react somehow in non-default way (core
|
||||||
|
// dump under Unix, application crash under Windows) to fatal program
|
||||||
|
// errors, however extreme care should be taken if you don't want this
|
||||||
|
// function to crash.
|
||||||
|
//
|
||||||
|
// Override: rarely.
|
||||||
|
virtual void OnFatalException() { }
|
||||||
|
|
||||||
|
// the worker functions - usually not used directly by the user code
|
||||||
|
// -----------------------------------------------------------------
|
||||||
|
|
||||||
|
// execute the main GUI loop, the function returns when the loop ends
|
||||||
|
virtual int MainLoop() = 0;
|
||||||
|
|
||||||
|
// exit the main GUI loop during the next iteration (i.e. it does not
|
||||||
|
// stop the program immediately!)
|
||||||
|
virtual void ExitMainLoop() = 0;
|
||||||
|
|
||||||
|
// returns TRUE if the program is initialized
|
||||||
|
virtual bool Initialized() = 0;
|
||||||
|
|
||||||
|
// returns TRUE if there are unprocessed events in the event queue
|
||||||
|
virtual bool Pending() = 0;
|
||||||
|
|
||||||
|
// process the first event in the event queue (blocks until an event
|
||||||
|
// apperas if there are none currently)
|
||||||
|
virtual void Dispatch() = 0;
|
||||||
|
|
||||||
|
// application info: name, description, vendor
|
||||||
|
// -------------------------------------------
|
||||||
|
|
||||||
|
// NB: all these should be set by the application itself, there are no
|
||||||
|
// reasonable default except for the application name which is taken to
|
||||||
|
// be argv[0]
|
||||||
|
|
||||||
|
// set/get the application name
|
||||||
|
wxString GetAppName() const
|
||||||
|
{
|
||||||
|
if ( !m_appName )
|
||||||
|
return m_className;
|
||||||
|
else
|
||||||
|
return m_appName;
|
||||||
|
}
|
||||||
|
void SetAppName(const wxString& name) { m_appName = name; }
|
||||||
|
|
||||||
|
// set/get the app class name
|
||||||
|
wxString GetClassName() const { return m_className; }
|
||||||
|
void SetClassName(const wxString& name) { m_className = name; }
|
||||||
|
|
||||||
|
// set/get the vendor name
|
||||||
|
const wxString& GetVendorName() const { return m_vendorName; }
|
||||||
|
void SetVendorName(const wxString& name) { m_vendorName = name; }
|
||||||
|
|
||||||
|
// top level window functions
|
||||||
|
// --------------------------
|
||||||
|
|
||||||
|
// set the "main" top level window
|
||||||
|
void SetTopWindow(wxWindow *win) { m_topWindow = win; }
|
||||||
|
|
||||||
|
// return the "main" top level window (if it hadn't been set previously
|
||||||
|
// with SetTopWindow(), will return just some top level window and, if
|
||||||
|
// there are none, will return NULL)
|
||||||
|
wxWindow *GetTopWindow() const
|
||||||
|
{
|
||||||
|
if (m_topWindow)
|
||||||
|
return m_topWindow;
|
||||||
|
else if (wxTopLevelWindows.GetCount() > 0)
|
||||||
|
return wxTopLevelWindows.GetFirst()->GetData();
|
||||||
|
else
|
||||||
|
return (wxWindow *)NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// control the exit behaviour: by default, the program will exit the
|
||||||
|
// main loop (and so, usually, terminate) when the last top-level
|
||||||
|
// program window is deleted. Beware that if you disabel this (with
|
||||||
|
// SetExitOnFrameDelete(FALSE)), you'll have to call ExitMainLoop()
|
||||||
|
// explicitly from somewhere.
|
||||||
|
void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; }
|
||||||
|
bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; }
|
||||||
|
|
||||||
|
// miscellaneous customization functions
|
||||||
|
// -------------------------------------
|
||||||
|
|
||||||
|
#if wxUSE_LOG
|
||||||
|
// override this function to create default log target of arbitrary
|
||||||
|
// user-defined class (default implementation creates a wxLogGui
|
||||||
|
// object) - this log object is used by default by all wxLogXXX()
|
||||||
|
// functions.
|
||||||
|
virtual wxLog *CreateLogTarget() { return new wxLogGui; }
|
||||||
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
|
|
||||||
|
// get the standard icon used by wxWin dialogs - this allows the user
|
||||||
|
// to customize the standard dialogs. The 'which' parameter is one of
|
||||||
|
// wxICON_XXX values
|
||||||
|
virtual wxIcon GetStdIcon(int which) const = 0;
|
||||||
|
|
||||||
|
// VZ: what does this do exactly?
|
||||||
|
void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
|
||||||
|
bool GetWantDebugOutput() const { return m_wantDebugOutput; }
|
||||||
|
|
||||||
|
// set/get printing mode: see wxPRINT_XXX constants.
|
||||||
|
//
|
||||||
|
// default behaviour is the normal one for Unix: always use PostScript
|
||||||
|
// printing.
|
||||||
|
virtual void SetPrintMode(int WXUNUSED(mode)) { }
|
||||||
|
int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }
|
||||||
|
|
||||||
|
// implementation only from now on
|
||||||
|
// -------------------------------
|
||||||
|
|
||||||
|
// helpers for dynamic wxApp construction
|
||||||
|
static void SetInitializerFunction(wxAppInitializerFunction fn)
|
||||||
|
{ m_appInitFn = fn; }
|
||||||
|
static wxAppInitializerFunction GetInitializerFunction()
|
||||||
|
{ return m_appInitFn; }
|
||||||
|
|
||||||
|
// access to the command line arguments
|
||||||
|
int argc;
|
||||||
|
char **argv;
|
||||||
|
|
||||||
|
//private:
|
||||||
|
protected:
|
||||||
|
// function used for dynamic wxApp creation
|
||||||
|
static wxAppInitializerFunction m_appInitFn;
|
||||||
|
|
||||||
|
// application info (must be set from the user code)
|
||||||
|
wxString m_vendorName, // vendor name (ACME Inc)
|
||||||
|
m_appName, // app name
|
||||||
|
m_className; // class name
|
||||||
|
|
||||||
|
// if TRUE, exit the main loop when the last top level window is deleted
|
||||||
|
bool m_exitOnFrameDelete;
|
||||||
|
|
||||||
|
// TRUE if the application wants to get debug output
|
||||||
|
bool m_wantDebugOutput;
|
||||||
|
|
||||||
|
// the main top level window - may be NULL
|
||||||
|
wxWindow *m_topWindow;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
// now include the declaration of the real class
|
||||||
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
#if defined(__WXMSW__)
|
#if defined(__WXMSW__)
|
||||||
#include "wx/msw/app.h"
|
#include "wx/msw/app.h"
|
||||||
#elif defined(__WXMOTIF__)
|
#elif defined(__WXMOTIF__)
|
||||||
#include "wx/motif/app.h"
|
#include "wx/motif/app.h"
|
||||||
#elif defined(__WXQT__)
|
#elif defined(__WXQT__)
|
||||||
#include "wx/qt/app.h"
|
#include "wx/qt/app.h"
|
||||||
#elif defined(__WXGTK__)
|
#elif defined(__WXGTK__)
|
||||||
#include "wx/gtk/app.h"
|
#include "wx/gtk/app.h"
|
||||||
#elif defined(__WXMAC__)
|
#elif defined(__WXMAC__)
|
||||||
#include "wx/mac/app.h"
|
#include "wx/mac/app.h"
|
||||||
#elif defined(__WXSTUBS__)
|
#elif defined(__WXSTUBS__)
|
||||||
#include "wx/stubs/app.h"
|
#include "wx/stubs/app.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Having a global instance of this class allows
|
// ----------------------------------------------------------------------------
|
||||||
// wxApp to be aware of the app creator function.
|
// macros for dynamic creation of the application object
|
||||||
// wxApp can then call this function to create a new
|
// ----------------------------------------------------------------------------
|
||||||
// app object. Convoluted, but necessary.
|
|
||||||
|
// Having a global instance of this class allows wxApp to be aware of the app
|
||||||
|
// creator function. wxApp can then call this function to create a new app
|
||||||
|
// object. Convoluted, but necessary.
|
||||||
|
|
||||||
class WXDLLEXPORT wxAppInitializer
|
class WXDLLEXPORT wxAppInitializer
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxAppInitializer(wxAppInitializerFunction fn)
|
wxAppInitializer(wxAppInitializerFunction fn)
|
||||||
{
|
{ wxApp::SetInitializerFunction(fn); }
|
||||||
wxApp::SetInitializerFunction(fn);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// Here's a macro you can use if your compiler
|
// Here's a macro you can use if your compiler really, really wants main() to
|
||||||
// really, really wants main() to be in your main program
|
// be in your main program (e.g. hello.cpp). Now IMPLEMENT_APP should add this
|
||||||
// (e.g. hello.cpp).
|
// code if required.
|
||||||
// Now IMPLEMENT_APP should add this code if required.
|
|
||||||
|
|
||||||
#if defined(__AIX__) || defined(__HPUX__)
|
#if defined(__AIX__) || defined(__HPUX__)
|
||||||
#define IMPLEMENT_WXWIN_MAIN \
|
#define IMPLEMENT_WXWIN_MAIN \
|
||||||
extern int wxEntry( int argc, char *argv[] ); \
|
extern int wxEntry( int argc, char *argv[] ); \
|
||||||
int main(int argc, char *argv[]) { return wxEntry(argc, argv); }
|
int main(int argc, char *argv[]) { return wxEntry(argc, argv); }
|
||||||
|
|
||||||
#elif defined(__WXMSW__) && defined(WXUSINGDLL)
|
#elif defined(__WXMSW__) && defined(WXUSINGDLL)
|
||||||
|
// NT defines APIENTRY, 3.x not
|
||||||
|
#if !defined(WXAPIENTRY)
|
||||||
|
#ifdef __WATCOMC__
|
||||||
|
#define WXAPIENTRY PASCAL
|
||||||
|
#else
|
||||||
|
#define WXAPIENTRY FAR PASCAL
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
// NT defines APIENTRY, 3.x not
|
#define IMPLEMENT_WXWIN_MAIN \
|
||||||
#if !defined(WXAPIENTRY)
|
int WXAPIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,\
|
||||||
# ifdef __WATCOMC__
|
|
||||||
# define WXAPIENTRY PASCAL
|
|
||||||
# else
|
|
||||||
# define WXAPIENTRY FAR PASCAL
|
|
||||||
# endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define IMPLEMENT_WXWIN_MAIN \
|
|
||||||
int WXAPIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,\
|
|
||||||
LPSTR m_lpCmdLine, int nCmdShow )\
|
LPSTR m_lpCmdLine, int nCmdShow )\
|
||||||
{\
|
{\
|
||||||
return wxEntry((WXHINSTANCE) hInstance, (WXHINSTANCE) hPrevInstance,\
|
return wxEntry((WXHINSTANCE) hInstance, \
|
||||||
|
(WXHINSTANCE) hPrevInstance,\
|
||||||
m_lpCmdLine, nCmdShow);\
|
m_lpCmdLine, nCmdShow);\
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define IMPLEMENT_WXWIN_MAIN
|
#define IMPLEMENT_WXWIN_MAIN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// use this macro exactly once, the argument is the name of the wxApp-derived
|
||||||
|
// class which is the class of your application
|
||||||
#define IMPLEMENT_APP(appname) \
|
#define IMPLEMENT_APP(appname) \
|
||||||
wxApp *wxCreateApp(void) { return new appname; } \
|
wxApp *wxCreateApp() { return new appname; } \
|
||||||
wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \
|
wxAppInitializer wxTheAppInitializer((wxAppInitializerFunction) wxCreateApp); \
|
||||||
appname& wxGetApp(void) { return *(appname *)wxTheApp; } \
|
appname& wxGetApp() { return *(appname *)wxTheApp; } \
|
||||||
IMPLEMENT_WXWIN_MAIN
|
IMPLEMENT_WXWIN_MAIN
|
||||||
|
|
||||||
#define DECLARE_APP(appname) \
|
#define DECLARE_APP(appname) extern appname& wxGetApp();
|
||||||
extern appname& wxGetApp(void) ;
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
// _WX_APP_H_BASE_
|
// _WX_APP_H_BASE_
|
||||||
|
@@ -50,72 +50,34 @@ bool wxYield(void);
|
|||||||
// wxApp
|
// wxApp
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
class wxApp: public wxEvtHandler
|
class wxApp: public wxAppBase
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS(wxApp)
|
DECLARE_DYNAMIC_CLASS(wxApp)
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
|
public:
|
||||||
wxApp();
|
wxApp();
|
||||||
~wxApp();
|
~wxApp();
|
||||||
|
|
||||||
static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; }
|
/* override for altering the way wxGTK intializes the GUI
|
||||||
static wxAppInitializerFunction GetInitializerFunction() { return m_appInitFn; }
|
* (palette/visual/colorcube). under wxMSW, OnInitGui() does nothing by
|
||||||
|
* default. when overriding this method, the code in it is likely to be
|
||||||
/* override for altering the way wxGTK intializes the GUI (palette/visual/colorcube).
|
* platform dependent, otherwise use OnInit(). */
|
||||||
* under wxMSW, OnInitGui() does nothing by default. when overriding this method,
|
|
||||||
* the code in it is likely to be platform dependent, otherwise use OnInit(). */
|
|
||||||
virtual bool OnInitGui();
|
virtual bool OnInitGui();
|
||||||
|
|
||||||
/* override to create top level frame, display splash screen etc. */
|
// override base class (pure) virtuals
|
||||||
virtual bool OnInit() { return FALSE; }
|
|
||||||
|
|
||||||
virtual int OnRun() { return MainLoop(); }
|
|
||||||
virtual int OnExit() { return 0; }
|
|
||||||
|
|
||||||
wxWindow *GetTopWindow();
|
|
||||||
void SetTopWindow( wxWindow *win );
|
|
||||||
|
|
||||||
virtual int MainLoop();
|
virtual int MainLoop();
|
||||||
void ExitMainLoop();
|
virtual void ExitMainLoop();
|
||||||
bool Initialized();
|
virtual bool Initialized();
|
||||||
virtual bool Pending();
|
virtual bool Pending();
|
||||||
virtual void Dispatch();
|
virtual void Dispatch();
|
||||||
|
|
||||||
/** Returns the standard icons for the msg dialogs, implemented in
|
|
||||||
src/generic/msgdlgg.cpp and src/gtk/app.cpp. */
|
|
||||||
virtual wxIcon GetStdIcon(int which) const;
|
virtual wxIcon GetStdIcon(int which) const;
|
||||||
inline void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
|
|
||||||
inline bool GetWantDebugOutput() { return m_wantDebugOutput; }
|
|
||||||
|
|
||||||
|
// implementation only from now on
|
||||||
void OnIdle( wxIdleEvent &event );
|
void OnIdle( wxIdleEvent &event );
|
||||||
bool SendIdleEvents();
|
bool SendIdleEvents();
|
||||||
bool SendIdleEvents( wxWindow* win );
|
bool SendIdleEvents( wxWindow* win );
|
||||||
|
|
||||||
inline wxString GetAppName() const
|
|
||||||
{ if (m_appName != "") return m_appName; else return m_className; }
|
|
||||||
inline void SetAppName( const wxString& name ) { m_appName = name; }
|
|
||||||
|
|
||||||
inline wxString GetClassName() const { return m_className; }
|
|
||||||
inline void SetClassName( const wxString& name ) { m_className = name; }
|
|
||||||
|
|
||||||
const wxString& GetVendorName() const { return m_vendorName; }
|
|
||||||
void SetVendorName( const wxString& name ) { m_vendorName = name; }
|
|
||||||
|
|
||||||
inline void SetExitOnFrameDelete( bool flag ) { m_exitOnFrameDelete = flag; }
|
|
||||||
inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; }
|
|
||||||
|
|
||||||
void SetPrintMode( int WXUNUSED(mode) ) {}
|
|
||||||
int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }
|
|
||||||
|
|
||||||
#if wxUSE_LOG
|
|
||||||
/* override this function to create default log target of arbitrary
|
|
||||||
* user-defined classv (default implementation creates a wxLogGui object) */
|
|
||||||
virtual wxLog *CreateLogTarget();
|
|
||||||
#endif // wxUSE_LOG
|
|
||||||
|
|
||||||
// implementation
|
|
||||||
|
|
||||||
static bool Initialize();
|
static bool Initialize();
|
||||||
static bool InitialzeVisual();
|
static bool InitialzeVisual();
|
||||||
static void CleanUp();
|
static void CleanUp();
|
||||||
@@ -126,14 +88,11 @@ class wxApp: public wxEvtHandler
|
|||||||
#endif
|
#endif
|
||||||
void DeletePendingObjects();
|
void DeletePendingObjects();
|
||||||
|
|
||||||
/// This can be used to suppress the generation of Idle events.
|
// This can be used to suppress the generation of Idle events.
|
||||||
inline void SuppressIdleEvents(bool arg = TRUE) { m_suppressIdleEvents = arg; }
|
void SuppressIdleEvents(bool arg = TRUE) { m_suppressIdleEvents = arg; }
|
||||||
inline bool GetSuppressIdleEvents() const { return m_suppressIdleEvents; }
|
bool GetSuppressIdleEvents() const { return m_suppressIdleEvents; }
|
||||||
|
|
||||||
bool m_initialized;
|
bool m_initialized;
|
||||||
bool m_exitOnFrameDelete;
|
|
||||||
bool m_wantDebugOutput;
|
|
||||||
wxWindow *m_topWindow;
|
|
||||||
|
|
||||||
gint m_idleTag;
|
gint m_idleTag;
|
||||||
#if wxUSE_THREADS
|
#if wxUSE_THREADS
|
||||||
@@ -141,17 +100,10 @@ class wxApp: public wxEvtHandler
|
|||||||
#endif
|
#endif
|
||||||
unsigned char *m_colorCube;
|
unsigned char *m_colorCube;
|
||||||
|
|
||||||
int argc;
|
private:
|
||||||
char **argv;
|
|
||||||
|
|
||||||
wxString m_vendorName;
|
|
||||||
wxString m_appName;
|
|
||||||
wxString m_className;
|
|
||||||
|
|
||||||
static wxAppInitializerFunction m_appInitFn;
|
|
||||||
private:
|
|
||||||
/// Set to TRUE while we are in wxYield().
|
/// Set to TRUE while we are in wxYield().
|
||||||
bool m_suppressIdleEvents;
|
bool m_suppressIdleEvents;
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -50,72 +50,34 @@ bool wxYield(void);
|
|||||||
// wxApp
|
// wxApp
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
class wxApp: public wxEvtHandler
|
class wxApp: public wxAppBase
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS(wxApp)
|
DECLARE_DYNAMIC_CLASS(wxApp)
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
|
public:
|
||||||
wxApp();
|
wxApp();
|
||||||
~wxApp();
|
~wxApp();
|
||||||
|
|
||||||
static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; }
|
/* override for altering the way wxGTK intializes the GUI
|
||||||
static wxAppInitializerFunction GetInitializerFunction() { return m_appInitFn; }
|
* (palette/visual/colorcube). under wxMSW, OnInitGui() does nothing by
|
||||||
|
* default. when overriding this method, the code in it is likely to be
|
||||||
/* override for altering the way wxGTK intializes the GUI (palette/visual/colorcube).
|
* platform dependent, otherwise use OnInit(). */
|
||||||
* under wxMSW, OnInitGui() does nothing by default. when overriding this method,
|
|
||||||
* the code in it is likely to be platform dependent, otherwise use OnInit(). */
|
|
||||||
virtual bool OnInitGui();
|
virtual bool OnInitGui();
|
||||||
|
|
||||||
/* override to create top level frame, display splash screen etc. */
|
// override base class (pure) virtuals
|
||||||
virtual bool OnInit() { return FALSE; }
|
|
||||||
|
|
||||||
virtual int OnRun() { return MainLoop(); }
|
|
||||||
virtual int OnExit() { return 0; }
|
|
||||||
|
|
||||||
wxWindow *GetTopWindow();
|
|
||||||
void SetTopWindow( wxWindow *win );
|
|
||||||
|
|
||||||
virtual int MainLoop();
|
virtual int MainLoop();
|
||||||
void ExitMainLoop();
|
virtual void ExitMainLoop();
|
||||||
bool Initialized();
|
virtual bool Initialized();
|
||||||
virtual bool Pending();
|
virtual bool Pending();
|
||||||
virtual void Dispatch();
|
virtual void Dispatch();
|
||||||
|
|
||||||
/** Returns the standard icons for the msg dialogs, implemented in
|
|
||||||
src/generic/msgdlgg.cpp and src/gtk/app.cpp. */
|
|
||||||
virtual wxIcon GetStdIcon(int which) const;
|
virtual wxIcon GetStdIcon(int which) const;
|
||||||
inline void SetWantDebugOutput( bool flag ) { m_wantDebugOutput = flag; }
|
|
||||||
inline bool GetWantDebugOutput() { return m_wantDebugOutput; }
|
|
||||||
|
|
||||||
|
// implementation only from now on
|
||||||
void OnIdle( wxIdleEvent &event );
|
void OnIdle( wxIdleEvent &event );
|
||||||
bool SendIdleEvents();
|
bool SendIdleEvents();
|
||||||
bool SendIdleEvents( wxWindow* win );
|
bool SendIdleEvents( wxWindow* win );
|
||||||
|
|
||||||
inline wxString GetAppName() const
|
|
||||||
{ if (m_appName != "") return m_appName; else return m_className; }
|
|
||||||
inline void SetAppName( const wxString& name ) { m_appName = name; }
|
|
||||||
|
|
||||||
inline wxString GetClassName() const { return m_className; }
|
|
||||||
inline void SetClassName( const wxString& name ) { m_className = name; }
|
|
||||||
|
|
||||||
const wxString& GetVendorName() const { return m_vendorName; }
|
|
||||||
void SetVendorName( const wxString& name ) { m_vendorName = name; }
|
|
||||||
|
|
||||||
inline void SetExitOnFrameDelete( bool flag ) { m_exitOnFrameDelete = flag; }
|
|
||||||
inline bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; }
|
|
||||||
|
|
||||||
void SetPrintMode( int WXUNUSED(mode) ) {}
|
|
||||||
int GetPrintMode() const { return wxPRINT_POSTSCRIPT; }
|
|
||||||
|
|
||||||
#if wxUSE_LOG
|
|
||||||
/* override this function to create default log target of arbitrary
|
|
||||||
* user-defined classv (default implementation creates a wxLogGui object) */
|
|
||||||
virtual wxLog *CreateLogTarget();
|
|
||||||
#endif // wxUSE_LOG
|
|
||||||
|
|
||||||
// implementation
|
|
||||||
|
|
||||||
static bool Initialize();
|
static bool Initialize();
|
||||||
static bool InitialzeVisual();
|
static bool InitialzeVisual();
|
||||||
static void CleanUp();
|
static void CleanUp();
|
||||||
@@ -126,14 +88,11 @@ class wxApp: public wxEvtHandler
|
|||||||
#endif
|
#endif
|
||||||
void DeletePendingObjects();
|
void DeletePendingObjects();
|
||||||
|
|
||||||
/// This can be used to suppress the generation of Idle events.
|
// This can be used to suppress the generation of Idle events.
|
||||||
inline void SuppressIdleEvents(bool arg = TRUE) { m_suppressIdleEvents = arg; }
|
void SuppressIdleEvents(bool arg = TRUE) { m_suppressIdleEvents = arg; }
|
||||||
inline bool GetSuppressIdleEvents() const { return m_suppressIdleEvents; }
|
bool GetSuppressIdleEvents() const { return m_suppressIdleEvents; }
|
||||||
|
|
||||||
bool m_initialized;
|
bool m_initialized;
|
||||||
bool m_exitOnFrameDelete;
|
|
||||||
bool m_wantDebugOutput;
|
|
||||||
wxWindow *m_topWindow;
|
|
||||||
|
|
||||||
gint m_idleTag;
|
gint m_idleTag;
|
||||||
#if wxUSE_THREADS
|
#if wxUSE_THREADS
|
||||||
@@ -141,17 +100,10 @@ class wxApp: public wxEvtHandler
|
|||||||
#endif
|
#endif
|
||||||
unsigned char *m_colorCube;
|
unsigned char *m_colorCube;
|
||||||
|
|
||||||
int argc;
|
private:
|
||||||
char **argv;
|
|
||||||
|
|
||||||
wxString m_vendorName;
|
|
||||||
wxString m_appName;
|
|
||||||
wxString m_className;
|
|
||||||
|
|
||||||
static wxAppInitializerFunction m_appInitFn;
|
|
||||||
private:
|
|
||||||
/// Set to TRUE while we are in wxYield().
|
/// Set to TRUE while we are in wxYield().
|
||||||
bool m_suppressIdleEvents;
|
bool m_suppressIdleEvents;
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -27,9 +27,6 @@ class WXDLLEXPORT wxApp ;
|
|||||||
class WXDLLEXPORT wxKeyEvent;
|
class WXDLLEXPORT wxKeyEvent;
|
||||||
class WXDLLEXPORT wxLog;
|
class WXDLLEXPORT wxLog;
|
||||||
|
|
||||||
static const int wxPRINT_WINDOWS = 1;
|
|
||||||
static const int wxPRINT_POSTSCRIPT = 2;
|
|
||||||
|
|
||||||
WXDLLEXPORT_DATA(extern wxApp*) wxTheApp;
|
WXDLLEXPORT_DATA(extern wxApp*) wxTheApp;
|
||||||
|
|
||||||
// Force an exit from main loop
|
// Force an exit from main loop
|
||||||
@@ -40,67 +37,31 @@ bool WXDLLEXPORT wxYield();
|
|||||||
|
|
||||||
// Represents the application. Derive OnInit and declare
|
// Represents the application. Derive OnInit and declare
|
||||||
// a new App object to start application
|
// a new App object to start application
|
||||||
class WXDLLEXPORT wxApp: public wxEvtHandler
|
class WXDLLEXPORT wxApp : public wxAppBase
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS(wxApp)
|
DECLARE_DYNAMIC_CLASS(wxApp)
|
||||||
|
|
||||||
|
public:
|
||||||
wxApp();
|
wxApp();
|
||||||
~wxApp();
|
virtual ~wxApp();
|
||||||
|
|
||||||
static void SetInitializerFunction(wxAppInitializerFunction fn) { m_appInitFn = fn; }
|
|
||||||
static wxAppInitializerFunction GetInitializerFunction() { return m_appInitFn; }
|
|
||||||
|
|
||||||
|
// override base class (pure) virtuals
|
||||||
virtual int MainLoop();
|
virtual int MainLoop();
|
||||||
void ExitMainLoop();
|
virtual void ExitMainLoop();
|
||||||
bool Initialized();
|
virtual bool Initialized();
|
||||||
virtual bool Pending() ;
|
virtual bool Pending() ;
|
||||||
virtual void Dispatch() ;
|
virtual void Dispatch() ;
|
||||||
|
|
||||||
|
virtual wxIcon GetStdIcon(int which) const;
|
||||||
|
|
||||||
|
virtual void SetPrintMode(int mode) { m_printMode = mode; }
|
||||||
|
virtual int GetPrintMode() const { return m_printMode; }
|
||||||
|
|
||||||
|
// implementation only
|
||||||
void OnIdle(wxIdleEvent& event);
|
void OnIdle(wxIdleEvent& event);
|
||||||
void OnEndSession(wxCloseEvent& event);
|
void OnEndSession(wxCloseEvent& event);
|
||||||
void OnQueryEndSession(wxCloseEvent& event);
|
void OnQueryEndSession(wxCloseEvent& event);
|
||||||
|
|
||||||
// Generic
|
|
||||||
virtual bool OnInit() { return FALSE; };
|
|
||||||
|
|
||||||
// No specific tasks to do here.
|
|
||||||
virtual bool OnInitGui() { return TRUE; }
|
|
||||||
|
|
||||||
// Called to set off the main loop
|
|
||||||
virtual int OnRun() { return MainLoop(); };
|
|
||||||
virtual int OnExit() { return 0; }
|
|
||||||
/** Returns the standard icons for the msg dialogs, implemented in
|
|
||||||
src/generic/msgdlgg.cpp and src/gtk/app.cpp. */
|
|
||||||
virtual wxIcon GetStdIcon(int which) const;
|
|
||||||
|
|
||||||
// called when a fatal exception occurs, this function should take care not
|
|
||||||
// to do anything which might provoke a nested exception!
|
|
||||||
virtual void OnFatalException() { }
|
|
||||||
|
|
||||||
void SetPrintMode(int mode) { m_printMode = mode; }
|
|
||||||
int GetPrintMode() const { return m_printMode; }
|
|
||||||
|
|
||||||
void SetExitOnFrameDelete(bool flag) { m_exitOnFrameDelete = flag; }
|
|
||||||
bool GetExitOnFrameDelete() const { return m_exitOnFrameDelete; }
|
|
||||||
|
|
||||||
const wxString& GetAppName() const {
|
|
||||||
if (m_appName != _T(""))
|
|
||||||
return m_appName;
|
|
||||||
else return m_className;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SetAppName(const wxString& name) { m_appName = name; };
|
|
||||||
wxString GetClassName() const { return m_className; }
|
|
||||||
void SetClassName(const wxString& name) { m_className = name; }
|
|
||||||
|
|
||||||
void SetVendorName(const wxString& vendorName) { m_vendorName = vendorName; }
|
|
||||||
const wxString& GetVendorName() const { return m_vendorName; }
|
|
||||||
|
|
||||||
wxWindow *GetTopWindow() const ;
|
|
||||||
void SetTopWindow(wxWindow *win) { m_topWindow = win; }
|
|
||||||
|
|
||||||
void SetWantDebugOutput(bool flag) { m_wantDebugOutput = flag; }
|
|
||||||
bool GetWantDebugOutput() { return m_wantDebugOutput; }
|
|
||||||
|
|
||||||
// Send idle event to all top-level windows.
|
// Send idle event to all top-level windows.
|
||||||
// Returns TRUE if more idle time is requested.
|
// Returns TRUE if more idle time is requested.
|
||||||
bool SendIdleEvents();
|
bool SendIdleEvents();
|
||||||
@@ -112,27 +73,12 @@ class WXDLLEXPORT wxApp: public wxEvtHandler
|
|||||||
void SetAuto3D(bool flag) { m_auto3D = flag; }
|
void SetAuto3D(bool flag) { m_auto3D = flag; }
|
||||||
bool GetAuto3D() const { return m_auto3D; }
|
bool GetAuto3D() const { return m_auto3D; }
|
||||||
|
|
||||||
// Creates a log object
|
|
||||||
virtual wxLog* CreateLogTarget();
|
|
||||||
|
|
||||||
public:
|
|
||||||
int argc;
|
|
||||||
wxChar ** argv;
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
bool m_wantDebugOutput ;
|
|
||||||
wxString m_className;
|
|
||||||
wxString m_appName,
|
|
||||||
m_vendorName;
|
|
||||||
wxWindow * m_topWindow;
|
|
||||||
bool m_exitOnFrameDelete;
|
|
||||||
bool m_showOnInit;
|
bool m_showOnInit;
|
||||||
int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT
|
int m_printMode; // wxPRINT_WINDOWS, wxPRINT_POSTSCRIPT
|
||||||
bool m_auto3D ; // Always use 3D controls, except
|
bool m_auto3D ; // Always use 3D controls, except where overriden
|
||||||
// where overriden
|
|
||||||
static wxAppInitializerFunction m_appInitFn;
|
|
||||||
|
|
||||||
/* Windows-specific wxApp definitions */
|
/* Windows-specific wxApp definitions */
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@@ -158,7 +104,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
bool m_keepGoing ;
|
bool m_keepGoing ;
|
||||||
|
|
||||||
DECLARE_EVENT_TABLE()
|
DECLARE_EVENT_TABLE()
|
||||||
};
|
};
|
||||||
|
|
||||||
#if !defined(_WINDLL) || (defined(_WINDLL) && defined(WXMAKINGDLL))
|
#if !defined(_WINDLL) || (defined(_WINDLL) && defined(WXMAKINGDLL))
|
||||||
|
@@ -176,10 +176,11 @@ void *wxLibrary::GetSymbol(const wxString& symbname)
|
|||||||
wxDllType
|
wxDllType
|
||||||
wxDllLoader::GetProgramHandle(void)
|
wxDllLoader::GetProgramHandle(void)
|
||||||
{
|
{
|
||||||
#ifdef __WXGTK__
|
#ifdef __UNIX__
|
||||||
return dlopen(NULL, RTLD_NOW/*RTLD_LAZY*/);
|
return dlopen(NULL, RTLD_NOW/*RTLD_LAZY*/);
|
||||||
#else
|
#else
|
||||||
#pragma warning "Not implemented, please fix!"
|
wxFAIL_MSG(_("This method is not implemented under Windows"));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@@ -45,8 +45,6 @@
|
|||||||
// icons
|
// icons
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if !USE_SHARED_LIBRARY
|
#if !USE_SHARED_LIBRARY
|
||||||
BEGIN_EVENT_TABLE(wxGenericMessageDialog, wxDialog)
|
BEGIN_EVENT_TABLE(wxGenericMessageDialog, wxDialog)
|
||||||
EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes)
|
EVT_BUTTON(wxID_YES, wxGenericMessageDialog::OnYes)
|
||||||
@@ -57,46 +55,6 @@ END_EVENT_TABLE()
|
|||||||
IMPLEMENT_CLASS(wxGenericMessageDialog, wxDialog)
|
IMPLEMENT_CLASS(wxGenericMessageDialog, wxDialog)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef _WXGTK__
|
|
||||||
# include "wx/gtk/info.xpm"
|
|
||||||
# include "wx/gtk/error.xpm"
|
|
||||||
# include "wx/gtk/question.xpm"
|
|
||||||
# include "wx/gtk/warning.xpm"
|
|
||||||
#else
|
|
||||||
// MSW icons are in the ressources, for all other platforms - in XPM files
|
|
||||||
# ifndef __WXMSW__
|
|
||||||
# include "wx/generic/info.xpm"
|
|
||||||
# include "wx/generic/question.xpm"
|
|
||||||
# include "wx/generic/warning.xpm"
|
|
||||||
# include "wx/generic/error.xpm"
|
|
||||||
# endif // __WXMSW__
|
|
||||||
#endif
|
|
||||||
|
|
||||||
wxIcon
|
|
||||||
wxApp::GetStdIcon(int which) const
|
|
||||||
{
|
|
||||||
switch(which)
|
|
||||||
{
|
|
||||||
case wxICON_INFORMATION:
|
|
||||||
return wxIcon(info_xpm);
|
|
||||||
break;
|
|
||||||
case wxICON_HAND:
|
|
||||||
return wxIcon(error_xpm);
|
|
||||||
break;
|
|
||||||
case wxICON_QUESTION:
|
|
||||||
return wxIcon(question_xpm);
|
|
||||||
break;
|
|
||||||
case wxICON_EXCLAMATION:
|
|
||||||
return wxIcon(warning_xpm);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
wxFAIL_MSG("requested non existent standard icon");
|
|
||||||
return wxIcon(error_xpm);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent,
|
wxGenericMessageDialog::wxGenericMessageDialog( wxWindow *parent,
|
||||||
const wxString& message,
|
const wxString& message,
|
||||||
const wxString& caption,
|
const wxString& caption,
|
||||||
|
@@ -551,21 +551,6 @@ void wxApp::DeletePendingObjects()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxWindow *wxApp::GetTopWindow()
|
|
||||||
{
|
|
||||||
if (m_topWindow)
|
|
||||||
return m_topWindow;
|
|
||||||
else if (wxTopLevelWindows.GetCount() > 0)
|
|
||||||
return wxTopLevelWindows.GetFirst()->GetData();
|
|
||||||
else
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxApp::SetTopWindow( wxWindow *win )
|
|
||||||
{
|
|
||||||
m_topWindow = win;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxApp::Initialize()
|
bool wxApp::Initialize()
|
||||||
{
|
{
|
||||||
wxBuffer = new wxChar[BUFSIZ + 512];
|
wxBuffer = new wxChar[BUFSIZ + 512];
|
||||||
@@ -670,10 +655,6 @@ void wxApp::CleanUp()
|
|||||||
delete oldLog;
|
delete oldLog;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxLog *wxApp::CreateLogTarget()
|
|
||||||
{
|
|
||||||
return new wxLogGui;
|
|
||||||
}
|
|
||||||
#endif // wxUSE_LOG
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -779,10 +760,10 @@ int wxEntry( int argc, char *argv[] )
|
|||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
# include "wx/gtk/info.xpm"
|
#include "wx/gtk/info.xpm"
|
||||||
# include "wx/gtk/error.xpm"
|
#include "wx/gtk/error.xpm"
|
||||||
# include "wx/gtk/question.xpm"
|
#include "wx/gtk/question.xpm"
|
||||||
# include "wx/gtk/warning.xpm"
|
#include "wx/gtk/warning.xpm"
|
||||||
|
|
||||||
wxIcon
|
wxIcon
|
||||||
wxApp::GetStdIcon(int which) const
|
wxApp::GetStdIcon(int which) const
|
||||||
@@ -791,19 +772,18 @@ wxApp::GetStdIcon(int which) const
|
|||||||
{
|
{
|
||||||
case wxICON_INFORMATION:
|
case wxICON_INFORMATION:
|
||||||
return wxIcon(info_xpm);
|
return wxIcon(info_xpm);
|
||||||
break;
|
|
||||||
case wxICON_HAND:
|
|
||||||
return wxIcon(error_xpm);
|
|
||||||
break;
|
|
||||||
case wxICON_QUESTION:
|
case wxICON_QUESTION:
|
||||||
return wxIcon(question_xpm);
|
return wxIcon(question_xpm);
|
||||||
break;
|
|
||||||
case wxICON_EXCLAMATION:
|
case wxICON_EXCLAMATION:
|
||||||
return wxIcon(warning_xpm);
|
return wxIcon(warning_xpm);
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
wxFAIL_MSG("requested non existent standard icon");
|
wxFAIL_MSG("requested non existent standard icon");
|
||||||
|
// still fall through
|
||||||
|
|
||||||
|
case wxICON_HAND:
|
||||||
return wxIcon(error_xpm);
|
return wxIcon(error_xpm);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -551,21 +551,6 @@ void wxApp::DeletePendingObjects()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxWindow *wxApp::GetTopWindow()
|
|
||||||
{
|
|
||||||
if (m_topWindow)
|
|
||||||
return m_topWindow;
|
|
||||||
else if (wxTopLevelWindows.GetCount() > 0)
|
|
||||||
return wxTopLevelWindows.GetFirst()->GetData();
|
|
||||||
else
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxApp::SetTopWindow( wxWindow *win )
|
|
||||||
{
|
|
||||||
m_topWindow = win;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool wxApp::Initialize()
|
bool wxApp::Initialize()
|
||||||
{
|
{
|
||||||
wxBuffer = new wxChar[BUFSIZ + 512];
|
wxBuffer = new wxChar[BUFSIZ + 512];
|
||||||
@@ -670,10 +655,6 @@ void wxApp::CleanUp()
|
|||||||
delete oldLog;
|
delete oldLog;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxLog *wxApp::CreateLogTarget()
|
|
||||||
{
|
|
||||||
return new wxLogGui;
|
|
||||||
}
|
|
||||||
#endif // wxUSE_LOG
|
#endif // wxUSE_LOG
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@@ -779,10 +760,10 @@ int wxEntry( int argc, char *argv[] )
|
|||||||
return retValue;
|
return retValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
# include "wx/gtk/info.xpm"
|
#include "wx/gtk/info.xpm"
|
||||||
# include "wx/gtk/error.xpm"
|
#include "wx/gtk/error.xpm"
|
||||||
# include "wx/gtk/question.xpm"
|
#include "wx/gtk/question.xpm"
|
||||||
# include "wx/gtk/warning.xpm"
|
#include "wx/gtk/warning.xpm"
|
||||||
|
|
||||||
wxIcon
|
wxIcon
|
||||||
wxApp::GetStdIcon(int which) const
|
wxApp::GetStdIcon(int which) const
|
||||||
@@ -791,19 +772,18 @@ wxApp::GetStdIcon(int which) const
|
|||||||
{
|
{
|
||||||
case wxICON_INFORMATION:
|
case wxICON_INFORMATION:
|
||||||
return wxIcon(info_xpm);
|
return wxIcon(info_xpm);
|
||||||
break;
|
|
||||||
case wxICON_HAND:
|
|
||||||
return wxIcon(error_xpm);
|
|
||||||
break;
|
|
||||||
case wxICON_QUESTION:
|
case wxICON_QUESTION:
|
||||||
return wxIcon(question_xpm);
|
return wxIcon(question_xpm);
|
||||||
break;
|
|
||||||
case wxICON_EXCLAMATION:
|
case wxICON_EXCLAMATION:
|
||||||
return wxIcon(warning_xpm);
|
return wxIcon(warning_xpm);
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
wxFAIL_MSG("requested non existent standard icon");
|
wxFAIL_MSG("requested non existent standard icon");
|
||||||
|
// still fall through
|
||||||
|
|
||||||
|
case wxICON_HAND:
|
||||||
return wxIcon(error_xpm);
|
return wxIcon(error_xpm);
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1062,21 +1062,6 @@ void wxApp::OnQueryEndSession(wxCloseEvent& event)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
wxLog* wxApp::CreateLogTarget()
|
|
||||||
{
|
|
||||||
return new wxLogGui;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxWindow* wxApp::GetTopWindow() const
|
|
||||||
{
|
|
||||||
if (m_topWindow)
|
|
||||||
return m_topWindow;
|
|
||||||
else if (wxTopLevelWindows.GetCount() > 0)
|
|
||||||
return wxTopLevelWindows.GetFirst()->GetData();
|
|
||||||
else
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
int wxApp::GetComCtl32Version() const
|
int wxApp::GetComCtl32Version() const
|
||||||
{
|
{
|
||||||
// have we loaded COMCTL32 yet?
|
// have we loaded COMCTL32 yet?
|
||||||
@@ -1149,6 +1134,7 @@ bool wxYield()
|
|||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxIcon
|
wxIcon
|
||||||
wxApp::GetStdIcon(int which) const
|
wxApp::GetStdIcon(int which) const
|
||||||
{
|
{
|
||||||
@@ -1156,20 +1142,19 @@ wxApp::GetStdIcon(int which) const
|
|||||||
{
|
{
|
||||||
case wxICON_INFORMATION:
|
case wxICON_INFORMATION:
|
||||||
return wxIcon("wxICON_INFO");
|
return wxIcon("wxICON_INFO");
|
||||||
break;
|
|
||||||
case wxICON_HAND:
|
|
||||||
return wxIcon("wxICON_ERROR");
|
|
||||||
break;
|
|
||||||
case wxICON_QUESTION:
|
case wxICON_QUESTION:
|
||||||
return wxIcon("wxICON_QUESTION");
|
return wxIcon("wxICON_QUESTION");
|
||||||
break;
|
|
||||||
case wxICON_EXCLAMATION:
|
case wxICON_EXCLAMATION:
|
||||||
return wxIcon("wxICON_WARNING");
|
return wxIcon("wxICON_WARNING");
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
wxFAIL_MSG("requested non existent standard icon");
|
wxFAIL_MSG(_T("requested non existent standard icon"));
|
||||||
|
// still fall through
|
||||||
|
|
||||||
|
case wxICON_HAND:
|
||||||
return wxIcon("wxICON_ERROR");
|
return wxIcon("wxICON_ERROR");
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -323,15 +323,6 @@ void wxComboBox::DoSetSize(int x, int y,
|
|||||||
int sizeFlags)
|
int sizeFlags)
|
||||||
{
|
{
|
||||||
wxControl::DoSetSize(x, y, width, height, sizeFlags);
|
wxControl::DoSetSize(x, y, width, height, sizeFlags);
|
||||||
|
|
||||||
// VZ: for unknown (to me) reasons, if we don't do this, the combobox
|
|
||||||
// somehow is hidden by the static boxes, although static boxes do
|
|
||||||
// put themselves at the very end of Z-order.
|
|
||||||
if ( !::SetWindowPos(GetHwnd(), HWND_BOTTOM, 0, 0, 0, 0,
|
|
||||||
SWP_NOMOVE | SWP_NOSIZE) )
|
|
||||||
{
|
|
||||||
wxLogLastError(_T("SetWindowPos"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -117,6 +117,8 @@ void wxStaticBox::DoSetSize(int x, int y, int width, int height, int sizeFlags)
|
|||||||
{
|
{
|
||||||
wxControl::DoSetSize(x, y, width, height, sizeFlags);
|
wxControl::DoSetSize(x, y, width, height, sizeFlags);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
// the static box should always be on the bottom of the Z-order, otherwise
|
// the static box should always be on the bottom of the Z-order, otherwise
|
||||||
// it may hide controls which are positioned inside it
|
// it may hide controls which are positioned inside it
|
||||||
if ( !::SetWindowPos(GetHwnd(), HWND_TOP, 0, 0, 0, 0,
|
if ( !::SetWindowPos(GetHwnd(), HWND_TOP, 0, 0, 0, 0,
|
||||||
@@ -172,7 +174,7 @@ void wxStaticBox::OnEraseBackground(wxEraseEvent& event)
|
|||||||
// Alternatively, just make sure that wxStaticBox is always at the back! There are probably
|
// Alternatively, just make sure that wxStaticBox is always at the back! There are probably
|
||||||
// few other circumstances where it matters about child clipping. But what about painting onto
|
// few other circumstances where it matters about child clipping. But what about painting onto
|
||||||
// to panel, inside a groupbox? Doesn't appear, because the box wipes it out.
|
// to panel, inside a groupbox? Doesn't appear, because the box wipes it out.
|
||||||
wxWindow *parent = GetParent();
|
wxWindow *parent = 0; //GetParent();
|
||||||
if ( parent && parent->GetHWND() && (::GetWindowLong((HWND) parent->GetHWND(), GWL_STYLE) & WS_CLIPCHILDREN) )
|
if ( parent && parent->GetHWND() && (::GetWindowLong((HWND) parent->GetHWND(), GWL_STYLE) & WS_CLIPCHILDREN) )
|
||||||
{
|
{
|
||||||
// TODO: May in fact need to generate a paint event for inside this
|
// TODO: May in fact need to generate a paint event for inside this
|
||||||
@@ -196,7 +198,7 @@ void wxStaticBox::OnEraseBackground(wxEraseEvent& event)
|
|||||||
|
|
||||||
long wxStaticBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
|
long wxStaticBox::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
|
||||||
{
|
{
|
||||||
if ( 0 )//nMsg == WM_NCHITTEST)
|
if ( nMsg == WM_NCHITTEST)
|
||||||
{
|
{
|
||||||
int xPos = LOWORD(lParam); // horizontal position of cursor
|
int xPos = LOWORD(lParam); // horizontal position of cursor
|
||||||
int yPos = HIWORD(lParam); // vertical position of cursor
|
int yPos = HIWORD(lParam); // vertical position of cursor
|
||||||
|
Reference in New Issue
Block a user