Got generic wxListCtrl, wxTreeCtrl working under Windows, wxNotebook almost;
some doc corrections; Win16 dialog crash cured git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@1255 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
c238949553
commit
f60d0f944a
@ -28,6 +28,39 @@ Destructor. If the handler is part of a chain, the destructor will
|
||||
unlink itself and restore the previous and next handlers so that they point to
|
||||
each other.
|
||||
|
||||
\membersection{wxEvtHandler::Connect}\label{wxevthandlerconnect}
|
||||
|
||||
\func{void}{Connect}{\param{int}{ id},
|
||||
\param{wxEventType }{eventType}, \param{wxObjectEventFunction}{ function},
|
||||
\param{wxObject*}{ userData = NULL}}
|
||||
|
||||
\func{void}{Connect}{\param{int}{ id}, \param{int}{ lastId},
|
||||
\param{wxEventType }{eventType}, \param{wxObjectEventFunction}{ function},
|
||||
\param{wxObject*}{ userData = NULL}}
|
||||
|
||||
Connects the given function dynamically with the event handler, id and event type. This
|
||||
is an alternative to the use of static event tables. See the 'dynamic' sample for usage.
|
||||
|
||||
\wxheading{Parameters}
|
||||
|
||||
\docparam{id}{The identifier (or first of the identifier range) to be associated with the event handler function.}
|
||||
|
||||
\docparam{lastId}{The second part of the identifier range to be associated with the event handler function.}
|
||||
|
||||
\docparam{eventType}{The event type to be associated with this event handler.}
|
||||
|
||||
\docparam{function}{The event handler function.}
|
||||
|
||||
\docparam{userData}{Data to be associated with the event table entry.}
|
||||
|
||||
\wxheading{Example}
|
||||
|
||||
\begin{verbatim}
|
||||
frame->Connect( wxID_EXIT,
|
||||
wxEVT_COMMAND_MENU_SELECTED,
|
||||
(wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) MyFrame::OnQuit );
|
||||
\end{verbatim}
|
||||
|
||||
\membersection{wxEvtHandler::Default}\label{wxevthandlerdefault}
|
||||
|
||||
\func{virtual long}{Default}{\void}
|
||||
|
@ -76,7 +76,8 @@ Creates a new icon.
|
||||
|
||||
Creates an icon from XPM data.
|
||||
|
||||
\func{}{wxIcon}{\param{const wxString\& }{name}, \param{long}{ type}}
|
||||
\func{}{wxIcon}{\param{const wxString\& }{name}, \param{long}{ type},
|
||||
\param{int}{ desiredWidth = -1}, \param{int}{ desiredHeight = -1}}
|
||||
|
||||
Loads an icon from a file or resource.
|
||||
|
||||
@ -88,6 +89,14 @@ Loads an icon from a file or resource.
|
||||
|
||||
\docparam{height}{Specifies the height of the icon.}
|
||||
|
||||
\docparam{desiredWidth}{Specifies the desired width of the icon. This
|
||||
parameter only has an effect in Windows (32-bit) where icon resources can contain
|
||||
several icons of different sizes.}
|
||||
|
||||
\docparam{desiredWidth}{Specifies the desired height of the icon. This
|
||||
parameter only has an effect in Windows (32-bit) where icon resources can contain
|
||||
several icons of different sizes.}
|
||||
|
||||
\docparam{depth}{Specifies the depth of the icon. If this is omitted, the display depth of the
|
||||
screen is used.}
|
||||
|
||||
|
@ -3,7 +3,8 @@
|
||||
A wxPaintDC must be constructed if an application wishes to paint on the
|
||||
client area of a window from within an {\bf OnPaint} event.
|
||||
This should normally be constructed as a temporary stack object; don't store
|
||||
a wxPaintDC object.
|
||||
a wxPaintDC object. If you have an OnPaint handler, you {\it must} create a wxPaintDC
|
||||
object within it even if you don't actually use it.
|
||||
|
||||
Using wxPaintDC within OnPaint is important because it automatically
|
||||
sets the clipping area to the damaged area of the window. Attempts to draw
|
||||
|
@ -15,37 +15,36 @@ Headers: <wx/dataobj.h>, <wx/dropsrc.h and <wx/droptgt.h>>
|
||||
|
||||
This overview describes wxWindows support for drag and drop and clipboard
|
||||
operations. Both of these topics are discussed here because, in fact, they're
|
||||
quite related. Drag and drop and clipboard are just too ways of passing the
|
||||
quite related. Drag and drop and clipboard are just two ways of passing the
|
||||
data around and so the code required to implement both types of the operations
|
||||
is almost the same.
|
||||
|
||||
Both operations involve passing some data from one program to another
|
||||
(although the data may be received in the same program as well). In the case
|
||||
of clipboard transfer, the data is first places on the clipboard and then
|
||||
pasted into the destination program while for a drag-and-drop operation the
|
||||
Both operations involve passing some data from one program to another,
|
||||
although the data can be received in the same program as the source. In the case
|
||||
of clipboard transfer, the data is first placed on the clipboard and then
|
||||
pasted into the destination program, while for a drag-and-drop operation the
|
||||
data object is not stored anywhere but is created when the user starts
|
||||
dragging and is destroyed as soon as he ends it (whether the operation was
|
||||
ended successfully or cancelled).
|
||||
dragging and is destroyed as soon as he ends it, whether the operation was
|
||||
ended successfully or cancelled.
|
||||
|
||||
To be a {\it drag source}, i.e. to provide the data which may be dragged by
|
||||
user elsewhere you should implement the following steps:
|
||||
user elsewhere, you should implement the following steps:
|
||||
|
||||
\begin{itemize}\itemsep=0pt
|
||||
\item {\bf Preparation:} First of all, the data object must be created and
|
||||
initilized with the data you wish to drag. For example:
|
||||
initialized with the data you wish to drag. For example:
|
||||
|
||||
\begin{verbatim}
|
||||
wxTextDataObject data("This string will be dragged.");
|
||||
\end{verbatim}
|
||||
|
||||
Of course, the data object may contain arbitrary data of any type, but for
|
||||
this you should derive your own class from
|
||||
\helpref{wxDataObject}{wxdataobject} overriding all of its pure virtual
|
||||
this you should derive your own class from \helpref{wxDataObject}{wxdataobject} overriding all of its pure virtual
|
||||
functions.
|
||||
|
||||
\item{\bf Drag start:} To start dragging process (typically in response to a
|
||||
mouse click) you must call \helpref{DoDragDrop}{wxdropsourcedodragdrop}
|
||||
function of wxDropSource object which should be constructed like this:
|
||||
mouse click) you must call \helpref{DoDragDrop}{wxdropsourcedodragdrop} function
|
||||
of wxDropSource object which should be constructed like this:
|
||||
|
||||
\begin{verbatim}
|
||||
wxDropSource dragSource(data, this);
|
||||
@ -63,8 +62,8 @@ same drag-and-drop protocol (any program under Windows or any program supporting
|
||||
under X Windows), the corresponding \helpref{wxDropTarget}{wxdroptarget} methods
|
||||
are called - see below.
|
||||
|
||||
\item {\bf Processing the result:} DoDragDrop() returns an {\it effect code}
|
||||
which is one of the values of \helpref{wxDragResult}{wxdragresult} enum. Codes
|
||||
\item {\bf Processing the result:} DoDragDrop() returns an {\it effect code} which
|
||||
is one of the values of \helpref{wxDragResult}{wxdragresult} enum. Codes
|
||||
of wxDragError, wxDragNone and wxDragCancel have the obvious meaning and mean
|
||||
that there is nothing to do on the sending end (except of possibly logging the
|
||||
error in the first case). wxDragCopy means that the data has been successfully
|
||||
@ -72,10 +71,8 @@ copied and doesn't require any specific actions neither. But wxDragMove is
|
||||
special because it means that the data must be deleted from where it was
|
||||
copied. If it doesn't make sense (dragging selected text from a read-only
|
||||
file) you should pass FALSE as parameter to DoDragDrop() in the previous step.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
|
||||
To be a {\it drop target}, i.e. to receive the data dropped by user you should
|
||||
follow the instructions below:
|
||||
|
||||
@ -91,8 +88,8 @@ or OnDropFiles() method.
|
||||
|
||||
\item {\bf Drop:} When the user releases the mouse over a window, wxWindows
|
||||
queries the associated wxDropTarget object if it accepts the data. For
|
||||
this, \helpref{GetFormatCount}{wxdroptargetgetformatcount} and
|
||||
\helpref{GetFormat}{wxdroptargetgetformat} are used and if the format is
|
||||
this, \helpref{GetFormatCount}{wxdroptargetgetformatcount} and \helpref{GetFormat}{wxdroptargetgetformat} are
|
||||
used and if the format is
|
||||
supported (i.e. is one of returned by GetFormat()),
|
||||
then \helpref{OnDrop}{wxdroptargetondrop} is called.
|
||||
Otherwise, \helpref{wxDragNone}{stdformat} is returned by DoDragDrop() and
|
||||
@ -102,6 +99,5 @@ nothing happens.
|
||||
wxDragCopy or wxDragMove depending on the state of the keys (<Ctrl>, <Shift>
|
||||
and <Alt>) at the moment of drop. There is currently no way for the drop
|
||||
target to change this return code.
|
||||
|
||||
\end{itemize}
|
||||
|
||||
|
@ -2,6 +2,16 @@
|
||||
wxWindows 2.0 for Windows Change Log
|
||||
------------------------------------
|
||||
|
||||
Alpha 18, December 23nd 1998
|
||||
----------------------------
|
||||
|
||||
- Win16 support working again (VC++ 1.5)
|
||||
- Win16 now uses generic wxNotebook, wxListCtrl,
|
||||
wxTreeCtrl -- more or less working now, although
|
||||
a little work on wxNotebook is still needed.
|
||||
Under 16-bit Windows, get assertion when you click
|
||||
on a tab.
|
||||
|
||||
Alpha 17, November 22nd 1998
|
||||
----------------------------
|
||||
|
||||
|
@ -56,11 +56,8 @@ Visual C++ 1.5 compilation
|
||||
|
||||
1. Change directory to wx\src\msw. Type 'nmake -f makefile.dos' to
|
||||
make the wxWindows core library.
|
||||
2. Change directory to wx\samples and type 'nmake -f makefile.dos'
|
||||
to make all the samples. You can also make them individually.
|
||||
|
||||
NOTE: 16-bit compilation is not recommended (see issues.txt):
|
||||
many things are broken, including dialog boxes.
|
||||
2. Change directory to a sample, such as wx\samples\minimal, and
|
||||
type 'nmake -f makefile.dos'.
|
||||
|
||||
Borland C++ 4.5/5.0 compilation
|
||||
-------------------------------
|
||||
|
@ -8,7 +8,3 @@ This conflicts with wxUSE_IOSTREAMSH = 0 using MS VC++ 5.0
|
||||
(crashes the template code). It should be switched off if you
|
||||
wish to use wxUSE_IOSTREAMSH = 0.
|
||||
|
||||
Many things seem to be broken for 16-bit Windows, including
|
||||
dialogs (crash in wxFindWinFromHandle). The generic tree, list
|
||||
and notebook controls don't work. The generic wxImageList drawing
|
||||
function doesn't work (wxDC::SelectObject problem).
|
||||
|
@ -17,7 +17,7 @@
|
||||
|
||||
#include "wx/defs.h"
|
||||
#include "wx/object.h"
|
||||
#include "wx/imaglist.h"
|
||||
#include "wx/generic/imaglist.h"
|
||||
#include "wx/control.h"
|
||||
#include "wx/timer.h"
|
||||
#include "wx/textctrl.h"
|
||||
|
@ -20,7 +20,6 @@
|
||||
#include "wx/wx.h"
|
||||
#endif
|
||||
|
||||
#include "wx/tab.h"
|
||||
#include "test.h"
|
||||
|
||||
// If 1, use a dialog. Otherwise use a frame.
|
||||
@ -44,10 +43,9 @@ bool MyApp::OnInit(void)
|
||||
#else
|
||||
frame = new MyFrame((wxFrame*) NULL, -1, (char *) "Notebook", wxPoint(-1, -1), wxSize(365, 390), wxDEFAULT_FRAME_STYLE);
|
||||
|
||||
// Problem with Motif whereby it doesn't size properly unless
|
||||
// you set the size again (to a different size than before,
|
||||
// since SetSize is optimized)
|
||||
#ifdef __WXMOTIF__
|
||||
// Problem with generic wxNotebook implementation whereby it doesn't size properly unless
|
||||
// you set the size again (to a different size than before, since SetSize is optimized)
|
||||
#if defined(__WXMOTIF__) || defined(__WIN16__)
|
||||
frame->SetSize(-1, -1, 370, 390);
|
||||
#endif
|
||||
|
||||
|
BIN
samples/treectrl/bitmaps/file1.bmp
Normal file
BIN
samples/treectrl/bitmaps/file1.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 246 B |
BIN
samples/treectrl/bitmaps/folder1.bmp
Normal file
BIN
samples/treectrl/bitmaps/folder1.bmp
Normal file
Binary file not shown.
After Width: | Height: | Size: 246 B |
@ -83,7 +83,6 @@ END_EVENT_TABLE()
|
||||
|
||||
IMPLEMENT_APP(MyApp)
|
||||
|
||||
// `Main program' equivalent, creating windows and returning main app frame
|
||||
bool MyApp::OnInit()
|
||||
{
|
||||
// Create the main frame window
|
||||
@ -278,8 +277,15 @@ MyTreeCtrl::MyTreeCtrl(wxWindow *parent, const wxWindowID id,
|
||||
m_imageListNormal = new wxImageList(16, 16, TRUE);
|
||||
|
||||
// should correspond to TreeCtrlIcon_xxx enum
|
||||
#if defined(__WXMSW__) && defined(__WIN16__)
|
||||
// This is required in 16-bit Windows mode only because we can't load a specific (16x16)
|
||||
// icon image, so it comes out blank (using the empty 32x32 icon).
|
||||
m_imageListNormal->Add(wxBitmap("bitmap1", wxBITMAP_TYPE_BMP_RESOURCE));
|
||||
m_imageListNormal->Add(wxBitmap("bitmap2", wxBITMAP_TYPE_BMP_RESOURCE));
|
||||
#else
|
||||
m_imageListNormal->Add(wxICON(icon1));
|
||||
m_imageListNormal->Add(wxICON(icon2));
|
||||
#endif
|
||||
|
||||
SetImageList(m_imageListNormal);
|
||||
|
||||
|
@ -5,3 +5,6 @@ aaaa ICON "mondrian.ico"
|
||||
icon1 ICON "bitmaps\\file1.ico"
|
||||
icon2 ICON "bitmaps\\folder1.ico"
|
||||
|
||||
bitmap1 BITMAP "bitmaps\\file1.bmp"
|
||||
bitmap2 BITMAP "bitmaps\\folder1.bmp"
|
||||
|
||||
|
@ -824,4 +824,4 @@ int isascii( int c )
|
||||
{
|
||||
return ( c >= 0 && c < 128 ) ;
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
@ -18,7 +18,7 @@
|
||||
#pragma hdrstop
|
||||
#endif
|
||||
|
||||
#include "wx/imaglist.h"
|
||||
#include "wx/generic/imaglist.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxImageList
|
||||
@ -50,7 +50,10 @@ bool wxImageList::Create()
|
||||
|
||||
int wxImageList::Add( const wxBitmap &bitmap )
|
||||
{
|
||||
m_images.Append( new wxBitmap(bitmap) );
|
||||
if (bitmap.IsKindOf(CLASSINFO(wxIcon)))
|
||||
m_images.Append( new wxIcon( (const wxIcon&) bitmap ) );
|
||||
else
|
||||
m_images.Append( new wxBitmap(bitmap) );
|
||||
return m_images.Number();
|
||||
}
|
||||
|
||||
@ -68,17 +71,23 @@ bool wxImageList::Replace( int index, const wxBitmap &bitmap )
|
||||
wxNode *node = m_images.Nth( index );
|
||||
|
||||
wxCHECK_MSG( node, FALSE, "wrong index in image list" );
|
||||
|
||||
|
||||
wxBitmap* newBitmap = NULL;
|
||||
if (bitmap.IsKindOf(CLASSINFO(wxIcon)))
|
||||
newBitmap = new wxIcon( (const wxIcon&) bitmap );
|
||||
else
|
||||
newBitmap = new wxBitmap(bitmap) ;
|
||||
|
||||
if (index == m_images.Number()-1)
|
||||
{
|
||||
m_images.DeleteNode( node );
|
||||
m_images.Append( new wxBitmap(bitmap) );
|
||||
m_images.Append( newBitmap );
|
||||
}
|
||||
else
|
||||
{
|
||||
wxNode *next = node->Next();
|
||||
m_images.DeleteNode( node );
|
||||
m_images.Insert( next, new wxBitmap(bitmap) );
|
||||
m_images.Insert( next, newBitmap );
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@ -126,8 +135,11 @@ bool wxImageList::Draw( int index, wxDC &dc, int x, int y,
|
||||
wxCHECK_MSG( node, FALSE, "wrong index in image list" );
|
||||
|
||||
wxBitmap *bm = (wxBitmap*)node->Data();
|
||||
|
||||
dc.DrawBitmap( *bm, x, y, (flags & wxIMAGELIST_DRAW_TRANSPARENT) > 0 );
|
||||
|
||||
if (bm->IsKindOf(CLASSINFO(wxIcon)))
|
||||
dc.DrawIcon( * ((wxIcon*) bm), x, y);
|
||||
else
|
||||
dc.DrawBitmap( *bm, x, y, (flags & wxIMAGELIST_DRAW_TRANSPARENT) > 0 );
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -20,7 +20,8 @@
|
||||
|
||||
#include "wx/dcscreen.h"
|
||||
#include "wx/app.h"
|
||||
#include "wx/listctrl.h"
|
||||
#include "wx/generic/listctrl.h"
|
||||
#include "wx/generic/imaglist.h"
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxListItemData
|
||||
@ -551,6 +552,7 @@ void wxListLineData::DoDraw( wxDC *dc, bool hilight, bool paintBG )
|
||||
m_bound_hilight.width, m_bound_hilight.height );
|
||||
}
|
||||
|
||||
dc->SetBackgroundMode(wxTRANSPARENT);
|
||||
if (m_mode == wxLC_REPORT)
|
||||
{
|
||||
wxString s;
|
||||
@ -741,6 +743,7 @@ void wxListHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
||||
int y = 0;
|
||||
GetClientSize( &w, &h );
|
||||
|
||||
dc.SetBackgroundMode(wxTRANSPARENT);
|
||||
dc.SetTextForeground( *wxBLACK );
|
||||
if (m_foregroundColour.Ok()) dc.SetTextForeground( m_foregroundColour );
|
||||
|
||||
@ -1037,13 +1040,15 @@ void wxListMainWindow::RefreshLine( wxListLineData *line )
|
||||
|
||||
void wxListMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
||||
{
|
||||
// Note: a wxPaintDC must be constructed even if no drawing is
|
||||
// done (a Windows requirement).
|
||||
wxPaintDC dc( this );
|
||||
PrepareDC( dc );
|
||||
|
||||
if (m_dirty) return;
|
||||
|
||||
if (m_lines.GetCount() == 0) return;
|
||||
|
||||
wxPaintDC dc( this );
|
||||
PrepareDC( dc );
|
||||
|
||||
dc.BeginDrawing();
|
||||
|
||||
dc.SetFont( GetFont() );
|
||||
|
@ -52,7 +52,7 @@ BEGIN_EVENT_TABLE(wxNotebook, wxControl)
|
||||
EVT_MOUSE_EVENTS(wxNotebook::OnMouseEvent)
|
||||
EVT_SET_FOCUS(wxNotebook::OnSetFocus)
|
||||
EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey)
|
||||
EVT_IDLE(wxNotebook::OnIdle)
|
||||
// EVT_IDLE(wxNotebook::OnIdle)
|
||||
END_EVENT_TABLE()
|
||||
|
||||
IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl)
|
||||
@ -108,9 +108,11 @@ bool wxNotebook::Create(wxWindow *parent,
|
||||
m_windowId = id == -1 ? NewControlId() : id;
|
||||
|
||||
// It's like a normal window...
|
||||
if (!wxWindow::Create(parent, id, pos, size, style, name))
|
||||
if (!wxWindow::Create(parent, id, pos, size, style|wxNO_BORDER, name))
|
||||
return FALSE;
|
||||
|
||||
SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE));
|
||||
|
||||
SetTabView(new wxNotebookTabView(this));
|
||||
|
||||
return TRUE;
|
||||
|
@ -29,12 +29,12 @@
|
||||
#endif
|
||||
|
||||
#include "wx/generic/treectrl.h"
|
||||
#include "wx/generic/imaglist.h"
|
||||
#include "wx/settings.h"
|
||||
#include "wx/log.h"
|
||||
#include "wx/intl.h"
|
||||
#include "wx/dynarray.h"
|
||||
#include "wx/dcclient.h"
|
||||
#include "wx/imaglist.h"
|
||||
#include "wx/msgdlg.h"
|
||||
|
||||
// -----------------------------------------------------------------------------
|
||||
@ -1089,6 +1089,7 @@ void wxTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
|
||||
dc.DestroyClippingRegion();
|
||||
}
|
||||
|
||||
dc.SetBackgroundMode(wxTRANSPARENT);
|
||||
dc.DrawText( item->GetText(), image_w + item->GetX(), item->GetY() );
|
||||
|
||||
// restore normal font for bold items
|
||||
@ -1197,7 +1198,8 @@ void wxTreeCtrl::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
||||
wxPaintDC dc(this);
|
||||
PrepareDC( dc );
|
||||
|
||||
dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_SYSTEM_FONT ) );
|
||||
// dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_SYSTEM_FONT ) );
|
||||
dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT ) );
|
||||
|
||||
dc.SetPen( m_dottedPen );
|
||||
m_lineHeight = (int)(dc.GetCharHeight() + 4);
|
||||
@ -1446,7 +1448,8 @@ void wxTreeCtrl::CalculatePositions()
|
||||
wxClientDC dc(this);
|
||||
PrepareDC( dc );
|
||||
|
||||
dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_SYSTEM_FONT ) );
|
||||
// dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_SYSTEM_FONT ) );
|
||||
dc.SetFont( wxSystemSettings::GetSystemFont( wxSYS_DEFAULT_GUI_FONT ) );
|
||||
|
||||
dc.SetPen( m_dottedPen );
|
||||
m_lineHeight = (int)(dc.GetCharHeight() + 4);
|
||||
|
@ -52,7 +52,7 @@ bool wxMetaFile::SetClipboard(int width, int height)
|
||||
bool wxMetaFile::Play(wxDC *dc)
|
||||
{
|
||||
// TODO
|
||||
return false;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -97,7 +97,7 @@ void xt_notify_end_process(XtPointer client, int *fid,
|
||||
/* wait4 is not part of any standard, use at own risk
|
||||
* not sure what wait4 does, but wait3 seems to be closest, whats a digit ;-)
|
||||
* --- offer@sgi.com */
|
||||
#if !defined(__sgi) && !defined(__ALPHA__)
|
||||
#if !defined(__sgi) && !defined(__SGI__) && !defined(__ALPHA__) && !defined(__SUNCC__)
|
||||
wait4(process_data->pid, NULL, 0, NULL);
|
||||
#else
|
||||
wait3((int *) NULL, 0, (rusage *) NULL);
|
||||
|
@ -603,7 +603,13 @@ void wxDC::DrawEllipticArc(long x,long y,long w,long h,double sa,double ea)
|
||||
|
||||
void wxDC::DrawIcon(const wxIcon& icon, long x, long y)
|
||||
{
|
||||
#if defined(__WIN32__)
|
||||
::DrawIconEx((HDC) m_hDC, XLOG2DEV(x), YLOG2DEV(y), (HICON) icon.GetHICON(),
|
||||
icon.GetWidth(), icon.GetHeight(), 0, 0, DI_NORMAL);
|
||||
#else
|
||||
::DrawIcon((HDC) m_hDC, XLOG2DEV(x), YLOG2DEV(y), (HICON) icon.GetHICON());
|
||||
#endif
|
||||
|
||||
CalcBoundingBox(x, y);
|
||||
CalcBoundingBox(x+icon.GetWidth(), y+icon.GetHeight());
|
||||
}
|
||||
|
@ -178,6 +178,13 @@ bool wxICOResourceHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long
|
||||
M_ICONHANDLERDATA->m_width = 32;
|
||||
M_ICONHANDLERDATA->m_height = 32;
|
||||
#endif
|
||||
// Override the found values with desired values
|
||||
if (desiredWidth > -1 && desiredHeight > -1)
|
||||
{
|
||||
M_ICONHANDLERDATA->m_width = desiredWidth;
|
||||
M_ICONHANDLERDATA->m_height = desiredHeight;
|
||||
}
|
||||
|
||||
M_ICONHANDLERDATA->m_ok = (M_ICONHANDLERDATA->m_hIcon != 0);
|
||||
return M_ICONHANDLERDATA->m_ok;
|
||||
}
|
||||
|
@ -60,6 +60,11 @@ GENERICOBJS= \
|
||||
$(GENDIR)\tabg.obj \
|
||||
$(GENDIR)\textdlgg.obj
|
||||
|
||||
# $(GENDIR)\imaglist.obj \
|
||||
# $(GENDIR)\treectrl.obj \
|
||||
# $(GENDIR)\listctrl.obj \
|
||||
# $(GENDIR)\notebook.obj \
|
||||
|
||||
# These are generic things that don't need to be compiled on MSW,
|
||||
# but sometimes it's useful to do so for testing purposes.
|
||||
NONESSENTIALOBJS= \
|
||||
@ -169,11 +174,9 @@ MSWOBJS = \
|
||||
$(MSWDIR)\gdiobj.obj \
|
||||
$(MSWDIR)\helpwin.obj \
|
||||
$(MSWDIR)\icon.obj \
|
||||
$(MSWDIR)\imaglist.obj \
|
||||
$(MSWDIR)\iniconf.obj \
|
||||
$(MSWDIR)\joystick.obj \
|
||||
$(MSWDIR)\listbox.obj \
|
||||
$(MSWDIR)\listctrl.obj \
|
||||
$(MSWDIR)\main.obj \
|
||||
$(MSWDIR)\mdi.obj \
|
||||
$(MSWDIR)\menu.obj \
|
||||
@ -182,7 +185,6 @@ MSWOBJS = \
|
||||
$(MSWDIR)\minifram.obj \
|
||||
$(MSWDIR)\msgdlg.obj \
|
||||
$(MSWDIR)\nativdlg.obj \
|
||||
$(MSWDIR)\notebook.obj \
|
||||
$(MSWDIR)\ownerdrw.obj \
|
||||
$(MSWDIR)\palette.obj \
|
||||
$(MSWDIR)\pen.obj \
|
||||
@ -211,11 +213,14 @@ MSWOBJS = \
|
||||
$(MSWDIR)\textctrl.obj \
|
||||
$(MSWDIR)\thread.obj \
|
||||
$(MSWDIR)\timer.obj \
|
||||
$(MSWDIR)\treectrl.obj \
|
||||
$(MSWDIR)\utils.obj \
|
||||
$(MSWDIR)\utilsexc.obj \
|
||||
$(MSWDIR)\wave.obj \
|
||||
$(MSWDIR)\window.obj \
|
||||
$(MSWDIR)\notebook.obj \
|
||||
$(MSWDIR)\listctrl.obj \
|
||||
$(MSWDIR)\imaglist.obj \
|
||||
$(MSWDIR)\treectrl.obj \
|
||||
$(OLEDIR)\droptgt.obj \
|
||||
$(OLEDIR)\dropsrc.obj \
|
||||
$(OLEDIR)\dataobj.obj \
|
||||
@ -1150,6 +1155,26 @@ $(GENDIR)/textdlgg.obj: $*.$(SRCSUFF)
|
||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||
<<
|
||||
|
||||
$(GENDIR)/treectrl.obj: $*.$(SRCSUFF)
|
||||
cl @<<
|
||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||
<<
|
||||
|
||||
$(GENDIR)/imaglist.obj: $*.$(SRCSUFF)
|
||||
cl @<<
|
||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||
<<
|
||||
|
||||
$(GENDIR)/listctrl.obj: $*.$(SRCSUFF)
|
||||
cl @<<
|
||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||
<<
|
||||
|
||||
$(GENDIR)/notebook.obj: $*.$(SRCSUFF)
|
||||
cl @<<
|
||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
||||
<<
|
||||
|
||||
$(OBJECTS): $(WXDIR)/include/wx/setup.h
|
||||
|
||||
$(XPMDIR)\crbuffri.obj: $(XPMDIR)\crbuffri.c
|
||||
|
@ -1468,10 +1468,18 @@ void wxWindow::MSWCreate(int id, wxWindow *parent, const char *wclass, wxWindow
|
||||
m_hWnd = (WXHWND) ::CreateDialog(wxGetInstance(), dialog_template, hParent,
|
||||
(DLGPROC)wxDlgProc);
|
||||
#else
|
||||
// N.B.: if we _don't_ use this form,
|
||||
// then with VC++ 1.5, it crashes horribly.
|
||||
#if 1
|
||||
m_hWnd = (WXHWND) ::CreateDialog(wxGetInstance(), dialog_template, hParent,
|
||||
(DLGPROC)wxDlgProc);
|
||||
#else
|
||||
// Crashes when we use this.
|
||||
DLGPROC dlgproc = (DLGPROC)MakeProcInstance((DLGPROC)wxWndProc, wxGetInstance());
|
||||
|
||||
m_hWnd = (WXHWND) ::CreateDialog(wxGetInstance(), dialog_template, hParent,
|
||||
(DLGPROC)dlgproc);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
if (m_hWnd == 0)
|
||||
|
Loading…
Reference in New Issue
Block a user