fixes for the compilation warnings with Sun CC:
1. some fixes for "String literal to char * conversion" warnings (many more left in the *.xpm files) 2. fixes for "assignment of function to extern "C" function" 3. a few other miscellaneous ones git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@13478 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -706,8 +706,10 @@ int WXDLLEXPORT wxDbConnectionsInUse(void);
|
||||
|
||||
// Writes a message to the wxLog window (stdout usually) when an internal error
|
||||
// situation occurs. This function only works in DEBUG builds
|
||||
const wxChar WXDLLEXPORT *wxDbLogExtendedErrorMsg(const wxChar *userText, wxDb *pDb,
|
||||
wxChar *ErrFile, int ErrLine);
|
||||
const wxChar WXDLLEXPORT *wxDbLogExtendedErrorMsg(const wxChar *userText,
|
||||
wxDb *pDb,
|
||||
const wxChar *ErrFile,
|
||||
int ErrLine);
|
||||
|
||||
|
||||
// This function sets the sql log state for all open wxDb objects
|
||||
|
@@ -235,16 +235,19 @@ typedef int wxWindowID;
|
||||
#define wxCALLBACK
|
||||
#endif // platform
|
||||
|
||||
// callling convention for the qsort(3) callback
|
||||
// generic calling convention for the extern "C" functions
|
||||
|
||||
#if defined(__VISUALC__)
|
||||
#define wxCMPFUNC_CONV _cdecl
|
||||
#define wxC_CALLING_CONV _cdecl
|
||||
#elif defined(__VISAGECPP__)
|
||||
#define wxCMPFUNC_CONV _Optlink
|
||||
#define wxC_CALLING_CONV _Optlink
|
||||
#else // !Visual C++
|
||||
#define wxCMPFUNC_CONV
|
||||
#define wxC_CALLING_CONV
|
||||
#endif // compiler
|
||||
|
||||
// callling convention for the qsort(3) callback
|
||||
#define wxCMPFUNC_CONV wxC_CALLING_CONV
|
||||
|
||||
// compatibility :-(
|
||||
#define CMPFUNC_CONV wxCMPFUNC_CONV
|
||||
|
||||
|
@@ -42,7 +42,10 @@
|
||||
callback compare function for quick sort
|
||||
must return negative value, 0 or positive value if pItem1 <, = or > pItem2
|
||||
*/
|
||||
extern "C"
|
||||
{
|
||||
typedef int (wxCMPFUNC_CONV *CMPFUNC)(const void* pItem1, const void* pItem2);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
/**
|
||||
|
@@ -97,16 +97,16 @@ public :
|
||||
wxDouble m_y;
|
||||
};
|
||||
|
||||
wxPoint2DDouble operator+(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
wxPoint2DDouble operator-(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
wxPoint2DDouble operator*(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
wxPoint2DDouble operator*(wxDouble n , const wxPoint2DDouble& pt);
|
||||
wxPoint2DDouble operator*(wxInt32 n , const wxPoint2DDouble& pt);
|
||||
wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxDouble n);
|
||||
wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxInt32 n);
|
||||
wxPoint2DDouble operator/(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxDouble n);
|
||||
wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxInt32 n);
|
||||
inline wxPoint2DDouble operator+(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
inline wxPoint2DDouble operator-(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
inline wxPoint2DDouble operator*(wxDouble n , const wxPoint2DDouble& pt);
|
||||
inline wxPoint2DDouble operator*(wxInt32 n , const wxPoint2DDouble& pt);
|
||||
inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxDouble n);
|
||||
inline wxPoint2DDouble operator*(const wxPoint2DDouble& pt , wxInt32 n);
|
||||
inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt1 , const wxPoint2DDouble& pt2);
|
||||
inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxDouble n);
|
||||
inline wxPoint2DDouble operator/(const wxPoint2DDouble& pt , wxInt32 n);
|
||||
|
||||
inline wxPoint2DDouble::wxPoint2DDouble()
|
||||
{
|
||||
|
@@ -107,7 +107,7 @@ public:
|
||||
// (like sscanf() does)
|
||||
// NOTE: unlike scanf family, this function only accepts
|
||||
// *one* parameter !
|
||||
int ScanParam(const wxString& par, wxChar *format, void *param) const;
|
||||
int ScanParam(const wxString& par, const wxChar *format, void *param) const;
|
||||
|
||||
// Returns string containing all params.
|
||||
wxString GetAllParams() const;
|
||||
|
@@ -64,7 +64,10 @@ enum wxKeyType
|
||||
// type of compare function for list sort operation (as in 'qsort'): it should
|
||||
// return a negative value, 0 or positive value if the first element is less
|
||||
// than, equal or greater than the second
|
||||
extern "C"
|
||||
{
|
||||
typedef int (* LINKAGEMODE wxSortCompareFunction)(const void *elem1, const void *elem2);
|
||||
}
|
||||
|
||||
//
|
||||
typedef int (* LINKAGEMODE wxListIterateFunction)(void *current);
|
||||
|
@@ -218,7 +218,7 @@ bool wxContextHelp::DispatchEvent(wxWindow* win, const wxPoint& pt)
|
||||
*/
|
||||
|
||||
#if !defined(__WXMSW__)
|
||||
static char * csquery_xpm[] = {
|
||||
static const char * csquery_xpm[] = {
|
||||
"12 11 2 1",
|
||||
" c None",
|
||||
". c #000000",
|
||||
|
@@ -3721,8 +3721,10 @@ int WXDLLEXPORT wxDbConnectionsInUse(void)
|
||||
|
||||
/********** wxDbLogExtendedErrorMsg() **********/
|
||||
// DEBUG ONLY function
|
||||
const wxChar WXDLLEXPORT *wxDbLogExtendedErrorMsg(const wxChar *userText, wxDb *pDb,
|
||||
wxChar *ErrFile, int ErrLine)
|
||||
const wxChar WXDLLEXPORT *wxDbLogExtendedErrorMsg(const wxChar *userText,
|
||||
wxDb *pDb,
|
||||
const wxChar *ErrFile,
|
||||
int ErrLine)
|
||||
{
|
||||
static wxString msg;
|
||||
msg = userText;
|
||||
|
@@ -54,7 +54,7 @@ typedef struct {
|
||||
|
||||
|
||||
|
||||
static int LINKAGEMODE CompareCharsetItems(const void *i1, const void *i2)
|
||||
extern "C" int LINKAGEMODE CompareCharsetItems(const void *i1, const void *i2)
|
||||
{
|
||||
return ( ((CharsetItem*)i1) -> u - ((CharsetItem*)i2) -> u );
|
||||
}
|
||||
|
@@ -58,6 +58,11 @@ extern "C"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
// we can't use METHODDEF here as it includes static yet the functions must be
|
||||
// extern "C" and these can't be used together!
|
||||
#undef METHODDEF
|
||||
#define METHODDEF(type) extern "C" wxC_CALLING_CONV type
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxJPEGHandler
|
||||
//-----------------------------------------------------------------------------
|
||||
@@ -125,6 +130,34 @@ METHODDEF(void) my_term_source ( j_decompress_ptr cinfo )
|
||||
delete[] src->buffer;
|
||||
}
|
||||
|
||||
|
||||
// JPEG error manager:
|
||||
|
||||
struct my_error_mgr {
|
||||
struct jpeg_error_mgr pub; /* "public" fields */
|
||||
|
||||
jmp_buf setjmp_buffer; /* for return to caller */
|
||||
};
|
||||
|
||||
typedef struct my_error_mgr * my_error_ptr;
|
||||
|
||||
/*
|
||||
* Here's the routine that will replace the standard error_exit method:
|
||||
*/
|
||||
|
||||
METHODDEF(void) my_error_exit (j_common_ptr cinfo)
|
||||
{
|
||||
/* cinfo->err really points to a my_error_mgr struct, so coerce pointer */
|
||||
my_error_ptr myerr = (my_error_ptr) cinfo->err;
|
||||
|
||||
/* Always display the message. */
|
||||
/* We could postpone this until after returning, if we chose. */
|
||||
if (cinfo->err->output_message) (*cinfo->err->output_message) (cinfo);
|
||||
|
||||
/* Return control to the setjmp point */
|
||||
longjmp(myerr->setjmp_buffer, 1);
|
||||
}
|
||||
|
||||
void jpeg_wxio_src( j_decompress_ptr cinfo, wxInputStream& infile )
|
||||
{
|
||||
my_src_ptr src;
|
||||
@@ -149,34 +182,6 @@ void jpeg_wxio_src( j_decompress_ptr cinfo, wxInputStream& infile )
|
||||
}
|
||||
|
||||
|
||||
// JPEG error manager:
|
||||
|
||||
struct my_error_mgr {
|
||||
struct jpeg_error_mgr pub; /* "public" fields */
|
||||
|
||||
jmp_buf setjmp_buffer; /* for return to caller */
|
||||
};
|
||||
|
||||
typedef struct my_error_mgr * my_error_ptr;
|
||||
|
||||
/*
|
||||
* Here's the routine that will replace the standard error_exit method:
|
||||
*/
|
||||
|
||||
METHODDEF(void)
|
||||
my_error_exit (j_common_ptr cinfo)
|
||||
{
|
||||
/* cinfo->err really points to a my_error_mgr struct, so coerce pointer */
|
||||
my_error_ptr myerr = (my_error_ptr) cinfo->err;
|
||||
|
||||
/* Always display the message. */
|
||||
/* We could postpone this until after returning, if we chose. */
|
||||
if (cinfo->err->output_message) (*cinfo->err->output_message) (cinfo);
|
||||
|
||||
/* Return control to the setjmp point */
|
||||
longjmp(myerr->setjmp_buffer, 1);
|
||||
}
|
||||
|
||||
// temporarily disable the warning C4611 (interaction between '_setjmp' and
|
||||
// C++ object destruction is non-portable) - I don't see any dtors here
|
||||
#ifdef __VISUALC__
|
||||
|
@@ -60,12 +60,15 @@ IMPLEMENT_DYNAMIC_CLASS(wxPNGHandler,wxImageHandler)
|
||||
#define PNGLINKAGEMODE LINKAGEMODE
|
||||
#endif
|
||||
|
||||
static void PNGLINKAGEMODE _PNG_stream_reader( png_structp png_ptr, png_bytep data, png_size_t length )
|
||||
extern "C"
|
||||
{
|
||||
|
||||
void PNGLINKAGEMODE _PNG_stream_reader( png_structp png_ptr, png_bytep data, png_size_t length )
|
||||
{
|
||||
((wxInputStream*) png_get_io_ptr( png_ptr )) -> Read(data, length);
|
||||
}
|
||||
|
||||
static void PNGLINKAGEMODE _PNG_stream_writer( png_structp png_ptr, png_bytep data, png_size_t length )
|
||||
void PNGLINKAGEMODE _PNG_stream_writer( png_structp png_ptr, png_bytep data, png_size_t length )
|
||||
{
|
||||
((wxOutputStream*) png_get_io_ptr( png_ptr )) -> Write(data, length);
|
||||
}
|
||||
@@ -91,6 +94,8 @@ PNGLINKAGEMODE png_silent_warning(png_structp WXUNUSED(png_ptr), png_const_charp
|
||||
{
|
||||
}
|
||||
|
||||
} // extern "C"
|
||||
|
||||
// temporarily disable the warning C4611 (interaction between '_setjmp' and
|
||||
// C++ object destruction is non-portable) - I don't see any dtors here
|
||||
#ifdef __VISUALC__
|
||||
|
@@ -47,7 +47,10 @@ extern "C"
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxTIFFHandler,wxImageHandler)
|
||||
|
||||
static tsize_t TIFFLINKAGEMODE
|
||||
extern "C"
|
||||
{
|
||||
|
||||
tsize_t TIFFLINKAGEMODE
|
||||
_tiffNullProc(thandle_t WXUNUSED(handle),
|
||||
tdata_t WXUNUSED(buf),
|
||||
tsize_t WXUNUSED(size))
|
||||
@@ -55,7 +58,7 @@ _tiffNullProc(thandle_t WXUNUSED(handle),
|
||||
return (tsize_t) -1;
|
||||
}
|
||||
|
||||
static tsize_t TIFFLINKAGEMODE
|
||||
tsize_t TIFFLINKAGEMODE
|
||||
_tiffReadProc(thandle_t handle, tdata_t buf, tsize_t size)
|
||||
{
|
||||
wxInputStream *stream = (wxInputStream*) handle;
|
||||
@@ -63,7 +66,7 @@ _tiffReadProc(thandle_t handle, tdata_t buf, tsize_t size)
|
||||
return stream->LastRead();
|
||||
}
|
||||
|
||||
static tsize_t TIFFLINKAGEMODE
|
||||
tsize_t TIFFLINKAGEMODE
|
||||
_tiffWriteProc(thandle_t handle, tdata_t buf, tsize_t size)
|
||||
{
|
||||
wxOutputStream *stream = (wxOutputStream*) handle;
|
||||
@@ -71,7 +74,7 @@ _tiffWriteProc(thandle_t handle, tdata_t buf, tsize_t size)
|
||||
return stream->LastWrite();
|
||||
}
|
||||
|
||||
static toff_t TIFFLINKAGEMODE
|
||||
toff_t TIFFLINKAGEMODE
|
||||
_tiffSeekIProc(thandle_t handle, toff_t off, int whence)
|
||||
{
|
||||
wxInputStream *stream = (wxInputStream*) handle;
|
||||
@@ -87,7 +90,7 @@ _tiffSeekIProc(thandle_t handle, toff_t off, int whence)
|
||||
return (toff_t)stream->SeekI( (off_t)off, mode );
|
||||
}
|
||||
|
||||
static toff_t TIFFLINKAGEMODE
|
||||
toff_t TIFFLINKAGEMODE
|
||||
_tiffSeekOProc(thandle_t handle, toff_t off, int whence)
|
||||
{
|
||||
wxOutputStream *stream = (wxOutputStream*) handle;
|
||||
@@ -103,20 +106,20 @@ _tiffSeekOProc(thandle_t handle, toff_t off, int whence)
|
||||
return (toff_t)stream->SeekO( (off_t)off, mode );
|
||||
}
|
||||
|
||||
static int TIFFLINKAGEMODE
|
||||
int TIFFLINKAGEMODE
|
||||
_tiffCloseProc(thandle_t WXUNUSED(handle))
|
||||
{
|
||||
return 0; // ?
|
||||
}
|
||||
|
||||
static toff_t TIFFLINKAGEMODE
|
||||
toff_t TIFFLINKAGEMODE
|
||||
_tiffSizeProc(thandle_t handle)
|
||||
{
|
||||
wxStreamBase *stream = (wxStreamBase*) handle;
|
||||
return (toff_t) stream->GetSize();
|
||||
}
|
||||
|
||||
static int TIFFLINKAGEMODE
|
||||
int TIFFLINKAGEMODE
|
||||
_tiffMapProc(thandle_t WXUNUSED(handle),
|
||||
tdata_t* WXUNUSED(pbase),
|
||||
toff_t* WXUNUSED(psize))
|
||||
@@ -124,13 +127,15 @@ _tiffMapProc(thandle_t WXUNUSED(handle),
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void TIFFLINKAGEMODE
|
||||
void TIFFLINKAGEMODE
|
||||
_tiffUnmapProc(thandle_t WXUNUSED(handle),
|
||||
tdata_t WXUNUSED(base),
|
||||
toff_t WXUNUSED(size))
|
||||
{
|
||||
}
|
||||
|
||||
} // extern "C"
|
||||
|
||||
TIFF*
|
||||
TIFFwxOpen(wxInputStream &stream, const char* name, const char* mode)
|
||||
{
|
||||
|
@@ -640,7 +640,7 @@ bool wxStringList::Member(const wxChar *s) const
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static int LINKAGEMODE
|
||||
extern "C" int LINKAGEMODE
|
||||
wx_comparestrings(const void *arg1, const void *arg2)
|
||||
{
|
||||
wxChar **s1 = (wxChar **) arg1;
|
||||
|
@@ -2049,7 +2049,7 @@ wxChar* wxResourceParseWord(wxChar*s, int *i)
|
||||
|
||||
struct wxResourceBitListStruct
|
||||
{
|
||||
wxChar *word;
|
||||
const wxChar *word;
|
||||
long bits;
|
||||
};
|
||||
|
||||
|
@@ -862,7 +862,8 @@ char *wxSocketBase::CallbackData(char *data)
|
||||
// decoupled from wx_socket_callback and thus they suffer from a variety
|
||||
// of problems. Avoid them where possible and use events instead.
|
||||
|
||||
static void LINKAGEMODE wx_socket_callback(GSocket * WXUNUSED(socket),
|
||||
extern "C"
|
||||
void LINKAGEMODE wx_socket_callback(GSocket * WXUNUSED(socket),
|
||||
GSocketEvent notification,
|
||||
char *cdata)
|
||||
{
|
||||
|
@@ -2240,7 +2240,8 @@ static wxArrayString::CompareFunction gs_compareFunction = NULL;
|
||||
static bool gs_sortAscending = TRUE;
|
||||
|
||||
// function which is called by quick sort
|
||||
static int LINKAGEMODE wxStringCompareFunction(const void *first, const void *second)
|
||||
extern "C" int LINKAGEMODE
|
||||
wxStringCompareFunction(const void *first, const void *second)
|
||||
{
|
||||
wxString *strFirst = (wxString *)first;
|
||||
wxString *strSecond = (wxString *)second;
|
||||
|
@@ -1255,7 +1255,7 @@ void process_command(char * cexpr)
|
||||
void syntax_error(char *WXUNUSED(s))
|
||||
{
|
||||
if (currentwxExprErrorHandler)
|
||||
(void)(*(currentwxExprErrorHandler))(WXEXPR_ERROR_SYNTAX, "syntax error");
|
||||
(void)(*(currentwxExprErrorHandler))(WXEXPR_ERROR_SYNTAX, (char *)"syntax error");
|
||||
if (thewxExprDatabase) thewxExprDatabase->noErrors += 1;
|
||||
}
|
||||
|
||||
|
@@ -263,7 +263,7 @@ wxImage wxXPMDecoder::ReadFile(wxInputStream& stream)
|
||||
|
||||
typedef struct
|
||||
{
|
||||
char *name;
|
||||
const char *name;
|
||||
wxUint32 rgb;
|
||||
} rgbRecord;
|
||||
|
||||
|
@@ -90,7 +90,7 @@
|
||||
#endif
|
||||
|
||||
/* Closed folder */
|
||||
static char * icon1_xpm[] = {
|
||||
static const char * icon1_xpm[] = {
|
||||
/* width height ncolors chars_per_pixel */
|
||||
"16 16 6 1",
|
||||
/* colors */
|
||||
@@ -119,7 +119,7 @@ static char * icon1_xpm[] = {
|
||||
" "};
|
||||
|
||||
/* Open folder */
|
||||
static char * icon2_xpm[] = {
|
||||
static const char * icon2_xpm[] = {
|
||||
/* width height ncolors chars_per_pixel */
|
||||
"16 16 6 1",
|
||||
/* colors */
|
||||
@@ -148,7 +148,7 @@ static char * icon2_xpm[] = {
|
||||
" "};
|
||||
|
||||
/* File */
|
||||
static char * icon3_xpm[] = {
|
||||
static const char * icon3_xpm[] = {
|
||||
/* width height ncolors chars_per_pixel */
|
||||
"16 16 3 1",
|
||||
/* colors */
|
||||
@@ -174,7 +174,7 @@ static char * icon3_xpm[] = {
|
||||
" "};
|
||||
|
||||
/* Computer */
|
||||
static char * icon4_xpm[] = {
|
||||
static const char * icon4_xpm[] = {
|
||||
"16 16 7 1",
|
||||
" s None c None",
|
||||
". c #808080",
|
||||
@@ -201,7 +201,7 @@ static char * icon4_xpm[] = {
|
||||
"............o "};
|
||||
|
||||
/* Drive */
|
||||
static char * icon5_xpm[] = {
|
||||
static const char * icon5_xpm[] = {
|
||||
"16 16 7 1",
|
||||
" s None c None",
|
||||
". c #808080",
|
||||
@@ -228,7 +228,7 @@ static char * icon5_xpm[] = {
|
||||
" "};
|
||||
|
||||
/* CD-ROM */
|
||||
static char *icon6_xpm[] = {
|
||||
static const char *icon6_xpm[] = {
|
||||
"16 16 10 1",
|
||||
" s None c None",
|
||||
". c #808080",
|
||||
@@ -258,7 +258,7 @@ static char *icon6_xpm[] = {
|
||||
" "};
|
||||
|
||||
/* Floppy */
|
||||
static char * icon7_xpm[] = {
|
||||
static const char * icon7_xpm[] = {
|
||||
"16 16 7 1",
|
||||
" s None c None",
|
||||
". c #808080",
|
||||
@@ -285,7 +285,7 @@ static char * icon7_xpm[] = {
|
||||
" "};
|
||||
|
||||
/* Removeable */
|
||||
static char * icon8_xpm[] = {
|
||||
static const char * icon8_xpm[] = {
|
||||
"16 16 7 1",
|
||||
" s None c None",
|
||||
". c #808080",
|
||||
|
@@ -1804,7 +1804,8 @@ void wxListHeaderWindow::DoDrawRect( wxDC *dc, int x, int y, int w, int h )
|
||||
|
||||
gtk_paint_box (m_wxwindow->style, GTK_PIZZA(m_wxwindow)->bin_window,
|
||||
state, GTK_SHADOW_OUT,
|
||||
(GdkRectangle*) NULL, m_wxwindow, "button",
|
||||
(GdkRectangle*) NULL, m_wxwindow,
|
||||
(char *)"button", // const_cast
|
||||
x-1, y-1, w+2, h+2);
|
||||
#elif defined( __WXMAC__ )
|
||||
const int m_corner = 1;
|
||||
|
107
src/gtk/app.cpp
107
src/gtk/app.cpp
@@ -61,14 +61,15 @@ static GtkWidget *gs_RootWindow = (GtkWidget*) NULL;
|
||||
// local functions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
/* forward declaration */
|
||||
extern "C"
|
||||
{
|
||||
gint wxapp_idle_callback( gpointer WXUNUSED(data) );
|
||||
gint wxapp_pending_callback( gpointer WXUNUSED(data) );
|
||||
void wxapp_install_idle_handler();
|
||||
}
|
||||
|
||||
#if wxUSE_THREADS
|
||||
gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) );
|
||||
#endif
|
||||
void wxapp_install_thread_wakeup();
|
||||
void wxapp_uninstall_thread_wakeup();
|
||||
void wxapp_install_idle_handler();
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxExit
|
||||
@@ -163,6 +164,28 @@ void wxWakeUpIdle()
|
||||
// local functions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void wxapp_install_idle_handler()
|
||||
{
|
||||
wxASSERT_MSG( wxTheApp->m_idleTag == 0, wxT("attempt to install idle handler twice") );
|
||||
|
||||
g_isIdle = FALSE;
|
||||
|
||||
if (g_pendingTag == 0)
|
||||
g_pendingTag = gtk_idle_add_priority( 900, wxapp_pending_callback, (gpointer) NULL );
|
||||
|
||||
/* This routine gets called by all event handlers
|
||||
indicating that the idle is over. It may also
|
||||
get called from other thread for sending events
|
||||
to the main thread (and processing these in
|
||||
idle time). Very low priority. */
|
||||
|
||||
wxTheApp->m_idleTag = gtk_idle_add_priority( 1000, wxapp_idle_callback, (gpointer) NULL );
|
||||
}
|
||||
|
||||
// the callback functions must be extern "C" to comply with GTK+ declarations
|
||||
extern "C"
|
||||
{
|
||||
|
||||
gint wxapp_pending_callback( gpointer WXUNUSED(data) )
|
||||
{
|
||||
if (!wxTheApp) return TRUE;
|
||||
@@ -230,51 +253,8 @@ gint wxapp_idle_callback( gpointer WXUNUSED(data) )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void wxapp_install_idle_handler()
|
||||
{
|
||||
wxASSERT_MSG( wxTheApp->m_idleTag == 0, wxT("attempt to install idle handler twice") );
|
||||
|
||||
g_isIdle = FALSE;
|
||||
|
||||
if (g_pendingTag == 0)
|
||||
g_pendingTag = gtk_idle_add_priority( 900, wxapp_pending_callback, (gpointer) NULL );
|
||||
|
||||
/* This routine gets called by all event handlers
|
||||
indicating that the idle is over. It may also
|
||||
get called from other thread for sending events
|
||||
to the main thread (and processing these in
|
||||
idle time). Very low priority. */
|
||||
|
||||
wxTheApp->m_idleTag = gtk_idle_add_priority( 1000, wxapp_idle_callback, (gpointer) NULL );
|
||||
}
|
||||
|
||||
#if wxUSE_THREADS
|
||||
|
||||
static int g_threadUninstallLevel = 0;
|
||||
|
||||
void wxapp_install_thread_wakeup()
|
||||
{
|
||||
g_threadUninstallLevel++;
|
||||
|
||||
if (g_threadUninstallLevel != 1) return;
|
||||
|
||||
if (wxTheApp->m_wakeUpTimerTag) return;
|
||||
|
||||
wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 50, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
||||
}
|
||||
|
||||
void wxapp_uninstall_thread_wakeup()
|
||||
{
|
||||
g_threadUninstallLevel--;
|
||||
|
||||
if (g_threadUninstallLevel != 0) return;
|
||||
|
||||
if (!wxTheApp->m_wakeUpTimerTag) return;
|
||||
|
||||
gtk_timeout_remove( wxTheApp->m_wakeUpTimerTag );
|
||||
wxTheApp->m_wakeUpTimerTag = 0;
|
||||
}
|
||||
|
||||
gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) )
|
||||
{
|
||||
// when getting called from GDK's time-out handler
|
||||
@@ -307,6 +287,37 @@ gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) )
|
||||
|
||||
#endif // wxUSE_THREADS
|
||||
|
||||
} // extern "C"
|
||||
|
||||
#if wxUSE_THREADS
|
||||
|
||||
static int g_threadUninstallLevel = 0;
|
||||
|
||||
void wxapp_install_thread_wakeup()
|
||||
{
|
||||
g_threadUninstallLevel++;
|
||||
|
||||
if (g_threadUninstallLevel != 1) return;
|
||||
|
||||
if (wxTheApp->m_wakeUpTimerTag) return;
|
||||
|
||||
wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 50, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
||||
}
|
||||
|
||||
void wxapp_uninstall_thread_wakeup()
|
||||
{
|
||||
g_threadUninstallLevel--;
|
||||
|
||||
if (g_threadUninstallLevel != 0) return;
|
||||
|
||||
if (!wxTheApp->m_wakeUpTimerTag) return;
|
||||
|
||||
gtk_timeout_remove( wxTheApp->m_wakeUpTimerTag );
|
||||
wxTheApp->m_wakeUpTimerTag = 0;
|
||||
}
|
||||
|
||||
#endif // wxUSE_THREADS
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxApp
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -60,7 +60,7 @@ static const wxChar *TRACE_DND = _T("dnd");
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
/* XPM */
|
||||
static char * page_xpm[] = {
|
||||
static const char * page_xpm[] = {
|
||||
/* width height ncolors chars_per_pixel */
|
||||
"32 32 5 1",
|
||||
/* colors */
|
||||
|
@@ -322,7 +322,7 @@ bool wxMenuBar::GtkAppend(wxMenu *menu, const wxString& title)
|
||||
entry.accelerator = (gchar*) NULL;
|
||||
entry.callback = (GtkItemFactoryCallback) NULL;
|
||||
entry.callback_action = 0;
|
||||
entry.item_type = "<Branch>";
|
||||
entry.item_type = (char *)"<Branch>";
|
||||
|
||||
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
|
||||
/* in order to get the pointer to the item we need the item text _without_ underscores */
|
||||
@@ -886,10 +886,10 @@ void wxMenu::Init()
|
||||
if(m_style & wxMENU_TEAROFF)
|
||||
{
|
||||
GtkItemFactoryEntry entry;
|
||||
entry.path = "/tearoff";
|
||||
entry.path = (char *)"/tearoff";
|
||||
entry.callback = (GtkItemFactoryCallback) NULL;
|
||||
entry.callback_action = 0;
|
||||
entry.item_type = "<Tearoff>";
|
||||
entry.item_type = (char *)"<Tearoff>";
|
||||
entry.accelerator = (gchar*) NULL;
|
||||
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
|
||||
//GtkWidget *menuItem = gtk_item_factory_get_widget( m_factory, "<main>/tearoff" );
|
||||
@@ -923,10 +923,10 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
|
||||
{
|
||||
#if (GTK_MINOR_VERSION > 0)
|
||||
GtkItemFactoryEntry entry;
|
||||
entry.path = "/sep";
|
||||
entry.path = (char *)"/sep";
|
||||
entry.callback = (GtkItemFactoryCallback) NULL;
|
||||
entry.callback_action = 0;
|
||||
entry.item_type = "<Separator>";
|
||||
entry.item_type = (char *)"<Separator>";
|
||||
entry.accelerator = (gchar*) NULL;
|
||||
|
||||
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
|
||||
@@ -952,7 +952,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
|
||||
entry.path = buf;
|
||||
entry.callback = (GtkItemFactoryCallback) 0;
|
||||
entry.callback_action = 0;
|
||||
entry.item_type = "<Branch>";
|
||||
entry.item_type = (char *)"<Branch>";
|
||||
entry.accelerator = (gchar*) NULL;
|
||||
|
||||
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
|
||||
@@ -1022,9 +1022,9 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
|
||||
entry.callback = (GtkItemFactoryCallback) gtk_menu_clicked_callback;
|
||||
entry.callback_action = 0;
|
||||
if ( mitem->IsCheckable() )
|
||||
entry.item_type = "<CheckItem>";
|
||||
entry.item_type = (char *)"<CheckItem>";
|
||||
else
|
||||
entry.item_type = "<Item>";
|
||||
entry.item_type = (char *)"<Item>";
|
||||
entry.accelerator = (gchar*) NULL;
|
||||
|
||||
#if wxUSE_ACCEL
|
||||
@@ -1251,6 +1251,9 @@ static wxString GetHotKey( const wxMenuItem& item )
|
||||
#include <gtk/gtkmenu.h>
|
||||
#include <gtk/gtkcontainer.h>
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
||||
static void gtk_pixmap_menu_item_class_init (GtkPixmapMenuItemClass *klass);
|
||||
static void gtk_pixmap_menu_item_init (GtkPixmapMenuItem *menu_item);
|
||||
static void gtk_pixmap_menu_item_draw (GtkWidget *widget,
|
||||
@@ -1276,6 +1279,8 @@ static void changed_have_pixmap_status (GtkPixmapMenuItem *menu_item);
|
||||
|
||||
static GtkMenuItemClass *parent_class = NULL;
|
||||
|
||||
}
|
||||
|
||||
#define BORDER_SPACING 3
|
||||
#define PMAP_WIDTH 20
|
||||
|
||||
@@ -1288,7 +1293,7 @@ gtk_pixmap_menu_item_get_type (void)
|
||||
{
|
||||
GtkTypeInfo pixmap_menu_item_info =
|
||||
{
|
||||
"GtkPixmapMenuItem",
|
||||
(char *)"GtkPixmapMenuItem",
|
||||
sizeof (GtkPixmapMenuItem),
|
||||
sizeof (GtkPixmapMenuItemClass),
|
||||
(GtkClassInitFunc) gtk_pixmap_menu_item_class_init,
|
||||
|
@@ -270,7 +270,7 @@ static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxMiniFram
|
||||
// wxMiniFrame
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static char *cross_xpm[] = {
|
||||
static const char *cross_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"5 5 16 1",
|
||||
" c Gray0",
|
||||
@@ -321,7 +321,13 @@ bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
|
||||
((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT)))
|
||||
{
|
||||
GdkBitmap *mask = (GdkBitmap*) NULL;
|
||||
GdkPixmap *pixmap = gdk_pixmap_create_from_xpm_d( wxGetRootWindow()->window, &mask, NULL, cross_xpm );
|
||||
GdkPixmap *pixmap = gdk_pixmap_create_from_xpm_d
|
||||
(
|
||||
wxGetRootWindow()->window,
|
||||
&mask,
|
||||
NULL,
|
||||
(char **)cross_xpm
|
||||
);
|
||||
|
||||
GtkWidget *pw = gtk_pixmap_new( pixmap, mask );
|
||||
gdk_bitmap_unref( mask );
|
||||
|
@@ -26,7 +26,7 @@
|
||||
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject)
|
||||
|
||||
static gint timeout_callback( gpointer data )
|
||||
extern "C" gint timeout_callback( gpointer data )
|
||||
{
|
||||
wxTimer *timer = (wxTimer*)data;
|
||||
|
||||
|
@@ -245,8 +245,13 @@ static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_ev
|
||||
{
|
||||
GtkPizza *pizza = GTK_PIZZA(widget);
|
||||
|
||||
gtk_paint_flat_box (win->m_widget->style, pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE, &gdk_event->area, win->m_widget, "base", 0, 0, -1, -1);
|
||||
gtk_paint_flat_box (win->m_widget->style,
|
||||
pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE,
|
||||
&gdk_event->area,
|
||||
win->m_widget,
|
||||
(char *)"base",
|
||||
0, 0, -1, -1);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -260,8 +265,13 @@ static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxW
|
||||
{
|
||||
GtkPizza *pizza = GTK_PIZZA(widget);
|
||||
|
||||
gtk_paint_flat_box (win->m_widget->style, pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE, rect, win->m_widget, "base", 0, 0, -1, -1);
|
||||
gtk_paint_flat_box (win->m_widget->style,
|
||||
pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE,
|
||||
rect,
|
||||
win->m_widget,
|
||||
(char *)"base",
|
||||
0, 0, -1, -1);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -139,7 +139,8 @@ wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
|
||||
// subprocess routines
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
static void GTK_EndProcessDetector(gpointer data, gint source,
|
||||
extern "C"
|
||||
void GTK_EndProcessDetector(gpointer data, gint source,
|
||||
GdkInputCondition WXUNUSED(condition) )
|
||||
{
|
||||
wxEndProcessData *proc_data = (wxEndProcessData *)data;
|
||||
|
@@ -852,7 +852,7 @@ gtk_pizza_forall (GtkContainer *container,
|
||||
|
||||
g_return_if_fail (container != NULL);
|
||||
g_return_if_fail (GTK_IS_PIZZA (container));
|
||||
g_return_if_fail (callback != NULL);
|
||||
g_return_if_fail (callback != (GtkCallback)NULL);
|
||||
|
||||
pizza = GTK_PIZZA (container);
|
||||
|
||||
|
@@ -785,8 +785,14 @@ static int gtk_window_expose_callback( GtkWidget *widget,
|
||||
if (!parent)
|
||||
parent = win;
|
||||
|
||||
gtk_paint_flat_box (parent->m_widget->style, pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE, &gdk_event->area, parent->m_widget, "base", 0, 0, -1, -1);
|
||||
gtk_paint_flat_box (parent->m_widget->style,
|
||||
pizza->bin_window,
|
||||
GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE,
|
||||
&gdk_event->area,
|
||||
parent->m_widget,
|
||||
(char *)"base",
|
||||
0, 0, -1, -1);
|
||||
}
|
||||
|
||||
win->GetUpdateRegion().Union( gdk_event->area.x,
|
||||
@@ -928,8 +934,14 @@ static void gtk_window_draw_callback( GtkWidget *widget,
|
||||
if (!parent)
|
||||
parent = win;
|
||||
|
||||
gtk_paint_flat_box (parent->m_widget->style, pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE, rect, parent->m_widget, "base", 0, 0, -1, -1);
|
||||
gtk_paint_flat_box (parent->m_widget->style,
|
||||
pizza->bin_window,
|
||||
GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE,
|
||||
rect,
|
||||
parent->m_widget,
|
||||
(char *)"base",
|
||||
0, 0, -1, -1);
|
||||
}
|
||||
|
||||
|
||||
@@ -3713,7 +3725,8 @@ void wxWindowGTK::ApplyWidgetStyle()
|
||||
|
||||
#if wxUSE_MENUS_NATIVE
|
||||
|
||||
static void gtk_pop_hide_callback( GtkWidget *WXUNUSED(widget), bool* is_waiting )
|
||||
extern "C"
|
||||
void gtk_pop_hide_callback( GtkWidget *WXUNUSED(widget), bool* is_waiting )
|
||||
{
|
||||
*is_waiting = FALSE;
|
||||
}
|
||||
@@ -3775,8 +3788,10 @@ bool wxWindowGTK::DoPopupMenu( wxMenu *menu, int x, int y )
|
||||
|
||||
bool is_waiting = TRUE;
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(menu->m_menu), "hide",
|
||||
GTK_SIGNAL_FUNC(gtk_pop_hide_callback), (gpointer)&is_waiting );
|
||||
gtk_signal_connect( GTK_OBJECT(menu->m_menu),
|
||||
"hide",
|
||||
GTK_SIGNAL_FUNC(gtk_pop_hide_callback),
|
||||
(gpointer)&is_waiting );
|
||||
|
||||
gtk_menu_popup(
|
||||
GTK_MENU(menu->m_menu),
|
||||
|
107
src/gtk1/app.cpp
107
src/gtk1/app.cpp
@@ -61,14 +61,15 @@ static GtkWidget *gs_RootWindow = (GtkWidget*) NULL;
|
||||
// local functions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
/* forward declaration */
|
||||
extern "C"
|
||||
{
|
||||
gint wxapp_idle_callback( gpointer WXUNUSED(data) );
|
||||
gint wxapp_pending_callback( gpointer WXUNUSED(data) );
|
||||
void wxapp_install_idle_handler();
|
||||
}
|
||||
|
||||
#if wxUSE_THREADS
|
||||
gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) );
|
||||
#endif
|
||||
void wxapp_install_thread_wakeup();
|
||||
void wxapp_uninstall_thread_wakeup();
|
||||
void wxapp_install_idle_handler();
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxExit
|
||||
@@ -163,6 +164,28 @@ void wxWakeUpIdle()
|
||||
// local functions
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
void wxapp_install_idle_handler()
|
||||
{
|
||||
wxASSERT_MSG( wxTheApp->m_idleTag == 0, wxT("attempt to install idle handler twice") );
|
||||
|
||||
g_isIdle = FALSE;
|
||||
|
||||
if (g_pendingTag == 0)
|
||||
g_pendingTag = gtk_idle_add_priority( 900, wxapp_pending_callback, (gpointer) NULL );
|
||||
|
||||
/* This routine gets called by all event handlers
|
||||
indicating that the idle is over. It may also
|
||||
get called from other thread for sending events
|
||||
to the main thread (and processing these in
|
||||
idle time). Very low priority. */
|
||||
|
||||
wxTheApp->m_idleTag = gtk_idle_add_priority( 1000, wxapp_idle_callback, (gpointer) NULL );
|
||||
}
|
||||
|
||||
// the callback functions must be extern "C" to comply with GTK+ declarations
|
||||
extern "C"
|
||||
{
|
||||
|
||||
gint wxapp_pending_callback( gpointer WXUNUSED(data) )
|
||||
{
|
||||
if (!wxTheApp) return TRUE;
|
||||
@@ -230,51 +253,8 @@ gint wxapp_idle_callback( gpointer WXUNUSED(data) )
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void wxapp_install_idle_handler()
|
||||
{
|
||||
wxASSERT_MSG( wxTheApp->m_idleTag == 0, wxT("attempt to install idle handler twice") );
|
||||
|
||||
g_isIdle = FALSE;
|
||||
|
||||
if (g_pendingTag == 0)
|
||||
g_pendingTag = gtk_idle_add_priority( 900, wxapp_pending_callback, (gpointer) NULL );
|
||||
|
||||
/* This routine gets called by all event handlers
|
||||
indicating that the idle is over. It may also
|
||||
get called from other thread for sending events
|
||||
to the main thread (and processing these in
|
||||
idle time). Very low priority. */
|
||||
|
||||
wxTheApp->m_idleTag = gtk_idle_add_priority( 1000, wxapp_idle_callback, (gpointer) NULL );
|
||||
}
|
||||
|
||||
#if wxUSE_THREADS
|
||||
|
||||
static int g_threadUninstallLevel = 0;
|
||||
|
||||
void wxapp_install_thread_wakeup()
|
||||
{
|
||||
g_threadUninstallLevel++;
|
||||
|
||||
if (g_threadUninstallLevel != 1) return;
|
||||
|
||||
if (wxTheApp->m_wakeUpTimerTag) return;
|
||||
|
||||
wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 50, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
||||
}
|
||||
|
||||
void wxapp_uninstall_thread_wakeup()
|
||||
{
|
||||
g_threadUninstallLevel--;
|
||||
|
||||
if (g_threadUninstallLevel != 0) return;
|
||||
|
||||
if (!wxTheApp->m_wakeUpTimerTag) return;
|
||||
|
||||
gtk_timeout_remove( wxTheApp->m_wakeUpTimerTag );
|
||||
wxTheApp->m_wakeUpTimerTag = 0;
|
||||
}
|
||||
|
||||
gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) )
|
||||
{
|
||||
// when getting called from GDK's time-out handler
|
||||
@@ -307,6 +287,37 @@ gint wxapp_wakeup_timerout_callback( gpointer WXUNUSED(data) )
|
||||
|
||||
#endif // wxUSE_THREADS
|
||||
|
||||
} // extern "C"
|
||||
|
||||
#if wxUSE_THREADS
|
||||
|
||||
static int g_threadUninstallLevel = 0;
|
||||
|
||||
void wxapp_install_thread_wakeup()
|
||||
{
|
||||
g_threadUninstallLevel++;
|
||||
|
||||
if (g_threadUninstallLevel != 1) return;
|
||||
|
||||
if (wxTheApp->m_wakeUpTimerTag) return;
|
||||
|
||||
wxTheApp->m_wakeUpTimerTag = gtk_timeout_add( 50, wxapp_wakeup_timerout_callback, (gpointer) NULL );
|
||||
}
|
||||
|
||||
void wxapp_uninstall_thread_wakeup()
|
||||
{
|
||||
g_threadUninstallLevel--;
|
||||
|
||||
if (g_threadUninstallLevel != 0) return;
|
||||
|
||||
if (!wxTheApp->m_wakeUpTimerTag) return;
|
||||
|
||||
gtk_timeout_remove( wxTheApp->m_wakeUpTimerTag );
|
||||
wxTheApp->m_wakeUpTimerTag = 0;
|
||||
}
|
||||
|
||||
#endif // wxUSE_THREADS
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxApp
|
||||
//-----------------------------------------------------------------------------
|
||||
|
@@ -60,7 +60,7 @@ static const wxChar *TRACE_DND = _T("dnd");
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
/* XPM */
|
||||
static char * page_xpm[] = {
|
||||
static const char * page_xpm[] = {
|
||||
/* width height ncolors chars_per_pixel */
|
||||
"32 32 5 1",
|
||||
/* colors */
|
||||
|
@@ -322,7 +322,7 @@ bool wxMenuBar::GtkAppend(wxMenu *menu, const wxString& title)
|
||||
entry.accelerator = (gchar*) NULL;
|
||||
entry.callback = (GtkItemFactoryCallback) NULL;
|
||||
entry.callback_action = 0;
|
||||
entry.item_type = "<Branch>";
|
||||
entry.item_type = (char *)"<Branch>";
|
||||
|
||||
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
|
||||
/* in order to get the pointer to the item we need the item text _without_ underscores */
|
||||
@@ -886,10 +886,10 @@ void wxMenu::Init()
|
||||
if(m_style & wxMENU_TEAROFF)
|
||||
{
|
||||
GtkItemFactoryEntry entry;
|
||||
entry.path = "/tearoff";
|
||||
entry.path = (char *)"/tearoff";
|
||||
entry.callback = (GtkItemFactoryCallback) NULL;
|
||||
entry.callback_action = 0;
|
||||
entry.item_type = "<Tearoff>";
|
||||
entry.item_type = (char *)"<Tearoff>";
|
||||
entry.accelerator = (gchar*) NULL;
|
||||
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
|
||||
//GtkWidget *menuItem = gtk_item_factory_get_widget( m_factory, "<main>/tearoff" );
|
||||
@@ -923,10 +923,10 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
|
||||
{
|
||||
#if (GTK_MINOR_VERSION > 0)
|
||||
GtkItemFactoryEntry entry;
|
||||
entry.path = "/sep";
|
||||
entry.path = (char *)"/sep";
|
||||
entry.callback = (GtkItemFactoryCallback) NULL;
|
||||
entry.callback_action = 0;
|
||||
entry.item_type = "<Separator>";
|
||||
entry.item_type = (char *)"<Separator>";
|
||||
entry.accelerator = (gchar*) NULL;
|
||||
|
||||
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
|
||||
@@ -952,7 +952,7 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
|
||||
entry.path = buf;
|
||||
entry.callback = (GtkItemFactoryCallback) 0;
|
||||
entry.callback_action = 0;
|
||||
entry.item_type = "<Branch>";
|
||||
entry.item_type = (char *)"<Branch>";
|
||||
entry.accelerator = (gchar*) NULL;
|
||||
|
||||
gtk_item_factory_create_item( m_factory, &entry, (gpointer) this, 2 ); /* what is 2 ? */
|
||||
@@ -1022,9 +1022,9 @@ bool wxMenu::GtkAppend(wxMenuItem *mitem)
|
||||
entry.callback = (GtkItemFactoryCallback) gtk_menu_clicked_callback;
|
||||
entry.callback_action = 0;
|
||||
if ( mitem->IsCheckable() )
|
||||
entry.item_type = "<CheckItem>";
|
||||
entry.item_type = (char *)"<CheckItem>";
|
||||
else
|
||||
entry.item_type = "<Item>";
|
||||
entry.item_type = (char *)"<Item>";
|
||||
entry.accelerator = (gchar*) NULL;
|
||||
|
||||
#if wxUSE_ACCEL
|
||||
@@ -1251,6 +1251,9 @@ static wxString GetHotKey( const wxMenuItem& item )
|
||||
#include <gtk/gtkmenu.h>
|
||||
#include <gtk/gtkcontainer.h>
|
||||
|
||||
extern "C"
|
||||
{
|
||||
|
||||
static void gtk_pixmap_menu_item_class_init (GtkPixmapMenuItemClass *klass);
|
||||
static void gtk_pixmap_menu_item_init (GtkPixmapMenuItem *menu_item);
|
||||
static void gtk_pixmap_menu_item_draw (GtkWidget *widget,
|
||||
@@ -1276,6 +1279,8 @@ static void changed_have_pixmap_status (GtkPixmapMenuItem *menu_item);
|
||||
|
||||
static GtkMenuItemClass *parent_class = NULL;
|
||||
|
||||
}
|
||||
|
||||
#define BORDER_SPACING 3
|
||||
#define PMAP_WIDTH 20
|
||||
|
||||
@@ -1288,7 +1293,7 @@ gtk_pixmap_menu_item_get_type (void)
|
||||
{
|
||||
GtkTypeInfo pixmap_menu_item_info =
|
||||
{
|
||||
"GtkPixmapMenuItem",
|
||||
(char *)"GtkPixmapMenuItem",
|
||||
sizeof (GtkPixmapMenuItem),
|
||||
sizeof (GtkPixmapMenuItemClass),
|
||||
(GtkClassInitFunc) gtk_pixmap_menu_item_class_init,
|
||||
|
@@ -270,7 +270,7 @@ static void gtk_button_clicked_callback( GtkWidget *WXUNUSED(widget), wxMiniFram
|
||||
// wxMiniFrame
|
||||
//-----------------------------------------------------------------------------
|
||||
|
||||
static char *cross_xpm[] = {
|
||||
static const char *cross_xpm[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"5 5 16 1",
|
||||
" c Gray0",
|
||||
@@ -321,7 +321,13 @@ bool wxMiniFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title
|
||||
((style & wxCAPTION) || (style & wxTINY_CAPTION_HORIZ) || (style & wxTINY_CAPTION_VERT)))
|
||||
{
|
||||
GdkBitmap *mask = (GdkBitmap*) NULL;
|
||||
GdkPixmap *pixmap = gdk_pixmap_create_from_xpm_d( wxGetRootWindow()->window, &mask, NULL, cross_xpm );
|
||||
GdkPixmap *pixmap = gdk_pixmap_create_from_xpm_d
|
||||
(
|
||||
wxGetRootWindow()->window,
|
||||
&mask,
|
||||
NULL,
|
||||
(char **)cross_xpm
|
||||
);
|
||||
|
||||
GtkWidget *pw = gtk_pixmap_new( pixmap, mask );
|
||||
gdk_bitmap_unref( mask );
|
||||
|
@@ -26,7 +26,7 @@
|
||||
|
||||
IMPLEMENT_ABSTRACT_CLASS(wxTimer, wxObject)
|
||||
|
||||
static gint timeout_callback( gpointer data )
|
||||
extern "C" gint timeout_callback( gpointer data )
|
||||
{
|
||||
wxTimer *timer = (wxTimer*)data;
|
||||
|
||||
|
@@ -245,8 +245,13 @@ static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_ev
|
||||
{
|
||||
GtkPizza *pizza = GTK_PIZZA(widget);
|
||||
|
||||
gtk_paint_flat_box (win->m_widget->style, pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE, &gdk_event->area, win->m_widget, "base", 0, 0, -1, -1);
|
||||
gtk_paint_flat_box (win->m_widget->style,
|
||||
pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE,
|
||||
&gdk_event->area,
|
||||
win->m_widget,
|
||||
(char *)"base",
|
||||
0, 0, -1, -1);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -260,8 +265,13 @@ static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxW
|
||||
{
|
||||
GtkPizza *pizza = GTK_PIZZA(widget);
|
||||
|
||||
gtk_paint_flat_box (win->m_widget->style, pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE, rect, win->m_widget, "base", 0, 0, -1, -1);
|
||||
gtk_paint_flat_box (win->m_widget->style,
|
||||
pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE,
|
||||
rect,
|
||||
win->m_widget,
|
||||
(char *)"base",
|
||||
0, 0, -1, -1);
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -139,7 +139,8 @@ wxWindow* wxFindWindowAtPoint(const wxPoint& pt)
|
||||
// subprocess routines
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
static void GTK_EndProcessDetector(gpointer data, gint source,
|
||||
extern "C"
|
||||
void GTK_EndProcessDetector(gpointer data, gint source,
|
||||
GdkInputCondition WXUNUSED(condition) )
|
||||
{
|
||||
wxEndProcessData *proc_data = (wxEndProcessData *)data;
|
||||
|
@@ -852,7 +852,7 @@ gtk_pizza_forall (GtkContainer *container,
|
||||
|
||||
g_return_if_fail (container != NULL);
|
||||
g_return_if_fail (GTK_IS_PIZZA (container));
|
||||
g_return_if_fail (callback != NULL);
|
||||
g_return_if_fail (callback != (GtkCallback)NULL);
|
||||
|
||||
pizza = GTK_PIZZA (container);
|
||||
|
||||
|
@@ -785,8 +785,14 @@ static int gtk_window_expose_callback( GtkWidget *widget,
|
||||
if (!parent)
|
||||
parent = win;
|
||||
|
||||
gtk_paint_flat_box (parent->m_widget->style, pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE, &gdk_event->area, parent->m_widget, "base", 0, 0, -1, -1);
|
||||
gtk_paint_flat_box (parent->m_widget->style,
|
||||
pizza->bin_window,
|
||||
GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE,
|
||||
&gdk_event->area,
|
||||
parent->m_widget,
|
||||
(char *)"base",
|
||||
0, 0, -1, -1);
|
||||
}
|
||||
|
||||
win->GetUpdateRegion().Union( gdk_event->area.x,
|
||||
@@ -928,8 +934,14 @@ static void gtk_window_draw_callback( GtkWidget *widget,
|
||||
if (!parent)
|
||||
parent = win;
|
||||
|
||||
gtk_paint_flat_box (parent->m_widget->style, pizza->bin_window, GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE, rect, parent->m_widget, "base", 0, 0, -1, -1);
|
||||
gtk_paint_flat_box (parent->m_widget->style,
|
||||
pizza->bin_window,
|
||||
GTK_STATE_NORMAL,
|
||||
GTK_SHADOW_NONE,
|
||||
rect,
|
||||
parent->m_widget,
|
||||
(char *)"base",
|
||||
0, 0, -1, -1);
|
||||
}
|
||||
|
||||
|
||||
@@ -3713,7 +3725,8 @@ void wxWindowGTK::ApplyWidgetStyle()
|
||||
|
||||
#if wxUSE_MENUS_NATIVE
|
||||
|
||||
static void gtk_pop_hide_callback( GtkWidget *WXUNUSED(widget), bool* is_waiting )
|
||||
extern "C"
|
||||
void gtk_pop_hide_callback( GtkWidget *WXUNUSED(widget), bool* is_waiting )
|
||||
{
|
||||
*is_waiting = FALSE;
|
||||
}
|
||||
@@ -3775,8 +3788,10 @@ bool wxWindowGTK::DoPopupMenu( wxMenu *menu, int x, int y )
|
||||
|
||||
bool is_waiting = TRUE;
|
||||
|
||||
gtk_signal_connect( GTK_OBJECT(menu->m_menu), "hide",
|
||||
GTK_SIGNAL_FUNC(gtk_pop_hide_callback), (gpointer)&is_waiting );
|
||||
gtk_signal_connect( GTK_OBJECT(menu->m_menu),
|
||||
"hide",
|
||||
GTK_SIGNAL_FUNC(gtk_pop_hide_callback),
|
||||
(gpointer)&is_waiting );
|
||||
|
||||
gtk_menu_popup(
|
||||
GTK_MENU(menu->m_menu),
|
||||
|
@@ -61,7 +61,8 @@ static char* ReadLine(char *line, char *buf)
|
||||
|
||||
|
||||
|
||||
static int LINKAGEMODE IndexCompareFunc(const void *a, const void *b)
|
||||
extern "C" int LINKAGEMODE
|
||||
wxHtmlHelpIndexCompareFunc(const void *a, const void *b)
|
||||
{
|
||||
return wxStricmp(((wxHtmlContentsItem*)a)->m_Name, ((wxHtmlContentsItem*)b)->m_Name);
|
||||
}
|
||||
@@ -524,7 +525,7 @@ bool wxHtmlHelpData::AddBookParam(const wxFSFile& bookfile,
|
||||
|
||||
m_BookRecords.Add(bookr);
|
||||
if (m_IndexCnt > 0)
|
||||
qsort(m_Index, m_IndexCnt, sizeof(wxHtmlContentsItem), IndexCompareFunc);
|
||||
qsort(m_Index, m_IndexCnt, sizeof(wxHtmlContentsItem), wxHtmlHelpIndexCompareFunc);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@@ -491,7 +491,7 @@ struct wxHtmlEntityInfo
|
||||
unsigned code;
|
||||
};
|
||||
|
||||
static int LINKAGEMODE compar_entity(const void *key, const void *item)
|
||||
extern "C" int LINKAGEMODE wxHtmlEntityCompare(const void *key, const void *item)
|
||||
{
|
||||
return wxStrcmp((wxChar*)key, ((wxHtmlEntityInfo*)item)->name);
|
||||
}
|
||||
@@ -801,7 +801,7 @@ wxChar wxHtmlEntitiesParser::GetEntityChar(const wxString& entity)
|
||||
info = (wxHtmlEntityInfo*) bsearch(entity.c_str(), substitutions,
|
||||
substitutions_cnt,
|
||||
sizeof(wxHtmlEntityInfo),
|
||||
compar_entity);
|
||||
wxHtmlEntityCompare);
|
||||
if (info)
|
||||
code = info->code;
|
||||
}
|
||||
|
@@ -332,7 +332,9 @@ wxString wxHtmlTag::GetParam(const wxString& par, bool with_commas) const
|
||||
return m_ParamValues[index];
|
||||
}
|
||||
|
||||
int wxHtmlTag::ScanParam(const wxString& par, wxChar *format, void *param) const
|
||||
int wxHtmlTag::ScanParam(const wxString& par,
|
||||
const wxChar *format,
|
||||
void *param) const
|
||||
{
|
||||
wxString parval = GetParam(par);
|
||||
return wxSscanf(parval, format, param);
|
||||
|
@@ -490,6 +490,13 @@ void wxCondition::Broadcast()
|
||||
// wxThread (Posix implementation)
|
||||
//--------------------------------------------------------------------
|
||||
|
||||
#if HAVE_THREAD_CLEANUP_FUNCTIONS
|
||||
|
||||
// thread exit function
|
||||
extern "C" void wxPthreadCleanup(void *ptr);
|
||||
|
||||
#endif // HAVE_THREAD_CLEANUP_FUNCTIONS
|
||||
|
||||
class wxThreadInternal
|
||||
{
|
||||
public:
|
||||
@@ -499,11 +506,6 @@ public:
|
||||
// thread entry function
|
||||
static void *PthreadStart(void *ptr);
|
||||
|
||||
#if HAVE_THREAD_CLEANUP_FUNCTIONS
|
||||
// thread exit function
|
||||
static void PthreadCleanup(void *ptr);
|
||||
#endif
|
||||
|
||||
// thread actions
|
||||
// start the thread
|
||||
wxThreadError Run();
|
||||
@@ -549,6 +551,11 @@ public:
|
||||
// sometimes - tell the thread that it should do it
|
||||
void Notify() { m_shouldBroadcast = TRUE; }
|
||||
|
||||
#if HAVE_THREAD_CLEANUP_FUNCTIONS
|
||||
// this is used by wxPthreadCleanup() only
|
||||
static void Cleanup(wxThread *thread);
|
||||
#endif // HAVE_THREAD_CLEANUP_FUNCTIONS
|
||||
|
||||
private:
|
||||
pthread_t m_threadId; // id of the thread
|
||||
wxThreadState m_state; // see wxThreadState enum
|
||||
@@ -615,7 +622,7 @@ void *wxThreadInternal::PthreadStart(void *ptr)
|
||||
#if HAVE_THREAD_CLEANUP_FUNCTIONS
|
||||
// install the cleanup handler which will be called if the thread is
|
||||
// cancelled
|
||||
pthread_cleanup_push(wxThreadInternal::PthreadCleanup, ptr);
|
||||
pthread_cleanup_push(wxPthreadCleanup, ptr);
|
||||
#endif // HAVE_THREAD_CLEANUP_FUNCTIONS
|
||||
|
||||
// wait for the condition to be signaled from Run()
|
||||
@@ -645,7 +652,7 @@ void *wxThreadInternal::PthreadStart(void *ptr)
|
||||
pthread->GetId());
|
||||
|
||||
// change the state of the thread to "exited" so that
|
||||
// PthreadCleanup handler won't do anything from now (if it's
|
||||
// wxPthreadCleanup handler won't do anything from now (if it's
|
||||
// called before we do pthread_cleanup_pop below)
|
||||
pthread->SetState(STATE_EXITED);
|
||||
}
|
||||
@@ -679,10 +686,13 @@ void *wxThreadInternal::PthreadStart(void *ptr)
|
||||
#if HAVE_THREAD_CLEANUP_FUNCTIONS
|
||||
|
||||
// this handler is called when the thread is cancelled
|
||||
void wxThreadInternal::PthreadCleanup(void *ptr)
|
||||
extern "C" void wxPthreadCleanup(void *ptr)
|
||||
{
|
||||
wxThread *thread = (wxThread *) ptr;
|
||||
wxThreadInternal::Cleanup((wxThread *)ptr);
|
||||
}
|
||||
|
||||
void wxThreadInternal::Cleanup(wxThread *thread)
|
||||
{
|
||||
{
|
||||
wxCriticalSectionLocker lock(thread->m_critsect);
|
||||
if ( thread->m_internal->GetState() == STATE_EXITED )
|
||||
@@ -1284,7 +1294,7 @@ wxThreadError wxThread::Kill()
|
||||
if ( m_isDetached )
|
||||
{
|
||||
// if we use cleanup function, this will be done from
|
||||
// PthreadCleanup()
|
||||
// wxPthreadCleanup()
|
||||
#if !HAVE_THREAD_CLEANUP_FUNCTIONS
|
||||
ScheduleThreadForDeletion();
|
||||
|
||||
|
@@ -1093,7 +1093,7 @@ bool wxSetEnv(const wxString& variable, const wxChar *value)
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
static void wxFatalSignalHandler(wxTYPE_SA_HANDLER)
|
||||
extern "C" void wxFatalSignalHandler(wxTYPE_SA_HANDLER)
|
||||
{
|
||||
if ( wxTheApp )
|
||||
{
|
||||
|
Reference in New Issue
Block a user