wxFrame::CreateToolBar() stuff

wxDC::SetBackground from Chris Breeze
zillions of compile fixes


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@364 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
1998-07-24 19:05:25 +00:00
parent d602f1d8b6
commit 46dc76ba35
53 changed files with 645 additions and 376 deletions

View File

@@ -811,7 +811,7 @@ void wxDocManager::OnPreview(wxCommandEvent& WXUNUSED(event))
preview = new wxWindowsPrintPreview(printout, view->OnCreatePrintout());
else
#endif
preview = new wxPostScriptPrintPreview(printout, view->OnCreatePrintout());
preview = new wxPostScriptPrintPreview(printout, view->OnCreatePrintout());
wxPreviewFrame *frame = new wxPreviewFrame(preview, (wxFrame *)wxTheApp->GetTopWindow(), "Print Preview",
wxPoint(100, 100), wxSize(600, 650));

View File

@@ -356,7 +356,7 @@ bool wxEvtHandler::SearchEventTable(wxEventTable& table, wxEvent& event)
while (table.entries[i].m_fn != NULL)
{
wxEventType eventType = (wxEventType) table.entries[i].m_eventType;
// wxEventType eventType = (wxEventType) table.entries[i].m_eventType;
if ((event.GetEventType() == table.entries[i].m_eventType) &&
(table.entries[i].m_id == -1 || // Match, if event spec says any id will do (id == -1)
@@ -407,7 +407,8 @@ bool wxEvtHandler::SearchDynamicEventTable( wxEvent& event )
while (node)
{
wxEventTableEntry *entry = (wxEventTableEntry*)node->Data();
wxEventType eventType = (wxEventType) entry->m_eventType;
// wxEventType eventType = (wxEventType) entry->m_eventType;
if (entry->m_fn)
{

View File

@@ -736,7 +736,11 @@ wxDos2UnixFilename (char *s)
}
void
#ifdef __WXMSW__
wxUnix2DosFilename (char *s)
#else
wxUnix2DosFilename (char *WXUNUSED(s))
#endif
{
// Yes, I really mean this to happen under DOS only! JACS
#ifdef __WXMSW__
@@ -1346,7 +1350,7 @@ void WXDLLEXPORT wxSplitPath(const char *pszFileName,
uint nPosDos = pSepDos ? pSepDos - pszFileName : 0;
if ( nPosDos > nPosUnix )
nPosUnix = nPosDos;
uint nLen = Strlen(pszFileName);
// uint nLen = Strlen(pszFileName);
if ( pstrPath )
*pstrPath = wxString(pszFileName, nPosUnix);

View File

@@ -10,7 +10,7 @@
#include "wx/frame.h"
void wxFrame::OnIdle(wxIdleEvent& event)
void wxFrame::OnIdle(wxIdleEvent& WXUNUSED(event) )
{
DoMenuUpdates();
}

View File

@@ -210,40 +210,6 @@ wxList::~wxList (void)
}
}
#ifdef USE_STORABLE_CLASSES
wxList::wxList( istream &stream, char *WXUNUSED(data) )
{
char buf[200];
unsigned int num;
stream.read( (char*)(&num), sizeof(num) );
for (unsigned int i = 0; i < num; i++)
{
int len;
stream.read( (char*)(&len), sizeof(len) );
stream.read( (char*)(&buf), len );
buf[len] = 0;
Append( wxCreateStoredObject( buf, stream, NULL ) );
};
};
void wxList::StoreObject( ostream &stream )
{
unsigned int num = Number();
stream.write( (char*)(&num), sizeof(num) );
wxNode *node = First();
while (node)
{
wxObject *obj = (wxObject*) node->Data();
wxClassInfo *obj_info = obj->GetClassInfo();
int len = strlen(obj_info->className);
stream.write( (char*)(&len), sizeof(len) );
stream.write( obj_info->className, len );
obj->StoreObject( stream );
node = node->Next();
};
};
#endif
wxNode *wxList::Append(wxObject *object)
{
wxNode *node = new wxNode(this, last_node, NULL, object);

View File

@@ -308,7 +308,7 @@ void wxLog::DoLog(wxLogLevel level, const char *szString)
}
}
void wxLog::DoLogString(const char *szString)
void wxLog::DoLogString(const char *WXUNUSED(szString))
{
wxFAIL_MSG("DoLogString must be overrided if it's called.");
}
@@ -558,19 +558,19 @@ wxLogFrame::wxLogFrame(const char *szTitle)
// @@ what about status bar? needed (for menu prompts)?
}
void wxLogFrame::OnClose(wxCommandEvent& event)
void wxLogFrame::OnClose(wxCommandEvent& WXUNUSED(event))
{
// just hide the window
Show(FALSE);
}
void wxLogFrame::OnCloseWindow(wxCloseEvent& event)
void wxLogFrame::OnCloseWindow(wxCloseEvent& WXUNUSED(event))
{
// just hide the window
Show(FALSE);
}
void wxLogFrame::OnSave(wxCommandEvent& event)
void wxLogFrame::OnSave(wxCommandEvent& WXUNUSED(event))
{
// get the file name
// -----------------
@@ -583,9 +583,9 @@ void wxLogFrame::OnSave(wxCommandEvent& event)
// open file
// ---------
wxFile file;
bool bOk;
bool bOk = FALSE;
if ( wxFile::Exists(szFileName) ) {
bool bAppend;
bool bAppend = FALSE;
wxString strMsg;
strMsg.Printf(_("Append log to file '%s' "
"(choosing [No] will overwrite it)?"), szFileName);
@@ -637,7 +637,7 @@ void wxLogFrame::OnSave(wxCommandEvent& event)
}
}
void wxLogFrame::OnClear(wxCommandEvent& event)
void wxLogFrame::OnClear(wxCommandEvent& WXUNUSED(event))
{
m_pTextCtrl->Clear();
}

View File

@@ -387,7 +387,7 @@ int wxMemStruct::ValidateNode ()
ErrorMsg ("Object already deleted");
else {
// Can't use the error routines as we have no recognisable object.
wxTrace("Can't verify memory struct - all bets are off!\n");
// wxTrace("Can't verify memory struct - all bets are off!\n");
}
return 0;
}

View File

@@ -129,7 +129,8 @@ char* wxDatabase::GetErrorClass(void) {
return sqlstate;
}
bool wxDatabase::Open(char *thedatasource, bool exclusive, bool readOnly, char *username, char *password)
bool wxDatabase::Open(char *thedatasource, bool WXUNUSED(exclusive),
bool WXUNUSED(readOnly), char *username, char *password)
{
err_occured = FALSE;
@@ -198,7 +199,7 @@ char *wxDatabase::GetDatabaseName(void)
char nameBuf[400];
int nameSize = 0;
retcode = SQLGetInfo(hDBC, SQL_DATABASE_NAME, nameBuf, sizeof(nameBuf), (short *)&nameSize);
retcode = SQLGetInfo(hDBC, SQL_DATABASE_NAME, (unsigned char*)nameBuf, sizeof(nameBuf), (short *)&nameSize);
if (retcode != SQL_SUCCESS && retcode != SQL_SUCCESS_WITH_INFO)
return NULL;
@@ -230,15 +231,15 @@ bool wxDatabase::InWaitForDataSource(void)
return FALSE;
}
void wxDatabase::SetLoginTimeout(long seconds)
void wxDatabase::SetLoginTimeout(long WXUNUSED(seconds))
{
}
void wxDatabase::SetQueryTimeout(long seconds)
void wxDatabase::SetQueryTimeout(long WXUNUSED(seconds))
{
}
void wxDatabase::SetSynchronousMode(bool synchronous)
void wxDatabase::SetSynchronousMode(bool WXUNUSED(synchronous))
{
}
@@ -263,11 +264,11 @@ void wxDatabase::Cancel(void)
}
// Overridables
void wxDatabase::OnSetOptions(wxRecordSet *recordSet)
void wxDatabase::OnSetOptions(wxRecordSet *WXUNUSED(recordSet))
{
}
void wxDatabase::OnWaitForDataSource(bool stillExecuting)
void wxDatabase::OnWaitForDataSource(bool WXUNUSED(stillExecuting))
{
}
@@ -335,7 +336,7 @@ void wxDatabase::ResetRecordSets(void)
bool wxDatabase::GetInfo(long infoType, long *buf)
{
short sz = 0;
retcode = SQLGetInfo(hDBC, (UWORD)infoType, (char *)buf, sizeof(buf), &sz);
retcode = SQLGetInfo(hDBC, (UWORD)infoType, (unsigned char*)buf, sizeof(buf), &sz);
if (retcode != SQL_ERROR)
return TRUE;
@@ -349,7 +350,7 @@ bool wxDatabase::GetInfo(long infoType, char *buf, int bufSize)
bufSize = sizeof(buf);
short sz = 0;
retcode = SQLGetInfo(hDBC, (UWORD)infoType, buf, bufSize, &sz);
retcode = SQLGetInfo(hDBC, (UWORD)infoType, (unsigned char*)buf, bufSize, &sz);
if (retcode != SQL_ERROR)
return TRUE;
@@ -386,7 +387,7 @@ wxString wxDatabase::GetODBCVersionString(bool implementation)
int bufSize = sizeof(buf);
short sz = 0;
retcode = SQLGetInfo(hDBC, (UWORD)SQL_ODBC_VER, buf, bufSize, &sz);
retcode = SQLGetInfo(hDBC, (UWORD)SQL_ODBC_VER, (unsigned char*)buf, bufSize, &sz);
if (hDBC != 0 && noDBC)
{
@@ -427,7 +428,7 @@ float wxDatabase::GetODBCVersionFloat(bool implementation)
int bufSize = sizeof(buf);
short sz = 0;
retcode = SQLGetInfo(hDBC, (UWORD)SQL_ODBC_VER, buf, bufSize, &sz);
retcode = SQLGetInfo(hDBC, (UWORD)SQL_ODBC_VER, (unsigned char*)buf, bufSize, &sz);
if (hDBC != 0 && noDBC)
{
@@ -485,7 +486,7 @@ wxRecordSet::~wxRecordSet(void)
}
// If SQL is non-NULL, table and columns can be NULL.
bool wxRecordSet::BeginQuery(int openType, char *sql, int options)
bool wxRecordSet::BeginQuery(int WXUNUSED(openType), char *WXUNUSED(sql), int WXUNUSED(options))
{
// Needs to construct an appropriate SQL statement. By default
// (i.e. if table and columns are provided) then
@@ -565,7 +566,7 @@ void wxRecordSet::FillVars(int recnum) {
do {
((wxQueryCol*)node->Data())->FillVar(recnum);
} while (node = node->Next());
} while ((node = node->Next()));
}
bool wxRecordSet::GetResultSet(void)
@@ -796,7 +797,7 @@ bool wxRecordSet::GetTables(void)
bool wxRecordSet::GetColumns(char* table)
{
char* name=NULL;
char* wildcard = "%";
// char* wildcard = "%";
name = table ? table : tablename;
@@ -836,7 +837,7 @@ bool wxRecordSet::GetColumns(char* table)
bool wxRecordSet::GetPrimaryKeys(char* table)
{
char* name=NULL;
char* wildcard = "%";
// char* wildcard = "%";
name = table ? table : tablename;
@@ -875,7 +876,7 @@ bool wxRecordSet::GetForeignKeys(char* PkTableName, char * FkTableName)
{
char* Pkname=NULL;
char* Fkname=NULL;
char* wildcard = "%";
// char* wildcard = "%";
// Try to disable situation: both PkTableName and FkTableName are NULL
// set Pkname from tablename
@@ -1371,7 +1372,7 @@ void wxRecordSet::SetFieldDirty(const char* name, bool dirty)
((wxQueryCol*)node->Data())->SetFieldDirty(cursor, dirty);
}
void wxRecordSet::SetFieldNull(void *p, bool isNull)
void wxRecordSet::SetFieldNull(void *WXUNUSED(p), bool WXUNUSED(isNull))
{
}
@@ -1534,7 +1535,7 @@ long wxQueryCol::GetSize(int row) {
wxNode* node = fields.Nth(row);
if (!node)
return NULL;
return 0;
return ((wxQueryField*)node->Data())->GetSize();
}
@@ -1599,7 +1600,7 @@ bool wxQueryField::AllocData(void) {
{
if (data) // JACS
delete[] (char*)data;
if (data = new char[size+1])
if ((data = new char[size+1]))
{
char *str = (char *)data;
int i;
@@ -1613,7 +1614,7 @@ bool wxQueryField::AllocData(void) {
{
if (data) // JACS
delete (long*)data;
if (data = new long)
if ((data = new long))
*(long*)data = 0L;
break;
}
@@ -1621,7 +1622,7 @@ bool wxQueryField::AllocData(void) {
{
if (data)
delete (short*)data;
if (data = new short)
if ((data = new short))
*(short*)data = 0;
break;
}
@@ -1630,7 +1631,7 @@ bool wxQueryField::AllocData(void) {
{
if (data)
delete (double*)data;
if (data = new double)
if ((data = new double))
*(double*)data = 0;
break;
}
@@ -1638,7 +1639,7 @@ bool wxQueryField::AllocData(void) {
{
if (data)
delete (float*)data;
if (data = new float)
if ((data = new float))
*(float*)data = (float)0;
break;
}

View File

@@ -17,7 +17,7 @@
#include <wx/stream.h>
#include <wx/zstream.h>
#include <wx/utils.h>
#include "zlib.h"
#include "../zlib/zlib.h"
#ifdef __BORLANDC__
#pragma hdrstop

View File

@@ -18,6 +18,7 @@
#include "wx/postscrp.h"
#include "wx/intl.h"
#include "wx/log.h"
#include "wx/memory.h"
#include "unistd.h"
@@ -285,6 +286,18 @@ int wxEntry( int argc, char *argv[] )
wxClassInfo::InitializeClasses();
#if (WXDEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
#if !defined(_WINDLL)
streambuf* sBuf = new wxDebugStreamBuf;
#else
streambuf* sBuf = NULL;
#endif
ostream* oStr = new ostream(sBuf) ;
wxDebugContext::SetStream(oStr, sBuf);
#endif
if (!wxTheApp)
{
if (!wxApp::GetInitializerFunction())
@@ -347,6 +360,20 @@ int wxEntry( int argc, char *argv[] )
wxApp::CommonCleanUp();
#if (WXDEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
// At this point we want to check if there are any memory
// blocks that aren't part of the wxDebugContext itself,
// as a special case. Then when dumping we need to ignore
// wxDebugContext, too.
if (wxDebugContext::CountObjectsLeft() > 0)
{
wxTrace("There were memory leaks.\n");
wxDebugContext::Dump();
wxDebugContext::PrintStatistics();
}
wxDebugContext::SetStream(NULL, NULL);
#endif
return retValue;
};

View File

@@ -649,6 +649,46 @@ void wxPaintDC::SetBrush( const wxBrush &brush )
};
};
// CMB 21/7/98: Added SetBackground. Sets background brush
// for Clear() and bg colour for shapes filled with cross-hatch brush
void wxPaintDC::SetBackground( const wxBrush &brush )
{
if (!Ok()) return;
if (m_backgroundBrush == brush) return;
m_backgroundBrush = brush;
if (!m_backgroundBrush.Ok()) return;
m_backgroundBrush.GetColour().CalcPixel( m_cmap );
gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() );
gdk_gc_set_foreground( m_bgGC, m_backgroundBrush.GetColour().GetColor() );
GdkFill fillStyle = GDK_SOLID;
switch (m_backgroundBrush.GetStyle())
{
case wxSOLID:
case wxTRANSPARENT:
break;
default:
fillStyle = GDK_STIPPLED;
};
gdk_gc_set_fill( m_bgGC, fillStyle );
if (m_backgroundBrush.GetStyle() == wxSTIPPLE)
{
gdk_gc_set_stipple( m_bgGC, m_backgroundBrush.GetStipple()->GetPixmap() );
};
if (IS_HATCH(m_backgroundBrush.GetStyle()))
{
int num = m_backgroundBrush.GetStyle() - wxBDIAGONAL_HATCH;
gdk_gc_set_stipple( m_bgGC, hatches[num] );
};
};
void wxPaintDC::SetLogicalFunction( int function )
{
if (m_logicalFunction == function) return;
@@ -693,6 +733,14 @@ void wxPaintDC::SetTextBackground( const wxColour &col )
void wxPaintDC::SetBackgroundMode( int mode )
{
m_backgroundMode = mode;
// CMB 21/7/98: fill style of cross-hatch brushes is affected by
// transparent/solid background mode
if (m_brush.GetStyle() != wxSOLID && m_brush.GetStyle() != wxTRANSPARENT)
{
gdk_gc_set_fill( m_brushGC,
(m_backgroundMode == wxTRANSPARENT) ? GDK_STIPPLED : GDK_OPAQUE_STIPPLED);
}
};
void wxPaintDC::SetPalette( const wxPalette& WXUNUSED(palette) )

View File

@@ -77,7 +77,9 @@ wxFrame::wxFrame()
m_doingOnSize = FALSE;
m_frameMenuBar = NULL;
m_frameStatusBar = NULL;
m_frameToolBar = NULL;
m_sizeSet = FALSE;
m_addPrivateChild = FALSE;
wxTopLevelWindows.Insert( this );
};
@@ -85,7 +87,12 @@ wxFrame::wxFrame( wxWindow *parent, wxWindowID id, const wxString &title,
const wxPoint &pos, const wxSize &size,
long style, const wxString &name )
{
m_doingOnSize = FALSE;
m_frameMenuBar = NULL;
m_frameStatusBar = NULL;
m_frameToolBar = NULL;
m_sizeSet = FALSE;
m_addPrivateChild = FALSE;
Create( parent, id, title, pos, size, style, name );
wxTopLevelWindows.Insert( this );
};
@@ -131,9 +138,6 @@ bool wxFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title,
gtk_container_add( GTK_CONTAINER(m_mainWindow), m_wxwindow );
m_frameMenuBar = NULL;
m_frameStatusBar = NULL;
gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
GTK_SIGNAL_FUNC(gtk_frame_size_callback), (gpointer)this );
@@ -195,6 +199,12 @@ void wxFrame::GetClientSize( int *width, int *height ) const
{
if (m_frameMenuBar) (*height) -= wxMENU_HEIGHT;
if (m_frameStatusBar) (*height) -= wxSTATUS_HEIGHT;
if (m_frameToolBar)
{
int y = 0;
m_frameToolBar->GetSize( NULL, &y );
(*height) -= y;
}
};
};
@@ -236,6 +246,12 @@ void wxFrame::GtkOnSize( int x, int y, int width, int height )
main_height -= wxMENU_HEIGHT;
};
int toolbar_height = 0;
if (m_frameToolBar) m_frameToolBar->GetSize( NULL, &toolbar_height );
main_y += toolbar_height;
main_height -= toolbar_height;
gtk_widget_set_uposition( GTK_WIDGET(m_wxwindow), main_x, main_y );
gtk_widget_set_usize( GTK_WIDGET(m_wxwindow), main_width, main_height );
@@ -245,6 +261,12 @@ void wxFrame::GtkOnSize( int x, int y, int width, int height )
gtk_widget_set_usize( m_frameMenuBar->m_widget, width-2, wxMENU_HEIGHT-2 );
};
if (m_frameToolBar)
{
gtk_widget_set_uposition( m_frameToolBar->m_widget, 1, wxMENU_HEIGHT );
gtk_widget_set_usize( m_frameToolBar->m_widget, width-2, toolbar_height );
};
if (m_frameStatusBar)
{
m_frameStatusBar->SetSize( 0, main_height-wxSTATUS_HEIGHT, width, wxSTATUS_HEIGHT );
@@ -265,7 +287,7 @@ void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
// no child: go out !
if (!GetChildren()->First())
return;
// do we have exactly one child?
wxWindow *child = NULL;
for(wxNode *node = GetChildren()->First(); node; node = node->Next())
@@ -273,8 +295,9 @@ void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
wxWindow *win = (wxWindow *)node->Data();
if (!win->IsKindOf(CLASSINFO(wxFrame)) &&
!win->IsKindOf(CLASSINFO(wxDialog))
#if 0 // not in m_children anyway
#if 0 // not in m_children anyway
&& (win != m_frameMenuBar) &&
(win != m_frameToolBar) &&
(win != m_frameStatusBar)
#endif
)
@@ -293,6 +316,25 @@ void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
}
};
void wxFrame::AddChild( wxWindow *child )
{
if (m_addPrivateChild)
{
gtk_myfixed_put( GTK_MYFIXED(m_mainWindow), child->m_widget, child->m_x, child->m_y );
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
}
else
{
m_children.Append( child );
if (m_wxwindow)
gtk_myfixed_put( GTK_MYFIXED(m_wxwindow), child->m_widget, child->m_x, child->m_y );
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
}
};
static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
{
menu->SetInvokingWindow( win );
@@ -329,6 +371,27 @@ void wxFrame::SetMenuBar( wxMenuBar *menuBar )
}
};
wxMenuBar *wxFrame::GetMenuBar(void)
{
return m_frameMenuBar;
};
wxToolBar *wxFrame::CreateToolBar( int style, int WXUNUSED(orientation), int WXUNUSED(rowsOrColumns) )
{
m_addPrivateChild = TRUE;
m_frameToolBar = new wxToolBar( this, -1, wxDefaultPosition, wxDefaultSize, style );
m_addPrivateChild = FALSE;
return m_frameToolBar;
};
wxToolBar *wxFrame::GetToolBar(void)
{
return m_frameToolBar;
};
bool wxFrame::CreateStatusBar( int number )
{
if (m_frameStatusBar)
@@ -350,25 +413,20 @@ void wxFrame::SetStatusWidths( int n, int *width )
if (m_frameStatusBar) m_frameStatusBar->SetStatusWidths( n, width );
};
wxStatusBar *wxFrame::GetStatusBar()
wxStatusBar *wxFrame::GetStatusBar(void)
{
return m_frameStatusBar;
};
wxMenuBar *wxFrame::GetMenuBar()
{
return m_frameMenuBar;
};
void wxFrame::SetTitle( const wxString &title )
{
m_title = title;
gtk_window_set_title( GTK_WINDOW(m_widget), title );
};
void wxFrame::SetSizeHints(int minW, int minH, int maxW, int maxH, int incW)
void wxFrame::SetSizeHints(int minW, int minH, int maxW, int maxH, int WXUNUSED(incW) )
{
// VZ: I don't know a way to set the max size for the window in GTK and have
// no idea about what incW might be
gtk_widget_set_usize(m_widget, minW, minH);
if (m_wxwindow)
gdk_window_set_hints( m_wxwindow->window, -1, -1,
minW, minH, maxW, maxH, GDK_HINT_MIN_SIZE | GDK_HINT_MIN_SIZE );
}

View File

@@ -69,7 +69,6 @@ wxMDIParentFrame::wxMDIParentFrame(void)
m_clientWindow = NULL;
m_currentChild = NULL;
m_parentFrameActive = TRUE;
m_toolBar = NULL;
};
wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
@@ -80,7 +79,6 @@ wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
m_clientWindow = NULL;
m_currentChild = NULL;
m_parentFrameActive = TRUE;
m_toolBar = NULL;
Create( parent, id, title, pos, size, style, name );
};
@@ -132,16 +130,6 @@ void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
wxFrame::GetClientSize( width, height );
};
void wxMDIParentFrame::SetToolBar( wxToolBar *toolbar )
{
m_toolBar = toolbar;
};
wxWindow *wxMDIParentFrame::GetToolBar(void) const
{
return m_toolBar;
};
wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const
{
return m_currentChild;
@@ -250,7 +238,8 @@ static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
while (node)
{
wxMenuItem *menuitem = (wxMenuItem*)node->Data();
if (menuitem->GetSubMenu()) SetInvokingWindow( menuitem->GetSubMenu(), win );
if (menuitem->IsSubMenu())
SetInvokingWindow( menuitem->GetSubMenu(), win );
node = node->Next();
};
};
@@ -346,7 +335,7 @@ void wxMDIClientWindow::AddChild( wxWindow *child )
gtk_signal_connect( GTK_OBJECT(child->m_widget), "size_allocate",
GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
gtk_notebook_append_page( GTK_NOTEBOOK(m_widget), child->m_widget, label_widget );
mdi_child->m_page = (GtkNotebookPage*) (g_list_last(GTK_NOTEBOOK(m_widget)->children)->data);

View File

@@ -106,9 +106,17 @@ bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
bool wxToolBar::OnLeftClick( int toolIndex, bool toggleDown )
{
wxCommandEvent event( wxEVENT_TYPE_MENU_COMMAND, toolIndex );
event.SetEventObject( this );
event.SetInt( toolIndex );
event.SetExtraLong( (long) toggleDown);
/*
wxCommandEvent event(wxEVT_COMMAND_TOOL_CLICKED, toolIndex);
event.SetEventObject(this);
event.SetInt( toolIndex );
event.SetExtraLong((long) toggleDown);
*/
GetEventHandler()->ProcessEvent(event);
@@ -117,8 +125,9 @@ bool wxToolBar::OnLeftClick( int toolIndex, bool toggleDown )
void wxToolBar::OnRightClick( int toolIndex, float WXUNUSED(x), float WXUNUSED(y) )
{
wxCommandEvent event(wxEVT_COMMAND_TOOL_RCLICKED, toolIndex);
event.SetEventObject(this);
wxCommandEvent event( wxEVENT_TYPE_MENU_COMMAND, toolIndex );
event.SetEventObject( this );
event.SetInt( toolIndex );
GetEventHandler()->ProcessEvent(event);
};
@@ -127,6 +136,7 @@ void wxToolBar::OnMouseEnter( int toolIndex )
{
wxCommandEvent event(wxEVT_COMMAND_TOOL_ENTER, toolIndex);
event.SetEventObject(this);
event.SetInt( toolIndex );
GetEventHandler()->ProcessEvent(event);
};
@@ -169,6 +179,29 @@ void wxToolBar::ClearTools(void)
{
};
void wxToolBar::Layout(void)
{
m_x = 0;
m_y = 0;
m_width = 100;
m_height = 0;
wxNode *node = m_tools.First();
while (node)
{
wxToolBarTool *tool = (wxToolBarTool*)node->Data();
if (tool->m_bitmap1.Ok())
{
int tool_height = tool->m_bitmap1.GetHeight();
if (tool_height > m_height) m_height = tool_height;
};
node = node->Next();
};
m_height += 10;
};
void wxToolBar::EnableTool(int toolIndex, bool enable)
{
};

View File

@@ -308,7 +308,7 @@ void wxTextCtrl::OnChar( wxKeyEvent &WXUNUSED(event) )
{
};
int wxTextCtrl::overflow(int c)
int wxTextCtrl::overflow( int WXUNUSED(c) )
{
int len = pptr() - pbase();
char *txt = new char[len+1];

View File

@@ -1417,7 +1417,6 @@ void wxWindow::SetFocus(void)
bool wxWindow::OnClose(void)
{
printf( "OnClose event.\n" );
return TRUE;
};
@@ -1431,6 +1430,21 @@ void wxWindow::AddChild( wxWindow *child )
// for wxFrame, wxDialog, wxWindow and
// wxMDIParentFrame.
// wxFrame and wxDialog as children aren't placed into the parents
if (child->IsKindOf(CLASSINFO(wxFrame)) || child->IsKindOf(CLASSINFO(wxDialog)))
{
m_children.Append( child );
if ((child->m_x != -1) && (child->m_y != -1))
gtk_widget_set_uposition( child->m_widget, child->m_x, child->m_y );
return;
}
// In the case of an wxMDIChildFrame descendant, we use the
// client windows's AddChild()
if (IsKindOf(CLASSINFO(wxMDIParentFrame)))
{
if (child->IsKindOf(CLASSINFO(wxMDIChildFrame)))
@@ -1440,30 +1454,32 @@ void wxWindow::AddChild( wxWindow *child )
{
client->AddChild( child );
return;
};
};
};
}
}
}
// wxNotebooks are very special, so they have their own AddChild
// wxNotebook is very special, so it has a private AddChild()
if (IsKindOf(CLASSINFO(wxNotebook)))
{
wxNotebook *tab = (wxNotebook*)this;
tab->AddChild( child );
return;
};
}
// wxFrame has a private AddChild
if (IsKindOf(CLASSINFO(wxFrame)))
{
wxFrame *frame = (wxFrame*)this;
frame->AddChild( child );
return;
}
// All the rest
m_children.Append( child );
if (child->IsKindOf(CLASSINFO(wxFrame)) || child->IsKindOf(CLASSINFO(wxDialog)))
{
if ((child->m_x != -1) && (child->m_y != -1))
gtk_widget_set_uposition( child->m_widget, child->m_x, child->m_y );
}
else
{
if (m_wxwindow)
gtk_myfixed_put( GTK_MYFIXED(m_wxwindow), child->m_widget, child->m_x, child->m_y );
};
if (m_wxwindow) gtk_myfixed_put( GTK_MYFIXED(m_wxwindow), child->m_widget, child->m_x, child->m_y );
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
};

View File

@@ -18,6 +18,7 @@
#include "wx/postscrp.h"
#include "wx/intl.h"
#include "wx/log.h"
#include "wx/memory.h"
#include "unistd.h"
@@ -285,6 +286,18 @@ int wxEntry( int argc, char *argv[] )
wxClassInfo::InitializeClasses();
#if (WXDEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
#if !defined(_WINDLL)
streambuf* sBuf = new wxDebugStreamBuf;
#else
streambuf* sBuf = NULL;
#endif
ostream* oStr = new ostream(sBuf) ;
wxDebugContext::SetStream(oStr, sBuf);
#endif
if (!wxTheApp)
{
if (!wxApp::GetInitializerFunction())
@@ -347,6 +360,20 @@ int wxEntry( int argc, char *argv[] )
wxApp::CommonCleanUp();
#if (WXDEBUG && USE_MEMORY_TRACING) || USE_DEBUG_CONTEXT
// At this point we want to check if there are any memory
// blocks that aren't part of the wxDebugContext itself,
// as a special case. Then when dumping we need to ignore
// wxDebugContext, too.
if (wxDebugContext::CountObjectsLeft() > 0)
{
wxTrace("There were memory leaks.\n");
wxDebugContext::Dump();
wxDebugContext::PrintStatistics();
}
wxDebugContext::SetStream(NULL, NULL);
#endif
return retValue;
};

View File

@@ -649,6 +649,46 @@ void wxPaintDC::SetBrush( const wxBrush &brush )
};
};
// CMB 21/7/98: Added SetBackground. Sets background brush
// for Clear() and bg colour for shapes filled with cross-hatch brush
void wxPaintDC::SetBackground( const wxBrush &brush )
{
if (!Ok()) return;
if (m_backgroundBrush == brush) return;
m_backgroundBrush = brush;
if (!m_backgroundBrush.Ok()) return;
m_backgroundBrush.GetColour().CalcPixel( m_cmap );
gdk_gc_set_background( m_brushGC, m_backgroundBrush.GetColour().GetColor() );
gdk_gc_set_foreground( m_bgGC, m_backgroundBrush.GetColour().GetColor() );
GdkFill fillStyle = GDK_SOLID;
switch (m_backgroundBrush.GetStyle())
{
case wxSOLID:
case wxTRANSPARENT:
break;
default:
fillStyle = GDK_STIPPLED;
};
gdk_gc_set_fill( m_bgGC, fillStyle );
if (m_backgroundBrush.GetStyle() == wxSTIPPLE)
{
gdk_gc_set_stipple( m_bgGC, m_backgroundBrush.GetStipple()->GetPixmap() );
};
if (IS_HATCH(m_backgroundBrush.GetStyle()))
{
int num = m_backgroundBrush.GetStyle() - wxBDIAGONAL_HATCH;
gdk_gc_set_stipple( m_bgGC, hatches[num] );
};
};
void wxPaintDC::SetLogicalFunction( int function )
{
if (m_logicalFunction == function) return;
@@ -693,6 +733,14 @@ void wxPaintDC::SetTextBackground( const wxColour &col )
void wxPaintDC::SetBackgroundMode( int mode )
{
m_backgroundMode = mode;
// CMB 21/7/98: fill style of cross-hatch brushes is affected by
// transparent/solid background mode
if (m_brush.GetStyle() != wxSOLID && m_brush.GetStyle() != wxTRANSPARENT)
{
gdk_gc_set_fill( m_brushGC,
(m_backgroundMode == wxTRANSPARENT) ? GDK_STIPPLED : GDK_OPAQUE_STIPPLED);
}
};
void wxPaintDC::SetPalette( const wxPalette& WXUNUSED(palette) )

View File

@@ -77,7 +77,9 @@ wxFrame::wxFrame()
m_doingOnSize = FALSE;
m_frameMenuBar = NULL;
m_frameStatusBar = NULL;
m_frameToolBar = NULL;
m_sizeSet = FALSE;
m_addPrivateChild = FALSE;
wxTopLevelWindows.Insert( this );
};
@@ -85,7 +87,12 @@ wxFrame::wxFrame( wxWindow *parent, wxWindowID id, const wxString &title,
const wxPoint &pos, const wxSize &size,
long style, const wxString &name )
{
m_doingOnSize = FALSE;
m_frameMenuBar = NULL;
m_frameStatusBar = NULL;
m_frameToolBar = NULL;
m_sizeSet = FALSE;
m_addPrivateChild = FALSE;
Create( parent, id, title, pos, size, style, name );
wxTopLevelWindows.Insert( this );
};
@@ -131,9 +138,6 @@ bool wxFrame::Create( wxWindow *parent, wxWindowID id, const wxString &title,
gtk_container_add( GTK_CONTAINER(m_mainWindow), m_wxwindow );
m_frameMenuBar = NULL;
m_frameStatusBar = NULL;
gtk_signal_connect( GTK_OBJECT(m_widget), "size_allocate",
GTK_SIGNAL_FUNC(gtk_frame_size_callback), (gpointer)this );
@@ -195,6 +199,12 @@ void wxFrame::GetClientSize( int *width, int *height ) const
{
if (m_frameMenuBar) (*height) -= wxMENU_HEIGHT;
if (m_frameStatusBar) (*height) -= wxSTATUS_HEIGHT;
if (m_frameToolBar)
{
int y = 0;
m_frameToolBar->GetSize( NULL, &y );
(*height) -= y;
}
};
};
@@ -236,6 +246,12 @@ void wxFrame::GtkOnSize( int x, int y, int width, int height )
main_height -= wxMENU_HEIGHT;
};
int toolbar_height = 0;
if (m_frameToolBar) m_frameToolBar->GetSize( NULL, &toolbar_height );
main_y += toolbar_height;
main_height -= toolbar_height;
gtk_widget_set_uposition( GTK_WIDGET(m_wxwindow), main_x, main_y );
gtk_widget_set_usize( GTK_WIDGET(m_wxwindow), main_width, main_height );
@@ -245,6 +261,12 @@ void wxFrame::GtkOnSize( int x, int y, int width, int height )
gtk_widget_set_usize( m_frameMenuBar->m_widget, width-2, wxMENU_HEIGHT-2 );
};
if (m_frameToolBar)
{
gtk_widget_set_uposition( m_frameToolBar->m_widget, 1, wxMENU_HEIGHT );
gtk_widget_set_usize( m_frameToolBar->m_widget, width-2, toolbar_height );
};
if (m_frameStatusBar)
{
m_frameStatusBar->SetSize( 0, main_height-wxSTATUS_HEIGHT, width, wxSTATUS_HEIGHT );
@@ -265,7 +287,7 @@ void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
// no child: go out !
if (!GetChildren()->First())
return;
// do we have exactly one child?
wxWindow *child = NULL;
for(wxNode *node = GetChildren()->First(); node; node = node->Next())
@@ -273,8 +295,9 @@ void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
wxWindow *win = (wxWindow *)node->Data();
if (!win->IsKindOf(CLASSINFO(wxFrame)) &&
!win->IsKindOf(CLASSINFO(wxDialog))
#if 0 // not in m_children anyway
#if 0 // not in m_children anyway
&& (win != m_frameMenuBar) &&
(win != m_frameToolBar) &&
(win != m_frameStatusBar)
#endif
)
@@ -293,6 +316,25 @@ void wxFrame::OnSize( wxSizeEvent &WXUNUSED(event) )
}
};
void wxFrame::AddChild( wxWindow *child )
{
if (m_addPrivateChild)
{
gtk_myfixed_put( GTK_MYFIXED(m_mainWindow), child->m_widget, child->m_x, child->m_y );
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
}
else
{
m_children.Append( child );
if (m_wxwindow)
gtk_myfixed_put( GTK_MYFIXED(m_wxwindow), child->m_widget, child->m_x, child->m_y );
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
}
};
static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
{
menu->SetInvokingWindow( win );
@@ -329,6 +371,27 @@ void wxFrame::SetMenuBar( wxMenuBar *menuBar )
}
};
wxMenuBar *wxFrame::GetMenuBar(void)
{
return m_frameMenuBar;
};
wxToolBar *wxFrame::CreateToolBar( int style, int WXUNUSED(orientation), int WXUNUSED(rowsOrColumns) )
{
m_addPrivateChild = TRUE;
m_frameToolBar = new wxToolBar( this, -1, wxDefaultPosition, wxDefaultSize, style );
m_addPrivateChild = FALSE;
return m_frameToolBar;
};
wxToolBar *wxFrame::GetToolBar(void)
{
return m_frameToolBar;
};
bool wxFrame::CreateStatusBar( int number )
{
if (m_frameStatusBar)
@@ -350,25 +413,20 @@ void wxFrame::SetStatusWidths( int n, int *width )
if (m_frameStatusBar) m_frameStatusBar->SetStatusWidths( n, width );
};
wxStatusBar *wxFrame::GetStatusBar()
wxStatusBar *wxFrame::GetStatusBar(void)
{
return m_frameStatusBar;
};
wxMenuBar *wxFrame::GetMenuBar()
{
return m_frameMenuBar;
};
void wxFrame::SetTitle( const wxString &title )
{
m_title = title;
gtk_window_set_title( GTK_WINDOW(m_widget), title );
};
void wxFrame::SetSizeHints(int minW, int minH, int maxW, int maxH, int incW)
void wxFrame::SetSizeHints(int minW, int minH, int maxW, int maxH, int WXUNUSED(incW) )
{
// VZ: I don't know a way to set the max size for the window in GTK and have
// no idea about what incW might be
gtk_widget_set_usize(m_widget, minW, minH);
if (m_wxwindow)
gdk_window_set_hints( m_wxwindow->window, -1, -1,
minW, minH, maxW, maxH, GDK_HINT_MIN_SIZE | GDK_HINT_MIN_SIZE );
}

View File

@@ -69,7 +69,6 @@ wxMDIParentFrame::wxMDIParentFrame(void)
m_clientWindow = NULL;
m_currentChild = NULL;
m_parentFrameActive = TRUE;
m_toolBar = NULL;
};
wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
@@ -80,7 +79,6 @@ wxMDIParentFrame::wxMDIParentFrame( wxWindow *parent,
m_clientWindow = NULL;
m_currentChild = NULL;
m_parentFrameActive = TRUE;
m_toolBar = NULL;
Create( parent, id, title, pos, size, style, name );
};
@@ -132,16 +130,6 @@ void wxMDIParentFrame::GetClientSize(int *width, int *height ) const
wxFrame::GetClientSize( width, height );
};
void wxMDIParentFrame::SetToolBar( wxToolBar *toolbar )
{
m_toolBar = toolbar;
};
wxWindow *wxMDIParentFrame::GetToolBar(void) const
{
return m_toolBar;
};
wxMDIChildFrame *wxMDIParentFrame::GetActiveChild(void) const
{
return m_currentChild;
@@ -250,7 +238,8 @@ static void SetInvokingWindow( wxMenu *menu, wxWindow *win )
while (node)
{
wxMenuItem *menuitem = (wxMenuItem*)node->Data();
if (menuitem->GetSubMenu()) SetInvokingWindow( menuitem->GetSubMenu(), win );
if (menuitem->IsSubMenu())
SetInvokingWindow( menuitem->GetSubMenu(), win );
node = node->Next();
};
};
@@ -346,7 +335,7 @@ void wxMDIClientWindow::AddChild( wxWindow *child )
gtk_signal_connect( GTK_OBJECT(child->m_widget), "size_allocate",
GTK_SIGNAL_FUNC(gtk_page_size_callback), (gpointer)child );
gtk_notebook_append_page( GTK_NOTEBOOK(m_widget), child->m_widget, label_widget );
mdi_child->m_page = (GtkNotebookPage*) (g_list_last(GTK_NOTEBOOK(m_widget)->children)->data);

View File

@@ -106,9 +106,17 @@ bool wxToolBar::Create( wxWindow *parent, wxWindowID id,
bool wxToolBar::OnLeftClick( int toolIndex, bool toggleDown )
{
wxCommandEvent event( wxEVENT_TYPE_MENU_COMMAND, toolIndex );
event.SetEventObject( this );
event.SetInt( toolIndex );
event.SetExtraLong( (long) toggleDown);
/*
wxCommandEvent event(wxEVT_COMMAND_TOOL_CLICKED, toolIndex);
event.SetEventObject(this);
event.SetInt( toolIndex );
event.SetExtraLong((long) toggleDown);
*/
GetEventHandler()->ProcessEvent(event);
@@ -117,8 +125,9 @@ bool wxToolBar::OnLeftClick( int toolIndex, bool toggleDown )
void wxToolBar::OnRightClick( int toolIndex, float WXUNUSED(x), float WXUNUSED(y) )
{
wxCommandEvent event(wxEVT_COMMAND_TOOL_RCLICKED, toolIndex);
event.SetEventObject(this);
wxCommandEvent event( wxEVENT_TYPE_MENU_COMMAND, toolIndex );
event.SetEventObject( this );
event.SetInt( toolIndex );
GetEventHandler()->ProcessEvent(event);
};
@@ -127,6 +136,7 @@ void wxToolBar::OnMouseEnter( int toolIndex )
{
wxCommandEvent event(wxEVT_COMMAND_TOOL_ENTER, toolIndex);
event.SetEventObject(this);
event.SetInt( toolIndex );
GetEventHandler()->ProcessEvent(event);
};
@@ -169,6 +179,29 @@ void wxToolBar::ClearTools(void)
{
};
void wxToolBar::Layout(void)
{
m_x = 0;
m_y = 0;
m_width = 100;
m_height = 0;
wxNode *node = m_tools.First();
while (node)
{
wxToolBarTool *tool = (wxToolBarTool*)node->Data();
if (tool->m_bitmap1.Ok())
{
int tool_height = tool->m_bitmap1.GetHeight();
if (tool_height > m_height) m_height = tool_height;
};
node = node->Next();
};
m_height += 10;
};
void wxToolBar::EnableTool(int toolIndex, bool enable)
{
};

View File

@@ -308,7 +308,7 @@ void wxTextCtrl::OnChar( wxKeyEvent &WXUNUSED(event) )
{
};
int wxTextCtrl::overflow(int c)
int wxTextCtrl::overflow( int WXUNUSED(c) )
{
int len = pptr() - pbase();
char *txt = new char[len+1];

View File

@@ -1417,7 +1417,6 @@ void wxWindow::SetFocus(void)
bool wxWindow::OnClose(void)
{
printf( "OnClose event.\n" );
return TRUE;
};
@@ -1431,6 +1430,21 @@ void wxWindow::AddChild( wxWindow *child )
// for wxFrame, wxDialog, wxWindow and
// wxMDIParentFrame.
// wxFrame and wxDialog as children aren't placed into the parents
if (child->IsKindOf(CLASSINFO(wxFrame)) || child->IsKindOf(CLASSINFO(wxDialog)))
{
m_children.Append( child );
if ((child->m_x != -1) && (child->m_y != -1))
gtk_widget_set_uposition( child->m_widget, child->m_x, child->m_y );
return;
}
// In the case of an wxMDIChildFrame descendant, we use the
// client windows's AddChild()
if (IsKindOf(CLASSINFO(wxMDIParentFrame)))
{
if (child->IsKindOf(CLASSINFO(wxMDIChildFrame)))
@@ -1440,30 +1454,32 @@ void wxWindow::AddChild( wxWindow *child )
{
client->AddChild( child );
return;
};
};
};
}
}
}
// wxNotebooks are very special, so they have their own AddChild
// wxNotebook is very special, so it has a private AddChild()
if (IsKindOf(CLASSINFO(wxNotebook)))
{
wxNotebook *tab = (wxNotebook*)this;
tab->AddChild( child );
return;
};
}
// wxFrame has a private AddChild
if (IsKindOf(CLASSINFO(wxFrame)))
{
wxFrame *frame = (wxFrame*)this;
frame->AddChild( child );
return;
}
// All the rest
m_children.Append( child );
if (child->IsKindOf(CLASSINFO(wxFrame)) || child->IsKindOf(CLASSINFO(wxDialog)))
{
if ((child->m_x != -1) && (child->m_y != -1))
gtk_widget_set_uposition( child->m_widget, child->m_x, child->m_y );
}
else
{
if (m_wxwindow)
gtk_myfixed_put( GTK_MYFIXED(m_wxwindow), child->m_widget, child->m_x, child->m_y );
};
if (m_wxwindow) gtk_myfixed_put( GTK_MYFIXED(m_wxwindow), child->m_widget, child->m_x, child->m_y );
gtk_widget_set_usize( child->m_widget, child->m_width, child->m_height );
};

View File

@@ -1,7 +1,9 @@
#ifndef _LINUX_CONFIG_H
#define _LINUX_CONFIG_H
#ifdef __LINUX__
#include <linux/autoconf.h>
#endif
/*
* Defines for what uname() should return