Now compiling

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@14068 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2002-02-08 17:44:23 +00:00
parent b2995a23bc
commit 7266b67235
41 changed files with 255 additions and 597 deletions

View File

@@ -93,7 +93,7 @@ logg.cpp Generic
msgdlgg.cpp Generic Generic
notebook.cpp Generic NotWin32,NotGTK,NotOS2,NotMGL,NotMac,NotMicro
numdlgg.cpp Generic
paletteg.cpp Generic NotMSW,NotX,NotOS2,NotMGL,NotMac,NotMicro
paletteg.cpp Generic NotMSW,NotX,NotX11,NotOS2,NotMGL,NotMac,NotMicro
panelg.cpp Generic
printps.cpp Generic NotMSW,NotX11
prntdlgg.cpp Generic NotMSW
@@ -601,7 +601,6 @@ utils.cpp Motif
window.cpp Motif
gsockx11.c X11 Socket
accel.cpp X11
app.cpp X11
bitmap.cpp X11
brush.cpp X11

View File

@@ -37,7 +37,7 @@
($fileobj = $file) =~ s/cp?p?$/\o/;
$project{"X11_SOURCES"} .= "x11/" . $file . " ";
$project{"GUIOBJS"} .= $fileobj . " ";
$project{"GUI_LOWLEVEL_OBJS"} .= $fileobj . " ";
}
foreach $file (sort keys %wxUNIX) {
@@ -94,8 +94,8 @@ COMMONOBJS = \
GENERICOBJS = \
#$ ExpandList("GENERICOBJS");
GUIOBJS = \
#$ ExpandList("GUIOBJS");
GUI_LOWLEVEL_OBJS = \
#$ ExpandList("GUI_LOWLEVEL_OBJS");
UNIXOBJS = \
#$ ExpandList("UNIXOBJS");

View File

@@ -105,8 +105,6 @@ private:
#include "wx/motif/accel.h"
#elif defined(__WXGTK__)
#include "wx/gtk/accel.h"
#elif defined(__WXX11__)
#include "wx/x11/accel.h"
#elif defined(__WXMAC__)
#include "wx/mac/accel.h"
#elif defined(__WXPM__)

View File

@@ -21,7 +21,7 @@
#include "wx/colour.h"
#include "wx/gdicmn.h"
#if (defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMAC__)) && wxUSE_POSTSCRIPT
#if (defined(__WXMOTIF__) || defined(__WXX11__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMAC__)) && wxUSE_POSTSCRIPT
class WXDLLEXPORT wxPrintSetupData;
#endif
@@ -165,7 +165,7 @@ class WXDLLEXPORT wxPrintData: public wxObject
void operator=(const wxPrintData& data);
// For compatibility
#if (defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMAC__)) && wxUSE_POSTSCRIPT
#if (defined(__WXMOTIF__) || defined(__WXX11__) || defined(__WXGTK__) || defined(__WXPM__) || defined(__WXMAC__)) && wxUSE_POSTSCRIPT
void operator=(const wxPrintSetupData& setupData);
#endif

View File

@@ -161,6 +161,8 @@ public:
#include "wx/msw/ole/dataobj.h"
#elif defined(__WXMOTIF__)
#include "wx/motif/dataobj.h"
#elif defined(__WXX11__)
#include "wx/x11/dataobj.h"
#elif defined(__WXGTK__)
#include "wx/gtk/dataobj.h"
#elif defined(__WXMAC__)

View File

@@ -21,7 +21,7 @@ enum
#elif defined(__WXGTK__)
#include "wx/generic/filedlgg.h"
#elif defined(__WXX11__)
#include "wx/generic/filedlg.h"
#include "wx/generic/filedlgg.h"
#elif defined(__WXMGL__)
#include "wx/generic/filedlgg.h"
#elif defined(__WXMAC__)

View File

@@ -13,6 +13,7 @@
#define _WX_PRIVATE_H_
#include "wx/defs.h"
#include "X11/Xlib.h"
class wxMouseEvent;
class wxKeyEvent;
@@ -116,5 +117,24 @@ private:
extern "C" XtAppContext wxGetAppContext();
#define wxMAX_RGB 0xff
#define wxMAX_SV 1000
#define wxSIGN(x) ((x < 0) ? -x : x)
#define wxH_WEIGHT 4
#define wxS_WEIGHT 1
#define wxV_WEIGHT 2
typedef struct wx_hsv {
int h,s,v;
} wxHSV;
#define wxMax3(x,y,z) ((x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z))
#define wxMin3(x,y,z) ((x < y) ? ((x < z) ? x : z) : ((y < z) ? y : z))
void wxHSVToXColor(wxHSV *hsv,XColor *xcolor);
void wxXColorToHSV(wxHSV *hsv,XColor *xcolor);
void wxAllocNearestColor(Display *display,Colormap colormap,XColor *xcolor);
void wxAllocColor(Display *display,Colormap colormap,XColor *xcolor);
#endif
// _WX_PRIVATE_H_

View File

@@ -425,30 +425,11 @@ void WXDLLEXPORT wxGetMousePosition( int* x, int* y );
// The resulting warnings are switched off here
#pragma message disable nosimpint
#endif
#include <X11/Xlib.h>
// #include <X11/Xlib.h>
#ifdef __VMS__
#pragma message enable nosimpint
#endif
#define wxMAX_RGB 0xff
#define wxMAX_SV 1000
#define wxSIGN(x) ((x < 0) ? -x : x)
#define wxH_WEIGHT 4
#define wxS_WEIGHT 1
#define wxV_WEIGHT 2
typedef struct wx_hsv {
int h,s,v;
} wxHSV;
#define wxMax3(x,y,z) ((x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z))
#define wxMin3(x,y,z) ((x < y) ? ((x < z) ? x : z) : ((y < z) ? y : z))
void wxHSVToXColor(wxHSV *hsv,XColor *xcolor);
void wxXColorToHSV(wxHSV *hsv,XColor *xcolor);
void wxAllocNearestColor(Display *display,Colormap colormap,XColor *xcolor);
void wxAllocColor(Display *display,Colormap colormap,XColor *xcolor);
#endif //__X__
#endif // wxUSE_GUI

View File

@@ -1,51 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: accel.h
// Purpose: wxAcceleratorTable class
// Author: Julian Smart
// Modified by:
// Created: 17/09/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_ACCEL_H_
#define _WX_ACCEL_H_
#ifdef __GNUG__
#pragma interface "accel.h"
#endif
#include "wx/object.h"
#include "wx/string.h"
#include "wx/event.h"
class WXDLLEXPORT wxAcceleratorTable: public wxObject
{
DECLARE_DYNAMIC_CLASS(wxAcceleratorTable)
public:
wxAcceleratorTable();
wxAcceleratorTable(const wxString& resource); // Load from .rc resource
wxAcceleratorTable(int n, wxAcceleratorEntry entries[]); // Load from array
// Copy constructors
wxAcceleratorTable(const wxAcceleratorTable& accel) { Ref(accel); }
wxAcceleratorTable(const wxAcceleratorTable* accel) { if (accel) Ref(*accel); }
~wxAcceleratorTable();
wxAcceleratorTable& operator = (const wxAcceleratorTable& accel) { if (*this == accel) return (*this); Ref(accel); return *this; }
bool operator == (const wxAcceleratorTable& accel) { return m_refData == accel.m_refData; }
bool operator != (const wxAcceleratorTable& accel) { return m_refData != accel.m_refData; }
bool Ok() const;
// Implementation only
int GetCount() const;
wxAcceleratorEntry* GetEntries() const;
};
WXDLLEXPORT_DATA(extern wxAcceleratorTable) wxNullAcceleratorTable;
#endif
// _WX_ACCEL_H_

View File

@@ -135,8 +135,8 @@ public:
wxBitmap(const char bits[], int width, int height, int depth = 1);
// from XPM
wxBitmap(const char **data) { (void)CreateFromXpm(data); }
wxBitmap(char **data) { (void)CreateFromXpm((const char **)data); }
wxBitmap(const char **data) { (void) Create((void *)data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0); }
wxBitmap(char **data) { (void) Create((void *)data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0); }
// Load a file or resource
wxBitmap(const wxString& name, long type = wxBITMAP_TYPE_XPM);
@@ -162,6 +162,8 @@ public:
wxImage ConvertToImage() const;
bool CopyFromIcon(const wxIcon& icon);
bool Ok() const { return (M_BITMAPDATA && M_BITMAPDATA->m_ok); }
int GetWidth() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_width : 0); }
int GetHeight() const { return (M_BITMAPDATA ? M_BITMAPDATA->m_height : 0); }
@@ -205,7 +207,6 @@ protected:
static wxList sm_handlers;
protected:
bool CreateFromXpm(const char **bits);
bool CreateFromImage(const wxImage& image, int depth);
};

View File

@@ -51,6 +51,8 @@ public:
inline bool operator != (const wxIcon& icon) const { return m_refData != icon.m_refData; }
virtual bool Ok() const { return ((m_refData != NULL) && (M_ICONDATA->m_ok)); }
bool CopyFromBitmap(const wxBitmap& bitmap);
};
#endif

View File

@@ -69,7 +69,7 @@ public:
bool operator == (const wxPalette& palette) const { return m_refData == palette.m_refData; }
bool operator != (const wxPalette& palette) const { return m_refData != palette.m_refData; }
// Motif-specific
// X-specific
WXColormap GetXColormap(WXDisplay* display = NULL) const;
bool TransferBitmap(void *data, int depth, int size);
bool TransferBitmap8(unsigned char *data, unsigned long size, void *dest, unsigned int bpp);

View File

@@ -13,6 +13,7 @@
#define _WX_PRIVATE_H_
#include "wx/defs.h"
#include "X11/Xlib.h"
class wxMouseEvent;
class wxKeyEvent;
@@ -77,6 +78,25 @@ extern XColor itemColors[5] ;
#define wxTOPS_INDEX 3
#define wxBOTS_INDEX 4
#define wxMAX_RGB 0xff
#define wxMAX_SV 1000
#define wxSIGN(x) ((x < 0) ? -x : x)
#define wxH_WEIGHT 4
#define wxS_WEIGHT 1
#define wxV_WEIGHT 2
typedef struct wx_hsv {
int h,s,v;
} wxHSV;
#define wxMax3(x,y,z) ((x > y) ? ((x > z) ? x : z) : ((y > z) ? y : z))
#define wxMin3(x,y,z) ((x < y) ? ((x < z) ? x : z) : ((y < z) ? y : z))
void wxHSVToXColor(wxHSV *hsv,XColor *xcolor);
void wxXColorToHSV(wxHSV *hsv,XColor *xcolor);
void wxAllocNearestColor(Display *display,Colormap colormap,XColor *xcolor);
void wxAllocColor(Display *display,Colormap colormap,XColor *xcolor);
// ----------------------------------------------------------------------------
// accessors for C modules
// ----------------------------------------------------------------------------

View File

@@ -55,6 +55,10 @@
#endif
#endif
#ifdef __WXX11__
#include "X11/Xlib.h"
#endif
IMPLEMENT_CLASS(wxColourDatabase, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxFontList, wxList)
IMPLEMENT_DYNAMIC_CLASS(wxPenList, wxList)
@@ -370,12 +374,9 @@ wxColour *wxColourDatabase::FindColour(const wxString& colour)
#ifdef __WXMOTIF__
Display *display = XtDisplay((Widget) wxTheApp->GetTopLevelWidget()) ;
#endif
#ifdef __XVIEW__
Xv_Screen screen = xv_get(xview_server, SERVER_NTH_SCREEN, 0);
Xv_opaque root_window = xv_get(screen, XV_ROOT);
Display *display = (Display *)xv_get(root_window, XV_DISPLAY);
#ifdef __WXX11__
Display* display = (Display*) wxGetDisplay();
#endif
/* MATTHEW: [4] Use wxGetMainColormap */
if (!XParseColor(display, (Colormap) wxTheApp->GetMainColormap((WXDisplay*) display), colour,&xcolour))
return NULL;

View File

@@ -1,116 +0,0 @@
/////////////////////////////////////////////////////////////////////////////
// Name: accel.cpp
// Purpose: wxAcceleratorTable
// Author: Julian Smart
// Modified by:
// Created: 17/09/98
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation "accel.h"
#endif
#include "wx/setup.h"
#include "wx/accel.h"
#include "wx/string.h"
#include "wx/utils.h"
#include <ctype.h>
IMPLEMENT_DYNAMIC_CLASS(wxAcceleratorTable, wxObject)
class WXDLLEXPORT wxAcceleratorRefData: public wxObjectRefData
{
friend class WXDLLEXPORT wxAcceleratorTable;
public:
wxAcceleratorRefData();
~wxAcceleratorRefData();
public:
int m_count;
wxAcceleratorEntry* m_entries;
};
#define M_ACCELDATA ((wxAcceleratorRefData *)m_refData)
wxAcceleratorRefData::wxAcceleratorRefData()
{
m_count = 0;
m_entries = (wxAcceleratorEntry*) NULL;
}
wxAcceleratorRefData::~wxAcceleratorRefData()
{
delete[] m_entries;
m_entries = (wxAcceleratorEntry*) NULL;
m_count = 0;
}
wxAcceleratorTable::wxAcceleratorTable()
{
m_refData = (wxAcceleratorRefData*) NULL;
}
wxAcceleratorTable::~wxAcceleratorTable()
{
// Data deleted in ~wxObject
}
// Load from .rc resource
wxAcceleratorTable::wxAcceleratorTable(const wxString& WXUNUSED(resource))
{
m_refData = new wxAcceleratorRefData;
}
// Create from an array
wxAcceleratorTable::wxAcceleratorTable(int n, wxAcceleratorEntry entries[])
{
wxAcceleratorRefData* data = new wxAcceleratorRefData;
m_refData = data;
data->m_count = n;
data->m_entries = new wxAcceleratorEntry[n];
int i;
for (i = 0; i < n; i++)
data->m_entries[i] = entries[i];
}
bool wxAcceleratorTable::Ok() const
{
return (m_refData != (wxAcceleratorRefData*) NULL);
}
int wxAcceleratorTable::GetCount() const
{
return M_ACCELDATA->m_count;
}
wxAcceleratorEntry* wxAcceleratorTable::GetEntries() const
{
return M_ACCELDATA->m_entries;
}
// Implementation use only
bool wxAcceleratorEntry::MatchesEvent(const wxKeyEvent& event) const
{
bool eventAltDown = event.AltDown();
bool eventCtrlDown = event.ControlDown();
bool eventShiftDown = event.ShiftDown();
int eventKeyCode = event.KeyCode();
bool accAltDown = ((GetFlags() & wxACCEL_ALT) == wxACCEL_ALT);
bool accCtrlDown = ((GetFlags() & wxACCEL_CTRL) == wxACCEL_CTRL);
bool accShiftDown = ((GetFlags() & wxACCEL_SHIFT) == wxACCEL_SHIFT);
int accKeyCode = GetKeyCode();
int accKeyCode2 = GetKeyCode();
if (isascii(accKeyCode2))
accKeyCode2 = tolower(accKeyCode2);
return ((eventAltDown == accAltDown) && (eventCtrlDown == accCtrlDown) &&
(eventShiftDown == accShiftDown) &&
((eventKeyCode == accKeyCode || eventKeyCode == accKeyCode2))) ;
}

View File

@@ -73,6 +73,8 @@ typedef int (*XErrorHandlerFunc)(Display *, XErrorEvent *);
XErrorHandlerFunc gs_pfnXErrorHandler = 0;
static Window XGetParent(Window window);
static int wxXErrorHandler(Display *dpy, XErrorEvent *xevent)
{
// just forward to the default handler for now
@@ -315,13 +317,13 @@ void wxApp::ProcessXEvent(WXEvent* _event)
if (win)
{
wxKeyEvent keyEvent(wxEVT_KEY_DOWN);
wxTranslateKeyEvent(keyEvent, win, window, xEvent);
wxTranslateKeyEvent(keyEvent, win, window, event);
// We didn't process wxEVT_KEY_DOWN, so send
// wxEVT_KEY_CHAR
// wxEVT_CHAR
if (!win->ProcessEvent( keyEvent ))
{
keyEvent.SetEventType(wxEVT_KEY_CHAR);
keyEvent.SetEventType(wxEVT_CHAR);
win->ProcessEvent( keyEvent );
}
@@ -354,7 +356,7 @@ void wxApp::ProcessXEvent(WXEvent* _event)
* window is recieved. Prevents flicker as windows are resized.
*/
Display *disp = wxGetDisplay();
Display *disp = (Display*) wxGetDisplay();
XEvent report;
// to avoid flicker
@@ -370,7 +372,7 @@ void wxApp::ProcessXEvent(WXEvent* _event)
wxSizeEvent sizeEvent(sz, win->GetId());
sizeEvent.SetEventObject(win);
win->ProcessEvent( wxevent );
win->ProcessEvent( sizeEvent );
}
return;
@@ -589,8 +591,8 @@ bool wxApp::OnInitGui()
(const char*) className);
exit(-1);
}
XSelectInput(m_initialDisplay,
XDefaultRootWindow(m_initialDisplay),
XSelectInput((Display*) m_initialDisplay,
XDefaultRootWindow((Display*) m_initialDisplay),
PropertyChangeMask);
#ifdef __WXDEBUG__
@@ -624,7 +626,7 @@ static Window XGetParent(Window window)
{
Window parent, root = 0;
unsigned int noChildren = 0;
if (XQueryTree(wxGetDisplay(), window, & root, & parent,
if (XQueryTree((Display*) wxGetDisplay(), window, & root, & parent,
NULL, & noChildren))
return parent;
else

6
src/x11/bdiag.xbm Normal file
View File

@@ -0,0 +1,6 @@
#define bdiag_width 16
#define bdiag_height 16
static char bdiag_bits[] = {
0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10, 0x08, 0x08, 0x04, 0x04,
0x02, 0x02, 0x01, 0x01, 0x80, 0x80, 0x40, 0x40, 0x20, 0x20, 0x10, 0x10,
0x08, 0x08, 0x04, 0x04, 0x02, 0x02, 0x01, 0x01};

View File

@@ -115,11 +115,6 @@ wxBitmap::wxBitmap(const wxString& filename, long type)
LoadFile(filename, (int)type);
}
wxBitmap::wxBitmap(char **data)
{
(void) Create((void *)data, wxBITMAP_TYPE_XPM_DATA, 0, 0, 0);
}
bool wxBitmap::Create(int w, int h, int d)
{
UnRef();
@@ -502,200 +497,6 @@ bool wxXBMDataHandler::Create( wxBitmap *bitmap, void *data, long WXUNUSED(flags
return TRUE;
}
#if wxHAVE_LIB_XPM
class WXDLLEXPORT wxXPMFileHandler: public wxBitmapHandler
{
DECLARE_DYNAMIC_CLASS(wxXPMFileHandler)
public:
inline wxXPMFileHandler()
{
m_name = "XPM file";
m_extension = "xpm";
m_type = wxBITMAP_TYPE_XPM;
};
virtual bool LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
int desiredWidth, int desiredHeight);
virtual bool SaveFile(wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette = NULL);
};
IMPLEMENT_DYNAMIC_CLASS(wxXPMFileHandler, wxBitmapHandler)
bool wxXPMFileHandler::LoadFile( wxBitmap *bitmap, const wxString& name, long WXUNUSED(flags),
int WXUNUSED(desiredWidth), int WXUNUSED(desiredHeight) )
{
Display *dpy = (Display*) wxGetDisplay();
M_BITMAPHANDLERDATA->m_display = (WXDisplay*) dpy;
XpmAttributes xpmAttr;
Pixmap pixmap;
Pixmap mask = 0;
M_BITMAPHANDLERDATA->m_ok = FALSE;
xpmAttr.valuemask = XpmReturnInfos | XpmCloseness;
xpmAttr.closeness = 40000;
int errorStatus = XpmReadFileToPixmap(dpy,
RootWindow(dpy, DefaultScreen(dpy)), (char*) (const char*) name,
&pixmap, &mask, &xpmAttr);
if (errorStatus == XpmSuccess)
{
M_BITMAPHANDLERDATA->m_pixmap = (WXPixmap) pixmap;
if ( mask )
{
M_BITMAPHANDLERDATA->m_bitmapMask = new wxMask;
M_BITMAPHANDLERDATA->m_bitmapMask->SetPixmap((WXPixmap) mask);
}
unsigned int depthRet;
int xRet, yRet;
unsigned int widthRet, heightRet, borderWidthRet;
Window rootWindowRet;
XGetGeometry(dpy, pixmap, &rootWindowRet, &xRet, &yRet,
&widthRet, &heightRet, &borderWidthRet, &depthRet);
M_BITMAPHANDLERDATA->m_width = xpmAttr.width;
M_BITMAPHANDLERDATA->m_height = xpmAttr.height;
/*
if ( xpmAttr.npixels > 2 )
{
M_BITMAPHANDLERDATA->m_depth = 8; // TODO: next time not just a guess :-) ...
} else
{
M_BITMAPHANDLERDATA->m_depth = 1; // mono
}
*/
M_BITMAPHANDLERDATA->m_depth = depthRet;
M_BITMAPHANDLERDATA->m_numColors = xpmAttr.npixels;
XpmFreeAttributes(&xpmAttr);
M_BITMAPHANDLERDATA->m_ok = TRUE;
return TRUE;
} else
{
// XpmDebugError(errorStatus, name);
M_BITMAPHANDLERDATA->m_ok = FALSE;
return FALSE;
}
}
bool wxXPMFileHandler::SaveFile( wxBitmap *bitmap, const wxString& name, int WXUNUSED(type),
const wxPalette *WXUNUSED(palette))
{
if (M_BITMAPHANDLERDATA->m_ok && M_BITMAPHANDLERDATA->m_pixmap)
{
Display *dpy = (Display*) M_BITMAPHANDLERDATA->m_display;
int errorStatus = XpmWriteFileFromPixmap(dpy, (char*) (const char*) name,
(Pixmap) M_BITMAPHANDLERDATA->m_pixmap,
(M_BITMAPHANDLERDATA->m_bitmapMask ? (Pixmap) M_BITMAPHANDLERDATA->m_bitmapMask->GetPixmap() : (Pixmap) 0),
(XpmAttributes *) NULL);
if (errorStatus == XpmSuccess)
return TRUE;
else
return FALSE;
}
else
return FALSE;
}
class WXDLLEXPORT wxXPMDataHandler: public wxBitmapHandler
{
DECLARE_DYNAMIC_CLASS(wxXPMDataHandler)
public:
inline wxXPMDataHandler()
{
m_name = "XPM data";
m_extension = "xpm";
m_type = wxBITMAP_TYPE_XPM_DATA;
};
virtual bool Create(wxBitmap *bitmap, void *data, long flags, int width, int height, int depth = 1);
};
IMPLEMENT_DYNAMIC_CLASS(wxXPMDataHandler, wxBitmapHandler)
bool wxXPMDataHandler::Create( wxBitmap *bitmap, void *data, long WXUNUSED(flags),
int width, int height, int WXUNUSED(depth))
{
M_BITMAPHANDLERDATA->m_width = width;
M_BITMAPHANDLERDATA->m_height = height;
M_BITMAPHANDLERDATA->m_depth = 1;
M_BITMAPHANDLERDATA->m_freePixmap = TRUE;
Display *dpy = (Display*) wxGetDisplay();
M_BITMAPHANDLERDATA->m_display = (WXDisplay*) dpy;
XpmAttributes xpmAttr;
xpmAttr.valuemask = XpmReturnInfos; /* nothing yet, but get infos back */
XpmColorSymbol symbolicColors[4];
if (sg_Control && sg_Control->GetMainWidget())
{
symbolicColors[0].name = "foreground";
symbolicColors[0].value = NULL;
symbolicColors[1].name = "background";
symbolicColors[1].value = NULL;
XtVaGetValues((Widget) sg_Control->GetMainWidget(),
XmNforeground, &symbolicColors[0].pixel,
XmNbackground, &symbolicColors[1].pixel,NULL);
xpmAttr.numsymbols = 2;
xpmAttr.colorsymbols = symbolicColors;
xpmAttr.valuemask |= XpmColorSymbols; // add flag
}
Pixmap pixmap;
Pixmap mask = 0;
int ErrorStatus = XpmCreatePixmapFromData(dpy, RootWindow(dpy, DefaultScreen(dpy)),
(char**) data, &pixmap, &mask, &xpmAttr);
if (ErrorStatus == XpmSuccess)
{
// Set attributes
M_BITMAPHANDLERDATA->m_width = xpmAttr.width;
M_BITMAPHANDLERDATA->m_height = xpmAttr.height;
unsigned int depthRet;
int xRet, yRet;
unsigned int widthRet, heightRet, borderWidthRet;
Window rootWindowRet;
XGetGeometry(dpy, pixmap, &rootWindowRet, &xRet, &yRet,
&widthRet, &heightRet, &borderWidthRet, &depthRet);
/*
if ( xpmAttr.npixels > 2 )
{
M_BITMAPHANDLERDATA->m_depth = 8; // next time not just a guess :-) ...
} else
{
M_BITMAPHANDLERDATA->m_depth = 1; // mono
}
*/
M_BITMAPHANDLERDATA->m_depth = depthRet;
M_BITMAPHANDLERDATA->m_numColors = xpmAttr.npixels;
XpmFreeAttributes(&xpmAttr);
M_BITMAPHANDLERDATA->m_ok = TRUE;
M_BITMAPHANDLERDATA->m_pixmap = (WXPixmap) pixmap;
if ( mask )
{
M_BITMAPHANDLERDATA->m_bitmapMask = new wxMask;
M_BITMAPHANDLERDATA->m_bitmapMask->SetPixmap((WXPixmap) mask);
}
}
else
{
// XpmDebugError(ErrorStatus, NULL);
M_BITMAPHANDLERDATA->m_ok = FALSE;
}
return M_BITMAPHANDLERDATA->m_ok ;
}
#endif // wxHAVE_LIB_XPM
void wxBitmap::CleanUpHandlers()
{
wxNode *node = sm_handlers.First();
@@ -715,106 +516,7 @@ void wxBitmap::InitStandardHandlers()
AddHandler(new wxXBMFileHandler);
AddHandler(new wxXBMDataHandler);
// XPM is considered standard for Motif, although it can be omitted if
// libXpm is not installed
#if wxHAVE_LIB_XPM
AddHandler(new wxXPMFileHandler);
AddHandler(new wxXPMDataHandler);
#endif // wxHAVE_LIB_XPM
}
// We may need this sometime...
/****************************************************************************
NAME
XCreateInsensitivePixmap - create a grayed-out copy of a pixmap
SYNOPSIS
Pixmap XCreateInsensitivePixmap( Display *display, Pixmap pixmap )
DESCRIPTION
This function creates a grayed-out copy of the argument pixmap, suitable
for use as a XmLabel's XmNlabelInsensitivePixmap resource.
RETURN VALUES
The return value is the new Pixmap id or zero on error. Errors include
a NULL display argument or an invalid Pixmap argument.
ERRORS
If one of the XLib functions fail, it will produce a X error. The
default X error handler prints a diagnostic and calls exit().
SEE ALSO
XCopyArea(3), XCreateBitmapFromData(3), XCreateGC(3), XCreatePixmap(3),
XFillRectangle(3), exit(2)
AUTHOR
John R Veregge - john@puente.jpl.nasa.gov
Advanced Engineering and Prototyping Group (AEG)
Information Systems Technology Section (395)
Jet Propulsion Lab - Calif Institute of Technology
*****************************************************************************/
Pixmap
XCreateInsensitivePixmap( Display *display, Pixmap pixmap )
{
static char stipple_data[] =
{
0x55, 0x55, 0xAA, 0xAA, 0x55, 0x55, 0xAA, 0xAA,
0x55, 0x55, 0xAA, 0xAA, 0x55, 0x55, 0xAA, 0xAA,
0x55, 0x55, 0xAA, 0xAA, 0x55, 0x55, 0xAA, 0xAA,
0x55, 0x55, 0xAA, 0xAA, 0x55, 0x55, 0xAA, 0xAA
};
GC gc;
Pixmap ipixmap, stipple;
unsigned width, height, depth;
Window window; /* These return values */
unsigned border; /* from XGetGeometry() */
int x, y; /* are not needed. */
ipixmap = 0;
if ( NULL == display || 0 == pixmap )
return ipixmap;
if ( 0 == XGetGeometry( display, pixmap, &window, &x, &y,
&width, &height, &border, &depth )
)
return ipixmap; /* BadDrawable: probably an invalid pixmap */
/* Get the stipple pixmap to be used to 'gray-out' the argument pixmap.
*/
stipple = XCreateBitmapFromData( display, pixmap, stipple_data, 16, 16 );
if ( 0 != stipple )
{
gc = XCreateGC( display, pixmap, (XtGCMask)0, (XGCValues*)NULL );
if ( NULL != gc )
{
/* Create an identical copy of the argument pixmap.
*/
ipixmap = XCreatePixmap( display, pixmap, width, height, depth );
if ( 0 != ipixmap )
{
/* Copy the argument pixmap into the new pixmap.
*/
XCopyArea( display, pixmap, ipixmap,
gc, 0, 0, width, height, 0, 0 );
/* Refill the new pixmap using the stipple algorithm/pixmap.
*/
XSetStipple( display, gc, stipple );
XSetFillStyle( display, gc, FillStippled );
XFillRectangle( display, ipixmap, gc, 0, 0, width, height );
}
XFreeGC( display, gc );
}
XFreePixmap( display, stipple );
}
return ipixmap;
// XPM will be handled by wxImage
}
// Creates a bitmap with transparent areas drawn in
@@ -838,9 +540,6 @@ wxBitmap wxCreateMaskedBitmap(const wxBitmap& bitmap, wxColour& colour)
return newBitmap;
}
//-----------------------------------------------------------------------------
// wxImage conversion routines
//-----------------------------------------------------------------------------
@@ -1205,7 +904,7 @@ bool wxBitmap::CreateFromImage( const wxImage& image, int depth )
{
wxBitmap maskBitmap(width, height, 1);
GC gcMask = XCreateGC( dpy, (Pixmap) maskBitmap.GetPixmap(), (XtGCMask) 0, (XGCValues*)NULL );
GC gcMask = XCreateGC( dpy, (Pixmap) maskBitmap.GetPixmap(), 0, (XGCValues*)NULL );
XPutImage( dpy, (Drawable)maskBitmap.GetPixmap(), gcMask, mask_image, 0, 0, 0, 0, width, height );
XDestroyImage( mask_image );
@@ -1342,3 +1041,9 @@ wxImage wxBitmap::ConvertToImage() const
return image;
}
bool wxBitmap::CopyFromIcon(const wxIcon& icon)
{
// TODO
return FALSE;
}

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/motif/brush.cpp
// Name: src/x11/brush.cpp
// Purpose: wxBrush
// Author: Julian Smart
// Modified by:

6
src/x11/cdiag.xbm Normal file
View File

@@ -0,0 +1,6 @@
#define cdiag_width 16
#define cdiag_height 16
static char cdiag_bits[] = {
0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18, 0x18, 0x18, 0x24, 0x24,
0x42, 0x42, 0x81, 0x81, 0x81, 0x81, 0x42, 0x42, 0x24, 0x24, 0x18, 0x18,
0x18, 0x18, 0x24, 0x24, 0x42, 0x42, 0x81, 0x81};

View File

@@ -77,6 +77,9 @@ bool wxClipboardOpen()
bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat)
{
// TODO
return FALSE;
#if 0
// Only text is supported.
if (dataFormat != wxDF_TEXT)
return FALSE;
@@ -86,7 +89,7 @@ bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat)
Window window = (Window) 0;
if (wxTheApp->GetTopWindow())
window = XtWindow( (Widget) wxTheApp->GetTopWindow()->GetTopWidget() );
window = XtWindow( (Widget) wxTheApp->GetTopWindow()->GetTopWindow() );
int success = XmClipboardRetrieve((Display*) wxGetDisplay(),
window, "TEXT", (XtPointer) 0, 0, & numBytes, & privateId) ;
@@ -97,10 +100,14 @@ bool wxIsClipboardFormatAvailable(wxDataFormat dataFormat)
return FALSE;
else
return TRUE;
#endif
}
bool wxSetClipboardData(wxDataFormat dataFormat, wxObject *obj, int WXUNUSED(width), int WXUNUSED(height))
{
// TODO
return FALSE;
#if 0
if (dataFormat != wxDF_TEXT)
return FALSE;
@@ -147,10 +154,14 @@ bool wxSetClipboardData(wxDataFormat dataFormat, wxObject *obj, int WXUNUSED(wid
;
return TRUE;
#endif
}
wxObject *wxGetClipboardData(wxDataFormat dataFormat, long *len)
{
// TODO
return FALSE;
#if 0
if (dataFormat != wxDF_TEXT)
return (wxObject*) NULL;
@@ -206,6 +217,7 @@ wxObject *wxGetClipboardData(wxDataFormat dataFormat, long *len)
}
return NULL;
#endif
}
wxDataFormat wxEnumClipboardFormats(wxDataFormat dataFormat)

View File

@@ -28,7 +28,7 @@
#pragma message enable nosimpint
#endif
#include "wx/motif/private.h"
#include "wx/x11/private.h"
IMPLEMENT_DYNAMIC_CLASS(wxColour, wxObject)

6
src/x11/cross.xbm Normal file
View File

@@ -0,0 +1,6 @@
#define cross_width 15
#define cross_height 15
static char cross_bits[] = {
0x84, 0x10, 0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10,
0x84, 0x10, 0xff, 0x7f, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10,
0xff, 0x7f, 0x84, 0x10, 0x84, 0x10};

View File

@@ -23,6 +23,7 @@
#pragma message disable nosimpint
#endif
#include <X11/cursorfont.h>
#include <X11/Xutil.h>
#ifdef __VMS__
#pragma message enable nosimpint
#endif

View File

@@ -25,6 +25,7 @@
#pragma message enable nosimpint
#endif
#include "wx/utils.h"
#include "wx/x11/private.h"
//-------------------------------------------------------------------------
// global data

View File

@@ -51,6 +51,8 @@
#ifdef __VMS__
#pragma message disable nosimpint
#endif
#include "X11/Xlib.h"
#include "X11/Xutil.h"
#ifdef __VMS__
#pragma message enable nosimpint
#endif

View File

@@ -24,7 +24,7 @@
#pragma message enable nosimpint
#endif
#include "wx/motif/private.h"
#include "wx/x11/private.h"
//-----------------------------------------------------------------------------
// wxMemoryDC

View File

@@ -25,7 +25,9 @@
#include "wx/app.h"
#include "wx/evtloop.h"
#include "wx/tooltip.h"
#if wxUSE_THREADS
#include "wx/thread.h"
#endif
#include "wx/x11/private.h"
#include "X11/Xlib.h"
@@ -52,7 +54,7 @@ public:
public:
// preprocess an event, return TRUE if processed (i.e. no further
// dispatching required)
bool PreProcessMessage(XEvent* event);
bool PreProcessEvent(XEvent* event);
// the exit code of the event loop
int m_exitcode;
@@ -152,7 +154,7 @@ int wxEventLoop::Run()
m_impl->m_keepGoing = TRUE;
while ( m_impl->m_keepGoing )
{
#if wxUSE_THREADS
#if 0 // wxUSE_THREADS
wxMutexGuiLeaveOrEnter();
#endif // wxUSE_THREADS
@@ -162,7 +164,7 @@ int wxEventLoop::Run()
{
if (!m_impl->SendIdleEvent())
{
#if wxUSE_THREADS
#if 0 // wxUSE_THREADS
// leave the main loop to give other threads a chance to
// perform their GUI work
wxMutexGuiLeave();
@@ -205,8 +207,8 @@ void wxEventLoop::Exit(int rc)
bool wxEventLoop::Pending() const
{
XFlush(wxGetDisplay());
return (XPending(wxGetDisplay()) > 0);
XFlush((Display*) wxGetDisplay());
return (XPending((Display*) wxGetDisplay()) > 0);
}
bool wxEventLoop::Dispatch()
@@ -215,7 +217,7 @@ bool wxEventLoop::Dispatch()
// TODO allowing for threads, as per e.g. wxMSW
XNextEvent(wxGetDisplay(), & event);
XNextEvent((Display*) wxGetDisplay(), & event);
m_impl->ProcessEvent(& event);
return TRUE;
}

6
src/x11/fdiag.xbm Normal file
View File

@@ -0,0 +1,6 @@
#define fdiag_width 16
#define fdiag_height 16
static char fdiag_bits[] = {
0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08, 0x10, 0x10, 0x20, 0x20,
0x40, 0x40, 0x80, 0x80, 0x01, 0x01, 0x02, 0x02, 0x04, 0x04, 0x08, 0x08,
0x10, 0x10, 0x20, 0x20, 0x40, 0x40, 0x80, 0x80};

View File

@@ -27,7 +27,6 @@ ALL_SOURCES = \
generic/msgdlgg.cpp \
generic/notebook.cpp \
generic/numdlgg.cpp \
generic/paletteg.cpp \
generic/panelg.cpp \
generic/printps.cpp \
generic/prntdlgg.cpp \
@@ -175,7 +174,6 @@ ALL_SOURCES = \
common/xpmdecod.cpp \
common/zipstrm.cpp \
common/zstream.cpp \
x11/accel.cpp \
x11/app.cpp \
x11/bitmap.cpp \
x11/brush.cpp \
@@ -712,7 +710,6 @@ GENERICOBJS = \
msgdlgg.o \
notebook.o \
numdlgg.o \
paletteg.o \
panelg.o \
printps.o \
prntdlgg.o \
@@ -736,8 +733,7 @@ GENERICOBJS = \
treelay.o \
wizard.o
GUIOBJS = \
accel.o \
GUI_LOWLEVEL_OBJS = \
app.o \
bitmap.o \
brush.o \

6
src/x11/horiz.xbm Normal file
View File

@@ -0,0 +1,6 @@
#define horiz_width 15
#define horiz_height 15
static char horiz_bits[] = {
0x00, 0x00, 0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0xff, 0x7f, 0x00, 0x00, 0x00, 0x00};

View File

@@ -79,3 +79,8 @@ bool wxIcon::LoadFile(const wxString& filename, long type,
return FALSE;
}
bool wxIcon::CopyFromBitmap(const wxBitmap& bitmap)
{
// TODO
return FALSE;
}

View File

@@ -50,7 +50,7 @@ not the functionality that wxPalette::Create() aims to provide.
#ifdef __VMS__
#pragma message enable nosimpint
#endif
#include "wx/motif/private.h"
#include "wx/x11/private.h"
IMPLEMENT_DYNAMIC_CLASS(wxPalette, wxGDIObject)
IMPLEMENT_DYNAMIC_CLASS(wxXPalette, wxObject)

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: src/motif/pen.cpp
// Name: src/x11/pen.cpp
// Purpose: wxPen
// Author: Julian Smart
// Modified by:

View File

@@ -14,15 +14,17 @@
#include "wx/region.h"
#include "wx/gdicmn.h"
#include "wx/window.h"
#ifdef __VMS__
#pragma message disable nosimpint
#endif
#include "wx/x11/private.h"
#include "X11/Xutil.h"
#ifdef __VMS__
#pragma message enable nosimpint
#endif
// #include "wx/x11/private.h"
IMPLEMENT_DYNAMIC_CLASS(wxRegion, wxGDIObject)
IMPLEMENT_DYNAMIC_CLASS(wxRegionIterator, wxObject)

View File

@@ -40,12 +40,15 @@ void wxTimerCallback (wxTimer * timer)
if (timer->m_id == 0)
return; // Avoid to process spurious timer events
// TODO
#if 0
if (!timer->m_oneShot)
timer->m_id = XtAppAddTimeOut((XtAppContext) wxTheApp->GetAppContext(),
timer->m_milli,
(XtTimerCallbackProc) wxTimerCallback,
(XtPointer) timer);
else
#endif
timer->m_id = 0;
timer->Notify();
@@ -71,11 +74,13 @@ bool wxTimer::Start(int milliseconds, bool mode)
if (!wxTimerList.Find((long)this))
wxTimerList.Append((long)this, this);
// TODO
#if 0
m_id = XtAppAddTimeOut((XtAppContext) wxTheApp->GetAppContext(),
m_milli,
(XtTimerCallbackProc) wxTimerCallback,
(XtPointer) this);
#endif
return TRUE;
}
@@ -83,7 +88,10 @@ void wxTimer::Stop()
{
if (m_id > 0)
{
// TODO
#if 0
XtRemoveTimeOut (m_id);
#endif
m_id = 0;
}
m_milli = 0 ;

View File

@@ -1,5 +1,5 @@
/////////////////////////////////////////////////////////////////////////////
// Name: motif/toolbar.cpp
// Name: x11/toolbar.cpp
// Purpose: wxToolBar
// Author: Julian Smart
// Modified by: 13.12.99 by VZ during toolbar classes reorganization

View File

@@ -52,6 +52,8 @@
#include "wx/unix/execute.h"
#include "wx/x11/private.h"
#include "X11/Xresource.h"
#include "X11/Xutil.h"
// ----------------------------------------------------------------------------
// private functions
@@ -81,6 +83,10 @@ void wxFlushEvents()
Display *display = (Display*) wxGetDisplay();
XSync (display, FALSE);
XFlush(display);
// TODO
#if 0
// XtAppPending returns availability of events AND timers/inputs, which
// are processed via callbacks, so XtAppNextEvent will not return if
@@ -91,6 +97,7 @@ void wxFlushEvents()
// Jan Lessner: works better when events are non-X events
XtAppProcessEvent((XtAppContext) wxTheApp->GetAppContext(), XtIMXEvent);
}
#endif
}
// Check whether this window wants to process messages, e.g. Stop button
@@ -705,8 +712,6 @@ bool wxSetDisplay(const wxString& display_name)
}
else
{
Cardinal argc = 0;
Display* display = XOpenDisplay((const char*) display_name);
if (display)
@@ -813,24 +818,6 @@ char * wxFindAccelerator (const char *s)
#endif
}
XmString wxFindAcceleratorText (const char *s)
{
// VZ: this function returns incorrect keysym which completely breaks kbd
// handling
return NULL;
#if 0
// The accelerator text is after the \t char.
while (*s && *s != '\t')
s++;
if (*s == '\0')
return (NULL);
s++;
XmString text = XmStringCreateSimple ((char *)s);
return text;
#endif
}
// ----------------------------------------------------------------------------
// keycode translations
// ----------------------------------------------------------------------------

6
src/x11/verti.xbm Normal file
View File

@@ -0,0 +1,6 @@
#define verti_width 15
#define verti_height 15
static char verti_bits[] = {
0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10,
0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10, 0x84, 0x10,
0x84, 0x10, 0x84, 0x10, 0x84, 0x10};

View File

@@ -45,6 +45,7 @@
#endif
#include "wx/x11/private.h"
#include "X11/Xutil.h"
#include <string.h>
@@ -97,9 +98,9 @@ void wxWindowX11::Init()
// generic initializations first
InitBase();
// Motif-specific
// X11-specific
m_needsRefresh = TRUE;
m_mainWidget = (WXWidget) 0;
m_mainWidget = (WXWindow) 0;
m_button1Pressed =
m_button2Pressed =
@@ -114,7 +115,7 @@ void wxWindowX11::Init()
m_vScrollBar =
m_borderWidget =
m_scrolledWindow =
m_drawingArea = (WXWidget) 0;
m_drawingArea = (WXWindow) 0;
m_hScroll =
m_vScroll = FALSE;
@@ -175,14 +176,14 @@ bool wxWindowX11::Create(wxWindow *parent, wxWindowID id,
}
// Destructor
wxWindowX11::~wxWindow()
wxWindowX11::~wxWindowX11()
{
if (g_captureWindow == this)
g_captureWindow = NULL;
m_isBeingDeleted = TRUE;
// Motif-specific actions first
// X11-specific actions first
WXWindow wMain = GetMainWindow();
if ( wMain )
{
@@ -477,17 +478,17 @@ bool wxWindowX11::Show(bool show)
// Raise the window to the top of the Z order
void wxWindowX11::Raise()
{
Window window = GetTopWindow();
Window window = (Window) GetTopWindow();
if (window)
XRaiseWindow(wxGetDisplay(), window);
XRaiseWindow((Display*) wxGetDisplay(), window);
}
// Lower the window to the bottom of the Z order
void wxWindowX11::Lower()
{
Window window = GetTopWindow();
Window window = (Window) GetTopWindow();
if (window)
XLowerWindow(wxGetDisplay(), window);
XLowerWindow((Display*) wxGetDisplay(), window);
}
void wxWindowX11::SetTitle(const wxString& title)
@@ -510,7 +511,7 @@ wxString wxWindowX11::GetTitle() const
void wxWindowX11::DoCaptureMouse()
{
g_captureWindow = this;
g_captureWindow = (wxWindow*) this;
if ( m_winCaptured )
return;
@@ -581,7 +582,7 @@ void wxWindowX11::WarpPointer (int x, int y)
{
Window wClient = (Window) GetClientWindow();
XWarpPointer(wxGetDisplay(), None, wClient, 0, 0, 0, 0, x, y);
XWarpPointer((Display*) wxGetDisplay(), None, wClient, 0, 0, 0, 0, x, y);
}
// ---------------------------------------------------------------------------
@@ -627,7 +628,7 @@ int wxWindowX11::GetScrollThumb(int orient) const
#endif
}
void wxWindowX11::SetScrollPos(int WXUNUSED(orient), int WXUNUSED(pos), bool WXUNUSED(refresh))
void wxWindowX11::SetScrollPos(int orient, int pos, bool WXUNUSED(refresh))
{
// TODO
@@ -755,12 +756,12 @@ void wxWindowX11::ScrollWindow(int dx, int dy, const wxRect *rect)
int x2 = (dx >= 0) ? x + dx : x;
int y2 = (dy >= 0) ? y + dy : y;
wxClientDC dc(this);
wxClientDC dc((wxWindow*) this);
dc.SetLogicalFunction (wxCOPY);
Window window = (Window) GetMainWindow();
Display* display = wxGetDisplay();
Display* display = (Display*) wxGetDisplay();
XCopyArea(display, window, window, (GC) dc.GetGC(),
x1, y1, w1, h1, x2, y2);
@@ -978,7 +979,7 @@ void wxWindowX11::DoGetPosition(int *x, int *y) const
void wxWindowX11::DoScreenToClient(int *x, int *y) const
{
Display *display = wxGetDisplay();
Display *display = (Display*) wxGetDisplay();
Window rootWindow = RootWindowOfScreen(DefaultScreenOfDisplay(display));
Window thisWindow = (Window) GetClientWindow();
@@ -990,7 +991,7 @@ void wxWindowX11::DoScreenToClient(int *x, int *y) const
void wxWindowX11::DoClientToScreen(int *x, int *y) const
{
Display *display = wxGetDisplay();
Display *display = (Display*) wxGetDisplay();
Window rootWindow = RootWindowOfScreen(DefaultScreenOfDisplay(display));
Window thisWindow = (Window) GetClientWindow();
@@ -1237,8 +1238,8 @@ void wxWindowX11::GetTextExtent(const wxString& string,
void wxWindowX11::Refresh(bool eraseBack, const wxRect *rect)
{
m_needsRefresh = TRUE;
Display *display = wxGetDisplay();
Window thisWindow = (Widget) GetMainWindow();
Display *display = (Display*) wxGetDisplay();
Window thisWindow = (Window) GetMainWindow();
XExposeEvent dummyEvent;
int width, height;
@@ -1266,7 +1267,7 @@ void wxWindowX11::Refresh(bool eraseBack, const wxRect *rect)
if (eraseBack)
{
wxClientDC dc(this);
wxClientDC dc((wxWindow*) this);
wxBrush backgroundBrush(GetBackgroundColour(), wxSOLID);
dc.SetBackground(backgroundBrush);
if (rect)
@@ -1280,7 +1281,7 @@ void wxWindowX11::Refresh(bool eraseBack, const wxRect *rect)
void wxWindowX11::Clear()
{
wxClientDC dc(this);
wxClientDC dc((wxWindow*) this);
wxBrush brush(GetBackgroundColour(), wxSOLID);
dc.SetBackground(brush);
dc.Clear();
@@ -1352,20 +1353,15 @@ bool wxWindowX11::ProcessAccelerator(wxKeyEvent& event)
if (!m_acceleratorTable.Ok())
return FALSE;
int count = m_acceleratorTable.GetCount();
wxAcceleratorEntry* entries = m_acceleratorTable.GetEntries();
int i;
for (i = 0; i < count; i++)
{
wxAcceleratorEntry* entry = & (entries[i]);
if (entry->MatchesEvent(event))
const wxAcceleratorEntry* entry = m_acceleratorTable.GetEntry(event);
if (entry)
{
// Bingo, we have a match. Now find a control that matches the
// entry command id.
// Need to go up to the top of the window hierarchy, since it might
// be e.g. a menu item
wxWindow* parent = this;
wxWindow* parent = (wxWindow*) this;
while ( parent && !parent->IsTopLevel() )
parent = parent->GetParent();
@@ -1408,8 +1404,8 @@ bool wxWindowX11::ProcessAccelerator(wxKeyEvent& event)
}
return FALSE;
} // matches event
}// for
}// if
// We didn't match the key event against an accelerator.
return FALSE;
@@ -1456,10 +1452,10 @@ void wxDeleteWindowFromTable(Window w)
// ----------------------------------------------------------------------------
// Add to hash table, add event handler
bool wxWindowX11::AttachWidget (wxWindow* WXUNUSED(parent), WXWindow mainWidget,
bool wxWindowX11::AttachWindow (wxWindow* WXUNUSED(parent), WXWindow mainWidget,
int x, int y, int width, int height)
{
wxAddWindowToTable((Window ) mainWidget, this);
wxAddWindowToTable((Window ) mainWidget, (wxWindow*) this);
// TODO
#if 0
@@ -1503,7 +1499,7 @@ bool wxWindowX11::AttachWidget (wxWindow* WXUNUSED(parent), WXWindow mainWidget,
}
// Remove event handler, remove from hash table
bool wxWindowX11::DetachWidget(WXWindow widget)
bool wxWindowX11::DetachWindow(WXWindow widget)
{
// TODO
#if 0
@@ -1545,7 +1541,7 @@ WXWindow wxWindowX11::GetMainWindow() const
return m_mainWidget;
}
WXWindow wxWindowX11::GetClientWidget() const
WXWindow wxWindowX11::GetClientWindow() const
{
if (m_drawingArea != (WXWindow) 0)
return m_drawingArea;
@@ -1903,7 +1899,7 @@ bool wxTranslateMouseEvent(wxMouseEvent& wxevent, wxWindow *win, Window window,
// check for a double click
// TODO: where can we get this value from?
//long dclickTime = XtGetMultiClickTime((Display*) wxGetDisplay());
long dClickTime = 200;
long dclickTime = 200;
long ts = wxevent.GetTimestamp();
int buttonLast = win->GetLastClickedButton();

46
src/x11/wxwin.xbm Normal file
View File

@@ -0,0 +1,46 @@
#define wxwin.xbm_width 64
#define wxwin.xbm_height 64
static char wxwin.xbm_bits[] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xff, 0xff,
0xff, 0xff, 0x1f, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x00, 0x40, 0x80, 0xc7, 0x19,
0x8e, 0x01, 0x50, 0x00, 0x40, 0x00, 0xc7, 0x39, 0xcf, 0x01, 0x70, 0x00,
0x40, 0x00, 0xc7, 0x31, 0x3c, 0x00, 0x50, 0x00, 0x40, 0x00, 0xc7, 0x21,
0x1c, 0x00, 0x70, 0x00, 0x40, 0x80, 0xe3, 0x20, 0x38, 0x00, 0x50, 0x00,
0x40, 0x80, 0xe3, 0x30, 0x3c, 0x00, 0x70, 0x00, 0x40, 0x80, 0xe3, 0x78,
0x76, 0x01, 0x50, 0x00, 0x40, 0x00, 0xdf, 0xff, 0xf3, 0x20, 0x70, 0x00,
0x40, 0x00, 0x8e, 0xff, 0x61, 0x70, 0x50, 0x00, 0x40, 0x00, 0x00, 0xfc,
0x01, 0xf8, 0x70, 0x00, 0x40, 0x00, 0x00, 0xfc, 0x01, 0xfc, 0x51, 0x00,
0x40, 0x00, 0x00, 0xfe, 0x03, 0xfc, 0x73, 0x00, 0x40, 0x00, 0x00, 0xff,
0x03, 0xf8, 0x51, 0x00, 0x40, 0x00, 0x00, 0xff, 0x07, 0xf0, 0x70, 0x00,
0x40, 0x00, 0x80, 0xff, 0x07, 0x60, 0x50, 0x00, 0x40, 0x00, 0x80, 0xff,
0x0f, 0xfc, 0x70, 0x00, 0x40, 0x00, 0xc0, 0xff, 0x1f, 0xfc, 0x50, 0x00,
0x40, 0x00, 0xe0, 0xff, 0x1f, 0xfc, 0x70, 0x00, 0x40, 0x00, 0xf0, 0x0f,
0x00, 0xfc, 0x50, 0x00, 0x40, 0x00, 0xf0, 0x07, 0x00, 0xfc, 0x70, 0x00,
0x40, 0x00, 0xf8, 0x07, 0x00, 0xfc, 0x50, 0x00, 0x40, 0x00, 0xfc, 0x03,
0x00, 0xfc, 0x70, 0x00, 0x40, 0x00, 0xfc, 0x01, 0x00, 0xfc, 0x50, 0x00,
0x40, 0x00, 0xfe, 0x00, 0x00, 0xfc, 0x70, 0x00, 0x40, 0x00, 0xfe, 0x00,
0x00, 0xfc, 0x50, 0x00, 0x40, 0x00, 0x7f, 0x00, 0x00, 0xfc, 0x70, 0x00,
0x40, 0x80, 0x7f, 0x00, 0x00, 0xfc, 0x50, 0x00, 0x40, 0x80, 0x3f, 0x00,
0x00, 0xfc, 0x70, 0x00, 0x40, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x50, 0x00,
0x40, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00, 0x40, 0xe0, 0xff, 0xff,
0xff, 0xff, 0x50, 0x00, 0x40, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x70, 0x00,
0x40, 0xf0, 0xff, 0xff, 0xff, 0xff, 0x50, 0x00, 0x40, 0xf0, 0xff, 0xff,
0xff, 0xff, 0x70, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00,
0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00, 0x40, 0x00, 0x00, 0x00,
0x00, 0x00, 0x50, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x00,
0xc0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x5f, 0x00, 0x80, 0xaa, 0xaa, 0xaa,
0xaa, 0xaa, 0x6a, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};