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:
@@ -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
|
unlink itself and restore the previous and next handlers so that they point to
|
||||||
each other.
|
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}
|
\membersection{wxEvtHandler::Default}\label{wxevthandlerdefault}
|
||||||
|
|
||||||
\func{virtual long}{Default}{\void}
|
\func{virtual long}{Default}{\void}
|
||||||
|
@@ -76,7 +76,8 @@ Creates a new icon.
|
|||||||
|
|
||||||
Creates an icon from XPM data.
|
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.
|
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{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
|
\docparam{depth}{Specifies the depth of the icon. If this is omitted, the display depth of the
|
||||||
screen is used.}
|
screen is used.}
|
||||||
|
|
||||||
|
@@ -3,7 +3,8 @@
|
|||||||
A wxPaintDC must be constructed if an application wishes to paint on the
|
A wxPaintDC must be constructed if an application wishes to paint on the
|
||||||
client area of a window from within an {\bf OnPaint} event.
|
client area of a window from within an {\bf OnPaint} event.
|
||||||
This should normally be constructed as a temporary stack object; don't store
|
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
|
Using wxPaintDC within OnPaint is important because it automatically
|
||||||
sets the clipping area to the damaged area of the window. Attempts to draw
|
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
|
This overview describes wxWindows support for drag and drop and clipboard
|
||||||
operations. Both of these topics are discussed here because, in fact, they're
|
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
|
data around and so the code required to implement both types of the operations
|
||||||
is almost the same.
|
is almost the same.
|
||||||
|
|
||||||
Both operations involve passing some data from one program to another
|
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
|
although the data can be received in the same program as the source. In the case
|
||||||
of clipboard transfer, the data is first places on the clipboard and then
|
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
|
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
|
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
|
dragging and is destroyed as soon as he ends it, whether the operation was
|
||||||
ended successfully or cancelled).
|
ended successfully or cancelled.
|
||||||
|
|
||||||
To be a {\it drag source}, i.e. to provide the data which may be dragged by
|
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
|
\begin{itemize}\itemsep=0pt
|
||||||
\item {\bf Preparation:} First of all, the data object must be created and
|
\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}
|
\begin{verbatim}
|
||||||
wxTextDataObject data("This string will be dragged.");
|
wxTextDataObject data("This string will be dragged.");
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
|
||||||
Of course, the data object may contain arbitrary data of any type, but for
|
Of course, the data object may contain arbitrary data of any type, but for
|
||||||
this you should derive your own class from
|
this you should derive your own class from \helpref{wxDataObject}{wxdataobject} overriding all of its pure virtual
|
||||||
\helpref{wxDataObject}{wxdataobject} overriding all of its pure virtual
|
|
||||||
functions.
|
functions.
|
||||||
|
|
||||||
\item{\bf Drag start:} To start dragging process (typically in response to a
|
\item{\bf Drag start:} To start dragging process (typically in response to a
|
||||||
mouse click) you must call \helpref{DoDragDrop}{wxdropsourcedodragdrop}
|
mouse click) you must call \helpref{DoDragDrop}{wxdropsourcedodragdrop} function
|
||||||
function of wxDropSource object which should be constructed like this:
|
of wxDropSource object which should be constructed like this:
|
||||||
|
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
wxDropSource dragSource(data, this);
|
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
|
under X Windows), the corresponding \helpref{wxDropTarget}{wxdroptarget} methods
|
||||||
are called - see below.
|
are called - see below.
|
||||||
|
|
||||||
\item {\bf Processing the result:} DoDragDrop() returns an {\it effect code}
|
\item {\bf Processing the result:} DoDragDrop() returns an {\it effect code} which
|
||||||
which is one of the values of \helpref{wxDragResult}{wxdragresult} enum. Codes
|
is one of the values of \helpref{wxDragResult}{wxdragresult} enum. Codes
|
||||||
of wxDragError, wxDragNone and wxDragCancel have the obvious meaning and mean
|
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
|
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
|
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
|
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
|
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.
|
file) you should pass FALSE as parameter to DoDragDrop() in the previous step.
|
||||||
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
|
||||||
To be a {\it drop target}, i.e. to receive the data dropped by user you should
|
To be a {\it drop target}, i.e. to receive the data dropped by user you should
|
||||||
follow the instructions below:
|
follow the instructions below:
|
||||||
|
|
||||||
@@ -91,8 +88,8 @@ or OnDropFiles() method.
|
|||||||
|
|
||||||
\item {\bf Drop:} When the user releases the mouse over a window, wxWindows
|
\item {\bf Drop:} When the user releases the mouse over a window, wxWindows
|
||||||
queries the associated wxDropTarget object if it accepts the data. For
|
queries the associated wxDropTarget object if it accepts the data. For
|
||||||
this, \helpref{GetFormatCount}{wxdroptargetgetformatcount} and
|
this, \helpref{GetFormatCount}{wxdroptargetgetformatcount} and \helpref{GetFormat}{wxdroptargetgetformat} are
|
||||||
\helpref{GetFormat}{wxdroptargetgetformat} are used and if the format is
|
used and if the format is
|
||||||
supported (i.e. is one of returned by GetFormat()),
|
supported (i.e. is one of returned by GetFormat()),
|
||||||
then \helpref{OnDrop}{wxdroptargetondrop} is called.
|
then \helpref{OnDrop}{wxdroptargetondrop} is called.
|
||||||
Otherwise, \helpref{wxDragNone}{stdformat} is returned by DoDragDrop() and
|
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>
|
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
|
and <Alt>) at the moment of drop. There is currently no way for the drop
|
||||||
target to change this return code.
|
target to change this return code.
|
||||||
|
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
|
|
||||||
|
@@ -2,6 +2,16 @@
|
|||||||
wxWindows 2.0 for Windows Change Log
|
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
|
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
|
1. Change directory to wx\src\msw. Type 'nmake -f makefile.dos' to
|
||||||
make the wxWindows core library.
|
make the wxWindows core library.
|
||||||
2. Change directory to wx\samples and type 'nmake -f makefile.dos'
|
2. Change directory to a sample, such as wx\samples\minimal, and
|
||||||
to make all the samples. You can also make them individually.
|
type 'nmake -f makefile.dos'.
|
||||||
|
|
||||||
NOTE: 16-bit compilation is not recommended (see issues.txt):
|
|
||||||
many things are broken, including dialog boxes.
|
|
||||||
|
|
||||||
Borland C++ 4.5/5.0 compilation
|
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
|
(crashes the template code). It should be switched off if you
|
||||||
wish to use wxUSE_IOSTREAMSH = 0.
|
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/defs.h"
|
||||||
#include "wx/object.h"
|
#include "wx/object.h"
|
||||||
#include "wx/imaglist.h"
|
#include "wx/generic/imaglist.h"
|
||||||
#include "wx/control.h"
|
#include "wx/control.h"
|
||||||
#include "wx/timer.h"
|
#include "wx/timer.h"
|
||||||
#include "wx/textctrl.h"
|
#include "wx/textctrl.h"
|
||||||
|
@@ -20,7 +20,6 @@
|
|||||||
#include "wx/wx.h"
|
#include "wx/wx.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "wx/tab.h"
|
|
||||||
#include "test.h"
|
#include "test.h"
|
||||||
|
|
||||||
// If 1, use a dialog. Otherwise use a frame.
|
// If 1, use a dialog. Otherwise use a frame.
|
||||||
@@ -44,10 +43,9 @@ bool MyApp::OnInit(void)
|
|||||||
#else
|
#else
|
||||||
frame = new MyFrame((wxFrame*) NULL, -1, (char *) "Notebook", wxPoint(-1, -1), wxSize(365, 390), wxDEFAULT_FRAME_STYLE);
|
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
|
// Problem with generic wxNotebook implementation whereby it doesn't size properly unless
|
||||||
// you set the size again (to a different size than before,
|
// you set the size again (to a different size than before, since SetSize is optimized)
|
||||||
// since SetSize is optimized)
|
#if defined(__WXMOTIF__) || defined(__WIN16__)
|
||||||
#ifdef __WXMOTIF__
|
|
||||||
frame->SetSize(-1, -1, 370, 390);
|
frame->SetSize(-1, -1, 370, 390);
|
||||||
#endif
|
#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)
|
IMPLEMENT_APP(MyApp)
|
||||||
|
|
||||||
// `Main program' equivalent, creating windows and returning main app frame
|
|
||||||
bool MyApp::OnInit()
|
bool MyApp::OnInit()
|
||||||
{
|
{
|
||||||
// Create the main frame window
|
// Create the main frame window
|
||||||
@@ -278,8 +277,15 @@ MyTreeCtrl::MyTreeCtrl(wxWindow *parent, const wxWindowID id,
|
|||||||
m_imageListNormal = new wxImageList(16, 16, TRUE);
|
m_imageListNormal = new wxImageList(16, 16, TRUE);
|
||||||
|
|
||||||
// should correspond to TreeCtrlIcon_xxx enum
|
// 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(icon1));
|
||||||
m_imageListNormal->Add(wxICON(icon2));
|
m_imageListNormal->Add(wxICON(icon2));
|
||||||
|
#endif
|
||||||
|
|
||||||
SetImageList(m_imageListNormal);
|
SetImageList(m_imageListNormal);
|
||||||
|
|
||||||
|
@@ -5,3 +5,6 @@ aaaa ICON "mondrian.ico"
|
|||||||
icon1 ICON "bitmaps\\file1.ico"
|
icon1 ICON "bitmaps\\file1.ico"
|
||||||
icon2 ICON "bitmaps\\folder1.ico"
|
icon2 ICON "bitmaps\\folder1.ico"
|
||||||
|
|
||||||
|
bitmap1 BITMAP "bitmaps\\file1.bmp"
|
||||||
|
bitmap2 BITMAP "bitmaps\\folder1.bmp"
|
||||||
|
|
||||||
|
@@ -18,7 +18,7 @@
|
|||||||
#pragma hdrstop
|
#pragma hdrstop
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "wx/imaglist.h"
|
#include "wx/generic/imaglist.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxImageList
|
// wxImageList
|
||||||
@@ -50,7 +50,10 @@ bool wxImageList::Create()
|
|||||||
|
|
||||||
int wxImageList::Add( const wxBitmap &bitmap )
|
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();
|
return m_images.Number();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -69,16 +72,22 @@ bool wxImageList::Replace( int index, const wxBitmap &bitmap )
|
|||||||
|
|
||||||
wxCHECK_MSG( node, FALSE, "wrong index in image list" );
|
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)
|
if (index == m_images.Number()-1)
|
||||||
{
|
{
|
||||||
m_images.DeleteNode( node );
|
m_images.DeleteNode( node );
|
||||||
m_images.Append( new wxBitmap(bitmap) );
|
m_images.Append( newBitmap );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
wxNode *next = node->Next();
|
wxNode *next = node->Next();
|
||||||
m_images.DeleteNode( node );
|
m_images.DeleteNode( node );
|
||||||
m_images.Insert( next, new wxBitmap(bitmap) );
|
m_images.Insert( next, newBitmap );
|
||||||
}
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@@ -127,7 +136,10 @@ bool wxImageList::Draw( int index, wxDC &dc, int x, int y,
|
|||||||
|
|
||||||
wxBitmap *bm = (wxBitmap*)node->Data();
|
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;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
@@ -20,7 +20,8 @@
|
|||||||
|
|
||||||
#include "wx/dcscreen.h"
|
#include "wx/dcscreen.h"
|
||||||
#include "wx/app.h"
|
#include "wx/app.h"
|
||||||
#include "wx/listctrl.h"
|
#include "wx/generic/listctrl.h"
|
||||||
|
#include "wx/generic/imaglist.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// wxListItemData
|
// wxListItemData
|
||||||
@@ -551,6 +552,7 @@ void wxListLineData::DoDraw( wxDC *dc, bool hilight, bool paintBG )
|
|||||||
m_bound_hilight.width, m_bound_hilight.height );
|
m_bound_hilight.width, m_bound_hilight.height );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dc->SetBackgroundMode(wxTRANSPARENT);
|
||||||
if (m_mode == wxLC_REPORT)
|
if (m_mode == wxLC_REPORT)
|
||||||
{
|
{
|
||||||
wxString s;
|
wxString s;
|
||||||
@@ -741,6 +743,7 @@ void wxListHeaderWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
|||||||
int y = 0;
|
int y = 0;
|
||||||
GetClientSize( &w, &h );
|
GetClientSize( &w, &h );
|
||||||
|
|
||||||
|
dc.SetBackgroundMode(wxTRANSPARENT);
|
||||||
dc.SetTextForeground( *wxBLACK );
|
dc.SetTextForeground( *wxBLACK );
|
||||||
if (m_foregroundColour.Ok()) dc.SetTextForeground( m_foregroundColour );
|
if (m_foregroundColour.Ok()) dc.SetTextForeground( m_foregroundColour );
|
||||||
|
|
||||||
@@ -1037,13 +1040,15 @@ void wxListMainWindow::RefreshLine( wxListLineData *line )
|
|||||||
|
|
||||||
void wxListMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
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_dirty) return;
|
||||||
|
|
||||||
if (m_lines.GetCount() == 0) return;
|
if (m_lines.GetCount() == 0) return;
|
||||||
|
|
||||||
wxPaintDC dc( this );
|
|
||||||
PrepareDC( dc );
|
|
||||||
|
|
||||||
dc.BeginDrawing();
|
dc.BeginDrawing();
|
||||||
|
|
||||||
dc.SetFont( GetFont() );
|
dc.SetFont( GetFont() );
|
||||||
|
@@ -52,7 +52,7 @@ BEGIN_EVENT_TABLE(wxNotebook, wxControl)
|
|||||||
EVT_MOUSE_EVENTS(wxNotebook::OnMouseEvent)
|
EVT_MOUSE_EVENTS(wxNotebook::OnMouseEvent)
|
||||||
EVT_SET_FOCUS(wxNotebook::OnSetFocus)
|
EVT_SET_FOCUS(wxNotebook::OnSetFocus)
|
||||||
EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey)
|
EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey)
|
||||||
EVT_IDLE(wxNotebook::OnIdle)
|
// EVT_IDLE(wxNotebook::OnIdle)
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl)
|
IMPLEMENT_DYNAMIC_CLASS(wxNotebook, wxControl)
|
||||||
@@ -108,9 +108,11 @@ bool wxNotebook::Create(wxWindow *parent,
|
|||||||
m_windowId = id == -1 ? NewControlId() : id;
|
m_windowId = id == -1 ? NewControlId() : id;
|
||||||
|
|
||||||
// It's like a normal window...
|
// 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;
|
return FALSE;
|
||||||
|
|
||||||
|
SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_3DFACE));
|
||||||
|
|
||||||
SetTabView(new wxNotebookTabView(this));
|
SetTabView(new wxNotebookTabView(this));
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
|
@@ -29,12 +29,12 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "wx/generic/treectrl.h"
|
#include "wx/generic/treectrl.h"
|
||||||
|
#include "wx/generic/imaglist.h"
|
||||||
#include "wx/settings.h"
|
#include "wx/settings.h"
|
||||||
#include "wx/log.h"
|
#include "wx/log.h"
|
||||||
#include "wx/intl.h"
|
#include "wx/intl.h"
|
||||||
#include "wx/dynarray.h"
|
#include "wx/dynarray.h"
|
||||||
#include "wx/dcclient.h"
|
#include "wx/dcclient.h"
|
||||||
#include "wx/imaglist.h"
|
|
||||||
#include "wx/msgdlg.h"
|
#include "wx/msgdlg.h"
|
||||||
|
|
||||||
// -----------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------
|
||||||
@@ -1089,6 +1089,7 @@ void wxTreeCtrl::PaintItem(wxGenericTreeItem *item, wxDC& dc)
|
|||||||
dc.DestroyClippingRegion();
|
dc.DestroyClippingRegion();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dc.SetBackgroundMode(wxTRANSPARENT);
|
||||||
dc.DrawText( item->GetText(), image_w + item->GetX(), item->GetY() );
|
dc.DrawText( item->GetText(), image_w + item->GetX(), item->GetY() );
|
||||||
|
|
||||||
// restore normal font for bold items
|
// restore normal font for bold items
|
||||||
@@ -1197,7 +1198,8 @@ void wxTreeCtrl::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
|||||||
wxPaintDC dc(this);
|
wxPaintDC dc(this);
|
||||||
PrepareDC( dc );
|
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 );
|
dc.SetPen( m_dottedPen );
|
||||||
m_lineHeight = (int)(dc.GetCharHeight() + 4);
|
m_lineHeight = (int)(dc.GetCharHeight() + 4);
|
||||||
@@ -1446,7 +1448,8 @@ void wxTreeCtrl::CalculatePositions()
|
|||||||
wxClientDC dc(this);
|
wxClientDC dc(this);
|
||||||
PrepareDC( dc );
|
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 );
|
dc.SetPen( m_dottedPen );
|
||||||
m_lineHeight = (int)(dc.GetCharHeight() + 4);
|
m_lineHeight = (int)(dc.GetCharHeight() + 4);
|
||||||
|
@@ -52,7 +52,7 @@ bool wxMetaFile::SetClipboard(int width, int height)
|
|||||||
bool wxMetaFile::Play(wxDC *dc)
|
bool wxMetaFile::Play(wxDC *dc)
|
||||||
{
|
{
|
||||||
// TODO
|
// 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
|
/* 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 ;-)
|
* not sure what wait4 does, but wait3 seems to be closest, whats a digit ;-)
|
||||||
* --- offer@sgi.com */
|
* --- offer@sgi.com */
|
||||||
#if !defined(__sgi) && !defined(__ALPHA__)
|
#if !defined(__sgi) && !defined(__SGI__) && !defined(__ALPHA__) && !defined(__SUNCC__)
|
||||||
wait4(process_data->pid, NULL, 0, NULL);
|
wait4(process_data->pid, NULL, 0, NULL);
|
||||||
#else
|
#else
|
||||||
wait3((int *) NULL, 0, (rusage *) NULL);
|
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)
|
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());
|
::DrawIcon((HDC) m_hDC, XLOG2DEV(x), YLOG2DEV(y), (HICON) icon.GetHICON());
|
||||||
|
#endif
|
||||||
|
|
||||||
CalcBoundingBox(x, y);
|
CalcBoundingBox(x, y);
|
||||||
CalcBoundingBox(x+icon.GetWidth(), y+icon.GetHeight());
|
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_width = 32;
|
||||||
M_ICONHANDLERDATA->m_height = 32;
|
M_ICONHANDLERDATA->m_height = 32;
|
||||||
#endif
|
#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);
|
M_ICONHANDLERDATA->m_ok = (M_ICONHANDLERDATA->m_hIcon != 0);
|
||||||
return M_ICONHANDLERDATA->m_ok;
|
return M_ICONHANDLERDATA->m_ok;
|
||||||
}
|
}
|
||||||
|
@@ -60,6 +60,11 @@ GENERICOBJS= \
|
|||||||
$(GENDIR)\tabg.obj \
|
$(GENDIR)\tabg.obj \
|
||||||
$(GENDIR)\textdlgg.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,
|
# These are generic things that don't need to be compiled on MSW,
|
||||||
# but sometimes it's useful to do so for testing purposes.
|
# but sometimes it's useful to do so for testing purposes.
|
||||||
NONESSENTIALOBJS= \
|
NONESSENTIALOBJS= \
|
||||||
@@ -169,11 +174,9 @@ MSWOBJS = \
|
|||||||
$(MSWDIR)\gdiobj.obj \
|
$(MSWDIR)\gdiobj.obj \
|
||||||
$(MSWDIR)\helpwin.obj \
|
$(MSWDIR)\helpwin.obj \
|
||||||
$(MSWDIR)\icon.obj \
|
$(MSWDIR)\icon.obj \
|
||||||
$(MSWDIR)\imaglist.obj \
|
|
||||||
$(MSWDIR)\iniconf.obj \
|
$(MSWDIR)\iniconf.obj \
|
||||||
$(MSWDIR)\joystick.obj \
|
$(MSWDIR)\joystick.obj \
|
||||||
$(MSWDIR)\listbox.obj \
|
$(MSWDIR)\listbox.obj \
|
||||||
$(MSWDIR)\listctrl.obj \
|
|
||||||
$(MSWDIR)\main.obj \
|
$(MSWDIR)\main.obj \
|
||||||
$(MSWDIR)\mdi.obj \
|
$(MSWDIR)\mdi.obj \
|
||||||
$(MSWDIR)\menu.obj \
|
$(MSWDIR)\menu.obj \
|
||||||
@@ -182,7 +185,6 @@ MSWOBJS = \
|
|||||||
$(MSWDIR)\minifram.obj \
|
$(MSWDIR)\minifram.obj \
|
||||||
$(MSWDIR)\msgdlg.obj \
|
$(MSWDIR)\msgdlg.obj \
|
||||||
$(MSWDIR)\nativdlg.obj \
|
$(MSWDIR)\nativdlg.obj \
|
||||||
$(MSWDIR)\notebook.obj \
|
|
||||||
$(MSWDIR)\ownerdrw.obj \
|
$(MSWDIR)\ownerdrw.obj \
|
||||||
$(MSWDIR)\palette.obj \
|
$(MSWDIR)\palette.obj \
|
||||||
$(MSWDIR)\pen.obj \
|
$(MSWDIR)\pen.obj \
|
||||||
@@ -211,11 +213,14 @@ MSWOBJS = \
|
|||||||
$(MSWDIR)\textctrl.obj \
|
$(MSWDIR)\textctrl.obj \
|
||||||
$(MSWDIR)\thread.obj \
|
$(MSWDIR)\thread.obj \
|
||||||
$(MSWDIR)\timer.obj \
|
$(MSWDIR)\timer.obj \
|
||||||
$(MSWDIR)\treectrl.obj \
|
|
||||||
$(MSWDIR)\utils.obj \
|
$(MSWDIR)\utils.obj \
|
||||||
$(MSWDIR)\utilsexc.obj \
|
$(MSWDIR)\utilsexc.obj \
|
||||||
$(MSWDIR)\wave.obj \
|
$(MSWDIR)\wave.obj \
|
||||||
$(MSWDIR)\window.obj \
|
$(MSWDIR)\window.obj \
|
||||||
|
$(MSWDIR)\notebook.obj \
|
||||||
|
$(MSWDIR)\listctrl.obj \
|
||||||
|
$(MSWDIR)\imaglist.obj \
|
||||||
|
$(MSWDIR)\treectrl.obj \
|
||||||
$(OLEDIR)\droptgt.obj \
|
$(OLEDIR)\droptgt.obj \
|
||||||
$(OLEDIR)\dropsrc.obj \
|
$(OLEDIR)\dropsrc.obj \
|
||||||
$(OLEDIR)\dataobj.obj \
|
$(OLEDIR)\dataobj.obj \
|
||||||
@@ -1150,6 +1155,26 @@ $(GENDIR)/textdlgg.obj: $*.$(SRCSUFF)
|
|||||||
$(CPPFLAGS) /c /Tp $*.$(SRCSUFF) /Fo$@
|
$(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
|
$(OBJECTS): $(WXDIR)/include/wx/setup.h
|
||||||
|
|
||||||
$(XPMDIR)\crbuffri.obj: $(XPMDIR)\crbuffri.c
|
$(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,
|
m_hWnd = (WXHWND) ::CreateDialog(wxGetInstance(), dialog_template, hParent,
|
||||||
(DLGPROC)wxDlgProc);
|
(DLGPROC)wxDlgProc);
|
||||||
#else
|
#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());
|
DLGPROC dlgproc = (DLGPROC)MakeProcInstance((DLGPROC)wxWndProc, wxGetInstance());
|
||||||
|
|
||||||
m_hWnd = (WXHWND) ::CreateDialog(wxGetInstance(), dialog_template, hParent,
|
m_hWnd = (WXHWND) ::CreateDialog(wxGetInstance(), dialog_template, hParent,
|
||||||
(DLGPROC)dlgproc);
|
(DLGPROC)dlgproc);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (m_hWnd == 0)
|
if (m_hWnd == 0)
|
||||||
|
Reference in New Issue
Block a user