int n, const wxString choices[],
long style, const wxValidator& validator, const wxString &name )
{
- m_needParent = TRUE;
+ m_needParent = true;
#if (GTK_MINOR_VERSION > 0)
- m_acceptsFocus = TRUE;
+ m_acceptsFocus = true;
#endif
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
wxFAIL_MSG( wxT("wxChoice creation failed") );
- return FALSE;
+ return false;
}
m_widget = gtk_option_menu_new();
PostCreation(size);
SetBestSize(size); // need this too because this is a wxControlWithItems
- return TRUE;
+ return true;
}
wxChoice::~wxChoice()
{
// destroy the data (due to Robert's idea of using wxList<wxObject>
// and not wxList<wxClientData> we can't just say
- // m_clientList.DeleteContents(TRUE) - this would crash!
+ // m_clientList.DeleteContents(true) - this would crash!
wxList::compatibility_iterator node = m_clientList.GetFirst();
while ( node )
{
count++;
}
- return -1;
+ return wxNOT_FOUND;
}
int wxChoice::GetSelection() const
wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
- gtk_label_set_text( label, wxGTK_CONV( str ) );
-
+ gtk_label_set_text( label, wxGTK_CONV( str ) );
+
return;
}
child = child->next;
wxString wxChoice::GetString( int n ) const
{
- wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid choice") );
GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) );
int count = 0;
wxFAIL_MSG( wxT("wxChoice: invalid index in GetString()") );
- return wxT("");
+ return wxEmptyString;
}
int wxChoice::GetCount() const
// normal control, just append
if (pos == (int)m_clientList.GetCount())
{
- gtk_menu_append( GTK_MENU(menu), menu_item );
- m_clientList.Append( (wxObject*) NULL );
- index = m_clientList.GetCount() - 1;
+ gtk_menu_append( GTK_MENU(menu), menu_item );
+ m_clientList.Append( (wxObject*) NULL );
+ index = m_clientList.GetCount() - 1;
}
else
{
// changed, but at least after adding an item
// it has to change. Adapted from Matt Ownby.
InvalidateBestSize();
-
+
gtk_signal_connect_after( GTK_OBJECT( menu_item ), "activate",
GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this );
#endif // wxUSE_CHOICE
-
colMapAllocCounter[ idx ] = colMapAllocCounter[ idx ] - 1;
if (colMapAllocCounter[ idx ] == 0)
- gdk_colormap_free_colors( m_colormap, &m_color, 1 );
+ gdk_colormap_free_colors( m_colormap, &m_color, 1 );
}
}
}
#ifdef __WXGTK20__
if ( (cmap->visual->type == GDK_VISUAL_GRAYSCALE) ||
- (cmap->visual->type == GDK_VISUAL_PSEUDO_COLOR) )
+ (cmap->visual->type == GDK_VISUAL_PSEUDO_COLOR) )
#else
GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) cmap;
if ((private_colormap->visual->type == GDK_VISUAL_GRAYSCALE) ||
return &M_COLDATA->m_color;
}
-
-
const int count = GetCount();
if ( (int)m_clientDataList.GetCount() < count )
- m_clientDataList.Append( (wxObject*) NULL );
+ m_clientDataList.Append( (wxObject*) NULL );
if ( (int)m_clientObjectList.GetCount() < count )
- m_clientObjectList.Append( (wxObject*) NULL );
+ m_clientObjectList.Append( (wxObject*) NULL );
EnableEvents();
count = GetCount();
if ( (int)m_clientDataList.GetCount() < count )
- m_clientDataList.Insert( pos, (wxObject*) NULL );
+ m_clientDataList.Insert( pos, (wxObject*) NULL );
if ( (int)m_clientObjectList.GetCount() < count )
- m_clientObjectList.Insert( pos, (wxObject*) NULL );
+ m_clientObjectList.Insert( pos, (wxObject*) NULL );
EnableEvents();
int wxComboBox::FindString( const wxString &item ) const
{
- wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, wxNOT_FOUND, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
wxString wxComboBox::GetString( int n ) const
{
- wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
wxString wxComboBox::GetStringSelection() const
{
- wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
wxFAIL_MSG( wxT("wxComboBox: no selection") );
- return wxT("");
+ return wxEmptyString;
}
int wxComboBox::GetCount() const
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
- wxString tmp = wxT("");
+ wxString tmp;
if (!value.IsNull()) tmp = value;
gtk_entry_set_text( GTK_ENTRY(entry), wxGTK_CONV( tmp ) );
}
#endif
-
{
gdk_gc_set_clip_mask( m_textGC, mask );
gdk_gc_set_clip_origin( m_textGC, cx-xsrcMask, cy-ysrcMask );
- }
+ }
}
else
{
{
gdk_gc_set_clip_mask( m_penGC, mask );
gdk_gc_set_clip_origin( m_penGC, cx-xsrcMask, cy-ysrcMask );
- }
+ }
}
}
if ((m_scaleX != origScaleX || m_scaleY != origScaleY) &&
(m_pen.Ok()))
{
- /* this is a bit artificial, but we need to force wxDC to think
- the pen has changed */
- wxPen pen = m_pen;
- m_pen = wxNullPen;
- SetPen( pen );
- }
+ /* this is a bit artificial, but we need to force wxDC to think
+ the pen has changed */
+ wxPen pen = m_pen;
+ m_pen = wxNullPen;
+ SetPen( pen );
+ }
}
// Resolution in pixels per logical inch
#include "wx/dnd.h"
#include "wx/log.h"
-
-
+
+
#if wxUSE_DRAG_AND_DROP
#include "wx/window.h"
drop_target->OnLeave();
/* this has to be done because GDK has no "drag_enter" event */
- drop_target->m_firstMotion = TRUE;
+ drop_target->m_firstMotion = true;
/* after this, invalidate the drop_target's GdkDragContext */
drop_target->SetDragContext( (GdkDragContext*) NULL );
drop_target->SetDragContext( (GdkDragContext*) NULL );
/* this has to be done because GDK has no "drag_enter" event */
- drop_target->m_firstMotion = FALSE;
+ drop_target->m_firstMotion = false;
return ret;
}
/* reset the block here as someone might very well
show a dialog as a reaction to a drop and this
wouldn't work without events */
- g_blockEventsOnDrag = FALSE;
+ g_blockEventsOnDrag = false;
bool ret = drop_target->OnDrop( x, y );
drop_target->SetDragWidget( (GtkWidget*) NULL );
/* this has to be done because GDK has no "drag_enter" event */
- drop_target->m_firstMotion = TRUE;
+ drop_target->m_firstMotion = true;
return ret;
}
wxDropTarget::wxDropTarget( wxDataObject *data )
: wxDropTargetBase( data )
{
- m_firstMotion = TRUE;
+ m_firstMotion = true;
m_dragContext = (GdkDragContext*) NULL;
m_dragWidget = (GtkWidget*) NULL;
m_dragData = (GtkSelectionData*) NULL;
bool wxDropTarget::OnDrop( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y) )
{
if (!m_dataObject)
- return FALSE;
+ return false;
return (GetMatchingPair() != (GdkAtom) 0);
}
bool wxDropTarget::GetData()
{
if (!m_dragData)
- return FALSE;
+ return false;
if (!m_dataObject)
- return FALSE;
+ return false;
wxDataFormat dragFormat( m_dragData->target );
if (!m_dataObject->IsSupportedFormat( dragFormat ))
- return FALSE;
+ return false;
m_dataObject->SetData( dragFormat, (size_t)m_dragData->length, (const void*)m_dragData->data );
- return TRUE;
+ return true;
}
void wxDropTarget::UnregisterWidget( GtkWidget *widget )
/* disable GUI threads */
#endif
- gtk_selection_data_set( selection_data,
- selection_data->target,
- 8, // 8-bit
- d,
- size );
+ gtk_selection_data_set( selection_data,
+ selection_data->target,
+ 8, // 8-bit
+ d,
+ size );
#if wxUSE_THREADS
/* enable GUI threads */
// printf( "Drag source: drag_end.\n" );
- drop_source->m_waiting = FALSE;
+ drop_source->m_waiting = false;
}
}
const wxIcon &iconMove,
const wxIcon &iconNone)
{
- m_waiting = TRUE;
+ m_waiting = true;
m_iconWindow = (GtkWidget*) NULL;
const wxIcon &iconMove,
const wxIcon &iconNone)
{
- m_waiting = TRUE;
+ m_waiting = true;
SetData( data );
return wxDragNone;
// disabled for now
- g_blockEventsOnDrag = TRUE;
+ g_blockEventsOnDrag = true;
RegisterWindow();
- m_waiting = TRUE;
+ m_waiting = true;
GtkTargetList *target_list = gtk_target_list_new( (GtkTargetEntry*) NULL, 0 );
/* re-enable GUI threads */
#endif
- g_blockEventsOnDrag = FALSE;
+ g_blockEventsOnDrag = false;
UnregisterWindow();
// this is called after Remove with a NULL m_frameMenuBar
if ( m_frameMenuBar )
- (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_frameMenuBar->m_widget) )->size_request )
- (m_frameMenuBar->m_widget, &req );
+ (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_frameMenuBar->m_widget) )->size_request )
+ (m_frameMenuBar->m_widget, &req );
m_menuBarHeight = req.height;
- // resize window in OnInternalIdle
+ // resize window in OnInternalIdle
GtkUpdateSize();
}
GtkUpdateSize();
}
#endif // wxUSE_STATUSBAR
-
else
#endif
{
- return (long) GET_EDITABLE_POS(m_text);
+ return (long) GET_EDITABLE_POS(m_text);
}
}
gtk_widget_set_sensitive(m_widget, false);
g_object_ref(m_buffer);
gtk_text_view_set_buffer(GTK_TEXT_VIEW(m_text), gtk_text_buffer_new(NULL));
- }
+ }
#else
gtk_text_freeze(GTK_TEXT(m_text));
#endif
// either TRUE or FALSE and an activate event will be sent during the next
// OnIdle() call and it is reset to -1: this value means that we shouldn't
// send any activate events at all
-static int g_sendActivateEvent = -1;
+static int g_sendActivateEvent = -1;
//-----------------------------------------------------------------------------
// "focus_in_event"
{
if (g_isIdle)
wxapp_install_idle_handler();
-
+
switch ( g_sendActivateEvent )
{
case -1:
g_activeFrame = win;
g_lastActiveFrame = g_activeFrame;
-
+
// wxPrintf( wxT("active: %s\n"), win->GetTitle().c_str() );
-
+
wxLogTrace(wxT("activate"), wxT("Activating frame %p (from focus_in)"), g_activeFrame);
- wxActivateEvent event(wxEVT_ACTIVATE, TRUE, g_activeFrame->GetId());
+ wxActivateEvent event(wxEVT_ACTIVATE, true, g_activeFrame->GetId());
event.SetEventObject(g_activeFrame);
g_activeFrame->GetEventHandler()->ProcessEvent(event);
//-----------------------------------------------------------------------------
extern "C" {
-static gint gtk_frame_focus_out_callback( GtkWidget *widget,
- GdkEventFocus *WXUNUSED(gdk_event),
+static gint gtk_frame_focus_out_callback( GtkWidget *widget,
+ GdkEventFocus *WXUNUSED(gdk_event),
wxTopLevelWindowGTK *win )
{
if (g_isIdle)
// wxActivateEvent, otherwise gtk_window_focus_in_callback() will reset
// g_sendActivateEvent to -1
g_sendActivateEvent = 0;
-
+
// wxASSERT_MSG( (g_activeFrame == win), wxT("TLW deactivatd although it wasn't active") );
-
+
// wxPrintf( wxT("inactive: %s\n"), win->GetTitle().c_str() );
if (g_activeFrame)
{
wxLogTrace(wxT("activate"), wxT("Activating frame %p (from focus_in)"), g_activeFrame);
- wxActivateEvent event(wxEVT_ACTIVATE, FALSE, g_activeFrame->GetId());
+ wxActivateEvent event(wxEVT_ACTIVATE, false, g_activeFrame->GetId());
event.SetEventObject(g_activeFrame);
g_activeFrame->GetEventHandler()->ProcessEvent(event);
g_activeFrame = NULL;
}
-
+
return FALSE;
}
}
GdkEvent * WXUNUSED(event),
wxTopLevelWindow *win )
{
- win->SetIconizeState(FALSE);
+ win->SetIconizeState(false);
}
}
void wxTopLevelWindowGTK::Init()
{
- m_sizeSet = FALSE;
+ m_sizeSet = false;
m_miniEdge = 0;
m_miniTitle = 0;
m_mainWidget = (GtkWidget*) NULL;
- m_insertInClientArea = TRUE;
- m_isIconized = FALSE;
- m_fsIsShowing = FALSE;
- m_themeEnabled = TRUE;
+ m_insertInClientArea = true;
+ m_isIconized = false;
+ m_fsIsShowing = false;
+ m_themeEnabled = true;
m_gdkDecor = m_gdkFunc = 0;
- m_grabbed = FALSE;
+ m_grabbed = false;
}
bool wxTopLevelWindowGTK::Create( wxWindow *parent,
wxTopLevelWindows.Append( this );
- m_needParent = FALSE;
+ m_needParent = false;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
wxFAIL_MSG( wxT("wxTopLevelWindowGTK creation failed") );
- return FALSE;
+ return false;
}
m_title = title;
{
gtk_window_set_type_hint(GTK_WINDOW(m_widget),
GDK_WINDOW_TYPE_HINT_UTILITY);
-
+
// On some WMs, like KDE, a TOOL_WINDOW will still show
// on the taskbar, but on Gnome a TOOL_WINDOW will not.
- // For consistency between WMs and with Windows, we
+ // For consistency between WMs and with Windows, we
// should set the NO_TASKBAR flag which will apply
// the set_skip_taskbar_hint if it is available,
// ensuring no taskbar entry will appear.
wxWindow *topParent = wxGetTopLevelParent(m_parent);
if (topParent && (((GTK_IS_WINDOW(topParent->m_widget)) &&
- (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)) ||
- (style & wxFRAME_FLOAT_ON_PARENT)))
+ (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)) ||
+ (style & wxFRAME_FLOAT_ON_PARENT)))
{
gtk_window_set_transient_for( GTK_WINDOW(m_widget),
GTK_WINDOW(topParent->m_widget) );
}
#endif
- if (!name.IsEmpty())
+ if (!name.empty())
gtk_window_set_wmclass( GTK_WINDOW(m_widget), wxGTK_CONV( name ), wxGTK_CONV( name ) );
gtk_window_set_title( GTK_WINDOW(m_widget), wxGTK_CONV( title ) );
GTK_SIGNAL_FUNC(gtk_frame_focus_in_callback), (gpointer)this );
gtk_signal_connect( GTK_OBJECT(m_widget), "focus_out_event",
GTK_SIGNAL_FUNC(gtk_frame_focus_out_callback), (gpointer)this );
-
+
// decorations
if ((m_miniEdge > 0) || (style & wxSIMPLE_BORDER) || (style & wxNO_BORDER))
{
}
}
- return TRUE;
+ return true;
}
wxTopLevelWindowGTK::~wxTopLevelWindowGTK()
RemoveGrab();
}
- m_isBeingDeleted = TRUE;
+ m_isBeingDeleted = true;
// it may also be GtkScrolledWindow in the case of an MDI child
if (GTK_IS_WINDOW(m_widget))
{
gtk_window_set_focus( GTK_WINDOW(m_widget), NULL );
}
-
+
if (g_activeFrame == this)
g_activeFrame = NULL;
if (g_lastActiveFrame == this)
bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style )
{
if (show == m_fsIsShowing)
- return FALSE; // return what?
+ return false; // return what?
m_fsIsShowing = show;
-
+
wxX11FullScreenMethod method =
wxGetFullScreenMethodX11((WXDisplay*)GDK_DISPLAY(),
(WXWindow)GDK_ROOT_WINDOW());
else
gtk_window_unfullscreen( GTK_WINDOW( m_widget ) );
- return TRUE;
+ return true;
}
else
#endif // GTK+ >= 2.2.0
}
}
- return TRUE;
+ return true;
}
// ----------------------------------------------------------------------------
GtkOnSize( m_x, m_y, m_width, m_height );
}
-
+
if (show)
gtk_widget_set_uposition( m_widget, m_x, m_y );
-
+
return wxWindow::Show( show );
}
// avoid recursions
if (m_resizing)
return;
- m_resizing = TRUE;
+ m_resizing = true;
int old_x = m_x;
int old_y = m_y;
maxWidth = -1;
maxHeight = -1;
#endif
-
+
if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;
if ((maxWidth != -1) && (m_width > maxWidth)) m_width = maxWidth;
/* we set the size in GtkOnSize, i.e. mostly the actual resizing is
done either directly before the frame is shown or in idle time
so that different calls to SetSize() don't lead to flicker. */
- m_sizeSet = FALSE;
+ m_sizeSet = false;
}
- m_resizing = FALSE;
+ m_resizing = false;
}
void wxTopLevelWindowGTK::DoGetClientSize( int *width, int *height ) const
// avoid recursions
if (m_resizing) return;
- m_resizing = TRUE;
+ m_resizing = true;
if ( m_wxwindow == NULL ) return;
maxWidth = -1;
maxHeight = -1;
#endif
-
+
if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;
if ((maxWidth != -1) && (m_width > maxWidth)) m_width = maxWidth;
// is no need to set the size or position of m_wxwindow.
}
- m_sizeSet = TRUE;
+ m_sizeSet = true;
// send size event to frame
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
event.SetEventObject( this );
GetEventHandler()->ProcessEvent( event );
- m_resizing = FALSE;
+ m_resizing = false;
}
void wxTopLevelWindowGTK::OnInternalIdle()
}
wxWindow::OnInternalIdle();
-
+
// Synthetize activate events.
if ( g_sendActivateEvent != -1 )
{
bool activate = g_sendActivateEvent != 0;
-
+
// if (!activate) wxPrintf( wxT("de") );
// wxPrintf( wxT("activate\n") );
-
+
// do it only once
g_sendActivateEvent = -1;
}
gtk_window_set_icon_list(GTK_WINDOW(m_widget), list);
g_list_free(list);
-
+
#else // !__WXGTK20__
GdkWindow* window = m_widget->window;
if (!window)
// wxFAIL_MSG( _T("not implemented") );
// This is an approximation
- return FALSE;
+ return false;
#endif
}
{
if (!m_grabbed)
{
- m_grabbed = TRUE;
+ m_grabbed = true;
gtk_grab_add( m_widget );
wxEventLoop().Run();
gtk_grab_remove( m_widget );
if (m_grabbed)
{
gtk_main_quit();
- m_grabbed = FALSE;
+ m_grabbed = false;
}
}
else
{
#ifdef __WXGTK20__
- gdk_window_shape_combine_region(window, region.GetRegion(), 0, 0);
+ gdk_window_shape_combine_region(window, region.GetRegion(), 0, 0);
#else
- wxBitmap bmp = region.ConvertToBitmap();
- bmp.SetMask(new wxMask(bmp, *wxBLACK));
- GdkBitmap* mask = bmp.GetMask()->GetBitmap();
- gdk_window_shape_combine_mask(window, mask, 0, 0);
+ wxBitmap bmp = region.ConvertToBitmap();
+ bmp.SetMask(new wxMask(bmp, *wxBLACK));
+ GdkBitmap* mask = bmp.GetMask()->GetBitmap();
+ gdk_window_shape_combine_mask(window, mask, 0, 0);
#endif
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
bool wxTopLevelWindowGTK::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."));
GdkWindow *window = NULL;
{
return (this == (wxTopLevelWindowGTK*)g_activeFrame);
}
-
// mouse capture state: the window which has it and if the mouse is currently
// inside it
static wxWindowGTK *g_captureWindow = (wxWindowGTK*) NULL;
-static bool g_captureWindowHasMouse = FALSE;
+static bool g_captureWindowHasMouse = false;
wxWindowGTK *g_focusWindow = (wxWindowGTK*) NULL;
// hack: we need something to pass to gtk_menu_popup, so we store the time of
// the last click here
-static guint32 gs_timeLastClick = 0;
+static guint32 gs_timeLastClick = 0;
extern bool g_mainThreadLocked;
{
// This callback is actually hooked into the text entry
// of the combo box, not the GtkHBox.
-
+
int w, h;
win->GetSize( &w, &h );
if (w < 2)
h = 2;
GtkCombo *gcombo = GTK_COMBO(win->m_widget);
-
+
GtkRequisition entry_req;
entry_req.width = 2;
entry_req.height = 2;
(* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(gcombo->button) )->size_request )
(gcombo->button, &entry_req );
-
+
requisition->width = w - entry_req.width;
requisition->height = entry_req.height;
}
(int)gdk_event->area.width,
(int)gdk_event->area.height );
}
-
+
gtk_paint_box
(
win->m_wxwindow->style,
: _T("press"),
keysym);
- long key_code = wxTranslateKeySymToWXKey(keysym, FALSE /* !isChar */);
+ long key_code = wxTranslateKeySymToWXKey(keysym, false /* !isChar */);
if ( !key_code )
{
// sending unknown key events doesn't really make sense
if ( !key_code )
- return FALSE;
+ return false;
// now fill all the other fields
wxFillOtherKeyEventFields(event, win, gdk_event);
-
+
event.m_keyCode = key_code;
- return TRUE;
+ return true;
}
// Emit KEY_DOWN event
ret = win->GetEventHandler()->ProcessEvent( event );
}
- else
+ else
{
// Return after IM processing as we cannot do
// anything with it anyhow.
// 2005.01.26 modified by Hong Jen Yee (hzysoft@sina.com.tw):
// When we get a key_press event here, it could be originate
// from the current widget or its child widgets. However, only the widget
- // with the INPUT FOCUS can generate the INITIAL key_press event. That is,
+ // with the INPUT FOCUS can generate the INITIAL key_press event. That is,
// if the CURRENT widget doesn't have the FOCUS at all, this event definitely
// originated from its child widgets and shouldn't be passed to IM context.
// In fact, what a GTK+ IM should do is filtering keyEvents and convert them
// into text input ONLY WHEN THE WIDGET HAS INPUT FOCUS. Besides, when current
- // widgets has both IM context and input focus, the event should be filtered
+ // widgets has both IM context and input focus, the event should be filtered
// by gtk_im_context_filter_keypress().
// Then, we should, according to GTK+ 2.0 API doc, return whatever it returns.
if ((!ret) && (win->m_imData != NULL) && ( wxWindow::FindFocus() == win ))
{
// We should let GTK+ IM filter key event first. According to GTK+ 2.0 API
// docs, if IM filter returns true, no further processing should be done.
- // we should send the key_down event anyway.
+ // we should send the key_down event anyway.
bool intercepted_by_IM = gtk_im_context_filter_keypress(win->m_imData->context, gdk_event);
win->m_imData->lastKeyEvent = NULL;
if (intercepted_by_IM)
if (return_after_IM)
return false;
-#ifndef __WXGTK20__
+#ifndef __WXGTK20__
// This is for GTK+ 1.2 only. The char event generatation for GTK+ 2.0 is done
// in the "commit" handler.
-
+
// 2005.02.02 modified by Hong Jen Yee (hzysoft@sina.com.tw).
- // In GTK+ 1.2, strings sent by IMs are also regarded as key_press events whose
- // keyCodes cannot be recognized by wxWidgets. These MBCS strings, however, are
- // composed of more than one character, which means gdk_event->length will always
+ // In GTK+ 1.2, strings sent by IMs are also regarded as key_press events whose
+ // keyCodes cannot be recognized by wxWidgets. These MBCS strings, however, are
+ // composed of more than one character, which means gdk_event->length will always
// greater than one. When gtk_event->length == 1, this may be an ASCII character
- // and can be translated by wx. However, when MBCS characters are sent by IM,
+ // and can be translated by wx. However, when MBCS characters are sent by IM,
// gdk_event->length will >= 2. So neither should we pass it to accelerator table,
// nor should we pass it to controls. The following explanation was excerpted
// from GDK documentation.
}
return true;
}
-
+
#endif // #ifndef __WXGTK20__
#if wxUSE_ACCEL
long key_code;
KeySym keysym = gdk_event->keyval;
// Find key code for EVT_CHAR and EVT_CHAR_HOOK events
- key_code = wxTranslateKeySymToWXKey(keysym, TRUE /* isChar */);
+ key_code = wxTranslateKeySymToWXKey(keysym, true /* isChar */);
if ( !key_code )
{
if ( wxIsAsciiKeysym(keysym) )
event_type = wxEVT_MOUSEWHEEL;
else
return FALSE;
-
+
wxMouseEvent event( event_type );
// Can't use InitMouse macro because scroll events don't have button
event.SetTimestamp( gdk_event->time );
event.SetEventObject( win );
event.SetId( win->GetId() );
event.SetTimestamp( gdk_event->time );
-
+
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "scroll_event" );
wxWindow *win )
{
DEBUG_MAIN_THREAD
-
+
if (g_isIdle)
wxapp_install_idle_handler();
if ( !win->m_hasFocus )
{
// not yet, notify it
- win->m_hasFocus = TRUE;
-
+ win->m_hasFocus = true;
+
if ( DoSendFocusEvents(win) )
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus_in_event" );
// have focus already
if ( win->m_hasFocus )
{
- win->m_hasFocus = FALSE;
+ win->m_hasFocus = false;
wxFocusEvent event( wxEVT_KILL_FOCUS, win->GetId() );
event.SetEventObject( win );
wxapp_install_idle_handler();
- g_blockEventsOnScroll = TRUE;
+ g_blockEventsOnScroll = true;
// FIXME: there is no 'slider' field in GTK+ 2.0 any more
#ifndef __WXGTK20__
//
// if (gdk_event->window != widget->slider) return FALSE;
- g_blockEventsOnScroll = FALSE;
+ g_blockEventsOnScroll = false;
if (win->m_isScrolling)
{
win->GetEventHandler()->ProcessEvent( event );
}
- win->m_isScrolling = FALSE;
+ win->m_isScrolling = false;
return FALSE;
}
if (g_isIdle)
wxapp_install_idle_handler();
-
+
#ifdef __WXGTK20__
if (win->m_imData)
{
m_width = 0;
m_height = 0;
- m_sizeSet = FALSE;
- m_hasVMT = FALSE;
- m_needParent = TRUE;
- m_isBeingDeleted = FALSE;
+ m_sizeSet = false;
+ m_hasVMT = false;
+ m_needParent = true;
+ m_isBeingDeleted = false;
- m_noExpose = FALSE;
- m_nativeSizeEvent = FALSE;
+ m_noExpose = false;
+ m_nativeSizeEvent = false;
- m_hasScrolling = FALSE;
- m_isScrolling = FALSE;
+ m_hasScrolling = false;
+ m_isScrolling = false;
m_hAdjust = (GtkAdjustment*) NULL;
m_vAdjust = (GtkAdjustment*) NULL;
m_oldClientWidth =
m_oldClientHeight = 0;
- m_resizing = FALSE;
+ m_resizing = false;
m_insertCallback = (wxInsertChildFunction) NULL;
- m_acceptsFocus = FALSE;
- m_hasFocus = FALSE;
+ m_acceptsFocus = false;
+ m_hasFocus = false;
- m_clipPaintRegion = FALSE;
+ m_clipPaintRegion = false;
m_needsStyleChange = false;
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
wxFAIL_MSG( wxT("wxWindowGTK creation failed") );
- return FALSE;
+ return false;
}
m_insertCallback = wxInsertChildInWindow;
gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow );
GTK_WIDGET_SET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
- m_acceptsFocus = TRUE;
+ m_acceptsFocus = true;
// I _really_ don't want scrollbars in the beginning
m_vAdjust->lower = 0.0;
PostCreation();
- return TRUE;
+ return true;
}
wxWindowGTK::~wxWindowGTK()
if ( g_delayedFocus == this )
g_delayedFocus = NULL;
- m_isBeingDeleted = TRUE;
- m_hasVMT = FALSE;
+ m_isBeingDeleted = true;
+ m_hasVMT = false;
if (m_widget)
- Show( FALSE );
+ Show( false );
DestroyChildren();
bool wxWindowGTK::PreCreation( wxWindowGTK *parent, const wxPoint &pos, const wxSize &size )
{
- wxCHECK_MSG( !m_needParent || parent, FALSE, wxT("Need complete parent.") );
+ wxCHECK_MSG( !m_needParent || parent, false, wxT("Need complete parent.") );
// Use either the given size, or the default if -1 is given.
// See wxWindowBase for these functions.
m_x = (int)pos.x;
m_y = (int)pos.y;
- return TRUE;
+ return true;
}
void wxWindowGTK::PostCreation()
{
if (m_focusWidget == NULL)
m_focusWidget = m_widget;
-
+
gtk_signal_connect( GTK_OBJECT(m_focusWidget), "focus_in_event",
GTK_SIGNAL_FUNC(gtk_window_focus_in_callback), (gpointer)this );
if (GTK_IS_COMBO(m_widget))
{
GtkCombo *gcombo = GTK_COMBO(m_widget);
-
+
gtk_signal_connect( GTK_OBJECT(gcombo->entry), "size_request",
GTK_SIGNAL_FUNC(wxgtk_combo_size_request_callback),
(gpointer) this );
InheritAttributes();
- m_hasVMT = TRUE;
+ m_hasVMT = true;
// unless the window was created initially hidden (i.e. Hide() had been
// called before Create()), we should show it at GTK+ level as well
{
wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
- m_hasVMT = FALSE;
+ m_hasVMT = false;
return wxWindowBase::Destroy();
}
*/
if (m_resizing) return; /* I don't like recursions */
- m_resizing = TRUE;
+ m_resizing = true;
int currentX, currentY;
GetPosition(¤tX, ¤tY);
GetEventHandler()->ProcessEvent( event );
}
- m_resizing = FALSE;
+ m_resizing = false;
}
void wxWindowGTK::OnInternalIdle()
bool wxWindowGTK::Show( bool show )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), false, wxT("invalid window") );
if (!wxWindowBase::Show(show))
{
// nothing to do
- return FALSE;
+ return false;
}
if (show)
GetEventHandler()->ProcessEvent(eventShow);
- return TRUE;
+ return true;
}
static void wxWindowNotifyEnable(wxWindowGTK* win, bool enable)
bool wxWindowGTK::Enable( bool enable )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), false, wxT("invalid window") );
if (!wxWindowBase::Enable(enable))
{
// nothing to do
- return FALSE;
+ return false;
}
gtk_widget_set_sensitive( m_widget, enable );
wxWindowNotifyEnable(this, enable);
- return TRUE;
+ return true;
}
int wxWindowGTK::GetCharHeight() const
}
void wxWindowGTK::GetTextExtent( const wxString& string,
- int *x,
- int *y,
- int *descent,
- int *externalLeading,
- const wxFont *theFont ) const
+ int *x,
+ int *y,
+ int *descent,
+ int *externalLeading,
+ const wxFont *theFont ) const
{
wxFont fontToUse = theFont ? *theFont : GetFont();
wxCHECK_RET( fontToUse.Ok(), wxT("invalid font") );
- if (string.IsEmpty())
+ if (string.empty())
{
if (x) (*x) = 0;
if (y) (*y) = 0;
#endif
if (GTK_WIDGET_CAN_FOCUS(m_widget) && !GTK_WIDGET_HAS_FOCUS (m_widget) )
{
-
+
if (!GTK_WIDGET_REALIZED(m_widget))
{
// we can't set the focus to the widget now so we remember that
gtk_widget_grab_focus (m_widget);
}
}
- else
+ else
#ifndef __WXGTK20__
if (GTK_IS_CONTAINER(m_widget))
{
bool wxWindowGTK::Reparent( wxWindowBase *newParentBase )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), false, wxT("invalid window") );
wxWindowGTK *oldParent = m_parent,
*newParent = (wxWindowGTK *)newParentBase;
wxASSERT( GTK_IS_WIDGET(m_widget) );
if ( !wxWindowBase::Reparent(newParent) )
- return FALSE;
+ return false;
wxASSERT( GTK_IS_WIDGET(m_widget) );
/* reverse: prevent GTK from deleting the widget arbitrarily */
gtk_widget_unref( m_widget );
- return TRUE;
+ return true;
}
void wxWindowGTK::DoAddChild(wxWindowGTK *child)
if (g_isIdle)
wxapp_install_idle_handler();
}
-
+
void wxWindowGTK::DoMoveInTabOrder(wxWindow *win, MoveKind move)
{
wxWindowBase::DoMoveInTabOrder(win, move);
if (m_children.size() > 0)
{
GList *chain = NULL;
-
+
for (wxWindowList::const_iterator i = m_children.begin();
i != m_children.end(); ++i)
{
chain = g_list_prepend(chain, (*i)->m_widget);
}
-
+
chain = g_list_reverse(chain);
-
+
gtk_container_set_focus_chain(GTK_CONTAINER(m_wxwindow), chain);
g_list_free(chain);
}
gtk_container_unset_focus_chain(GTK_CONTAINER(m_wxwindow));
}
}
-
+
m_dirtyTabOrder = false;
}
{
gdk_window_raise( m_wxwindow->window );
}
- else if (m_widget->window)
+ else if (m_widget->window)
{
gdk_window_raise( m_widget->window );
}
{
gdk_window_lower( m_wxwindow->window );
}
- else if (m_widget->window)
+ else if (m_widget->window)
{
gdk_window_lower( m_widget->window );
}
bool wxWindowGTK::SetCursor( const wxCursor &cursor )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), false, wxT("invalid window") );
if (cursor == m_cursor)
- return FALSE;
+ return false;
if (g_isIdle)
wxapp_install_idle_handler();
}
// Clip to paint region in wxClientDC
- m_clipPaintRegion = TRUE;
+ m_clipPaintRegion = true;
// widget to draw on
GtkPizza *pizza = GTK_PIZZA (m_wxwindow);
paint_event.SetEventObject( this );
GetEventHandler()->ProcessEvent( paint_event );
- m_clipPaintRegion = FALSE;
+ m_clipPaintRegion = false;
#ifndef __WXUNIVERSAL__
#ifndef __WXGTK20__
bool wxWindowGTK::SetBackgroundColour( const wxColour &colour )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, false, wxT("invalid window") );
if (!wxWindowBase::SetBackgroundColour(colour))
return false;
bool wxWindowGTK::SetForegroundColour( const wxColour &colour )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, false, wxT("invalid window") );
if (!wxWindowBase::SetForegroundColour(colour))
{
return false;
}
-
+
if (colour.Ok())
{
// We need the pixel value e.g. for background clearing.
return m_x11Context;
}
#endif
-
+
GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle)
{
// do we need to apply any changes at all?
if ( m_font.Ok() )
{
#ifdef __WXGTK20__
- style->font_desc =
+ style->font_desc =
pango_font_description_copy( m_font.GetNativeFontInfo()->description );
#else
wxString xfontname = m_font.GetNativeFontInfo()->GetXFontName();
if ( m_foregroundColour.Ok() )
{
GdkColor *fg = m_foregroundColour.GetColor();
-
+
style->fg[GTK_STATE_NORMAL] = *fg;
style->color_flags[GTK_STATE_NORMAL] = GTK_RC_FG;
-
+
style->fg[GTK_STATE_PRELIGHT] = *fg;
style->color_flags[GTK_STATE_PRELIGHT] = GTK_RC_FG;
-
+
style->fg[GTK_STATE_ACTIVE] = *fg;
style->color_flags[GTK_STATE_ACTIVE] = GTK_RC_FG;
}
style->base[GTK_STATE_NORMAL] = *bg;
style->color_flags[GTK_STATE_NORMAL] = (GtkRcFlags)
(style->color_flags[GTK_STATE_NORMAL] | GTK_RC_BG | GTK_RC_BASE);
-
+
style->bg[GTK_STATE_PRELIGHT] = *bg;
style->base[GTK_STATE_PRELIGHT] = *bg;
style->color_flags[GTK_STATE_PRELIGHT] = (GtkRcFlags)
(style->color_flags[GTK_STATE_PRELIGHT] | GTK_RC_BG | GTK_RC_BASE);
-
+
style->bg[GTK_STATE_ACTIVE] = *bg;
style->base[GTK_STATE_ACTIVE] = *bg;
style->color_flags[GTK_STATE_ACTIVE] = (GtkRcFlags)
(style->color_flags[GTK_STATE_ACTIVE] | GTK_RC_BG | GTK_RC_BASE);
-
+
style->bg[GTK_STATE_INSENSITIVE] = *bg;
style->base[GTK_STATE_INSENSITIVE] = *bg;
style->color_flags[GTK_STATE_INSENSITIVE] = (GtkRcFlags)
(style->color_flags[GTK_STATE_INSENSITIVE] | GTK_RC_BG | GTK_RC_BASE);
}
-
+
return style;
}
bool wxWindowGTK::SetBackgroundStyle(wxBackgroundStyle style)
{
wxWindowBase::SetBackgroundStyle(style);
-
+
if (style == wxBG_STYLE_CUSTOM)
{
GdkWindow *window = (GdkWindow*) NULL;
else
// Do in OnIdle, because the window is not yet available
m_needsStyleChange = true;
-
+
// Don't apply widget style, or we get a grey background
}
else
void SetInvokingWindow( wxMenu *menu, wxWindow* win )
{
menu->SetInvokingWindow( win );
-
+
wxMenuItemList::compatibility_iterator node = menu->GetMenuItems().GetFirst();
while (node)
{
bool wxWindowGTK::SetFont( const wxFont &font )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, false, wxT("invalid window") );
if (!wxWindowBase::SetFont(font))
return false;
// apply style change (forceStyle=true so that new style is applied
// even if the font changed from valid to wxNullFont):
- ApplyWidgetStyle(true);
+ ApplyWidgetStyle(true);
return true;
}
cursor->GetCursor(),
(guint32)GDK_CURRENT_TIME );
g_captureWindow = this;
- g_captureWindowHasMouse = TRUE;
+ g_captureWindowHasMouse = true;
}
void wxWindowGTK::DoReleaseMouse()
bool wxWindowGTK::IsRetained() const
{
- return FALSE;
+ return false;
}
void wxWindowGTK::SetScrollbar( int orient, int pos, int thumbVisible,
wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
- m_hasScrolling = TRUE;
+ m_hasScrolling = true;
if (orient == wxHORIZONTAL)
{
}
#endif
- m_clipPaintRegion = TRUE;
+ m_clipPaintRegion = true;
gtk_pizza_scroll( GTK_PIZZA(m_wxwindow), -dx, -dy );
- m_clipPaintRegion = FALSE;
+ m_clipPaintRegion = false;
}
// g_eraseGC = gdk_gc_new( GDK_ROOT_PARENT() );
// gdk_gc_set_fill( g_eraseGC, GDK_SOLID );
- return TRUE;
+ return true;
}
void wxWinModule::OnExit()
int n, const wxString choices[],
long style, const wxValidator& validator, const wxString &name )
{
- m_needParent = TRUE;
+ m_needParent = true;
#if (GTK_MINOR_VERSION > 0)
- m_acceptsFocus = TRUE;
+ m_acceptsFocus = true;
#endif
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, validator, name ))
{
wxFAIL_MSG( wxT("wxChoice creation failed") );
- return FALSE;
+ return false;
}
m_widget = gtk_option_menu_new();
PostCreation(size);
SetBestSize(size); // need this too because this is a wxControlWithItems
- return TRUE;
+ return true;
}
wxChoice::~wxChoice()
{
// destroy the data (due to Robert's idea of using wxList<wxObject>
// and not wxList<wxClientData> we can't just say
- // m_clientList.DeleteContents(TRUE) - this would crash!
+ // m_clientList.DeleteContents(true) - this would crash!
wxList::compatibility_iterator node = m_clientList.GetFirst();
while ( node )
{
count++;
}
- return -1;
+ return wxNOT_FOUND;
}
int wxChoice::GetSelection() const
wxASSERT_MSG( label != NULL , wxT("wxChoice: invalid label") );
- gtk_label_set_text( label, wxGTK_CONV( str ) );
-
+ gtk_label_set_text( label, wxGTK_CONV( str ) );
+
return;
}
child = child->next;
wxString wxChoice::GetString( int n ) const
{
- wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid choice") );
+ wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid choice") );
GtkMenuShell *menu_shell = GTK_MENU_SHELL( gtk_option_menu_get_menu( GTK_OPTION_MENU(m_widget) ) );
int count = 0;
wxFAIL_MSG( wxT("wxChoice: invalid index in GetString()") );
- return wxT("");
+ return wxEmptyString;
}
int wxChoice::GetCount() const
// normal control, just append
if (pos == (int)m_clientList.GetCount())
{
- gtk_menu_append( GTK_MENU(menu), menu_item );
- m_clientList.Append( (wxObject*) NULL );
- index = m_clientList.GetCount() - 1;
+ gtk_menu_append( GTK_MENU(menu), menu_item );
+ m_clientList.Append( (wxObject*) NULL );
+ index = m_clientList.GetCount() - 1;
}
else
{
// changed, but at least after adding an item
// it has to change. Adapted from Matt Ownby.
InvalidateBestSize();
-
+
gtk_signal_connect_after( GTK_OBJECT( menu_item ), "activate",
GTK_SIGNAL_FUNC(gtk_choice_clicked_callback), (gpointer*)this );
#endif // wxUSE_CHOICE
-
colMapAllocCounter[ idx ] = colMapAllocCounter[ idx ] - 1;
if (colMapAllocCounter[ idx ] == 0)
- gdk_colormap_free_colors( m_colormap, &m_color, 1 );
+ gdk_colormap_free_colors( m_colormap, &m_color, 1 );
}
}
}
#ifdef __WXGTK20__
if ( (cmap->visual->type == GDK_VISUAL_GRAYSCALE) ||
- (cmap->visual->type == GDK_VISUAL_PSEUDO_COLOR) )
+ (cmap->visual->type == GDK_VISUAL_PSEUDO_COLOR) )
#else
GdkColormapPrivate *private_colormap = (GdkColormapPrivate*) cmap;
if ((private_colormap->visual->type == GDK_VISUAL_GRAYSCALE) ||
return &M_COLDATA->m_color;
}
-
-
const int count = GetCount();
if ( (int)m_clientDataList.GetCount() < count )
- m_clientDataList.Append( (wxObject*) NULL );
+ m_clientDataList.Append( (wxObject*) NULL );
if ( (int)m_clientObjectList.GetCount() < count )
- m_clientObjectList.Append( (wxObject*) NULL );
+ m_clientObjectList.Append( (wxObject*) NULL );
EnableEvents();
count = GetCount();
if ( (int)m_clientDataList.GetCount() < count )
- m_clientDataList.Insert( pos, (wxObject*) NULL );
+ m_clientDataList.Insert( pos, (wxObject*) NULL );
if ( (int)m_clientObjectList.GetCount() < count )
- m_clientObjectList.Insert( pos, (wxObject*) NULL );
+ m_clientObjectList.Insert( pos, (wxObject*) NULL );
EnableEvents();
int wxComboBox::FindString( const wxString &item ) const
{
- wxCHECK_MSG( m_widget != NULL, -1, wxT("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, wxNOT_FOUND, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
wxString wxComboBox::GetString( int n ) const
{
- wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
wxString wxComboBox::GetStringSelection() const
{
- wxCHECK_MSG( m_widget != NULL, wxT(""), wxT("invalid combobox") );
+ wxCHECK_MSG( m_widget != NULL, wxEmptyString, wxT("invalid combobox") );
GtkWidget *list = GTK_COMBO(m_widget)->list;
wxFAIL_MSG( wxT("wxComboBox: no selection") );
- return wxT("");
+ return wxEmptyString;
}
int wxComboBox::GetCount() const
wxCHECK_RET( m_widget != NULL, wxT("invalid combobox") );
GtkWidget *entry = GTK_COMBO(m_widget)->entry;
- wxString tmp = wxT("");
+ wxString tmp;
if (!value.IsNull()) tmp = value;
gtk_entry_set_text( GTK_ENTRY(entry), wxGTK_CONV( tmp ) );
}
#endif
-
{
gdk_gc_set_clip_mask( m_textGC, mask );
gdk_gc_set_clip_origin( m_textGC, cx-xsrcMask, cy-ysrcMask );
- }
+ }
}
else
{
{
gdk_gc_set_clip_mask( m_penGC, mask );
gdk_gc_set_clip_origin( m_penGC, cx-xsrcMask, cy-ysrcMask );
- }
+ }
}
}
if ((m_scaleX != origScaleX || m_scaleY != origScaleY) &&
(m_pen.Ok()))
{
- /* this is a bit artificial, but we need to force wxDC to think
- the pen has changed */
- wxPen pen = m_pen;
- m_pen = wxNullPen;
- SetPen( pen );
- }
+ /* this is a bit artificial, but we need to force wxDC to think
+ the pen has changed */
+ wxPen pen = m_pen;
+ m_pen = wxNullPen;
+ SetPen( pen );
+ }
}
// Resolution in pixels per logical inch
#include "wx/dnd.h"
#include "wx/log.h"
-
-
+
+
#if wxUSE_DRAG_AND_DROP
#include "wx/window.h"
drop_target->OnLeave();
/* this has to be done because GDK has no "drag_enter" event */
- drop_target->m_firstMotion = TRUE;
+ drop_target->m_firstMotion = true;
/* after this, invalidate the drop_target's GdkDragContext */
drop_target->SetDragContext( (GdkDragContext*) NULL );
drop_target->SetDragContext( (GdkDragContext*) NULL );
/* this has to be done because GDK has no "drag_enter" event */
- drop_target->m_firstMotion = FALSE;
+ drop_target->m_firstMotion = false;
return ret;
}
/* reset the block here as someone might very well
show a dialog as a reaction to a drop and this
wouldn't work without events */
- g_blockEventsOnDrag = FALSE;
+ g_blockEventsOnDrag = false;
bool ret = drop_target->OnDrop( x, y );
drop_target->SetDragWidget( (GtkWidget*) NULL );
/* this has to be done because GDK has no "drag_enter" event */
- drop_target->m_firstMotion = TRUE;
+ drop_target->m_firstMotion = true;
return ret;
}
wxDropTarget::wxDropTarget( wxDataObject *data )
: wxDropTargetBase( data )
{
- m_firstMotion = TRUE;
+ m_firstMotion = true;
m_dragContext = (GdkDragContext*) NULL;
m_dragWidget = (GtkWidget*) NULL;
m_dragData = (GtkSelectionData*) NULL;
bool wxDropTarget::OnDrop( wxCoord WXUNUSED(x), wxCoord WXUNUSED(y) )
{
if (!m_dataObject)
- return FALSE;
+ return false;
return (GetMatchingPair() != (GdkAtom) 0);
}
bool wxDropTarget::GetData()
{
if (!m_dragData)
- return FALSE;
+ return false;
if (!m_dataObject)
- return FALSE;
+ return false;
wxDataFormat dragFormat( m_dragData->target );
if (!m_dataObject->IsSupportedFormat( dragFormat ))
- return FALSE;
+ return false;
m_dataObject->SetData( dragFormat, (size_t)m_dragData->length, (const void*)m_dragData->data );
- return TRUE;
+ return true;
}
void wxDropTarget::UnregisterWidget( GtkWidget *widget )
/* disable GUI threads */
#endif
- gtk_selection_data_set( selection_data,
- selection_data->target,
- 8, // 8-bit
- d,
- size );
+ gtk_selection_data_set( selection_data,
+ selection_data->target,
+ 8, // 8-bit
+ d,
+ size );
#if wxUSE_THREADS
/* enable GUI threads */
// printf( "Drag source: drag_end.\n" );
- drop_source->m_waiting = FALSE;
+ drop_source->m_waiting = false;
}
}
const wxIcon &iconMove,
const wxIcon &iconNone)
{
- m_waiting = TRUE;
+ m_waiting = true;
m_iconWindow = (GtkWidget*) NULL;
const wxIcon &iconMove,
const wxIcon &iconNone)
{
- m_waiting = TRUE;
+ m_waiting = true;
SetData( data );
return wxDragNone;
// disabled for now
- g_blockEventsOnDrag = TRUE;
+ g_blockEventsOnDrag = true;
RegisterWindow();
- m_waiting = TRUE;
+ m_waiting = true;
GtkTargetList *target_list = gtk_target_list_new( (GtkTargetEntry*) NULL, 0 );
/* re-enable GUI threads */
#endif
- g_blockEventsOnDrag = FALSE;
+ g_blockEventsOnDrag = false;
UnregisterWindow();
// this is called after Remove with a NULL m_frameMenuBar
if ( m_frameMenuBar )
- (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_frameMenuBar->m_widget) )->size_request )
- (m_frameMenuBar->m_widget, &req );
+ (* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(m_frameMenuBar->m_widget) )->size_request )
+ (m_frameMenuBar->m_widget, &req );
m_menuBarHeight = req.height;
- // resize window in OnInternalIdle
+ // resize window in OnInternalIdle
GtkUpdateSize();
}
GtkUpdateSize();
}
#endif // wxUSE_STATUSBAR
-
else
#endif
{
- return (long) GET_EDITABLE_POS(m_text);
+ return (long) GET_EDITABLE_POS(m_text);
}
}
gtk_widget_set_sensitive(m_widget, false);
g_object_ref(m_buffer);
gtk_text_view_set_buffer(GTK_TEXT_VIEW(m_text), gtk_text_buffer_new(NULL));
- }
+ }
#else
gtk_text_freeze(GTK_TEXT(m_text));
#endif
// either TRUE or FALSE and an activate event will be sent during the next
// OnIdle() call and it is reset to -1: this value means that we shouldn't
// send any activate events at all
-static int g_sendActivateEvent = -1;
+static int g_sendActivateEvent = -1;
//-----------------------------------------------------------------------------
// "focus_in_event"
{
if (g_isIdle)
wxapp_install_idle_handler();
-
+
switch ( g_sendActivateEvent )
{
case -1:
g_activeFrame = win;
g_lastActiveFrame = g_activeFrame;
-
+
// wxPrintf( wxT("active: %s\n"), win->GetTitle().c_str() );
-
+
wxLogTrace(wxT("activate"), wxT("Activating frame %p (from focus_in)"), g_activeFrame);
- wxActivateEvent event(wxEVT_ACTIVATE, TRUE, g_activeFrame->GetId());
+ wxActivateEvent event(wxEVT_ACTIVATE, true, g_activeFrame->GetId());
event.SetEventObject(g_activeFrame);
g_activeFrame->GetEventHandler()->ProcessEvent(event);
//-----------------------------------------------------------------------------
extern "C" {
-static gint gtk_frame_focus_out_callback( GtkWidget *widget,
- GdkEventFocus *WXUNUSED(gdk_event),
+static gint gtk_frame_focus_out_callback( GtkWidget *widget,
+ GdkEventFocus *WXUNUSED(gdk_event),
wxTopLevelWindowGTK *win )
{
if (g_isIdle)
// wxActivateEvent, otherwise gtk_window_focus_in_callback() will reset
// g_sendActivateEvent to -1
g_sendActivateEvent = 0;
-
+
// wxASSERT_MSG( (g_activeFrame == win), wxT("TLW deactivatd although it wasn't active") );
-
+
// wxPrintf( wxT("inactive: %s\n"), win->GetTitle().c_str() );
if (g_activeFrame)
{
wxLogTrace(wxT("activate"), wxT("Activating frame %p (from focus_in)"), g_activeFrame);
- wxActivateEvent event(wxEVT_ACTIVATE, FALSE, g_activeFrame->GetId());
+ wxActivateEvent event(wxEVT_ACTIVATE, false, g_activeFrame->GetId());
event.SetEventObject(g_activeFrame);
g_activeFrame->GetEventHandler()->ProcessEvent(event);
g_activeFrame = NULL;
}
-
+
return FALSE;
}
}
GdkEvent * WXUNUSED(event),
wxTopLevelWindow *win )
{
- win->SetIconizeState(FALSE);
+ win->SetIconizeState(false);
}
}
void wxTopLevelWindowGTK::Init()
{
- m_sizeSet = FALSE;
+ m_sizeSet = false;
m_miniEdge = 0;
m_miniTitle = 0;
m_mainWidget = (GtkWidget*) NULL;
- m_insertInClientArea = TRUE;
- m_isIconized = FALSE;
- m_fsIsShowing = FALSE;
- m_themeEnabled = TRUE;
+ m_insertInClientArea = true;
+ m_isIconized = false;
+ m_fsIsShowing = false;
+ m_themeEnabled = true;
m_gdkDecor = m_gdkFunc = 0;
- m_grabbed = FALSE;
+ m_grabbed = false;
}
bool wxTopLevelWindowGTK::Create( wxWindow *parent,
wxTopLevelWindows.Append( this );
- m_needParent = FALSE;
+ m_needParent = false;
if (!PreCreation( parent, pos, size ) ||
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
wxFAIL_MSG( wxT("wxTopLevelWindowGTK creation failed") );
- return FALSE;
+ return false;
}
m_title = title;
{
gtk_window_set_type_hint(GTK_WINDOW(m_widget),
GDK_WINDOW_TYPE_HINT_UTILITY);
-
+
// On some WMs, like KDE, a TOOL_WINDOW will still show
// on the taskbar, but on Gnome a TOOL_WINDOW will not.
- // For consistency between WMs and with Windows, we
+ // For consistency between WMs and with Windows, we
// should set the NO_TASKBAR flag which will apply
// the set_skip_taskbar_hint if it is available,
// ensuring no taskbar entry will appear.
wxWindow *topParent = wxGetTopLevelParent(m_parent);
if (topParent && (((GTK_IS_WINDOW(topParent->m_widget)) &&
- (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)) ||
- (style & wxFRAME_FLOAT_ON_PARENT)))
+ (GetExtraStyle() & wxTOPLEVEL_EX_DIALOG)) ||
+ (style & wxFRAME_FLOAT_ON_PARENT)))
{
gtk_window_set_transient_for( GTK_WINDOW(m_widget),
GTK_WINDOW(topParent->m_widget) );
}
#endif
- if (!name.IsEmpty())
+ if (!name.empty())
gtk_window_set_wmclass( GTK_WINDOW(m_widget), wxGTK_CONV( name ), wxGTK_CONV( name ) );
gtk_window_set_title( GTK_WINDOW(m_widget), wxGTK_CONV( title ) );
GTK_SIGNAL_FUNC(gtk_frame_focus_in_callback), (gpointer)this );
gtk_signal_connect( GTK_OBJECT(m_widget), "focus_out_event",
GTK_SIGNAL_FUNC(gtk_frame_focus_out_callback), (gpointer)this );
-
+
// decorations
if ((m_miniEdge > 0) || (style & wxSIMPLE_BORDER) || (style & wxNO_BORDER))
{
}
}
- return TRUE;
+ return true;
}
wxTopLevelWindowGTK::~wxTopLevelWindowGTK()
RemoveGrab();
}
- m_isBeingDeleted = TRUE;
+ m_isBeingDeleted = true;
// it may also be GtkScrolledWindow in the case of an MDI child
if (GTK_IS_WINDOW(m_widget))
{
gtk_window_set_focus( GTK_WINDOW(m_widget), NULL );
}
-
+
if (g_activeFrame == this)
g_activeFrame = NULL;
if (g_lastActiveFrame == this)
bool wxTopLevelWindowGTK::ShowFullScreen(bool show, long style )
{
if (show == m_fsIsShowing)
- return FALSE; // return what?
+ return false; // return what?
m_fsIsShowing = show;
-
+
wxX11FullScreenMethod method =
wxGetFullScreenMethodX11((WXDisplay*)GDK_DISPLAY(),
(WXWindow)GDK_ROOT_WINDOW());
else
gtk_window_unfullscreen( GTK_WINDOW( m_widget ) );
- return TRUE;
+ return true;
}
else
#endif // GTK+ >= 2.2.0
}
}
- return TRUE;
+ return true;
}
// ----------------------------------------------------------------------------
GtkOnSize( m_x, m_y, m_width, m_height );
}
-
+
if (show)
gtk_widget_set_uposition( m_widget, m_x, m_y );
-
+
return wxWindow::Show( show );
}
// avoid recursions
if (m_resizing)
return;
- m_resizing = TRUE;
+ m_resizing = true;
int old_x = m_x;
int old_y = m_y;
maxWidth = -1;
maxHeight = -1;
#endif
-
+
if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;
if ((maxWidth != -1) && (m_width > maxWidth)) m_width = maxWidth;
/* we set the size in GtkOnSize, i.e. mostly the actual resizing is
done either directly before the frame is shown or in idle time
so that different calls to SetSize() don't lead to flicker. */
- m_sizeSet = FALSE;
+ m_sizeSet = false;
}
- m_resizing = FALSE;
+ m_resizing = false;
}
void wxTopLevelWindowGTK::DoGetClientSize( int *width, int *height ) const
// avoid recursions
if (m_resizing) return;
- m_resizing = TRUE;
+ m_resizing = true;
if ( m_wxwindow == NULL ) return;
maxWidth = -1;
maxHeight = -1;
#endif
-
+
if ((minWidth != -1) && (m_width < minWidth)) m_width = minWidth;
if ((minHeight != -1) && (m_height < minHeight)) m_height = minHeight;
if ((maxWidth != -1) && (m_width > maxWidth)) m_width = maxWidth;
// is no need to set the size or position of m_wxwindow.
}
- m_sizeSet = TRUE;
+ m_sizeSet = true;
// send size event to frame
wxSizeEvent event( wxSize(m_width,m_height), GetId() );
event.SetEventObject( this );
GetEventHandler()->ProcessEvent( event );
- m_resizing = FALSE;
+ m_resizing = false;
}
void wxTopLevelWindowGTK::OnInternalIdle()
}
wxWindow::OnInternalIdle();
-
+
// Synthetize activate events.
if ( g_sendActivateEvent != -1 )
{
bool activate = g_sendActivateEvent != 0;
-
+
// if (!activate) wxPrintf( wxT("de") );
// wxPrintf( wxT("activate\n") );
-
+
// do it only once
g_sendActivateEvent = -1;
}
gtk_window_set_icon_list(GTK_WINDOW(m_widget), list);
g_list_free(list);
-
+
#else // !__WXGTK20__
GdkWindow* window = m_widget->window;
if (!window)
// wxFAIL_MSG( _T("not implemented") );
// This is an approximation
- return FALSE;
+ return false;
#endif
}
{
if (!m_grabbed)
{
- m_grabbed = TRUE;
+ m_grabbed = true;
gtk_grab_add( m_widget );
wxEventLoop().Run();
gtk_grab_remove( m_widget );
if (m_grabbed)
{
gtk_main_quit();
- m_grabbed = FALSE;
+ m_grabbed = false;
}
}
else
{
#ifdef __WXGTK20__
- gdk_window_shape_combine_region(window, region.GetRegion(), 0, 0);
+ gdk_window_shape_combine_region(window, region.GetRegion(), 0, 0);
#else
- wxBitmap bmp = region.ConvertToBitmap();
- bmp.SetMask(new wxMask(bmp, *wxBLACK));
- GdkBitmap* mask = bmp.GetMask()->GetBitmap();
- gdk_window_shape_combine_mask(window, mask, 0, 0);
+ wxBitmap bmp = region.ConvertToBitmap();
+ bmp.SetMask(new wxMask(bmp, *wxBLACK));
+ GdkBitmap* mask = bmp.GetMask()->GetBitmap();
+ gdk_window_shape_combine_mask(window, mask, 0, 0);
#endif
- return TRUE;
+ return true;
}
}
- return FALSE;
+ return false;
}
bool wxTopLevelWindowGTK::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."));
GdkWindow *window = NULL;
{
return (this == (wxTopLevelWindowGTK*)g_activeFrame);
}
-
// mouse capture state: the window which has it and if the mouse is currently
// inside it
static wxWindowGTK *g_captureWindow = (wxWindowGTK*) NULL;
-static bool g_captureWindowHasMouse = FALSE;
+static bool g_captureWindowHasMouse = false;
wxWindowGTK *g_focusWindow = (wxWindowGTK*) NULL;
// hack: we need something to pass to gtk_menu_popup, so we store the time of
// the last click here
-static guint32 gs_timeLastClick = 0;
+static guint32 gs_timeLastClick = 0;
extern bool g_mainThreadLocked;
{
// This callback is actually hooked into the text entry
// of the combo box, not the GtkHBox.
-
+
int w, h;
win->GetSize( &w, &h );
if (w < 2)
h = 2;
GtkCombo *gcombo = GTK_COMBO(win->m_widget);
-
+
GtkRequisition entry_req;
entry_req.width = 2;
entry_req.height = 2;
(* GTK_WIDGET_CLASS( GTK_OBJECT_GET_CLASS(gcombo->button) )->size_request )
(gcombo->button, &entry_req );
-
+
requisition->width = w - entry_req.width;
requisition->height = entry_req.height;
}
(int)gdk_event->area.width,
(int)gdk_event->area.height );
}
-
+
gtk_paint_box
(
win->m_wxwindow->style,
: _T("press"),
keysym);
- long key_code = wxTranslateKeySymToWXKey(keysym, FALSE /* !isChar */);
+ long key_code = wxTranslateKeySymToWXKey(keysym, false /* !isChar */);
if ( !key_code )
{
// sending unknown key events doesn't really make sense
if ( !key_code )
- return FALSE;
+ return false;
// now fill all the other fields
wxFillOtherKeyEventFields(event, win, gdk_event);
-
+
event.m_keyCode = key_code;
- return TRUE;
+ return true;
}
// Emit KEY_DOWN event
ret = win->GetEventHandler()->ProcessEvent( event );
}
- else
+ else
{
// Return after IM processing as we cannot do
// anything with it anyhow.
// 2005.01.26 modified by Hong Jen Yee (hzysoft@sina.com.tw):
// When we get a key_press event here, it could be originate
// from the current widget or its child widgets. However, only the widget
- // with the INPUT FOCUS can generate the INITIAL key_press event. That is,
+ // with the INPUT FOCUS can generate the INITIAL key_press event. That is,
// if the CURRENT widget doesn't have the FOCUS at all, this event definitely
// originated from its child widgets and shouldn't be passed to IM context.
// In fact, what a GTK+ IM should do is filtering keyEvents and convert them
// into text input ONLY WHEN THE WIDGET HAS INPUT FOCUS. Besides, when current
- // widgets has both IM context and input focus, the event should be filtered
+ // widgets has both IM context and input focus, the event should be filtered
// by gtk_im_context_filter_keypress().
// Then, we should, according to GTK+ 2.0 API doc, return whatever it returns.
if ((!ret) && (win->m_imData != NULL) && ( wxWindow::FindFocus() == win ))
{
// We should let GTK+ IM filter key event first. According to GTK+ 2.0 API
// docs, if IM filter returns true, no further processing should be done.
- // we should send the key_down event anyway.
+ // we should send the key_down event anyway.
bool intercepted_by_IM = gtk_im_context_filter_keypress(win->m_imData->context, gdk_event);
win->m_imData->lastKeyEvent = NULL;
if (intercepted_by_IM)
if (return_after_IM)
return false;
-#ifndef __WXGTK20__
+#ifndef __WXGTK20__
// This is for GTK+ 1.2 only. The char event generatation for GTK+ 2.0 is done
// in the "commit" handler.
-
+
// 2005.02.02 modified by Hong Jen Yee (hzysoft@sina.com.tw).
- // In GTK+ 1.2, strings sent by IMs are also regarded as key_press events whose
- // keyCodes cannot be recognized by wxWidgets. These MBCS strings, however, are
- // composed of more than one character, which means gdk_event->length will always
+ // In GTK+ 1.2, strings sent by IMs are also regarded as key_press events whose
+ // keyCodes cannot be recognized by wxWidgets. These MBCS strings, however, are
+ // composed of more than one character, which means gdk_event->length will always
// greater than one. When gtk_event->length == 1, this may be an ASCII character
- // and can be translated by wx. However, when MBCS characters are sent by IM,
+ // and can be translated by wx. However, when MBCS characters are sent by IM,
// gdk_event->length will >= 2. So neither should we pass it to accelerator table,
// nor should we pass it to controls. The following explanation was excerpted
// from GDK documentation.
}
return true;
}
-
+
#endif // #ifndef __WXGTK20__
#if wxUSE_ACCEL
long key_code;
KeySym keysym = gdk_event->keyval;
// Find key code for EVT_CHAR and EVT_CHAR_HOOK events
- key_code = wxTranslateKeySymToWXKey(keysym, TRUE /* isChar */);
+ key_code = wxTranslateKeySymToWXKey(keysym, true /* isChar */);
if ( !key_code )
{
if ( wxIsAsciiKeysym(keysym) )
event_type = wxEVT_MOUSEWHEEL;
else
return FALSE;
-
+
wxMouseEvent event( event_type );
// Can't use InitMouse macro because scroll events don't have button
event.SetTimestamp( gdk_event->time );
event.SetEventObject( win );
event.SetId( win->GetId() );
event.SetTimestamp( gdk_event->time );
-
+
if (win->GetEventHandler()->ProcessEvent( event ))
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "scroll_event" );
wxWindow *win )
{
DEBUG_MAIN_THREAD
-
+
if (g_isIdle)
wxapp_install_idle_handler();
if ( !win->m_hasFocus )
{
// not yet, notify it
- win->m_hasFocus = TRUE;
-
+ win->m_hasFocus = true;
+
if ( DoSendFocusEvents(win) )
{
gtk_signal_emit_stop_by_name( GTK_OBJECT(widget), "focus_in_event" );
// have focus already
if ( win->m_hasFocus )
{
- win->m_hasFocus = FALSE;
+ win->m_hasFocus = false;
wxFocusEvent event( wxEVT_KILL_FOCUS, win->GetId() );
event.SetEventObject( win );
wxapp_install_idle_handler();
- g_blockEventsOnScroll = TRUE;
+ g_blockEventsOnScroll = true;
// FIXME: there is no 'slider' field in GTK+ 2.0 any more
#ifndef __WXGTK20__
//
// if (gdk_event->window != widget->slider) return FALSE;
- g_blockEventsOnScroll = FALSE;
+ g_blockEventsOnScroll = false;
if (win->m_isScrolling)
{
win->GetEventHandler()->ProcessEvent( event );
}
- win->m_isScrolling = FALSE;
+ win->m_isScrolling = false;
return FALSE;
}
if (g_isIdle)
wxapp_install_idle_handler();
-
+
#ifdef __WXGTK20__
if (win->m_imData)
{
m_width = 0;
m_height = 0;
- m_sizeSet = FALSE;
- m_hasVMT = FALSE;
- m_needParent = TRUE;
- m_isBeingDeleted = FALSE;
+ m_sizeSet = false;
+ m_hasVMT = false;
+ m_needParent = true;
+ m_isBeingDeleted = false;
- m_noExpose = FALSE;
- m_nativeSizeEvent = FALSE;
+ m_noExpose = false;
+ m_nativeSizeEvent = false;
- m_hasScrolling = FALSE;
- m_isScrolling = FALSE;
+ m_hasScrolling = false;
+ m_isScrolling = false;
m_hAdjust = (GtkAdjustment*) NULL;
m_vAdjust = (GtkAdjustment*) NULL;
m_oldClientWidth =
m_oldClientHeight = 0;
- m_resizing = FALSE;
+ m_resizing = false;
m_insertCallback = (wxInsertChildFunction) NULL;
- m_acceptsFocus = FALSE;
- m_hasFocus = FALSE;
+ m_acceptsFocus = false;
+ m_hasFocus = false;
- m_clipPaintRegion = FALSE;
+ m_clipPaintRegion = false;
m_needsStyleChange = false;
!CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
{
wxFAIL_MSG( wxT("wxWindowGTK creation failed") );
- return FALSE;
+ return false;
}
m_insertCallback = wxInsertChildInWindow;
gtk_container_add( GTK_CONTAINER(m_widget), m_wxwindow );
GTK_WIDGET_SET_FLAGS( m_wxwindow, GTK_CAN_FOCUS );
- m_acceptsFocus = TRUE;
+ m_acceptsFocus = true;
// I _really_ don't want scrollbars in the beginning
m_vAdjust->lower = 0.0;
PostCreation();
- return TRUE;
+ return true;
}
wxWindowGTK::~wxWindowGTK()
if ( g_delayedFocus == this )
g_delayedFocus = NULL;
- m_isBeingDeleted = TRUE;
- m_hasVMT = FALSE;
+ m_isBeingDeleted = true;
+ m_hasVMT = false;
if (m_widget)
- Show( FALSE );
+ Show( false );
DestroyChildren();
bool wxWindowGTK::PreCreation( wxWindowGTK *parent, const wxPoint &pos, const wxSize &size )
{
- wxCHECK_MSG( !m_needParent || parent, FALSE, wxT("Need complete parent.") );
+ wxCHECK_MSG( !m_needParent || parent, false, wxT("Need complete parent.") );
// Use either the given size, or the default if -1 is given.
// See wxWindowBase for these functions.
m_x = (int)pos.x;
m_y = (int)pos.y;
- return TRUE;
+ return true;
}
void wxWindowGTK::PostCreation()
{
if (m_focusWidget == NULL)
m_focusWidget = m_widget;
-
+
gtk_signal_connect( GTK_OBJECT(m_focusWidget), "focus_in_event",
GTK_SIGNAL_FUNC(gtk_window_focus_in_callback), (gpointer)this );
if (GTK_IS_COMBO(m_widget))
{
GtkCombo *gcombo = GTK_COMBO(m_widget);
-
+
gtk_signal_connect( GTK_OBJECT(gcombo->entry), "size_request",
GTK_SIGNAL_FUNC(wxgtk_combo_size_request_callback),
(gpointer) this );
InheritAttributes();
- m_hasVMT = TRUE;
+ m_hasVMT = true;
// unless the window was created initially hidden (i.e. Hide() had been
// called before Create()), we should show it at GTK+ level as well
{
wxASSERT_MSG( (m_widget != NULL), wxT("invalid window") );
- m_hasVMT = FALSE;
+ m_hasVMT = false;
return wxWindowBase::Destroy();
}
*/
if (m_resizing) return; /* I don't like recursions */
- m_resizing = TRUE;
+ m_resizing = true;
int currentX, currentY;
GetPosition(¤tX, ¤tY);
GetEventHandler()->ProcessEvent( event );
}
- m_resizing = FALSE;
+ m_resizing = false;
}
void wxWindowGTK::OnInternalIdle()
bool wxWindowGTK::Show( bool show )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), false, wxT("invalid window") );
if (!wxWindowBase::Show(show))
{
// nothing to do
- return FALSE;
+ return false;
}
if (show)
GetEventHandler()->ProcessEvent(eventShow);
- return TRUE;
+ return true;
}
static void wxWindowNotifyEnable(wxWindowGTK* win, bool enable)
bool wxWindowGTK::Enable( bool enable )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), false, wxT("invalid window") );
if (!wxWindowBase::Enable(enable))
{
// nothing to do
- return FALSE;
+ return false;
}
gtk_widget_set_sensitive( m_widget, enable );
wxWindowNotifyEnable(this, enable);
- return TRUE;
+ return true;
}
int wxWindowGTK::GetCharHeight() const
}
void wxWindowGTK::GetTextExtent( const wxString& string,
- int *x,
- int *y,
- int *descent,
- int *externalLeading,
- const wxFont *theFont ) const
+ int *x,
+ int *y,
+ int *descent,
+ int *externalLeading,
+ const wxFont *theFont ) const
{
wxFont fontToUse = theFont ? *theFont : GetFont();
wxCHECK_RET( fontToUse.Ok(), wxT("invalid font") );
- if (string.IsEmpty())
+ if (string.empty())
{
if (x) (*x) = 0;
if (y) (*y) = 0;
#endif
if (GTK_WIDGET_CAN_FOCUS(m_widget) && !GTK_WIDGET_HAS_FOCUS (m_widget) )
{
-
+
if (!GTK_WIDGET_REALIZED(m_widget))
{
// we can't set the focus to the widget now so we remember that
gtk_widget_grab_focus (m_widget);
}
}
- else
+ else
#ifndef __WXGTK20__
if (GTK_IS_CONTAINER(m_widget))
{
bool wxWindowGTK::Reparent( wxWindowBase *newParentBase )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), false, wxT("invalid window") );
wxWindowGTK *oldParent = m_parent,
*newParent = (wxWindowGTK *)newParentBase;
wxASSERT( GTK_IS_WIDGET(m_widget) );
if ( !wxWindowBase::Reparent(newParent) )
- return FALSE;
+ return false;
wxASSERT( GTK_IS_WIDGET(m_widget) );
/* reverse: prevent GTK from deleting the widget arbitrarily */
gtk_widget_unref( m_widget );
- return TRUE;
+ return true;
}
void wxWindowGTK::DoAddChild(wxWindowGTK *child)
if (g_isIdle)
wxapp_install_idle_handler();
}
-
+
void wxWindowGTK::DoMoveInTabOrder(wxWindow *win, MoveKind move)
{
wxWindowBase::DoMoveInTabOrder(win, move);
if (m_children.size() > 0)
{
GList *chain = NULL;
-
+
for (wxWindowList::const_iterator i = m_children.begin();
i != m_children.end(); ++i)
{
chain = g_list_prepend(chain, (*i)->m_widget);
}
-
+
chain = g_list_reverse(chain);
-
+
gtk_container_set_focus_chain(GTK_CONTAINER(m_wxwindow), chain);
g_list_free(chain);
}
gtk_container_unset_focus_chain(GTK_CONTAINER(m_wxwindow));
}
}
-
+
m_dirtyTabOrder = false;
}
{
gdk_window_raise( m_wxwindow->window );
}
- else if (m_widget->window)
+ else if (m_widget->window)
{
gdk_window_raise( m_widget->window );
}
{
gdk_window_lower( m_wxwindow->window );
}
- else if (m_widget->window)
+ else if (m_widget->window)
{
gdk_window_lower( m_widget->window );
}
bool wxWindowGTK::SetCursor( const wxCursor &cursor )
{
- wxCHECK_MSG( (m_widget != NULL), FALSE, wxT("invalid window") );
+ wxCHECK_MSG( (m_widget != NULL), false, wxT("invalid window") );
if (cursor == m_cursor)
- return FALSE;
+ return false;
if (g_isIdle)
wxapp_install_idle_handler();
}
// Clip to paint region in wxClientDC
- m_clipPaintRegion = TRUE;
+ m_clipPaintRegion = true;
// widget to draw on
GtkPizza *pizza = GTK_PIZZA (m_wxwindow);
paint_event.SetEventObject( this );
GetEventHandler()->ProcessEvent( paint_event );
- m_clipPaintRegion = FALSE;
+ m_clipPaintRegion = false;
#ifndef __WXUNIVERSAL__
#ifndef __WXGTK20__
bool wxWindowGTK::SetBackgroundColour( const wxColour &colour )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, false, wxT("invalid window") );
if (!wxWindowBase::SetBackgroundColour(colour))
return false;
bool wxWindowGTK::SetForegroundColour( const wxColour &colour )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, false, wxT("invalid window") );
if (!wxWindowBase::SetForegroundColour(colour))
{
return false;
}
-
+
if (colour.Ok())
{
// We need the pixel value e.g. for background clearing.
return m_x11Context;
}
#endif
-
+
GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle)
{
// do we need to apply any changes at all?
if ( m_font.Ok() )
{
#ifdef __WXGTK20__
- style->font_desc =
+ style->font_desc =
pango_font_description_copy( m_font.GetNativeFontInfo()->description );
#else
wxString xfontname = m_font.GetNativeFontInfo()->GetXFontName();
if ( m_foregroundColour.Ok() )
{
GdkColor *fg = m_foregroundColour.GetColor();
-
+
style->fg[GTK_STATE_NORMAL] = *fg;
style->color_flags[GTK_STATE_NORMAL] = GTK_RC_FG;
-
+
style->fg[GTK_STATE_PRELIGHT] = *fg;
style->color_flags[GTK_STATE_PRELIGHT] = GTK_RC_FG;
-
+
style->fg[GTK_STATE_ACTIVE] = *fg;
style->color_flags[GTK_STATE_ACTIVE] = GTK_RC_FG;
}
style->base[GTK_STATE_NORMAL] = *bg;
style->color_flags[GTK_STATE_NORMAL] = (GtkRcFlags)
(style->color_flags[GTK_STATE_NORMAL] | GTK_RC_BG | GTK_RC_BASE);
-
+
style->bg[GTK_STATE_PRELIGHT] = *bg;
style->base[GTK_STATE_PRELIGHT] = *bg;
style->color_flags[GTK_STATE_PRELIGHT] = (GtkRcFlags)
(style->color_flags[GTK_STATE_PRELIGHT] | GTK_RC_BG | GTK_RC_BASE);
-
+
style->bg[GTK_STATE_ACTIVE] = *bg;
style->base[GTK_STATE_ACTIVE] = *bg;
style->color_flags[GTK_STATE_ACTIVE] = (GtkRcFlags)
(style->color_flags[GTK_STATE_ACTIVE] | GTK_RC_BG | GTK_RC_BASE);
-
+
style->bg[GTK_STATE_INSENSITIVE] = *bg;
style->base[GTK_STATE_INSENSITIVE] = *bg;
style->color_flags[GTK_STATE_INSENSITIVE] = (GtkRcFlags)
(style->color_flags[GTK_STATE_INSENSITIVE] | GTK_RC_BG | GTK_RC_BASE);
}
-
+
return style;
}
bool wxWindowGTK::SetBackgroundStyle(wxBackgroundStyle style)
{
wxWindowBase::SetBackgroundStyle(style);
-
+
if (style == wxBG_STYLE_CUSTOM)
{
GdkWindow *window = (GdkWindow*) NULL;
else
// Do in OnIdle, because the window is not yet available
m_needsStyleChange = true;
-
+
// Don't apply widget style, or we get a grey background
}
else
void SetInvokingWindow( wxMenu *menu, wxWindow* win )
{
menu->SetInvokingWindow( win );
-
+
wxMenuItemList::compatibility_iterator node = menu->GetMenuItems().GetFirst();
while (node)
{
bool wxWindowGTK::SetFont( const wxFont &font )
{
- wxCHECK_MSG( m_widget != NULL, FALSE, wxT("invalid window") );
+ wxCHECK_MSG( m_widget != NULL, false, wxT("invalid window") );
if (!wxWindowBase::SetFont(font))
return false;
// apply style change (forceStyle=true so that new style is applied
// even if the font changed from valid to wxNullFont):
- ApplyWidgetStyle(true);
+ ApplyWidgetStyle(true);
return true;
}
cursor->GetCursor(),
(guint32)GDK_CURRENT_TIME );
g_captureWindow = this;
- g_captureWindowHasMouse = TRUE;
+ g_captureWindowHasMouse = true;
}
void wxWindowGTK::DoReleaseMouse()
bool wxWindowGTK::IsRetained() const
{
- return FALSE;
+ return false;
}
void wxWindowGTK::SetScrollbar( int orient, int pos, int thumbVisible,
wxCHECK_RET( m_wxwindow != NULL, wxT("window needs client area for scrolling") );
- m_hasScrolling = TRUE;
+ m_hasScrolling = true;
if (orient == wxHORIZONTAL)
{
}
#endif
- m_clipPaintRegion = TRUE;
+ m_clipPaintRegion = true;
gtk_pizza_scroll( GTK_PIZZA(m_wxwindow), -dx, -dy );
- m_clipPaintRegion = FALSE;
+ m_clipPaintRegion = false;
}
// g_eraseGC = gdk_gc_new( GDK_ROOT_PARENT() );
// gdk_gc_set_fill( g_eraseGC, GDK_SOLID );
- return TRUE;
+ return true;
}
void wxWinModule::OnExit()