1. many, many, many warnings fixed (from HP-UX build log; 50% are still left)
2. attempt (failed) at compiling wxGTK with GTK+ 1.3.0 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@5152 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -19,7 +19,14 @@
|
||||
|
||||
#include <gdk/gdk.h>
|
||||
#include <gdk/gdkprivate.h>
|
||||
#include <gdk/gdkx.h>
|
||||
|
||||
// in GTK+ 1.3 gdk_root_parent was renamed into gdk_parent_root
|
||||
#ifdef __WXGTK13__
|
||||
#define gdk_root_parent gdk_parent_root
|
||||
#else // GTK+ <= 1.2
|
||||
// need to get the declaration of gdk_root_parent from private header
|
||||
#include <gdk/gdkx.h>
|
||||
#endif // GTK+ 1.3/1.2
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
// wxMask
|
||||
@@ -52,7 +59,7 @@ wxMask::wxMask( const wxBitmap& bitmap )
|
||||
|
||||
wxMask::~wxMask()
|
||||
{
|
||||
if (m_bitmap)
|
||||
if (m_bitmap)
|
||||
gdk_bitmap_unref( m_bitmap );
|
||||
}
|
||||
|
||||
@@ -64,14 +71,14 @@ bool wxMask::Create( const wxBitmap& bitmap,
|
||||
gdk_bitmap_unref( m_bitmap );
|
||||
m_bitmap = (GdkBitmap*) NULL;
|
||||
}
|
||||
|
||||
|
||||
wxImage image( bitmap );
|
||||
if (!image.Ok()) return FALSE;
|
||||
|
||||
|
||||
GdkWindow *parent = (GdkWindow*) &gdk_root_parent;
|
||||
m_bitmap = gdk_pixmap_new( parent, image.GetWidth(), image.GetHeight(), 1 );
|
||||
GdkGC *gc = gdk_gc_new( m_bitmap );
|
||||
|
||||
|
||||
GdkColor color;
|
||||
color.red = 65000;
|
||||
color.green = 65000;
|
||||
@@ -80,14 +87,14 @@ bool wxMask::Create( const wxBitmap& bitmap,
|
||||
gdk_gc_set_foreground( gc, &color );
|
||||
gdk_gc_set_fill( gc, GDK_SOLID );
|
||||
gdk_draw_rectangle( m_bitmap, gc, TRUE, 0, 0, image.GetWidth(), image.GetHeight() );
|
||||
|
||||
|
||||
unsigned char *data = image.GetData();
|
||||
int index = 0;
|
||||
|
||||
|
||||
unsigned char red = colour.Red();
|
||||
unsigned char green = colour.Green();
|
||||
unsigned char blue = colour.Blue();
|
||||
|
||||
|
||||
GdkVisual *visual = gdk_visual_get_system();
|
||||
int bpp = visual->depth;
|
||||
if ((bpp == 16) && (visual->red_mask != 0xf800)) bpp = 15;
|
||||
@@ -103,33 +110,33 @@ bool wxMask::Create( const wxBitmap& bitmap,
|
||||
blue = blue & 0xfc;
|
||||
green = green & 0xf8;
|
||||
}
|
||||
|
||||
|
||||
color.red = 0;
|
||||
color.green = 0;
|
||||
color.blue = 0;
|
||||
color.pixel = 0;
|
||||
gdk_gc_set_foreground( gc, &color );
|
||||
|
||||
|
||||
for (int j = 0; j < image.GetHeight(); j++)
|
||||
{
|
||||
int start_x = -1;
|
||||
int i;
|
||||
for (i = 0; i < image.GetWidth(); i++)
|
||||
{
|
||||
if ((data[index] == red) &&
|
||||
(data[index+1] == green) &&
|
||||
(data[index+2] == blue))
|
||||
{
|
||||
if (start_x == -1)
|
||||
start_x = i;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (start_x != -1)
|
||||
{
|
||||
gdk_draw_line( m_bitmap, gc, start_x, j, i-1, j );
|
||||
start_x = -1;
|
||||
}
|
||||
if ((data[index] == red) &&
|
||||
(data[index+1] == green) &&
|
||||
(data[index+2] == blue))
|
||||
{
|
||||
if (start_x == -1)
|
||||
start_x = i;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (start_x != -1)
|
||||
{
|
||||
gdk_draw_line( m_bitmap, gc, start_x, j, i-1, j );
|
||||
start_x = -1;
|
||||
}
|
||||
}
|
||||
index += 3;
|
||||
}
|
||||
@@ -387,39 +394,39 @@ void wxBitmap::SetMask( wxMask *mask )
|
||||
wxBitmap wxBitmap::GetSubBitmap( const wxRect& rect) const
|
||||
{
|
||||
wxCHECK_MSG( Ok() &&
|
||||
(rect.x >= 0) && (rect.y >= 0) &&
|
||||
(rect.x+rect.width <= M_BMPDATA->m_width) && (rect.y+rect.height <= M_BMPDATA->m_height),
|
||||
(rect.x >= 0) && (rect.y >= 0) &&
|
||||
(rect.x+rect.width <= M_BMPDATA->m_width) && (rect.y+rect.height <= M_BMPDATA->m_height),
|
||||
wxNullBitmap, wxT("invalid bitmap or bitmap region") );
|
||||
|
||||
|
||||
wxBitmap ret( rect.width, rect.height, M_BMPDATA->m_bpp );
|
||||
wxASSERT_MSG( ret.Ok(), wxT("GetSubBitmap error") );
|
||||
|
||||
|
||||
if (ret.GetPixmap())
|
||||
{
|
||||
GdkGC *gc = gdk_gc_new( ret.GetPixmap() );
|
||||
gdk_draw_pixmap( ret.GetPixmap(), gc, GetPixmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
|
||||
gdk_gc_destroy( gc );
|
||||
gdk_draw_pixmap( ret.GetPixmap(), gc, GetPixmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
|
||||
gdk_gc_destroy( gc );
|
||||
}
|
||||
else
|
||||
{
|
||||
GdkGC *gc = gdk_gc_new( ret.GetBitmap() );
|
||||
gdk_draw_bitmap( ret.GetBitmap(), gc, GetBitmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
|
||||
gdk_gc_destroy( gc );
|
||||
gdk_draw_bitmap( ret.GetBitmap(), gc, GetBitmap(), rect.x, rect.y, 0, 0, rect.width, rect.height );
|
||||
gdk_gc_destroy( gc );
|
||||
}
|
||||
|
||||
|
||||
if (GetMask())
|
||||
{
|
||||
wxMask *mask = new wxMask;
|
||||
GdkWindow *parent = (GdkWindow*) &gdk_root_parent;
|
||||
mask->m_bitmap = gdk_pixmap_new( parent, rect.width, rect.height, 1 );
|
||||
|
||||
|
||||
GdkGC *gc = gdk_gc_new( mask->m_bitmap );
|
||||
gdk_draw_bitmap( mask->m_bitmap, gc, M_BMPDATA->m_mask->m_bitmap, 0, 0, rect.x, rect.y, rect.width, rect.height );
|
||||
gdk_gc_destroy( gc );
|
||||
|
||||
ret.SetMask( mask );
|
||||
gdk_draw_bitmap( mask->m_bitmap, gc, M_BMPDATA->m_mask->m_bitmap, 0, 0, rect.x, rect.y, rect.width, rect.height );
|
||||
gdk_gc_destroy( gc );
|
||||
|
||||
ret.SetMask( mask );
|
||||
}
|
||||
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
@@ -463,7 +463,7 @@ void wxComboBox::Copy()
|
||||
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
|
||||
|
||||
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
|
||||
#if (GTK_MINOR_VERSION > 0)
|
||||
#if defined(__WXGTK13__) || (GTK_MINOR_VERSION > 0)
|
||||
gtk_editable_copy_clipboard( GTK_EDITABLE(entry) );
|
||||
#else
|
||||
gtk_editable_copy_clipboard( GTK_EDITABLE(entry), 0 );
|
||||
@@ -475,7 +475,7 @@ void wxComboBox::Cut()
|
||||
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
|
||||
|
||||
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
|
||||
#if (GTK_MINOR_VERSION > 0)
|
||||
#if defined(__WXGTK13__) || (GTK_MINOR_VERSION > 0)
|
||||
gtk_editable_cut_clipboard( GTK_EDITABLE(entry) );
|
||||
#else
|
||||
gtk_editable_cut_clipboard( GTK_EDITABLE(entry), 0 );
|
||||
@@ -487,7 +487,7 @@ void wxComboBox::Paste()
|
||||
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
|
||||
|
||||
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
|
||||
#if (GTK_MINOR_VERSION > 0)
|
||||
#if defined(__WXGTK13__) || (GTK_MINOR_VERSION > 0)
|
||||
gtk_editable_paste_clipboard( GTK_EDITABLE(entry) );
|
||||
#else
|
||||
gtk_editable_paste_clipboard( GTK_EDITABLE(entry), 0 );
|
||||
|
@@ -792,13 +792,13 @@ void wxWindowDC::DoDrawText( const wxString &text, wxCoord x, wxCoord y )
|
||||
properties (see wxXt implementation) */
|
||||
if (m_font.GetUnderlined())
|
||||
{
|
||||
long width = gdk_string_width( font, text.mbc_str() );
|
||||
long ul_y = y + font->ascent;
|
||||
wxCoord width = gdk_string_width( font, text.mbc_str() );
|
||||
wxCoord ul_y = y + font->ascent;
|
||||
if (font->descent > 0) ul_y++;
|
||||
gdk_draw_line( m_window, m_textGC, x, ul_y, x + width, ul_y);
|
||||
}
|
||||
|
||||
long w, h;
|
||||
wxCoord w, h;
|
||||
GetTextExtent (text, &w, &h);
|
||||
CalcBoundingBox (x + w, y + h);
|
||||
CalcBoundingBox (x, y);
|
||||
@@ -821,8 +821,8 @@ void wxWindowDC::DoDrawRotatedText( const wxString &text, wxCoord x, wxCoord y,
|
||||
wxCHECK_RET( font, wxT("invalid font") );
|
||||
|
||||
// the size of the text
|
||||
int w = gdk_string_width( font, text.mbc_str() );
|
||||
int h = font->ascent + font->descent;
|
||||
wxCoord w = gdk_string_width( font, text.mbc_str() );
|
||||
wxCoord h = font->ascent + font->descent;
|
||||
|
||||
// draw the string normally
|
||||
wxBitmap src(w, h);
|
||||
|
@@ -208,7 +208,7 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
|
||||
int y = (int)gdk_event->y;
|
||||
|
||||
DrawFrame( widget, win->m_oldX, win->m_oldY, win->m_width, win->m_height );
|
||||
gdk_pointer_ungrab ( GDK_CURRENT_TIME );
|
||||
gdk_pointer_ungrab ( (guint32)GDK_CURRENT_TIME );
|
||||
int org_x = 0;
|
||||
int org_y = 0;
|
||||
gdk_window_get_origin( widget->window, &org_x, &org_y );
|
||||
|
@@ -100,17 +100,27 @@ wxTextCtrl::wxTextCtrl()
|
||||
m_modified = FALSE;
|
||||
}
|
||||
|
||||
wxTextCtrl::wxTextCtrl( wxWindow *parent, wxWindowID id, const wxString &value,
|
||||
const wxPoint &pos, const wxSize &size,
|
||||
int style, const wxValidator& validator, const wxString &name )
|
||||
wxTextCtrl::wxTextCtrl( wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxString &value,
|
||||
const wxPoint &pos,
|
||||
const wxSize &size,
|
||||
long style,
|
||||
const wxValidator& validator,
|
||||
const wxString &name )
|
||||
{
|
||||
m_modified = FALSE;
|
||||
Create( parent, id, value, pos, size, style, validator, name );
|
||||
}
|
||||
|
||||
bool wxTextCtrl::Create( wxWindow *parent, wxWindowID id, const wxString &value,
|
||||
const wxPoint &pos, const wxSize &size,
|
||||
int style, const wxValidator& validator, const wxString &name )
|
||||
bool wxTextCtrl::Create( wxWindow *parent,
|
||||
wxWindowID id,
|
||||
const wxString &value,
|
||||
const wxPoint &pos,
|
||||
const wxSize &size,
|
||||
long style,
|
||||
const wxValidator& validator,
|
||||
const wxString &name )
|
||||
{
|
||||
m_needParent = TRUE;
|
||||
m_acceptsFocus = TRUE;
|
||||
@@ -119,7 +129,7 @@ bool wxTextCtrl::Create( wxWindow *parent, wxWindowID id, const wxString &value,
|
||||
!CreateBase( parent, id, pos, size, style, validator, name ))
|
||||
{
|
||||
wxFAIL_MSG( wxT("wxTextCtrl creation failed") );
|
||||
return FALSE;
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
@@ -247,7 +257,7 @@ bool wxTextCtrl::Create( wxWindow *parent, wxWindowID id, const wxString &value,
|
||||
SetForegroundColour( parent->GetForegroundColour() );
|
||||
|
||||
m_cursor = wxCursor( wxCURSOR_IBEAM );
|
||||
|
||||
|
||||
Show( TRUE );
|
||||
|
||||
return TRUE;
|
||||
@@ -330,7 +340,7 @@ void wxTextCtrl::WriteText( const wxString &text )
|
||||
{
|
||||
/* this moves the cursor pos to behind the inserted text */
|
||||
gint len = GTK_EDITABLE(m_text)->current_pos;
|
||||
|
||||
|
||||
#if wxUSE_UNICODE
|
||||
wxWX2MBbuf buf = text.mbc_str();
|
||||
gtk_editable_insert_text( GTK_EDITABLE(m_text), buf, strlen(buf), &len );
|
||||
@@ -781,13 +791,13 @@ void wxTextCtrl::OnChar( wxKeyEvent &key_event )
|
||||
wxWindow *top_frame = m_parent;
|
||||
while (top_frame->GetParent() && !(top_frame->IsTopLevel()))
|
||||
top_frame = top_frame->GetParent();
|
||||
GtkWindow *window = GTK_WINDOW(top_frame->m_widget);
|
||||
|
||||
if (window->default_widget)
|
||||
GtkWindow *window = GTK_WINDOW(top_frame->m_widget);
|
||||
|
||||
if (window->default_widget)
|
||||
{
|
||||
gtk_widget_activate (window->default_widget);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
key_event.Skip();
|
||||
@@ -945,11 +955,11 @@ void wxTextCtrl::OnInternalIdle()
|
||||
if (cursor.Ok())
|
||||
{
|
||||
GdkWindow *window = (GdkWindow*) NULL;
|
||||
if (HasFlag(wxTE_MULTILINE))
|
||||
if (HasFlag(wxTE_MULTILINE))
|
||||
window = GTK_TEXT(m_text)->text_area;
|
||||
else
|
||||
window = GTK_ENTRY(m_text)->text_area;
|
||||
|
||||
|
||||
if (window)
|
||||
gdk_window_set_cursor( window, cursor.GetCursor() );
|
||||
|
||||
|
@@ -944,8 +944,8 @@ static gint gtk_window_button_press_callback( GtkWidget *widget, GdkEventButton
|
||||
event.m_middleDown = (gdk_event->state & GDK_BUTTON2_MASK);
|
||||
event.m_rightDown = (gdk_event->state & GDK_BUTTON3_MASK);
|
||||
|
||||
event.m_x = (long)gdk_event->x;
|
||||
event.m_y = (long)gdk_event->y;
|
||||
event.m_x = (wxCoord)gdk_event->x;
|
||||
event.m_y = (wxCoord)gdk_event->y;
|
||||
|
||||
// Some control don't have their own X window and thus cannot get
|
||||
// any events.
|
||||
@@ -1071,8 +1071,8 @@ static gint gtk_window_button_release_callback( GtkWidget *widget, GdkEventButto
|
||||
event.m_leftDown = (gdk_event->state & GDK_BUTTON1_MASK);
|
||||
event.m_middleDown = (gdk_event->state & GDK_BUTTON2_MASK);
|
||||
event.m_rightDown = (gdk_event->state & GDK_BUTTON3_MASK);
|
||||
event.m_x = (long)gdk_event->x;
|
||||
event.m_y = (long)gdk_event->y;
|
||||
event.m_x = (wxCoord)gdk_event->x;
|
||||
event.m_y = (wxCoord)gdk_event->y;
|
||||
|
||||
// Some control don't have their own X window and thus cannot get
|
||||
// any events.
|
||||
@@ -1191,8 +1191,8 @@ static gint gtk_window_motion_notify_callback( GtkWidget *widget, GdkEventMotion
|
||||
event.m_middleDown = (gdk_event->state & GDK_BUTTON2_MASK);
|
||||
event.m_rightDown = (gdk_event->state & GDK_BUTTON3_MASK);
|
||||
|
||||
event.m_x = (long)gdk_event->x;
|
||||
event.m_y = (long)gdk_event->y;
|
||||
event.m_x = (wxCoord)gdk_event->x;
|
||||
event.m_y = (wxCoord)gdk_event->y;
|
||||
|
||||
// Some control don't have their own X window and thus cannot get
|
||||
// any events.
|
||||
@@ -1406,8 +1406,8 @@ static gint gtk_window_enter_callback( GtkWidget *widget, GdkEventCrossing *gdk_
|
||||
event.m_middleDown = (state & GDK_BUTTON2_MASK);
|
||||
event.m_rightDown = (state & GDK_BUTTON3_MASK);
|
||||
|
||||
event.m_x = (long)x;
|
||||
event.m_y = (long)y;
|
||||
event.m_x = x;
|
||||
event.m_y = y;
|
||||
|
||||
if (win->GetEventHandler()->ProcessEvent( event ))
|
||||
{
|
||||
@@ -1452,8 +1452,8 @@ static gint gtk_window_leave_callback( GtkWidget *widget, GdkEventCrossing *gdk_
|
||||
event.m_middleDown = (state & GDK_BUTTON2_MASK);
|
||||
event.m_rightDown = (state & GDK_BUTTON3_MASK);
|
||||
|
||||
event.m_x = (long)x;
|
||||
event.m_y = (long)y;
|
||||
event.m_x = x;
|
||||
event.m_y = y;
|
||||
|
||||
if (win->GetEventHandler()->ProcessEvent( event ))
|
||||
{
|
||||
|
Reference in New Issue
Block a user