From 33611ebbd99217ef90f1178eed37e30385c121de Mon Sep 17 00:00:00 2001 From: Robert Roebling Date: Mon, 11 Jun 2001 20:03:00 +0000 Subject: [PATCH] Applied wxImage::Scale() patch, Added testing code for wxSplitterWindow bug. Added testing code for OnEraseBackground things. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10542 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/configure | 2 + samples/configure.in | 1 + samples/erase/Erase.icc | 17 +++ samples/erase/EraseVC.dsp | 175 +++++++++++++++++++++++++++++++ samples/erase/EraseVC.dsw | 29 +++++ samples/erase/Makefile.in | 21 ++++ samples/erase/descrip.mms | 47 +++++++++ samples/erase/erase.cpp | 192 ++++++++++++++++++++++++++++++++++ samples/erase/erase.rc | 6 ++ samples/erase/erase.rc0 | 6 ++ samples/erase/erase.rc4 | 6 ++ samples/erase/make_cw.mcp | Bin 0 -> 133038 bytes samples/erase/makefile.b32 | 16 +++ samples/erase/makefile.bcc | 19 ++++ samples/erase/makefile.dos | 17 +++ samples/erase/makefile.g95 | 16 +++ samples/erase/makefile.sc | 36 +++++++ samples/erase/makefile.sl | 18 ++++ samples/erase/makefile.twn | 43 ++++++++ samples/erase/makefile.unx | 35 +++++++ samples/erase/makefile.va | 44 ++++++++ samples/erase/makefile.vc | 24 +++++ samples/erase/makefile.wat | 15 +++ samples/erase/makemac.mcp | Bin 0 -> 162200 bytes samples/erase/makemac6.mcp | Bin 0 -> 177358 bytes samples/erase/minimal.def | 7 ++ samples/erase/mondrian.ico | Bin 0 -> 766 bytes samples/erase/mondrian.xpm | 44 ++++++++ samples/erase/mondros2.ico | Bin 0 -> 996 bytes samples/splitter/splitter.cpp | 15 +-- src/common/image.cpp | 8 +- src/gtk/win_gtk.c | 5 + src/gtk/window.cpp | 61 +++++++++-- src/gtk1/win_gtk.c | 5 + src/gtk1/window.cpp | 61 +++++++++-- 35 files changed, 960 insertions(+), 31 deletions(-) create mode 100644 samples/erase/Erase.icc create mode 100644 samples/erase/EraseVC.dsp create mode 100644 samples/erase/EraseVC.dsw create mode 100644 samples/erase/Makefile.in create mode 100644 samples/erase/descrip.mms create mode 100644 samples/erase/erase.cpp create mode 100644 samples/erase/erase.rc create mode 100644 samples/erase/erase.rc0 create mode 100644 samples/erase/erase.rc4 create mode 100644 samples/erase/make_cw.mcp create mode 100644 samples/erase/makefile.b32 create mode 100644 samples/erase/makefile.bcc create mode 100644 samples/erase/makefile.dos create mode 100644 samples/erase/makefile.g95 create mode 100644 samples/erase/makefile.sc create mode 100644 samples/erase/makefile.sl create mode 100644 samples/erase/makefile.twn create mode 100644 samples/erase/makefile.unx create mode 100644 samples/erase/makefile.va create mode 100644 samples/erase/makefile.vc create mode 100644 samples/erase/makefile.wat create mode 100644 samples/erase/makemac.mcp create mode 100644 samples/erase/makemac6.mcp create mode 100644 samples/erase/minimal.def create mode 100644 samples/erase/mondrian.ico create mode 100644 samples/erase/mondrian.xpm create mode 100644 samples/erase/mondros2.ico diff --git a/samples/configure b/samples/configure index c5e4d1bb65..0d029ca065 100755 --- a/samples/configure +++ b/samples/configure @@ -663,6 +663,7 @@ trap 'rm -fr `echo " dragimag/Makefile drawing/Makefile dynamic/Makefile + erase/Makefile event/Makefile exec/Makefile font/Makefile @@ -808,6 +809,7 @@ CONFIG_FILES=\${CONFIG_FILES-"Makefile dragimag/Makefile drawing/Makefile dynamic/Makefile + erase/Makefile event/Makefile exec/Makefile font/Makefile diff --git a/samples/configure.in b/samples/configure.in index 191f945f1e..5d888d3a3d 100644 --- a/samples/configure.in +++ b/samples/configure.in @@ -31,6 +31,7 @@ AC_OUTPUT([ dragimag/Makefile drawing/Makefile dynamic/Makefile + erase/Makefile event/Makefile exec/Makefile font/Makefile diff --git a/samples/erase/Erase.icc b/samples/erase/Erase.icc new file mode 100644 index 0000000000..8d2e7c0500 --- /dev/null +++ b/samples/erase/Erase.icc @@ -0,0 +1,17 @@ +option ProjectOptions = gen(arch, "pentium2"), gen(manglelinkagekeywordonlyfuncs, "no"), lang(longlong, "yes"), lang(allowtypedefasclassname, "yes"), + lang(compatmath, "yes"), lang(nokeyword, "const_cast"), lang(nokeyword, "explicit"), lang(nokeyword, "export"), lang(nokeyword, "false"), + lang(nokeyword, "mutable"), lang(nokeyword, "true"), lang(nokeyword, "typename"), lang(templatedefimpls, "dontparse"), + lang(trailingenumcommas, "no"), lang(universalcharacternames, "no"), link(debug, "yes"), link(linkwithmultithreadlib, "yes"), + link(linkwithsharedlib, "yes"), link(defaultlibs, "yes"), link(defaultlibsname, "..\\..\\LIB\\wx40.lib"), + link(defaultlibsname, "..\\..\\LIB\\os2png.lib"), link(defaultlibsname, "..\\..\\LIB\\os2zlib.lib"), + link(defaultlibsname, "NETAPI32.LIB"), link(defaultlibsname, "UPM32.LIB"), link(defaultlibsname, "..\\..\\LIB\\dummy.obj"), + link(extdictionary, "no"), opt(inline, "yes"), opt(tune, "pentium2"), define("__WXPM__", ), define("__VISAGECPP__", ), + incl(searchpath, "..\\..\\src\\png"), incl(searchpath, "..\\..\\src\\jpeg"), incl(searchpath, "..\\..\\src\\xpm"), + incl(searchpath, "..\\..\\src\\zlib"), incl(searchpath, "..\\..\\Include"), macros(redefine, "yes") +{ + target "Erase.exe" + { + source type(cpp) "ERASE.CPP" + source type(rc) "ERASE.RCO" + } +} diff --git a/samples/erase/EraseVC.dsp b/samples/erase/EraseVC.dsp new file mode 100644 index 0000000000..9a438f061b --- /dev/null +++ b/samples/erase/EraseVC.dsp @@ -0,0 +1,175 @@ +# Microsoft Developer Studio Project File - Name="EraseVC" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Application" 0x0101 + +CFG=EraseVC - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "EraseVC.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "EraseVC.mak" CFG="EraseVC - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "EraseVC - Win32 Release" (based on "Win32 (x86) Application") +!MESSAGE "EraseVC - Win32 Debug" (based on "Win32 (x86) Application") +!MESSAGE "EraseVC - Win32 Debug DLL" (based on "Win32 (x86) Application") +!MESSAGE "EraseVC - Win32 Release DLL" (based on "Win32 (x86) Application") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +MTL=midl.exe +RSC=rc.exe + +!IF "$(CFG)" == "EraseVC - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "../../include" /I "../../contrib/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wx.lib png.lib zlib.lib jpeg.lib tiff.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /nodefaultlib:"msvcrtd.lib" /out:"Release/erase.exe" /libpath:"../../lib" /libpath:"../../contrib/lib" + +!ELSEIF "$(CFG)" == "EraseVC - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include" /I "../../contrib/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D DEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /Yu"wx/wxprec.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wxd.lib pngd.lib zlibd.lib jpegd.lib tiffd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /nodefaultlib:"msvcrt.lib" /out:"Debug/erase.exe" /pdbtype:sept /libpath:"../../lib" /libpath:"../../contrib/lib" + +!ELSEIF "$(CFG)" == "EraseVC - Win32 Debug DLL" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "DebugDLL" +# PROP BASE Intermediate_Dir "DebugDLL" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "DebugDLL" +# PROP Intermediate_Dir "DebugDLL" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../include" /I "../../contrib/include" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D DEBUG=1 /D "__WXDEBUG__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D WXUSINGDLL=1 /Yu"wx/wxprec.h" /FD /c +# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x809 /d "_DEBUG" +# ADD RSC /l 0x809 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wx23_1d.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcd.lib" /nodefaultlib:"libcid.lib" /out:"DebugDLL/erase.exe" /pdbtype:sept /libpath:"../../lib" /libpath:"../../contrib/lib" + +!ELSEIF "$(CFG)" == "EraseVC - Win32 Release DLL" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "ReleaseDLL" +# PROP BASE Intermediate_Dir "ReleaseDLL" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "ReleaseDLL" +# PROP Intermediate_Dir "ReleaseDLL" +# PROP Ignore_Export_Lib 0 +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c +# ADD CPP /nologo /MD /W3 /GX /O1 /Ob2 /I "../../include" /I "../../contrib/include" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "__WINDOWS__" /D "__WXMSW__" /D "__WIN95__" /D "__WIN32__" /D WINVER=0x0400 /D "STRICT" /D WXUSINGDLL=1 /FD /c +# SUBTRACT CPP /YX +# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 +# ADD BASE RSC /l 0x809 /d "NDEBUG" +# ADD RSC /l 0x809 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LINK32=link.exe +# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib wsock32.lib winmm.lib /nologo /subsystem:windows /machine:I386 +# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib winmm.lib wx23_1.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libc.lib" /nodefaultlib:"libci.lib" /out:"ReleaseDLL/erase.exe" /libpath:"../../lib" /libpath:"../../contrib/lib" + +!ENDIF + +# Begin Target + +# Name "EraseVC - Win32 Release" +# Name "EraseVC - Win32 Debug" +# Name "EraseVC - Win32 Debug DLL" +# Name "EraseVC - Win32 Release DLL" +# Begin Source File + +SOURCE=.\minimal.cpp + +!IF "$(CFG)" == "EraseVC - Win32 Release" + +!ELSEIF "$(CFG)" == "EraseVC - Win32 Debug" + +# SUBTRACT CPP /YX /Yc /Yu + +!ELSEIF "$(CFG)" == "EraseVC - Win32 Debug DLL" + +# SUBTRACT BASE CPP /YX /Yc /Yu +# SUBTRACT CPP /YX /Yc /Yu + +!ELSEIF "$(CFG)" == "EraseVC - Win32 Release DLL" + +!ENDIF + +# End Source File +# Begin Source File + +SOURCE=.\erase.rc +# ADD BASE RSC /l 0x809 +# ADD RSC /l 0x809 /i "../../include" /i "../../contrib/include" +# End Source File +# End Target +# End Project diff --git a/samples/erase/EraseVC.dsw b/samples/erase/EraseVC.dsw new file mode 100644 index 0000000000..2c6467806e --- /dev/null +++ b/samples/erase/EraseVC.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 5.00 +# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! + +############################################################################### + +Project: "EraseVC"=.\EraseVC.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/samples/erase/Makefile.in b/samples/erase/Makefile.in new file mode 100644 index 0000000000..0d9ee554b0 --- /dev/null +++ b/samples/erase/Makefile.in @@ -0,0 +1,21 @@ +# +# File: makefile.unx +# Author: Julian Smart +# Created: 1998 +# Updated: +# Copyright: (c) 1998 Julian Smart +# +# "%W% %G%" +# +# Makefile for minimal example (UNIX). + +top_srcdir = @top_srcdir@/.. +top_builddir = ../.. +program_dir = samples/erase + +PROGRAM=erase + +OBJECTS=$(PROGRAM).o + +include ../../src/makeprog.env + diff --git a/samples/erase/descrip.mms b/samples/erase/descrip.mms new file mode 100644 index 0000000000..5175f4952c --- /dev/null +++ b/samples/erase/descrip.mms @@ -0,0 +1,47 @@ +#***************************************************************************** +# * +# Make file for VMS * +# Author : J.Jansen (joukj@hrem.stm.tudelft.nl) * +# Date : 10 November 1999 * +# * +#***************************************************************************** +.first + define wx [--.include.wx] + +.ifdef __WXMOTIF__ +CXX_DEFINE = /define=(__WXMOTIF__=1)/name=(as_is,short)\ + /assume=(nostdnew,noglobal_array_new) +.else +.ifdef __WXGTK__ +CXX_DEFINE = /define=(__WXGTK__=1)/float=ieee/name=(as_is,short)/ieee=denorm\ + /assume=(nostdnew,noglobal_array_new) +.else +CXX_DEFINE = +.endif +.endif + +.suffixes : .cpp + +.cpp.obj : + cxx $(CXXFLAGS)$(CXX_DEFINE) $(MMS$TARGET_NAME).cpp + +all : +.ifdef __WXMOTIF__ + $(MMS)$(MMSQUALIFIERS) minimal.exe +.else +.ifdef __WXGTK__ + $(MMS)$(MMSQUALIFIERS) minimal_gtk.exe +.endif +.endif + +.ifdef __WXMOTIF__ +minimal.exe : minimal.obj + cxxlink minimal,[--.lib]vms/opt +.else +.ifdef __WXGTK__ +minimal_gtk.exe : minimal.obj + cxxlink/exec=minimal_gtk.exe minimal,[--.lib]vms_gtk/opt +.endif +.endif + +minimal.obj : minimal.cpp diff --git a/samples/erase/erase.cpp b/samples/erase/erase.cpp new file mode 100644 index 0000000000..8162f96f6f --- /dev/null +++ b/samples/erase/erase.cpp @@ -0,0 +1,192 @@ +///////////////////////////////////////////////////////////////////////////// +// Name: erase.cpp +// Purpose: Erase wxWindows sample +// Author: Robert Roebling +// Modified by: +// Created: 04/01/98 +// RCS-ID: $Id$ +// Copyright: (c) Robert Roebling +// Licence: wxWindows licence +///////////////////////////////////////////////////////////////////////////// + +// ============================================================================ +// declarations +// ============================================================================ + +// ---------------------------------------------------------------------------- +// headers +// ---------------------------------------------------------------------------- + +#ifdef __GNUG__ + #pragma implementation "minimal.cpp" + #pragma interface "minimal.cpp" +#endif + +// For compilers that support precompilation, includes "wx/wx.h". +#include "wx/wxprec.h" + +#ifdef __BORLANDC__ + #pragma hdrstop +#endif + +// for all others, include the necessary headers (this file is usually all you +// need because it includes almost all "standard" wxWindows headers) +#ifndef WX_PRECOMP + #include "wx/wx.h" +#endif + +// ---------------------------------------------------------------------------- +// resources +// ---------------------------------------------------------------------------- +// the application icon +#if defined(__WXGTK__) || defined(__WXMOTIF__) + #include "mondrian.xpm" +#endif + +// ---------------------------------------------------------------------------- +// private classes +// ---------------------------------------------------------------------------- + +class MyApp : public wxApp +{ +public: + virtual bool OnInit(); +}; + + +class MyFrame : public wxFrame +{ +public: + MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size); + + void OnQuit(wxCommandEvent& event); + void OnAbout(wxCommandEvent& event); + +private: + DECLARE_EVENT_TABLE() +}; + + +class MyCanvas : public wxScrolledWindow +{ +public: + MyCanvas( MyFrame *parent ); + + void OnPaint( wxPaintEvent &event ); + void OnEraseBackground( wxEraseEvent &event ); + +private: + DECLARE_EVENT_TABLE() +}; + +// ---------------------------------------------------------------------------- +// constants +// ---------------------------------------------------------------------------- + +enum +{ + // menu items + Minimal_Quit = 1, + Minimal_About +}; + + +// ---------------------------------------------------------------------------- +// the application class +// ---------------------------------------------------------------------------- + +IMPLEMENT_APP(MyApp) + +bool MyApp::OnInit() +{ + MyFrame *frame = new MyFrame("Minimal wxWindows App", + wxPoint(50, 50), wxSize(450, 340)); + + frame->Show(TRUE); + + return TRUE; +} + +// ---------------------------------------------------------------------------- +// main frame +// ---------------------------------------------------------------------------- + +BEGIN_EVENT_TABLE(MyFrame, wxFrame) + EVT_MENU(Minimal_Quit, MyFrame::OnQuit) + EVT_MENU(Minimal_About, MyFrame::OnAbout) +END_EVENT_TABLE() + +// frame constructor +MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) + : wxFrame((wxFrame *)NULL, -1, title, pos, size) +{ +#ifdef __WXMAC__ + wxApp::s_macAboutMenuItemId = Minimal_About; +#endif + + SetIcon(wxICON(mondrian)); + + wxMenu *menuFile = new wxMenu("", wxMENU_TEAROFF); + + wxMenu *helpMenu = new wxMenu; + helpMenu->Append(Minimal_About, "&About...\tCtrl-A", "Show about dialog"); + + menuFile->Append(Minimal_Quit, "E&xit\tAlt-X", "Quit this program"); + + wxMenuBar *menuBar = new wxMenuBar(); + menuBar->Append(menuFile, "&File"); + menuBar->Append(helpMenu, "&Help"); + + SetMenuBar(menuBar); + +#if wxUSE_STATUSBAR + // create a status bar just for fun (by default with 1 pane only) + CreateStatusBar(2); + SetStatusText("Welcome to wxWindows!"); +#endif // wxUSE_STATUSBAR + + (void)new MyCanvas( this ); +} + + +void MyFrame::OnQuit(wxCommandEvent& WXUNUSED(event)) +{ + Close(TRUE); +} + +void MyFrame::OnAbout(wxCommandEvent& WXUNUSED(event)) +{ + wxString msg; + msg.Printf( _T("This is the about dialog of minimal sample.\n") + _T("Welcome to %s"), wxVERSION_STRING); + + wxMessageBox(msg, "About Minimal", wxOK | wxICON_INFORMATION, this); +} + + +BEGIN_EVENT_TABLE(MyCanvas, wxScrolledWindow) + EVT_PAINT( MyCanvas::OnPaint) + EVT_ERASE_BACKGROUND( MyCanvas::OnEraseBackground) +END_EVENT_TABLE() + +MyCanvas::MyCanvas( MyFrame *parent ) + : wxScrolledWindow( parent, -1, wxDefaultPosition, wxDefaultSize, + wxScrolledWindowStyle|wxNO_FULL_REPAINT_ON_RESIZE ) +{ + SetScrollbars( 10, 10, 40, 100, 0, 0 ); +} + +void MyCanvas::OnPaint( wxPaintEvent &event ) +{ + wxPaintDC dc(this); + PrepareDC( dc ); + + dc.SetBrush( *wxRED_BRUSH ); + dc.DrawRectangle( 100, 100, 300, 500 ); +} + +void MyCanvas::OnEraseBackground( wxEraseEvent &event ) +{ + event.Skip( TRUE ); +} + diff --git a/samples/erase/erase.rc b/samples/erase/erase.rc new file mode 100644 index 0000000000..3bf71d6da0 --- /dev/null +++ b/samples/erase/erase.rc @@ -0,0 +1,6 @@ +mondrian ICON "mondrian.ico" +#include "wx/msw/wx.rc" + +#define MINIMAL_QUIT 1 +#define MINIMAL_ABOUT 102 + diff --git a/samples/erase/erase.rc0 b/samples/erase/erase.rc0 new file mode 100644 index 0000000000..42078bed50 --- /dev/null +++ b/samples/erase/erase.rc0 @@ -0,0 +1,6 @@ +ICON 1 PRELOAD "mondros2.ico" +#include "..\\..\\include\wx\os2\wx.rc" + +#define MINIMAL_QUIT 1 +#define MINIMAL_ABOUT 102 + diff --git a/samples/erase/erase.rc4 b/samples/erase/erase.rc4 new file mode 100644 index 0000000000..695f7b0f76 --- /dev/null +++ b/samples/erase/erase.rc4 @@ -0,0 +1,6 @@ +ICON 1 PRELOAD "..\\samples\\erase\\mondros2.ico" +#include "H:\DEV\WX22\WXWINDOWS\include\wx\os2\wx.rc" + +#define MINIMAL_QUIT 1 +#define MINIMAL_ABOUT 102 + diff --git a/samples/erase/make_cw.mcp b/samples/erase/make_cw.mcp new file mode 100644 index 0000000000000000000000000000000000000000..9d75e55c231203bf6b40765747ef26c7a5d0bb6d GIT binary patch literal 133038 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 literal 0 HcmV?d00001 diff --git a/samples/erase/makefile.b32 b/samples/erase/makefile.b32 new file mode 100644 index 0000000000..54575af255 --- /dev/null +++ b/samples/erase/makefile.b32 @@ -0,0 +1,16 @@ +# +# File: makefile.b32 +# Author: Julian Smart +# Created: 1999 +# Updated: +# Copyright: +# +# Makefile : Builds sample for 32-bit BC++ + +WXDIR = $(WXWIN) + +TARGET=erase +OBJECTS = $(TARGET).obj + +!include $(WXDIR)\src\makeprog.b32 + diff --git a/samples/erase/makefile.bcc b/samples/erase/makefile.bcc new file mode 100644 index 0000000000..bf0a3bb171 --- /dev/null +++ b/samples/erase/makefile.bcc @@ -0,0 +1,19 @@ +# +# File: makefile.bcc +# Author: Julian Smart +# Created: 1998 +# Updated: +# +# Builds a BC++ 16-bit sample + +!if "$(WXWIN)" == "" +!error You must define the WXWIN variable in autoexec.bat, e.g. WXWIN=c:\wx +!endif + +WXDIR = $(WXWIN) + +TARGET=erase +OBJECTS=$(TARGET).obj + +!include $(WXDIR)\src\makeprog.bcc + diff --git a/samples/erase/makefile.dos b/samples/erase/makefile.dos new file mode 100644 index 0000000000..795741a98e --- /dev/null +++ b/samples/erase/makefile.dos @@ -0,0 +1,17 @@ +# +# File: makefile.dos +# Author: Julian Smart +# Created: 1998 +# Updated: +# +# Makefile : Builds 16-bit sample, VC++ 1.5 +# Use FINAL=1 argument to nmake to build final version with no debugging +# info + +WXDIR = $(WXWIN) + +TARGET=erase +OBJECTS=$(TARGET).obj + +!include $(WXDIR)\src\makeprog.msc + diff --git a/samples/erase/makefile.g95 b/samples/erase/makefile.g95 new file mode 100644 index 0000000000..e2857f2d4d --- /dev/null +++ b/samples/erase/makefile.g95 @@ -0,0 +1,16 @@ +# +# File: makefile.g95 +# Author: Julian Smart +# Created: 1999 +# Updated: +# Copyright: (c) Julian Smart, 1999 +# +# Makefile for wxWindows sample (Cygwin/Mingw32). + +WXDIR = ../.. + +TARGET=erase +OBJECTS = $(TARGET).o + +include $(WXDIR)/src/makeprog.g95 + diff --git a/samples/erase/makefile.sc b/samples/erase/makefile.sc new file mode 100644 index 0000000000..031c3eeac6 --- /dev/null +++ b/samples/erase/makefile.sc @@ -0,0 +1,36 @@ +# Symantec C++ makefile + +WXDIR = $(WXWIN) +WXLIB = $(WXDIR)\lib\wx.lib +INCDIR = $(WXDIR)\include +INCLUDE=$(INCDIR) +TARGET=erase + +include $(WXDIR)\src\makesc.env + +minimal.exe: minimal.obj $(DEFFILE) minimal.res + *$(CC) $(LDFLAGS) -o$@ $** $(LIBS) + *$(RC) -k minimal.res + +sc32.def: + echo EXETYPE NT > sc32.def + echo SUBSYSTEM WINDOWS >> sc32.def + +sc16.def: + echo NAME $(TARGET) > sc16.def + echo EXETYPE WINDOWS >> sc16.def + echo STUB 'WINSTUB.EXE' >> sc16.def + echo CODE PRELOAD MOVEABLE DISCARDABLE >> sc16.def + echo DATA PRELOAD MOVEABLE MULTIPLE >> sc16.def + echo HEAPSIZE 1024 >> sc16.def + echo STACKSIZE 8192 >> sc16.def + +clean: + -del *.obj + -del *.exe + -del *.res + -del *.map + -del *.rws + -del sc32.def + -del sc16.def + diff --git a/samples/erase/makefile.sl b/samples/erase/makefile.sl new file mode 100644 index 0000000000..207941a5aa --- /dev/null +++ b/samples/erase/makefile.sl @@ -0,0 +1,18 @@ +# +# File: makefile.sl +# Author: Julian Smart +# Created: 1998 +# +# Makefile : Builds a wxWindows sample for Salford C++, WIN32 + +PROGRAM = erase +OBJECTS = $(PROGRAM).obj + +include ..\..\src\makeprog.sl + +all: wx $(TARGET) + +wx: + cd $(WXDIR)\src\msw ^ mk32 -f makefile.sl all + cd $(WXDIR)\samples\minimal + diff --git a/samples/erase/makefile.twn b/samples/erase/makefile.twn new file mode 100644 index 0000000000..70cf377fe5 --- /dev/null +++ b/samples/erase/makefile.twn @@ -0,0 +1,43 @@ +# +# File: makefile.unx +# Author: Julian Smart +# Created: 1993 +# Updated: +# Copyright: (c) 1993, AIAI, University of Edinburgh +# +# "%W% %G%" +# +# Makefile for minimal example (UNIX). + +WXDIR = ../.. + +# All common UNIX compiler flags and options are now in +# this central makefile. +include $(WXDIR)/src/maketwin.env + +OBJECTS = $(OBJDIR)/minimal.$(OBJSUFF) $(OBJDIR)/minimal_resources.$(OBJSUFF) + +all: $(OBJDIR) minimal$(GUISUFFIX)$(EXESUFF) + +wx: + +$(OBJDIR): + mkdir $(OBJDIR) + +minimal$(GUISUFFIX)$(EXESUFF): $(OBJECTS) $(WXLIB) + $(CC) $(LDFLAGS) -o minimal$(GUISUFFIX)$(EXESUFF) $(OBJECTS) $(LDLIBS) + +$(OBJDIR)/minimal.$(OBJSUFF): minimal.$(SRCSUFF) + $(CC) -c $(CPPFLAGS) -o $@ minimal.$(SRCSUFF) + +minimal_resources.c: minimal.rc + $(RESCOMP) $(RCINPUTSWITCH) minimal.rc $(RCOUTPUTSWITCH) minimal_resources.c $(RESFLAGS) + +$(OBJDIR)/minimal_resources.$(OBJSUFF): minimal_resources.c + $(CC) -c $(CPPFLAGS) -o $@ minimal_resources.c + +#$(OBJDIR)/minimal_resources.o: minimal.rc +# $(RESCOMP) $(RCINPUTSWITCH) minimal.rc $(RCOUTPUTSWITCH) $(OBJDIR)/minimal_resources.o $(RESFLAGS) + +clean: + rm -f $(OBJECTS) minimal$(GUISUFFIX).exe core *.rsc *.res diff --git a/samples/erase/makefile.unx b/samples/erase/makefile.unx new file mode 100644 index 0000000000..1e82bd01d4 --- /dev/null +++ b/samples/erase/makefile.unx @@ -0,0 +1,35 @@ +# +# File: Makefile for samples +# Author: Robert Roebling +# Created: 1999 +# Updated: +# Copyright: (c) 1998 Robert Roebling +# +# This makefile requires a Unix version of wxWindows +# to be installed on your system. This is most often +# done typing "make install" when using the complete +# sources of wxWindows or by installing the two +# RPM packages wxGTK.XXX.rpm and wxGTK-devel.XXX.rpm +# under Linux. +# + +CC = gcc + +PROGRAM = erase + +OBJECTS = $(PROGRAM).o + +# implementation + +.SUFFIXES: .o .cpp + +.cpp.o : + $(CC) -c `wx-config --cflags` -o $@ $< + +all: $(PROGRAM) + +$(PROGRAM): $(OBJECTS) + $(CC) -o $(PROGRAM) $(OBJECTS) `wx-config --libs` + +clean: + rm -f *.o $(PROGRAM) diff --git a/samples/erase/makefile.va b/samples/erase/makefile.va new file mode 100644 index 0000000000..dd88cb018d --- /dev/null +++ b/samples/erase/makefile.va @@ -0,0 +1,44 @@ +# +# File: makefile.va +# Author: David Webster +# Created: 1999 +# Updated: +# Copyright: (c) David Webster +# +# Makefile : Builds sample (VisualAgeC++ V3.0, OS/2 PM) +# Use FINAL=1 argument to nmake to build final version with no debug info. + +# Set WXDIR for your system +WXDIR=$(WXWIN) + +!include $(WXDIR)\src\makeva.env + +# +# Define which program this is and what it's path is and where to output to +# +PROGRAM=erase +THISDIR=$(WXWIN)\samples\$(PROGRAM) +OPATH=$(THISDIR)\$D + +# +# Make sure output directory is available +# +!if [md $(OPATH)] +!endif + +# +# Standard definitions +# +PROGRC=$(THISDIR)\$(PROGRAM).rcO +OBJECTS=$(OPATH)\$(PROGRAM).obj +PROGRES=$(OPATH)\$(PROGRAM).res +PROGTARGET=$(OPATH)\$(PROGRAM).exe + +.cpp{$OPATH}.obj: + @echo $< + icc @<< +$(CPPFLAGS) /Fo$@ /Tp $< +<< + +!include $(WXDIR)\src\makeprog.va + diff --git a/samples/erase/makefile.vc b/samples/erase/makefile.vc new file mode 100644 index 0000000000..d1a994d9db --- /dev/null +++ b/samples/erase/makefile.vc @@ -0,0 +1,24 @@ +# +# File: makefile.vc +# Author: Julian Smart +# Created: 1999 +# Updated: +# Copyright: (c) Julian Smart +# +# Makefile : Builds sample (VC++, WIN32) +# Use FINAL=1 argument to nmake to build final version with no debug info. + +# Set WXDIR for your system +WXDIR = $(WXWIN) + +PROGRAM=erase +OBJECTS = $(PROGRAM).obj + +!include $(WXDIR)\src\makeprog.vc + +# For broken VC++ 4 +noopt: + cl @<< +$(CPPFLAGS2) /Od /c /Tp $(PROGRAM).cpp +<< + diff --git a/samples/erase/makefile.wat b/samples/erase/makefile.wat new file mode 100644 index 0000000000..4a36a715be --- /dev/null +++ b/samples/erase/makefile.wat @@ -0,0 +1,15 @@ +# +# Makefile for WATCOM +# +# Created by Julian Smart, January 1999 +# +# + +WXDIR = $(%WXWIN) + +PROGRAM = erase +OBJECTS = $(PROGRAM).obj + +!include $(WXDIR)\src\makeprog.wat + + diff --git a/samples/erase/makemac.mcp b/samples/erase/makemac.mcp new file mode 100644 index 0000000000000000000000000000000000000000..8e171fb099dfb500ead349d461d16cacf4648697 GIT binary patch literal 162200 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 R{{7D>r9v0TZb-(BxU{3I@G_pu-sq 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 literal 0 HcmV?d00001 diff --git a/samples/erase/minimal.def b/samples/erase/minimal.def new file mode 100644 index 0000000000..df6a795efc --- /dev/null +++ b/samples/erase/minimal.def @@ -0,0 +1,7 @@ +NAME Erase +DESCRIPTION 'Erase wxWindows application' +EXETYPE WINDOWS +CODE PRELOAD MOVEABLE DISCARDABLE +DATA PRELOAD MOVEABLE MULTIPLE +HEAPSIZE 4048 +STACKSIZE 16000 diff --git a/samples/erase/mondrian.ico b/samples/erase/mondrian.ico new file mode 100644 index 0000000000000000000000000000000000000000..2310c5d275a87af295d5ea8dc79ea417a5e74c53 GIT binary patch literal 766 zcmZQzU<5)11px*Sc)`TLAO@s0fLH;D9e|jTfdxnc0ZGetSize() ); - wxLogMessage( "Initial splitter size: %d %d\n", (int)sz.x, (int)sz.y ); +// wxLogMessage( "Initial splitter size: %d %d\n", (int)sz.x, (int)sz.y ); m_leftCanvas = new MyCanvas(m_splitter, CANVAS1, wxPoint(0, 0), wxSize(400, 400), "Test1" ); m_leftCanvas->SetBackgroundColour(*wxRED); @@ -178,9 +178,10 @@ MyFrame::MyFrame(wxFrame* frame, const wxString& title, const wxPoint& pos, cons m_rightCanvas = new MyCanvas(m_splitter, CANVAS2, wxPoint(0, 0), wxSize(400, 400), "Test2" ); m_rightCanvas->SetBackgroundColour(*wxCYAN); m_rightCanvas->SetScrollbars(20, 20, 50, 50); - m_rightCanvas->Show(FALSE); +// m_rightCanvas->Show(FALSE); - m_splitter->Initialize(m_leftCanvas); + m_splitter->SplitVertically(m_leftCanvas,m_rightCanvas, 40 ); +// m_splitter->Initialize(m_leftCanvas); SetStatusText("Min pane size = 0", 1); } @@ -257,7 +258,7 @@ void MyFrame::UpdatePosition() } MyCanvas::MyCanvas(wxWindow* parent, wxWindowID id, const wxPoint& point, const wxSize& size, const wxString &name ) : - wxScrolledWindow(parent, id, point, size, 0, name ) + wxScrolledWindow(parent, id, point, size, 0, name ) { } diff --git a/src/common/image.cpp b/src/common/image.cpp index fbf84266bb..d1767d1d04 100644 --- a/src/common/image.cpp +++ b/src/common/image.cpp @@ -229,12 +229,12 @@ wxImage wxImage::Scale( int width, int height ) const for (long j = 0; j < height; j++) { - long y_offset = (j * old_height / height) * old_width; + long y_offset = (j * (old_height-1) / (height-1)) * old_width; for (long i = 0; i < width; i++) { memcpy( target_data, - source_data + 3*(y_offset + ((i * old_width )/ width)), + source_data + 3*(y_offset + ((i * (old_width-1) )/ (width-1))), 3 ); target_data += 3; } @@ -1144,7 +1144,7 @@ unsigned long wxImage::CountColours( unsigned long stopafter ) wxHashTable h; wxObject dummy; unsigned char r, g, b; - unsigned char *p; + unsigned char *p; unsigned long size, nentries, key; p = GetData(); @@ -1179,7 +1179,7 @@ unsigned long wxImage::CountColours( unsigned long stopafter ) unsigned long wxImage::ComputeHistogram( wxHashTable &h ) { unsigned char r, g, b; - unsigned char *p; + unsigned char *p; unsigned long size, nentries, key; wxHNode *hnode; diff --git a/src/gtk/win_gtk.c b/src/gtk/win_gtk.c index 2e69c20eef..96358744c4 100644 --- a/src/gtk/win_gtk.c +++ b/src/gtk/win_gtk.c @@ -582,6 +582,11 @@ gtk_pizza_realize (GtkWidget *widget) widget->style = gtk_style_attach (widget->style, widget->window); gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); gtk_style_set_background (widget->style, pizza->bin_window, GTK_STATE_NORMAL ); + +/* + gdk_window_set_back_pixmap( widget->window, NULL, FALSE ); + gdk_window_set_back_pixmap( pizza->bin_window, NULL, FALSE ); +*/ /* add filters for intercepting visibility and expose events */ gdk_window_add_filter (widget->window, gtk_pizza_main_filter, pizza); diff --git a/src/gtk/window.cpp b/src/gtk/window.cpp index 0e2f089cf7..1e58a816c7 100644 --- a/src/gtk/window.cpp +++ b/src/gtk/window.cpp @@ -19,6 +19,7 @@ #include "wx/defs.h" #include "wx/window.h" #include "wx/dc.h" +#include "wx/dcclient.h" #include "wx/frame.h" #include "wx/app.h" #include "wx/layout.h" @@ -550,11 +551,11 @@ static long map_to_unmodified_wx_keysym( GdkEventKey *event ) case GDK_F12: key_code = WXK_F12; break; default: { - if (event->length == 1) - { - key_code = toupper( (unsigned char)*event->string ); - } - else if ((keysym & 0xFF) == keysym) + if (event->length == 1) + { + key_code = toupper( (unsigned char)*event->string ); + } + else if ((keysym & 0xFF) == keysym) { guint upper = gdk_keyval_to_upper( (guint)keysym ); keysym = (upper != 0 ? upper : keysym ); /* to be MSW compatible */ @@ -654,11 +655,11 @@ static long map_to_wx_keysym( GdkEventKey *event ) case GDK_F12: key_code = WXK_F12; break; default: { - if (event->length == 1) - { - key_code = (unsigned char)*event->string; - } - else if ((keysym & 0xFF) == keysym) + if (event->length == 1) + { + key_code = (unsigned char)*event->string; + } + else if ((keysym & 0xFF) == keysym) { key_code = (guint)keysym; } @@ -732,7 +733,23 @@ static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_ev wxEraseEvent eevent( win->GetId() ); eevent.SetEventObject( win ); +#if 1 win->GetEventHandler()->ProcessEvent(eevent); +#else + if (!win->GetEventHandler()->ProcessEvent(eevent)) + { + wxClientDC dc( win ); + dc.SetBrush( wxBrush( win->GetBackgroundColour(), wxSOLID ) ); + dc.SetPen( *wxTRANSPARENT_PEN ); + + wxRegionIterator upd( win->GetUpdateRegion() ); + while (upd) + { + dc.DrawRectangle( upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() ); + upd ++; + } + } +#endif wxPaintEvent event( win->GetId() ); event.SetEventObject( win ); @@ -853,7 +870,27 @@ static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxW wxEraseEvent eevent( win->GetId() ); eevent.SetEventObject( win ); + +#if 1 win->GetEventHandler()->ProcessEvent(eevent); +#else + if (!win->GetEventHandler()->ProcessEvent(eevent)) + { + if (!win->GetEventHandler()->ProcessEvent(eevent)) + { + wxClientDC dc( win ); + dc.SetBrush( wxBrush( win->GetBackgroundColour(), wxSOLID ) ); + dc.SetPen( *wxTRANSPARENT_PEN ); + + wxRegionIterator upd( win->GetUpdateRegion() ); + while (upd) + { + dc.DrawRectangle( upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() ); + upd ++; + } + } + } +#endif wxPaintEvent event( win->GetId() ); event.SetEventObject( win ); @@ -2578,6 +2615,10 @@ void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags ) wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") ); wxASSERT_MSG( (m_parent != NULL), wxT("wxWindow::SetSize requires parent.\n") ); +/* + printf( "name %s, x,y,w,h: %d,%d,%d,%d \n", GetName().c_str(), x,y,width,height ); +*/ + if (m_resizing) return; /* I don't like recursions */ m_resizing = TRUE; diff --git a/src/gtk1/win_gtk.c b/src/gtk1/win_gtk.c index 2e69c20eef..96358744c4 100644 --- a/src/gtk1/win_gtk.c +++ b/src/gtk1/win_gtk.c @@ -582,6 +582,11 @@ gtk_pizza_realize (GtkWidget *widget) widget->style = gtk_style_attach (widget->style, widget->window); gtk_style_set_background (widget->style, widget->window, GTK_STATE_NORMAL); gtk_style_set_background (widget->style, pizza->bin_window, GTK_STATE_NORMAL ); + +/* + gdk_window_set_back_pixmap( widget->window, NULL, FALSE ); + gdk_window_set_back_pixmap( pizza->bin_window, NULL, FALSE ); +*/ /* add filters for intercepting visibility and expose events */ gdk_window_add_filter (widget->window, gtk_pizza_main_filter, pizza); diff --git a/src/gtk1/window.cpp b/src/gtk1/window.cpp index 0e2f089cf7..1e58a816c7 100644 --- a/src/gtk1/window.cpp +++ b/src/gtk1/window.cpp @@ -19,6 +19,7 @@ #include "wx/defs.h" #include "wx/window.h" #include "wx/dc.h" +#include "wx/dcclient.h" #include "wx/frame.h" #include "wx/app.h" #include "wx/layout.h" @@ -550,11 +551,11 @@ static long map_to_unmodified_wx_keysym( GdkEventKey *event ) case GDK_F12: key_code = WXK_F12; break; default: { - if (event->length == 1) - { - key_code = toupper( (unsigned char)*event->string ); - } - else if ((keysym & 0xFF) == keysym) + if (event->length == 1) + { + key_code = toupper( (unsigned char)*event->string ); + } + else if ((keysym & 0xFF) == keysym) { guint upper = gdk_keyval_to_upper( (guint)keysym ); keysym = (upper != 0 ? upper : keysym ); /* to be MSW compatible */ @@ -654,11 +655,11 @@ static long map_to_wx_keysym( GdkEventKey *event ) case GDK_F12: key_code = WXK_F12; break; default: { - if (event->length == 1) - { - key_code = (unsigned char)*event->string; - } - else if ((keysym & 0xFF) == keysym) + if (event->length == 1) + { + key_code = (unsigned char)*event->string; + } + else if ((keysym & 0xFF) == keysym) { key_code = (guint)keysym; } @@ -732,7 +733,23 @@ static int gtk_window_expose_callback( GtkWidget *widget, GdkEventExpose *gdk_ev wxEraseEvent eevent( win->GetId() ); eevent.SetEventObject( win ); +#if 1 win->GetEventHandler()->ProcessEvent(eevent); +#else + if (!win->GetEventHandler()->ProcessEvent(eevent)) + { + wxClientDC dc( win ); + dc.SetBrush( wxBrush( win->GetBackgroundColour(), wxSOLID ) ); + dc.SetPen( *wxTRANSPARENT_PEN ); + + wxRegionIterator upd( win->GetUpdateRegion() ); + while (upd) + { + dc.DrawRectangle( upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() ); + upd ++; + } + } +#endif wxPaintEvent event( win->GetId() ); event.SetEventObject( win ); @@ -853,7 +870,27 @@ static void gtk_window_draw_callback( GtkWidget *widget, GdkRectangle *rect, wxW wxEraseEvent eevent( win->GetId() ); eevent.SetEventObject( win ); + +#if 1 win->GetEventHandler()->ProcessEvent(eevent); +#else + if (!win->GetEventHandler()->ProcessEvent(eevent)) + { + if (!win->GetEventHandler()->ProcessEvent(eevent)) + { + wxClientDC dc( win ); + dc.SetBrush( wxBrush( win->GetBackgroundColour(), wxSOLID ) ); + dc.SetPen( *wxTRANSPARENT_PEN ); + + wxRegionIterator upd( win->GetUpdateRegion() ); + while (upd) + { + dc.DrawRectangle( upd.GetX(), upd.GetY(), upd.GetWidth(), upd.GetHeight() ); + upd ++; + } + } + } +#endif wxPaintEvent event( win->GetId() ); event.SetEventObject( win ); @@ -2578,6 +2615,10 @@ void wxWindow::DoSetSize( int x, int y, int width, int height, int sizeFlags ) wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") ); wxASSERT_MSG( (m_parent != NULL), wxT("wxWindow::SetSize requires parent.\n") ); +/* + printf( "name %s, x,y,w,h: %d,%d,%d,%d \n", GetName().c_str(), x,y,width,height ); +*/ + if (m_resizing) return; /* I don't like recursions */ m_resizing = TRUE; -- 2.45.2