bool processed = false;
// Try the menu's event handler
- if ( !processed )
+ // if ( !processed )
{
wxEvtHandler *handler = GetEventHandler();
if ( handler )
m_window->Destroy();
//Putting this after the switch will result in a spacer
//not being deleted properly on destruction
- m_kind = Item_None;
+ m_kind = Item_None;
break;
case Item_Sizer:
//---------------------------------------------------------------------------
wxGridSizer::wxGridSizer( int rows, int cols, int vgap, int hgap )
- : m_rows( rows )
+ : m_rows( ( cols == 0 && rows == 0 ) ? 1 : rows )
, m_cols( cols )
, m_vgap( vgap )
, m_hgap( hgap )
{
- if (m_rows == 0 && m_cols == 0)
- m_rows = 1;
}
wxGridSizer::wxGridSizer( int cols, int vgap, int hgap )
- : m_rows( 0 )
+ : m_rows( cols == 0 ? 1 : 0 )
, m_cols( cols )
, m_vgap( vgap )
, m_hgap( hgap )
{
- if (m_rows == 0 && m_cols == 0)
- m_rows = 1;
}
int wxGridSizer::CalcRowsCols(int& nrows, int& ncols) const
Add((wxWindow*)m_buttonHelp, 0, wxALIGN_CENTRE | wxLEFT | wxRIGHT, m_buttonHelp->ConvertDialogToPixels(wxSize(2, 0)).x);
#else
// GTK+1 and any other platform
-
+
// Add(0, 0, 0, wxLEFT, 5); // Not sure what this was for but it unbalances the dialog
if (m_buttonHelp)
Add((wxWindow*)m_buttonHelp, 0, wxALIGN_CENTRE | wxLEFT | wxRIGHT, m_buttonHelp->ConvertDialogToPixels(wxSize(4, 0)).x);
// through in that case.
if ((ctrl || alt) && !(ctrl && alt))
return false;
-
+
#if wxUSE_UNICODE
int key = event.GetUnicodeKey();
bool keyOk = true;
return keyOk;
#else // !wxUSE_UNICODE
int key = event.GetKeyCode();
- if (key <= 255)
+ if (key <= 255)
return true;
return false;
#endif // wxUSE_UNICODE/!wxUSE_UNICODE
wxTextCtrl* tc = Text();
wxChar ch;
long pos;
-
+
#if wxUSE_UNICODE
ch = event.GetUnicodeKey();
if (ch <= 127)
tmpbuf[0] = (char) keycode;
tmpbuf[1] = '\0';
wxString strbuf(tmpbuf, *wxConvCurrent);
-#if wxUSE_INTL
+#if wxUSE_INTL
bool is_decimal_point = ( strbuf ==
wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT, wxLOCALE_CAT_NUMBER) );
#else
tmpbuf[0] = (char) keycode;
tmpbuf[1] = '\0';
wxString strbuf(tmpbuf, *wxConvCurrent);
-#if wxUSE_INTL
+#if wxUSE_INTL
bool is_decimal_point =
( strbuf == wxLocale::GetInfo(wxLOCALE_DECIMAL_POINT,
wxLOCALE_CAT_NUMBER) );
#else
bool is_decimal_point = ( strbuf == _T(".") );
#endif
- if ( (keycode < 128) &&
+ if ( (keycode < 128) &&
(wxIsdigit(keycode) || tolower(keycode) == 'e' ||
is_decimal_point || keycode == '+' || keycode == '-') )
return true;
case WXK_SPACE:
CBox()->SetValue(!CBox()->GetValue());
break;
-
+
case '+':
CBox()->SetValue(true);
break;
-
+
case '-':
CBox()->SetValue(false);
break;
{
// find the right position, or default to the first if not found
int pos = Combo()->FindString(m_startValue);
- if (pos == -1)
+ if (pos == wxNOT_FOUND)
pos = 0;
Combo()->SetSelection(pos);
}
{
if (event.ButtonDown(wxMOUSE_BTN_LEFT) && FindFocus() != this)
SetFocus();
-
+
m_owner->ProcessGridCellMouseEvent( event );
}
break;
case WXGRID_CURSOR_SELECT_ROW:
+ {
if ( (row = YToRow( y )) >= 0 )
{
if ( m_selection )
event.MetaDown() );
}
}
+ }
+ break;
// default label to suppress warnings about "enumeration value
// 'xxx' not handled in switch
break;
case WXGRID_CURSOR_SELECT_COL:
+ {
if ( (col = XToCol( x )) >= 0 )
{
if ( m_selection )
event.MetaDown() );
}
}
+ }
+ break;
// default label to suppress warnings about "enumeration value
// 'xxx' not handled in switch
coords2.GetRow(), coords2.GetCol(),
topRow, leftCol, bottomRow, rightCol ) )
{
- case 1:
- return;
- case -1:
- m_blockSelectionTopLeft.RemoveAt(n);
- m_blockSelectionBottomRight.RemoveAt(n);
- n--; count--;
- default:
- ;
+ case 1:
+ return;
+
+ case -1:
+ m_blockSelectionTopLeft.RemoveAt(n);
+ m_blockSelectionBottomRight.RemoveAt(n);
+ n--; count--;
+ break;
+
+ default:
+ break;
}
}
m_rowSelection[n], m_grid->GetNumberCols()-1,
topRow, leftCol, bottomRow, rightCol ) )
{
- case 1:
- return;
- case -1:
- m_rowSelection.RemoveAt(n);
- n--; count--;
- default:
- ;
+ case 1:
+ return;
+
+ case -1:
+ m_rowSelection.RemoveAt(n);
+ n--; count--;
+ break;
+
+ default:
+ break;
}
}
}
m_grid->GetNumberRows()-1, m_colSelection[n],
topRow, leftCol, bottomRow, rightCol ) )
{
- case 1:
- return;
- case -1:
- m_colSelection.RemoveAt(n);
- n--; count--;
- default:
- ;
+ case 1:
+ return;
+
+ case -1:
+ m_colSelection.RemoveAt(n);
+ n--; count--;
+ break;
+
+ default:
+ break;
}
}
}
{
#if 1 // What's best? Delayed deleting or immediate deleting?
delete m_pActiveChild;
+ m_pActiveChild = NULL;
#else
ActivateNext();
// We must finish regardless of success, otherwise we'll get
// focus problems:
Finish();
-
+
if ( !AcceptChanges() )
m_owner->OnRenameCancelled( m_itemEdited );
}
{
wxColour colBg;
if ( attr && attr->HasBackgroundColour() )
- {
- drawItemBackground = true;
+ {
+ drawItemBackground = true;
colBg = attr->GetBackgroundColour();
- }
+ }
else
+ {
colBg = m_backgroundColour;
+ }
dc.SetBrush(wxBrush(colBg, wxSOLID));
}
{
// this facilitates multiple-item drag-and-drop
- if (item && HasFlag(wxTR_MULTIPLE))
+ if ( /* item && */ HasFlag(wxTR_MULTIPLE))
{
wxArrayTreeItemIds selections;
size_t count = GetSelections(selections);
}
wxImage image = bitmap.ConvertToImage();
- if (!image.Ok()) return FALSE;
+ if (!image.Ok()) return false;
m_bitmap = gdk_pixmap_new( wxGetRootWindow()->window, image.GetWidth(), image.GetHeight(), 1 );
GdkGC *gc = gdk_gc_new( m_bitmap );
gdk_gc_unref( gc );
- return TRUE;
+ return true;
}
bool wxMask::Create( const wxBitmap& bitmap, int paletteIndex )
unsigned char r,g,b;
wxPalette *pal = bitmap.GetPalette();
- wxCHECK_MSG( pal, FALSE, wxT("Cannot create mask from bitmap without palette") );
+ wxCHECK_MSG( pal, false, wxT("Cannot create mask from bitmap without palette") );
pal->GetRGB(paletteIndex, &r, &g, &b);
m_bitmap = (GdkBitmap*) NULL;
}
- if (!bitmap.Ok()) return FALSE;
+ if (!bitmap.Ok()) return false;
- wxCHECK_MSG( bitmap.GetBitmap(), FALSE, wxT("Cannot create mask from colour bitmap") );
+ wxCHECK_MSG( bitmap.GetBitmap(), false, wxT("Cannot create mask from colour bitmap") );
m_bitmap = gdk_pixmap_new( wxGetRootWindow()->window, bitmap.GetWidth(), bitmap.GetHeight(), 1 );
- if (!m_bitmap) return FALSE;
+ if (!m_bitmap) return false;
GdkGC *gc = gdk_gc_new( m_bitmap );
gdk_gc_unref( gc );
- return TRUE;
+ return true;
}
GdkBitmap *wxMask::GetBitmap() const
if (depth == -1)
depth = visual->depth;
- wxCHECK_MSG( (depth == visual->depth) || (depth == 1) || (depth == 32), FALSE,
+ wxCHECK_MSG( (depth == visual->depth) || (depth == 1) || (depth == 32), false,
wxT("invalid bitmap depth") )
m_refData = new wxBitmapRefData();
{
UnRef();
- wxCHECK_MSG( bits != NULL, FALSE, wxT("invalid bitmap data") )
+ wxCHECK_MSG( bits != NULL, false, wxT("invalid bitmap data") )
GdkVisual *visual = wxTheApp->GetGdkVisual();
M_BMPDATA->m_pixmap = gdk_pixmap_create_from_xpm_d( wxGetRootWindow()->window, &mask, NULL, (gchar **) bits );
- wxCHECK_MSG( M_BMPDATA->m_pixmap, FALSE, wxT("couldn't create pixmap") );
+ wxCHECK_MSG( M_BMPDATA->m_pixmap, false, wxT("couldn't create pixmap") );
if (mask)
{
M_BMPDATA->m_bpp = visual->depth; // Can we get a different depth from create_from_xpm_d() ?
- return TRUE;
+ return true;
}
wxBitmap wxBitmap::Rescale( int clipx, int clipy, int clipwidth, int clipheight, int newx, int newy )
if (newy==M_BMPDATA->m_width && newy==M_BMPDATA->m_height)
return *this;
-
+
int width = wxMax(newx, 1);
int height = wxMax(newy, 1);
width = wxMin(width, clipwidth);
height = wxMin(height, clipheight);
-
+
wxBitmap bmp;
#ifdef __WXGTK20__
8, width, height));
gdk_pixbuf_scale(GetPixbuf(), bmp.GetPixbuf(),
0, 0, width, height,
- clipx, clipy,
+ clipx, clipy,
(double)newx/GetWidth(), (double)newy/GetHeight(),
GDK_INTERP_BILINEAR);
}
int bpp = -1;
-
+
GdkGC *gc = NULL;
GdkPixmap *dstpix = NULL;
if (GetPixmap())
char *dst = NULL;
long dstbyteperline = 0;
-
+
if (GetBitmap())
{
bpp = 1;
dstbyteperline++;
dst = (char*) malloc(dstbyteperline*height);
}
-
+
// be careful to use the right scaling factor
float scx = (float)M_BMPDATA->m_width/(float)newx;
float scy = (float)M_BMPDATA->m_height/(float)newy;
old_pixval = pixval;
old_x = x;
}
-
+
if (bpp == 1)
{
if (!pixval)
char shift = bit << w % 8;
outbyte |= shift;
}
-
+
if ((w+1)%8==0)
{
dst[h*dstbyteperline+w/8] = outbyte;
gdk_draw_point( dstpix, gc, w, h);
}
}
-
+
// do not forget the last byte
if ((bpp == 1) && (width % 8 != 0))
dst[h*dstbyteperline+width/8] = outbyte;
}
-
+
gdk_image_destroy( img );
if (gc) gdk_gc_unref( gc );
bmp = wxBitmap( (const char *)dst, width, height, 1 );
free( dst );
}
-
+
if (GetMask())
{
dstbyteperline = width/8;
char outbyte = 0;
int old_x = -1;
guint32 old_pixval = 0;
-
+
for (int w = 0; w < width; w++)
{
guint32 pixval;
old_pixval = pixval;
old_x = x;
}
-
+
if (pixval)
{
char bit=1;
char shift = bit << w % 8;
outbyte |= shift;
}
-
+
if ((w+1)%8 == 0)
{
dst[h*dstbyteperline+w/8] = outbyte;
outbyte = 0;
}
}
-
+
// do not forget the last byte
if (width % 8 != 0)
dst[h*dstbyteperline+width/8] = outbyte;
free( tablex );
free( tabley );
}
-
- return bmp;
+
+ return bmp;
}
bool wxBitmap::CreateFromImage(const wxImage& image, int depth)
{
UnRef();
- wxCHECK_MSG( image.Ok(), FALSE, wxT("invalid image") )
- wxCHECK_MSG( depth == -1 || depth == 1, FALSE, wxT("invalid bitmap depth") )
+ wxCHECK_MSG( image.Ok(), false, wxT("invalid image") )
+ wxCHECK_MSG( depth == -1 || depth == 1, false, wxT("invalid bitmap depth") )
if (image.GetWidth() <= 0 || image.GetHeight() <= 0)
return false;
-
+
m_refData = new wxBitmapRefData();
if (depth == 1)
// convert alpha channel to mask, if it is present:
wxImage image(img);
image.ConvertAlphaToMask();
-
+
int width = image.GetWidth();
int height = image.GetHeight();
return true;
}
-
+
// conversion to colour bitmap:
bool wxBitmap::CreateFromImageAsPixmap(const wxImage& img)
{
// convert alpha channel to mask, if it is present:
wxImage image(img);
image.ConvertAlphaToMask();
-
+
int width = image.GetWidth();
int height = image.GetHeight();
if (!image.HasMask() && (bpp > 12))
#endif
{
- static bool s_hasInitialized = FALSE;
+ static bool s_hasInitialized = false;
if (!s_hasInitialized)
{
gdk_rgb_init();
- s_hasInitialized = TRUE;
+ s_hasInitialized = true;
}
GdkGC *gc = gdk_gc_new( GetPixmap() );
width*3 );
gdk_gc_unref( gc );
- return TRUE;
+ return true;
}
// Create picture image
case GBR: pixel = (g << 16) | (b << 8) | r; break;
}
gdk_image_put_pixel( data_image, x, y, pixel );
+ break;
}
default: break;
}
wxASSERT( gdk_pixbuf_get_n_channels(pixbuf) == 4 );
wxASSERT( gdk_pixbuf_get_width(pixbuf) == width );
wxASSERT( gdk_pixbuf_get_height(pixbuf) == height );
-
+
M_BMPDATA->m_pixbuf = pixbuf;
SetHeight(height);
SetWidth(width);
SetDepth(wxTheApp->GetGdkVisual()->depth);
-
+
// Copy the data:
unsigned char *in = image.GetData();
unsigned char *out = gdk_pixbuf_get_pixels(pixbuf);
unsigned char *alpha = image.GetAlpha();
-
+
int rowinc = gdk_pixbuf_get_rowstride(pixbuf) - 4 * width;
for (int y = 0; y < height; y++, out += rowinc)
out[3] = *alpha;
}
}
-
+
return true;
}
#endif // __WXGTK20__
wxImage image;
wxCHECK_MSG( Ok(), wxNullImage, wxT("invalid bitmap") );
-
+
image.Create(GetWidth(), GetHeight());
unsigned char *data = image.GetData();
{
GdkPixbuf *pixbuf = GetPixbuf();
wxASSERT( gdk_pixbuf_get_has_alpha(pixbuf) );
-
+
int w = GetWidth();
int h = GetHeight();
-
+
image.SetAlpha();
unsigned char *alpha = image.GetAlpha();
int red_shift_left = 0;
int green_shift_left = 0;
int blue_shift_left = 0;
- bool use_shift = FALSE;
+ bool use_shift = false;
if (GetPixmap())
{
bool wxBitmap::Ok() const
{
- return (m_refData != NULL) &&
+ return (m_refData != NULL) &&
(
#ifdef __WXGTK20__
M_BMPDATA->m_pixbuf ||
#endif
- M_BMPDATA->m_bitmap || M_BMPDATA->m_pixmap
+ M_BMPDATA->m_bitmap || M_BMPDATA->m_pixmap
);
}
bool wxBitmap::CopyFromIcon(const wxIcon& icon)
{
*this = icon;
- return TRUE;
+ return true;
}
wxBitmap wxBitmap::GetSubBitmap( const wxRect& rect) const
bool wxBitmap::SaveFile( const wxString &name, wxBitmapType type, const wxPalette *WXUNUSED(palette) ) const
{
- wxCHECK_MSG( Ok(), FALSE, wxT("invalid bitmap") );
+ wxCHECK_MSG( Ok(), false, wxT("invalid bitmap") );
// Try to save the bitmap via wxImage handlers:
{
if (image.Ok()) return image.SaveFile( name, type );
}
- return FALSE;
+ return false;
}
bool wxBitmap::LoadFile( const wxString &name, wxBitmapType type )
UnRef();
if (!wxFileExists(name))
- return FALSE;
+ return false;
GdkVisual *visual = wxTheApp->GetGdkVisual();
{
wxImage image;
if ( !image.LoadFile( name, type ) || !image.Ok() )
- return FALSE;
+ return false;
*this = wxBitmap(image);
}
- return TRUE;
+ return true;
}
wxPalette *wxBitmap::GetPalette() const
{
int width = GetWidth();
int height = GetHeight();
-
+
GdkPixbuf *pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB,
GetMask() != NULL,
8, width, height);
- M_BMPDATA->m_pixbuf =
+ M_BMPDATA->m_pixbuf =
gdk_pixbuf_get_from_drawable(pixbuf, M_BMPDATA->m_pixmap, NULL,
0, 0, 0, 0, width, height);
-
+
// apply the mask to created pixbuf:
if (M_BMPDATA->m_pixbuf && M_BMPDATA->m_mask)
{
- GdkPixbuf *pmask =
+ GdkPixbuf *pmask =
gdk_pixbuf_get_from_drawable(NULL,
M_BMPDATA->m_mask->GetBitmap(),
NULL,
bmp[3] = 0;
}
}
-
+
gdk_pixbuf_unref(pmask);
}
}
#ifdef __WXGTK20__
if (bpp != 32)
return NULL;
-
+
GdkPixbuf *pixbuf = GetPixbuf();
if (!pixbuf)
return NULL;
-#if 0
+#if 0
if (gdk_pixbuf_get_has_alpha( pixbuf ))
wxPrintf( wxT("Has alpha\n") );
else
wxPrintf( wxT("No alpha.\n") );
#endif
- data.m_height = gdk_pixbuf_get_height( pixbuf );
- data.m_width = gdk_pixbuf_get_width( pixbuf );
- data.m_stride = gdk_pixbuf_get_rowstride( pixbuf );
-
+ data.m_height = gdk_pixbuf_get_height( pixbuf );
+ data.m_width = gdk_pixbuf_get_width( pixbuf );
+ data.m_stride = gdk_pixbuf_get_rowstride( pixbuf );
+
return gdk_pixbuf_get_pixels( pixbuf );
#else
return NULL;
-#endif
+#endif
}
void wxBitmap::UngetRawData(wxPixelDataBase& data)
}
-bool wxBitmap::HasAlpha() const
+bool wxBitmap::HasAlpha() const
{
#ifdef __WXGTK20__
return HasPixbuf();
}
void wxBitmap::UseAlpha()
-{
+{
#ifdef __WXGTK20__
GetPixbuf();
#endif
bool wxBitmapHandler::Create(wxBitmap *bitmap, void *data, long type, int width, int height, int depth)
{
- return FALSE;
+ return false;
}
bool wxBitmapHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
int desiredWidth, int desiredHeight)
{
- return FALSE;
+ return false;
}
bool wxBitmapHandler::SaveFile(const wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette)
{
- return FALSE;
+ return false;
}
/* static */ void wxBitmap::InitStandardHandlers()
void wxBitmapButton::Init()
{
m_hasFocus =
- m_isSelected = FALSE;
+ m_isSelected = false;
}
bool wxBitmapButton::Create( wxWindow *parent,
const wxValidator& validator,
const wxString &name )
{
- m_needParent = TRUE;
- m_acceptsFocus = TRUE;
+ m_needParent = true;
+ m_acceptsFocus = true;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
wxFAIL_MSG( wxT("wxBitmapButton creation failed") );
- return FALSE;
+ return false;
}
m_bmpNormal = bitmap;
PostCreation(size);
- return TRUE;
+ return true;
}
void wxBitmapButton::SetDefault()
wxString wxBitmapButton::GetLabel() const
{
- wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid button") );
+ wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid button") );
return wxControl::GetLabel();
}
wxCHECK_RET( m_widget != NULL, wxT("invalid bitmap button") );
InvalidateBestSize();
-
+
wxBitmap the_one;
if (!m_isEnabled)
the_one = m_bmpDisabled;
else if (m_hasFocus)
the_one = m_bmpFocus;
else
- {
- if (m_isSelected)
- {
- the_one = m_bmpSelected;
- }
- else
- {
- if (m_hasFocus)
- the_one = m_bmpFocus;
- else
- the_one = m_bmpNormal;
- }
- }
+ the_one = m_bmpNormal;
if (!the_one.Ok()) the_one = m_bmpNormal;
if (!the_one.Ok()) return;
bool wxBitmapButton::Enable( bool enable )
{
if ( !wxWindow::Enable(enable) )
- return FALSE;
+ return false;
OnSetBitmap();
- return TRUE;
+ return true;
}
void wxBitmapButton::HasFocus()
{
- m_hasFocus = TRUE;
+ m_hasFocus = true;
OnSetBitmap();
}
void wxBitmapButton::NotFocus()
{
- m_hasFocus = FALSE;
+ m_hasFocus = false;
OnSetBitmap();
}
void wxBitmapButton::StartSelect()
{
- m_isSelected = TRUE;
+ m_isSelected = true;
OnSetBitmap();
}
void wxBitmapButton::EndSelect()
{
- m_isSelected = FALSE;
+ m_isSelected = false;
OnSetBitmap();
}
wxString wxTextCtrl::GetValue() const
{
- wxCHECK_MSG( m_text != NULL, wxT(""), wxT("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, wxEmptyString, wxT("invalid text ctrl") );
wxString tmp;
if (m_windowStyle & wxTE_MULTILINE)
if (text)
{
- wxString buf(wxT(""));
+ wxString buf;
long i;
int currentLine = 0;
for (i = 0; currentLine != lineNo && text[i]; i++ )
void wxTextCtrl::Clear()
{
- SetValue( wxT("") );
+ SetValue( wxEmptyString );
}
void wxTextCtrl::OnChar( wxKeyEvent &key_event )
// nothing to do
return true;
}
+
#ifdef __WXGTK20__
gint l = gtk_text_buffer_get_char_count( m_buffer );
wxTextAttr attr = wxTextAttr::Combine(style, m_defaultStyle, this);
wxGtkTextApplyTagsFromAttr( m_buffer, attr, &starti, &endi );
-
- return true;
#else
// VERY dirty way to do that - removes the required text and re-adds it
// with styling (FIXME)
gtk_editable_delete_text( GTK_EDITABLE(m_text), start, end );
gtk_editable_set_position( GTK_EDITABLE(m_text), start );
-#if wxUSE_UNICODE
+ #if wxUSE_UNICODE
wxWX2MBbuf buf = tmp.mbc_str();
const char *txt = buf;
size_t txtlen = strlen(buf);
-#else
+ #else
const char *txt = tmp;
size_t txtlen = tmp.length();
-#endif
+ #endif
// use the attributes from style which are set in it and fall back
// first to the default style and then to the text control default
gtk_editable_set_position( GTK_EDITABLE(m_text), old_pos ); */
SetInsertionPoint( old_pos );
#endif
+
return true;
}
- else // singe line
- {
- // cannot do this for GTK+'s Entry widget
- return false;
- }
+
+ // else single line
+ // cannot do this for GTK+'s Entry widget
+ return false;
}
void wxTextCtrl::DoApplyWidgetStyle(GtkRcStyle *style)
}
wxImage image = bitmap.ConvertToImage();
- if (!image.Ok()) return FALSE;
+ if (!image.Ok()) return false;
m_bitmap = gdk_pixmap_new( wxGetRootWindow()->window, image.GetWidth(), image.GetHeight(), 1 );
GdkGC *gc = gdk_gc_new( m_bitmap );
gdk_gc_unref( gc );
- return TRUE;
+ return true;
}
bool wxMask::Create( const wxBitmap& bitmap, int paletteIndex )
unsigned char r,g,b;
wxPalette *pal = bitmap.GetPalette();
- wxCHECK_MSG( pal, FALSE, wxT("Cannot create mask from bitmap without palette") );
+ wxCHECK_MSG( pal, false, wxT("Cannot create mask from bitmap without palette") );
pal->GetRGB(paletteIndex, &r, &g, &b);
m_bitmap = (GdkBitmap*) NULL;
}
- if (!bitmap.Ok()) return FALSE;
+ if (!bitmap.Ok()) return false;
- wxCHECK_MSG( bitmap.GetBitmap(), FALSE, wxT("Cannot create mask from colour bitmap") );
+ wxCHECK_MSG( bitmap.GetBitmap(), false, wxT("Cannot create mask from colour bitmap") );
m_bitmap = gdk_pixmap_new( wxGetRootWindow()->window, bitmap.GetWidth(), bitmap.GetHeight(), 1 );
- if (!m_bitmap) return FALSE;
+ if (!m_bitmap) return false;
GdkGC *gc = gdk_gc_new( m_bitmap );
gdk_gc_unref( gc );
- return TRUE;
+ return true;
}
GdkBitmap *wxMask::GetBitmap() const
if (depth == -1)
depth = visual->depth;
- wxCHECK_MSG( (depth == visual->depth) || (depth == 1) || (depth == 32), FALSE,
+ wxCHECK_MSG( (depth == visual->depth) || (depth == 1) || (depth == 32), false,
wxT("invalid bitmap depth") )
m_refData = new wxBitmapRefData();
{
UnRef();
- wxCHECK_MSG( bits != NULL, FALSE, wxT("invalid bitmap data") )
+ wxCHECK_MSG( bits != NULL, false, wxT("invalid bitmap data") )
GdkVisual *visual = wxTheApp->GetGdkVisual();
M_BMPDATA->m_pixmap = gdk_pixmap_create_from_xpm_d( wxGetRootWindow()->window, &mask, NULL, (gchar **) bits );
- wxCHECK_MSG( M_BMPDATA->m_pixmap, FALSE, wxT("couldn't create pixmap") );
+ wxCHECK_MSG( M_BMPDATA->m_pixmap, false, wxT("couldn't create pixmap") );
if (mask)
{
M_BMPDATA->m_bpp = visual->depth; // Can we get a different depth from create_from_xpm_d() ?
- return TRUE;
+ return true;
}
wxBitmap wxBitmap::Rescale( int clipx, int clipy, int clipwidth, int clipheight, int newx, int newy )
if (newy==M_BMPDATA->m_width && newy==M_BMPDATA->m_height)
return *this;
-
+
int width = wxMax(newx, 1);
int height = wxMax(newy, 1);
width = wxMin(width, clipwidth);
height = wxMin(height, clipheight);
-
+
wxBitmap bmp;
#ifdef __WXGTK20__
8, width, height));
gdk_pixbuf_scale(GetPixbuf(), bmp.GetPixbuf(),
0, 0, width, height,
- clipx, clipy,
+ clipx, clipy,
(double)newx/GetWidth(), (double)newy/GetHeight(),
GDK_INTERP_BILINEAR);
}
int bpp = -1;
-
+
GdkGC *gc = NULL;
GdkPixmap *dstpix = NULL;
if (GetPixmap())
char *dst = NULL;
long dstbyteperline = 0;
-
+
if (GetBitmap())
{
bpp = 1;
dstbyteperline++;
dst = (char*) malloc(dstbyteperline*height);
}
-
+
// be careful to use the right scaling factor
float scx = (float)M_BMPDATA->m_width/(float)newx;
float scy = (float)M_BMPDATA->m_height/(float)newy;
old_pixval = pixval;
old_x = x;
}
-
+
if (bpp == 1)
{
if (!pixval)
char shift = bit << w % 8;
outbyte |= shift;
}
-
+
if ((w+1)%8==0)
{
dst[h*dstbyteperline+w/8] = outbyte;
gdk_draw_point( dstpix, gc, w, h);
}
}
-
+
// do not forget the last byte
if ((bpp == 1) && (width % 8 != 0))
dst[h*dstbyteperline+width/8] = outbyte;
}
-
+
gdk_image_destroy( img );
if (gc) gdk_gc_unref( gc );
bmp = wxBitmap( (const char *)dst, width, height, 1 );
free( dst );
}
-
+
if (GetMask())
{
dstbyteperline = width/8;
char outbyte = 0;
int old_x = -1;
guint32 old_pixval = 0;
-
+
for (int w = 0; w < width; w++)
{
guint32 pixval;
old_pixval = pixval;
old_x = x;
}
-
+
if (pixval)
{
char bit=1;
char shift = bit << w % 8;
outbyte |= shift;
}
-
+
if ((w+1)%8 == 0)
{
dst[h*dstbyteperline+w/8] = outbyte;
outbyte = 0;
}
}
-
+
// do not forget the last byte
if (width % 8 != 0)
dst[h*dstbyteperline+width/8] = outbyte;
free( tablex );
free( tabley );
}
-
- return bmp;
+
+ return bmp;
}
bool wxBitmap::CreateFromImage(const wxImage& image, int depth)
{
UnRef();
- wxCHECK_MSG( image.Ok(), FALSE, wxT("invalid image") )
- wxCHECK_MSG( depth == -1 || depth == 1, FALSE, wxT("invalid bitmap depth") )
+ wxCHECK_MSG( image.Ok(), false, wxT("invalid image") )
+ wxCHECK_MSG( depth == -1 || depth == 1, false, wxT("invalid bitmap depth") )
if (image.GetWidth() <= 0 || image.GetHeight() <= 0)
return false;
-
+
m_refData = new wxBitmapRefData();
if (depth == 1)
// convert alpha channel to mask, if it is present:
wxImage image(img);
image.ConvertAlphaToMask();
-
+
int width = image.GetWidth();
int height = image.GetHeight();
return true;
}
-
+
// conversion to colour bitmap:
bool wxBitmap::CreateFromImageAsPixmap(const wxImage& img)
{
// convert alpha channel to mask, if it is present:
wxImage image(img);
image.ConvertAlphaToMask();
-
+
int width = image.GetWidth();
int height = image.GetHeight();
if (!image.HasMask() && (bpp > 12))
#endif
{
- static bool s_hasInitialized = FALSE;
+ static bool s_hasInitialized = false;
if (!s_hasInitialized)
{
gdk_rgb_init();
- s_hasInitialized = TRUE;
+ s_hasInitialized = true;
}
GdkGC *gc = gdk_gc_new( GetPixmap() );
width*3 );
gdk_gc_unref( gc );
- return TRUE;
+ return true;
}
// Create picture image
case GBR: pixel = (g << 16) | (b << 8) | r; break;
}
gdk_image_put_pixel( data_image, x, y, pixel );
+ break;
}
default: break;
}
wxASSERT( gdk_pixbuf_get_n_channels(pixbuf) == 4 );
wxASSERT( gdk_pixbuf_get_width(pixbuf) == width );
wxASSERT( gdk_pixbuf_get_height(pixbuf) == height );
-
+
M_BMPDATA->m_pixbuf = pixbuf;
SetHeight(height);
SetWidth(width);
SetDepth(wxTheApp->GetGdkVisual()->depth);
-
+
// Copy the data:
unsigned char *in = image.GetData();
unsigned char *out = gdk_pixbuf_get_pixels(pixbuf);
unsigned char *alpha = image.GetAlpha();
-
+
int rowinc = gdk_pixbuf_get_rowstride(pixbuf) - 4 * width;
for (int y = 0; y < height; y++, out += rowinc)
out[3] = *alpha;
}
}
-
+
return true;
}
#endif // __WXGTK20__
wxImage image;
wxCHECK_MSG( Ok(), wxNullImage, wxT("invalid bitmap") );
-
+
image.Create(GetWidth(), GetHeight());
unsigned char *data = image.GetData();
{
GdkPixbuf *pixbuf = GetPixbuf();
wxASSERT( gdk_pixbuf_get_has_alpha(pixbuf) );
-
+
int w = GetWidth();
int h = GetHeight();
-
+
image.SetAlpha();
unsigned char *alpha = image.GetAlpha();
int red_shift_left = 0;
int green_shift_left = 0;
int blue_shift_left = 0;
- bool use_shift = FALSE;
+ bool use_shift = false;
if (GetPixmap())
{
bool wxBitmap::Ok() const
{
- return (m_refData != NULL) &&
+ return (m_refData != NULL) &&
(
#ifdef __WXGTK20__
M_BMPDATA->m_pixbuf ||
#endif
- M_BMPDATA->m_bitmap || M_BMPDATA->m_pixmap
+ M_BMPDATA->m_bitmap || M_BMPDATA->m_pixmap
);
}
bool wxBitmap::CopyFromIcon(const wxIcon& icon)
{
*this = icon;
- return TRUE;
+ return true;
}
wxBitmap wxBitmap::GetSubBitmap( const wxRect& rect) const
bool wxBitmap::SaveFile( const wxString &name, wxBitmapType type, const wxPalette *WXUNUSED(palette) ) const
{
- wxCHECK_MSG( Ok(), FALSE, wxT("invalid bitmap") );
+ wxCHECK_MSG( Ok(), false, wxT("invalid bitmap") );
// Try to save the bitmap via wxImage handlers:
{
if (image.Ok()) return image.SaveFile( name, type );
}
- return FALSE;
+ return false;
}
bool wxBitmap::LoadFile( const wxString &name, wxBitmapType type )
UnRef();
if (!wxFileExists(name))
- return FALSE;
+ return false;
GdkVisual *visual = wxTheApp->GetGdkVisual();
{
wxImage image;
if ( !image.LoadFile( name, type ) || !image.Ok() )
- return FALSE;
+ return false;
*this = wxBitmap(image);
}
- return TRUE;
+ return true;
}
wxPalette *wxBitmap::GetPalette() const
{
int width = GetWidth();
int height = GetHeight();
-
+
GdkPixbuf *pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB,
GetMask() != NULL,
8, width, height);
- M_BMPDATA->m_pixbuf =
+ M_BMPDATA->m_pixbuf =
gdk_pixbuf_get_from_drawable(pixbuf, M_BMPDATA->m_pixmap, NULL,
0, 0, 0, 0, width, height);
-
+
// apply the mask to created pixbuf:
if (M_BMPDATA->m_pixbuf && M_BMPDATA->m_mask)
{
- GdkPixbuf *pmask =
+ GdkPixbuf *pmask =
gdk_pixbuf_get_from_drawable(NULL,
M_BMPDATA->m_mask->GetBitmap(),
NULL,
bmp[3] = 0;
}
}
-
+
gdk_pixbuf_unref(pmask);
}
}
#ifdef __WXGTK20__
if (bpp != 32)
return NULL;
-
+
GdkPixbuf *pixbuf = GetPixbuf();
if (!pixbuf)
return NULL;
-#if 0
+#if 0
if (gdk_pixbuf_get_has_alpha( pixbuf ))
wxPrintf( wxT("Has alpha\n") );
else
wxPrintf( wxT("No alpha.\n") );
#endif
- data.m_height = gdk_pixbuf_get_height( pixbuf );
- data.m_width = gdk_pixbuf_get_width( pixbuf );
- data.m_stride = gdk_pixbuf_get_rowstride( pixbuf );
-
+ data.m_height = gdk_pixbuf_get_height( pixbuf );
+ data.m_width = gdk_pixbuf_get_width( pixbuf );
+ data.m_stride = gdk_pixbuf_get_rowstride( pixbuf );
+
return gdk_pixbuf_get_pixels( pixbuf );
#else
return NULL;
-#endif
+#endif
}
void wxBitmap::UngetRawData(wxPixelDataBase& data)
}
-bool wxBitmap::HasAlpha() const
+bool wxBitmap::HasAlpha() const
{
#ifdef __WXGTK20__
return HasPixbuf();
}
void wxBitmap::UseAlpha()
-{
+{
#ifdef __WXGTK20__
GetPixbuf();
#endif
bool wxBitmapHandler::Create(wxBitmap *bitmap, void *data, long type, int width, int height, int depth)
{
- return FALSE;
+ return false;
}
bool wxBitmapHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
int desiredWidth, int desiredHeight)
{
- return FALSE;
+ return false;
}
bool wxBitmapHandler::SaveFile(const wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette)
{
- return FALSE;
+ return false;
}
/* static */ void wxBitmap::InitStandardHandlers()
void wxBitmapButton::Init()
{
m_hasFocus =
- m_isSelected = FALSE;
+ m_isSelected = false;
}
bool wxBitmapButton::Create( wxWindow *parent,
const wxValidator& validator,
const wxString &name )
{
- m_needParent = TRUE;
- m_acceptsFocus = TRUE;
+ m_needParent = true;
+ m_acceptsFocus = true;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
wxFAIL_MSG( wxT("wxBitmapButton creation failed") );
- return FALSE;
+ return false;
}
m_bmpNormal = bitmap;
PostCreation(size);
- return TRUE;
+ return true;
}
void wxBitmapButton::SetDefault()
wxString wxBitmapButton::GetLabel() const
{
- wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid button") );
+ wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid button") );
return wxControl::GetLabel();
}
wxCHECK_RET( m_widget != NULL, wxT("invalid bitmap button") );
InvalidateBestSize();
-
+
wxBitmap the_one;
if (!m_isEnabled)
the_one = m_bmpDisabled;
else if (m_hasFocus)
the_one = m_bmpFocus;
else
- {
- if (m_isSelected)
- {
- the_one = m_bmpSelected;
- }
- else
- {
- if (m_hasFocus)
- the_one = m_bmpFocus;
- else
- the_one = m_bmpNormal;
- }
- }
+ the_one = m_bmpNormal;
if (!the_one.Ok()) the_one = m_bmpNormal;
if (!the_one.Ok()) return;
bool wxBitmapButton::Enable( bool enable )
{
if ( !wxWindow::Enable(enable) )
- return FALSE;
+ return false;
OnSetBitmap();
- return TRUE;
+ return true;
}
void wxBitmapButton::HasFocus()
{
- m_hasFocus = TRUE;
+ m_hasFocus = true;
OnSetBitmap();
}
void wxBitmapButton::NotFocus()
{
- m_hasFocus = FALSE;
+ m_hasFocus = false;
OnSetBitmap();
}
void wxBitmapButton::StartSelect()
{
- m_isSelected = TRUE;
+ m_isSelected = true;
OnSetBitmap();
}
void wxBitmapButton::EndSelect()
{
- m_isSelected = FALSE;
+ m_isSelected = false;
OnSetBitmap();
}
wxString wxTextCtrl::GetValue() const
{
- wxCHECK_MSG( m_text != NULL, wxT(""), wxT("invalid text ctrl") );
+ wxCHECK_MSG( m_text != NULL, wxEmptyString, wxT("invalid text ctrl") );
wxString tmp;
if (m_windowStyle & wxTE_MULTILINE)
if (text)
{
- wxString buf(wxT(""));
+ wxString buf;
long i;
int currentLine = 0;
for (i = 0; currentLine != lineNo && text[i]; i++ )
void wxTextCtrl::Clear()
{
- SetValue( wxT("") );
+ SetValue( wxEmptyString );
}
void wxTextCtrl::OnChar( wxKeyEvent &key_event )
// nothing to do
return true;
}
+
#ifdef __WXGTK20__
gint l = gtk_text_buffer_get_char_count( m_buffer );
wxTextAttr attr = wxTextAttr::Combine(style, m_defaultStyle, this);
wxGtkTextApplyTagsFromAttr( m_buffer, attr, &starti, &endi );
-
- return true;
#else
// VERY dirty way to do that - removes the required text and re-adds it
// with styling (FIXME)
gtk_editable_delete_text( GTK_EDITABLE(m_text), start, end );
gtk_editable_set_position( GTK_EDITABLE(m_text), start );
-#if wxUSE_UNICODE
+ #if wxUSE_UNICODE
wxWX2MBbuf buf = tmp.mbc_str();
const char *txt = buf;
size_t txtlen = strlen(buf);
-#else
+ #else
const char *txt = tmp;
size_t txtlen = tmp.length();
-#endif
+ #endif
// use the attributes from style which are set in it and fall back
// first to the default style and then to the text control default
gtk_editable_set_position( GTK_EDITABLE(m_text), old_pos ); */
SetInsertionPoint( old_pos );
#endif
+
return true;
}
- else // singe line
- {
- // cannot do this for GTK+'s Entry widget
- return false;
- }
+
+ // else single line
+ // cannot do this for GTK+'s Entry widget
+ return false;
}
void wxTextCtrl::DoApplyWidgetStyle(GtkRcStyle *style)
}
else if (m_CurTag)
{
- // Add tag:
- if (m_CurTag)
- {
- if (m_CurTag->HasEnding())
- begin_pos = m_CurTag->GetEndPos2();
- else
- begin_pos = m_CurTag->GetBeginPos();
- }
+ if (m_CurTag->HasEnding())
+ begin_pos = m_CurTag->GetEndPos2();
+ else
+ begin_pos = m_CurTag->GetBeginPos();
wxHtmlTag *t = m_CurTag;
m_CurTag = m_CurTag->GetNextTag();
AddTag(*t);
// set wxMAC_USE_RAEL to 1 if RunApplicationEventLoop should be used
// if 0 the lower level CarbonEventLoop will be used
// on the long run RAEL should replace the low level event loop
-// we will have to clean up event handling to make sure we don't
+// we will have to clean up event handling to make sure we don't
// miss handling of things like pending events etc
// perhaps we will also have to pipe events through an ueber-event-handler
// to make sure we have one place to do all these house-keeping functions
// statics for implementation
-static bool s_inYield = FALSE;
+static bool s_inYield = false;
-static bool s_inReceiveEvent = FALSE ;
+static bool s_inReceiveEvent = false ;
static EventTime sleepTime = kEventDurationNoWait ;
IMPLEMENT_DYNAMIC_CLASS(wxApp, wxEvtHandler)
PSN.lowLongOfPSN = kCurrentProcess ;
SetFrontProcess( &PSN ) ;
- for (i = 1; i <= itemsInList; i++)
+ for (i = 1; i <= itemsInList; i++)
{
wxString fName ;
{
wxCommandEvent exitEvent(wxEVT_COMMAND_MENU_SELECTED, s_macExitMenuItemId);
if (!win->ProcessEvent(exitEvent))
- win->Close(TRUE ) ;
+ win->Close(true) ;
}
else
{
if (printout)
{
wxPrinter printer;
- printer.Print(view->GetFrame(), printout, TRUE);
+ printer.Print(view->GetFrame(), printout, true);
delete printout;
}
}
// if there is no open window -> create a new one
// if all windows are hidden -> show the first
// if some windows are not hidden -> do nothing
-
+
wxWindowList::compatibility_iterator node = wxTopLevelWindows.GetFirst();
if ( node == NULL )
- {
+ {
MacNewFile() ;
}
else
static pascal OSStatus
wxMacAppMenuEventHandler( EventHandlerCallRef handler , EventRef event , void *data )
-{
+{
wxMacCarbonEvent cEvent( event ) ;
MenuRef menuRef = cEvent.GetParameter<MenuRef>(kEventParamDirectObject) ;
wxMenu* menu = wxFindMenuFromMacMenu( menuRef ) ;
-
+
if ( menu )
{
- wxEventType type=0;
+ wxEventType type=0;
MenuCommand cmd=0;
switch (GetEventKind(event))
{
break;
case kEventMenuTargetItem:
cmd = cEvent.GetParameter<MenuCommand>(kEventParamMenuCommand,typeMenuCommand) ;
- if (cmd != 0)
+ if (cmd != 0)
type = wxEVT_MENU_HIGHLIGHT;
break;
default:
else
{
wxWindow *win = menu->GetInvokingWindow();
- if (win)
+ if (win)
win->GetEventHandler()->ProcessEvent(wxevent);
}
}
}
-
+
return eventNotHandledErr;
}
wxMacCarbonEvent cEvent( event ) ;
cEvent.GetParameter<HICommand>(kEventParamDirectObject,typeHICommand,&command) ;
-
+
wxMenuItem* item = NULL ;
MenuCommand id = command.commandID ;
// for items we don't really control
if ( id == kHICommandPreferences )
{
id = wxApp::s_macPreferencesMenuItemId ;
-
+
wxMenuBar* mbar = wxMenuBar::MacGetInstalledMenuBar() ;
if ( mbar )
{
{
GetMenuItemRefCon( command.menu.menuRef , command.menu.menuItemIndex , (UInt32*) &item ) ;
}
-
+
if ( item )
{
switch( cEvent.GetKind() )
case kEventClassMouse :
{
wxMacCarbonEvent cEvent( event ) ;
-
+
WindowRef window ;
Point screenMouseLocation = cEvent.GetParameter<Point>(kEventParamMouseLocation) ;
::FindWindow(screenMouseLocation, &window);
#if __WXDEBUG__
-pascal static void wxMacAssertOutputHandler(OSType componentSignature, UInt32 options,
- const char *assertionString, const char *exceptionLabelString,
+pascal static void wxMacAssertOutputHandler(OSType componentSignature, UInt32 options,
+ const char *assertionString, const char *exceptionLabelString,
const char *errorString, const char *fileName, long lineNumber, void *value, ConstStr255Param outputMsg)
{
// flow into assert handling
#if 1
// flow into log
- wxLogDebug( wxT("AssertMacros: %s %s %s file: %s, line: %ld (value %p)\n"),
- assertionStr.c_str() ,
- exceptionStr.c_str() ,
- errorStr.c_str(),
+ wxLogDebug( wxT("AssertMacros: %s %s %s file: %s, line: %ld (value %p)\n"),
+ assertionStr.c_str() ,
+ exceptionStr.c_str() ,
+ errorStr.c_str(),
fileNameStr.c_str(), lineNumber ,
value ) ;
#else
CFRelease( url ) ;
CFStringRef path = CFURLCopyFileSystemPath ( urlParent , kCFURLPOSIXPathStyle ) ;
CFRelease( urlParent ) ;
- wxString cwd = wxMacCFStringHolder(path).AsString(wxLocale::GetSystemEncoding());
+ wxString cwd = wxMacCFStringHolder(path).AsString(wxLocale::GetSystemEncoding());
wxSetWorkingDirectory( cwd ) ;
}
#endif
sQuitHandler , 0 , FALSE ) ;
}
- return TRUE ;
+ return true ;
}
void wxApp::CleanUp()
{
RemoveEventHandler( (EventHandlerRef)(wxTheApp->m_macEventHandler) );
}
-
+
if (!sm_isEmbedded)
{
AERemoveEventHandler( kCoreEventClass , kAEOpenDocuments ,
sRAppHandler , FALSE ) ;
AERemoveEventHandler( kCoreEventClass , kAEQuitApplication ,
sQuitHandler , FALSE ) ;
-
+
DisposeAEEventHandlerUPP( sODocHandler ) ;
DisposeAEEventHandlerUPP( sOAppHandler ) ;
DisposeAEEventHandlerUPP( sPDocHandler ) ;
int wxApp::MainLoop()
{
- m_keepGoing = TRUE;
+ m_keepGoing = true;
#if wxMAC_USE_RAEL
RunApplicationEventLoop() ;
#else
void wxApp::ExitMainLoop()
{
- m_keepGoing = FALSE;
+ m_keepGoing = false;
#if wxMAC_USE_RAEL
QuitApplicationEventLoop() ;
#endif
// without the receive event (with pull param = false ) nothing is ever reported
EventRef theEvent;
ReceiveNextEvent (0, NULL, kEventDurationNoWait, false, &theEvent);
- return GetNumEventsInQueue( GetMainEventQueue() ) > 0 ;
+ return GetNumEventsInQueue( GetMainEventQueue() ) > 0 ;
}
// Dispatch a message.
void wxApp::OnEndSession(wxCloseEvent& WXUNUSED(event))
{
if (GetTopWindow())
- GetTopWindow()->Close(TRUE);
+ GetTopWindow()->Close(true);
}
// Default behaviour: close the application with prompts. The
if (GetTopWindow())
{
if (!GetTopWindow()->Close(!event.CanVeto()))
- event.Veto(TRUE);
+ event.Veto(true);
}
}
wxFAIL_MSG( wxT("wxYield called recursively" ) );
}
- return FALSE;
+ return false;
}
- s_inYield = TRUE;
+ s_inYield = true;
// by definition yield should handle all non-processed events
} while( status == noErr ) ;
wxMacProcessNotifierAndPendingEvents() ;
- s_inYield = FALSE;
+ s_inYield = false;
- return TRUE;
+ return true;
}
void wxApp::MacDoOneEvent()
/*virtual*/ void wxApp::MacHandleUnhandledEvent( WXEVENTREF evr )
{
- // Override to process unhandled events as you please
+ // Override to process unhandled events as you please
}
void wxApp::MacHandleOneEvent( WXEVENTREF evr )
switch (key)
{
case kHomeCharCode :
- retval = WXK_HOME;
- break;
+ retval = WXK_HOME;
+ break;
+
case kEnterCharCode :
- retval = WXK_RETURN;
- break;
+ retval = WXK_RETURN;
+ break;
case kEndCharCode :
- retval = WXK_END;
- break;
+ retval = WXK_END;
+ break;
+
case kHelpCharCode :
- retval = WXK_HELP;
- break;
+ retval = WXK_HELP;
+ break;
+
case kBackspaceCharCode :
- retval = WXK_BACK;
- break;
+ retval = WXK_BACK;
+ break;
+
case kTabCharCode :
- retval = WXK_TAB;
- break;
+ retval = WXK_TAB;
+ break;
+
case kPageUpCharCode :
- retval = WXK_PAGEUP;
- break;
+ retval = WXK_PAGEUP;
+ break;
+
case kPageDownCharCode :
- retval = WXK_PAGEDOWN;
- break;
+ retval = WXK_PAGEDOWN;
+ break;
+
case kReturnCharCode :
- retval = WXK_RETURN;
- break;
- case kFunctionKeyCharCode :
+ retval = WXK_RETURN;
+ break;
+
+ case kFunctionKeyCharCode :
+ {
+ switch( code )
{
- switch( code )
- {
- case 0x7a :
- retval = WXK_F1 ;
- break;
- case 0x78 :
- retval = WXK_F2 ;
- break;
- case 0x63 :
- retval = WXK_F3 ;
- break;
- case 0x76 :
- retval = WXK_F4 ;
- break;
- case 0x60 :
- retval = WXK_F5 ;
- break;
- case 0x61 :
- retval = WXK_F6 ;
- break;
- case 0x62:
- retval = WXK_F7 ;
- break;
- case 0x64 :
- retval = WXK_F8 ;
- break;
- case 0x65 :
- retval = WXK_F9 ;
- break;
- case 0x6D :
- retval = WXK_F10 ;
- break;
- case 0x67 :
- retval = WXK_F11 ;
- break;
- case 0x6F :
- retval = WXK_F12 ;
- break;
- case 0x69 :
- retval = WXK_F13 ;
- break;
- case 0x6B :
- retval = WXK_F14 ;
- break;
- case 0x71 :
- retval = WXK_F15 ;
- break;
- }
+ case 0x7a :
+ retval = WXK_F1 ;
+ break;
+ case 0x78 :
+ retval = WXK_F2 ;
+ break;
+ case 0x63 :
+ retval = WXK_F3 ;
+ break;
+ case 0x76 :
+ retval = WXK_F4 ;
+ break;
+ case 0x60 :
+ retval = WXK_F5 ;
+ break;
+ case 0x61 :
+ retval = WXK_F6 ;
+ break;
+ case 0x62:
+ retval = WXK_F7 ;
+ break;
+ case 0x64 :
+ retval = WXK_F8 ;
+ break;
+ case 0x65 :
+ retval = WXK_F9 ;
+ break;
+ case 0x6D :
+ retval = WXK_F10 ;
+ break;
+ case 0x67 :
+ retval = WXK_F11 ;
+ break;
+ case 0x6F :
+ retval = WXK_F12 ;
+ break;
+ case 0x69 :
+ retval = WXK_F13 ;
+ break;
+ case 0x6B :
+ retval = WXK_F14 ;
+ break;
+ case 0x71 :
+ retval = WXK_F15 ;
+ break;
}
+ }
+ break ;
+
+ case kEscapeCharCode :
+ retval = WXK_ESCAPE ;
break ;
- case kEscapeCharCode :
- retval = WXK_ESCAPE ;
+
+ case kLeftArrowCharCode :
+ retval = WXK_LEFT ;
break ;
- case kLeftArrowCharCode :
- retval = WXK_LEFT ;
+
+ case kRightArrowCharCode :
+ retval = WXK_RIGHT ;
break ;
- case kRightArrowCharCode :
- retval = WXK_RIGHT ;
+
+ case kUpArrowCharCode :
+ retval = WXK_UP ;
break ;
- case kUpArrowCharCode :
- retval = WXK_UP ;
+
+ case kDownArrowCharCode :
+ retval = WXK_DOWN ;
break ;
- case kDownArrowCharCode :
- retval = WXK_DOWN ;
+
+ case kDeleteCharCode :
+ retval = WXK_DELETE ;
break ;
- case kDeleteCharCode :
- retval = WXK_DELETE ;
- default:
+
+ default:
break ;
} // end switch
//if OS X > 10.2 (i.e. 10.2.x)
//a known apple bug prevents the system from determining led
//states with GetKeys... can only determine caps lock led
- return !!(GetCurrentKeyModifiers() & wxMacKeyCodeToModifier(key));
+ return !!(GetCurrentKeyModifiers() & wxMacKeyCodeToModifier(key));
//else
-// KeyMapByteArray keymap;
+// KeyMapByteArray keymap;
// GetKeys((BigEndianLong*)keymap);
// return !!(BitTst(keymap, (sizeof(KeyMapByteArray)*8) - iKey));
}
handled = focus->GetEventHandler()->ProcessEvent( event ) ;
if ( handled && event.GetSkipped() )
handled = false ;
+
+#if wxUSE_ACCEL
if ( !handled )
{
-#if wxUSE_ACCEL
- if (!handled)
+ wxWindow *ancestor = focus;
+ while (ancestor)
{
- wxWindow *ancestor = focus;
- while (ancestor)
+ int command = ancestor->GetAcceleratorTable()->GetCommand( event );
+ if (command != -1)
{
- int command = ancestor->GetAcceleratorTable()->GetCommand( event );
- if (command != -1)
- {
- wxCommandEvent command_event( wxEVT_COMMAND_MENU_SELECTED, command );
- handled = ancestor->GetEventHandler()->ProcessEvent( command_event );
- break;
- }
- if (ancestor->IsTopLevel())
- break;
- ancestor = ancestor->GetParent();
+ wxCommandEvent command_event( wxEVT_COMMAND_MENU_SELECTED, command );
+ handled = ancestor->GetEventHandler()->ProcessEvent( command_event );
+ break;
}
+ if (ancestor->IsTopLevel())
+ break;
+ ancestor = ancestor->GetParent();
}
-#endif // wxUSE_ACCEL
}
+#endif // wxUSE_ACCEL
+
if (!handled)
{
wxTopLevelWindowMac *tlw = focus->MacGetTopLevelWindow() ;
if (tlw)
{
- event.Skip( FALSE ) ;
+ event.Skip( false ) ;
event.SetEventType( wxEVT_CHAR_HOOK );
// raw value again
event.m_keyCode = realkeyval ;
handled = false ;
}
}
-
+
if ( !handled )
- {
- event.Skip( FALSE ) ;
+ {
+ event.Skip( false ) ;
event.SetEventType( wxEVT_CHAR ) ;
// raw value again
event.m_keyCode = realkeyval ;
#include "wx/dcmemory.h"
// Implementation Notes
-// --------------------
+// --------------------
//
-// we are always working with a 32 bit deep pixel buffer
-// under QuickDraw its alpha parts are going to be ignored in the GWorld,
+// we are always working with a 32 bit deep pixel buffer
+// under QuickDraw its alpha parts are going to be ignored in the GWorld,
// therefore we have a separate GWorld there for blitting the mask in
// under Quartz then content is transformed into a CGImageRef representing the same data
wxBitmapRefData * bmap = bitmap.GetBitmapData() ;
if ( bmap == NULL )
return ;
-
+
if ( ( bmap->HasNativeSize() && forceType == 0 ) || forceType == kControlContentIconRef )
{
wxBitmap scaleBmp ;
-
+
wxBitmapRefData* bmp = bmap ;
-
+
if ( !bmap->HasNativeSize() )
{
// as PICT conversion will only result in a 16x16 icon, let's attempt
- // a few scales for better results
-
+ // a few scales for better results
+
int w = bitmap.GetWidth() ;
int h = bitmap.GetHeight() ;
int sz = wxMax( w , h ) ;
bmp = scaleBmp.GetBitmapData() ;
}
}
-
+
info->contentType = kControlContentIconRef ;
info->u.iconRef = bmp->GetIconRef() ;
AcquireIconRef( info->u.iconRef ) ;
Init() ;
}
-wxBitmapRefData::wxBitmapRefData( int w , int h , int d )
+wxBitmapRefData::wxBitmapRefData( int w , int h , int d )
{
Init() ;
Create( w , h , d ) ;
}
-bool wxBitmapRefData::Create( int w , int h , int d )
+bool wxBitmapRefData::Create( int w , int h , int d )
{
m_width = w ;
- m_height = h ;
+ m_height = h ;
m_depth = d ;
m_bytesPerRow = w * 4 ;
m_hBitmap = NULL ;
Rect rect = { 0 , 0 , m_height , m_width } ;
verify_noerr( NewGWorldFromPtr( (GWorldPtr*) &m_hBitmap , k32ARGBPixelFormat , &rect , NULL , NULL , 0 ,
- (char*) data , m_bytesPerRow ) ) ;
+ (char*) data , m_bytesPerRow ) ) ;
wxASSERT_MSG( m_hBitmap , wxT("Unable to create GWorld context") ) ;
m_ok = ( m_hBitmap != NULL ) ;
- return m_ok ;
+ return m_ok ;
}
void wxBitmapRefData::UseAlpha( bool use )
{
if ( m_hasAlpha == use )
return ;
-
+
m_hasAlpha = use ;
if ( m_hasAlpha )
{
wxASSERT( m_hMaskBitmap == NULL ) ;
Rect rect = { 0 , 0 , height , width } ;
verify_noerr( NewGWorldFromPtr( (GWorldPtr*) &m_hMaskBitmap , k32ARGBPixelFormat , &rect , NULL , NULL , 0 ,
- (char*) data , m_maskBytesPerRow ) ) ;
+ (char*) data , m_maskBytesPerRow ) ) ;
wxASSERT_MSG( m_hMaskBitmap , wxT("Unable to create GWorld context for alpha mask") ) ;
m_maskMemBuf.UngetWriteBuf(size) ;
#if !wxMAC_USE_CORE_GRAPHICS
return m_memBuf.GetData() ;
}
-void *wxBitmapRefData::BeginRawAccess()
+void *wxBitmapRefData::BeginRawAccess()
{
wxCHECK_MSG( Ok(), NULL, wxT("invalid bitmap") ) ;
wxASSERT( m_rawAccessCount == 0 ) ;
++m_rawAccessCount ;
// we must destroy an existing cached image, as
// the bitmap data may change now
- wxASSERT_MSG( m_pictHandle == NULL && m_iconRef == NULL ,
+ wxASSERT_MSG( m_pictHandle == NULL && m_iconRef == NULL ,
wxT("Currently, modifing bitmaps that are used in controls already is not supported") ) ;
#if wxMAC_USE_CORE_GRAPHICS
if ( m_cgImageRef )
int w = GetWidth() ;
int h = GetHeight() ;
int sz = wxMax( w , h ) ;
-
+
if ( sz == 128 || sz == 48 || sz == 32 || sz == 16 )
return true ;
return false ;
if ( m_iconRef == NULL )
{
// Create Icon Family Handle
-
+
IconFamilyHandle iconFamily = NULL ;
-
+
iconFamily = (IconFamilyHandle) NewHandle(8) ;
(**iconFamily).resourceType = kIconFamilyType ;
(**iconFamily).resourceSize = sizeof(OSType) + sizeof(Size);
-
+
int w = GetWidth() ;
int h = GetHeight() ;
int sz = wxMax( w , h ) ;
-
+
OSType dataType = 0 ;
OSType maskType = 0 ;
{
// setup the header properly
- Handle data = NULL ;
+ Handle data = NULL ;
Handle maskdata = NULL ;
unsigned char * maskptr = NULL ;
unsigned char * ptr = NULL ;
size_t masksize ;
size = sz * sz * 4 ;
- data = NewHandle( size) ;
+ data = NewHandle( size) ;
HLock( data ) ;
ptr = (unsigned char*) *data ;
memset( ptr , 0, size ) ;
masksize = sz * sz ;
- maskdata = NewHandle( masksize ) ;
+ maskdata = NewHandle( masksize ) ;
HLock( maskdata ) ;
maskptr = (unsigned char*) *maskdata ;
memset( maskptr , 0 , masksize ) ;
unsigned char r = *source ++ ;
unsigned char g = *source ++ ;
unsigned char b = *source ++ ;
-
+
*dest++ = 0 ;
*dest++ = r ;
*dest++ = g ;
*dest++ = b ;
-
+
if ( mask )
*maskdest++ = *masksource++ ;
else if ( hasAlpha )
*maskdest++ = 0xFF ;
}
}
-
+
OSStatus err = SetIconFamilyData( iconFamily, dataType , data ) ;
wxASSERT_MSG( err == noErr , wxT("Error when adding bitmap") ) ;
PicHandle pic = GetPictHandle() ;
SetIconFamilyData( iconFamily, 'PICT' , (Handle) pic ) ;
}
-
+
// transform into IconRef
-
- static int iconCounter = 2 ;
+
+ static int iconCounter = 2 ;
#ifdef __WXDEBUG__
- OSStatus err =
+ OSStatus err =
#endif
RegisterIconRefFromIconFamily( 'WXNG' , (OSType) iconCounter, iconFamily, &m_iconRef ) ;
wxASSERT_MSG( err == noErr , wxT("Error when adding bitmap") ) ;
- // we have to retain a reference, as Unregister will decrement it
+ // we have to retain a reference, as Unregister will decrement it
AcquireIconRef( m_iconRef ) ;
UnregisterIconRef( 'WXNG' , (OSType) iconCounter ) ;
DisposeHandle( (Handle) iconFamily ) ;
GWorldPtr mask = NULL ;
int height = GetHeight() ;
int width = GetWidth() ;
-
+
Rect rect = { 0 , 0 , height , width } ;
GetGWorld( &origPort , &origDev ) ;
Rect portRect ;
GetPortBounds( wp , &portRect ) ;
m_pictHandle = OpenPicture(&portRect);
-
+
if(m_pictHandle)
{
RGBColor white = { 0xffff ,0xffff , 0xffff } ;
int h = m_height ;
CGImageAlphaInfo alphaInfo = kCGImageAlphaNoneSkipFirst ;
wxMemoryBuffer* membuf = NULL ;
-
+
if ( m_bitmapMask )
{
membuf = new wxMemoryBuffer( imageSize ) ;
membuf = new wxMemoryBuffer( m_memBuf ) ;
}
CGColorSpaceRef colorSpace = wxMacGetGenericRGBColorSpace();
- CGDataProviderRef dataProvider =
- CGDataProviderCreateWithData( membuf , (const void *)membuf->GetData() , imageSize,
- wxMacMemoryBufferReleaseProc );
- image =
- ::CGImageCreate( w, h, 8 , 32 , 4 * m_width , colorSpace, alphaInfo ,
- dataProvider, NULL , false , kCGRenderingIntentDefault );
- CGDataProviderRelease( dataProvider);
+ CGDataProviderRef dataProvider =
+ CGDataProviderCreateWithData( membuf , (const void *)membuf->GetData() , imageSize,
+ wxMacMemoryBufferReleaseProc );
+ image =
+ ::CGImageCreate( w, h, 8 , 32 , 4 * m_width , colorSpace, alphaInfo ,
+ dataProvider, NULL , false , kCGRenderingIntentDefault );
+ CGDataProviderRelease( dataProvider);
}
else
{
// we keep it for later use
m_cgImageRef = image ;
CGImageRetain( image ) ;
- }
+ }
return image ;
}
#endif
{
*mask = NULL ;
if ( m_bitmapMask )
- *mask = (GWorldPtr) m_bitmapMask->GetHBITMAP() ;
+ *mask = (GWorldPtr) m_bitmapMask->GetHBITMAP() ;
else if ( m_hasAlpha )
{
#if !wxMAC_USE_CORE_GRAPHICS
return m_hBitmap ;
}
-void wxBitmapRefData::UpdateAlphaMask() const
+void wxBitmapRefData::UpdateAlphaMask() const
{
if ( m_hasAlpha )
{
unsigned char *sourcemask = (unsigned char *) GetRawAccess() ;
unsigned char *destalphabase = (unsigned char *) m_maskMemBuf.GetData() ;
-
+
int h = GetHeight() ;
int w = GetWidth() ;
-
+
for ( int y = 0 ; y < h ; ++y , destalphabase += m_maskBytesPerRow )
{
unsigned char* destalpha = destalphabase ;
IconFamilyHandle iconFamily = NULL ;
Handle imagehandle = NewHandle(0) ;
Handle maskhandle = NewHandle(0) ;
-
+
OSType maskType = 0;
OSType dataType = 0;
- IconSelectorValue selector = 0 ;
+ IconSelectorValue selector = 0 ;
if ( w == 128 )
{
dataType = kThumbnail32BitData ;
OSStatus err = ( IconRefToIconFamily( MAC_WXHICON(icon.GetHICON()) , selector , &iconFamily ) ) ;
-
+
err =( GetIconFamilyData( iconFamily , dataType , imagehandle ) ) ;
err =( GetIconFamilyData( iconFamily , maskType , maskhandle ) ) ;
size_t imagehandlesize = GetHandleSize( imagehandle ) ;
size_t maskhandlesize = GetHandleSize( maskhandle ) ;
-
+
if ( imagehandlesize != 0 && maskhandlesize != 0 )
{
wxASSERT( GetHandleSize( imagehandle ) == w * 4 * h ) ;
UseAlpha() ;
unsigned char *source = (unsigned char *) *imagehandle ;
unsigned char *sourcemask = (unsigned char *) *maskhandle ;
-
+
unsigned char* destination = (unsigned char*) BeginRawAccess() ;
for ( int y = 0 ; y < h ; ++y )
{
created = true ;
}
DisposeHandle( (Handle) iconFamily ) ;
-
+
}
-
+
if ( !created )
- {
+ {
wxMemoryDC dc ;
dc.SelectObject( *this ) ;
dc.DrawIcon( icon , 0 , 0 ) ;
return M_BITMAPDATA->GetRawAccess() ;
}
-void* wxBitmap::BeginRawAccess()
+void* wxBitmap::BeginRawAccess()
{
wxCHECK_MSG( Ok() , NULL , wxT("invalid bitmap") ) ;
return M_BITMAPDATA->BeginRawAccess() ;
bool wxBitmap::CreateFromXpm(const char **bits)
{
#if wxUSE_IMAGE
- wxCHECK_MSG( bits != NULL, FALSE, wxT("invalid bitmap data") )
+ wxCHECK_MSG( bits != NULL, false, wxT("invalid bitmap data") )
wxXPMDecoder decoder;
wxImage img = decoder.ReadData(bits);
- wxCHECK_MSG( img.Ok(), FALSE, wxT("invalid bitmap data") )
+ wxCHECK_MSG( img.Ok(), false, wxT("invalid bitmap data") )
*this = wxBitmap(img);
- return TRUE;
+ return true;
#else
- return FALSE;
+ return false;
#endif
}
}
}
ret.EndRawAccess() ;
-
+
if ( M_BITMAPDATA->m_bitmapMask )
{
wxMemoryBuffer maskbuf ;
if ( handler == NULL ) {
wxLogWarning(wxT("no bitmap handler for type %d defined."), type);
- return FALSE;
+ return false;
}
return handler->Create(this, data, type, width, height, depth);
// Create picture
bool hasAlpha = false ;
-
+
if ( image.HasMask() )
{
// takes precedence, don't mix with alpha info
{
hasAlpha = image.HasAlpha() ;
}
-
+
if ( hasAlpha )
UseAlpha() ;
-
+
unsigned char* destination = (unsigned char*) BeginRawAccess() ;
register unsigned char* data = image.GetData();
alpha = image.GetAlpha() ;
}
int index = 0;
-
+
// The following masking algorithm is the same as well in msw/gtk:
// the colour used as transparent one in wxImage and the one it is
// replaced with when it really occurs in the bitmap
bool wxBitmap::SaveFile(const wxString& filename, wxBitmapType type,
const wxPalette *palette) const
{
+ bool success = false;
wxBitmapHandler *handler = FindHandler(type);
if ( handler )
{
- return handler->SaveFile(this, filename, type, palette);
+ success = handler->SaveFile(this, filename, type, palette);
}
else
{
#if wxUSE_IMAGE
wxImage image = ConvertToImage();
- return image.SaveFile(filename, type);
+ success = image.SaveFile(filename, type);
+#else
+ wxLogWarning(wxT("no bitmap handler for type %d defined."), type);
#endif
}
- wxLogWarning(wxT("no bitmap handler for type %d defined."), type);
- return false;
+ return success;
}
bool wxBitmap::Ok() const
}
}
-void wxMask::Init()
+void wxMask::Init()
{
m_width = m_height = m_bytesPerRow = 0 ;
m_maskBitmap = NULL ;
// this can be a k8IndexedGrayPixelFormat GWorld, because it never stores other values than black or white
// so no rainbox colors will be created by QD when blitting
-void wxMask::RealizeNative()
+void wxMask::RealizeNative()
{
if ( m_maskBitmap )
{
}
Rect rect = { 0 , 0 , m_height , m_width } ;
verify_noerr( NewGWorldFromPtr( (GWorldPtr*) &m_maskBitmap , k8IndexedGrayPixelFormat , &rect , NULL , NULL , 0 ,
- (char*) m_memBuf.GetData() , m_bytesPerRow ) ) ;
+ (char*) m_memBuf.GetData() , m_bytesPerRow ) ) ;
}
// Create a mask from a mono bitmap (copies the bitmap).
}
m_memBuf.UngetWriteBuf( size ) ;
RealizeNative() ;
- return TRUE;
+ return true;
}
// Create a mask from a bitmap and a colour indicating
}
m_memBuf.UngetWriteBuf( size ) ;
RealizeNative() ;
- return TRUE;
+ return true;
}
WXHBITMAP wxMask::GetHBITMAP() const
bool wxBitmapHandler::Create(wxBitmap *bitmap, void *data, long type, int width, int height, int depth)
{
- return FALSE;
+ return false;
}
bool wxBitmapHandler::LoadFile(wxBitmap *bitmap, const wxString& name, long flags,
int desiredWidth, int desiredHeight)
{
- return FALSE;
+ return false;
}
bool wxBitmapHandler::SaveFile(const wxBitmap *bitmap, const wxString& name, int type, const wxPalette *palette)
{
- return FALSE;
+ return false;
}
// ----------------------------------------------------------------------------
dc.SelectObject( *bitmap ) ;
mf.Play( &dc ) ;
dc.SelectObject( wxNullBitmap ) ;
- return TRUE ;
+ return true ;
}
#endif //wxUSE_METAFILE
- return FALSE ;
+ return false ;
}
bool wxColourDialog::Create(wxWindow *parent, wxColourData *data)
{
m_dialogParent = parent;
-
+
if (data)
m_colourData = *data;
- return TRUE;
+ return true;
}
int wxColourDialog::ShowModal()
{
Point where ;
RGBColor currentColor = *((RGBColor*)m_colourData.m_dataColour.GetPixel()) , newColor ;
-
+
where.h = where.v = -1;
if (GetColor( where, "\pSelect a new palette color.", ¤tColor, &newColor ))
m_colourData.m_dataColour.Set( (WXCOLORREF*) &newColor ) ;
return wxID_OK;
}
- else
- {
- return wxID_CANCEL;
- }
return wxID_CANCEL;
}
int wxDirDialog::ShowModal()
{
NavDialogOptions mNavOptions;
- NavObjectFilterUPP mNavFilterUPP = NULL;
- NavPreviewUPP mNavPreviewUPP = NULL ;
- NavReplyRecord mNavReply;
- AEDesc* mDefaultLocation = NULL ;
- bool mSelectDefault = false ;
-
+ NavObjectFilterUPP mNavFilterUPP = NULL;
+ NavReplyRecord mNavReply;
+
::NavGetDefaultDialogOptions(&mNavOptions);
- mNavFilterUPP = nil;
- mNavPreviewUPP = nil;
- mSelectDefault = false;
- mNavReply.validRecord = false;
- mNavReply.replacing = false;
- mNavReply.isStationery = false;
- mNavReply.translationNeeded = false;
+ mNavReply.validRecord = false;
+ mNavReply.replacing = false;
+ mNavReply.isStationery = false;
+ mNavReply.translationNeeded = false;
mNavReply.selection.descriptorType = typeNull;
- mNavReply.selection.dataHandle = nil;
- mNavReply.keyScript = smSystemScript;
- mNavReply.fileTranslation = nil;
-
+ mNavReply.selection.dataHandle = nil;
+ mNavReply.keyScript = smSystemScript;
+ mNavReply.fileTranslation = nil;
+
// Set default location, the location
// that's displayed when the dialog
// first appears
-
- if ( mDefaultLocation ) {
-
- if (mSelectDefault) {
- mNavOptions.dialogOptionFlags |= kNavSelectDefaultLocation;
- } else {
- mNavOptions.dialogOptionFlags &= ~kNavSelectDefaultLocation;
- }
- }
-
+
OSErr err = ::NavChooseFolder(
- mDefaultLocation,
+ NULL,
&mNavReply,
&mNavOptions,
NULL,
mNavFilterUPP,
0L); // User Data
-
+
if ( (err != noErr) && (err != userCanceledErr) ) {
- m_path = wxT("") ;
+ m_path = wxEmptyString ;
return wxID_CANCEL ;
}
if (mNavReply.validRecord) { // User chose a folder
-
+
FSRef folderInfo;
AEDesc specDesc ;
-
+
OSErr err = ::AECoerceDesc( &mNavReply.selection , typeFSRef, &specDesc);
if ( err != noErr ) {
- m_path = wxT("") ;
+ m_path = wxEmptyString ;
return wxID_CANCEL ;
- }
+ }
folderInfo = **(FSRef**) specDesc.dataHandle;
if (specDesc.dataHandle != nil) {
::AEDisposeDesc(&specDesc);
IMPLEMENT_DYNAMIC_CLASS(wxFrame, wxTopLevelWindow)
-#define WX_MAC_STATUSBAR_HEIGHT 18
+#define WX_MAC_STATUSBAR_HEIGHT 18
// ----------------------------------------------------------------------------
// creation/destruction
// ----------------------------------------------------------------------------
void wxFrame::Init()
{
m_frameMenuBar = NULL;
-
+
#if wxUSE_TOOLBAR
m_frameToolBar = NULL ;
#endif
m_frameStatusBar = NULL;
m_winLastFocused = NULL ;
-
- m_iconized = FALSE;
-
+
+ m_iconized = false;
+
#if wxUSE_TOOLTIPS
m_hwndToolTip = 0;
#endif
long style,
const wxString& name)
{
-
+
if ( !wxTopLevelWindow::Create(parent, id, title, pos, size, style, name) )
- return FALSE;
-
+ return false;
+
wxModelessWindows.Append(this);
-
- return TRUE;
+
+ return true;
}
wxFrame::~wxFrame()
{
- m_isBeingDeleted = TRUE;
+ m_isBeingDeleted = true;
DeleteAllBars();
}
bool wxFrame::Enable(bool enable)
{
if ( !wxWindow::Enable(enable) )
- return FALSE;
+ return false;
if ( m_frameMenuBar && m_frameMenuBar == wxMenuBar::MacGetInstalledMenuBar() )
{
- int iMaxMenu = m_frameMenuBar->GetMenuCount();
+ int iMaxMenu = m_frameMenuBar->GetMenuCount();
for ( int i = 0 ; i < iMaxMenu ; ++ i )
{
m_frameMenuBar->EnableTop( i , enable ) ;
}
}
- return TRUE;
+ return true;
}
wxStatusBar *wxFrame::OnCreateStatusBar(int number, long style, wxWindowID id,
{
int w, h;
GetClientSize(&w, &h);
-
+
// Since we wish the status bar to be directly under the client area,
// we use the adjusted sizes without using wxSIZE_NO_ADJUSTMENTS.
m_frameStatusBar->SetSize(0, h, w, WX_MAC_STATUSBAR_HEIGHT);
void wxFrame::DoGetClientSize(int *x, int *y) const
{
wxTopLevelWindow::DoGetClientSize( x , y ) ;
-
+
#if wxUSE_STATUSBAR
if ( GetStatusBar() && GetStatusBar()->IsShown() && y )
{
- if ( y) *y -= WX_MAC_STATUSBAR_HEIGHT;
+ *y -= WX_MAC_STATUSBAR_HEIGHT;
}
#endif // wxUSE_STATUSBAR
-
+
#if wxUSE_TOOLBAR
wxToolBar *toolbar = GetToolBar();
if ( toolbar && toolbar->IsShown() )
#endif // wxUSE_TOOLBAR
}
-bool wxFrame::MacIsChildOfClientArea( const wxWindow* child ) const
+bool wxFrame::MacIsChildOfClientArea( const wxWindow* child ) const
{
#if wxUSE_STATUSBAR
if ( child == GetStatusBar() )
{
int currentclientwidth , currentclientheight ;
int currentwidth , currentheight ;
-
+
GetClientSize( ¤tclientwidth , ¤tclientheight ) ;
if ( clientwidth == -1 )
clientwidth = currentclientwidth ;
if ( clientheight == -1 )
clientheight = currentclientheight ;
GetSize( ¤twidth , ¤theight ) ;
-
+
// find the current client size
// Find the difference between the entire window (title bar and all)
{
int tx, ty, tw, th;
tx = ty = 0 ;
-
+
GetToolBar()->GetSize(& tw, & th);
if (GetToolBar()->GetWindowStyleFlag() & wxTB_VERTICAL)
{
#if wxUSE_SOCKETS || defined(__GSOCKET_STANDALONE__)
#ifdef __DARWIN__
- #include <CoreServices/CoreServices.h>
-
+ #include <CoreServices/CoreServices.h>
#else
- #include <MacHeaders.c>
- #define OTUNIXERRORS 1
- #include <OpenTransport.h>
- #include <OpenTransportProviders.h>
- #include <OpenTptInternet.h>
+ #include <MacHeaders.c>
+ #define OTUNIXERRORS 1
+ #include <OpenTransport.h>
+ #include <OpenTransportProviders.h>
+ #include <OpenTptInternet.h>
#endif
#if TARGET_CARBON && !defined(OTAssert)
- #define OTAssert( str , cond ) /* does not exists in Carbon */
+ #define OTAssert( str , cond ) /* does not exists in Carbon */
#endif
#include <assert.h>
#endif
#ifndef __GSOCKET_STANDALONE__
-#include "wx/mac/macnotfy.h"
-#include "wx/mac/gsockmac.h"
-#include "wx/gsocket.h"
+ #include "wx/mac/macnotfy.h"
+ #include "wx/mac/gsockmac.h"
+ #include "wx/gsocket.h"
#else
-#include "gsockmac.h"
-#include "gsocket.h"
+ #include "gsockmac.h"
+ #include "gsocket.h"
#endif /* __GSOCKET_STANDALONE__ */
#ifndef ntohl
-#define ntohl(x) (x)
-#define ntohs(x) (x)
-#define htonl(x) (x)
-#define htons(x) (x)
+ #define ntohl(x) (x)
+ #define ntohs(x) (x)
+ #define htonl(x) (x)
+ #define htons(x) (x)
#endif
void wxCYield() ;
OSStatus DoNegotiateIPReuseAddrOption(EndpointRef ep, Boolean enableReuseIPMode);
/* Input: ep - endpointref on which to negotiate the option
- enableReuseIPMode - desired option setting - true/false
+ enableReuseIPMode - desired option setting - true/false
Return: kOTNoError indicates that the option was successfully negotiated
- OSStatus is an error if < 0, otherwise, the status field is
- returned and is > 0.
-
- IMPORTANT NOTE: The endpoint is assumed to be in synchronous more, otherwise
- this code will not function as desired
+ OSStatus is an error if < 0, otherwise, the status field is
+ returned and is > 0.
+
+ IMPORTANT NOTE: The endpoint is assumed to be in synchronous more, otherwise
+ this code will not function as desired
*/
OSStatus DoNegotiateIPReuseAddrOption(EndpointRef ep, Boolean enableReuseIPMode)
{
- UInt8 buf[kOTFourByteOptionSize]; // define buffer for fourByte Option size
- TOption* opt; // option ptr to make items easier to access
- TOptMgmt req;
- TOptMgmt ret;
- OSStatus err;
-
- if (!OTIsSynchronous(ep))
- {
- return (-1);
- }
- opt = (TOption*)buf; // set option ptr to buffer
- req.opt.buf = buf;
- req.opt.len = sizeof(buf);
- req.flags = T_NEGOTIATE; // negotiate for option
+ UInt8 buf[kOTFourByteOptionSize]; // define buffer for fourByte Option size
+ TOption* opt; // option ptr to make items easier to access
+ TOptMgmt req;
+ TOptMgmt ret;
+ OSStatus err;
- ret.opt.buf = buf;
- ret.opt.maxlen = kOTFourByteOptionSize;
+ if (!OTIsSynchronous(ep))
+ {
+ return (-1);
+ }
+ opt = (TOption*)buf; // set option ptr to buffer
+ req.opt.buf = buf;
+ req.opt.len = sizeof(buf);
+ req.flags = T_NEGOTIATE; // negotiate for option
- opt->level = INET_IP; // dealing with an IP Level function
+ ret.opt.buf = buf;
+ ret.opt.maxlen = kOTFourByteOptionSize;
+
+ opt->level = INET_IP; // dealing with an IP Level function
#ifdef __DARWIN__
- opt->name = kIP_REUSEADDR;
+ opt->name = kIP_REUSEADDR;
#else
- opt->name = IP_REUSEADDR;
+ opt->name = IP_REUSEADDR;
#endif
- opt->len = kOTFourByteOptionSize;
- opt->status = 0;
- *(UInt32*)opt->value = enableReuseIPMode; // set the desired option level, true or false
-
- err = OTOptionManagement(ep, &req, &ret);
-
- // if no error then return the option status value
- if (err == kOTNoError)
- {
- if (opt->status != T_SUCCESS)
- err = opt->status;
- else
- err = kOTNoError;
- }
-
- return err;
+ opt->len = kOTFourByteOptionSize;
+ opt->status = 0;
+ *(UInt32*)opt->value = enableReuseIPMode; // set the desired option level, true or false
+
+ err = OTOptionManagement(ep, &req, &ret);
+
+ // if no error then return the option status value
+ if (err == kOTNoError)
+ {
+ if (opt->status != T_SUCCESS)
+ err = opt->status;
+ else
+ err = kOTNoError;
+ }
+
+ return err;
}
pascal void OTInetEventHandler(void*s, OTEventCode event, OTResult, void *cookie) ;
pascal void OTInetEventHandler(void*s, OTEventCode event, OTResult result, void *cookie)
{
- int wakeUp = true ;
- GSocket* sock = (GSocket*) s ;
-
- if ( event == kOTSyncIdleEvent )
- {
- return ;
- }
+ int wakeUp = true ;
+ GSocket* sock = (GSocket*) s ;
- if ( s )
- {
- wxMacAddEvent( sock->m_mac_events , _GSocket_Internal_Proc , event , s , wakeUp ) ;
- }
+ if ( event == kOTSyncIdleEvent )
+ {
+ return ;
+ }
- return;
+ if ( s )
+ {
+ wxMacAddEvent( sock->m_mac_events , _GSocket_Internal_Proc , event , s , wakeUp ) ;
+ }
+
+ return;
}
static void SetDefaultEndpointModes(EndpointRef ep , void *data )
- // This routine sets the supplied endpoint into the default
- // mode used in this application. The specifics are:
- // blocking, synchronous, and using synch idle events with
- // the standard YieldingNotifier.
+ // This routine sets the supplied endpoint into the default
+ // mode used in this application. The specifics are:
+ // blocking, synchronous, and using synch idle events with
+ // the standard YieldingNotifier.
{
- OSStatus junk = kOTNoError ;
- OTAssert ("SetDefaultEndpointModes:invalid ref", ep != kOTInvalidEndpointRef ) ;
- junk = OTSetAsynchronous(ep);
- OTAssert("SetDefaultEndpointModes: Could not set asynchronous", junk == noErr);
+ OSStatus junk = kOTNoError ;
+ OTAssert ("SetDefaultEndpointModes:invalid ref", ep != kOTInvalidEndpointRef ) ;
+ junk = OTSetAsynchronous(ep);
+ OTAssert("SetDefaultEndpointModes: Could not set asynchronous", junk == noErr);
/*
- junk = OTSetBlocking(ep);
- OTAssert("SetDefaultEndpointModes: Could not set blocking", junk == noErr);
- junk = OTSetSynchronous(ep);
- OTAssert("SetDefaultEndpointModes: Could not set synchronous", junk == noErr);
- junk = OTSetBlocking(ep);
- OTAssert("SetDefaultEndpointModes: Could not set blocking", junk == noErr);
+ junk = OTSetBlocking(ep);
+ OTAssert("SetDefaultEndpointModes: Could not set blocking", junk == noErr);
+ junk = OTSetSynchronous(ep);
+ OTAssert("SetDefaultEndpointModes: Could not set synchronous", junk == noErr);
+ junk = OTSetBlocking(ep);
+ OTAssert("SetDefaultEndpointModes: Could not set blocking", junk == noErr);
*/
- junk = OTInstallNotifier(ep, gOTNotifierUPP, data);
- OTAssert("SetDefaultEndpointModes: Could not install notifier", junk == noErr);
+ junk = OTInstallNotifier(ep, gOTNotifierUPP, data);
+ OTAssert("SetDefaultEndpointModes: Could not install notifier", junk == noErr);
/*
- junk = OTUseSyncIdleEvents(ep, true);
- OTAssert("SetDefaultEndpointModes: Could not use sync idle events", junk == noErr);
+ junk = OTUseSyncIdleEvents(ep, true);
+ OTAssert("SetDefaultEndpointModes: Could not use sync idle events", junk == noErr);
*/
}
InitOpenTransportInContext(kInitOTForApplicationMask, &clientcontext);
gOTInited = 1 ;
gInetSvcRef = OTOpenInternetServicesInContext(kDefaultInternetServicesPath,
- NULL, &err, clientcontext);
-#else
+ NULL, &err, clientcontext);
+#else
if ( gInetSvcRef )
return true ;
-
+
InitOpenTransport() ;
gOTInited = 1 ;
gInetSvcRef = OTOpenInternetServices(kDefaultInternetServicesPath, NULL, &err);
#endif
if ( gInetSvcRef == NULL || err != kOTNoError )
{
- OTAssert("Could not open Inet Services", err == noErr);
- return false ;
+ OTAssert("Could not open Inet Services", err == noErr);
+ return false ;
}
gOTNotifierUPP = NewOTNotifyUPP( OTInetEventHandler ) ;
return true ;
{
if ( gOTInited != 0 )
{
- if ( gInetSvcRef != NULL )
- OTCloseProvider( gInetSvcRef );
+ if ( gInetSvcRef != NULL )
+ OTCloseProvider( gInetSvcRef );
#if TARGET_CARBON
CloseOpenTransportInContext( NULL ) ;
#else
m_non_blocking = false;
m_timeout = 1*1000;
/* 10 sec * 1000 millisec */
- m_takesEvents = true ;
- m_mac_events = wxMacGetNotifierTable() ;
+ m_takesEvents = true ;
+ m_mac_events = wxMacGetNotifierTable() ;
}
GSocket::~GSocket()
{
- assert(this);
+ assert(this);
- /* Check that the socket is really shutdowned */
- if (m_endpoint != kOTInvalidEndpointRef)
- Shutdown();
+ /* Check that the socket is really shutdowned */
+ if (m_endpoint != kOTInvalidEndpointRef)
+ Shutdown();
- /* Destroy private addresses */
- if (m_local)
- GAddress_destroy(m_local);
+ /* Destroy private addresses */
+ if (m_local)
+ GAddress_destroy(m_local);
- if (m_peer)
- GAddress_destroy(m_peer);
+ if (m_peer)
+ GAddress_destroy(m_peer);
}
/* GSocket_Shutdown:
*/
void GSocket::Shutdown()
{
- OSStatus err ;
- int evt;
+ OSStatus err ;
+ int evt;
- assert(this);
+ assert(this);
- /* If socket has been created, shutdown it */
- if (m_endpoint != kOTInvalidEndpointRef )
- {
- err = OTSndOrderlyDisconnect( m_endpoint ) ;
- if ( err != kOTNoError )
- {
-
- }
- err = OTRcvOrderlyDisconnect( m_endpoint ) ;
- err = OTUnbind( m_endpoint ) ;
- err = OTCloseProvider( m_endpoint ) ;
- m_endpoint = kOTInvalidEndpointRef ;
- }
+ /* If socket has been created, shutdown it */
+ if (m_endpoint != kOTInvalidEndpointRef )
+ {
+ err = OTSndOrderlyDisconnect( m_endpoint ) ;
+ if ( err != kOTNoError )
+ {
+ }
+
+ err = OTRcvOrderlyDisconnect( m_endpoint ) ;
+ err = OTUnbind( m_endpoint ) ;
+ err = OTCloseProvider( m_endpoint ) ;
+ m_endpoint = kOTInvalidEndpointRef ;
+ }
- /* Disable GUI callbacks */
- for (evt = 0; evt < GSOCK_MAX_EVENT; evt++)
- m_cbacks[evt] = NULL;
+ /* Disable GUI callbacks */
+ for (evt = 0; evt < GSOCK_MAX_EVENT; evt++)
+ m_cbacks[evt] = NULL;
- m_detected = 0;
- Disable_Events();
- wxMacRemoveAllNotifiersForData( wxMacGetNotifierTable() , this ) ;
+ m_detected = 0;
+ Disable_Events();
+ wxMacRemoveAllNotifiersForData( wxMacGetNotifierTable() , this ) ;
}
*/
GSocketError GSocket::SetLocal(GAddress *address)
{
- assert(this);
+ assert(this);
- /* the socket must be initialized, or it must be a server */
- if ((m_endpoint != kOTInvalidEndpointRef && !m_server))
- {
- m_error = GSOCK_INVSOCK;
- return GSOCK_INVSOCK;
- }
+ /* the socket must be initialized, or it must be a server */
+ if ((m_endpoint != kOTInvalidEndpointRef && !m_server))
+ {
+ m_error = GSOCK_INVSOCK;
+ return GSOCK_INVSOCK;
+ }
- /* check address */
- if (address == NULL || address->m_family == GSOCK_NOFAMILY)
- {
- m_error = GSOCK_INVADDR;
- return GSOCK_INVADDR;
- }
+ /* check address */
+ if (address == NULL || address->m_family == GSOCK_NOFAMILY)
+ {
+ m_error = GSOCK_INVADDR;
+ return GSOCK_INVADDR;
+ }
- if (m_local)
- GAddress_destroy(m_local);
+ if (m_local)
+ GAddress_destroy(m_local);
- m_local = GAddress_copy(address);
+ m_local = GAddress_copy(address);
- return GSOCK_NOERROR;
+ return GSOCK_NOERROR;
}
GSocketError GSocket::SetPeer(GAddress *address)
{
- assert(this);
+ assert(this);
- /* check address */
- if (address == NULL || address->m_family == GSOCK_NOFAMILY)
- {
- m_error = GSOCK_INVADDR;
- return GSOCK_INVADDR;
- }
+ /* check address */
+ if (address == NULL || address->m_family == GSOCK_NOFAMILY)
+ {
+ m_error = GSOCK_INVADDR;
+ return GSOCK_INVADDR;
+ }
- if (m_peer)
- GAddress_destroy(m_peer);
+ if (m_peer)
+ GAddress_destroy(m_peer);
- m_peer = GAddress_copy(address);
+ m_peer = GAddress_copy(address);
- return GSOCK_NOERROR;
+ return GSOCK_NOERROR;
}
GAddress *GSocket::GetLocal()
{
- GAddress *address = NULL ;
- GSocketError err;
- InetAddress loc ;
+ GAddress *address = NULL ;
+ GSocketError err;
+ InetAddress loc ;
- assert(this);
+ assert(this);
- /* try to get it from the m_local var first */
- if (m_local)
- return GAddress_copy(m_local);
+ /* try to get it from the m_local var first */
+ if (m_local)
+ return GAddress_copy(m_local);
+
+ /* else, if the socket is initialized, try getsockname */
+ if (m_endpoint == kOTInvalidEndpointRef)
+ {
+ m_error = GSOCK_INVSOCK;
+ return NULL;
+ }
- /* else, if the socket is initialized, try getsockname */
- if (m_endpoint == kOTInvalidEndpointRef)
- {
- m_error = GSOCK_INVSOCK;
- return NULL;
- }
-
/* we do not support multihoming with this code at the moment
- OTGetProtAddress will have to be used then - but we don't have a handy
+ OTGetProtAddress will have to be used then - but we don't have a handy
method to use right now
*/
- {
- InetInterfaceInfo info;
- OTInetGetInterfaceInfo(&info, kDefaultInetInterface);
- loc.fHost = info.fAddress ;
- loc.fPort = 0 ;
- loc.fAddressType = AF_INET ;
- }
+ {
+ InetInterfaceInfo info;
+ OTInetGetInterfaceInfo(&info, kDefaultInetInterface);
+ loc.fHost = info.fAddress ;
+ loc.fPort = 0 ;
+ loc.fAddressType = AF_INET ;
+ }
- /* got a valid address from getsockname, create a GAddress object */
- address = GAddress_new();
- if (address == NULL)
- {
- m_error = GSOCK_MEMERR;
- return NULL;
- }
+ /* got a valid address from getsockname, create a GAddress object */
+ address = GAddress_new();
+ if (address == NULL)
+ {
+ m_error = GSOCK_MEMERR;
+ return NULL;
+ }
- err = _GAddress_translate_from(address, &loc);
- if (err != GSOCK_NOERROR)
- {
- GAddress_destroy(address);
- m_error = err;
- return NULL;
- }
+ err = _GAddress_translate_from(address, &loc);
+ if (err != GSOCK_NOERROR)
+ {
+ GAddress_destroy(address);
+ m_error = err;
+ return NULL;
+ }
- return address;
+ return address;
}
GAddress *GSocket::GetPeer()
{
- assert(this);
+ assert(this);
- /* try to get it from the m_peer var */
- if (m_peer)
- return GAddress_copy(m_peer);
+ /* try to get it from the m_peer var */
+ if (m_peer)
+ return GAddress_copy(m_peer);
- return NULL;
+ return NULL;
}
/* Server specific parts */
* Sets up this socket as a server. The local address must have been
* set with GSocket_SetLocal() before GSocket_SetServer() is called.
* Returns GSOCK_NOERROR on success, one of the following otherwise:
- *
+ *
* Error codes:
* GSOCK_INVSOCK - the socket is in use.
* GSOCK_INVADDR - the local address has not been set.
- * GSOCK_IOERR - low-level error.
+ * GSOCK_IOERR - low-level error.
*/
GSocketError GSocket::SetServer()
{
* GSOCK_TIMEDOUT - timeout, no incoming connections.
* GSOCK_WOULDBLOCK - the call would block and the socket is nonblocking.
* GSOCK_MEMERR - couldn't allocate memory.
- * GSOCK_IOERR - low-level error.
+ * GSOCK_IOERR - low-level error.
*/
GSocket *GSocket::WaitConnection()
{
m_oriented = false;
/* Create the socket */
-
+
// TODO
#if 0
m_endpoint = socket(m_local->m_realfamily, SOCK_DGRAM, 0);
* GSOCK_TIMEDOUT - timeout, the connection failed.
* GSOCK_WOULDBLOCK - connection in progress (nonblocking sockets only)
* GSOCK_MEMERR - couldn't allocate memory.
- * GSOCK_IOERR - low-level error.
+ * GSOCK_IOERR - low-level error.
*/
GSocketError GSocket::Connect(GSocketStream stream)
{
/* Create the socket */
#if TARGET_CARBON
- m_endpoint =
+ m_endpoint =
OTOpenEndpointInContext( OTCreateConfiguration( kTCPName) , 0 , &info , &err , NULL ) ;
#else
- m_endpoint =
+ m_endpoint =
OTOpenEndpoint( OTCreateConfiguration( kTCPName) , 0 , &info , &err ) ;
#endif
if ( m_endpoint == kOTInvalidEndpointRef || err != kOTNoError )
* is in blocking mode, we select() for the specified timeout
* checking for writability to see if the connection request
* completes.
- */
-
+ */
+
if ((err == kOTNoDataErr ) && (!m_non_blocking))
{
if (Output_Timeout() == GSOCK_TIMEDOUT)
ret = Recv_Stream(buffer, size);
else
ret = Recv_Dgram(buffer, size);
-
+
if (ret == -1)
{
if (errno == EWOULDBLOCK)
else
m_error = GSOCK_IOERR;
}
-
+
return ret;
}
int GSocket::Write(const char *buffer, int size)
-{
+{
int ret;
assert(this);
ret = Send_Stream(buffer, size);
else
ret = Send_Dgram(buffer, size);
-
+
if (ret == -1)
{
if (errno == EWOULDBLOCK)
m_detected &= ~GSOCK_OUTPUT_FLAG;
return -1;
}
-
+
return ret;
}
wxMacProcessNotifierEvents() ;
/*
state = OTGetEndpointState(m_endpoint);
-
+
if ( ( flags & GSOCK_INPUT_FLAG ) && ! ( m_detected & GSOCK_INPUT_FLAG ) )
{
size_t sz = 0 ;
* operation, there is still data available, the callback function will
* be called again.
* GSOCK_OUTPUT:
- * The socket is available for writing. That is, the next write call
+ * The socket is available for writing. That is, the next write call
* won't block. This event is generated only once, when the connection is
* first established, and then only if a call failed with GSOCK_WOULDBLOCK,
* when the output buffer empties again. This means that the app should
{
return -1 ;
}
-
+
// we simulate another read event if there are still bytes
if ( m_takesEvents )
{
{
address->m_family = GSOCK_INET;
address->m_host = kOTAnyInetAddress ;
-
+
return GSOCK_NOERROR;
}
address->m_host = INADDR_NONE ;
address->m_error = GSOCK_NOHOST;
return GSOCK_NOHOST;
- }
+ }
address->m_host = hinfo.addrs[0] ;
return GSOCK_NOERROR;
}
return GSOCK_NOERROR;
}
-struct service_entry
+struct service_entry
{
const char * name ;
unsigned short port ;
- const char * protocol ;
+ const char * protocol ;
} ;
typedef struct service_entry service_entry ;
service_entry gServices[] =
{
- { "http" , 80 , "tcp" }
+ { "http" , 80 , "tcp" }
} ;
GSocketError GAddress_INET_SetPortName(GAddress *address, const char *port,
assert(address != NULL);
CHECK_ADDRESS(address, INET, GSOCK_INVADDR);
address->m_port = port ;
-
+
return GSOCK_NOERROR;
}
InetDomainName name ;
if ( !GSocket_Verify_Inited() )
return GSOCK_IOERR ;
-
- assert(address != NULL);
+
+ assert(address != NULL);
CHECK_ADDRESS(address, INET, GSOCK_INVADDR);
OTInetAddressToName( gInetSvcRef , address->m_host , name ) ;
unsigned long GAddress_INET_GetHostAddress(GAddress *address)
{
- assert(address != NULL);
- CHECK_ADDRESS(address, INET, 0);
+ assert(address != NULL);
+ CHECK_ADDRESS(address, INET, 0);
return ntohl(address->m_host);
}
unsigned short GAddress_INET_GetPort(GAddress *address)
{
- assert(address != NULL);
- CHECK_ADDRESS(address, INET, 0);
+ assert(address != NULL);
+ CHECK_ADDRESS(address, INET, 0);
return address->m_port;
}
{
if ( m_takesEvents )
return ;
-
+
{
OTResult state ;
m_takesEvents = true ;
state = OTGetEndpointState(m_endpoint);
-
+
{
OTByteCount sz = 0 ;
OTCountDataBytes( m_endpoint , &sz ) ;
Microseconds(&start);
now = start ;
m_takesEvents = false ;
-
+
while( (now.hi * 4294967296.0 + now.lo) - (start.hi * 4294967296.0 + start.lo) < m_timeout * 1000.0 )
{
OTResult state ;
OTByteCount sz = 0 ;
state = OTGetEndpointState(m_endpoint);
-
+
OTCountDataBytes( m_endpoint , &sz ) ;
if ( state == T_INCON || sz > 0 )
{
m_takesEvents = formerTakesEvents ;
return GSOCK_NOERROR;
}
- Microseconds(&now);
+ Microseconds(&now);
}
m_takesEvents = formerTakesEvents ;
m_error = GSOCK_TIMEDOUT;
Microseconds(&start);
now = start ;
m_takesEvents = false ;
-
+
while( (now.hi * 4294967296.0 + now.lo) - (start.hi * 4294967296.0 + start.lo) < m_timeout * 1000.0 )
{
OTResult state ;
state = OTGetEndpointState(m_endpoint);
-
+
if ( state == T_DATAXFER || state == T_INREL )
{
m_takesEvents = formerTakesEvents ;
return GSOCK_NOERROR;
}
- Microseconds(&now);
+ Microseconds(&now);
}
m_takesEvents = formerTakesEvents ;
m_error = GSOCK_TIMEDOUT;
* operation, there is still data available, the callback function will
* be called again.
* GSOCK_OUTPUT:
- * The socket is available for writing. That is, the next write call
+ * The socket is available for writing. That is, the next write call
* won't block. This event is generated only once, when the connection is
* first established, and then only if a call failed with GSOCK_WOULDBLOCK,
* when the output buffer empties again. This means that the app should
void _GSocket_Internal_Proc(unsigned long e , void* d )
{
-
- GSocket * socket = (GSocket*) d ;
- OTEventCode ev = (OTEventCode) e ;
- GSocketEvent event;
- GSocketEvent event2;
- GSocketCallback cback;
- char *data;
- GSocketCallback cback2;
- char *data2;
-
- if ( !socket )
- return ;
+ GSocket *socket = (GSocket*) d ;
+
+ if ( !socket )
+ return ;
+
+ OTEventCode ev = (OTEventCode) e ;
+ GSocketEvent event;
+ GSocketEvent event2;
+ GSocketCallback cback;
+ char *data;
+ GSocketCallback cback2;
+ char *data2;
+
event = GSOCK_MAX_EVENT ;
event2 = GSOCK_MAX_EVENT ;
cback = NULL;
* destroyed) and for safety, check that the m_endpoint field
* is what we expect it to be.
*/
- if ((socket != NULL) && (socket->m_takesEvents))
+ if ( /* (socket != NULL) && */ (socket->m_takesEvents))
{
switch (ev)
{
event2 = GSOCK_OUTPUT ;
{
TCall retCall;
-
+
retCall.addr.buf = NULL;
retCall.addr.maxlen = 0;
retCall.opt.buf = NULL;
_wxMenuAt(const wxMenuList &menuList, size_t pos)
{
wxMenuList::compatibility_iterator menuIter = menuList.GetFirst();
-
+
while (pos-- > 0) menuIter = menuIter->GetNext();
-
+
return menuIter->GetData() ;
}
void wxMenu::Init()
{
- m_doBreak = FALSE;
+ m_doBreak = false;
m_startRadioGroup = -1;
// create the menu
wxAssociateMenuWithMacMenu( (MenuRef)m_hMenu , this ) ;
// if we have a title, insert it in the beginning of the menu
- if ( !!m_title )
+ if ( !m_title.empty() )
{
Append(idMenuTitle, m_title) ;
AppendSeparator() ;
{
GetMenuBar()->Refresh();
}
- return TRUE ;
+ return true ;
}
void wxMenu::EndRadioGroup()
{
wxCHECK_MSG( item, NULL, _T("NULL item in wxMenu::DoAppend") );
- bool check = FALSE;
+ bool check = false;
if ( item->GetKind() == wxITEM_RADIO )
{
item->SetRadioGroupEnd(m_startRadioGroup);
// ensure that we have a checked item in the radio group
- check = TRUE;
+ check = true;
}
else // extend the current radio group
{
if ( check )
{
// check the item initially
- item->Check(TRUE);
+ item->Check(true);
}
return item;
void wxMenu::SetTitle(const wxString& label)
{
- m_title = label ;
+ m_title = label ;
UMASetMenuTitle(MAC_WXHMENU(m_hMenu) , label , wxFont::GetDefaultEncoding() ) ;
}
+
bool wxMenu::ProcessCommand(wxCommandEvent & event)
{
- bool processed = FALSE;
+ bool processed = false;
// Try the menu's event handler
- if ( !processed && GetEventHandler())
+ if ( /* !processed && */ GetEventHandler())
{
processed = GetEventHandler()->ProcessEvent(event);
}
( UMAGetSystemVersion() >= 0x1000 && (
item->GetId() == wxApp::s_macPreferencesMenuItemId ||
item->GetId() == wxApp::s_macExitMenuItemId ) ) )
-
+
{
ChangeMenuItemAttributes( MAC_WXHMENU( GetHMenu() ),
pos + 1, kMenuItemAttrHidden, 0 );
// clean-up the help menu before adding new items
static MenuHandle mh = NULL ;
-
+
if ( mh != NULL )
{
MenuItemIndex firstUserHelpMenuItem ;
else
{
mh = NULL ;
- }
+ }
}
#if TARGET_CARBON
if ( UMAGetSystemVersion() >= 0x1000 && wxApp::s_macPreferencesMenuItemId)
{
mh = NULL ;
break ;
- }
+ }
}
}
if ( item->IsSeparator() )
{
wxMenu *menuOld = wxMenuBarBase::Replace(pos, menu, title);
if ( !menuOld )
- return FALSE;
+ return false;
m_titles[pos] = title;
if ( IsAttached() )
bool wxMenuBar::Insert(size_t pos, wxMenu *menu, const wxString& title)
{
if ( !wxMenuBarBase::Insert(pos, menu, title) )
- return FALSE;
+ return false;
m_titles.Insert(title, pos);
if (m_invokingWindow)
wxMenubarSetInvokingWindow( menu, m_invokingWindow );
- return TRUE;
+ return true;
}
wxMenu *wxMenuBar::Remove(size_t pos)
bool wxMenuBar::Append(wxMenu *menu, const wxString& title)
{
WXHMENU submenu = menu ? menu->GetHMenu() : 0;
- wxCHECK_MSG( submenu, FALSE, wxT("can't append invalid menu to menubar") );
+ wxCHECK_MSG( submenu, false, wxT("can't append invalid menu to menubar") );
if ( !wxMenuBarBase::Append(menu, title) )
- return FALSE;
+ return false;
m_titles.Add(title);
if (m_invokingWindow)
wxMenubarSetInvokingWindow( menu, m_invokingWindow );
- return TRUE;
+ return true;
}
static void wxMenubarUnsetInvokingWindow( wxMenu *menu )
m_refData = new wxMetafileRefData;
M_METAFILEDATA->m_metafile = 0;
- wxASSERT_MSG( file.IsEmpty() , wxT("no file based metafile support yet") ) ;
+ wxASSERT_MSG( file.empty() , wxT("no file based metafile support yet") ) ;
/*
if (!file.IsNull() && (file.Cmp("") == 0))
M_METAFILEDATA->m_metafile = (WXHANDLE) GetMetaFile(file);
{
}
-bool wxMetaFile::Ok() const
-{
- return (M_METAFILEDATA && (M_METAFILEDATA->m_metafile != 0));
+bool wxMetaFile::Ok() const
+{
+ return (M_METAFILEDATA && (M_METAFILEDATA->m_metafile != 0));
}
-WXHMETAFILE wxMetaFile::GetHMETAFILE() const
-{
- return (WXHMETAFILE) M_METAFILEDATA->m_metafile;
+WXHMETAFILE wxMetaFile::GetHMETAFILE() const
+{
+ return (WXHMETAFILE) M_METAFILEDATA->m_metafile;
}
bool wxMetaFile::SetClipboard(int width, int height)
{
+ bool success = true;
+
#if wxUSE_DRAG_AND_DROP
//TODO finishi this port , we need the data obj first
if (!m_refData)
- return FALSE;
-
+ return false;
+
bool alreadyOpen=wxTheClipboard->IsOpened() ;
if (!alreadyOpen)
{
}
wxDataObject *data =
new wxMetafileDataObject( *this) ;
- bool success = wxTheClipboard->SetData(data);
- if (!alreadyOpen)
+ success = wxTheClipboard->SetData(data);
+ if (!alreadyOpen)
wxTheClipboard->Close();
- return (bool) success;
#endif
- return TRUE ;
+
+ return success;
}
void wxMetafile::SetHMETAFILE(WXHMETAFILE mf)
{
UnRef() ;
-
+
m_refData = new wxMetafileRefData;
M_METAFILEDATA->m_metafile = (PicHandle) mf;
bool wxMetaFile::Play(wxDC *dc)
{
if (!m_refData)
- return FALSE;
-
+ return false;
+
if (!dc->Ok() )
- return FALSE;
-
+ return false;
+
{
#if wxMAC_USE_CORE_GRAPHICS
QDPictRef cgPictRef = M_METAFILEDATA->m_qdPictRef ;
CGContextRef cg = ((wxMacCGContext*)(dc->GetGraphicContext()))->GetNativeContext() ;
CGRect bounds = QDPictGetBounds( cgPictRef ) ;
- CGContextSaveGState(cg);
+ CGContextSaveGState(cg);
CGContextTranslateCTM(cg, 0 , bounds.size.width );
CGContextScaleCTM(cg, 1, -1);
QDPictDrawToCGContext( cg , bounds , cgPictRef ) ;
DrawPicture( pict , &(**pict).picFrame ) ;
#endif
}
- return TRUE;
+ return true;
}
wxSize wxMetaFile::GetSize() const
const wxString& WXUNUSED(description) )
{
wxASSERT_MSG( width == 0 || height == 0 , _T("no arbitration of metafilesize supported") ) ;
- wxASSERT_MSG( filename.IsEmpty() , _T("no file based metafile support yet")) ;
-
+ wxASSERT_MSG( filename.empty() , _T("no file based metafile support yet")) ;
+
m_metaFile = new wxMetaFile(filename) ;
#if wxMAC_USE_CORE_GRAPHICS
#else
Rect r={0,0,height,width} ;
-
+
RectRgn( (RgnHandle) m_macBoundaryClipRgn , &r ) ;
CopyRgn( (RgnHandle) m_macBoundaryClipRgn , (RgnHandle) m_macCurrentClipRgn ) ;
m_metaFile->SetHMETAFILE( (WXHMETAFILE) OpenPicture( &r ) ) ;
- ::GetPort( (GrafPtr*) &m_macPort ) ;
- m_ok = TRUE ;
+ ::GetPort( (GrafPtr*) &m_macPort ) ;
+ m_ok = true ;
#endif
- SetMapMode(wxMM_TEXT);
+ SetMapMode(wxMM_TEXT);
}
wxMetaFileDC::~wxMetaFileDC()
{
int major,minor;
wxGetOsVersion( &major, &minor );
-
+
switch( index )
{
case wxSYS_COLOUR_SCROLLBAR :
case wxSYS_COLOUR_GRAYTEXT:
return wxColor( 0xCC , 0xCC , 0xCC ) ;
break ;
-
+
case wxSYS_COLOUR_3DDKSHADOW:
return wxColor( 0x44 , 0x44 , 0x44 ) ;
break ;
}
break ;
case wxSYS_COLOUR_INFOBK :
- case wxSYS_COLOUR_APPWORKSPACE:
+ case wxSYS_COLOUR_APPWORKSPACE:
return *wxWHITE ;
break ;
case wxSYS_COLOUR_MENUHILIGHT:
// TODO
return *wxBLACK;
-
+
case wxSYS_COLOUR_MAX:
wxFAIL_MSG( _T("unknown system colour index") );
break ;
case wxSYS_DEFAULT_GUI_FONT :
{
return *wxSMALL_FONT ;
- } ;
+ } ;
break ;
- case wxSYS_OEM_FIXED_FONT :
- case wxSYS_ANSI_FIXED_FONT :
- case wxSYS_SYSTEM_FIXED_FONT :
+
default :
- {
- return *wxNORMAL_FONT ;
- } ;
break ;
-
}
return *wxNORMAL_FONT;
}
case wxSYS_MOUSE_BUTTONS:
// we emulate a two button mouse (ctrl + click = right button )
return 2;
-
+
// TODO case wxSYS_BORDER_X:
// TODO case wxSYS_BORDER_Y:
// TODO case wxSYS_CURSOR_X:
// TODO case wxSYS_DRAG_Y:
// TODO case wxSYS_EDGE_X:
// TODO case wxSYS_EDGE_Y:
-
+
case wxSYS_HSCROLL_ARROW_X:
return 16;
case wxSYS_HSCROLL_ARROW_Y:
return 16;
case wxSYS_HTHUMB_X:
return 16;
-
+
// TODO case wxSYS_ICON_X:
// TODO case wxSYS_ICON_Y:
// TODO case wxSYS_ICONSPACING_X:
case wxSYS_SCREEN_Y:
wxDisplaySize(NULL, &value);
return value;
-
+
// TODO case wxSYS_FRAMESIZE_X:
// TODO case wxSYS_FRAMESIZE_Y:
// TODO case wxSYS_SMALLICON_X:
// TODO case wxSYS_SMALLICON_Y:
-
+
case wxSYS_HSCROLL_Y:
return 16;
case wxSYS_VSCROLL_X:
return 16;
case wxSYS_VTHUMB_Y:
return 16;
-
+
// TODO case wxSYS_CAPTION_Y:
// TODO case wxSYS_MENU_Y:
// TODO case wxSYS_NETWORK_PRESENT:
-
+
case wxSYS_PENWINDOWS_PRESENT:
return 0;
-
+
// TODO case wxSYS_SHOW_SOUNDS:
-
+
case wxSYS_SWAP_BUTTONS:
return 0;
default:
- return -1; // unsupported metric
+ break; // unsupported metric
}
- return 0;
+ return -1;
}
bool wxSystemSettingsNative::HasFeature(wxSystemFeature index)
{
switch (index)
{
- case wxSYS_CAN_ICONIZE_FRAME:
+ case wxSYS_CAN_ICONIZE_FRAME:
case wxSYS_CAN_DRAW_FRAME_DECORATIONS:
- return TRUE;
-
+ return true;
+
default:
- return FALSE;
+ return false;
}
}
// we have to catch these events on the toplevel window level, as controls don't get the
// raw mouse events anymore
-
+
{ kEventClassMouse , kEventMouseDown } ,
{ kEventClassMouse , kEventMouseUp } ,
{ kEventClassMouse , kEventMouseWheelMoved } ,
wxWindow* focus = wxWindow::DoFindFocus();
if ( focus == NULL )
return result ;
-
+
unsigned char charCode ;
- wxChar uniChar = 0 ;
+ wxChar uniChar = 0 ;
UInt32 keyCode ;
UInt32 modifiers ;
Point point ;
if ( GetEventParameter( event, kEventParamKeyUnicodes, typeUnicodeText, NULL, 0 , &dataSize , NULL ) == noErr )
{
UniChar buf[2] ;
-
+
UniChar* charBuf = buf ;
-
+
if ( dataSize > 4 )
charBuf = new UniChar[ dataSize / sizeof( UniChar) ] ;
GetEventParameter( event, kEventParamKeyUnicodes, typeUnicodeText, NULL, dataSize , NULL , charBuf ) ;
#else
wxMBConvUTF16BE converter ;
converter.MB2WC( &uniChar , (const char*)charBuf , 1 ) ;
-#endif
+#endif
if ( dataSize > 4 )
delete[] charBuf ;
}
GetEventParameter(event, kEventParamKeyModifiers, typeUInt32, NULL, sizeof(UInt32), NULL, &modifiers);
GetEventParameter( event, kEventParamMouseLocation, typeQDPoint, NULL,
sizeof( Point ), NULL, &point );
-
+
UInt32 message = (keyCode << 8) + charCode;
switch( GetEventKind( event ) )
{
WXEVENTREF formerEvent = wxTheApp->MacGetCurrentEvent() ;
WXEVENTHANDLERCALLREF formerHandler = wxTheApp->MacGetCurrentEventHandlerCallRef() ;
wxTheApp->MacSetCurrentEvent( event , handler ) ;
- if ( (focus != NULL) && wxTheApp->MacSendKeyDownEvent(
+ if ( /* focus && */ wxTheApp->MacSendKeyDownEvent(
focus , message , modifiers , when , point.h , point.v , uniChar ) )
{
result = noErr ;
}
break ;
case kEventRawKeyUp :
- if ( (focus != NULL) && wxTheApp->MacSendKeyUpEvent(
+ if ( /* focus && */ wxTheApp->MacSendKeyUpEvent(
focus , message , modifiers , when , point.h , point.v , uniChar ) )
{
result = noErr ;
event.SetTimestamp(when);
event.SetEventObject(focus);
- if ( focus && (modifiers ^ wxApp::s_lastModifiers ) & controlKey )
+ if ( /* focus && */ (modifiers ^ wxApp::s_lastModifiers ) & controlKey )
{
event.m_keyCode = WXK_CONTROL ;
event.SetEventType( ( modifiers & controlKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ;
focus->GetEventHandler()->ProcessEvent( event ) ;
}
- if ( focus && (modifiers ^ wxApp::s_lastModifiers ) & shiftKey )
+ if ( /* focus && */ (modifiers ^ wxApp::s_lastModifiers ) & shiftKey )
{
event.m_keyCode = WXK_SHIFT ;
event.SetEventType( ( modifiers & shiftKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ;
focus->GetEventHandler()->ProcessEvent( event ) ;
}
- if ( focus && (modifiers ^ wxApp::s_lastModifiers ) & optionKey )
+ if ( /* focus && */ (modifiers ^ wxApp::s_lastModifiers ) & optionKey )
{
event.m_keyCode = WXK_ALT ;
event.SetEventType( ( modifiers & optionKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ;
focus->GetEventHandler()->ProcessEvent( event ) ;
}
- if ( focus && (modifiers ^ wxApp::s_lastModifiers ) & cmdKey )
+ if ( /* focus && */ (modifiers ^ wxApp::s_lastModifiers ) & cmdKey )
{
event.m_keyCode = WXK_COMMAND ;
event.SetEventType( ( modifiers & cmdKey ) ? wxEVT_KEY_DOWN : wxEVT_KEY_UP ) ;
}
wxApp::s_lastModifiers = modifiers ;
}
- break ;
+ break ;
}
return result ;
UInt32 modifiers = cEvent.GetParameter<UInt32>(kEventParamKeyModifiers, typeUInt32) ;
Point screenMouseLocation = cEvent.GetParameter<Point>(kEventParamMouseLocation) ;
- // this parameter are not given for all events
+ // this parameter are not given for all events
EventMouseButton button = 0 ;
- UInt32 clickCount = 0 ;
+ UInt32 clickCount = 0 ;
cEvent.GetParameter<EventMouseButton>(kEventParamMouseButton, typeMouseButton , &button) ;
cEvent.GetParameter<UInt32>(kEventParamClickCount, typeUInt32 , &clickCount ) ;
wxevent.m_altDown = modifiers & optionKey;
wxevent.m_metaDown = modifiers & cmdKey;
wxevent.SetTimestamp( cEvent.GetTicks() ) ;
- // a control click is interpreted as a right click
+ // a control click is interpreted as a right click
if ( button == kEventMouseButtonPrimary && (modifiers & controlKey) )
{
button = kEventMouseButtonSecondary ;
}
-
+
// otherwise we report double clicks by connecting a left click with a ctrl-left click
if ( clickCount > 1 && button != lastButton )
clickCount = 1 ;
-
+
// we must make sure that our synthetic 'right' button corresponds in
// mouse down, moved and mouse up, and does not deliver a right down and left up
-
+
if ( cEvent.GetKind() == kEventMouseDown )
lastButton = button ;
-
+
if ( button == 0 )
- lastButton = 0 ;
+ lastButton = 0 ;
else if ( lastButton )
button = lastButton ;
default :
wxevent.SetEventType(wxEVT_MOTION ) ;
break ;
- }
+ }
}
ControlRef wxMacFindSubControl( wxTopLevelWindowMac* toplevelWindow, Point location , ControlRef superControl , ControlPartCode *outPart )
if ( superControl )
{
UInt16 childrenCount = 0 ;
- OSStatus err = CountSubControls( superControl , &childrenCount ) ;
+ OSStatus err = CountSubControls( superControl , &childrenCount ) ;
if ( err == errControlIsNotEmbedder )
return NULL ;
wxASSERT_MSG( err == noErr , wxT("Unexpected error when accessing subcontrols") ) ;
-
+
for ( UInt16 i = childrenCount ; i >=1 ; --i )
{
ControlHandle sibling ;
err = GetIndexedSubControl( superControl , i , & sibling ) ;
if ( err == errControlIsNotEmbedder )
return NULL ;
-
+
wxASSERT_MSG( err == noErr , wxT("Unexpected error when accessing subcontrols") ) ;
if ( IsControlVisible( sibling ) )
{
testLocation.h -= r.left ;
testLocation.v -= r.top ;
}
-
+
*outPart = TestControl( sibling , testLocation ) ;
return sibling ;
}
pascal OSStatus wxMacTopLevelMouseEventHandler( EventHandlerCallRef handler , EventRef event , void *data )
{
wxTopLevelWindowMac* toplevelWindow = (wxTopLevelWindowMac*) data ;
-
+
OSStatus result = eventNotHandledErr ;
wxMacCarbonEvent cEvent( event ) ;
-
+
Point screenMouseLocation = cEvent.GetParameter<Point>(kEventParamMouseLocation) ;
Point windowMouseLocation = screenMouseLocation ;
wxWindow* currentMouseWindow = NULL ;
ControlRef control = NULL ;
-
+
if ( window )
{
QDGlobalToLocalPoint( UMAGetWindowPort(window ) , &windowMouseLocation ) ;
if ( currentMouseWindow == NULL && cEvent.GetKind() == kEventMouseMoved )
{
#if wxUSE_TOOLBAR
- // for wxToolBar to function we have to send certaint events to it
- // instead of its children (wxToolBarTools)
+ // for wxToolBar to function we have to send certaint events to it
+ // instead of its children (wxToolBarTools)
ControlRef parent ;
GetSuperControl(control, &parent );
wxWindow *wxParent = wxFindControlFromMacControl( parent ) ;
#endif
}
}
- }
+ }
}
-
+
wxMouseEvent wxevent(wxEVT_LEFT_DOWN);
SetupMouseEvent( wxevent , cEvent ) ;
// handle all enter / leave events
-
+
if ( currentMouseWindow != g_MacLastWindow )
{
if ( g_MacLastWindow )
}
g_MacLastWindow = currentMouseWindow ;
}
-
+
if ( windowPart == inMenuBar )
{
// special case menu bar, as we are having a low-level runloop we must do it ourselves
wxWindow *currentMouseWindowParent = currentMouseWindow->GetParent();
currentMouseWindow->ScreenToClient( &wxevent.m_x , &wxevent.m_y ) ;
-
+
wxevent.SetEventObject( currentMouseWindow ) ;
// make tooltips current
-
+
#if wxUSE_TOOLTIPS
if ( wxevent.GetEventType() == wxEVT_MOTION
|| wxevent.GetEventType() == wxEVT_ENTER_WINDOW
|| wxevent.GetEventType() == wxEVT_LEAVE_WINDOW )
wxToolTip::RelayEvent( currentMouseWindow , wxevent);
- #endif // wxUSE_TOOLTIPS
+ #endif // wxUSE_TOOLTIPS
if ( currentMouseWindow->GetEventHandler()->ProcessEvent(wxevent) )
{
- if ((currentMouseWindowParent != NULL) &&
+ if ((currentMouseWindowParent != NULL) &&
(currentMouseWindowParent->GetChildren().Find(currentMouseWindow) == NULL))
currentMouseWindow = NULL;
-
+
result = noErr;
}
else
// if built-in find control is finding the wrong control (ie static box instead of overlaid
// button, we cannot let the standard handler do its job, but must handle manually
- if ( ( cEvent.GetKind() == kEventMouseDown )
+ if ( ( cEvent.GetKind() == kEventMouseDown )
#ifdef __WXMAC_OSX__
- &&
- (FindControlUnderMouse(windowMouseLocation , window , &dummyPart) !=
- wxMacFindControlUnderMouse( toplevelWindow , windowMouseLocation , window , &dummyPart ) )
+ &&
+ (FindControlUnderMouse(windowMouseLocation , window , &dummyPart) !=
+ wxMacFindControlUnderMouse( toplevelWindow , windowMouseLocation , window , &dummyPart ) )
#endif
)
{
- if ( currentMouseWindow->MacIsReallyEnabled() )
+ if ( currentMouseWindow->MacIsReallyEnabled() )
{
EventModifiers modifiers = cEvent.GetParameter<EventModifiers>(kEventParamKeyModifiers, typeUInt32) ;
Point clickLocation = windowMouseLocation ;
HandleControlClick( (ControlRef) currentMouseWindow->GetHandle() , clickLocation ,
modifiers , (ControlActionUPP ) -1 ) ;
-
- if ((currentMouseWindowParent != NULL) &&
+
+ if ((currentMouseWindowParent != NULL) &&
(currentMouseWindowParent->GetChildren().Find(currentMouseWindow) == NULL))
currentMouseWindow = NULL;
}
}
// update cursor
-
+
wxWindow* cursorTarget = currentMouseWindow ;
wxPoint cursorPoint( wxevent.m_x , wxevent.m_y ) ;
OSStatus result = eventNotHandledErr ;
wxMacCarbonEvent cEvent( event ) ;
-
+
// WindowRef windowRef = cEvent.GetParameter<WindowRef>(kEventParamDirectObject) ;
wxTopLevelWindowMac* toplevelWindow = (wxTopLevelWindowMac*) data ;
// we still sending an eventNotHandledErr in order to allow for default processing
break ;
}
- case kEventWindowShown :
- toplevelWindow->Refresh() ;
- result = noErr ;
- break ;
+ case kEventWindowShown :
+ {
+ toplevelWindow->Refresh() ;
+ result = noErr ;
+ break ;
+ }
case kEventWindowClose :
toplevelWindow->Close() ;
result = noErr ;
{
#if wxUSE_STATUSBAR
frame->PositionStatusBar();
- #endif
+ #endif
#if wxUSE_TOOLBAR
frame->PositionToolBar();
- #endif
+ #endif
}
wxSizeEvent event( r.GetSize() , toplevelWindow->GetId() ) ;
// all (Mac) rects are in content area coordinates, all wxRects in structure coordinates
int left , top , right , bottom ;
toplevelWindow->MacGetContentAreaInset( left , top , right , bottom ) ;
- wxRect r( newRect.left - left , newRect.top - top ,
+ wxRect r( newRect.left - left , newRect.top - top ,
newRect.right - newRect.left + left + right , newRect.bottom - newRect.top + top + bottom ) ;
// this is a EVT_SIZING not a EVT_SIZE type !
wxSizeEvent wxevent( r , toplevelWindow->GetId() ) ;
toplevelWindow->wxWindowMac::MacSuperChangedPosition() ; // like this only children will be notified
}
- result = noErr ;
+ result = noErr ;
break ;
}
default :
wxTopLevelWindowMac *wxTopLevelWindowMac::s_macDeactivateWindow = NULL;
-typedef struct
+typedef struct
{
wxPoint m_position ;
- wxSize m_size ;
+ wxSize m_size ;
} FullScreenData ;
void wxTopLevelWindowMac::Init()
{
m_iconized =
- m_maximizeOnShow = FALSE;
+ m_maximizeOnShow = false;
m_macWindow = NULL ;
-#if TARGET_API_MAC_OSX
+#if TARGET_API_MAC_OSX
if ( UMAGetSystemVersion() >= 0x1030 )
- {
- m_macUsesCompositing = TRUE;
+ {
+ m_macUsesCompositing = true;
}
else
#endif
{
- m_macUsesCompositing = FALSE;
+ m_macUsesCompositing = false;
}
m_macEventHandler = NULL ;
m_macFullScreenData = NULL ;
MacCreateRealWindow( title, pos , size , MacRemoveBordersFromStyle(style) , name ) ;
SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_3DFACE));
-
+
if (GetExtraStyle() & wxFRAME_EX_METAL)
MacSetMetalAppearance(true);
if ( parent )
parent->AddChild(this);
- return TRUE;
+ return true;
}
wxTopLevelWindowMac::~wxTopLevelWindowMac()
if ( wxModelessWindows.Find(this) )
wxModelessWindows.DeleteObject(this);
-
+
FullScreenData *data = (FullScreenData *) m_macFullScreenData ;
delete data ;
m_macFullScreenData = NULL ;
wxMacPortStateHelper help( (GrafPtr) GetWindowPort( (WindowRef) m_macWindow) ) ;
wxMacWindowClipper clip (this);
#endif
- if ( !IsWindowInStandardState( (WindowRef)m_macWindow, NULL, NULL) )
+ if ( !IsWindowInStandardState( (WindowRef)m_macWindow, NULL, NULL) )
{
Rect rect;
GetWindowBounds((WindowRef)m_macWindow, kWindowGlobalPortRgn, &rect);
void wxTopLevelWindowMac::Restore()
{
- if ( IsMaximized() )
+ if ( IsMaximized() )
Maximize(false);
- else if ( IsIconized() )
+ else if ( IsIconized() )
Iconize(false);
}
}
void wxTopLevelWindowMac::MacSetBackgroundBrush( const wxBrush &brush )
-{
+{
wxTopLevelWindowBase::MacSetBackgroundBrush( brush ) ;
if ( m_macBackgroundBrush.Ok() && m_macBackgroundBrush.GetStyle() != wxTRANSPARENT && m_macBackgroundBrush.MacGetBrushKind() == kwxMacBrushTheme )
}
}
-void wxTopLevelWindowMac::MacInstallTopLevelWindowEventHandler()
+void wxTopLevelWindowMac::MacInstallTopLevelWindowEventHandler()
{
if ( m_macEventHandler != NULL )
{
OSStatus err = noErr ;
SetName(name);
m_windowStyle = style;
- m_isShown = FALSE;
+ m_isShown = false;
// create frame.
int x = (int)pos.x;
int y = (int)pos.y;
-
+
wxRect display = wxGetClientDisplayRect() ;
if ( x == wxDefaultPosition.x )
x = display.x ;
-
+
if ( y == wxDefaultPosition.y )
y = display.y ;
{
wclass = kDrawerWindowClass;
// we must force compositing on a drawer
- m_macUsesCompositing = TRUE ;
+ m_macUsesCompositing = true ;
}
#endif //10.2 and up
else
group = GetWindowGroupOfClass(kUtilityWindowClass) ;
}
-#if TARGET_API_MAC_OSX
+#if TARGET_API_MAC_OSX
if ( m_macUsesCompositing )
attr |= kWindowCompositingAttribute;
#endif
-
+
if ( HasFlag(wxFRAME_SHAPED) )
{
WindowDefSpec customWindowDefSpec;
wxCHECK_RET( err == noErr, wxT("Mac OS error when trying to create new window") );
// the create commands are only for content rect, so we have to set the size again as
- // structure bounds
+ // structure bounds
SetWindowBounds( (WindowRef) m_macWindow , kWindowStructureRgn , &theBoundsRect ) ;
wxAssociateWinWithMacWindow( (WindowRef) m_macWindow , this ) ;
UMASetWTitle( (WindowRef) m_macWindow , title , m_font.GetEncoding() ) ;
m_peer = new wxMacControl(this , true /*isRootControl*/) ;
#if TARGET_API_MAC_OSX
-
+
if ( m_macUsesCompositing )
{
- // There is a bug in 10.2.X for ::GetRootControl returning the window view instead of
+ // There is a bug in 10.2.X for ::GetRootControl returning the window view instead of
// the content view, so we have to retrieve it explicitly
- HIViewFindByID( HIViewGetRoot( (WindowRef) m_macWindow ) , kHIViewWindowContentID ,
+ HIViewFindByID( HIViewGetRoot( (WindowRef) m_macWindow ) , kHIViewWindowContentID ,
m_peer->GetControlRefAddr() ) ;
if ( !m_peer->Ok() )
{
bool wxTopLevelWindowMac::Show(bool show)
{
if ( !wxTopLevelWindowBase::Show(show) )
- return FALSE;
+ return false;
if (show)
{
- #if wxUSE_SYSTEM_OPTIONS //code contributed by Ryan Wilcox December 18, 2003
+ #if wxUSE_SYSTEM_OPTIONS //code contributed by Ryan Wilcox December 18, 2003
if ( (wxSystemOptions::HasOption(wxMAC_WINDOW_PLAIN_TRANSITION) ) && ( wxSystemOptions::GetOptionInt( wxMAC_WINDOW_PLAIN_TRANSITION ) == 1) )
{
::ShowWindow( (WindowRef)m_macWindow );
MacPropagateVisibilityChanged() ;
- return TRUE ;
+ return true ;
}
bool wxTopLevelWindowMac::ShowFullScreen(bool show, long style)
-{
+{
if ( show )
{
FullScreenData *data = (FullScreenData *)m_macFullScreenData ;
delete data ;
data = new FullScreenData() ;
-
+
m_macFullScreenData = data ;
data->m_position = GetPosition() ;
data->m_size = GetSize() ;
-
+
if ( style & wxFULLSCREEN_NOMENUBAR )
{
HideMenuBar() ;
wxRect client = wxGetClientDisplayRect() ;
int x, y, w, h ;
-
+
x = client.x ;
y = client.y ;
w = client.width ;
h = client.height ;
-
+
MacGetContentAreaInset( left , top , right , bottom ) ;
if ( style & wxFULLSCREEN_NOCAPTION )
delete data ;
m_macFullScreenData = NULL ;
}
- return FALSE;
+ return false;
}
-bool wxTopLevelWindowMac::IsFullScreen() const
-{
- return m_macFullScreenData != NULL ;
+bool wxTopLevelWindowMac::IsFullScreen() const
+{
+ return m_macFullScreenData != NULL ;
}
// we are still using coordinates of the content view, todo switch to structure bounds
if(height) *height = bounds.bottom - bounds.top ;
}
-void wxTopLevelWindowMac::MacSetMetalAppearance( bool set )
+void wxTopLevelWindowMac::MacSetMetalAppearance( bool set )
{
#if TARGET_API_MAC_OSX
wxASSERT_MSG( m_macUsesCompositing ,
wxT("Cannot set metal appearance on a non-compositing window") ) ;
-
- MacChangeWindowAttributes( set ? kWindowMetalAttribute : kWindowNoAttributes ,
+
+ MacChangeWindowAttributes( set ? kWindowMetalAttribute : kWindowNoAttributes ,
set ? kWindowNoAttributes : kWindowMetalAttribute ) ;
#endif
}
-bool wxTopLevelWindowMac::MacGetMetalAppearance() const
+bool wxTopLevelWindowMac::MacGetMetalAppearance() const
{
#if TARGET_API_MAC_OSX
return MacGetWindowAttributes() & kWindowMetalAttribute ;
#endif
}
-void wxTopLevelWindowMac::MacChangeWindowAttributes( wxUint32 attributesToSet , wxUint32 attributesToClear )
+void wxTopLevelWindowMac::MacChangeWindowAttributes( wxUint32 attributesToSet , wxUint32 attributesToClear )
{
ChangeWindowAttributes ( (WindowRef) m_macWindow , attributesToSet, attributesToClear ) ;
}
-wxUint32 wxTopLevelWindowMac::MacGetWindowAttributes() const
+wxUint32 wxTopLevelWindowMac::MacGetWindowAttributes() const
{
UInt32 attr = 0 ;
GetWindowAttributes((WindowRef) m_macWindow , &attr ) ;
return attr ;
}
-void wxTopLevelWindowMac::MacPerformUpdates()
+void wxTopLevelWindowMac::MacPerformUpdates()
{
#if TARGET_API_MAC_OSX
- if ( m_macUsesCompositing )
- {
+ if ( m_macUsesCompositing )
+ {
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3
- // for composited windows this also triggers a redraw of all
- // invalid views in the window
- if( UMAGetSystemVersion() >= 0x1030 )
- HIWindowFlush((WindowRef) m_macWindow) ;
- else
+ // for composited windows this also triggers a redraw of all
+ // invalid views in the window
+ if( UMAGetSystemVersion() >= 0x1030 )
+ HIWindowFlush((WindowRef) m_macWindow) ;
+ else
#endif
- {
- // the only way to trigger the redrawing on earlier systems is to call
- // ReceiveNextEvent
-
- EventRef currentEvent = (EventRef) wxTheApp->MacGetCurrentEvent() ;
- UInt32 currentEventClass = 0 ;
- UInt32 currentEventKind = 0 ;
- if ( currentEvent != NULL )
- {
- currentEventClass = ::GetEventClass( currentEvent ) ;
- currentEventKind = ::GetEventKind( currentEvent ) ;
- }
- if ( currentEventClass != kEventClassMenu )
- {
- // when tracking a menu, strange redraw errors occur if we flush now, so leave..
- EventRef theEvent;
- OSStatus status = noErr ;
- status = ReceiveNextEvent( 0 , NULL , kEventDurationNoWait , false , &theEvent ) ;
- }
- }
+ {
+ // the only way to trigger the redrawing on earlier systems is to call
+ // ReceiveNextEvent
+
+ EventRef currentEvent = (EventRef) wxTheApp->MacGetCurrentEvent() ;
+ UInt32 currentEventClass = 0 ;
+ UInt32 currentEventKind = 0 ;
+ if ( currentEvent != NULL )
+ {
+ currentEventClass = ::GetEventClass( currentEvent ) ;
+ currentEventKind = ::GetEventKind( currentEvent ) ;
+ }
+ if ( currentEventClass != kEventClassMenu )
+ {
+ // when tracking a menu, strange redraw errors occur if we flush now, so leave..
+ EventRef theEvent;
+ OSStatus status = noErr ;
+ status = ReceiveNextEvent( 0 , NULL , kEventDurationNoWait , false , &theEvent ) ;
+ }
+ }
}
else
#endif
{
- BeginUpdate( (WindowRef) m_macWindow ) ;
-
- RgnHandle updateRgn = NewRgn();
- if ( updateRgn )
- {
- GetPortVisibleRegion( GetWindowPort( (WindowRef)m_macWindow ), updateRgn );
- UpdateControls( (WindowRef)m_macWindow , updateRgn ) ;
- // if ( !EmptyRgn( updateRgn ) )
- // MacDoRedraw( updateRgn , 0 , true) ;
- DisposeRgn( updateRgn );
- }
- EndUpdate( (WindowRef)m_macWindow ) ;
- QDFlushPortBuffer( GetWindowPort( (WindowRef)m_macWindow ) , NULL ) ;
+ BeginUpdate( (WindowRef) m_macWindow ) ;
+
+ RgnHandle updateRgn = NewRgn();
+ if ( updateRgn )
+ {
+ GetPortVisibleRegion( GetWindowPort( (WindowRef)m_macWindow ), updateRgn );
+ UpdateControls( (WindowRef)m_macWindow , updateRgn ) ;
+ // if ( !EmptyRgn( updateRgn ) )
+ // MacDoRedraw( updateRgn , 0 , true) ;
+ DisposeRgn( updateRgn );
+ }
+ EndUpdate( (WindowRef)m_macWindow ) ;
+ QDFlushPortBuffer( GetWindowPort( (WindowRef)m_macWindow ) , NULL ) ;
}
}
bool wxTopLevelWindowMac::SetShape(const wxRegion& region)
{
- wxCHECK_MSG( HasFlag(wxFRAME_SHAPED), FALSE,
+ wxCHECK_MSG( HasFlag(wxFRAME_SHAPED), false,
_T("Shaped windows must be created with the wxFRAME_SHAPED style."));
// The empty region signifies that the shape should be removed from the
// Tell the window manager that the window has changed shape
ReshapeCustomWindow((WindowRef)MacGetWindowRef());
- return TRUE;
+ return true;
}
// ---------------------------------------------------------------------------
if (cachedRegion)
{
Rect windowRect;
- wxShapedMacWindowGetPos(window, &windowRect); //how big is the window
- CopyRgn(cachedRegion, rgn); //make a copy of our cached region
+ wxShapedMacWindowGetPos(window, &windowRect); // how big is the window
+ CopyRgn(cachedRegion, rgn); // make a copy of our cached region
OffsetRgn(rgn, windowRect.left, windowRect.top); // position it over window
- //MapRgn(rgn, &mMaskSize, &windowRect); //scale it to our actual window size
+ //MapRgn(rgn, &mMaskSize, &windowRect); //scale it to our actual window size
}
}
static RgnHandle tempRgn=nil;
if(!tempRgn)
- tempRgn=NewRgn();
+ tempRgn=NewRgn();
SetPt(&hitPoint,LoWord(param),HiWord(param));//get the point clicked
thisWindow->GetPeer()->GetRect( &controlBounds ) ;
}
}
-
+
if ( cEvent.GetParameter<RgnHandle>(kEventParamRgnHandle, &updateRgn) != noErr )
{
updateRgn = (RgnHandle) visRegion.GetWXHRGN() ;
OffsetRgn( allocatedRgn , -controlBounds.left , -controlBounds.top ) ;
// hide the given region by the new region that must be shifted
wxMacNativeToWindow( thisWindow , allocatedRgn ) ;
- updateRgn = allocatedRgn ;
+ updateRgn = allocatedRgn ;
}
else
{
if ( cEvent.GetParameter<CGContextRef>(kEventParamCGContextRef, &cgContext) != noErr )
{
wxASSERT( thisWindow->GetPeer()->IsCompositing() == false ) ;
-
+
// this parameter is not provided on non-composited windows
created = true ;
- // rest of the code expects this to be already transformed and clipped for local
+ // rest of the code expects this to be already transformed and clipped for local
CGrafPtr port = GetWindowPort( (WindowRef) thisWindow->MacGetTopLevelWindowRef() ) ;
Rect bounds ;
GetPortBounds( port , &bounds ) ;
CGContextTranslateCTM( cgContext , 0 , bounds.bottom - bounds.top ) ;
CGContextScaleCTM( cgContext , 1 , -1 ) ;
-
+
CGContextTranslateCTM( cgContext , controlBounds.left , controlBounds.top ) ;
-
+
/*
CGContextSetRGBFillColor( cgContext , 1.0 , 1.0 , 1.0 , 1.0 ) ;
- CGContextFillRect(cgContext , CGRectMake( 0 , 0 ,
- controlBounds.right - controlBounds.left ,
+ CGContextFillRect(cgContext , CGRectMake( 0 , 0 ,
+ controlBounds.right - controlBounds.left ,
controlBounds.bottom - controlBounds.top ) );
*/
break ;
case kEventClassService :
result = wxMacWindowServiceEventHandler( handler, event , data ) ;
+ break ;
default :
break ;
}
m_peer = NULL ;
m_frozenness = 0 ;
#if WXWIN_COMPATIBILITY_2_4
- m_backgroundTransparent = FALSE;
+ m_backgroundTransparent = false;
#endif
// as all windows are created with WS_VISIBLE style...
- m_isShown = TRUE;
+ m_isShown = true;
m_hScrollBar = NULL ;
m_vScrollBar = NULL ;
m_macBackgroundBrush = wxNullBrush ;
- m_macIsUserPane = TRUE;
+ m_macIsUserPane = true;
#if wxMAC_USE_CORE_GRAPHICS
m_cgContextRef = NULL ;
#endif
{
SendDestroyEvent();
- m_isBeingDeleted = TRUE;
+ m_isBeingDeleted = true;
MacInvalidateBorders() ;
long style,
const wxString& name)
{
- wxCHECK_MSG( parent, FALSE, wxT("can't create wxWindowMac without parent") );
+ wxCHECK_MSG( parent, false, wxT("can't create wxWindowMac without parent") );
if ( !CreateBase(parent, id, pos, size, style, wxDefaultValidator, name) )
- return FALSE;
+ return false;
m_windowVariant = parent->GetWindowVariant() ;
wxWindowCreateEvent event(this);
GetEventHandler()->AddPendingEvent(event);
- return TRUE;
+ return true;
}
-void wxWindowMac::MacChildAdded()
+void wxWindowMac::MacChildAdded()
{
if ( m_vScrollBar )
{
int& w, int& h , bool adjustOrigin ) const
{
bool isCompositing = MacGetTopLevelWindow()->MacUsesCompositing() ;
-
+
// the desired size, minus the border pixels gives the correct size of the control
x = (int)pos.x;
{
Rect bounds ;
m_peer->GetRect( &bounds ) ;
-
+
int x1 = bounds.left ;
int y1 = bounds.top ;
GetRegionBounds( rgn , &content ) ;
m_peer->GetRect( &structure ) ;
OffsetRect( &structure, -structure.left , -structure.top ) ;
-
+
left = content.left - structure.left ;
top = content.top - structure.top ;
right = structure.right - content.right ;
bool wxWindowMac::SetCursor(const wxCursor& cursor)
{
if (m_cursor == cursor)
- return FALSE;
+ return false;
if (wxNullCursor == cursor)
{
if ( ! wxWindowBase::SetCursor( *wxSTANDARD_CURSOR ) )
- return FALSE ;
+ return false ;
}
else
{
if ( ! wxWindowBase::SetCursor( cursor ) )
- return FALSE ;
+ return false ;
}
wxASSERT_MSG( m_cursor.Ok(),
m_cursor.MacInstall() ;
}
- return TRUE ;
+ return true ;
}
#if wxUSE_MENUS
menu->SetInvokingWindow(NULL);
- return TRUE;
+ return true;
}
#endif
#endif // wxUSE_TOOLTIPS
-void wxWindowMac::MacInvalidateBorders()
+void wxWindowMac::MacInvalidateBorders()
{
if ( m_peer == NULL )
return ;
bool vis = MacIsReallyShown() ;
if ( !vis )
return ;
-
+
int outerBorder = MacGetLeftBorderSize() ;
if ( m_peer->NeedsFocusRect() && m_peer->HasFocus() )
outerBorder += 4 ;
if ( outerBorder == 0 )
return ;
-
- // now we know that we have something to do at all
+
+ // now we know that we have something to do at all
// as the borders are drawn on the parent we have to properly invalidate all these areas
- RgnHandle updateInner = NewRgn() ,
+ RgnHandle updateInner = NewRgn() ,
updateOuter = NewRgn() ;
// this rectangle is in HIViewCoordinates under OSX and in Window Coordinates under Carbon
if ((m_maxWidth != -1) && (actualWidth > m_maxWidth))
actualWidth = m_maxWidth;
if ((m_maxHeight != -1) && (actualHeight > m_maxHeight))
- actualHeight = m_maxHeight;
+ actualHeight = m_maxHeight;
bool doMove = false ;
bool doResize = false ;
if ( doMove || doResize )
{
- // as the borders are drawn outside the native control, we adjust now
+ // as the borders are drawn outside the native control, we adjust now
- wxRect bounds( wxPoint( actualX + MacGetLeftBorderSize() ,actualY + MacGetTopBorderSize() ),
- wxSize( actualWidth - (MacGetLeftBorderSize() + MacGetRightBorderSize()) ,
+ wxRect bounds( wxPoint( actualX + MacGetLeftBorderSize() ,actualY + MacGetTopBorderSize() ),
+ wxSize( actualWidth - (MacGetLeftBorderSize() + MacGetRightBorderSize()) ,
actualHeight - (MacGetTopBorderSize() + MacGetBottomBorderSize()) ) ) ;
Rect r ;
}
MacInvalidateBorders() ;
-
+
m_cachedClippedRectValid = false ;
m_peer->SetRect( &r ) ;
-
+
wxWindowMac::MacSuperChangedPosition() ; // like this only children will be notified
MacInvalidateBorders() ;
{
bestsize.bottom = 16 ;
}
-#if wxUSE_SPINBTN
+#if wxUSE_SPINBTN
else if ( IsKindOf( CLASSINFO( wxSpinButton ) ) )
{
bestsize.bottom = 24 ;
}
-#endif // wxUSE_SPINBTN
+#endif // wxUSE_SPINBTN
else
{
// return wxWindowBase::DoGetBestSize() ;
{
bool former = MacIsReallyShown() ;
if ( !wxWindowBase::Show(show) )
- return FALSE;
+ return false;
// TODO use visibilityChanged Carbon Event for OSX
if ( m_peer )
}
if ( former != MacIsReallyShown() )
MacPropagateVisibilityChanged() ;
- return TRUE;
+ return true;
}
bool wxWindowMac::Enable(bool enable)
wxASSERT( m_peer->Ok() ) ;
bool former = MacIsReallyEnabled() ;
if ( !wxWindowBase::Enable(enable) )
- return FALSE;
+ return false;
m_peer->Enable( enable ) ;
if ( former != MacIsReallyEnabled() )
MacPropagateEnabledStateChanged() ;
- return TRUE;
+ return true;
}
//
// only under OSX the visibility of the TLW is taken into account
if ( m_isBeingDeleted )
return false ;
-
+
#if TARGET_API_MAC_OSX
if ( m_peer && m_peer->Ok() )
return m_peer->IsVisible();
HIThemeFrameDrawInfo info ;
memset( &info, 0 , sizeof( info ) ) ;
-
+
info.version = 0 ;
info.kind = 0 ;
info.state = IsEnabled() ? kThemeStateActive : kThemeStateInactive ;
CGContextRef cgContext = (CGContextRef) GetParent()->MacGetCGContextRef() ;
wxASSERT( cgContext ) ;
-
+
if (HasFlag(wxRAISED_BORDER) || HasFlag( wxSUNKEN_BORDER) || HasFlag(wxDOUBLE_BORDER) )
{
info.kind = kHIThemeFrameTextFieldSquare ;
{
HIThemeDrawFocusRect( &cgrect , true , cgContext , kHIThemeOrientationNormal ) ;
}
-
+
m_peer->GetRect( &rect ) ;
if ( hasBothScrollbars )
{
int size = m_hScrollBar->GetWindowVariant() == wxWINDOW_VARIANT_NORMAL ? 16 : 12 ;
CGRect cgrect = CGRectMake( rect.right - size , rect.bottom - size , size , size ) ;
CGPoint cgpoint = CGPointMake( rect.right - size , rect.bottom - size ) ;
- HIThemeGrowBoxDrawInfo info ;
+ HIThemeGrowBoxDrawInfo info ;
memset( &info, 0 , sizeof( info ) ) ;
info.version = 0 ;
info.state = IsEnabled() ? kThemeStateActive : kThemeStateInactive ;
{
DrawThemeListBoxFrame(&rect,IsEnabled() ? kThemeStateActive : kThemeStateInactive) ;
}
-
+
if ( hasFocus )
{
DrawThemeFocusRect( &rect , true ) ;
if ( hasBothScrollbars )
{
- // GetThemeStandaloneGrowBoxBounds
+ // GetThemeStandaloneGrowBoxBounds
//DrawThemeStandaloneNoGrowBox
}
}
int width , height ;
GetClientSize( &width , &height ) ;
#if TARGET_API_MAC_OSX
- if ( 1 /* m_peer->IsCompositing() */ )
- {
+ if ( 1 /* m_peer->IsCompositing() */ )
+ {
// note there currently is a bug in OSX which makes inefficient refreshes in case an entire control
// area is scrolled, this does not occur if width and height are 2 pixels less,
// TODO write optimal workaround
// is the better overall solution, as it does not slow down scrolling
m_peer->SetNeedsDisplay() ;
#else
- // this would be the preferred version for fast drawing controls
+ // this would be the preferred version for fast drawing controls
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_3
if( UMAGetSystemVersion() >= 0x1030 && m_peer->IsCompositing() )
HIViewRender(m_peer->GetControlRef()) ;
else
#endif
- Update() ;
+ Update() ;
#endif
- }
- else
+ }
+ else
#endif
- {
+ {
wxPoint pos;
pos.x = pos.y = 0;
ScrollRect( &scrollrect , dx , dy , updateRgn ) ;
// now scroll the former update region as well and add the new update region
-
+
WindowRef rootWindow = (WindowRef) MacGetTopLevelWindowRef() ;
RgnHandle formerUpdateRgn = NewRgn() ;
RgnHandle scrollRgn = NewRgn() ;
return win ;
}
-const wxRect& wxWindowMac::MacGetClippedClientRect() const
+const wxRect& wxWindowMac::MacGetClippedClientRect() const
{
MacUpdateClippedRects() ;
return m_cachedClippedClientRect ;
}
-const wxRect& wxWindowMac::MacGetClippedRect() const
+const wxRect& wxWindowMac::MacGetClippedRect() const
{
MacUpdateClippedRects() ;
return m_cachedClippedRect ;
}
-const wxRect&wxWindowMac:: MacGetClippedRectWithOuterStructure() const
+const wxRect&wxWindowMac:: MacGetClippedRectWithOuterStructure() const
{
MacUpdateClippedRects() ;
return m_cachedClippedRectWithOuterStructure ;
Rect r ;
Rect rIncludingOuterStructures ;
-
+
m_peer->GetRect( &r ) ;
r.left -= MacGetLeftBorderSize() ;
r.top -= MacGetTopBorderSize() ;
rIncludingOuterStructures = r ;
InsetRect( &rIncludingOuterStructures , -4 , -4 ) ;
-
+
wxRect cl = GetClientRect() ;
Rect rClient = { cl.y , cl.x , cl.y + cl.height , cl.x + cl.width } ;
-
+
const wxWindow* child = this ;
const wxWindow* parent = NULL ;
while( !child->IsTopLevel() && ( parent = child->GetParent() ) != NULL )
}
child = parent ;
}
-
+
m_cachedClippedRect = wxRect( r.left , r.top , r.right - r.left , r.bottom - r.top ) ;
- m_cachedClippedClientRect = wxRect( rClient.left , rClient.top ,
+ m_cachedClippedClientRect = wxRect( rClient.left , rClient.top ,
rClient.right - rClient.left , rClient.bottom - rClient.top ) ;
- m_cachedClippedRectWithOuterStructure = wxRect(
- rIncludingOuterStructures.left , rIncludingOuterStructures.top ,
- rIncludingOuterStructures.right - rIncludingOuterStructures.left ,
+ m_cachedClippedRectWithOuterStructure = wxRect(
+ rIncludingOuterStructures.left , rIncludingOuterStructures.top ,
+ rIncludingOuterStructures.right - rIncludingOuterStructures.left ,
rIncludingOuterStructures.bottom - rIncludingOuterStructures.top ) ;
-
+
m_cachedClippedRegionWithOuterStructure = wxRegion( m_cachedClippedRectWithOuterStructure ) ;
m_cachedClippedRegion = wxRegion( m_cachedClippedRect ) ;
m_cachedClippedClientRegion = wxRegion( m_cachedClippedClientRect ) ;
-
+
m_cachedClippedRectValid = true ;
}
// wxLogDebug(wxT("update for %s bounds %d , %d , %d , %d"),wxString(GetClassInfo()->GetClassName()).c_str(), updatebounds.left , updatebounds.top , updatebounds.right , updatebounds.bottom ) ;
- if ( !EmptyRgn(updatergn) )
+ if ( !EmptyRgn(updatergn) )
{
RgnHandle newupdate = NewRgn() ;
wxSize point = GetClientSize() ;
dc->SetClippingRegion(wxRegion(updatergn));
else
dc->SetClippingRegion(wxRegion(newupdate));
-
+
wxEraseEvent eevent( GetId(), dc );
eevent.SetEventObject( this );
GetEventHandler()->ProcessEvent( eevent );
return 0 ;
SInt32 border = 0 ;
-
+
if (HasFlag(wxRAISED_BORDER) || HasFlag( wxSUNKEN_BORDER) || HasFlag(wxDOUBLE_BORDER) )
{
GetThemeMetric( kThemeMetricEditTextFrameOutset , &border ) ;
HGLOBAL hDevNames = (HGLOBAL)(DWORD) m_devNames;
if (!hDevMode)
+ {
return false;
-
- if ( hDevMode )
+ }
+ else
{
LPDEVMODE devMode = (LPDEVMODE)GlobalLock(hDevMode);
data.SetPaperId( wxPAPER_NONE );
data.SetPaperSize( wxSize(0,0) );
m_customWindowsPaperId = 0;
-
+
GlobalUnlock(hDevMode);
return false;
}